Обработка массива, типовые задачи


Обработка массива Типовые задачи Типовые задачи нахождение в массиве заданного элемента;вычисление среднего арифметического и геометрического элементов массива;подсчет элементов в массиве, удовлетворяющих заданному условию;поиск в массиве максимального (минимального) элемента;сортировка элементов массива Типовые задачи на нахождение в массиве заданного элемента ЗАДАЧАОпределить имеется ли в массиве заданный элемент. РЕШЕНИЕ Будем считать, что одномерный целочисленный числовой массив задан случайным образом. От пользователя требуется ввести число. Если в массиве есть элемент с таким значением, то необходимо выдать соответствующее сообщение. Таким образом, задача сводится к сравнению каждого элемента массива с введенным пользователем числом. Условные обозначения:g – запрашиваемое у пользователя число (целый тип)n – размерность массива (число элементов в массиве) m – массив, содержащий целые числа в диапазоне от a до b program element;const n = 15; a = – 4; b = 40;var i, g: integer; otv:string[5]; m: array [1..n] of integer;Begin {заполнение массива--------} for i:=1 to n do m[i]:= random(b – a) + a;{вывод на экран} for i:=1 to n do write(m[i]:6);{-----------------------------------------} write ('введите число '); readln (g); i := 1; otv:=’нет‘; repeat if g=m[i] then begin otv:=’есть‘; i:=n end; i := i + 1; until (i > n); writeln ('В массиве ', otv, ‘элемент ', g); readln;End. Типовые задачи на вычисление среднего арифметического и геометрического элементов массива ЗАДАЧА Вычислить среднее арифметическое элементов массива. Решение Вычисление среднего арифметического сводится к суммированию всех элементов массива Условные обозначения:m – массив, содержащий целые числа в диапазоне от a до bn – размерность массива (число элементов в массиве) sr – среднее арифметическое (вещественный тип)s – сумма всех элементов массива (целый тип) program sr_arif; const n = 15; a = – 10; b = 50;var m : array [1..n] of integer; i, s: integer; sr:real;Begin {заполнение массива--------} for i:=1 to n do m[i]:= random(b – a) + a;{вывод на экран} for i:=1 to n do write(m[i]:6);{суммирование всех элементов} s := 0;{начальное значение суммы s=0} for i:= 1 to n do s := s + m[i]; sr:= s / n; {сумму всех элементов делим на их количество}{вывод ответа} writeln ('среднее арифметическое элементов массива = ', sr:6:2); readln;End. Типовая задача на подсчет элементов в массиве, удовлетворяющих заданному условию ЗАДАЧА Вычислить произведение элементов массива, кратных трем.Кроме проверки условия необходимо предусмотреть выдачу сообщения в случае, когда в массиве не будет ни одного элемента, кратного трем. Решение РЕШЕНИЕЗапишем условие для накопления произведения на языке математики. Кратность трем означает, что значение элемента массива должно делится нацело на три, т. е. a[i]/3, где a[i] – элемент массива с номером i. Тогда на языке программирования Pascal условие делимости будет записано следующим образом: if (a[i] mod 3) = 0 then p:= p* a[i]; Условные обозначения:m – массив, содержащий целые числа в диапазоне от a до bn – размерность массива (число элементов в массиве) p – произведение всех элементов массива, кратных трем program proizved; const n = 15; a = – 10; b = 50;var m : array [1..n] of integer; i, p: integer; otv: string [4] ;Begin {заполнение массива--------} for i:=1 to n do m[i]:= random(b – a) + a;{вывод на экран} for i:=1 to n do write(m[i]:6);{решение задачи}p := 1; otv:=’нет’ for i:= 1 to n do if (a[i] mod 3) = 0 then begin p:= p* a[i]; otv:=’есть’ end; if otv:=’есть’ then writeln ('произведение элементов массива, кратных трем = ', p) else writeln ('в массиве нет элементов, кратных трем');readln;End. Типовая задача на поиск в массиве максимального элемента ЗАДАЧА Найти максимальную из сумм a1 + an; a2 + an-1; …, где a1,a2, … an – элементы массива. Решение РЕШЕНИЕЗадача сводится к последовательному нахождению сумм a1 + an; a2 + an-1; … и выбора из них наименьшей. Условные обозначения:m – массив, содержащий целые числа в диапазоне от a до bn – размерность массива (число элементов в массиве) max – минимальная из сумм a1 + an; a2 + an-1; … program max_sum;const n = 14; a = – 20; b = 10;var m : array [1..n] of integer; i, max: integer; Begin {заполнение массива--------} for i:=1 to n do m[i]:= random(b – a) + a;{вывод на экран} for i:=1 to n do write(m[i]:6);{решение задачи}max:=a[1] + a[n]; {начало поиска}for i : = 2 to n do if max< a[i] + a[n – i + 1] then max := a[i] + a[n – i + 1];{вывод ответа}writeln (‘максимальная сумма равна ', max) readln;End. Задание Открыть электронный учебник Шауцуковой Практика. Глава 2. Алгоритмы, реализуемые с помощью циклов типа ДЛЯ Изучить примеры обработки массива