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

ргр / РГР kjubxtcrjt

.docx
Скачиваний:
23
Добавлен:
28.01.2014
Размер:
445.65 Кб
Скачать

Задание №1

Дан двумерный массив В[6][6], поменять местами элементы главной и побочной диагонали, результат записать в файл.

Блок-схема:

Начало

fp=fopen(D:\\n.txt.\0"\,wt)

Ошибка

srand(time(NULL))

i=0; i<10; i++

j=0; j<10; j++

C[i][j]=rand()%100

C[i][j]

\n

i=0; i<10; i++

j=0; j<10; j++

c[i][j]=C[i][j]

i=0; i<10 i++

b[i][j]=B[i][5-i]

i=0; i<10; i++

b[i][j]=B[i][j]

\n

i=0; i<10; i++

j=0; j<10; j++

c[i][j]

\n

fclose(fp)

конец

Код программы:

#include "stdafx.h"

#include "stdio.h"

#include "stdlib.h"

#include "time.h"

#include "conio.h"

#include "locale.h"

#define FNAME "D:\\n.txt.\0"\

void main()

{

FILE *fp;

int C[10][10];

int tmp;

int i,j;

setlocale(LC_ALL, "rus");

if ((fp=fopen(FNAME,"wt"))==NULL)

{

printf ("ошибка");

getch ();

}

srand(time(NULL));

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

{

for(j=0;j<10;j++)

{

C[i][j] = rand()%100;

printf("%2i ",C[i][j]);

}

printf("\n");

}

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

{

for (int j = 0; j < 10/2; j++)

{

tmp = C[i][j];

C[i][j] = C[i][10-j-1];

C[i][10-j-1] = tmp;

}

}

printf("\n");

printf("Полученный массив:\n");

printf("\n");

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

{

for(j=0;j<10;j++)

{

printf("%2i ",tmp[i][j]);

fprintf(fp,"%2i ",tmp[i][j]);

}

printf("\n");

fprintf(fp,"\n");

}

fclose(fp);

getch();}

Окно выполнения:

Результат, записанный в файл:

Задание №2

Массив, заданный в первой задаче считать из файла и отсортировать:

1. По возрастанию по строкам, сортировка вставкой

2. По убыванию по столбцам, сортировка вставкой

1.По возрастанию по строкам, сортировка вставкой:

Блок-схема:

Начало

fp=fopen(D:\\n.txt.\0"\,rt)

fp==NULL

Ошибка

i=0; i<6; i++

j=0; j<6; j++

b[i][j]

fclose(fp)

c=0; c<6; c++

i=0; i<6; i++

i==0; b1[c][i]=b[c][i]

j=1; j>=1; j--

b[c][i]<b1[c][j-1]

b1[c][j]=b1[c][j-1];

b1[c][j-1]=b[c][i]

(j==i)b1[c][j]=b[c][i]

k=0; k<6; k++

с=0;с<6; с++

k<=i

b1[k][c]

c==5

b1[k][c]

b1[k][c]

с==5

\n

Конец

Код программы:

#include "stdafx.h"

#include "stdio.h"

#include "stdlib.h"

#include "time.h"

#include "locale.h"

#include "conio.h"

#include "iostream"

#define FNAME "D:\\n.txt.\0"\

void main()

{

FILE *fp;

int b[6][6];

int b1[6][6];

int i,j,c=0,k;

fp=fopen(FNAME, "r");

setlocale(LC_ALL, "rus");

if(fp==NULL)

{

printf("Ошибка");

}

for(i=0; i<6; i++)

{

for(j=0; j<6; j++)

{

fscanf(fp,"%2i ",&b[i][j]);

}

}

fclose(fp);

printf("Исходный массив, считанный из файла\n");

printf("\n");

for(i=0; i<6; i++)

{

for(j=0; j<6; j++)

{

printf("%2i ",b[i][j]);

}

printf("\n");

}

printf("\n");

printf("Отсортированный массив по возрастанию по строкам методом вставки\n");

printf("\n");

for(c=0;c<6;c++)

{

for(i=0;i<6;i++)

{

if(i==0)b1[c][i]=b[c][i];

else

{

for(j=i;j>=1;j--)

{

if(b[c][i]<b1[c][j-1])

{

b1[c][j]=b1[c][j-1];

b1[c][j-1]=b[c][i];

}

else if(j==i)b1[c][j]=b[c][i];

}

}

}

}

for(k=0;k<6;k++)

for(c=0;c<6;c++)

{

if(k<=i)

{

printf("%2.0i ",b1[k][c]);

if(c==5) printf("\n");

}

else

{

b1[k][c]=0;

printf("%i ",b1[k][c]);

if(c==5) printf("\n");

}

}

getch();

}

Окно выполнения:

2. По убыванию по столбцам, сортировка вставкой

Блок-схема:

Начало

fp=fopen(D:\\n.txt.\0"\,rt)

fp==NULL

Ошибка

i=0; i<6; i++

j=0; j<6; j++

b[i][j]

fclose(fp)

c=0; c<6; c++

i=0; i<6; i++

i==0; b1[i][c]=b[i][c]

j=1; j>=1; j--

b[i][c]<b[j-1][c]

b1[j][c]=b[j-1][c];

b[j-1][c]=b[i][c]

(j==i)b1[j][c]=b[i][c]

k=0; k<6; k++

с=0;с<6; с++

b1[k][c]

c==5

\n

Конец

Код программы:

#include "stdafx.h"

#include "stdio.h"

#include "stdlib.h"

#include "time.h"

#include "locale.h"

#include "conio.h"

#include "iostream"

#define FNAME "D:\\n.txt.\0"\

void main()

{

FILE *fp;

int b[6][6];

int b1[6][6];

int i,j,c=0,k;

fp=fopen(FNAME, "r");

setlocale(LC_ALL, "rus");

if(fp==NULL)

{

printf("Ошибка");

}

for(i=0; i<6; i++)

{

for(j=0; j<6; j++)

{

fscanf(fp,"%2i ",&b[i][j]);

}

}

fclose(fp);

printf("Исходный массив, считанный из файла\n");

printf("\n");

for(i=0; i<6; i++)

{

for(j=0; j<6; j++)

{

printf("%2i ",b[i][j]);

}

printf("\n");

}

printf("\n");

printf("Отсортированный массив по убыванию по столбцам методом вставки\n");

printf("\n");

for(c=0;c<6;c++)

{

for(i=0;i<6;i++)

{

if(i==0)b1[i][c]=b[i][c];

else

{

for(j=i;j>=1;j--)

{

if(b[i][c]>b1[j-1][c])

{

b1[j][c]=b1[j-1][c];

b1[j-1][c]=b[i][c];

}

else if(j==i)b1[j][c]=b[i][c];

}

}

}

}

for(k=0;k<6;k++)

for(c=0;c<6;c++)

{

printf("%2.0i ",b1[k][c]);

if(c==5)

printf("\n");

}

getch();

}

Окно выполнения:

Задание №3

Вычислить произведение бесконечного ряда:

S=1+

1.Для указанного количества членов ряда (количество членов ряда вводятся с клавиатуры).

Блок-схема:

Начало

n, i, S=1

i=1; i<n; i++

S=S+(1+(1/(n*n))

S

Конец

Код программы:

#include "stdafx.h"

#include "stdio.h"

#include "conio.h"

#include "locale.h"

#include "math.h"

void main ()

{

float n,i,S=1;

setlocale(LC_ALL, "rus");

printf("Сколько элементов считать?\n");

scanf ("%f", &n);

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

{

S=S+(1+(1/(n*n)));

}

printf("\n");

printf("Сумма:%g", S);

getch ();

}

Окно выполнения:

2.С заданной точностью (точность вводится с клавиатуры).

Блок-схема:

Начало

n, i, T=0, S, S1

S=1;

S1=1

i=1; i<n; i++

S=S+(1+(1/(n*n)))

i=1; i<10; i++

T=(abs(S1-S)

S=S+(1+(1/(n*n)))

S1=S

S1

Конец

Код программмы:

#include "stdafx.h"

#include "stdio.h"

#include "conio.h"

#include "locale.h"

#include "math.h"

void main ()

{

float n,i,S,S1,T=0;

S=1;

S1=1;

setlocale(LC_ALL, "rus");

printf("Количество элементов?\n");

scanf ("%f", &n);

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

{

S=S+(1+(1/(n*n)));

}

printf("\n");

printf("Cумма:%g", S);

printf("\n");

printf("\nВведите точность:\n");

scanf ("%f", &n);

for (i=1; i<10; i++)

{

if (T==(abs(S1-S)))

S=S+(1+(1/(n*n)));

S1=S;

}

printf("\n Произведение ряда с заданной точностью=%g", S1);

getch ();

}

Окно выполнения:

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