Студопедия — Лабораторная работа №3. Основы машинной арифметики
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Лабораторная работа №3. Основы машинной арифметики

iFirstName, // количество символов в первом имени

iSurname, // количество символов в фамилии

iFullName; // количество символов в полном имени

 

// Вводим исходные данные в стиле С

printf(" Please type initial data:\n\n");

printf(" x=");

scanf("%f",&x);

printf(" z=");

scanf("%f",&z);

printf(" b=");

scanf("%d",&b);

printf(" x2=");

scanf("%f",&x2);

printf(" y2=");

scanf("%f",&y2);

printf(" your FirstName=");

scanf("%s",&FirstName);

printf(" your Surname=");

scanf("%s",&Surname);

// вычисление числителя, знаменателя и результата

// арифметического выражения

Numerator=atan(z)*pow(double(z),1/3.0)*Pi/exp(x)+pow(z,2)-

4.5*pow(10.0,2.5)*sqrt(x)*asin(z);

Denominator=tan(2.7e-3)-acos(z)*log(x)+pow(z,x)+fabs(sin(double(b)))-log10(z);

y=Numerator/Denominator;

// вычисление логического выражения

z2=!a2 && (x2<=y2) || (x2>0);

// вычисление результирующей строки

iFirstName=strlen(FirstName);

iSurname=strlen(Surname);

strcpy(FullName,FirstName);

strcat(FullName," ");

strncpy(FullName+iFirstName+1,Surname,iSurname);

iFullName=strlen(FullName);

// вывод результатов расчета на консоль

printf("\n ******** Final results ********\n\n");

printf(" Arithmetical expression y=%10.5f\n",y);

printf(" Boolean expression z=%d\n",z2);

printf(" My full name - %s\n",FullName);

printf(" Number of characters in full name=%d\n\n",iFullName);

 

return 0;

}

 

4. В заголовочный файл stdafx.h добавьте необходимые объявления стандартных математических функций и констант после комментария // TODO:

 

#include <math.h>; // заголовочный файл для арифметических операций

#define Pi 3.1416 // директива для задания значения констант

const bool a2=true; // объявление глобальных переменных логического типа

const bool b2=false; // которые не меняют свое значение

 

 

5. Выполнить построение проекта командой меню Build \ Build Solution.

6. В случае ошибок проанализировать содержимое окна Output. Для обнаружения места синтаксической ошибки в исходном тексте программы выполнить двойной щелчок левой кнопки мыши на строке с номером ошибки в окне Output. Интегрированная среда укажет предполагаемое место ошибки, а описание возможной ошибки выводится в статус-строке внизу основного окна IDE. После исправления ошибок повторить построение проекта командой меню Build \ Build lab1.exe.

7. Запустить на выполнение созданное консольное приложение командой меню Debug \ Start Without Debugging.

8. Появится окно консоли с результатами выполнения вашего консольного приложения. Минимизируйте консольное окно с результатами, потянув курсором мыши за угол окна (окно консоли можно скопировать командой Alt+PrintScreen в память Clipboard а затем вставить в документ Word отчета Shift+Insert).

 

 

9. Вернуться в среду редактирования нажатием любой клавиши.

10. Для экономии краски принтера при печати отчета рекомендуется инвертировать изображение консольного окна, например, с помощью стандартной программы Paint.

 

 

11. Вставьте рисунок из буфера обмена Shift+Insert.

 

12. Обратите цвета рисунка с помощью команды «Рисунок \ Обратить цвета»

13. Скопируйте измененный рисунок в буфер обмена.

14. Вставьте измененный рисунок в отчет.

 

15. Завершить работу интегрированной среды Microsoft Visual C++, выполнив команду меню File \ Exit.

16. Оформить отчет о проделанной лабораторной работе.

 


Условия вариантов

Вариант № 1

1) Y= ;

2) Z=

 

Вариант № 2

1) Y=

2) Z=

 

