Основы языка Паскаль.
Алфавит языка.
В алфавит любого алгоритмического языка входит фиксированный набор основных символов.
В алфавите языка Паскаль можно выделить три группы знаков: буквы, цифры и специальные символы.
В качестве букв используют буквы латинского алфавита. Слова, состоящие из букв русского алфавита, могут быть использованы только как комментарии.
К цифрам относятся все арабские цифры от 0 до 9.
В группе специальных символов можно выделить три подгруппы – знаки арифметических операций, знаки операций сравнения, разделители (. , : и т.д.)
Константы, переменные, типы данных.
Константа – величина, значение которой не изменяется в период её существования. Существуют числовые и символьные константы.
Числовые константы в программе записываются в десятичной системе, вместо запятой пишется точка.
Например: 0, -17, 0.26, 3.1415, + 12.7, -0.18, 0.23Е+06.
Переменная – величина, которая может изменяться, принимая в процессе работы с ней различные значения.
Переменные всегда начинаются буквой, за которой могут следовать буквы, цифры и знак подчеркивания. Пробелы и специальные символы не могут входить в имя переменной.
Например: X1, alfa, N4_65, A1_5, X[I].
Данные – информация, представленная в формальном виде, который обеспечивает возможность её хранения, обработки и передачи.
В языке Паскаль любая константа, переменная, значение функции или выражения характеризуются своим типом.
Тип объекта определяет множество значений этого объекта, набор операций, которые могут быть к нему применены, а также тип результата выполнения этих операций. Формат внутреннего представления объекта зависит от его типа.
Набор типов данных, используемых в Паскале.
Простые
|
Структурированные
|
Порядковые - целые
Integer
- целое
Shortint
- короткое целое
Longint
- длинное целое
Byte
- байт
Word
– слово
логический
Boolean
символьный
Char
вещественные
Real
Single
Double
Extended
Comp
|
Массивы
Array
Записи
Record
Множества
Set
Файлы
File
Строки
String
Указатели
Pointer
|
Для порядковых типов характерно, что объект имеет конечное множество значений. Каждому из них можно сопоставить некоторое целое число.
Для объектов вещественного типа количество возможных значений настолько велико, что не возможно сопоставить каждому из них целое число.
Необходимо помнить, исходная информация представляется в числовом виде, символьном виде, звуковом или графическом. Программа может работать с постоянными величинами (константами) и переменными. Каждая величина должна быть объявлена, т.е. указан её тип.
Понятие идентификатора.
В программировании слово «имя» часто заменяют словом «идентификатор». Это слово произошло от латинского identifico – отождествлять.
Надо помнить, что идентификатор не обязательно представляет собой переменную, т.к. имя можно присвоить и самой программе, и функции, например sin, cos и т.п. Кстати, запрещено использовать их имена в качестве имен переменных. Правила образования идентификаторов, аналогичны правилам образования имен переменных. Зарезервированные слова (такие как BEGIN, END, PROGRAM и др.) в качестве идентификаторов не используют.
Идентификаторы могут быть любой длинны, но сравнение их между собой производится по первым 63 символам.
Арифметические операции.
Арифметические операции записываются с помощью знаков:
+ - сложение;
- вычитание:
* - умножение:
/ - деление вещественное:
div- деление целочисленное:
mod - получение остатка от деления целых чисел.
Операция возведения в степень отсутствует. (x3
=x*x*x).
Математические функции.
Для вычисления значений наиболее часто употребляемых математических функций фирмой производителем разработаны специальные алгоритмы решения и программы к ним, которые поставляются вместе с языком. Они хранятся в специальной библиотеке и называются встроенными функциями.
Функция |
Запись на папке |
Тип аргумента |
Тип результата |
|x| |
Abs(x) |
Integer
Real
|
Integer
Real
|
Cos x |
Cos(x) |
Integer
Real
|
Real |
Sin x |
Sin(x) |
Integer
Real
|
Real |
Arctg x |
Arctan(x) |
Integer
Real
|
Real |
ex
|
Exp(x) |
Real |
Real |
Ln x |
Ln(x) |
Real |
Real |
π |
Pi |
Real |
Real |
x2
|
Sqr(x) |
Integer
Real
|
Integer
Real
|
|
Sqrt(x) |
Integer
Real
|
Real |
[x] целая часть вещественного числа |
Trunc(x) |
Real |
Integer
Real
|
Выделение дробной части |
Frac(x) |
Real |
Real |
Выделение целой части аргумента |
Int(x) |
Real |
Real |
Округление вещественного числа до целого |
Round(x) |
Real |
Integer
Real
|
Генератор случайных чисел от 0 до x (если функция задана без аргумента, то генерируются числа от 0 до 1) |
Random(x)
Random(x)
|
Word
аргумент не задан
|
Integer
real
|
Проверка четности |
Odd(x) |
Longint |
Boolean (true если число четное) |
Математические процедуры
Процедура |
Паскаль |
Увеличение числа x на y (если yне задано, x увеличивается на 1) |
Inc(x, y) |
Уменьшение значения числа x на y (если y не задано, x увеличивается на 1) |
Dec(x, y) |
Обеспечение несовпадения последовательностей случайных чисел, генерируемых функцией random |
randomize |
Необходимо знать, что угол (аргумент) тригонометрических функций задается в радианах R= градус*3.14/1800
Арифметические выражения
Выражение, в котором используются знаки арифметических операций и математические функции, называется арифметическим выражением.
Приоритет выполнения операций в арифметическом выражении:
1) действие в скобках;
2) взятие стандартных функций;
3) деление илиумножение;
4) сложение иливычитание.
Пример: → ln(exp(2*x)+abs(x))/(sin(x)*sin(x)+cos(x*x))
xn
записать выражением нельзя, т.к. в Паскале нет знака обозначающего возведение в степень. Однако данное выражение можно представить как:
xn
==en
*
lnx
Аналогичным образом
xn/m
= = en/m lnx
Структура программы на языке Паскаль
Программа – упорядоченная последовательность действий для ЭВМ, реализующая алгоритм решения какой-либо задачи.
Программа, записанная на языке паскаль, начинается заголовком PROGRAM, за которым следует имя программы, и заканчивается служебным словом END и точкой. Заголовок при программировании может быть опущен, но по правилам хорошего тона следует указать некоторые сведения о назначении программы. Между этими словами располагаются два раздела программы: раздел описания данных и раздел описания действий.
Действие будем называть оператором.
Схематично это выглядит так:
PROGRAM <имя>;
BEGIN {начало раздела операторов}
END.В разделе описания данных используются служебные слова: LABEL, CONST, TYPE, VAR, PROCEDURE, FUNCTION .
Раздел операторов начинается служебным словом BEGIN. Каждое предложение (инструкция) программы заканчивается точкой с запятой.
Чтобы в разделе описания переменных объявить константу используется слово CONST, например:
CONST
X =10;
Чтобы объявить переменную используется служебное слово VAR и слово, определяющее тип переменной, например:
VAR
a, b: integer;
c: integer;
(слово VAR написано строчкой выше для наглядности).
Логические операции
В Паскале существует четыре логические операции:
NOT – логическое отрицание «не» NOT(x)
AND– логическое «и» (X) AND (Y)
OR– логическое «или» (X) OR (Y)
XOR – логическое исключающее «или» (X) XOR (Y)
Операции сравнения:
> - больше;
< - меньше;
= - равно;
<> - неравно;
>= - больше или равно;
<= - меньше или рано.
Тип у всех операций логический, и по приоритету они выполняются самыми последними.
Операторы языка Паскаль
Оператор – предписание в данном языке программирования, предназначенное для задания некоторого завершенного действия, в процессе переработки информации на ЭВМ.
Оператор присваивания
Оператор присваивания :=
присваивает переменной стоящей слева от знака равенства новое значение, задаваемое каким-либо выражением.
Например: a:= 10 – переменной а присваивается значение 10.
а:= а+1 – к прежнему значению переменной прибавляется 1 и этой же переменной присваивается.
Операторы ввода и вывода
Оператор ввода состоит из идентификатора read и следующего за ним в круглых скобках списка переменных. Если переменных больше одной, то они разделяются запятыми.
Например: read (а);
read (a, b);
Аналогичным образом используют оператор readln.
Служебное слово readln указывает компьютеру, что после завершения ввода данных нужно переместить курсор на одну строку вниз.
Ввод данных осуществляется с клавиатуры. Числа при вводе разделяются пробелом или запятой.
Оператор вывода позволяет выделить из всего набора вычисленных величин те, что служат ответом к решавшейся программой задаче.
Для этой цели используется оператор write, после которого в скобках указывается список выводимых переменных или оператор writeln, который после вывода результата на экран, осуществляет переход на следующую строку.
Оператор writeln без параметров просто переведет курсор на следующую строку.
Например: Write (x, y) – выведет значения переменных x, y.
Write (x+y, x-y) – выведет результат вычисления выражений x+y, x-y.
Write (‘Привет’) – выведет строку символов “привет”, текст заключается в апострофы.
Форматный вывод данных
Паскаль дает возможность установить необходимый формат для вывода числовой информации с помощью операторов write, writeln.
Например: Writeln (x:7:2);
В данном примере указывается, что на экран должно быть выведено содержимое переменной x. Выводимое на экран число должно занимать 7 позиций с двумя знаками после запятой. Для вывода целой части отводится 4 позиции, т.к. одну позицию занимает десятичная точка.
Если для вывода числа 7 будет выделено 3 позиции, то на экран монитора будет выведено 7, а не 007.
Если при выводе значения некоторой переменной выводимое число не будет помещаться в указанный формат, то вопреки указанному формату часть значения переменной, расположенной перед десятичной точкой, будет выведена на экран полностью. При этом число позиций справа от десятичной точки остается равным указанной в формате величине, а дробная часть, не укладывающаяся в заданный формат, округляется. Округление не изменяет самого значения переменной, а касается только процесса вывода этого значения.
Использование форматного вывода позволяет решить проблему корректного оформления различного рода таблиц.
Линейный вычислительный процесс
Линейным процессом – называется такой процесс, где каждое действие выполняется последовательно, одно за другим. Любой линейный процесс состоит из следующих действий: ввода данных, вычисления по одной или нескольким формулам, печати результата.
Пример: Вычислить среднее арифметическое и среднее геометрическое для двух действительных положительных чисел.
PROGRAM SREDNIE;
Var
a, b : real;
SR : real;
SG : real;BEGIN
writeln (‘введите значения переменных’);
readln (a, b);
SR : = (a + b)/2;
SG: = sqrt(a*b);
writeln (‘среднее арифметическое равно’, SR:8:2);
writeln (‘среднее геометрическое равно’, SG:8:2);
END.
Операторные скобки
В Паскале под «операторными скобками» понимают два служебных слова: Begin (открывающаяся скобка) и End (закрывающаяся скобка).
Составной оператор
Составной оператор – это последовательность произвольных операторов программы заключенная в операторные скобки.
На характер операторов, входящих в составной оператор, не накладывается никаких ограничений. Среди них могут быть и другие составные операторы языка, допускается произвольная глубина вложения составных операторов. Фактически весь раздел операторов представляет собой один составной оператор.
BEGIN{начало раздела операторов}
Begin
Begin
End
End
End. {конец программы}
Во избежание ошибок каждую пару “Begin – End” обычно пишут с одной позиции.
Разветвляющиеся вычислительные процессы
Разветвляющийся процесс – это такой процесс, где после проверки некоторого логического условия, вычисление идет либо по ветви «да» либо по ветви «нет».
Пример: Вычислить
f = 3sin2
x + a, x>0
3a2
+ bx, x<0
a = -2,25
b = 4,8.
PROGRAM RAZVETV;
Var
a, b, x : real;
f : real;
BEGIN
a : = -2.25;
b : = 4.8;
write (‘введите значение переменной x’);
readln (x);
IF x>0 THEN F : = 3*SQR (sin(x)) + A
ELSE
F : = 3*A*A + B*X;
witeln (‘F =’,F:7:2);
END.
Условный оператор
Для реализации проверки условия необходим оператор, который выберет то или иное действие. Такой оператор называется оператором условного перехода и его можно записать следующими способами.
1. Полная форма оператора.
IF <условие> THEN <оператор “да”>
ELSE <оператор “нет”>;
Каждое слово ELSE пишется под своим словом IF. Для большей наглядности текста программы операторы, следующие за словами THEN и ELSE можно писать на следующей строке.
Перед словом ELSE нельзя ставить точку с запятой.
2. Краткая форма оператора.
Допускает опускать служебное слово ELSE . Оператор в этом случае выглядит следующим образом:
IF <условие> THEN
<оператор1>;
<оператор2>;
<оператор 3>;
В данном варианте, если условие истинно, то программа уходит на оператор 1, а затем продолжает выполнять последовательности операторов 2,3 и т.д.
Если условие ложно, сразу выполняется оператор 2, затем 3 и т.д.
Например: Вычислить значение функции
x2
, если x>0
f(x) = 0, если x=0
-x2
, если x<0
Фрагмент решения этой задачи можно записать как:
IF x>0 THEN
y = x*x;
IF x = 0 THEN
y = 0;
IF x<0 THEN
y = -(x*x);
При решении различных задач очень часто необходимо выполнять группу операторов либо за оператором THEN, либо за оператором ELSE, либо и в том и в другом случае.
Для того, чтобы записать группу действий необходимо использовать составной оператор begin – end (операторные скобки).
1. IF <условие> THEN
BEGIN
оператор 1;
оператор 2;
…………..
оператор n;
END
ELSE
оператор;
2. IF <условие> THEN оператор
ELSE
BEGIN
оператор 1;
оператор 2;
…………..
оператор n;
END;
3. IF <условие> THEN
BEGIN
оператор 1;
оператор 2;
…………...
оператор n;
END
ELSE
BEGIN
оператор 1;
оператор 2;
………….
оператор n;
END;
Между словами BEGIN и END стоят операторы отделенные между собой точкой с запятой.
Перед словом ELSE точки с запятой быть не должно, так как это один оператор
IF…THEN…ELSE.
Вложенные операторы
IF
Рассмотрим пример:
Определить, попадает ли число x в интервал от 7 до 21.
В данном примере необходимо проверить два условия и дать положительный ответ в том случае, когда они оба будут выполнены. Это можно записать следующим образом:
IF x>7 THEN
IF x<21 THEN
writeln (‘x попадает в интервал’)
ELSE writeln (‘x>=21’)
ELSE writeln (‘x<=7’);
Вложенность операторов IF не ограничена.
Ветвление по многим направлениям
Для замены конструкций из вложенных операторов IF…THEN в Паскаль-программах часто используются операторы
CASE…OF.
Данная конструкция является идеальной для обработки ситуаций с несколькими исходами, когда условие может принимать более двух значений. Примером может служить система учета успеваемости студентов в ВУЗе. Здесь имеется по крайней мере шесть альтернатив (1, 2, …, 5, нет отметки).
Фрагмент программы с использованием данной конструкции может выглядеть следующим образом:
CASE<порядковая переменная>OF
1: BEGIN
оператор 1;
………….
оператор n;
END;
2: BEGIN
оператор 1;
………….
оператор n;
END;
…………………
n: BEGIN
оператор 1;
………….
оператор n;
END;
ELSE
BEGIN
оператор 1;
………….
оператор n;
END;
В тексте одного фрагмента программы перед ELSE стоит точка с запятой, т.к. конструкция CASE…OF подразумевает, что за ней стоит символ (;).
Значение <порядковой переменной>, которая при выполнении программы определяет ветвь в операторе CASE…OF, подлежащую выполнению, должна иметь некоторый тип. Она может принадлежать любому из целочисленных типов, каждый из которых позволяет организовать перечисления некоторых объектов. Действительные типы переменных не относятся к классу порядковых.
Наряду с возможностью отличать каждую отдельную ветвь определенным значением <порядковой переменной> в конструкции CASE…OF имеется возможность объединять ветви. При объединении ветвь помечается списком значений. Значения в списке могут перечисляться через запятую, либо, если они идут подряд, можно указать два крайних значения, разделив их двумя точками.
CASE<порядковая переменная> OF
1, 2, 5: оператор 1;
3..17: оператор 2;
END;
В конструкции CASE…OF может присутствовать ELSE-часть. Она, как и любая ветвь, содержит последовательность операторов, ограниченных парой BEGIN-END.
Циклический вычислительный процесс
Циклом называется такой процесс, когда одно или ряд действий выполняется несколько раз подряд.
В иных задачах количество повторений некоторого действия или группы действий известно. В этих случаях цикл называется арифметическим или циклом с параметром (счетчиком), или перечисляемым циклом.
В том случае, когда количество повторений указанных действий не известно, а зависит от некоторых условий, говорят о цикле с условием выхода или итерационном цикле.
Перечисляемые циклы (циклы со счетчиком)
Конструкция, позволяющая реализовать данный цикл, имеет вид:
FOR…TO (downto)…DO
В этом операторе обязательно указываются следующие параметры:
- имя переменной цикла или счетчика цикла;
- некоторое начальное значение для переменной цикла, которое она получает при первом выполнении цикла;
- некоторое конечное значение цикла, достигнув которое повторение цикла прекращается.
Если записать конструкцию цикла, как
FORi : = nTOkDO
оператор;
то счетчик изменяется на 1 при каждом следующем исполнении оператора.
Необходимо помнить, что для правильной записи конструкции оператора переменные i, n, k могут быть только как называемого “порядкового типа”. Это тип, в котором каждое данное имеет свой номер, свое расположение среди других данных этого типа.
Если требуется повторить группу действий, то оператор выглядит следующим образом:
FOR i : = n TO k DO
BEGIN
оператор 1;
оператор 2;
…………..
оператор n;
END;
Пример: Вывести на экран все натуральные делители числа n.PROGRAM DELITEL;
VAR
n: integer;
i: integer;
t: real;
BEGIN
writeln (‘введите натуральное число n’);
read (n) FOR i: =1 TO N DO
BEGINT : = n/i;
IF T = INT (T) THEN writeln (T);
END;
END.
Конструкция
FOR i: =n DOWNTO k DO
оператор;
используются для того случая, когда счетчик уменьшается на 1 при каждом следующем шаге.
Пример: Вывести на экран все четные числа от 100 до 1
PROGRAM CHISLO;
VAR
i: integer;
BEGIN FOR i:= 100 DOWNTO 1 DO
IF I/2= INT (I/2) THEN writeln (i); END.
Если в данных конструкциях начальные значения совпадают с конечны значением, то операторы цикла выполняются один раз.
Конструкция цикла с предварительной проверкой условия
WHILE <условие> DO
оператор;
{или группа операторов в операторных скобках BEGIN-END}.
Эта фраза обозначает следующее: « До тех пор пока условие является истиной, выполняются операторы цикла».
При этом необходимо помнить, что:
1. если условие ложно, сразу же при первом обращении к циклу, то тело цикла выполняться не будет;
2. данная конструкция цикла может работать, как конструкция цикла со счетчиком, но при этом необходимо изменять переменную, являющуюся счетчиком, с помощью оператора присваивания. В конструкции WHILE можно выбирать любой необходимый шаг.
Пример.
Вычислить y= sin2
x +2,5x при x [-1; 1] с шагом ∆x= 0,25.
PROGRAM ZIKL; VAR
x, y : real;
BEGIN
x: = -1;
WHILE x<= 1 DO
BEGIN Y: = sin(x)*sin(x)+ 2,5*x;
writeln (‘при x =’,x, ‘y= ‘,y);
x: = x + 0,25;END;
END.
Алгоритм вычисления суммы
Пример 1:
Вычислить .
PROGRAM SUM;
VAR
X, S : real;
n : integer;
sl : real;
BEGIN
Write (‘введите значение x’);
Read (x);
S : = 0;
FOR N : = 1 TO 20 DO
BEGIN
SL : = (2*x)/N;
S : = S + SL;
END;
writeln (‘суммаряда =’, S);
END.
Пример 2. Найти количество чисел, сумма которых превысит 100.
PROGRAM PRIM;
VAR
K: integer;
S : integer;
BEGIN
S: =0;
K: =0; WHILE S<=100 DO
BEGIN K: = K+1;
S: = S+ K;
END;
writeln (‘кол-во слагаемых равно’, K);
END.
Конструкция цикла с последующей проверкой условия
Формат данного оператора следующий:
REPEAT
тело цикла
UNTIL <условие>;
Служебное слово REPEAT (повторять) открывает тело цикла, затем выполняются последовательно операторы тела цикла и проверяется условие выхода из него.
Переводится конструкция так: «Повторять до тех пор, пока условие не станет истиной».
Необходимо помнить, что:
1. тело цикла выполняется хотя бы один раз в любом случае;
2. в ходе выполнения цикла должны прийти к истинности условия.
Пример: Вычислить сумму квадратов натуральных чисел до тех пор, пока квадрат очередного числа не превысит 100.
PROGRAM ZIKL_DO;VAR
s: integer;
n: integer;
BEGIN
s: =0;
n: =1;
REPEAT
s: = s + n*n;
n: = n + 1;
UNTIL N*N>100;
writeln (‘s =’, s);
END.
-+
Алгоритм вычисления произведения
Пример: Вычислить n!
PROGRAM PROIZW;
VAR
n: integer;
p, i: integer;
BEGIN
writeln (‘введите значение n’);
readln (n);
p: = 1;
FOR i: = 1 TO N DO
P: = P*I;
writeln (‘произведение =’,P);
END.
Однако при n= 8, в данной программе Р = -25216, хотя в действительности Р = 40320. P необходимо присвоить формат longint.
Связано это с неправильным описанием данных.
Рассмотрим, какие целочисленные типы кроме integer возможны в Паскале и какое кол-во разрядов отводится под каждый тип:
Shortint (короткое целое) |
8 бит (старший левый разряд знаковый) |
-128 ≤ а ≤ 127 |
Integer (целое) |
16 бит (ст. разряд знаковый) |
-32768 ≤ а ≤ 3276 |
Longint (длинное целое) |
32 бит (ст. разряд знаковый) |
-2147483648 ≤ а ≤ 2147483647 |
Byte (байт) |
8 бит (без знака) |
0 ≤ а ≤ 255 |
Word |
16 бит |
0 ≤ а ≤ 65535 |
Вещественное число в ПЭВМ представлено в экспоненциальной форме
N = m*E ± p,
где m – мантисса числа (диапазон от 1 до 9).
В следующей таблице приведены возможные вещественные типы языка Паскаль и диапазон изменения.
Длина байт |
Название типа |
Кол-во значащих цифр |
Диапазон десятичного порядка |
4 |
Single |
7..8 |
-45..+38 |
6 |
Real |
11..12 |
-39..+38 |
8 |
Double |
15..16 |
-324..+308 |
10 |
Extended |
19..20 |
-4951..+4932 |
8 |
comp |
19..20 |
-2-63
+1..2+63
-1 |
Структурированные типы
Структура – строение, расположение, порядок, совокупность устойчивых связей объекта, обеспечивающих его целостность и тождественность самому себе, т.е. сохранение основных свойств при различных внешних и внутренних изменениях.
Переменные структурного типа состоят не из одного элемента, а из нескольких. К ним относятся массивы, записи, множества и файлы.
Массивы
Массив – область машинной памяти, в которой могут размещаться совокупности значений одного и того же типа, а также, набор переменных, объединенных общим назначением и имеющих одно имя.
В информатике различают массивы одномерные и двумерные. К одномерным массивам относятся числовые и символьные последовательности. К двумерным – матрицы (либо их ещё называют таблицами).
Элемент массива – отдельная переменная, входящая в массив.
Размерность массива – кол-во элементов, которое содержит массив.
Индекс – числовой или буквенный указатель, указывающий порядковый номер данного элемента в массиве.
При назначении имени массиву соблюдаются те же требования, какие предъявляются к именам переменных простых типов.
Пример: Дан массив А, состоящий из n элементов.
А[1] A[2] A[3] A[4] … A[n]
2 7,5 14 8 … -2
A[i] – элемент массива А, стоящий на i-ом месте.
Каждая переменная в Паскале должна быть объявлена, в том числе и переменная указывающая индекс. В качестве индексных типов можно использовать любые порядковые типы, кроме longint.
Описывать тип «массив» нужно с помощью служебного слова TYPE.
Рассмотрим описание типа «массив» на примере целочисленного массива А, состоящего из 25 элементов. Прежде чем приступить к описанию типа, назначим имена – имя типа «массив» и имя переменной, которая относится к типу «массив». Пусть mas – имя типа, а – имя переменной типа «массив». В описании типа указывается, что объявляется тип «массив», для этого используется служебное слово array, и указываются границы изменения индексов. Синтаксически это записывается следующим образом 1..25; такая запись называется диапазон.
В программе на языке Паскаль это выглядит следующим образом:
TYPE mas = array [1..25] of integer;
VAR
а: mas;
где первая строка расшифровывается как «объявляется тип пользователя – массив, все элементы массива являются целыми числами», а последняя как «объявляется переменная, относящаяся к типу массив».
Необходимо помнить, что значением переменной а
является весь массив.
Массив может быть объявлен как константа. В качестве начального значения типизированной константы-массива используется список констант, отделенных друг от друга запятыми; список заключается в круглые скобки.
Например:
Const
Mas: array [1..8] of byte = (28, 30, 25, 26, 15, 31, 30, 29);
Чаще всего массив объявляют следующим образом:
VAR <имя массива>: array [1..8] of <тип данных>;
Например: VAR a: array [1..8] of real;
Ввод элементов одномерного массива
Заполнить элементы одномерного массива значениями можно:
- вводя значения с клавиатуры;
- случайным образом;
- по формуле.
Необходимо помнить, что во всех трех случаях нельзя обойтись без организации цикла.
Пример: Ввести массив, состоящий из десяти элементов (тип значения не имеет).
1 способ: ввод с клавиатуры.
FOR I: = 1 TO 10 DO
BEGIN
writeln (‘введите значение ‘I’ элемента массива’);
read (a [i]);
END;
2 способ: задание массива случайным образом.
Для этого подключается датчик случайных чисел.
FOR I: = 1 TO 10 DO
a [i] : = random (n); - значение n задается заранее.
В данном случае для наглядности пользователю рекомендуется распечатать заданный массив.
3 способ: заполнение по формуле. Используется, когда каждый элемент массива должен рассчитываться по заранее заданной формуле.
Например: ai
= sin i + 1
FOR I : = 1 TO 10 DO
a [I] : = sin (I) + 1;
|