Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Информатика_всем

.pdf
Скачиваний:
75
Добавлен:
03.03.2016
Размер:
5.42 Mб
Скачать

Теперь кодовые комбинации 1, 2, 3 переносятся в столбец «Шаг 3» в

неизменном виде, а код 0, который соответствует четырем «склеенным» вероятностям, уточняется дополнительным символом 0, 1, 2, 3.

Шаг 3

Код

Шаг 4

Код

 

 

 

 

5/20 (3)

1

8/20 (4)

0

 

 

 

 

4/20

2

5/20

1

 

 

 

 

3/20

3

4/20

2

 

 

 

 

2/20

00

3/20

3

 

 

 

 

2/20

01

 

 

 

 

 

 

2/20

02

 

 

 

 

 

 

2/20

03

 

 

 

 

 

 

Аналогичным образом на шаге 2 получается следующая таблица.

Шаг 2

Код

Шаг 3

Код

Шаг 4

Код

 

 

 

 

 

 

4/20 (2)

2

5/20 (3)

1

8/20 (4)

0

 

 

 

 

 

 

3/20

3

4/20

2

5/20

1

 

 

 

 

 

 

2/20

00

3/20

3

4/20

2

 

 

 

 

 

 

2/20

01

2/20

00

3/20

3

 

 

 

 

 

 

2/20

02

2/20

01

 

 

 

 

 

 

 

 

2/20

03

2/20

02

 

 

 

 

 

 

 

 

2/20

10

2/20

03

 

 

 

 

 

 

 

 

1/20

11

 

 

 

 

 

 

 

 

 

 

1/20

12

 

 

 

 

 

 

 

 

 

 

1/20

13

 

 

 

 

 

 

 

 

 

 

9

Аналогичным образом на шаге 1 получается следующая таблица.

Шаг 1

Код

Шаг 2

Код

Шаг 3

Код

Шаг 4

Код

 

 

 

 

 

 

 

 

3/20

3

4/20 (2)

2

5/20 (3)

1

8/20 (4)

0

 

 

 

 

 

 

 

 

2/20

00

3/20

3

4/20

2

5/20

1

 

 

 

 

 

 

 

 

2/20

01

2/20

00

3/20

3

4/20

2

 

 

 

 

 

 

 

 

2/20

02

2/20

01

2/20

00

3/20

3

 

 

 

 

 

 

 

 

2/20

03

2/20

02

2/20

01

 

 

 

 

 

 

 

 

 

 

2/20 (1)

10

2/20

03

2/20

02

 

 

 

 

 

 

 

 

 

 

1/20

11

2/20

10

2/20

03

 

 

 

 

 

 

 

 

 

 

1/20

12

1/20

11

 

 

 

 

 

 

 

 

 

 

 

 

1/20

13

1/20

12

 

 

 

 

 

 

 

 

 

 

 

 

1/20

20

1/20

13

 

 

 

 

 

 

 

 

 

 

 

 

1/20

21

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1/20

22

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1/20

23

 

 

 

 

 

 

 

 

 

 

 

 

 

 

И окончательно получаем

Буква

Вероятность

Код

Шаг 1

Код

Шаг 2

Код

Шаг 3

Код

Шаг 4

Код

В

3/20

3

3/20

3

4/20

2

5/20

1

8/20

0

 

 

 

 

 

(2)

 

(3)

 

(4)

 

 

 

 

 

 

 

 

 

 

 

 

А

2/20

00

2/20

00

3/20

3

4/20

2

5/20

1

 

 

 

 

 

 

 

 

 

 

 

И

2/20

01

2/20

01

2/20

00

3/20

3

4/20

2

 

 

 

 

 

 

 

 

 

 

 

М

2/20

02

2/20

02

2/20

01

2/20

00

3/20

3

 

 

 

 

 

 

 

 

 

 

 

_

2/20

03

2/20

03

2/20

02

2/20

01

 

 

 

 

 

 

 

 

 

 

 

 

 

Д

1/20

11

2/20

10

2/20

03

2/20

02

 

 

 

 

 

(1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

О

1/20

12

1/20

11

2/20

10

2/20

03

 

 

 

 

 

 

 

 

 

 

 

 

 

Н

1/20

13

1/20

12

1/20

11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

У

1/20

20

1/20

13

1/20

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ю

1/20

21

1/20

20

1/20

13

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Р

1/20

22

1/20

21

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ь

1/20

23

1/20

22

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Е

1/20

100

1/20

23

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ч

1/20

101

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Х1

0/20

102

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Х2

0/20

103

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3. СИСТЕМЫ СЧИСЛЕНИЯ

Номер студенческого билета (последние четыре цифры) в прямом и обратном порядке перевести в двоичную, восьмеричную, шестнадца-

теричную систему. Произвести сложение и вычитание полученных значений.

Решение.

Пусть номер студенческого билета 20112010. Последние четыре цифры 2010 в обратном порядке 102.

Переведем числа в двоичную систему исчисления: 201010=214∙0+213∙0+212∙0+211∙0+210∙1+29∙1+28∙1+27∙1+26∙1+25∙0+24∙1+23∙1

++22∙0+21∙1+20∙0 = 111110110102.

10210=214∙0+213∙0+212∙0+211∙0+210∙0+29∙0+28∙0+27∙0+26∙1+25∙1+24∙0+23∙0+ +22∙1+21∙1+20∙0 = 11001102.

Переведем числа в восьмеричную систему исчисления: 201010=85∙0+84∙0+83∙3+82∙7+81∙3+80∙2 = 37328. 10210=85∙0+84∙0+83∙0+82∙1+81∙4+80∙6 = 1468.

Переведем числа в шестнадцетиричную систему исчисления: 201010=164∙0+163∙0+162∙7+161∙13+160∙10 = 7DA16. 10210=164∙0+163∙0+162∙0+161∙6+160∙6 = 6616.

11

Произведем сложение в каждой из систем исчисления:

201010+ 10210 = 211210,

111110110102+11001102=1000010000002,

37328+1468= 41008 7DA16 + 6616 = 84016.

Произведем вычитание в каждой из систем счисления (из большего

числа вычтем меньшее):

201010 – 0,010210 = 190810,

111110110102–11001102=111011101002,

37328–1468= 35648 7DA16 – 6616 = 77416.

4. ЛИНЕЙНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕССЫ

Вычислить значение X при различных значениях аргументов:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A2 B2

 

A2 B2

 

A

 

 

 

 

 

 

A 1

 

 

 

 

 

 

A 1

 

 

 

 

 

 

 

 

 

X e

 

A sin

 

0.5 A B

 

 

 

cos

 

0.5 A B

 

 

 

B

 

 

 

 

 

 

 

 

 

 

 

 

 

C

A B

 

 

 

 

 

C

A B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

Б л о к - с х е м а к з а д а ч е № 4

 

Начало

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ввод A, B, C

 

 

 

 

 

 

 

 

 

 

 

A2 B2

Y1 :=

 

 

 

 

 

 

A 1

 

 

 

 

 

 

 

 

0.5 A B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y2 :=

 

C

A B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y:=Y1/Y2

X:= e BA sin Y cos Y

Вывод X

Конец

Л и с т и н г п р о г р а м м ы н а P a s c a l

program z4; var

A,B,C,X,Y,Y1,Y2 : real; begin

// ввод данных writeLn('введите A, B, C'); readLn(A,B,C);

//вычисление промежуточных данных

//сначала числитель

Y1:=sqrt(sqr(A)+sqr(B))/(0.5 + A*B) - 1/A;

// потом знаменатель

13

Y2:=C+abs(A-B);

// потом их отношение

Y:= Y1/Y2;

//теперь всю формулу:

X:= exp(-A/B)*(sin(Y)+cos(Y));

//вывод результата writeLn(' X= ' , X);

end.

5. ПРОСТЫЕ РАЗВЕТВЛЯЮЩИЕСЯ ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕССЫ

Ввести число X, выяснить, что больше: целая часть числа x, или его дробная часть, умноженная на 10. Если первое, то число разделить на 10, если второе, то дробную часть от него отнять.

Б л о к - с х е м а к з а д а ч е № 5

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

Начало

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y>z*10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ввод x

 

 

 

 

 

 

 

 

 

 

 

 

 

'дробная

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'целая часть

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

часть,

 

 

 

больше'

 

 

 

 

умноженная

 

 

 

 

y := trunc(x)

 

 

 

 

 

 

 

 

 

 

 

 

 

на 10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

больше'

 

 

 

x:=x*10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вывод y

 

 

 

 

 

 

 

 

 

 

 

 

Вывод z*10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z := frac(x)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x := x - z

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вывод z

Вывод X

1

Конец

14

Л и с т и н г п р о г р а м м ы н а я з ы к е P a s c a l к з а д а ч е № 5

program Z5; var x,y,z:real; begin

writeLn('введите x'); readLn(x);

// рассчитываем целую часть y:=trunc(x);

writeLn('целая часть числа равна ', y);

// рассчитываем дробную часть z:=frac(x);

writeLn('дробная часть числа равна ', z);

// проверка условия if y>z*10 then

begin

writeLn('целая часть больше'); x:=x*10;

end else

begin

writeLn('дробная часть, умноженная на 10,

больше');

writeLn('удесятеренная дробная часть равна

',z*10);

x:=x-z; end;

writeLn('число после изменения x=',x); end.

15

6. СЛОЖНЫЕ РАЗВЕТВЛЯЮЩИЕСЯ ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕССЫ

Ввести четырехзначное число, выяснить, равны ли первая и последняя цифра в его записи. Если цифры равны и четны, то разделить их на два. Если цифры не равны и первая цифра больше последней, то поменять их местами. Если цифры не равны и первая цифра меньше последней, то поменять местами вторую и третью цифры.

Б л о к - с х е м а к з а д а ч е № 6

 

 

 

 

 

 

2

 

 

1

 

 

 

Начало

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y:= Y mod 1000

 

Y:= Y mod 10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ввод X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2:=Y div 100

 

x4:=Y div 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y := X

 

 

 

 

 

 

 

 

 

 

 

 

 

Y:= Y mod 100

 

Y:= 1000*x1+100*x2+

 

 

 

 

 

 

 

 

10*x3 + x4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1:=Y div 1000

 

 

 

 

 

 

 

 

 

 

Вывод X, Y,

 

x3:=Y div 10

 

 

 

 

 

 

 

 

 

x1, x2, x3, x4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

3

 

 

 

 

 

16

'первая и последняя цифры четны и равны'

x1:=x1 div 2

x4:=x4 div 2

3

X1=x4

x1 mod 2=0

 

 

 

 

 

 

 

 

 

 

 

 

 

'первая и

 

 

 

 

 

 

 

 

 

последняя

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

цифры не равны'

 

 

 

 

 

 

 

 

 

 

 

‘первая и

 

 

 

 

 

 

 

 

 

 

 

 

последняя

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

цифры равны,

 

 

 

 

 

 

 

x1>x4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

но они не

 

 

 

 

 

 

 

 

 

 

 

 

четны’

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y:=x1

 

 

 

 

 

Y:=x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x4:=x4 div 2

 

 

 

 

 

x2:=x3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x4:=Y

 

 

 

 

 

x3:=Y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X:= 1000*x1+100*x2+ 10*x3 + x4

Вывод X

Конец

Л и с т и н г п р о г р а м м ы н а я з ы к е P a s c a l к з а д а ч е № 6

Program Z6;

var X,Y,x1,x2,x3,x4: integer; begin

cls;

writeLn('Введите четырехзначное число'); readLn(X);

//чтобы не потерять исходное число,

//копируем его в Y

Y:=X;

17

x1:=Y div 1000; // первая цифра

Y:= Y mod 1000; // отбрасываем первую цифру

x2:=Y div 100;

// вторая цифра

 

Y:= Y mod 100;

// отбрасываем вторую цифру

x3:=Y div 10;

// третья цифра

 

Y:= Y mod 10;

// отбрасываем третью цифру

x4:=Y div 1;

// четвертая цифра

 

// проверяем, правильно ли мы разложили число

Y:= 1000*x1 + 100*x2 + 10*x3 + x4;

 

writeLn('на входе было ', X, ', на выходе

получилось ', Y);

 

 

writeLn('1-я цифра:', x1);

 

writeLn('2-я цифра:', x2);

 

writeLn('3-я цифра:', x3);

 

writeLn('4-я цифра:', x4);

 

if x1=x4 then

 

 

begin

 

 

if x1 mod 2=0 then

 

begin

 

 

writeLn('первая и последняя цифры

четны

и равны');

 

 

x1:=x1 div 2;

 

x4:=x4 div 2;

 

end

 

 

else

 

 

writeLn('первая и последняя цифры

равны,

но они не четны');

 

 

end else

18