Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Інститут телекомунікацій, радіоелектроніки та електронної техніки
Кафедра теоретичної радіотехніки та радіовимірювань
Звіт з лабораторної роботи № 11
на тему: “Динамічні структури даних.”
з дисципліни «Інформатика та обчислювальна техніка»
Підготував:
Студент Групи РТ-12
Рокоманов Святослав
Прийняв:
Нестор Н. І.
Львів-2010р.
Мета роботи: вивчити способи створення динамічних структур даних (списків, стеків,
дерев, тощо) та виконання операцій над ними.
Постановка задачі. Утворити список, який містить інформацію згідно заданого варіанту.
Кількість даних які вводяться визначаються в процесі вводу. Останій елемент повинен
містити нулі в усіх полях. Після введення останнього елементу програма повинна вивести список на екран. Програма повинна містити функцію видалення елемента списку.
Варіант №6
Написати програму, яка вводить масив записів про телевізори (модель, діагональ екрана, ціна, наявність супутникового тюнера, кількість систем декодування кольору). Програма повинна знайти і вивести на екран дані про найдешевший телевізор.
Т
Т
Н
Т
Текст програми:
#include <stdio.h>
#include <stdlib.h>
struct rika
{
char model[99];
int diag;
int cina;
char tjy[20];
int ksd;
struct rika *dali;
};
struct rika *el, *per, *pop, *nov;
int main(int argc, char *argv[])
{ int c=0,i,naj[99],kopija[99],poz=1,sor;
puts("\nVukonav Rokomanov Sviatoslav\ngrypa RT-12\nLaboratorna robota #11");
puts("Vveditj dani pro televizoru:");
puts("Dlja zakinchennja vveditj nulj");
el=(struct rika*)malloc(sizeof(struct rika));
per=el;
do{ printf("\n Dani pro televizor %d:\n",++c);
printf("model':"); scanf("%s",&el->model);
printf("diagonal ekrana(y santumetrah):"); scanf("%d",&el->diag);
printf("cina:"); scanf("%d",&el->cina);
if(c!=1&& el->cina!=0){
if(el->cina <sor ){poz=c;}
}
sor=el->cina;
printf("najavnist' sypytnukovogo tjynera:"); scanf("%s",&el->tjy);
printf("kilkist sustem dekodyvannja koljory:"); scanf("%d",&el->ksd);
el->dali=(struct rika*)malloc(sizeof(struct rika));
pop=el;
el=el->dali;
}while(pop->diag!=0||pop->cina!=0||pop->ksd!=0);
puts("Stvoreno Spysok:");
el=per;
for(i=0;i<c;i++){
printf("%s\t%d\t%d\t%s\t%d\n",el->model,el->diag,el->cina,el->tjy,el->ksd);
el=el->dali; }
el=per;
printf("dani pro najdeshevshuj televizor:\n",poz);
for(i=0;i<poz-1;i++)
el=el->dali;
printf("%s\t%d\t%d\t%s\t%d\n",el->model,el->diag,el->cina,el->tjy,el->ksd);
system("PAUSE");
return 0;
}
Тестування та налагодження:
Висновок: я вивчив способи створення динамічних структур даних (списків, стеків, дерев, тощо) та навчився виконувати операції над ними. Ознайомився з форматом опису елементу списку. Навчився оголошувати необхідні вказівники та працювати з ними.