Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Кафедра ЕОМ
/
Звіт
до лабораторної роботи № 1
з дисципліни «Програмування, частина 3 (Структури даних та алгоритми)»
на тему:
«Подання в пам’яті комп’ютера статичних даних базових типів»
Варіант № 5,0
1. МЕТА РОБОТИ
Дослідження внутрішнього подання в пам’яті комп’ютера базових типів даних статичної структури.
2. ПОСТАНОВКА ЗАДАЧІ
2.1 ррррррррр, 23.05.1999
2.2 Дослідити внутрішнє подання в пам’яті комп’ютера даних статичної структури.
Назви змінних для дослідження згідно варіанту: b,ch1,i5,d3
bool b = (день народження * 5) % 10 * місяць народження;
ch1 = перша літера прізвища (велика);
i5 = день народження * 352 ;
d3 = – Z . X e Y, де: X–день народження, Y–місяць народження, Z=X*Y;
3. АЛГОРИТМ РОЗВ’ЯЗАННЯ ЗАДАЧІ
Для дослідження внутрішнього подання в пам’яті комп’ютера базових типів даних статичної структури нам необхідно розробити програму що буде демонструвати внутрішнє подання пам’яті що виділена під досліджуванні змінні.
Алгоритм розв’язання задачі:
1. Взяти дані за адресою досліджуваної змінної та перетворити їх у символьний масив;
2. Вивести отримані дані у шістнадцятковому форматі;
3. Перевірити вихідні дані (Рис. 1.) програми (Додаток А) з ручними розрахунками.
4. СИСТЕМА ТЕСТІВ
4.1. Завдання 1
Досліджувана змінна - bool b.
Очікуваний результат: (23 * 5) % 10 * 5 = 115 % 50 = 1510 ≈ 1 (true)
Кількість байт що виділяється під тип bool – 1, відповідно подання в памяті компютера – 01.
4.2. Завдання 2
Досліджувана змінна - char ch1
Очікуваний результат: ‘N’ в таблиці SCII має номер 7810 = 4Е16
Кількість байт що виділяється під тип char – 1, відповідно подання в памяті компютера – 4Е
4.3. Завдання 3
Досліджувана змінна - unsigned long i5
Очікуваний результат: 23 * 352 = 809610 = 1FA016
Кількість байт що виділяється під тип unsigned long – 8 (в 64х бітній Linux системі), відповідно подання в памяті компютера– 00 00 00 00 00 00 1F A0
4.4.. Завдання 4
Досліджувана змінна - long double d3
Очікуваний результат: -(23 * 5 + 0.23) * 10^5 = -115.23 * 10^5 = = -1152300010 = … FF502C4816
Кількість байт що виділяється під тип long double - 10, відповідно подання в памяті компютера – FF FF FF FF FF FF FF 50 2C 48.
5. РЕЗУЛЬТАТИ ВИКОНАННЯ ПРОГРАМИ
Рис. 1. Результати виконання програми
Висновок: виконуючи лабораторну роботу дослідив внутрішнє подання в пам’яті комп’ютера базових типів даних статичної структури.
Додаток А
#include<stdio.h>
#include<math.h>
template<typename T>
void showInMemory(T data) {
unsigned char *vx=(unsigned char *)(&data);
for (int i=sizeof data;i>0;i--)
printf("%02X ",vx[i-1]);
printf("\n");
}
void func(int birthDate, int birthMonth){
bool b = (bool)((birthDate*5)%10*birthMonth);
char ch1 = 'N';
unsigned long i5 = (unsigned long)(birthDate*352);
long double intDef = birthDate*birthMonth;
long double doubleDef = (long double)birthDate/100;
long double d3 = -1*(intDef+doubleDef)*((long double)pow(10, birthMonth));
showInMemory(b);
showInMemory(ch1);
showInMemory(i5);
showInMemory(d3);
}
int main (void){
func(23,5);
}
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!