Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

C++ / лабы / lr5 / Отчет 5(2)

.doc
Скачиваний:
21
Добавлен:
30.04.2013
Размер:
1.13 Mб
Скачать

Московский Государственный институт электроники и математики

(Технический университет)

Кафедра Вычислительные системы и сети

Отчет о лабораторной работе №6

«Поиск максиминного и минимаксного значения в матрице c возможностью ввода исходных данных из файла на диске и сохранения результатов (вместе с исходными данными) в файл на диске»

по дисциплине «Программирование на ЯВУ»

Выполнил:

студент группы С-31

Гребенюк А.В.

Вариант 7

Москва, 2009 год

  1. Исходный код

#include <math.h>

#include <stdio.h>

void vivod (int a, int b)

{

printf("Minimax: %d\n",a);

printf("Maximin: %d\n\n",b);

if (a>b)

{

printf("Minimax>Maximin, igrovaya strategi9 optimal'na\n\n");

}

if (a==b)

{

printf("Minimax=Maximin, sedlova9 to4ka %d\n",a);

}

}

int main()

{

int val,maximin,minimax,q,r;

int arr[4][5];

FILE *file;

printf("LR6\n");

printf("Grebenyuk Alexandr, C-31\n");

gg:

printf("Xotite li Vi vvesti icxodnie dannie iz faila? (1/0): ");

scanf("%d",&r);

switch (r)

{

case 1:

{

printf("Vvedite im9 faila: ");

char fname[50];

scanf("%s",fname);

file=fopen(fname,"r");

if(file != 0 )

{

for (int k=0;k<=3;k++)

{

for (int z=0;z<=3;z++)

{

fscanf(file,"%d",&q);

arr[k][z]=q;

}

}

}

else

{

printf("File ne naiden!\n");

goto gg;

}

fclose(file);

break;

}

case 0:

{

arr[0][0]=3;

arr[0][1]=7;

arr[0][2]=-1;

arr[0][3]=3;

arr[1][0]=4;

arr[1][1]=8;

arr[1][2]=0;

arr[1][3]=-6;

arr[2][0]=6;

arr[2][1]=-9;

arr[2][2]=-2;

arr[2][3]=4;

arr[3][0]=0;

arr[3][1]=0;

arr[3][2]=0;

arr[3][3]=0;

break;

}

default:

{

printf("FAIL!\n");

getchar();

goto gg;

}

}

for (int i=0;i<=2;i++)

{

val=arr[i][0];

for (int j=1;j<=3;j++)

{

if (arr[i][j]<val)

{

val=arr[i][j];

}

}

arr[i][4]=val;

}

for (int j=0;j<=3;j++)

{

val=arr[0][j];

for (int i=1;i<=3;i++)

{

if (arr[i][j]>val)

{

val=arr[i][j];

}

}

arr[3][j]=val;

}

maximin=arr[0][4];

for (int i=1;i<=2;i++)

{

if (arr[i][4]>maximin)

{

maximin=arr[i][4];

}

}

minimax=arr[3][0];

for (int i=1;i<=3;i++)

{

if (arr[3][i]<minimax)

{

minimax=arr[3][i];

}

}

printf("Matrica:\n");

for (int m=0;m<=2;m++)

{

for (int n=0;n<=3;n++)

{

printf("%d ",arr [m][n]);

}

printf("\n");

}

vivod (minimax,maximin);

printf("Xotite li Vi soxranit' icxodnie dannie i rezultati v fail? (1/0): ");

scanf("%d",&r);

switch (r)

{

case 1:

{

printf("Vvedite im9 faila: ");

char fname[50];

scanf("%s",fname);

file=fopen(fname,"w");

for (int k=0;k<=2;k++)

{

for (int z=0;z<=3;z++)

{

fprintf(file,"%d ",arr[k][z]);

}

fprintf(file,"\n");

}

fprintf(file,"Minimax: %d\n",minimax);

fprintf(file,"Maximin: %d",maximin);

fclose(file);

}

case 0:

{

return 0;

}

default:

{

return 0;

}

}

}

2. Блок-схема главного алгоритма программы

Блок-схема функции vivod (вывода минимаксного и максиминного значений)

3. Листинг вывода программы

Соседние файлы в папке lr5