Вариант № 3

1) Y=

2) Z=

 

Вариант № 4

1) Y=

2) Z=

 

Вариант № 5

1) Y=

2) Z=

 

Вариант № 6

1) Y= ;

2) Z=

 

Вариант № 7

1) Y=

2) Z=

 

Вариант № 8

1) Y=

2) Z= ;

 

Вариант № 9

1) Y=

2) Z=

 

Вариант № 10

1) Y= ;

2) Z= ;

 

Вариант № 11

1) Y= ;

2) Z=

 

Вариант № 12

1) Y= ;

2) Z=

Вариант № 13

1) Y= ;

2) Z=

 

Вариант № 14

1) Y= ;

2) Z=

Вариант № 15

1) Y= ;

2) Z=

Вариант № 16

1) Y= ;

2) Z=

Вариант № 17

1) Y= ;

2) Z=

Вариант № 18

1) Y=

2) Z=

 

Вариант № 19

1) Y= ;

2) Z=

Вариант № 20

1) Y=

2) Z=

 

Вариант № 21

1) Y= ;

2) Z=

Вариант № 22

1) Y=

2) Z=

Вариант № 23

1) Y=

2) Z= ;


Вариант № 24

1) Y=

2) Z=

 

Вариант № 25

1) Y= ;

2) Z= ;

 

Вариант № 26

1) Y= ;

2) Z=

Вариант № 27

1) Y= ;

2) Z=

 

Вариант № 28

1) Y= ;

2) Z=

 

Вариант № 29

1) Y= ;

2) Z=

 


Вариант № 30

1) Y= ;

2) Z= ;

 

Лабораторная работа №3. Основы машинной арифметики

 

Цель работы. Изучить основы машинной арифметики, представления чисел в прямом, обратном и дополнительном кодах и арифметических операций над ними.

Любые данные (числа, текст, команды программ и др.) в памя­ти компьютера представлены двоичными кодами, которые представ­ляют собой совокупность битов. В частности, двоичный код, содер­жащий 8 бит (говорят: «8 разрядов»), называется байтом. Для хранения данных используют следующие форматы двоичного кода: 8-разрядный (байт), 16-разрядный (полуслово), 32-разрядный (сло­во) и 64-разрядный (двойное слово).

Для выполнения арифметических операций используют специ­альные коды представления чисел, которые позволяют свести опе­рацию вычитания чисел к арифметическому сложению этих кодов. Различают прямой, обратный и дополнительный коды. Прямой код используется для представления отрицательных чисел в памяти ком­пьютера, а также при выполнении операций умножения и деления. Обратный и дополнительный коды применяются для выполнения операции вычитания, которую заменяют операцией сложения чисел с разными знаками: а - b = а + (-b).

В коде числа каждому разряду соответствует определенный эле­мент разрядной сетки. Для записи знака числа в разрядной сетке имеется строго определенный фиксированный разряд, обычно это крайний разряд разрядной сетки.

Замечание. Условимся при записи кода знаковый разряд числа отделять запятой от других разрядов. Если формат числа не указан, будем считать, что число 8-разрядное (байт).

 

Задание 1. Запишите следующие числа в прямом, обратном и дополнительном кодах.

а) 1101011; б) -101011; в) -101101; г) -1100111.

 

Методические указания.

Прямой код целого числа. Под прямым кодом двоичного числа понимают запись самого числа. Значение знакового разряда для по­ложительных чисел определяют равным нулю (0), для отрицательных чисел — единице (1). Например, если для записи кода используется байт, то[I]:

Число Прямой код
+1101 0,0001101
-1101 1,0001101

Крайний левый разряд в прямом коде нами отведен под знак числа, остальные разряды — под само число. Число располагаем в разрядной сетке так, чтобы цифра младшего разряда числа занима­ла крайнюю правую ячейку.

Знаковый разряд —> | 0, | 0 | 0 | 0 | 1 | 1 | 0 | 1 |

 

