Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Задание 5. Отчет по лабораторной работе №7Стр 1 из 2Следующая ⇒
ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И ПРИКЛАДНОЙ МАТЕМАТИКИ КАФЕДРА МАТЕМАТИЧЕСКОГО И ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИНФОРМАЦИОННЫХ СИСТЕМ АВС и КС
Отчет по лабораторной работе №7
студента 1 курса группы 07011402 Черноморец Дарьи Андреевны
Проверил: Лысых Владимир Витальевич
Белгород 2015 Тема работы: Инфологические основы ЭВМ. Машинные коды. Цель: Освоить способы машинные коды чисел и арифметические операции над числами в машинных кодах. Задание Вариант 7 Изучить теоретический материал. 2. Из таблицы №1 взять, согласно своему варианту, числа А10 и В10 и произвести сними следующие действия: 1. вычислить прямой код чисел; 2. определить обратный код чисел; 3. определить дополнительный код чисел; 4. определить модифицированный код чисел. 5. сложить два числа А10 и В10 с фиксированной точкой в прямом, обратном и дополнительном кодах; 6. произвести умножение и деление чисел; 3. Из таблицы №1 взять, согласно своему варианту, числа А10 и В10 и произвести с ними арифметические операции над двоично-десятичными кодами этих чисел 4. Из таблицы №2 взять, согласно своего варианта, числа А10 и В10 и произвести сними арифметические операции (числа с плавающей запятой). 5. Создать программу сложения двух чисел А10 и В10 с фиксированной точкой в прямом коде. Таблица №1
Таблица №2
Выполнение работы Задание 2 Задание 3 Задание 5 #include " stdafx.h" #include< iostream> using namespace std;
void main() { int a, b, k, k1, k2, k3, r, C[100], D[100], m1, m2, N[100], C1[100], D1[100]; cout< < " Input first number in decimal numeration: "; cin > > a; cout < < " Input second number in decimal numeration: "; cin > > b;
cout < < " First number: a= " < < a < < endl; k1 = 0; //Перевести число a, представленное в десятичной СС, в двоичный код //Запомнить остатки от деления на 2 while (a > 0) { r = a % 2; C1[k1] = r; k1 = k1 + 1; a = a / 2; }
cout < < " Binary code of first number(10): ";
for (int i = 0; i < k1; i++) { C[i] = C1[k1 - 1 - i]; cout< < C[i]; } cout < < endl;
cout < < " Second number: b= " < < b < < endl; k2 = 0;
//Перевести число a, представленное в десятичной СС, в двоичный код while (b > 0) { r = b % 2; D1[k2] = r; k2 = k2 + 1; b = b / 2; } cout < < " Binary code of second number(10): ";
for (int i = 0; i < k2; i++) { D[i] = D1[k2 - 1 - i]; cout < < D[i]; } cout < < endl;
//сделаем введённые числа одинаковой длины в двоичном коде if (k1 > k2) { k = k1; k3 = k1 - k2; //сдвинем на k3 элементов вправо for (int i = k2 - 1; i > = 0; i--) { D[i +k3] = D[i]; } //заполним k3 ведущих нулей for (int i = 0; i < k3; i++) { D[i] = 0; } }//if else { if (k2 > k1) { k = k2; k3 = k2 - k1; //сдвинем на k3 элементов вправо for (int i = k1 - 1; i > = 0; i--) { C[i + k3] = C[i]; } //заполним k3 ведущих нулей for (int i = 0; i < k3; i++) { C[i] = 0; } }//if }//else
m2 = 0;
cout < < " Sum of first and second numbers= ";
for (int i = k - 1; i > = 0; i--) { m1 = C[i] + D[i] + m2; if (m1 < 2) { N[i] = m1; m2 = 0; } else { N[i] = m1 - 2; m2 = 1; if (i == 0) { //сдвинуть всё вправо for (int n = k - 1; n > = 0; n--) { N[n + 1] = N[n]; } N[0] = 1; } } } for (int i = 0; i < k; i++) { cout < < N[i]; } cout < < endl; system(" pause");
}
|