- •Введение
- •1. Общие сведения о микроэвм. Выбор языка программирования
- •1.1. Общие сведения о микроЭвм.
- •1.2. К выбору языка программирования
- •2. Системы счисления микроэвм. Двоичная арифметика. Разрядные сетки. Прямой и дополнительный коды
- •2.1. Системы счисления
- •2.2. Двоичная арифметика
- •2.3. Разрядные сетки микроЭвм
- •2.4. Прямой и обратный коды
- •3. Загрузка языка basic – интерпретатора. Основные понятия языка. Получение листинга простейшей программы
- •3.1. Загрузка языка basic – интерпретатора
- •3.2. Основные понятия языка basic
- •3.2.1. Алфавит языка
- •3.2.2. Условные обозначения
- •3.2.3. Константы
- •3.2.4. Переменные
- •3.2.5. Стандартные функции
- •3.2.6. Арифметические выражения
- •3.2.7. Строки и операторы
- •3.3. Оператор remark
- •3.4. Оператор присваивания
- •3.5. Операторы окончания программы
- •3.6. Команда выполнения программы
- •3.7. Отладка и редактирование программы
- •3.8. Основные команды языка gw-basic
- •4. Программирование линейных вычислительных процессов
- •4.1. Линейный вычислительный процесс
- •4.2. Оператор печати для вывода информации на экран
- •4.3. Вывод информации на печатающее устройство
- •4.4. Операторы задания начальных значений и ввода данных
- •4.5. Оператор восстановления блока данных
- •3Адание 2.
- •5. Программирование разветвляющихся вычислительных процессов
- •5.1. Разветвляющийся процесс
- •5.2. Выражения отношений
- •5.3. Логические функции
- •5.4. Приоритет выполнения всех операций
- •5.5. Операторы безусловного перехода
- •5.6. Оператор условного перехода
- •5.7. Оператор on
- •5.8. Решение нелинейных уравнений
- •5.8.1. Метод простой итерации
- •5.8.2.Метод Ньютона
- •5.8.3.Метод деления пополам
- •6. Диалоговый режим работы. Программирование циклических процессов
- •6.1. Диалоговый режим
- •6.2. Оператор input
- •6.3.Циклические вычислительные процессы
- •6.4.Итерационные циклы
- •6.5. Циклы с параметром
- •6.6. Операторы for и next
- •6.7. Вложенные циклы
- •6.8. Операторы while – wend
- •6.9. Операторы do – loop
- •7. Обработка массивов
- •7.1.Массивы
- •7.2. Оператор dim
- •7.3. Обработка массивов
- •7.4. Ввод массивов
- •7.5. Вывод массивов
- •7.6. Использование массивов в вычислениях
- •7.7. Функция tab
- •8. Использование массивов в вычислениях
- •9. Функции и подпрограммы пользователя
- •9.1. Функции пользователя
- •9.2. Подпрограммы пользователя
- •10. Графические средства языка basic
- •10.1. Передний план, фон и окантовка
- •10.2. Режимы работы экрана
- •10.3. Координаты точек на экране
- •10.4. Оператор color в текстовом режиме
- •10.5. Оператор color в графическом режиме
- •10.6. Оператор pset
- •10.7. Оператор line
- •10.7.1 Построение ломаных линий
- •10.10. Оператор circle
- •10.10.1. Построение дуг окружностей
- •10.10.2. Построение радиусов
- •10.10.3. Построение эллипсов
- •10.11. Оператор paint
- •10.12. Оператор draw
- •10.12.1. Команды оператора draw
- •10.13. Построение графиков
- •11. Построение динамических изображений
- •Приложение 1
- •2.3. Циклический процесс.
- •Приложение 2
2. Системы счисления микроэвм. Двоичная арифметика. Разрядные сетки. Прямой и дополнительный коды
2.1. Системы счисления
Система счисления - это способ представления любого числа посредством некоторого алфавита символов. Различают непозиционные системы счисления (например, римская), позиционные (десятичная, двоичная, восьмеричная, шестнадцатеричная и др.) и системы с иррациональным основанием (коды Фибоначчи). Количество различных цифр в позиционной системе называют основанием системы S .
Любое число N в позиционной системе с основанием S представляется формулой
, (2.1)
где k - количество цифр в числе N; a - любые из S цифр системы счисления.
Если найдено представление числа N в виде (2.1), то само число можно записать в виде:
(2.2)
Например, если десятичное число выражается полиномом , то само число равно 125,1510.
В двоичной системе счисления (2 с/с) используются только две цифры: 0 и 1; в восьмеричной (8 с/с) - восемь цифр: 0-7; в шестнадцатеричной (16 с/с) - десять цифр: 0-9 и шесть букв: А, В, С, D , Е, F. МикроЭВМ так же, как и другие ЭВМ, работают с информацией, представленной в 2 с/с.
Для связи оператора с микроЭВМ (для ввода и вывода данных, команд, адресов) используется 8 с/с (микроЭВМ типа DEC) или 16 с/с (микроЭВМ типа INTEL), так как в 2 с/с запись информации получается длинной и неудобной для оператора.
Перевод чисел из 10 с/с в другую позиционную систему с основанием S осуществляется по разным правилам для целой и дробной частей числа.
Перевод целых чисел. Для перевода целого числа из 10 с/с в систему с основанием (2 с/с, 8 с/с, 16 с/с) необходимо последовательно разделить это число и получаемые частные на основание S до тех пор, пока частное не станет меньше S. Запись числа производится, начиная с последнего частного, с присоединением остатков в последовательности, обратной их получению.
Пример. Перевести число 3310 в 2 с/с.
- |
33 |
2 |
|
|
|
|
|
|
|
|
|
32 |
- |
16 |
2 |
|
|
|
|
|
|
||
|
1 |
16 |
- |
8 |
2 |
|
|
|
|
||
|
|
|
0 |
8 |
- |
4 |
2 |
|
|
||
|
|
|
|
|
0 |
4 |
- |
2 |
2 |
||
|
|
|
|
|
|
|
0 |
2 |
|
1 |
|
|
|
|
|
|
|
|
|
|
0 |
|
|
Запись. 3310 = 1000012 = 418 =2116.
Перевод дробных чисел. Для перевода дробной части из 10 с/с в систему S (2 с/с, 8 с/с, 16 с/с) необходимо умножить эту дробь и дробные части (без учета целых) получающихся произведений на основание S. Запись дроби производится с нуля с добавлением после запятой целых частей (сверху - вниз) получающихся произведений. Если при последовательном умножении после запятой не получаются нули, то перевод осуществляется с заданной точностью.
Пример. Перевести 0,62510 в 2 с/с.
X |
0, |
625 |
|
2 |
|
X |
1, |
250 |
|
2 |
|
X |
0, |
50 |
|
2 |
|
|
1, |
0 |
Запись: 0,62510 = 0,1012 = 0,58 = 0,A16.
В последней записи число 10 заменено символом А в соответствии со способом кодирования в 16 с/с (см. табл.2.1).
Перевод чисел из 10 с/с в 2 с/с можно производить, используя формулу (2.1), а также через 8 с/с или 16 с/с.
Очевидно, что основания 8 с/с и 16 с/с есть степени основания 2 с/с: 23 = 8, а 24 = 16. Следовательно, для записи каждой цифры восьмеричного числа необходимо три двоичных разряда (триада), а для представления каждой цифры шестнадцатеричного числа – четыре разряда (тетрада). Представление десятичных, восьмеричных и шестнадцатеричных целых чисел приведено в табл.2.1.
Перевод двоичных чисел в 8 с/с и 16 с/с. Производится путем разбиения двоичного числа на триады и тетрады соответственно влево и вправо от запятой с последующей заменой триад и тетрад на их символьные эквиваленты в соответствии с табл.2.1. Недостающие позиции в триадах и тетрадах заполняются нулями.
Таблица 2.1. Представление чисел.
10 c/c |
2 c/c |
8 c/c |
16 c/c |
0 |
0000 |
0 |
0 |
1 |
0001 |
1 |
1 |
2 |
0010 |
2 |
2 |
3 |
0011 |
3 |
3 |
4 |
0100 |
4 |
4 |
5 |
0101 |
5 |
5 |
6 |
0110 |
6 |
6 |
7 |
0111 |
7 |
7 |
8 |
1000 |
10 |
8 |
9 |
1001 |
11 |
9 |
10 |
1010 |
12 |
A |
11 |
1011 |
13 |
B |
12 |
1100 |
14 |
C |
13 |
1101 |
15 |
D |
14 |
1110 |
16 |
E |
15 |
1111 |
17 |
F |
Перевод чисел из 8 с/с и 16 с/с в двоичную. Производится заменой каждой цифры соответствующего числа двоичной триадой и двоичной тетрадой согласно таблице 2.1. Для дробных чисел можно написать аналогичную таблицу.
Пример. Перевести 10001,012 в 8 с/c и 16 с/c.
Запись: 010 001,0102 = 21,28
0001 0001,01002 = 11,416