Работа над массивами с помощью языка С++
Формирование одномерного массива, каждый элемент которого равен наибольшему по модулю элементу соответствующего столбца. Определение столбца, в котором равное количество положительных и отрицательных элементов. Написание программы и ее тестирование.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 21.06.2009 |
Размер файла | 97,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Задание 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,3 M], добавлен 23.11.2014Изучение определения, описания и вызова функций, указателей и ссылок на них. Написание функции умножения произвольного столбца двумерного массива на const. Умножение 2 столбцов массива на константы. Составление блок-схемы алгоритма и текста программы.
лабораторная работа [182,3 K], добавлен 09.01.2012Подсчет количества отрицательных элементов массива. Изменение исходного массива перемещением всех его положительных элементов в начало с исходным порядком их следования. Вывод на дисплей количества перемещенных элементов. Алгоритм и код программы.
лабораторная работа [946,5 K], добавлен 23.11.2014Вычисление суммы положительных элементов массива. Упорядочивание элементов массива по убыванию. Решение задачи с помощью алгоритма, реализованного в среде Microsoft Visual 2008 Express. Реализация и тестирование программы. Выполнение трассировки функций.
практическая работа [146,3 K], добавлен 23.01.2015Программа обработки одномерного массива средствами Visual Basic for Application (VBA) на предмет преобразования, печати, удаления, сортировки, поиска сумм, положительных, чётных элементов, их кратности и дополнения другими элементами и значениями данных.
контрольная работа [12,3 K], добавлен 07.10.2012Программы линейной структуры. Составление программы, которая по заданному номеру и значению соответствующего элемента вычисляет значение всех остальных элементов треугольника. Формулирование одномерного массива с помощью генератора случайных чисел.
отчет по практике [1,2 M], добавлен 01.12.2012Специфические типы массивов. Составление программы по вычислению произведения матриц. Нахождение наибольшего элемента в массиве. Вывод номера строки и столбца, в котором он содержится, на экран. Создание массива, заполнение его рандомными числами.
отчет по практике [309,0 K], добавлен 07.01.2014Разработка программы замены столбца с минимальным элементом на последний столбец, написанной на языке С++. Результаты откладки и тестирования программы. Алгоритм, входные и выходные параметры и логика работы программы, ее функциональное назначение.
курсовая работа [155,2 K], добавлен 25.03.2012Виды информационно-вычислительных сетей: локальные, городские, глобальные; их классификация. Разработка программы на языке программирования С: формирование одномерного массива путем замены нулевых элементов на среднеарифметическое, а пробелов - на слова.
практическая работа [37,5 K], добавлен 20.05.2012Составление программы для нахождения минимального и максимального элементов массива. Программа вычисления корней квадратных алгебраических уравнений. Ранжирование одномерного массива по заданному признаку. Формирование массивов с помощью функции random.
контрольная работа [1,0 M], добавлен 30.04.2013