- •Информатика
- •1. Моделирование
- •1.1. Формы представления моделей формализация
- •1.2. Системный подход к моделированию
- •1.3. Типы информационных моделей
- •1.4. Этапы разработки и исследования модели на компьютере
- •Системное программное обеспечение
- •Средства программирования (инструментарий технологии программирования)
- •Краткая характеристика языков программирования.
- •Ассемблерные языки программирования
- •Алгоритмические языки
- •Программные продукты для создания приложений
- •Объектно-ориентированный подход к программированию
- •Алгоритмизация
- •1. Разветвляющийся алгоритм.
- •2. Циклические алгоритмы.
- •Структура и конструкция программы
- •Перевод правильных десятичных дробей
- •Арифметические действия с двоичными числами
- •Представление двоичных чисел в прямом, обратном и дополнительных кодах.
- •Сложение двоичных чисел в компьютере. Модифицированный код.
- •Вывод с использованием функции printf и fprintf
Перевод правильных десятичных дробей
Выполняется последовательным умножением дробей на основание соответствующей системы, в которую дробь переводится. Перемножаются только дробные части, а целые части произведений образуют результат, начиная с первого. Умножение продолжается до тех пор, пока в результате не получатся все нули.
Пример: перевести число 0.1875(10) 0.0011(2) 0.14(8) 0.3(16)
Проверка: 0.14(8) 1*8-1 + 4*8-2 = 0.125 + 0.0625 = 0.1875(10)
0.3(16) 3*16-1 = 0.1875(10)
Для дробей взаимный перевод из двоичной в восьмеричную или шестнадцатеричную системы менее удобен, чем для целых чисел.
0.001|1(2) 1*2-2 | 1*2-1 = = 0.14(8)
Здесь три позиции вправо от запятой соответствуют 2-1, 2-2 и 2-3. Перевод неправильных дробей выполняется аналогично, но раздельно для целой и дробной части. Перевод в десятичную систему выполняется по степенному ряду с основанием соответствующей системы, из которой число переводится. Все числа ряда суммируются.
Арифметические действия с двоичными числами
1. Сложение двоичных чисел выполняется по правилам:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10
Пример: 1100 + 101 = 10001 (12 + 5 = 17)
Проверка: 1*24 + 1*20 = 16 + 1 = 17
2. Вычитание двоичных чисел выполняется по правилам:
0 – 0 = 0
1 – 0 = 1
1 – 1 = 0
10 – 1 = 1
Если при вычитании занимается единица старшего разряда, то она равна основанию.
10001 – 101 = 1100
3. Умножение двоичных чисел выполняют по правилам:
0 * 0 = 0
0 * 1 = 0
1 * 0 = 0
1 * 1 = 1
При умножении используют правила умножения и сложения.
111 * 101 = 100011 (7 * 5 = 35)
4. Деление двоичных чисел выполняют по правилам умножения и вычитания.
100011 : 101 = 111
Решается в столбик.
27.04.2012 (пт)
Рассмотрим работу функции fscanf.
Управляющая строка рассматривается слева направо. Если очередным символом является символ пробела или ‘\t’ или ‘\n’, то в исходных данных (во входном потоке) пропускаются все подряд идущие символы пробельной группы, пока не встретится другой символ. Если в управляющей строке встретится формат, начинающийся с символа ‘%’, то из входного потока считывается последовательность символов до пробела. Последовательность преобразуется в кодовый формат в соответствии с типом формата и записывается по адресу, заданному в соответствующем аргументе, то есть запись типа ‘&i’ означает адрес, по которому в оперативную память размещается переменная ‘i’. Если до символа пробела считается символ, который не допускается в записи читаемого значения, то ввод по текущему формату остановится на этом символе. Символ в управляющей строке, который следует за символом ‘%’ указывает способ преобразования символов из входного потока в кодовый формат в соответствии с нижеследующей таблицей.
Важно, чтобы число форматов и число аргументов функции fscanf должно быть одинаковым. Если в управляющей строке считался символ, отличный от пробела и символа ‘%’, то функция fscanf считывает очередной символ из входного потока. При этом, если считанный символ не соответствует символу в управляющей строке, то функция fscanf прерывает работу и несоответствующий символ остается во входном потоке. При соответствии прочитанный символ пропускается, и функция продолжает работу. Такая особенность позволяет организовать так называемый «неслепой ввод». Это означает, что во входном потоке из файла исходных данных с помощью лидирующих символов можно указать к какой переменной относится вводимое значение.
Работа 2.