Пример программы на обработку одномерного массива



 

//Найти и вывести номер элемента введенного с клавиатуры массива целых чисел,

//для которого сумма разностей со значениями соседних элементов максимальна.

//Для крайних элементов использовать циклическое замыкание.

#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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!