рефератырефератырефератырефератырефератырефератырефератырефераты

рефераты, скачать реферат, современные рефераты, реферат на тему, рефераты бесплатно, банк рефератов, реферат культура, виды рефератов, бесплатные рефераты, экономический реферат

"САМЫЙ БОЛЬШОЙ БАНК РЕФЕРАТОВ"

Портал Рефератов

рефераты
рефераты
рефераты

Работа над массивами с помощью языка С++

Задание 1. Дан двумерный массив размерностью 5x6, заполненный целыми числами, введёнными с клавиатуры. Сформировать одномерный массив, каждый элемент которого равен наибольшему по модулю элементу соответствующего столбца.

Входные данные:

matr[5][6] - двумерный массив.

Выходные данные:

mas[6] - одномерный массив.

Текст программы:

#include <stdio.h>

#include <conio.h>

#include <math.h>

#define N 5

#define M 6

void main(void)

{

int matr[N][M];

int mas[M];

int i,j;

do{

clrscr();

printf("Введите двумерный массив \n");

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

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

{

scanf("%d",&matr[i][j]);

}

printf("\n двумерный массив:\n");

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

{

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

printf("%7d",matr[i][j]);

printf("\n");

}

printf("\n массив наибольших по модулю элементов:\n");

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

{

mas[j]=matr[0][j];

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

if(abs(matr[i][j])>abs(mas[j])) mas[j]=matr[i][j];

printf("%7d",mas[j]);

}

printf("\n\n1 - повторить");

}while(getch()=='1');

}

Блок-схема:

Тестирование:

двумерный массив:

1 -3 5 -7 0 0

0 5 8 -9 3 0

3 4 -8 4 3 0

-4 3 0 7 3 0

0 3 3 7 1 0

массив наибольших по модулю элементов:

-4 5 8 -9 3 0

Задание 2. Дан двумерный массив n * m. Определить, есть ли в данном массиве столбец, в котором равное количество положительных и отрицательных элементов.

Входные данные:

matr[n][m] - двумерный массив,

n, m - размер массива.

s[60] - строка.

Текст программы:

#include <stdio.h>

#include <conio.h>

#include <string.h>

void main(void)

{

int i,j;

int n,m;

int matr[10][10];

int pol,otr;

char s[60];

do{

strcpy(s,0);

clrscr();

printf("Введите размер массива (n*m)\n");

scanf("%d %d",&n,&m);

printf("Введите массив\n");

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

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

scanf("%d",&matr[i][j]);

printf("\nОпределить, есть ли в данном массиве столбец,\

в котором\nравное количество положительных и отрицательных элементов.\n");

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

{

otr=0;

pol=0;

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

{

if(matr[i][j]<0) ++otr;

if(matr[i][j]>0) ++pol;

}

if(pol==otr) strcat(s," есть");

else strcat(s," нет");

}

printf("\n");

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

{

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

printf("%6d",matr[i][j]);

printf("\n");

}

printf("%s",s);

printf("\n\n1 - повторить");

}while(getch()=='1');

}

Блок-схема:

Тестирование:

Определить, есть ли в данном массиве столбец, в котором

равное количество положительных и отрицательных элементов.

0 1 -2 3 4

0 2 -4 5 -8

0 0 9 -7 0

0 -3 4 0 0

есть нет есть нет есть

Задание 3. Дан двумерный массив размерностью 8x7.

а). Удалить все столбцы, а которых первый элемент больше последнего.

б). Заменить все элементы первых трёх столбцов на их квадраты.

Входные данные:

matr[8][7] - двумерный массив.

Функции:

Print - вывод массив на экран.

Текст программы:

#include <stdio.h>

#include <conio.h>

#define N 8

#define M 7

void Print(int matr[][M],int m)

{

int i,j;

for(i=0;i<N;i++) {

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

printf("%6d",matr[i][j]);

printf("\n");

}

}

void main(void)

{

int m;

int i,j;

int matr[N][M];

int r,t;

do{

m=M;

clrscr();

printf("Введите массив\n");

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

for(j=0;j<m;j++) {

scanf("%d",&matr[i][j]);

}

clrscr();

printf(" массив\n");

Print(matr,m);

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

{

if(matr[0][j]>matr[N-1][j])

{

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

for(r=j;r<m-1;r++)

matr[t][r]=matr[t][r+1];

--m;

--j;

}

}

printf("а) .Удалить все столбцы, а которых первый элемент больше последнего.\n");

Print(matr,m);

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

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

{

matr[i][j]*=matr[i][j];

}

printf("б). Заменить все элементы первых трёх столбцов на их квадраты.\n");

Print(matr,m);

printf("\n\n1 - повторить");

}while(getch()=='1');

}

Блок-схема:

Функция Print

Тестирование:

массив

1 2 3 4 5 6 7

-8 0 5 5 4 4 5

4 5 5 5 5 5 5

5 5 5 -7 5 5 5

9 4 4 5 0 5 3

5 6 3 4 5 4 5

6 7 8 9 0 4 8

-4 5 9 0 9 9 0

а) .Удалить все столбцы, в которых первый элемент больше последнего.

2 3 5 6

0 5 4 4

5 5 5 5

5 5 5 5

4 4 0 5

6 3 5 4

7 8 0 4

5 9 9 9

б). Заменить все элементы первых трёх столбцов на их квадраты.

4 9 25 6

0 25 16 4

25 25 25 5

25 25 25 5

16 16 0 5

36 9 25 4

49 64 0 4

25 81 81 9

рефераты
РЕФЕРАТЫ © 2010