
- •Курсова робота ( частина і )
- •Теоретична частина
- •2.1.4. Дійсний тип
- •2.2. Завдання 2. Внутрішні формати похідних типів
- •2.2.1. Представлення рядку символів в пам’яті комп’ютера.
- •2.2.2. Представлення перерахувань в пам’яті комп’ютера.
- •2.2.3. Представлення масивів в пам’яті комп’ютера.
- •2.2.4. Представлення структур в пам’яті комп’ютера.
- •2) Unsigned b:7;
- •2.2.5. Представлення об'єднань в пам’яті комп’ютера.
- •Double e;
- •2) Unsigned long c;
- •Алгоритм розв’язання задачі
- •Результат виконання программи
Алгоритм розв’язання задачі
3.1. Словесний опис алгоритму
Оголошуємо необхідні змінні. Оголошуємо вказівник на змінну типу “unsigned char” і присвоюємо їй адресу змінної, яку необхідно прочитати. Побайтно зчитуємо дані з пам’яті і виводимо їх в шіснадцятковій системі численя, також виводимо десяткове значення змінної.
3.2. Граф-схема алгоритму
Початок
Ввід х
і = 0
вказівник на y = адреса х
j = розмір х (в байтах)
i > j
Так
Ні
Перевід уі в 16сч
Вивід уі
i = i + 1
Кінець
Результат виконання программи
ВИСНОВКИ
Виконуючи цю курсову роботу я повторив, як визначити внутрішнє представлення цілих, дійсних, логічних та символьних чисел в пам’яті комп’ютера. Також я вивчив багато нового про представлення в пам’яті комп’ютера рядків символів, перерахувань, масивів, структур та об’єднань.
СПИСОК ЛІТЕРАТУРИ
Матвейчук Т. А. Основи представлення данних в пам'яті комп'ютера: Конспект лекцій (частина І ) з дисципліни “Програмування. Частина IIІ. Структури даних та алгоритми". – Львів: Видавництво НУ “Львівська політехніка”, 2010 – 37 с.
Конспект лекцій з дисципліни “Програмування. Частина IIІ. Структури даних та алгоритми".
Вирт Н. Алгоритмы + структуры данных = программы: Пер. с англ. – М.:Мир, 1985.-406 с.
Вирт Н. Алгоритмы и структуры данных: Пер. с англ. – М.:Мир, 1989.-360 с.
Кнут Д. Искусство програмирования, том 1. Основные алгоритмы. – М.:Изд.дом ”Вильямс”, 2001. – 720 с.
ДОДАТКИ
Дотаток А
Текст програми до завдання 1 і 2
#include <stdio.h>
#include <iostream>
#include <locale>
#include <windows.h>
using namespace std;
void main()
{
setlocale(LC_CTYPE,"Russian");
//--------------------------------------------------------------------------------
cout<<"\tЗавдання №1\n";
//--------------------------------------------------------------------------------
cout<<"1.1 Логiчний тип: "<<endl;
bool b = 0;
unsigned char *bb=(unsigned char *)(&b);
for(int i=0;i<sizeof(b);i++) printf("%02X ",bb[i]);
cout<<endl;
//--------------------------------------------------------------------------------
//--------------------------------------------------------------------------------
cout<<"1.2 Символьний тип: "<<endl;
char ch1 = 'M' ;
unsigned char *chh4=(unsigned char *)(&ch1);
for(int i=0;i<sizeof(ch1);i++) printf("%02X ",chh4[i]);
cout<<endl;
//--------------------------------------------------------------------------------
//--------------------------------------------------------------------------------
cout<<"1.3 Цiлий тип: "<<endl;
int i4 = -5160;
unsigned char *ii2=(unsigned char *)(&i4);
for(int i=0;i<sizeof(i4);i++) printf("%02X ",ii2[i]);
cout<<endl;
//--------------------------------------------------------------------------------
//--------------------------------------------------------------------------------
cout<<"1.4 Дiйсний тип: "<<endl;
float d1 =-240.24e-10;
unsigned char *dd2=(unsigned char *)(&d1);
for(int i=0;i<sizeof(d1);i++) printf("%02X ",dd2[i]);
cout<<"\n"<<endl;
//--------------------------------------------------------------------------------
cout<<"\tЗавдання №2\n";
//--------------------------------------------------------------------------------
cout<<"2.1 Рядок символiв: "<<endl;
char string19[] = "\xcb\34\\\xffh 12 \4d4\\\\\n";
string19[0] = '3';
string19 [2] = '1';
string19 [4] = '2';
string19 [6] = '3';
string19 [8] = '9';
string19 [10] = '9';
string19 [12] = '8';
string19 [14] = '8';
for(int i=0;i<17;i++) printf("%02X ",string19[i]);
cout<<endl;
//--------------------------------------------------------------------------------
//--------------------------------------------------------------------------------
cout<<"2.2 Представлення перерахувань: "<<endl;
enum color6 {
BLUE,
GREEN,
CYAN = -1,
RED,
BROWN,
GRAY = -2,
YELLOW,
WHІTE = 0,
MAGENTA,
LІGHTGRAY,
DARKGRAY,
BLACK
} c1= CYAN,
c2= BROWN,
c3= DARKGRAY;
cout<<"Змiнна с1"<<endl;
unsigned char *cc1=(unsigned char *)(&c1);
for(int i=0;i<sizeof(c1);i++) printf("%02X ",cc1[i]);
cout<<endl;
cout<<"Змiнна с2"<<endl;
unsigned char *cc2=(unsigned char *)(&c2);
for(int i=0;i<sizeof(c2);i++) printf("%02X ",cc2[i]);
cout<<endl;
cout<<"Змiнна с3"<<endl;
unsigned char *cc3=(unsigned char *)(&c3);
for(int i=0;i<sizeof(c3);i++) printf("%02X ",cc3[i]);
cout<<endl;
//--------------------------------------------------------------------------------
//--------------------------------------------------------------------------------
cout<<"2.3 Представлення масивiв: "<<endl;
wchar_t array10[][3][2] = {{1,123}, {23,'4', true}};
array10[0][0][0] = 0;
array10[0][0][1] = 144;
array10[0][1][0] = 72;
array10[0][1][1] = 24;
array10[0][2][0] = 48;
array10[0][2][1] = 72;
array10[1][0][0] = 216;
array10[1][0][1] = 216;
array10[1][1][0] = 192;
array10[1][1][1] = 192;
unsigned char *ar1=(unsigned char *)(&array10);
for(int i=0;i<sizeof(array10);i++) printf("%02X ",ar1[i]);
cout<<endl;
//--------------------------------------------------------------------------------
//--------------------------------------------------------------------------------
cout<<"2.4 Представлення структур: "<<endl;
struct str23 {
unsigned b:7;
char c[6];
unsigned char :5;
unsigned e : 3;
char f;
long d;
long double a;
}str;
str.a = 24.240;
str.b = 59 * 32 * 124;
str.c[0] = 'M';
str.c[1] = 'o';
str.c[2] = 'v';
str.c[3] = 'c';
str.c[4] = 'h';
str.d = 764*59*2;
str.e = 24*10*36;
str.f = '8';
unsigned char *struct1=(unsigned char *)(&str);
for(int i=0;i<sizeof(str);i++) printf("%02X ",struct1[i]);
cout<<endl;
//--------------------------------------------------------------------------------
//--------------------------------------------------------------------------------
cout<<"2.5 Представлення об'єднань: "<<endl;
union un2 {
int b[2];
unsigned long c;
char a[13];
struct {
char d[2];
double e;
};
} un;
un.e = 32*325 + 1994*24;
un.c = 165600 ;
un.a[0] = '3';
un.a[1] = '9';
un.a[2] = '9';
un.a[3] = '8';
un.a[4] = '8';
unsigned char *un1=(unsigned char *)(&un);
for(int i=0;i<sizeof(un2);i++) printf("%02X ",un1[i]);
cout<<endl;
//--------------------------------------------------------------------------------
}