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

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

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

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

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

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

от 25%

Подписываем

договор

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

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


Задание 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. Курсовая Выработка целей и стратегии развития фирмы
4. Реферат Регуляция в системе органов пищеварения
5. Реферат Интегрированные системы менеджмента 2
6. Сочинение на тему Кутузов и Наполеон
7. Реферат Зачем нужна риторика
8. Реферат Философия как смысл жизни
9. Реферат на тему Our Town
10. Реферат на тему 1920s Automobiles Essay Research Paper Autmbiles of