Обратный код целого числа. Обратный код целого положитель­ного числа совпадает с его прямым кодом. Для отрицательного чис­ла обратный код строится заменой каждого незнакового байта его представления в прямом коде на противоположный (заменим 1 на 0, 0 на 1), знаковый разряд не изменяется.

Число Прямой код Обратный код Замечание
+11011 0,0011011 0,0011011 Число положительное, обратный и прямой коды совпадают
-11011 1,0011011 1,1100100 Число отрицательное, каждый байт, кроме знакового, изменен на противоположный

Пример.

 

Дополнительный код целого числа. Дополнительный код положи­тельного числа совпадает с его прямым кодом. Для отрицательного числа дополнительный код образуется путем получения обратного кода и добавлением к младшему разряду единицы.

Пример.

Число Прямой код Обратный код Дополнительный код
+ 1110 0,0001110 0,0001110 0.0001110
-1110 1,0001110 1,1110001 1,1110010

 

Задание 2. Переведите числа X и Y в прямой, обратный и допол­нительный коды. Выполните сложение в обратном и дополнитель­ном кодах. Результат переведите в прямой код. Полученный резуль­тат проверьте, используя правила двоичной арифметики.

 

а) X = -11010; б) X =-11101; в) X =111010;

Y= 100111; Y = -10011; Y = -101111;

 

г) Х = -101110; д) Х= 1101011; е) X =-11011;

Y = -11101; Y = -1001110; Y =-10111.

 

Методические указания.

При сложении чисел в знаковом разряде могут появиться две цифры, вторую единицу от запятой называют единицей переноса.

При сложении чисел в дополнительном коде возникающая едини­ца переноса в знаковом разряде отбрасывается.

При сложении чисел в обратном коде возникающая единица пе­реноса в знаковом разряде прибавляется к младшему разряду суммы кодов.

Если результат арифметических действий является кодом отри­цательного числа, необходимо преобразовать его в прямой код. При этом обратный код преобразуется в прямой заменой цифр во всех разрядах, кроме знакового, на противоположные. Дополнительный код преобразуется в прямой так же, как и обратный, с последующим прибавлением единицы к младшему разряду.

 




<== предыдущая лекция | следующая лекция ==>
Постановка задачи. Требования Оформить вычисления в виде одного консольного приложения | Файловые системы Windows XP

Дата добавления: 2015-10-12; просмотров: 547. Нарушение авторских прав; Мы поможем в написании вашей работы!



Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Классификация потерь населения в очагах поражения в военное время Ядерное, химическое и бактериологическое (биологическое) оружие является оружием массового поражения...

Факторы, влияющие на степень электролитической диссоциации Степень диссоциации зависит от природы электролита и растворителя, концентрации раствора, температуры, присутствия одноименного иона и других факторов...

Йодометрия. Характеристика метода Метод йодометрии основан на ОВ-реакциях, связанных с превращением I2 в ионы I- и обратно...

ФАКТОРЫ, ВЛИЯЮЩИЕ НА ИЗНОС ДЕТАЛЕЙ, И МЕТОДЫ СНИЖЕНИИ СКОРОСТИ ИЗНАШИВАНИЯ Кроме названных причин разрушений и износов, знание которых можно использовать в системе технического обслуживания и ремонта машин для повышения их долговечности, немаловажное значение имеют знания о причинах разрушения деталей в результате старения...

Различие эмпиризма и рационализма Родоначальником эмпиризма стал английский философ Ф. Бэкон. Основной тезис эмпиризма гласит: в разуме нет ничего такого...

Индекс гингивита (PMA) (Schour, Massler, 1948) Для оценки тяжести гингивита (а в последующем и ре­гистрации динамики процесса) используют папиллярно-маргинально-альвеолярный индекс (РМА)...

Studopedia.info - Студопедия - 2014-2024 год . (0.014 сек.) русская версия | украинская версия