ргр / РГР kjubxtcrjt
.docxЗадание №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 ();
}
Окно выполнения: