Рассмотрим несколько базовых программ по теме «Одномерные массивы».
Объявление и ввод массива с клавиатуры.
Исходный код
program mas_input;
begin
writeln(‘N=10’);
for i:=1 to N do
begin
write(‘a[‘,i,’]= ‘);
readln(a[i]);
end;
writeln(‘result massive’);
for i:=1 to N do
write(a[i]:10:3);
end.
Заполнение массива случайными числами. Преобразование элементов массива.
Исходный код
Количество элементов — вводит пользователь.
1) Запоняем случайным образом.
2) Элементы, кратные 3, заменяем 0.
3) Выводим преобразованный массив.>
program mas_input_max;
Сумма всех элементов массива (эффективный алгоритм).
Исходный код
Количество элементов — вводит пользователь.
1) Заполняем случайным образом.
2) Вычислить сумму элементов массива. >
Источник: egeikt.wordpress.com
Паскаль с нуля [ч7]. Одномерные массивы.
Инициализация одномерного массива.
Отличительной особенностью Паскаля от большинства процедурных языков является то, что все переменные должны быть инициализированы. То есть в разделе VAR переменным отводится место, а начальное значение этих величин специально не устанавливается. Поэтому после объявления массива необходимо его элементам задать необходимые значения. Широко используется три способа инициализации одномерного массива.
1. Если значения элементов массива определены до начала работы программы, то есть известны на этапе формулировки задания на программирование, то можно использовать следующий способ:
CONST A: ARRAY [1..10] OF REAL = (0.1, -15.3, 7, 0, -11.89, 4, -78,11.2, 1,0.01);
При таком объявлении массива в разделе констант вы заносите в одномерный массив А по порядку А[1] = 0.1, А[2] = -15.3. А[10] = 0.01 вещественные числа, перечисленные в круглых скобках. При этом массив является массивом переменных, то есть в процессе работы программы можно менять содержимое любого разряда одномерного массива. Этот способ, конечно, является нарушением по стандарту Паскаля, однако очень часто используется на практике.
2. Второй способ применяется в том случае, если исходные данные необходимо ввести с клавиатуры в процессе выполнения программы. Поскольку одномерный массив представляет собой конечный набор однотипных элементов, пронумерованных с помощью индекса (переменной перечисляемого типа), то удобно использовать арифметический цикл (оператор FOR) для ввода значений непосредственно с клавиатуры. При этом можно предложить два равноценных приема. Предположим, в вашей программе сделаны объявления:
CONST
M=1;
N=15;
Задачи с массивами | Pascal | Сумма и поиск элементов
VAR
A: ARRAY[M .. N] OF REAL;
где M – нижняя, a N верхняя границы индексов. Первый способ ввода будет иметь инструкцию:
WRITELN(‘Введите массив А, из 15 вещественных чисел’);
FOR I := М ТО N DO READ(A[I]);
При таком способе оператор может ввести все 15 чисел через пробел в одну строку и только затем нажать на клавишу Enter. Если он считает нужным, то он может вводить группы чисел (например, по 3 числа, чтобы не ошибиться) через пробелы и нажимать Enter. А можно вводить на каждой строке только по одному числу.
Второй способ ввода имеет вид:
FOR I := M TO N
DO BEGIN
WRITE(‘A[‘, I:1,’] = ‘);
READLN(A[I])
END;
Этот фрагмент программы позволяет вам вводить число непосредственно за подсказкой компьютера, курсор для ввода стоит через пробел за знаком равенства.
3. Третий способ заполнения используется для массивов малых размерностей и заключается в прямом присвоении в теле программы значений элементам массива. Например, допустимы следующие операторы:
FOR I := М ТО N DO А[I] := 0;
Пример 29. В результате измерения случайного параметра сформирован массив из N вещественных чисел. Вычислить эмпирическую среднюю
и среднее квадратическое отклонение
Обозначим М = и S = ?, тогда алгоритм программы будет иметь вид.
Как мы только что обсуждали, ввод массива — это инструкция, содержащая несколько операторов, в том числе оператор цикла FOR. Но здесь и во всех последующих примерах мы не будем уточнять способ ввода одномерного массива, оставляя выбор за программистом.
PROGRAM PR29;
CONST N=10;
VAR
X: ARRAY [1.. N] OF REAL;
I: INTEGER;
S, M: REAL;
BEGIN
WRITELN(‘Введите массив X, из’, N:2,’ вещественных чисел’);
FOR I := 1 TO N DO READ(X[I]);
M:=0;
S:= 0;
FOR I := 1 TO N DO M := M + X[I];
M:=M/N;
FOR I := 1 TO N DO S := S + (X[I] — M) * (X[I] — M);
S := SQRT(S / (N — 1));
WRITELN(‘M — ‘, M :10:6,’, S = ‘, S :9:6);
END.
Отображение на экране значений одномерного массива.
Если в результате работы вашей программы массив изменил свое состояние и необходимо значения каждого из его элементов отобразить на монитор, то можно воспользоваться любым из двух способов, описанных ниже. Предположим, в вашей программе сделаны объявления:
CONST M = 1; N=15;
VAR A: ARRAY [M .. N] OF REAL;
- Тогда первый способ вывода элементов массива в строку будет иметь инструкцию:
WRITELN(‘Элементы массива А имеют значения:’);
FOR I := М ТО N DO WRITE(A[I]: С: D,»);
WRITELN;
В этой инструкции первый оператор WRITELN сообщает оператору, какую информацию он увидит на экране. Второй оператор сформирует цепочку вещественных чисел, разделенных пробелами в формате: С: D. Третий оператор WRITELN переведет курсор на новую строку.
- Второй способ обеспечивает вывод значений элементов массива в столбец, причем каждый из элементов будет идентифицирован:
FOR I := М ТО N DO WRITELN(‘A[‘, I:2,’] — ‘, А[I]: С: D);
Источник: mojainformatika.ru
Презентация на тему Массивы в Pascal. Одномерные массивы
– одномерный массив, численные данные о средней температуре за месяц — одномерный массив, буквы русского алфавита — одномерный массив.
В Бейсике элементы массива располагаются в последовательных ячейках памяти. Это означает, что массив занимает непрерывную область памяти. Прежде чем мы сможем обращаться к массиву из программы, надо указать, сколько памяти необходимо для размещения массива. Всему массиву, определяется объемом памяти, занимаемым одним элементом массива умноженным на число элементов в массиве.
Поэтому нужно указать максимальное число элементов массива. В Бейсике фирмы Microsoft описание размера массива делается с помощью оператора DIM, который имеет следующий синтаксис: DIM имя массива (максимальное число элементов массива) Например: DIM S(5) S имя массива, 5- максимальное число элементов массива, DIM M(25) M имя массива, 25- максимальное число элементов массива.
Слайд 201 способ (заполнение массива с помощью оператора
ввода
Присваивание значений элементам массива
CLS INPUT “Введите
количество элементов массива”; N DIM A(N) FOR I =1 TO N PRINT “Введите”; i ; “элемент массива” INPUT A(I) NEXT I FOR I=1 TO N PRINT A(I) NEXT I Результаты работы программы для 3-х элементов будут выглядеть так: Введите 1 элемент массива ? 23 Введите 2 элемент массива ? -54 Введите 3 элемент массива ? 21 23 -54 21
Слайд 212 способ (заполнение массива с помощью генератора
случайных чисел)
Присваивание значений элементам массива
DIM S(IOO) FOR
i=1 ТО 100 S(i) = 1+INT(1000*RND) NEXT i
Слайд 22 В двумерном массиве каждый элемент фиксируется номером
строки и столбца, на пересечении которых он
расположен.
Положение элемента в двумерном массиве определяется двумя индексами. Они разделяются запятой.
В качестве индексов могут использоваться любые арифметические выражения, константы, переменные. Если арифметическое выражение содержит дробную часть, то при определении индекса она отбрасывается.
При появлении отрицательного значения индекса вызывает сообщение об ошибке.
Слайд 23Обращение к элементам массива При обращении к
элементу двумерного массива необходимо указывать два индекса:
номер строки и номер столбца.
Элемент двумерного массива А(3,6) равен 30
Слайд 24 Описание двумерного массива
Для определения двумерного массива
в программе используется тот же оператор DIM,
только при определении размера необходимо указать два индекса – количество строк и столбцов:
DIM A(5,7)
Данное описание предполагает, что в массиве с именем А будет 5 строк и 7 столбцов.
Слайд 25
ОДНОМЕРНЫЙ
ДВУМЕРНЫЙ
DIM A(N)
FOR I = 1 TO N
INPUT A(I) NEXT I
FOR I = 1 TO N PRINT A(I) NEXT I
DIM A(M,N) FOR I = 1 TO M FOR J = 1 TO N INPUT A(I,J) NEXT J NEXT I FOR I = 1 TO M FOR J = 1 TO N PRINT A(I,J) NEXT J NEXT I
Слайд 26 Пример 2 В одномерном массиве вычислить минимальный
элемент
program minimum;
uses crt;
var a:array[1..10] of integer;
i,n,min:integer;
begin
clrscr; write(‘Введите число элементов’);
read(n);
for i:=1 to n do
read(a[i]); writeln;
for i:=1 to n do
write(a[i]:4);
min:=a[1];
for i:=2 to n do
if a[i]
Источник: thepresentation.ru