Лабораторна робота
Тема: Структура в Сі.
Мета
Навчитись створювати стуктури в Сі.
Теоретичні відомості
Структура – це спеціальний тип даних, який створює користувач для опрацювання інформації про об’єкти з деякої предметної області. Така інформація може складатись з даних різних типів. Структура складається з набору полів – даних різних типу.
struct <назва типу структури>
{
<тип поля 1> <назва поля 1>:
…….
<тип поля п> <назва поля п>;
};
Опис структури обов’яково закінчується символом «;».
Коли у програмі описана структура, то оголосити змінні або вказівники можна так:
<назва типу структури> <список змінних і вказівників>;
Оголосити змінні типу структура можна ще й так:
struct <назва типу структури>
{
<тип поля 1> <назва поля 1>;
………
<тип поля п> <назва поля п>;
} <список змінних і вказівників>;
Якщо тип структури визначати не обов’язково, а достатньо лише оголосити її змінні, то назву типу структури можна не зазначати.
Структура може містити поля типу структура.
Доступ до конкретного поля змінної типу структура дає складене ім’я вигляду:
<назва змінної>.<назва поля>
Завдання №13
Скласти програму з структурою, в якій міститься список студентів групи, дисципліни та бали кожного учня з даної дисципліни. Визначити:
- відмінників;
- учнів, у яких немає ні 2, ні 5;
- студентів, які пропускали заняття та к-сть їх пропусків (за пропуск вважати оцінку 0).
Програма
#include<stdio.h>
struct
{
char priz[20],imya[20];
int bzo[3],bzf[3],bzs[3];
} pib[4]={{"Pukalyak","Andrew",{4,5,5},{4,4,4},{5,4,5}},
{"Hendrix","Jimmy",{5,5,5},{5,5,5},{5,5,5}},
{"Daughtry","Cris",{4,0,4},{3,4,0},{4,3,0}},
{"Back","Nickel",{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("Prizvu64e"); printf("\tImya"); printf("\tOPAM"); printf("\tFizyka"); printf("\tSAPR\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();
/*po6yk 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();
/*po6uk 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();
};
Блок-схема
Результат виконання програми
Prizvu64e Imya OPAM Fizyka SAPR
Pukalyak Andrew 455 444 545
Hendrix Jimmy 555 555 555
Daughtry Cris 404 340 430
Back Nickel 342 243 423
VIDMINNUKU
Hendrix Jimmy
nemaje ni 2 ni 5
Daughtry Cris
ne vidvidyje paru kiljkistj hodun
Pukalyak Andrew 0
Hendrix Jimmy 0
Daughtry Cris 3
Back Nickel 0
Висновок
На цій лабораторній роботі я навчився створювати структури та працювати з ними.