Константы в Pascal.

Иногда, бывает так, что у нас в программе встречаются величины, которые не меняются в процессе выполнения программы (т.е. фактически они противоположность переменных). Такие величины называются константами. Константы указываются в специальном ...

Перевод числа из десятичной системы счисления в шестнадцатеричную.

Напишем программу, которая вводит с клавиатуры целое число в диапазоне от 0 до 15 и преобразует его к шестнадцатеричной системе счисления. Напомню, что в шестнадцатеричной системе счисления числа в диапазоне от 0 до 9 соответствуют таким же числам в ...

Функции trunc, round в Pascal.

Для того чтобы в Паскаль можно было оперировать не только целыми числами, но и дробными существуют вещественные типы данных. Один из таких типов называется Real. В этом уроке мы рассмотрим 2 функции, которые производятся над дробными числами. Это ...

Циклы и массивы

Оператор варианта CASE.

Иногда его называют также оператором выбора. Это оператор CASE, который является обобщением оператора IF и позволяет сделать выбор из произвольного числа имеющихся вариантов.

Структурное программирование

Самое главное в программировании - это научиться писать четкие, логические и структурированные программы.

• Используйте осмысленные имена для переменных, процедур и функций.

• Используйте отступы ...

Отличительной особенностью Паскаля от большинства процедурных языков является то, что все переменные должны быть инициализированы. То есть в разделе 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;
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 вещественных чисел. Вычислить эмпирическую среднюю

massiv

и среднее квадратическое отклонение

massiv.

Обозначим М = и S = ?, тогда алгоритм программы будет иметь вид.

massiv..

Как мы только что обсуждали, ввод массива — это инструкция, содержащая несколько операторов, в том числе оператор цикла 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);


Предыдущая статья: Массивы. Регулярные типы.
Оглавление: Лекции по Pascal.
Следующая статья: Индексы одномерного массива.


Комментарии  

 
+1 # Serg 06.10.2021 11:18
:lol:
 
   ГлавнаяПаскальЛекции по ПаскальЦиклы с параметром. Оператор FOR.