
- •Загальні методичні вказівки
- •Лабораторна робота № 1 Представлення в пам’яті комп’ютера даних цілих та дійсних типів
- •Тривалість роботи
- •Основні теоретичні положення
- •Порядок виконання роботи та методичні рекомендації щодо виконання роботи
- •Вимоги до оформлення звіту
- •Контрольні запитання
- •2. Знайти внутрішні представлення впк цілих та дійсних типів даних:
- •2.Індивідуальне завдання на лабораторну роботу
- •3.Алгоритм розв’язання задачі.
- •4.Система тестів
- •Лабораторна робота № 2 Перетворення типів даних
- •Вибір індивідуального завдання
- •Тривалість роботи
- •Основні теоретичні положення
- •Порядок виконання роботи та методичні рекомендації щодо виконання роботи
- •Вимоги до оформлення звіту
- •Контрольні запитання
- •Постановка задачі
- •3. Хід роботи Завдання 1
- •Завдання 2
- •4. Додаток
- •Лабораторна робота № 3 Структура даних стек
- •Вибір індивідуального завдання
- •Тривалість роботи
- •Основні теоретичні положення
- •Порядок виконання роботи та методичні рекомендації щодо виконання роботи
- •Вимоги до оформлення звіту
- •Контрольні запитання
- •Постановка задачі
- •3. Динаміка вмісту стеку(або масиву)
- •4. Алгоритм розв’язання задачі
- •5. Результати виконання програми
- •Лабораторна робота № 4 Структура даних черга
- •Вибір індивідуального завдання
- •Тривалість роботи
- •Теоретичні відомості
- •Порядок виконання роботи та методичні рекомендації щодо виконання роботи
- •Вимоги до оформлення звіту
- •Контрольні запитання
- •Постановка задачі
- •3. Динаміка вмісту черги(або деку)
- •4. Алгоритм розв’язання задачі
- •5. Результати виконання програми
- •Лабораторна робота № 5 Структура даних список
- •Вибір індивідуального завдання
- •Тривалість роботи
- •Основні теоретичні положення
- •Порядок виконання роботи та методичні рекомендації щодо виконання роботи
- •Вимоги до оформлення звіту
- •Контрольні запитання
- •2. Постановка задачі
- •3. Алгоритм розв’язання задачі.
- •4. Динаміка вмісту стеку.
- •Результати виконання програми
- •Лабораторна робота № 6 Методи сортування. Алгоритм вибірки
- •Індивідуальне завдання
- •Тривалість роботи
- •Основні теоретичні положення
- •Порядок виконання роботи та методичні рекомендації щодо виконання роботи
- •Вимоги до оформлення звіту
- •Контрольні запитання
- •2. Теоретичні відомості
- •Завдання:
- •Код програми
- •Лабораторна робота № 7 Методи сортування. Алгоритм бульбашки
- •Індивідуальне завдання
- •Тривалість роботи
- •Основні теоретичні положення
- •Порядок виконання роботи та методичні рекомендації щодо виконання роботи
- •Вимоги до оформлення звіту
- •Контрольні запитання
- •2. Теоретичні відомості
- •Завдання:
- •Перелік рекомендованих джерел
3.Алгоритм розв’язання задачі.
Ми повинні показати представлення в пам’яті комп’ютера цілих та дійсних типів даних, з якими оперує наша програма. Алгоритм полягає в впорядкованому зчитуванні байтів збережених у пам’яті комп’ютера, за допомогою вказівників та посилань.
В пам’яті комп’ютера змінна типу floatзаймає 4 байти, в яких один біт виділяється під знак, 8- під порядок,23- під мантису.
4.Система тестів
4.1
Додатнє
число 75 типу int
в пам'яті комп’ютера зберігається в
прямому двійковому
коді
і займає 4 байти:
0000 0000 0000 0000 0000 0000 0100 1011
В пам’яті комп’ютера цілі числа зберігаються у зворотному порядку розміщення байт числа:
0100 1011 0000 0000 0000 0000 0000 0000
Результат в 16-ковій системі числення: 4B 00 00 00.
4.2
Від'ємне
число -375 типу longint
в пам'яті комп’ютера зберігається в
доповняльному двійковому коді і займає
4 байти: - 37510
=
-17716
=
-
2
0000 0000 0000 0000 0000 000101110111 - прямий код;
1111 1111 1111 1111 1111 111010001000 - обернений код;
+ __ ______________________ 1
1111 1111 1111 1111 1111 111010001001 - доповняльний код;
FFFFFE89 - в 16- ковій системі числення
В пам’яті комп’ютера зберігається у зворотному порядку розміщення байт числа:
1001 1000 1110 1111 1111 1111 1111 1111
Результат в 16- ковій системі числення: 89FEFFFF.
4.3
Розглянемо, як в пам'яті комп’ютера зберігається додатнє число 117,116 типу float.
Перевід цілої частини:
117/16=7 остача 5
7/16=0 остача 7
=>11710=7516
Перевід дробової частини:
0, 116 * 16 = 1,856 0, 856 * 16 = 13,696(1310 = D16) 0, 696 * 16 = 11,136 (1110 = B16) 0, 136 * 16 = 2,176 0,176 * 16 = 2,816 |
=>0,11610= 0,1DB2216 |
Отже: 117,11610=75,1DB2216=01110101,000111011011 0010 00102
Нормалізація: 01,110101000111011011 001000102*100110
Заокруглення:
1 ,110101000111011011 0010 0│01
+ _________ 0
1,110101000111011011 0010 0
Визначення мантиси: m=110101000111011011 0010 0
Визначення зміщеного порядку: е = 12710 + 610= 13310= 8516= 100001012
Визначення знакового розряду: s=0 (бо число додатнє).
Схема внутрішнього представлення:
s |
e |
m |
1 біт |
8 біт |
23біт |
Зборка за схемою:
s |
e |
m |
0 |
10000101 |
1101010001110110110 0100 |
В 16- ковійсистемі
0 100 0010 1110 1010 0011 1011 0110 0100 2 = 42 EA 3B 6416
В пам’ятікомп’ютера буде зберігатися у зворотному порядкурозміщення байт числа:
0 110 0100 0011 1011 1110 1010 0100 0010
Результат в 16- ковій системі числення: 64 3BEA 42
4.4
Представлення змінної f2:
f2=-234.232
Перевід цілої частини:
-23410=-EA16
Перевід дробової частини:
0, 232 * 16 =3,712 0, 712 * 16 = 11,392(1110 = B16) 0, 392 * 16 = 6,272 0, 272 * 16 = 4,352 0,352 * 16 = 5,96 |
=>0.23210= 0,3B645 16 |
Отже:
-234.23210=-EA,3B64516=11101010,001110110110010001012
Нормалізація:
1,1101010001110110110010001012*100111
Заокруглення:
1 ,11010100011101101100100│01
+ _______ 0
1,11010100011101101100100
Визначення мантиси: m=11010100011101101100100
Визначення зміщеного порядку: е = 12710 + 710= 13410= 8616= 100001102
Визначення знакового розряду: s=1
Схема внутрішнього представлення:
s |
e |
m |
1 біт |
8 біт |
23біт |
Зборка за схемою:
s |
e |
m |
1 |
10000110 |
11010100011101101100100 |
В 16- ковійсистемі:
1100
0011
0110
1010
0011
1011
0110
0100
=
С3
6A
3B
6416
В пам’яті комп’ютера буде відображатись наступним чином:
64 3B 6AC3
5.Результати виконання програми.
Додатки:
Текст програми:
#include<stdio.h>
#include<conio.h>
#include<iostream>
int main (void)
{
// створення та ініціалізація змінних
int i;
int i1=75;
int i2=-375;
float f1 = 117.116;
float f2 = -234.232;
unsignedchar *vi1=(unsignedchar *)(&i1);
for (int i=0;i<sizeof(i1);i++)
//вивід змінних
printf("%02X ",vi1[i]);
printf("\n");
unsignedchar *vi2=(unsignedchar *)(&i2);
for (i=0;i<sizeof(i2);i++)
printf("%02X ",vi2[i]);
printf("\n");
unsignedchar *vf1=(unsignedchar *)(&f1);
for (i=0;i<sizeof(f1);i++)
printf("%02X ",vf1[i]);
printf("\n");
unsignedchar *vf2=(unsignedchar *)(&f2);
for (i=0;i<sizeof(f2);i++)
printf("%02X ",vf2[i]);
printf("\n");
getch();
return 0;
}