Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Задание 6. Обработка одномерных массивов



Одномерный массив − это фиксированное количество элементов одного и того же типа, объединенных одним именем, где каждый элемент имеет свой номер.

Например, A(8) – одномерный массив, где А – имя массива, 8 – количество элементов.

Общий вид записи:

А1, А2, А3……., Аn – это одномерный массив,

где Аi – элементы массива, i=1, 2, 3……n – индекс представляет собой переменную целого типа. Запись элемента массива на языке Паскаль А[i].

Общий вид записи описания одномерного массива:

Var «Имя массива»: Array[n1..n2] Of «Тип элементов»;

n1 − номер первого элемента;

n2 − номер последнего элемента.

Array, of – зарезервированные слова («массив», «из»).

Задача 1. В массиве X(15) вычислите максимальный элемент массива и его порядковый номер.

Обозначения: MAX– максимальный элемент массива; K – порядковый номер максимального элемента массива. Program Massiv1; Var {Описание используемых переменных} K, i, MAX: integer; {Описание массива X} X: array [1..15] of integer; begin {Организация цикла для ввода элементов массива с клавиатуры} for i:=1 to 15 do readln (X[i]); {Присвоение начальных значений максимальному элементу и его порядковому номеру} MAX:=X[1]; K:=1; {Организация цикла для поиска максимального элемента массива и его порядкового номера} for i:=2 to 15 do if X[i]>MAX then begin MAX:=X[i]; K:=i; end; {Вывод результатов вычисления на экран} writeln ('MAX=', MAX:2, ';K=', K); readln; end.

Задача 2. В массиве R(8) найдите минимальный элемент и замените его на 5.

Обозначения: MIN– минимальный элемент массива; N – порядковый номер минимального элемента.   Program Massiv2; Var R: array[1..8] of integer; i, n, MIN: integer; begin for i:=1 to 8 do readln (R[i]); {Присвоение начальных значений минимальному элементу и его порядковому номеру} MIN:= R[1]; n:=1; {Организация цикла для поиска минимального элемента массива и его порядкового номера} for i:=2 to 9 do if R[i]<MIN then begin MIN:= R[i]; n:=i; end; {Вывод результатов вычисления на экран} writeln ('MIN=',MIN); {Замена минимального элемента массива на 5} R[n]:=5; {Вывод нового массива на экран} for i:=1 to 8 do write (R[i]:5); readln; end.  

Задача 3. В массиве А(8) определите количество положительных и отрицательных элементов.

Обозначения: p – количество положительных элементов; ot – количество отрицательных элементов.   Program Massiv3; Var p, ot, i: integer; a: array[1..8] of integer; begin writeln ('Введите элементы массива А'); for i:=1 to 8 do readln (А[i]); {Присвоение начальных значений количеству положительных и отрицательных элементов} p:=0; ot:=0; {Организация цикла для подсчёта количества положительных и отрицательных элементов массива} for i:=1 to 8 do if А[i]>0 then p:=p+1 else ot:=ot+1; {Вывод результатов вычисления на экран} writeln ('Количество положительных элементов=', p:2); writeln ('Количество отрицательных элементов=', ot:2); readln; end.  

Задача 4. В массиве X(15) вычислите сумму элементов массива меньших 10
и произведение элементов массива больших нуля.

Обозначения: S – сумма элементов массива, меньших 10; P – произведение элементов массива, больших нуля.   Program Massiv4; Var i, S, P: integer; X: array [1..15] of integer; begin for i:=1 to 15 do readln (X[i]); {Присвоение начальных значений сумме и произведению} S:=0; P:=1; {Организация цикла для вычисления суммы и произведения элементов массива} for i:=1 to 15 do begin if X[i]<10 then S:=S+X[i]; if X[i]>0 then P:=P*X[i]; end; {Вывод результатов вычисления на экран} writeln ('S=', S); writeln ('P=', P); readln; end.  

Задача 5. В массиве D(15) найдите все положительные элементы и замените их на среднее арифметическое отрицательных элементов.

Обозначения: S – сумма отрицательных элементов массива; SA – среднее арифметическое отрицательных элементов массива; K –количество отрицательных элементов массива.   Program Massiv5; Var K, I: integer; S, SA: real; D: array [1..15] of real; Begin write ('Введите элементы массива D'); for i:=1 to 15 do readln (D[i]); {Присвоение начальных значений сумме и количеству элементов} S:=0; K:=0; {Организация цикла для вычисления суммы и количества отрицательных элементов массива} for i:=1 to 15 do if D[i]<0 then begin S:=S+D[i]; K:=K+1; end; {Вычисление среднего арифметического элементов массива} SA:=S/K; {Вывод среднего арифметического элементов массива на экран} writeln ('SA=',SA:7:2); writeln ('Вывод нового массива D'); {Организация цикла для определения положительных элементов массива и замена их на среднее арифметическое и вывод нового массива на экран} for i:=1 to 15 do begin if D[i]>0 then D[i]:=SA; writeln ('D(',i, ')= ', D[i]:5:2); end; readln; end.

Задача 6. В массиве С(7) отсортируйте все элементы по возрастанию.

Обозначения: m – вспомогательная переменная для перестановки элементов массива.   Данные массива задаются типизированной константой, значения элементов массива выбираются произвольно   Program Massiv6; Var k, i, M: integer; {Описание массива С с помощью типизированной константы} const c: array[1..7] of integer = (5,-4,2,7,-1,88,9); begin {Сортировка массива} for k:=1 to 7 do for i:=k+1 to 7 do if c[i]<=c[k] then begin M:=c[i]; c[i]:=c[k]; c[k]:=M; end; {Вывод нового массива на экран} for i:=1 to 7 do writeln ('c[',i,']=',c[i]:2); readln; end.  

Алгоритм сортировки массива:

1. Сравним между собой первый и второй элементы массива и переставим их (если это необходимо) в порядке возрастания. Затем то же самое проделаем со вторым и третьим элементами и т.д. до конца массива. В результате этих сравнений и перестановок наименьшее число окажется первым.

2. Второй этап сравнений и перестановок будет проходить для (N−1) элементов (N − количество элементов массива), начиная со второго до N. В этом случае второй элемент окажется наименьшим. Уменьшая каждый раз количество элементов на 1, операции сравнения и перестановок закончим тогда, когда останется один элемент массива.

Переменная M является в качестве подсобной для перестановки элементов.

Задача 7. В массиве Х(8) подсчитайте сумму элементов, стоящих на чётных местах.





Дата публикования: 2015-01-13; Прочитано: 350 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...