Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Task1sm.doc
Скачиваний:
8
Добавлен:
20.03.2015
Размер:
231.94 Кб
Скачать

Обработка массивов.

Массивом называется упорядоченная последовательность величин, обозначаемая одним именем. Все элементы массива имеют один и тот же тип. В программе массив должен быть описан либо в разделе описаний переменных, либо в разделе описаний типов. Форма описания имеет вид:

Type T1 = array [1..100] of integer;

T2 = array [1..5] of char;

Var A :T1; {описан массив с именем A}

B :T2; {описан массив с именем B}

C : array [1..25] of real; {описан массив с именем C }

Возможно использование многомерных массивов, т.е. массивов. Двумерные массивы еще называют матрицами. Описание многомерных массивов может иметь вид:

Type T1 = array [1..6, 1..4] of integer;

Var A :T1; {описана матрица с именем A размера 6*4}

B : array [1..5, 1..4] of real {описана матрица B размера 5*4}

Рассмотрим некоторые простейшие алгоритмы обработки массивов:

ВВОД-ВЫВОД МАССИВОВ.

Операции ввода-вывода массивов обычно используют циклы. В приведенном ниже примере описан процесс ввода одномерного массива и вывод его в виде столбца.

Program Example1;

uses Crt;

const n=5;

var A : array [1..n] of integer;

i : integer;

begin

ClrScr;

{Ввод элементов массива с помощью Read}

writeln(' Введите элементы массива ');

For i:=1 to n do

begin

Write( 'A[',i,']='); Readln(a[i]);

end;

{Вывод элементов массива}

Writeln( ' Массив A');

For i:=1 to n do writeln(a[i]:5);

readln;

end.

ПОИСК МИНИМАЛЬНОГО В МАССИВЕ.

Для одномерного массива найти минимальный элемент и определить его номер. Ниже приводится фрагмент программы поиска

Max:=A[1]; IndexMax:=1;

For i:=2 to n do

If Max<A[i] then

begin

Max:=A[i]; IndexMax:=i;

end;

Результат работы содержится в переменных:

Max - наибольший элемент массива,

IndexMax - номер этого элемента в массиве.

Ниже приводятся задания, целью которых является овладение практическими навыками работы с массивами.

ЗАДАНИЯ.

1. Даны действительные числа A[1900], A[1901]...A[1950] - количество осадков в мм, выпавших в Симферополе в течении первых 50 лет. Надо вычислить среднее количество осадков и отклонение от среднего для каждого года.

2. Даны действительные числа A1,A2,A3,... A2n. Получить:

A1,An+1,A2,An+2,...,An, A2n.

3. Даны действительные числа A1,A2,A3,... A2n. Получить:

A1,A2n,A2,A2n-1,...,An, An+1.

4. Даны действительные числа A1,A2,A3,... A2n. Получить:

A1+A2n,A2+A2n-1,...,An+An+1.

5. Даны действительные числа A1, A2, A3,...,An . Если в результате замены отрицательных членов последовательности их квадратами члены будут организовывать неубывающую последовательность, то получить сумму членов исходной последовательности; в противном случае получить их произведение.

6. Даны действительные числа A1, A2, A3,..., An. Получить новую последовательность, выбросив из исходной все члены со значением max(A1, A2, A3,..., An).

7. Даны действительные числа A1, A2, A3,..., An. Все члены последовательности с четными номерами, предшествующие первому по порядку члену со значением Max(A1, A2, A3,..., An) умножить на Max(A1, A2, A3,..., An).

8. Даны целые числа A1, A2, A3,..., An, каждое из которых отлично от нуля. Поменять местами наибольший член последовательности и член с номером M.

9. Даны целые числа A1, A2, A3,..., An. Если в данной последовательности ни одно четное число не расположено после нечетного, то получить все отрицательные числа последовательности, иначе - все положительные. Порядок следования чисел в обоих случаях заменяется на обратный.

10. Даны целые числа A1, A2, A3,..., An. Наименьший член последовательности заменить целой частью среднего арифметического всех членов последовательности, остальные члены оставить без изменения. Если в последовательности несколько членов со значением Min(A1, A2, A3,..., An), то заменить последний по порядку.

11. Даны целые числа A1, A2, A3,..., An, каждое из которых является либо 0, либо 1, либо 2. Переставить числа так, чтобы сначала шли только 0, затем только 1, затем только 2.

12. Элементы массива Х преобразовать по следующему правилу (воспользоваться массивом У, как вспомогательным): все отрицательные элементы массива Х перенести в его начало, а все остальные - в конец, сохраняя исходное взаимное расположение как среди отрицательных, так и среди всех остальных элементов.

13. Элементы массива Х преобразовать по следующему правилу (воспользоваться массивом У, как вспомогательным): все элементы массива Х циклически сдвинуть вправо на k позиций.

14. Даны действительные числа . Найти сумму A1, A2, A3,..., An чисел этой последовательности, расположенных между максимальным и минимальным числами (в сумму включить и оба этих числа).

15. Даны две последовательности по 30 чисел в каждой. Найти наименьшее среди тех чисел первой последовательности, которые не входят во вторую последовательность (считая, что хотя бы одно такое число есть).

16.Даны целые числа A1, A2, A3,..., An (в этой последовательности могут быть повторяющиеся члены). Получить все числа последовательности, которые входят в нее по одному разу.

17. Построить пересечение последовательностей A1, A2, A3,..., An и B1, B2, B3,..., Bn. Т.е. получить в каком либо порядке числа, принадлежащие одновременно обеим последовательностям. (Если возникают трудности, попробуйте решить эту задачу, предполагая, что среди членов последовательности А нет повторяющихся и среди членов последовательности В нет повторяющихся)

18. Даны целые числа A1, A2, A3,..., An . Для каждого из этих чисел выяснить сколько раз оно входит в эту последовательность. Результат представить в виде ряда строк, первая из которых есть А1- k, где k - есть число вхождений А1 в

последовательность. Вторая строка будет иметь вид Аi- m, где Аi - есть первый по порядку член, отличный от А1 , m - число вхождений этого члена в последовательность и т.д.

19. Даны целые числа A1, A2, A3,..., An. Получить новую последовательность, заменяя Ai нулями, если |Ai|Max(A1, A2, A3,..., An) и заменяя Ai единицей в противном случае.

20. Даны целые числа A1, A2, A3,..., An. Оставить ее без изменения, если она упорядочена по неубыванию или по невозрастанию; в противном случае удалить из последовательности те члены, порядковые номера которых кратны четырем, сохранив прежним порядок оставленных членов.

Работа N 4.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]