Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти та науки України
Національний університет «Львівська політехніка»
/
ЗВІТ
З лабораторної роботи №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();
}