Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Інститут телекомунікацій, радіоелектроніки та електронної техніки
Кафедра теоретичної радіотехніки та радіовимірювань
Звіт з лабораторної роботи №11
«Динамічні структури даних.»
з дисципліни «Інформатика та обчислювальна техніка»
ЛАБОРАТОРНА РОБОТА № 11
Динамічні структури даних.
Мета роботи: вивчити способи створення динамічних структур даних (списків, стеків, дерев, тощо) та виконання операцій над ними.
Постановка задачі. Утворити список, який містить інформацію згідно заданого варіанту. Кількість даних які вводяться визначаються в процесі вводу. Останій елемент повинен містити нулі в усіх полях. Після введення останнього елементу програма повинна вивести список на екран. Програма повинна містити функцію видалення елемента списку.
Варіант індивідуального завдання 3
Написати програму, яка вводить масив записів про мобільні телефони (виробник, модель, об’єм пам’яті, наявність фотокамери, наявність МР3 – плеєра, ціна). Програма повинна знайти і вивести на екран дані про телефони фірми Motorola з МР3 – плеєром.
Граф-схема алгоритму програми
#include <stdio.h>
#include <stdlib.h>
struct sp
{
char vur[80];
char mod[80];
int obm;
char fot[20];
char mptru[80];
int cina;
struct sp *dali;
};
struct sp *el, *per, *pop, *nov;
int main(int argc, char *argv[])
{ int c=0,i,naj[99],kopija[99],sor;
printf(" lab_rob 10\n Holovezjkyj Jurij\n RT-11\n\n");
puts("Vvedit dani pro telefonu.");
puts("Dlja zakinchennja vvedit nyli.");
el=(struct sp*)malloc(sizeof(struct sp));
per=el;
do{ printf(" Dani pro telefon %d:\n",++c);
printf("Vurobnuk:");
scanf("%s",&el->vur);
printf("model':");
scanf("%s",&el->mod);
printf("ob'jem pam'jati:");
scanf("%d",&el->obm);
printf("najavnist' fotokameru:");
scanf("%s",&el->fot);
printf("najavnist' mp3 plejera:");
scanf("%s",&el->mptru);
printf("cina:");
scanf("%d",&el->cina);
el->dali=(struct sp*)malloc(sizeof(struct sp));
pop=el;
el=el->dali;
}while(pop->cina!=0||pop->vur[0]!=48||pop->mod[0]!=48);
puts("Stvoreno Spysok:");
el=per;
for(i=0;i<c;i++){
printf("%s\t%s\t%d\t%s\t%s\t%d\t\n",el->vur,el->mod,el->obm,el->fot,el->mptru,el->cina);
el=el->dali;}
el=per;
printf(" \nTelefonu firmu motorola i z mp3-plejerom:\n\n");
for(i=0;i<c;i++){
if(el->vur[0]==77 && el->mptru[0]==106 )
{
printf(" telefon %d:\n",i+1);
printf("Vurobnuk:");
printf("%s\n",el->vur);
printf("model':");
printf("%s\n",el->mod);
printf("ob'jem pam'jati:");
printf("%d\n",el->obm);
printf("najavnist' fotokameru:");
printf("%s\n",el->fot);
printf("najavnist' mp3 plejera:");
printf("%s\n",el->mptru);
printf("cina:");
printf("%d\n\n",el->cina);
}
el=el->dali;
}
system("PAUSE");
return 0;
}
Результати виконання
Висновки
Вивчив способи створення динамічних структур даних (списків, стеків, дерев, тощо) та виконання операцій над ними.