Міністерство освіти та науки України
Національний університет «Львівська політехніка»
Інститут телекомунікацій, радіоелектроніки та електронної техніки
Кафедра теоретичної радіотехніки та радіовимірювань
Звіт з лабораторної роботи №10
Тема «Програмування задач на використання структур даних.»
з дисципліни «Інформатика та обчислювальна техніка»
Мета роботи: вивчити способи оголошення, ініціалізації структур, масивів структур та здобути практичні навички роботи з ними.
Варіант 5
Постановка задачі. Написати програму, яка здійснює обробку масиву структур згідно заданого варіанту. Масив структур повинен містити не менше 10-ти елементів. Масив ввести з клавіатури. Програма повинна видавати підказку користувачу про те який елемент вводити.
Завдання
Написати програму, яка вводить масив записів про студентів (Прізвище, ім’я, рік народження, група, рейтинг, стать). Програма повинна знайти і вивести на екран прізвища та ініціали студентів у яких рейтинг менший 50 балів.
Короткі теоретичні відомості
Структура – спеціальний тип даних , який створює користувач для опрацювання інформації про об’єкти деякої предметної області. Така інформація може складатись з даних різних типів. Структура складається з набору полів. Формат опису стуктури:
struct < назва структури >
{ < тип поля 1> < назва поля1 >;
< тип поля 2 > < назва поля2 >;
< тип поля N > < назва поляN >;
};
Приклад. Структура, яка містить анкетні дані
struct grupa
{ char name [20] ;surname [20];
float serbal;
};
Опис структури - це тільки створення шаблону для нового типу даних. Наступним кроком є оголошення змінних і вказівників типу структура. Список змінних і вказівників можна оголосити так:
struct <назва типу структури > <список змінних і вказівників>;
РОЗРОБКА АЛГОРИТМУ
Код програми мовою С
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int i;
struct dani {
char prizvuske[20];
char imja [20];
int rik_narodjenna;
char grypa[10];
int reitung;
char stat[10];
} infor[3];
for (i=0;i<3;i++)
{
printf("zapys #%d\n",i);
puts("vvedit prizvuske");
scanf("%s",&infor[i].prizvuske);
puts("vvedit imja");
scanf("%s",&infor[i].imja);
puts("vvedit rik narodjenna");
scanf("%d",&infor[i].rik_narodjenna);
puts("vvedit grypa");
scanf("%s",&infor[i].grypa);
puts("vvedit reitung");
scanf("%d",&infor[i].reitung);
puts("vvedit stat");
scanf("%s",&infor[i].stat);
}
puts("vuvid spusky studentiv z rejtyngom <50");
for(i=0;i<3;i++)
if(infor[i].reitung<50)
printf("%s\n %s\n %d\n %s\n %d\n %s\n",
infor[i].prizvuske,
infor[i].imja,
infor[i].rik_narodjenna,
infor[i].grypa,
infor[i].reitung,
infor[i].stat
);
system("PAUSE");
return 0;
}
НАЛАГОДЖЕННЯ ТА РЕЗУЛЬТАТИ ТЕСТУВАННЯ.
Код програми мовою С. 2 спосіб
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int i;
struct dani {
char prizvuske[20];
char imja [20];
int rik_narodjenna;
char grypa[10];
int reitung;
char stat[10];
dani *next;
} *infor,*p;
for (i=0;i<3;i++){
if(!i){
infor=new dani;
p=infor;
p->next=NULL;
}else{
p->next=new dani;
p=p->next;
p->next=NULL;
}
printf("zapys #%d\n",i);
puts("vvedit prizvuske");
scanf("%s",&p->prizvuske);
puts("vvedit imja");
scanf("%s",&p->imja);
puts("vvedit rik narodjenna");
scanf("%d",&p->rik_narodjenna);
puts("vvedit grypa");
scanf("%s",&p->grypa);
puts("vvedit reitung");
scanf("%d",&p->reitung);
puts("vvedit stat");
scanf("%s",&p->stat);
}
puts("vuvid spusky studentiv z rejtyngom <50");
for(p=infor;p;p=p->next)
if(p->reitung<50)
printf("%s\n %s\n %d\n %s\n %d\n %s\n",
p->prizvuske,
p->imja,
p->rik_narodjenna,
p->grypa,
p->reitung,
p->stat
);
system("PAUSE");
return 0;
}
НАЛАГОДЖЕННЯ ТА РЕЗУЛЬТАТИ ТЕСТУВАННЯ.
Висновок: на лабораторній роботі я вивчитв способи оголошення, ініціалізації структур, масивів структур та здобув практичні навички роботи з ними.