Лабораторна робота
Тема: Структури
Мета
Навчитись створювати стуктури в Сі.
Теоретичні відомості
Структура – це спеціальний тип даних, який створює користувач для опрацювання інформації про об’єкти з деякої предметної області. Така інформація може складатись з даних різних типів. Структура складається з набору полів – даних різних типу.
struct <назва типу структури>
{
<тип поля 1> <назва поля 1>:
…….
<тип поля п> <назва поля п>;
};
Опис структури обов’яково закінчується символом «;».
Коли у програмі описана структура, то оголосити змінні або вказівники можна так:
<назва типу структури> <список змінних і вказівників>;
Оголосити змінні типу структура можна ще й так:
struct <назва типу структури>
{
<тип поля 1> <назва поля 1>;
………
<тип поля п> <назва поля п>;
} <список змінних і вказівників>;
Якщо тип структури визначати не обов’язково, а достатньо лише оголосити її змінні, то назву типу структури можна не зазначати.
Структура може містити поля типу структура.
Доступ до конкретного поля змінної типу структура дає складене ім’я вигляду:
<назва змінної>.<назва поля>
Завдання №8
Скласти програму з структурою, в якій міститься список студентів групи, дисципліни та бали кожного учня з даної дисципліни. Визначити:
- відмінників;
- учнів, у яких немає ні 2, ні 5;
- студентів, які пропускали заняття та к-сть їх пропусків (за пропуск вважати оцінку 0).
Програма
#include<stdio.h>
struct
{
char priz[20],imya[20];
int bzo[3],bzf[3],bzs[3];
} pib[4]={{"Maksymiv ","Nazar",{4,5,5},{4,4,4},{5,4,5}},
{"Ov4ar","Oleg",{5,5,5},{5,5,5},{5,5,5}},
{"Fritc ","Vitya",{4,0,4},{3,4,0},{4,3,0}},
{"Geryla","Ivan",{3,4,2},{2,4,3},{4,2,3}}
};
main()
{
int zb=0,i=0,j=0,bzo[3],bzf[3],bzs[3],k=0;
clrscr();
printf("Prizvuw4e"); printf("\tImya"); printf("\Filosofiya"); printf("\tMatematuka"); printf("\tCAPR\n");
for(i=0;i<4;i++)
printf("%s\t%s\t%s\t%s\t%s\n",pib[i].priz,pib[i].imya,pib[i].bzo,pib[i].bzf,pib[i].bzs);
getch();
/*powyk vidminnukiv*/
printf("Vidminnuku\n");
for(i=0;i<4;i++)
{
zb=0;
for(j=0;j<3;j++)
{ zb+=pib[i].bzo[j]+pib[i].bzf[j]+pib[i].bzo[j];
if(zb==45)
printf("%s\t%s\n",pib[i].priz,pib[i].imya);
}
}
getch();
/*ne 2 i ne 5*/
printf("nemaje ni 2 ni 5\n");
for(i=0;i<4;i++)
for(j=0;j<3;j++)
{
if(bzo[j]==2 || bzo[j]==5,bzf[j]==2 || bzf[j]==5,bzs[j]==2 || bzs==5) break;
else printf("%s\t%s\n",pib[i].priz,pib[i].imya);
} getch();
/*powuk propuskiv*/
printf("ne vidvidyje paru\tkiljkistj hodun\n");
for(i=0;i<4;i++)
{
k=0;
for(j=0;j<3;j++)
if(bzo[j]==0,bzf[j]=0,bzs[j]=0) k++;
printf("%s\t%s\t%i\n",pib[i].priz,pib[i].imya,k);
}
getch();
};
Блок-схема
Результат виконання програми
Prizvuw4e Imya Matematuka Fizyka CAPR
Maksymiv Nazar 455 444 545
Ov4ar Oleg 555 555 555
Fritc Vitya 404 340 430
Geryla Ivan 342 243 423
VIDMINNUKU
Ov4ar Oleg
nemaje ni 2 ni 5
Fritc Vitya
ne vidvidyje paru kiljkistj hodun
Maksymiv Nazar 0
Ov4ar Oleg 0
Fritc Vitya 3
Geryla Ivan 0
Висновок
На цій лабораторній роботі я навчився створювати структури та працювати з ними.