Паскаль не имеет средств ввода-вывода элементов массива сразу, поэтому ввод и вывод значений производится поэлементно. Значения элементам массива можно присвоить с помощью оператора присваивания, как показано в примере инициализации, однако чаще всего они вводятся с экрана с помощью оператора Read или Read l n с использованием оператора организации цикла for:
Ввод элементов одномерного массива А:
for I:=l to 4 do
Readln(A[I]) ;
Аналогично значения двумерного массива вводятся с помощью вложенного оператора for:
Ввод элементов двумерного массива В:
for I := I to 10 do
for J := 1 to 15 do
Readln ( B [ I , J ]) ;
В связи с тем, что использовался оператор Read l n, каждое значение будет вводиться с новой строки. Можно ввести и значения отдельных элементов, а не всего массива. Так, операторами:
Read(A[3]);
Read(B[6,9]);
вводится значение третьего элемента вектора А и значение элемента, расположенного в шестой строке девятого столбца матрицы В. Оба значения набираются на одной строке экрана, начиная с текущей позиции расположения курсора.
Вывод значений элементов массива выполняется аналогичным образом, но используются операторы Write или Write l n:
Вывод элементов одномерного массива А:
for I := I to 4 do
Writeln (A[I]);
Вывод элементов двумерного массива В:
for I := I to 10 do
for J := 1 to 15 do
Writein ( B [ I , J ]);
Копированием массивов называется присваивание значений всех элементов одного массива всем соответствующим элементам другого массива. Копирование можно выполнить одним оператором присваивания, например А:=D; или с помощью оператора for:
for I := 1 to 4 do
A[I] := D[I];
В обоих случаях значение элементов массива D не изменяется, а значения элементов массива А становятся равными значениям соответствующих элементов массива D. Очевидно, что оба массива должны быть идентичны по структуре.
Иногда требуется осуществить поиск в массиве каких-либо элементов, удовлетворяющих некоторым известным условиям. Пусть, например, надо выяснить, сколько элементов массива А имеют нулевое значение.
К := 0;
for I := 1 to 4 do
if A[I] = 0 then К := К + 1;
После выполнения цикла переменная К будет содержать количество элементов массива А с нулевым значением.
Перестановка значений элементов массива осуществляется с помощью дополнительной переменной того же типа, что и базовый тип массива.
Например, так запишется фрагмент программы, обменивающий значения первого и пятого элементов массива А:
Vs:= A[5]; {Vs - вспомогательная переменная}
А[5]:= А[1];
А[1]:= Vs;
Пример программы ввода-вывода одномерного массива
program priimer1;
uses crt;
var
mas:array [1..10] of integer; {Описание одномерного массива с именем mas , состоящего из 10 элементов типа integer }
n,i:integer; { n -количество элементов массива, i -счетчик в цикле for }
BEGIN
clrscr;
writeln('Введите количество элементов массива не больше 10: ');
readln(n);
for i:=1 to n do {ввод элементов массива}
begin
writeln('Введите ',i,' элемент массива');
readln(mas[i]);
end; { конец ввода }
writeln('Введенный массив: ');
for i:=1 to n do {вывод элементов массива}
begin
write(' ',mas[i],' ');
end; { конец вывода }
readkey;
END.
Пример программы ввода-вывода двумерного массива
program primer2;
uses crt;
var
i,j,n,m:integer;
massiv:array[1..10,1..10] of integer; { описан двумерный массив с именем massiv}
BEGiN
clrscr;
write('Введите количество строк массива (не больше 10): ');
read(n); { n -количество строк}
write('Введите количество столбцов массива (не больше 10):');
read(m); { m -количество столбцов}
for i:=1 to n do {ввод элементов двумерного массива}
begin
for j:=1 to m do
read(massiv[i,j]);
end; { конец ввода }
writeln('Введенный массив: ');
for i:=1 to n do {вывод элементов двумерного массива}
begin
for j:=1 to m do
write(massiv[i,j]:5);
end; { конец вывода }
readkey;
END.
Задание 1
Составьте программу, которая запрашивает значение элементов одномерного числового массива А, формирует и выводит на экран в строку новый числовой массив В, в котором:
1.1. элементы те же, что и в А, но расположены в обратном порядке.
1.2. элементы равны модулю соответствующих элементов А.
1.3. элементы на 1 больше, чем соответствующие элементы А.
1.4. элементы те же, что и в А, но отрицательные заменяются на 0.
Составьте программу для решения одной из следующих задач.
1.5 Подсчета суммы элементов массива, меньших своего номера.
1.6 Подсчета суммы элементов массива, стоящих на четных местах.
1.7 Замены всех элементов массива соответствующими степенями числа 2.
1.8 Замены ненулевых элементов массива на обратные.
Задание 2
Измените предыдущую программу так, чтобы в массиве В, элемент с номером i был равен:
2.1. сумме первых i элементов массива А.
2.2. произведению первых i элементов массива А.
2.3. количеству нулей среди первых i элементов массива А.
2.4. максимальному среди первых i элементов массива А.
2.5. количеству положительных чисел первых i элементов массива А.
2.6. минимальному среди первых i элементов массива А.
2.7. номеру максимального элемента среди первых i элементов А.
2.8. номеру минимального элемента среди первых i элементов А.
После исполнения программы элементы массива В должны быть напечатаны на экране каждый под соответствующим элементом массива А.
Задание 3
Составьте программу для решения одной из следующих задач.
3.1. Определить, есть ли в массиве положительные числа, отрицательные числа, нули.
3.2. Определить, все ли числа из массива А лежат в указанном диапазоне.
3.3. Определить, есть в массиве числа, превосходящие сумму всех элементов массива.
3.4. Определить, единственный ли в массиве максимальный элемент.
3.5. Определить, является ли массив А упорядоченным по возрастанию.
3.6. Определить, является ли массив А упорядоченным по убыванию.
3.7. Определить номер первого нуля в массиве А или выдать сообщение, что нулей в массиве нет.
3.8. Определить, симметричны ли элементы в массиве относительно центрального или центральных.
Задание 4
Составьте программу для решения одной из следующих задач.
4.1. Удалить из массива минимальный элемент
4.2. Подсчитать количество рабочих в данной бригаде, работающих хуже, чем в среднем вся бригада.
4.3. Обменять значениями максимальный и минимальный элементы.
4.4. Подсчитать количество дней, имеющих наибольшую температуру за последнюю декаду марта.
4.5. Найти количество максимальных элементов массива, используя только один оператор цикла.
4.6. Вычислить произведение элементов массива А до первого отрицательного элемента (при наличии отрицательного элемента).
4.7. Вычислить произведение элементов массива А, находящихся между первым максимальным и первым минимальным элементами.
4.8. Вычислить сумму положительных элементов массива А после первого нуля (при наличии нуля).
4.9. Вычислить сумму отрицательных элементов (если такие есть) массива А до первого максимального элемента.
Задание 5
Составьте программу для решения одной из следующих задач.
5.1. Найти второй по величине элемента массива.
5.2. Упорядочить массив А по возрастанию.
5.3. Найти наибольшее количество одинаковых элементов массива А, идущих подряд.
5.4. Подсчитать K- количество элементов, равных первому отрицательному, используя один оператор цикла; если отрицательных нет, то K=-1.
5.5. Исключить нули со сдвигом элементов таблицы.
5.6. По двоичной записи натурального числа M (в виде массива 0 и 1) выдать двоичную запись числа M+1.
5.7. Определить количество разных элементов массива А.
5.8. Найти максимальный из отрицательных элементов массива А с четными номерами (с учетом того, что их может не быть).
5.9. Найти минимальный из положительных элементов массива А с четными номерами (с учетом того, что их может не быть).
5.10. Определить наибольшее количество одинаковых элементов в данном массиве.
Лабораторная работа №6
Дата: 2019-02-02, просмотров: 327.