Контрольная работа

Контрольная работа на тему Работа над массивами с помощью языка С

Работа добавлена на сайт bukvasha.net: 2014-11-16

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 23.6.2025


Задание 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

1. Сочинение на тему Маяковский в. в. - Образ поэта в раннем творчестве владимира владимировича маяковского.
2. Реферат Финансовый план и ценовая политика предприятия
3. Реферат на тему The Use Of The Word
4. Реферат на тему Old Testament Essay Research Paper The Old
5. Курсовая Сравнительный анализ теорий лидерства
6. Книга Юридична деонтологія, Цирфа
7. Реферат на тему Antietam Essay Research Paper Other Names Sharpsburg
8. Диплом Разработка оптимального варианта понизительной подстанции для электроснабжения промышленных и
9. Реферат на тему Arthur C Clarke Essay Research Paper THE
10. Реферат Проблемы возникновения сознания в психологии