Министерство цифрового развития, связи и массовых коммуникаций Российской Федерации Сибирский государственный университет телекоммуникаций и информатики Институт заочного образования Лабораторно-практическая работа № 1 по дисциплине: «Информатика и программирование» ч.1 Представление данных в ЭВМ и основы алгоритмизации Выполнил: Соболев Р.В. Группа: ПИТ-90 Вариант: 4 Проверил: Полетайкин А.Н. Новосибирск, 2022 год Тема: Представление данных в ЭВМ и основы алгоритмизации Цель: изучение способов представления информации в памяти ЭВМ, освоение принципов цифрового кодирования информации в ЭВМ. Задание 1. В приложении А выбрать исходные данные (ИД) согласно номеру своего варианта. 2. Представить десятичное число 1а в двоичной и шестнадцатеричной системе счисления в формате байт1. 3. Представить десятичные числа 1а, 1б и -1в в двоичной и шестнадцатеричной системе счисления в формате слова и двойного слова2. 4. Зашифровать данный текст 2, используя таблицу ASCII-кодов. 5. Расшифровать данный текст 3, используя таблицу ASCII-кодов. 6. Составить программу на языке С реализующую указанные в пп. 2 – 5 преобразования и выводящую их на дисплей. Коды выводить в формате dec и hex3. 7. Отладить программу и получить результаты. 8. Добавить в программу код для вычисления значения функции z (см. функцию преобразования 1 в приложении Б), приняв за x число А, а за y число В. Подтвердить расчет ручным простчетом. 9. Составить блок-схему линейного алгоритма для программы4. 10.Сделать выводы. Примечания: 1. В задании 2 в число "1а" разряд сотен заменить нечетным вариантам на ноль, четным вариантам – на единицу. 2. В задании 3 "-1в" означает целую часть числа 1в со знаком "минус". 3. При программировании задания 5 необходимо использовать несколько инструкций (по количеству кодов) 4. При составлении блок-схемы использовать символы 1, 2, 7 и 8. Вариант 4 1. а) 216(10); б) 336(10); в) 741,125(10); г) 712,375(10); д) 184,14(10). 2. Computer. 3. 84 88 91 8A 8E 82 8E 84. Приложение Б: 4 z=25*x+37*y x e sin( x), при x 3,1 y 2 cos ( x), при x 3,1 Решение Представим десятичное число 116 в двоичной и шестнадцатеричной системе счисления в формате байт. 1) модуль в двоичной форме 2) дописываем нули 3) в 16-ричном виде 1110100 01110100 74 Представим десятичное число 216 в двоичной и шестнадцатеричной системе счисления в формате слова и двойного слова. Формат слова 1) модуль в двоичной форме 1101 1000 2) дописываем нули 0000 0000 1101 1000 3) в 16-ричном виде 00D8 Формат двойного слова 1) модуль в двоичной форме 1101 1000 2) дописываем нули 0000 0000 0000 0000 0000 0000 1101 1000 3) в 16-ричном виде 000000D8 Представим десятичное число 336 в двоичной и шестнадцатеричной системе счисления в формате слова и двойного слова. Формат слова 1) модуль в двоичной форме 1 0101 0000 2) дописываем нули 0000 0001 0101 0000 3) в 16-ричном виде 0150 Формат двойного слова 1) модуль в двоичной форме 1 0101 0000 2) дописываем нули 0000 0000 0000 0000 0000 0001 0101 0000 3) в 16-ричном виде 00000150 Представим десятичное число -741 в двоичной и шестнадцатеричной системе счисления в формате слова и двойного слова. Формат слова 1) модуль в двоичной форме 10 1110 0101 2) дописываем нули 0000 0010 1110 0101 3) инвертируем 1111 1101 0001 1010 4) прибавляем единицу 1111 1101 0001 1011 5) в 16-ричном виде FD1B Формат двойного слова 1) модуль в двоичной форме 10 1110 0101 2) дописываем нули 0000 0000 0000 0000 0000 0010 1110 0101 3) инвертируем 4) прибавляем единицу 5) в 16-ричном виде 1111 1111 1111 1111 1111 1101 0001 1010 1111 1111 1111 1111 1111 1101 0001 1011 FFFFFD1B Зашифровать данный текст “Computer”, используя таблицу ASCII-кодов: 43 6F 6D 70 75 74 65 72 Расшифруем данный текст “84 88 91 8A 8E 82 8E 84”, используя таблицу ASCII-кодов: ДИСКОВОД Составим программу на языке С, реализующую указанные в пп. 2 – 5 преобразования и выводящую их на дисплей. #include <iostream> #include <stdio.h> #include <stdlib.h> using namespace std; void main() { setlocale(LC_ALL, "russian"); char a = 116; int b = 216; int c = 336; int d = -741; printf("Число 116 (dec): %d\n", a); printf("Число 116 (hex): %X\n", a); printf("Число 216 (dec): %d\n", b); printf("Число 216 (hex): %X\n", b); printf("Число 336 (dec): %d\n", c); printf("Число 336 (hex): %X\n", c); printf("Число -741 (dec): %d\n", d); printf("Число -741 (hex): %X\n", d); printf("\nComputer (dec):\n%d %d %d %d %d %d %d %d\n", 'C', 'o', 'm', 'p', 'u', 't', 'e', 'r'); printf("Computer (hex):\n%X %X %X %X %X %X %X %X\n", 'C', 'o', 'm', 'p', 'u', 't', 'e', 'r'); printf("\n44 49 53 43 4F 56 4F 44 = %c %c %c %c %c %c %c %c\n", 0x44, 0x49, 0x53, 0x43, 0x4F, 0x56, 0x4F, 0x44); float x = 216; float y = 336; float z = 25 * x + 37 * y; printf("\nz = %.3f\n", z); system("pause"); } Результаты Добавим в программу код для вычисления значения функции z=25*x+37*y, приняв за x число А, а за y число В. float x = 216; float y = 336; float z = 25 * x + 37 * y; printf("\nz = %.3f\n", z); Результаты Сделаем ручной просчет: z = 25 * x + 37 * y = 25 * 216 + 37 * 336 = 5400 + 12432 = 17832 Блок-схема алгоритма Выводы Изучили способы представления информации в памяти ЭВМ, освоили принципы цифрового кодирования информации в ЭВМ.