Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Prog1_2_zao_2013.doc
Скачиваний:
6
Добавлен:
07.02.2016
Размер:
327.17 Кб
Скачать

Лабораторна робота № 2 Структури та об'єднання.

Мета роботи– вивчити способи визначення та ініціалізації структур, покажчиків на структуру, масивів структур та об'єднань.

Програма 2.1. В програмі визначаються проста структура, масив структур та покажчик на структуру. Елементам всіх структур привласнюються певні значення.

#include <stdio.h>

#include <conio.h>

struct REC{char *name; // визначення структурного типу

int age;

float r;};

int main()

{clrscr();

REC rec1; // визначення структури rec1 типу REC

rec1.name="Петров I.С.";

rec1.age=19; rec1.r=4.5;

printf("%s %d %.2f\n",rec1.name,rec1.age,rec1.r);

//Визначення масиву з 3 структур типу REC і ініціалізація першої з них

REC str[3]={"Федоров I.Г.",19,4.17};

str[1].name="Семенов В.I.";

str[1].age=20; str[1].r=4.33;

str[2].name="Орлов С.О.";

str[2].age=21; str[2].r=3.95;

for(int i=0;i<3;i++)

printf("%s %d %.2f\n",str[i].name,str[i].age, str[i].r);

REC *ptrrec; // визначення покажчика на структуру типу REC

ptrrec=new REC; // запит пам'яті для структури типу REC

if(ptrrec==NULL){puts("Помилка"); return -1;}

ptrrec->name="Iванов П.Ю.";

ptrrec->age=18; (*ptrrec).r=4.2;

printf("%s ",(*ptrrec).name);

printf("%d %.2f\n",ptrrec->age, ptrrec->r);

delete ptrrec; // звільнення пам’яті

puts("\nPress any key...");

getch();

return 0;

}

Вказівка до програми 2.1:  Визначте структурний тип, членами якого є масив з 2-х чисел типу char і масив з 3-х чисел типу int. Визначте просту структуру, масив з 4-х структур та покажчик на структуру, під яку запросить пам’ять. Перші три структури з масиву структур проініціалізуйте, всім іншим членам цих структур привласніть які-небудь значення. Визначте розмір пам’яті, що займають кожна з структур. Виведіть всі структури на екран.

Програма 2.2. В програмі визначається структурний тип, елементом якого є раніш визначений структурний тип, тобто визначається вкладена структура. Далі визначається масив з сьома таких структур. Перші чотири структури з цього масиву ініціалізуються явно, а іншим елементам привласнюються певні значення.

#include <stdio.h>

#include <conio.h>

struct CHARACT{char rg; // розрядність

char *mem; // об’єм доступної пам’яті

};

struct INTEL {int year; // рiк створення

char *mean; // позначення

CHARACT ch; // вкладена структура

};

int main()

{clrscr();

INTEL in[7]={{1974,"8080",8,"64K"},{1978,"8086",16,"1M"},

{1983,"80186",16,"1M"},{1983,"80286",16,"16M"}};

in[4].year=1987; in[4].mean="i386";

in[5].year=1990; in[5].mean="i486";

in[6].year=1993; in[6].mean="Pentium";

in[4].ch.rg=32; in[4].ch.mem="4G";

in[5].ch.rg=32; in[5].ch.mem="4G";

in[6].ch.rg=64; in[6].ch.mem="4G";

puts("History Of 80x86");

for(int i=0;i<7;i++)

{printf("%d %7s ",in[i].year,in[i].mean);

printf("%5d %5s\n",in[i].ch.rg, in[i].ch.mem); }

puts("\nPress any key...");

getch();

return 0;}

Вказівка до програми 2.2:  Визначить масив з 3-х структур з шаблоном, що містить дані про студента (прізвище, ім'я, по батькові) та вкладену структуру з адресою (місто, вулиця, дім, квартира), Привласніть членам структур довільні значення і виведіть їх на екран.

Програма 2.3. В програмі демонструється використання об'єднання union для дослідження внутрішнього зображення дійсних чисел. Число типу float виводиться у вигляді цілого числа типу long, а потім аналізуються його двійкові розряди.

#include <stdio.h>

#include <conio.h>

//визначення типу UN об'єднання

union UN{float F; unsigned long L;};

void main()

{clrscr();

UN FtoL; // визначення об'єднання FtoL типу UN

FtoL.F=15.375;

// 15.375 (10 СЧ)=01000001011101100000000000000000 (2 СЧ)

printf("F=%.3f L=%ld=%#lx \n",FtoL.F,FtoL.L,FtoL.L);

unsigned long m;

int i,n,counter;

n=8*sizeof(m);

for(i=n,m=1L<<n-1;i>0;i--)

{if(FtoL.L&m) printf("1"); else printf("0");

m>>=1;}

printf("\nзнак числа: ");

for(i=n,counter=0,m=1L<<n-1;i>0;i--)

{if(FtoL.L&m) printf("1"); else printf("0");

m>>=1;

if(counter==0)printf("\nзсунутий порядок числа: ");

if(counter==8)printf("\nмантiса числа: ");

counter++;

}

puts("\nPress any key...");

getch(); }

Вказівка до програми 2.3:  Визначте об'єднання, членами якого є масив із трьох цілих чисел і масив із шести символів. Введіть з клавіатури елементи об'єднання як цілі числа, а виведіть їх на екран в вигляді символів та з кодом символів в 16-річній системі числення.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]