Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти та науки України
Національний університет «Львівська політехніка»
/
ЗВІТ
З лабораторної роботи №1
З дисципліни: «Програмування ч.3 Структури і алгоритми»
"Внутрішнє представлення в пам’яті комп’ютера статичних даних"
1. МЕТА РОБОТИ
Дослідження внутрішнього представлення в пам’яті комп’ютера даних статичної структури.
2. ЗАВДАННЯ НА ЛАБОРАТОРНУ РОБОТУ
Дослідити внутрішнє представлення в пам’яті комп’ютера даних статичної структури. Розглянути основні базові і похідні типи даних:
bool
signed char
unsigned
double
3. СИСТЕМА ТЕСТІВ:
День народження – 29, місяць народження - 5
b = (день народження * 5) % 10 * місяць народження;
Для символьних даних – одна з літер Прізвища (латинські літери, перша - велика, решта - малі):
ch1 = перша літера;
ch2 = друга літера;
ch3 = третя літера;
ch4 = остання літера;
i1 = день народження * 125 ;
i2 = – i1;
i3 = день народження * 215 ;
i4 = – i3;
i5 = день народження * 352 ;
i6 = – i5;
Для дійсних чисел використати такі позначення:
X – день народження, Y – місяць народження, Z = X * Y;
d1 = – Z . X e – Y;
d2 = Z . X e + Y;
d3 = – Z . X e Y;
4. СПЕЦИФІКАЦІЯ ПРОГРАМ
В загальному вигляді прогарма має вигляд:
#include <stdio.h>
#include <conio.h>
void main()
{
int a;
char *cp;
printf("a = ");
a = 29; //надається значення змінної
printf("%d\n",a);
cp = (char*)&a; //Вказівник вказує на перший байт змінної а
for (int i=0;i<sizeof(int)/sizeof(char);i++){ //перебераєтються всі байти змінної
printf("%X",*cp/16);
printf("%X",*cp%16); //значення виводиться в 16 системі числення по пів байта
printf(" ");
cp++; //перехід на наступний байт
}
getch();
}
5, РЕЗУЛЬТАТИ ВИКОНАННЯ ПРОГРАМИ.
BOOL
b = (29*5)%10*5;
Результат: 01
SIGNED CHAR
ch3 = ’b’
Результати:
62
UNSIGNED
I3 = 215*29=6235
Результати:
5B 18 00 00
DOUBLE
D2 = 145.29e5
Результати:
00 00 00 00 3D B6 6B 41
Висновок:
я дослідив внутрішнє представлення в пам’яті комп’ютера статичних структур даних.
ДОДАТКИ:
//тип bool
#include <stdio.h>
#include <conio.h>
void main()
{
bool a;
printf("a = ");
a = (29*5)%10*5;
printf("%d\n",a);
printf("%X",a/16);
printf("%X",a%16);
getch();
}
//тип signed char
#include <stdio.h>
#include <conio.h>
void main()
{
signed char a;
char *cp;
printf("a = ");
a = 'b';
printf("%c\n",a);
cp = (char*)&a;
for (int i=0;i<sizeof(signed char)/sizeof(char);i++){
printf("%X",*cp/16);
printf("%X",*cp%16);
printf(" ");
cp++;
}
getch();
}
//тип unsigned
#include <stdio.h>
#include <conio.h>
void main()
{
unsigned a;
char *cp;
printf("a = ");
a = 215*29;
printf("%d\n",a);
cp = (char*)&a;
for (int i=0;i<sizeof(unsigned)/sizeof(char);i++){
printf("%X",*cp/16);
printf("%X",*cp%16);
printf(" ");
cp++;
}
getch();
}
//тип double
#include <stdio.h>
#include <conio.h>
void main()
{
double a;
char *cp;
printf("a = ");
a = 145.29e5;
printf("%Le\n",a);
cp = (char*)&a;
for (int i=0;i<sizeof(double)/sizeof(char);i++){
printf("%X",*cp);
printf(" ");
cp++;
}
getch();
}
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!