Автор: Пользователь скрыл имя, 05 Ноября 2012 в 13:14, контрольная работа
Задание 1. Позиционные системы счисления
Представить числа в четырех системах счисления 10-ой, 2-ой, 8-ой и 16-ой:
Целые числа Действительные числа
Задание 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
Читаем и записываем с конца: 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+
= 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. Представить (перевести)
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;
- Три символа Решения,
- Четыре символа Процесс,
- Три символа Процесс, которые присваивают переменной 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.
14.66,-8.99,-8.72,21.27,-17.
-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 с.