Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Інститут телекомунікацій, радіоелектроніки та електронної техніки
Кафедра теоретичної радіотехніки та радіовимірювань
Звіт з лабораторної роботи №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;
}
Результати виконання
	Висновки
Вивчив способи оголошення, ініціалізації структур, масивів структур та здобути практичні навички роботи з ними.