Контрольная работа по информатике

Автор: Пользователь скрыл имя, 05 Ноября 2012 в 13:14, контрольная работа

Описание работы

Задание 1. Позиционные системы счисления
Представить числа в четырех системах счисления 10-ой, 2-ой, 8-ой и 16-ой:

Целые числа Действительные числа

Работа содержит 1 файл

Задание 1.doc

— 55.00 Кб (Скачать)

Задание 1. Позиционные системы  счисления 

Представить числа в четырех системах счисления 10-ой, 2-ой, 8-ой и 16-ой:

 

Целые числа          Действительные числа

888(10) , 606(8) ,

100010001000(2) , 888(16) 88.8(10) , 6.06(8) ,

                               110110.11011(2) , 88.8(16)

 

1.1  Представить (перевести) целые числа в четырёх системах счисления

10-ой (Dec), 2-ой (Bin), 8-ой (Oct), и 16-ой (Hex):

 

888(10) , 606(8) ,100010001000(2) , 888(16)

 

Перевод числа 888(10) в двоичную систему счисления:

Делим в столбик нацело на 2 покуда возможно

888   2

888   444    2

0    444    222    2

       0     222    111   2

              0     110   55     2

                     1    54     27     2

                           1     26     13    2

                                  1     12    6     2

                                         1    6     3     2

                                              0     2     1    

                                                    1    

                                                                                   

 Читаем и записываем с  конца: 1101111000

Ответ:   888(10) = 1101111000(2)                                                                               

 

Перевод в  восьмеричную систему . Разбиваем на триады, начиная с младшего разряда  и к крайней левой группе дописываем (до полной триады) незначащий нуль:

1101111000= 001 101  111 000  Заменим каждую двоичную  триаду восьмеричным числом:

             1   5    7   0

Ответ:   888(10) = 1101111000(2) = 1570(8)

 

Перевод в  шестнадцатеричную систему. Разбиваем  двоичное число на тетрады, начиная справа:

    11  0111  1000   . Дополним левую  группу до полной тетрады незначащим  нулём.

0011 0111  1000    Заменяем соответствующими шестнадцатеричными  цифрами:

   3    7     8

Ответ:    888(10) = 1101111000(2) = 1570(8) = 378(16)

 

Число 606(8)  

Перевод в  десятичную систему.

606(8) = 6*8^2  + 0*8^1 + 6*8^0 = 512 + 0 + 6= 518(10)

 Перевод  в двоичную систему.   Заменяем  каждую цифру восьмеричного числа  двоичными триадами:

606(8) =  110 000 110

 Перевод  в шестнадцатеричную систему. Число, полученное при переводе в двоичную систему, разбиваем на   тетрады и заменяем их 16-ными цифрами.

   110000110(2)=  0001  1000  0110=  186(16)

Ответ:   606(8) = 518(10) =110000110(2) = 186(16)

 

Число   100010001000(2)

Перевод в  десятичную систему

100010001000(2)=1*2^11+0*2^10+0*2^9+0*2^8+1*2^7+0*2^6+0*2^5+0*2^4+1*2^3+1*2^2+0*2^1+1*2^0=

=  2048+0+0+0+128+0+0+0+8+4+0+1= 2189(10)

Перевод в  восьмеричную систему:

100010001000(2)= 100 010 001 000= 4210(8)

Перевод в  шестнадцатеричную систему:

100010001000(2)= 1000  1000  1000= 888(16)

 

Число  888(16)

Перевод в  десятичную систему

888(16) = 8*16^2 + 8*16^1 + 8*16^0 = 2048+128+8=2184(10)

Перевод в  двоичную систему.

888(16) = 1000  1000 1000  = 100010001000(2)

Перевод в  восьмеричную систему.

888(16) = 100010001000(2) = 100  010  001  000= 4210(8)

 

 

 

1.2. Представить (перевести) действительные  числа в четырёх системах счисления  10-ой, 2-ой, 8-ой, и 16-ой :

88.8(10) , 6.06(8) , 110110.11011(2) , 88.8(16)   

 

Перевод числа 88,8(10) в 2-ю систему  счисления.

Перевод десятичных цифр, целых и  дробных, в другую позиционную систему  проводится по разным правилам. Поэтому  отдельно переведём целую и дробную  часть

88     2     0,      8 

88    44    2          х 2

0    44    22      2     1       6

       0    22     11   2        х 2   

             0     10   5    2          1       2

    1   4    2      2              х 2   

                        1    2      1  0       4

     0        х 2 

