Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PGP_Avtosokhranennyy2.docx
Скачиваний:
1
Добавлен:
17.09.2019
Размер:
454.52 Кб
Скачать

3.3 Результат виконання завдання 3

Лістинг програми завдання 1А

#include <sys/stat.h>

#include <fcntl.h>

#include <sys/wait.h>

int main(){

int mas[10]={52,73,57,66,45,47,33,80,69,72}

char s[15];

int fd[2];

int max,j;

if (pipe(fd)<0){

fprintf(stdout, ″Oshubka\n″);

return 0;

}

int n=10;

max=mas[0];

for(int i=1;i<n;i++){

if (((max%2)==0)&&(max<mas[i])){

j=i;

max=mas[i];

}

}

if (fork()==0){

for(int i=0; i<10;i++){

int r=sprint(s, ″%d %d %d %d\n″, max, i, mas[i],j);

write(fd[1],&s,r);

}

return 1;

}

printf(″Bubedenna masuba\n″);

printf(″i mas[i]\n″);

for(int i=0;i<10;i++){

read(fd[0],&s,15);

fprintf(stdout, ″%d %d″, i, mas[i]);

printf(″\n″);

}

printf(″Bubedenna max proctogo chicla\n″);

printf(″i max″);

fprintf(stdout,″%d %d\n″,i, max);

close(fd[0]);

close(fd[1]);

return 1;

}

Результат виконання завдання 1А

Рисунок 3.3.1 – Виведення масиву і максимально простого числа

Лістинг програми завдання 1B

#include <stdio.h>

#include <unisrd.h>

#include <fcntl.h>

#include <sys/wait.h>

#include <sys/stat.h>

#include <stdlib.h>

#include <sys/types.h>

#include <signal.h>

int main(){

char *f_name[10]={"Belakob","Boiko","Gorbuk","Zhobtulo","Chabanuk","Tkachenko","Sannikob","Chernob","Shebchuk","Yakymenko"};

int OOP[i]={3,5,4,4,4,3,3,4,5,4};

int AK[i]={3,4,3,3,4,3,3,4,5,5};

int OPI[i]={4,5,4,5,3,4,3,5,5,};

char s[15];

int fd[2];

float avg;

float avg1;

float avg2;

int a,b,h,j;

char *mas[3];

int ss[3];

if(mkfifo("mypipe",S_IFIFO)<0){

fprintf(stdout,"Oshubka\n");

return 0;

}

fd[0]=open("mypipe",O_RDONLY|O_NONBLOCK);

fd[1]=open("mypipe",O_WRONLY);

for(int i=0;i<10;i++){

avg=(OOP[i]+AK[i]+OPI[i])/3;

if(avg>4.5){

avg1=avg;

b=i;

mas[0]=f_name[i];

}

}

for(int i=0;i<10;i++){

avg=(OOP[i]+AK[i]+OPI[i])/3;

if(avg<=3){

avg2=avg;

h=i;

mas[1]=f_name[i];

}

int d1=4;

int d2=4;

int d3=5;

char *str[i]={"Belakob"};

for(int i=0; i<10;i++){

if(f_name[i]==str[0]){

j=i;

OOP[i]=d1;

AK[i]=d2;

OPI[i]=d3;

ss[0]=OPI[i];

ss[1]=AK[i];

ss[2]=OPI[i];

mas[2]=f_name[i];

}

}

if(fork()==0){

for(int i=0;i<10;i++){

int r=sprintf(s,"%4.1f %d %d %4.1f %d %d %d %d %s %s %s %d %d %d %d %s\n",avg1,b,h,avg2,i,OOP[i],AK[i],OOP[i],mas[0],mas[1],f_name[i],j,ss[0],ss[1],ss[2],mas[2]); write(fd[1],&s,r);

}

return 1;

}

wait(NULL);

printf("Cpucok Student i ocinok:\n");

printf("i OOP AK OPI f_name\n");

for(int i=0;i<10;i++){

read(fd[0],&s,15);

fprintf(stdout,"%d %d %d %d %s",i,OOP[i],AK[i],OPI[i],f_name);

}

read(fd[0],&s,15);

printf("Menu:\n");

printf("Choose from menu\n");

printf("1:Last successful student\n");

printf("2:Surname not successful student\n");

printf("3:Add to assess the direction of specified student\n");

printf("4:exit\n");

while (true){

system("clear");

scanf("%d",&a);

switch(a){

case 1:printf("i avg f_name\n");

fprintf(stdout,"%d %4.1f %s",b,avg1,mas[0]);

break;

case 2: printf("i avg f_name\n");

fprintf(stdout,"%d %4.1f %s",h,avg2,mas[1]);

break;

case 3: printf("Zamina ocinok na:\n");

printf("OOP=4\n");

printf("AK=4\n");

printf("OPi=4\n");

printf("Surname: Belakob\n");

fprintf(stdout,"%d %d %d %d %s",j,ss[0],ss[1],ss[2],mas[2]);

break;

case 4: return 0;

break;

}

}

close(fd[0]);

close(fd[1]);

unlink("mypipe");

return 1;

}

Результат виконання завдання 1B

Рисунок 3.3.2 – Список студентів і оцінок

Рисунок 3.3.3 – Виведення успішного студента (за середнім балом)

Рисунок 3.3.4 – Виведення самого неуспішного студента (за середнім балом)

Рисунок 3.3.5 – Додавання зазначену оцінку вказаному студенту

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]