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

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

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

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

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

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

от 25%

Подписываем

договор

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

Скидка 25% при заказе до 20.2.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. Кодекс и Законы Акционерные общества 10
2. Реферат Русская идея Бердяева
3. Диплом Зовнішньоекономічна діяльність ВАТ Житомирпиво за період 20042006 роки
4. Реферат Oбщие сведения о Windows XP
5. Топик на тему Environmental problems in Arkhangelsk region
6. Реферат на тему Применение автоматизированной системы управления в производстве
7. Реферат Договор в правовой системе современного Китая
8. Книга Дослідження точності впливу ситуативної тривожності на характеристики памяті методом статистични
9. Реферат на тему Fatal Flaws In Macbeth Essay Research Paper
10. Реферат Сравнительный анализ философских концепций С.Радхакришнана и С. Дасгупты