0       8

               

 

Ответ: 88,810 = 1011000,11(2)

 

Перевод в 8-ю систему. Разбиваем  полученное двоичное число на триады влево и право от запятой: 001  001 000, 110   крайние триады оказались  не полными, дополняем их приписыванием  нулей. Заменяем триады восьмеричными  цифрами 

Ответ: 88,8(10)  = 110,6

 

Перевод в 16-ю систему. Разбиваем двоичное число на тетрады; влево и вправо от запятой: 0100  1000, 1100. Заменяем тетради  шестнадцатеричными цифрами 

Ответ: 88,8(10) = 48,C(16)

 

Число: 6,06(8)

Перевод в 10-ю систему (с учетом 4 цифр после  десятичной запятой).

 

 

Перевод в 2-ю систему.

6,06(8) = 110, 000 110= 110,00011(2)

 

Перевод в 16-ю систему. Полученное выше двоичное число разбиваем на тетрады влево  и вправо от запятой, и используя  табл. 2, получим.

6,06(8) = 110, 00011(2)= 0110, 0001  1000= 6,18(16)

 

Число: 110110.11011(2)

Перевод в 10-ю систему.

 

Перевод в 8-ю систему. Разбиваем на триады

 

110110.11011(2)=  110  110, 110 110 =66,66(8)

 

Перевод в 16-ю систему. Разбиваем на тетрады  и используем табл. 2.

 

110110.11011(2)=  0011  0110. 1101  1000=  36,D8(16)

 

Число:  88.8(16)

Перевод в 10-ю систему (с точностью  до 4-х знаков).

 

Перевод в 2-ю систему тетрадами

88.8(16) = 1000  1000, 0001(2)= 10001000,0001(2)

Перевод в 8-ю систему триадами

88.8(16) = 10001000,0001(2)= 010  001  000,  000  100= 210,04(8)

 

 

Таблица

соответствий  значений чисел в различных системах счисления

 

Bin Oct  Dec Hex

0 0 0 0

1 1 1 1

10 2 2 2

11 3 3 3

100 4 4 4

101 5 5 5

110 6 6 6

111 7 7 7

1000 10 8 8

1001 11 9 9

1010 12 10 A

1011 13 11 B

1100 14 12 C

1101 15 13 D

1110 16 14 E

1111 17 15 F

10000 20 16 10

 

 

Задание 2. Разветвляющиеся вычислительные процессы.

 

Составить схему вычислительного процесса и написать программу на языке Basic или Visual Basic 6.0.. Входные данные задать самостоятельно.

 

 

Вычислить выражение 

Z = max(A, min(B, C+1, D))

 

Решение:

Введем  промежуточную переменную R  и  следующие обозначения:

 

R= min(B,C+1,D), тогда

Z=max(A, R)

 

Схема вычисления будет содержать следующие символы  действий:

- Начало  и Останов;

- Ввод данных A,B,C.D;

- Три символа Решения, проверяющих  условия B>=C+1? и B>D?  и C+1>D?

- Четыре символа Процесс, присваивающие  значение промежуточной переменной R;

- Три символа Процесс, которые  присваивают переменной Z определенное  значение;

  

 

 

       

 

            Блок-схема вычисления Z = max(A, min(B, C+1, D))

 

 

 

 

 

Для ввода исходных данных и вывода результата используем ввод и вывод  под управлением списка. Исходные данные A, B, C, D будем вводить с  клавиатуры, а результат Z выведем  на дисплей.

Для вычисления  R и результата Z  используем структурный логический оператор IF.

Для “читаемости” снабдим программу  комментариями на русском языке. Признаком комментария является символ “*”  в первой позиции. Операторы Fortran набираются с 7-й позиции.

*       Вычисление Z = max(A, min(B, C+1, D))

*       Ввод исходных  данных А,В, C, D

                READ (*,*) A,B,C,D

*       Вычисление R = min(B,C+1,D)

                IF ( B <= C+1) THEN

                        IF  C+1>D  THEN R = D ELSE R=C  ENDIF

                ELSE

                        IF B<D       THEN R = B ELSE R=D  ENDIF

                ENDIF

*       Вычисление Z = max(A,R)

                IF(A >= R) THEN

                        Z = A

                ELSE

                        Z = R

                ENDIF

*       Печать результата

                WRITE(*,*) ' Z= ',Z

                END

 

Программа на языке Basic

