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

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

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

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

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

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

от 25%

Подписываем

договор

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

Скидка 25% при заказе до 5.4.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. Реферат Система и виды наказаний 7
2. Реферат Переживание острого горя
3. Реферат Анализ финансово-хозяйственной деятельности предприятия 30
4. Сочинение на тему Лермонтов м. ю. - Сцена захвата казака-убийцы в романе м. ю. лермонтова
5. Реферат Влияние лесных полос на ветровой поток, температуру и влажность приземного слоя воздуха
6. Сочинение на тему Бредбери р если тебе дадут линованную бумагу пиши поперек
7. Реферат на тему The End
8. Курсовая на тему Статистичні коефіцієнти рентабельності роботи комерційних банків
9. Реферат на тему White Fang Essay Research Paper I IntroductionJack
10. Реферат 10 этапов улучшения качества по Дж.Джурану