Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metod_lab_chast_1.doc
Скачиваний:
51
Добавлен:
01.02.2015
Размер:
1.43 Mб
Скачать

33

ЗМІСТ

ЗМІСТ 3

Лабораторна робота №1 4

Лабораторна робота № 2 6

ЛАБОРАТОРНА РОБОТА № 3 14

ЛАБОРАТОРНА РОБОТА № 4 17

ЛАБОРАТОРНА РОБОТА № 5 19

ЛАБОРАТОРНА РОБОТА № 6 23

ЛАБОРАТОРНА РОБОТА № 7 26

ЛАБОРАТОРНА РОБОТА № 8 29

СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ 33

Лабораторна робота №1

Тема: внутрішнє подання числових даних.

Мета: отримати та закріпити знання про внутрішнє (машинне) подання числових типів даних у мовах програмування.

Теми для попередньої роботи:

  • інформація та її подання в ЕОМ;

  • адресація пам’яті;

  • числові типи даних: цілі та дійсні;

  • похибки подання дійсних чисел;

  • статичні структури даних - масиви.

Загальні відомості

Дані цілого типу зберігаються у пам’яті ЕОМ у додатковому коді. Самий старший біт самого старшого байта пам’яті, що виділяється для зберігання цілих чисел, вважається знаковим.

Дані дійсних типів подаються у пам’яті у вигляді таких складових: знак мантиси, нормалізована мантиса та характеристика. Усі складові записуються у прямому коді.

Характеристика (Х) визначається так: Х = 2n-1 + р – 1,

де р – порядок числа, що визначається при його нормалізації;

n – кількість розрядів, що виділяються на характеристику, визначається типом.

Нормалізована мантиса (М) належить інтервалу: 1 ≤ М < 2. Ціла частина нормалізованої мантиси, як правило, у пам’ять не записується. Це так звана схована одиниця. Самий старший біт самого старшого байта пам’яті, що виділяється для зберігання дійсних чисел, є знаковим.

Типове завдання

Видати на монітор двійкове подання даних цілого типу без знака.

Текст програми

#include <iostream>

#include <conio.h>

using namespace std;

void BYTE(unsigned char A) // виведення вмісту байта

{

for(int bit = 128; bit >= 1; bit >>= 1)

cout << (A & bit ? '1' : '0');

cout << ' ';

}

void main (void)

{

system("chcp 1251 > nul"); // для роботи з кирилицею

unsigned x;

cout<<"Уведіть ціле число без знака: " ;

cin >> x;

unsigned char *p = (unsigned char*) &x;

for(int byte = 0; byte < sizeof(unsigned); byte++, p++ )

BYTE(*p);

cout << endl;

getch();

}

Результат роботи програми

Уведіть ціле число без знака: 258

00000010 00000001 00000000 00000000

Індивідуальні завдання

Написати програму, яка виводить на екран внутрішнє (машинне) подання даних трьох типів. Типи даних обрати по таблиці 1.1 згідно із своїм номером у журналі групи. За результатами тестування програми зробити висновки.

Таблиця 1.1 - Індивідуальні завдання

integer

short int

long int

float

double

long double

[] n-вимірний

1

*

*

1

2

*

*

2

3

*

*

3

4

*

*

1

5

*

*

2

6

*

*

1

7

*

*

2

8

*

*

3

9

*

*

1

10

*

*

2

11

*

*

3

12

*

*

1

13

*

*

2

14

*

*

3

15

*

*

1

16

*

*

2

17

*

*

3

18

*

*

1

19

*

*

2

20

*

*

3

21

*

*

1

22

*

*

2

23

*

*

3

24

*

*

1

Примітка: в таблиці подано типи даних мовою С/C++.

Контрольні питання

1. У вигляді яких складових подаються у пам’яті дані цілих типів?

2. У якому коді подаються у пам’яті цілі дані?

3. Скільки пам’яті виділяється для даних типу коротке ціле, ціле, довге ціле?

4. У вигляді яких складових подаються у пам’яті дані дійсних типів?

5. У якому коді подаються у пам’яті дані дійсних типів?

6. Як будуть представлені в пам’яті числа 255 та -255 в форматі короткого цілого?

7. Як буде представлені в пам’яті числа -2 та 2 в форматі короткого дійсного?

8. Чим визначається похибка подання дійсних чисел?

9. Що таке «прихована одиниця»? Навіщо вона потрібна?

10. З якою точністю видаються дійсні числа?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]