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

Задание №1

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

Блок-схема:

Начало

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++

tmp=C[i][j]

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

c[i][10-j-1]=tmp

\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 "conio.h"

#include "locale.h"

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

void main()

{

FILE *fp;

char c[10][10];

int tmp,i,j;

setlocale(LC_ALL, "rus");

fp=fopen(FNAME,"wt");

if (fp==NULL)

{

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

}

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

{

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

{

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

printf("%i ",c[i][j]);

}

printf("\n");

}

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

{

for (j=0;j<5;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("%i ",c[i][j]);

fprintf(fp,"%i ",c[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<10; i++

j=0; j<10; j++

с[i][j]

fclose(fp)

t=0; t<6; t++

i=0; i<10; i++

i==0; tmp[t][i]=c[t][i]

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

c[t][i]<tmp[c][j-1]

tmp[t][j]=tmp[t][j-1];

tmp[t][j-1]=b[t][i]

(j==i)tmp[t][j]=c[t][i]

k=0; k<10; k++

t=0;t<10; t++

k<=i

tmp[k][t]

t==9

tmp[k][t]

tmp[k][t]

t==9

\n

Конец

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

// парма.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include "stdio.h"

#include "stdlib.h"

#include "conio.h"

#include "locale.h"

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

void main()

{

FILE *fp;

char c[10][10];

int tmp[10][10];

int t=0,k,i,j;

setlocale(LC_ALL, "rus");

fp=fopen(FNAME,"r");

if (fp==NULL)

{

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

}

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

{

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

{

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

}

}

fclose(fp);

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

printf("\n");

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

{

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

{

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

}

printf("\n");

}

printf("\n");

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

printf("\n");

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

{

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

{

if(i==0)tmp[t][i]=c[t][i];

else

{

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

{

if(c[t][i]<tmp[t][j-1])

{

tmp[t][j]=tmp[t][j-1];

tmp[t][j-1]=c[t][i];

}

else if(j==i)tmp[t][j]=c[t][i];

}

}

}

}

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

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

{

if(k<=i)

{

printf("%2.0i ",tmp[k][t]);

if(t==9) printf("\n");

}

else

{

tmp[k][t]=0;

printf("%i ",tmp[k][t]);

if(t==9) printf("\n");

}

}

getch();

}

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

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

Блок-схема:

Начало

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

fp==NULL

Ошибка

i=0; i<10; i++

j=0; j<10; j++

c[i][j]

fclose(fp)

t=0; t<10; t++

i=0; i<10; i++

i==0; tmp[i][t]=c[i][t]

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

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

tmp[j][t]=c[j-1][t];

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

(j==i)tmp[j][t]=c[i][t]

k=0; k<10; k++

t=0;t<10; t++

tmp[k][t]

t==9

\n

Конец

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

// 1234.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include "stdio.h"

#include "stdlib.h"

#include "conio.h"

#include "locale.h"

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

void main()

{

FILE *fp;

char c[10][10];

int tmp[10][10];

int t=0,k,i,j;

setlocale(LC_ALL, "rus");

fp=fopen(FNAME,"r");

if (fp==NULL)

{

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

}

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

{

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

{

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

}

}

fclose(fp);

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

printf("\n");

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

{

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

{

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

}

printf("\n");

}

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

printf("\n");

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

{

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

{

if(i==0)tmp[i][t]=c[i][t];

else

{

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

{

if(c[i][t]>tmp[j-1][t])

{

tmp[j][t]=tmp[j-1][t];

tmp[j-1][t]=c[i][t];

}

else if(j==i)tmp[j][t]=c[i][t];

}

}

}

}

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

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

{

printf("%2.0i ",tmp[k][t]);

if(t==9)

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 ();

}

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

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