Все переменные в программе имеют  тип Variant. Данные в переменные А, В, C, D вводятся с клавиатуры, а значение переменной Z выводится на экран  дисплея. Ввод и вывод осуществляется под управлением списка. 

 

‘       Вычисление Z = max(A, min(B, C+1, D))

 

‘       Ввод исходных данных А,В, C, D

                INPUT ‘Введите A,B,C,D:’, A,B,C,D

‘       Вычисление R = min(B, C+1, D)

                IF ( B <= C+1) THEN

                        IF  C+1>D  THEN R = D ELSE R=C  ENDIF

                ELSE

                        IF B<D       THEN R = B ELSE R=D  ENDIF

                ENDIF

‘       Вычисление Z = max(A,R)

                IF(A >= R) THEN

                        Z = A

                ELSE

                        Z = R

                ENDIF

‘        Печать результата

                PRINT  ' Z= ' ; Z

                END

 

 

 

Задание 3. Циклические вычислительные процессы

 

Составить схему вычислительного  процесса и написать программу на языке Basic или Visual Basic 6.0. Входные данные задать самостоятельно.

 

Даны массивы Xi , i=1,…,10. и Yj , j=1,2,…,15. Найти максимальные элементы массивов Xmax и Ymax. Определить, какой элемент  меньше Xmax или Ymax и на сколько.

 

 

 

 

 

            Блок-схема алгоритма решения  задачи:

 

 

 

 

 

Текст программы на языке Basic. Массивы A и B определены явно и имеют тип Single (действительные числа с обычной  точностью). Остальные переменные имеют  тип Variant. Ввод данных в массивы X и Y осуществляется в использование оператора DATA непосредственно из программы. Вывод производится на экран дисплея осуществляется под управлением списка. 

 

‘   Поиск минимальных элементов  в массивах и сравнение их

          DIM X(10) as Single, Y(15) as Single

‘    Ввод массивов

        DATA -20.42,-11.80,-19.90, 44.86, 47.98,-9.86,-22.17,-33.96,-33.72,

           14.66,-8.99,-8.72,21.27,-17.38,13.32,-29.24,-31.40,8.34,-41.93,

           -4.20,40.57,-23.86, 28.52,-12.11,-21.03

           FOR I = 1 TO 10

              READ X(I)

           NEXT I

           FOR J = 1 TO 15

                READ Y(J)

           NEXT J

‘    Задание начальных  значений

          Xmin = X(1)

          Ymin = Y(1)

‘     Организация цикла  по параметру I. Выбор Xmin

           FOR I = 2 TO 10

‘      Выбор минимального элементов массива X и сохранение в Xmin

                  IF(X(I) < Xmin )THEN 

                        Xmin = X(I)

                  ENDIF

            NEXT I

‘      Организация цикла  по параметру J. Выбор Ymin

             FOR J = 2 TO 15

‘      Выбор минимального элементов массива Y и сохранение в Ymin

                    IF(Y(J) < Ymin)THEN 

                            Ymin = Y(J)

                    ENDIF

              NEXT J

‘       Печать Xmin и Ymin

              PRINT ’ Xmin=’,Xmin,’ Ymin=’,Ymin

‘       Сравнение |Xmin| и |Ymin|

               IF(Xmin) > (Ymin))THEN

                        PRINT ’ |Xmin| больше или равен |Ymin|’

               ELSE

                        PRINT ’ |Ymin| больше |Xmin|’

              ENDIF

              END

 

Литература

 

1. Единая система программной документации. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения. Гост 19.701-90 (ИСО 5807-85).

2. Кетков Ю.Л., Кетков А.Ю. Практика программирования: Бейсик, Си, Паскаль. Самоучитель. Спб.: БХВ – Петербург, 2001. – 480 с.

3. Глушаков С.В. Сурядный А.С. Программирование на Visual Basic 6.0. М.: изд. «Фолио», 2005. – 497с.

4. Райтингер М., Муч Г. Visual Basic 6.0. перевод с нем. Киев: «Ирина» BHV. 2001.-285с.

5. Браун С. Visual Basic 6.0. Учебный курс. СПб. «Питер». 2001.-576 с.

6. Варфоломеев В.И.  Программные средства офисного назначение. Практикум М.: МГУК, 2001

7. Хэдворсон М., М. Янг Эффективная работа с Microsoft office 2000 М.: Питер, 2001 - 1232 с.

8. Информатика. Учебник для вузов. Под ред. Симоновича С.В. СПб.: «Питер», 2006.-640 с.


Информация о работе Контрольная работа по информатике