Пример программы на обработку одномерного массива
//Найти и вывести номер элемента введенного с клавиатуры массива целых чисел,
//для которого сумма разностей со значениями соседних элементов максимальна.
//Для крайних элементов использовать циклическое замыкание.
#include<iostream.h>
#include<math.h>
#include <locale.h>
const int RAZ = 10 ; //размер массива
typedef int telem ; //определение типа элементов массива
typedef telem tmas[RAZ] ; //определение типа массива
int nomer(const tmas a, telem &max) ;
void inputmas(tmas a) ;
int main()
{tmas a ; //массив
int nom ; //номер искомого элемента
telem max ; //значение максимальной суммы разностей
setlocale(LC_ALL,"Russian") ;
cout << " В массиве целых чисел найти номер элемента, для которого\n" ;
cout << " сумма разностей со значениями соседних элементов максимальна\n" ;
//Ввод исходных данных
inputmas(a) ;
//Поиск номера элемента
nom = nomer(a, max) ;
cout << " Искомый номер элемента массива: " << nom ;
cout << "\n Значение элемента:" << a[nom] << " , сумма разностей=" << max ;
cout << "\n Для завершения нажмите <Enter>" ;
return 0 ;
}
int nomer(const tmas a, telem &max)
{telem pr ; //текущее значение разности
int imax = 0 ; //за максимум принимаем первый по счету элемент
max = abs(a[RAZ - 1] - a[0]) + abs(a[1] - a[0]) ;
for(int i = 1 ; i < RAZ - 1 ; i++)
if(max < (pr = abs(a[i-1] - a[i]) + abs(a[i+1] - a[i])))
{imax = i ;
max = pr ;
}
if(max < (pr = abs(a[0] - a[RAZ - 1]) + abs(a[RAZ - 2] - a[RAZ-1])))
{imax = RAZ - 1 ;
max = pr ;
}
return imax ;
}
void inputmas(tmas a)
{cout << "\n Введите в одной строке элементы массива, состоящего из ";
|
|
cout << RAZ << " целых чисел,\n и нажмите <Enter>\n" ;
for(int i = 0 ; i < RAZ ; i++)
cin >> a[i] ;
}
Лабораторная работа №8
Статические двумерные массивы
Цель лабораторной работы: изучение структурной организации массивов и способов доступа к их элементам; совершенствование навыков процедурного программирования на языке C/C++ при решении задач обработки статических двумерных массивов.
Задание на программирование: используя технологию процедурного программирования, разработать программу обработки двумерных статических массивов (матриц) в соответствии с индивидуальным заданием.
Порядок выполнения работы:
1) Получить у преподавателя индивидуальное задание и выполнить постановку задачи: сформулировать условие, определить входные и выходные данные, их ограничения.
2) Разработать математическую модель: описать с помощью формул и рисунков структуру массивов и процесс их преобразования.
3) Построить схему алгоритма решения задачи.
4) Составить программу на языке C/C++.
5) Входные данные на этапах тестирования и демонстрации работы преподавателю должны задаваться либо с использованием специально подобранных арифметических формул, либо вводиться с клавиатуры по запросу. Датчики псевдослучайных чисел использовать запрещается.
|
|
Выходные данные должны выводиться на экран с пояснениями.
6) Проверить и продемонстрировать преподавателю работу программы на полном наборе тестов, в том числе с ошибочными входными данными. Входные и выходные массивы должны выводиться в одном и том же формате.
7) Использовать стандартные потоковые объекты ввода/вывода cin и cout.
8) Оформить отчет о лабораторной работе в составе: постановка задачи, математическая модель, схема алгоритма решения, текст программы, контрольные примеры.
Варианты индивидуальных заданий
1.
В заданной матрице поменять местами первую строку и строку, содержащую максимальный элемент среди элементов с отрицательным значением.
2.
В заданной матрице поменять местами последний столбец и столбец, содержащий минимальный элемент среди элементов с положительным значением.
3.
В заданной матрице поменять местами строку, содержащую максимальный элемент матрицы, и строку, содержащую минимальный элемент матрицы.
4.
В заданной квадратной матрице размера (2n+1)×(2n+1) поменять местами главную и побочную диагонали.
|
|
5.
В заданной матрице поменять местами первый столбец со столбцом, содержащим наибольший по абсолютной величине элемент матрицы.
6.
В заданной квадратной матрице размера (2n+1)×(2n+1) поменять местами среднюю строку и средний столбец.
7.
В заданной матрице поменять местами последнюю строку со строкой, содержащей максимальный элемент среди элементов с отрицательным значением.
8.
В заданной матрице поменять местами первую строку и первый столбец.
9.
В заданной матрице поменять местами последний столбец со столбцом, содержащим минимальный элемент среди элементов с положительным значением.
10.
В заданной матрице поменять местами последнюю строку со строкой, содержащей наименьший по абсолютной величине элемент матрицы.
11.
В заданной матрице поменять местами первый столбец со столбцом, содержащим наибольший по абсолютной величине элемент главной диагонали.
12.
В заданной матрице поменять местами две строки: строку с указанным номером и строку, содержащую минимальный элемент среди элементов с положительным значением.
13.
В заданной квадратной матрице размера (2n+1)×(2n+1) поменять местами последний столбец и побочную диагональ.
|
|
14.
В заданной матрице поменять местами столбец, содержащий максимальный элемент матрицы, и столбец, содержащий минимальный элемент матрицы.
15.
В заданной матрице поменять местами первую строку и строку, содержащую максимальный элемент среди элементов с отрицательным значением.
16.
В заданной квадратной матрице размера (2n+1)×(2n+1) поменять местами первый столбец и побочную диагональ.
17.
В заданной матрице поменять местами последнюю строку со строкой, содержащей минимальный элемент среди элементов с положительным значением.
18.
В заданной матрице поменять местами последний столбец и столбец, содержащий минимальный по абсолютной величине элемент матрицы.
19.
В заданной матрице поменять местами последнюю строку со строкой, содержащей максимальный элемент среди элементов с отрицательным значением.
20.
В заданной матрице поменять местами последний столбец со столбцом, содержащим минимальный элемент среди элементов с положительным значением.
21.
В заданной квадратной матрице размера (2n+1)×(2n+1) поменять местами среднюю строку и главную диагональ.
22.
В заданной квадратной матрице размера (2n+1)×(2n+1) поменять местами главную диагональ и средний столбец.
23.
В заданной матрице поменять местами столбец, содержащий максимальный элемент среди элементов с отрицательным значением, и столбец, содержащий минимальный элемент среди элементов с положительным значением.
24.
В заданной матрице поменять местами последний столбец и столбец, содержащий минимальным элемент среди элементов с положительным значением.
25.
В заданной матрице поменять местами первую строку и строку, содержащую максимальный элемент среди элементов с отрицательным значением.
26.
В заданной квадратной матрице размера (2n+1)×(2n+1) найти сумму значений элементов, принадлежащих главной диагонали, и произведение значений элементов, принадлежащих побочной диагонали.
27.
В заданной матрице целых чисел найти сумму значений элементов, лежащих по её периметру (принадлежащих первой и последней строке и первому и последнему столбцу матрицы).
28.
В заданной квадратной матрице размера (2n+1)×(2n+1) целых чисел найти сумму значений элементов, лежащих выше главной диагонали.
29.
В заданной квадратной матрице размера (2n+1)×(2n+1) найти сумму значений элементов, лежащих ниже побочной диагонали.
30.
В заданной квадратной матрице размера (2n+1)×(2n+1) целых чисел найти сумму значений элементов, не принадлежащих главной и вспомогательной диагоналям.
Дата добавления: 2018-04-15; просмотров: 549; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!