Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Інститут телекомунікацій, радіоелектроніки та електронної техніки
Кафедра теоретичної радіотехніки та радіовимірювань
Звіт з лабораторної роботи №10
«Програмування задач на використання структур даних.»
з дисципліни «Інформатика та обчислювальна техніка»
Виконав:
студент групи РТ-11
Львів-2009
ЛАБОРАТОРНА РОБОТА № 10
Програмування задач на використання структур даних.
Мета роботи: Вивчити способи оголошення, ініціалізації структур, масивів структур та здобути практичні навички роботи з ними.
Постановка задачі. Написати програму, яка здійснює обробку масиву структур згідно заданого варіанту. Масив структур повинен містити не менше 10-ти елементів. Масив ввести з клавіатури. Програма повинна видавати підказку користувачу про те який елемент вводити.
Варіант індивідуального завдання 3
Написати програму, яка вводить масив записів про мобільні телефони (виробник, модель, об’єм пам’яті, наявність фотокамери, наявність МР3 – плеєра, ціна). Програма повинна знайти і вивести на екран дані про телефони фірми Motorola без камери і з МР3 – плеєром.
Граф-схема алгоритму програми
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
int i,j;
struct dani
{
char vurobnuk[20];
char model[20];
char kamera[20];
char MP3[20];
int pamjt;
int cina;} infor[3],a;
for(i=0;i<3;i++)
{
puts("Vvedit nazvy vurobnuka");
scanf("%s",&infor[i].vurobnuk);
puts("Vvedit nazvy modeli");
scanf("%s",&infor[i].model);
puts("Nayavnist kaneru");
scanf("%s",&infor[i].kamera);
puts("Nayavnist MP3");
scanf("%s",&infor[i].MP3);
puts("Obyem pamyati");
scanf("%d",&infor[i].pamjt);
puts("Vvedit ciny");
scanf("%s",&infor[i].cina);
}
for(j=0;j<3;j++)
for(i=0;i<3;i++)
{
if(infor[i].cina>infor[i+1].cina)
{
a=infor[i];
infor[i]=infor[i+1];
infor[i+1]=a;
}
}
puts("Vuvid sortonanogo spusky");
for(i=0;i<3;i++)
printf("%s\n %s\n %s\n %s\n %d\n %d\n", infor[i].vurobnuk, infor[i].model, infor[i].kamera,
infor[i].MP3, infor[i].pamjt,infor[i].cina);
system("PAUSE");
return 0;
}
З вказівниками
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{int i,j,kl=3;
printf(" lab_rob 10\n Holovezjkyj Jurij\n RT-11\n\n");
struct sp
{ char vur[80];
char mod[80];
int obm;
char fot[20];
char mptru[80];
int cina;
} telefon[3]={{"Siemens","A-560",32,"je","je",600},{"Philips","6300",12,"nema","je",150},
"Motorola","C-187",64,"nema","je",148};
struct sp *s;
for(i=0;i<kl;i++){
s=&telefon[i];
printf(" Dani pro telefon %d:\n",i+1);
printf("Vurobnuk:");
printf("%s\n",s->vur);
printf("model':");
printf("%s\n",s->mod);
printf("ob'jem pam'jati:");
printf("%d\n",s->obm);
printf("najavnist' fotokameru:");
printf("%s\n",s->fot);
printf("najavnist' mp3 plejera:");
printf("%s\n",s->mptru);
printf("cina:");
printf("%d\n\n",s->cina);
}
printf(" \nTelefonu firmu motorola bez fotokameru i z mp3-plejerom:\n\n");
for(i=0;i<kl;i++){ s=&telefon[i];
if(s->vur[0]==77 && s->mptru[0]==106 && s->fot[0]==110 )
{
printf(" telefon %d:\n",i+1);
printf("Vurobnuk:");
printf("%s\n",s->vur);
printf("model':");
printf("%s\n",s->mod);
printf("ob'jem pam'jati:");
printf("%d\n",s->obm);
printf("najavnist' fotokameru:");
printf("%s\n",s->fot);
printf("najavnist' mp3 plejera:");
printf("%s\n",s->mptru);
printf("cina:");
printf("%d\n\n",s->cina);
}}
system("PAUSE");
return 0;
}
Результати виконання
Висновки
Вивчив способи оголошення, ініціалізації структур, масивів структур та здобути практичні навички роботи з ними.