- •1. Основные элементы языка
- •1.1. Основные символы
- •1.2. Зарезервированные слова
- •1.3. Разграничители
- •2. Стандартные типы скаляров
- •2.1. Целочисленный тип /Integer/
- •2.2. Байтовый тип /Byte/
- •2.3. Вещественный тип /Real/
- •2.4. Булевский тип /Boolean/
- •2.5. Символьный тип /Char/
- •3. Сруктура программы
- •3.1. Заголовок программы
- •3.2. Раздел описания
- •3.2.1. Раздел описания меток
- •3.2.2. Раздел определения констант
- •3.2.3. Раздел определения типов
- •3.2.4. Раздел описания переменных
- •3.2.5. Раздел описания процедур и функций
- •3.2.5.1. Подпрограмма - функция
- •3.2.5.2. Подпрограмма - процедура
- •3.3. Раздел операторов
- •3.3.1. Оператор присвоения
- •3.3.2. Ввод – вывод данных
- •Кафедра вычислительной техники и инженерной кибернетики
- •Кафедра вычислительной техники и
- •3.3.3. Оператор безусловного перехода /goto/
- •3.3.4. Условные операторы
- •3.3.4.1. Оператор if
- •3.3.4.2. Оператор выбора /Case/
- •3.3.4.3. Операторы повтора for, while и repeat
- •Оператор For
- •Оператор while. Цикл с предусловием
- •Пример написания программы
- •Список литературы
- •Приложение 1 Основные стандартные процедуры и функции
- •Приложение 2 Структура построения программы в языке Pascal
- •Приложение 3 Символы схем алгоритмов по гост 19.002-80 и 19.003-80
- •Содержание
Пример написания программы
Пусть дана задача, состоящая из четырех частей:
1) вычислить элементы квадратной матрицы А, если
sin5i + cos 10j
aji = ----------------------;
tgij
2) из матрицы А получить вектор Х, если Хi – скалярное произведение побочной диагонали на i –й столбец;
3) упорядочить элементы строк матрицы А по убыванию;
4) вычислить значение функции
xi + xn-i+1
Y = --------------- .
Xn/2
Алгоритм решения каждой части задачи выполнить в виде отдельной подпрограммы.
Текст программы и результаты вычислений при n=6 приведены ниже.
program primer;
{-------------------- раздел описания типов -----------------}
type Vect = array[1..10] of real;
Matr = array[1..10,1..10] of real;
{------------------- раздел описания переменных ---------}
Var Dev : text;
Kanal : string;
i, j, n : integer;
Y : real;
A : matr;
X : vect;
{------------------- раздел описания подпрограмм ------- }
{------------------------ часть первая -----------------------------}
procedure MATRICA(N:integer;var A:matr);
var i, j: integer;
Begin
for j:=1 to n do
for i:=1 to n do
A[j,i]:=(sin(5*i)+cos(10*j))/(sin(i*j)/cos(i*j));
end;
{---------------------- часть вторая -------------------------------}
Procedure VECTOR (N: integer; A: matr; var X:vect);
var i, j: integer;
Begin
for j:=1 to n do begin
X[j]:=0.0;
for i:=1 to n do
X[j]:=x[j]+A[i,j]*A[i,n-i+1]; end;
end;
{--------------------- часть третья --------------------------------}
Procedure PORJADOK(N:integer; var A:matr);
var i,j, k, k1: integer;
s : real;
Begin
for k:=1 to n do begin
for i:=1 to n-1 do begin
s:=A[k,i]; k1:=i;
for j:=i+1 to n do
if s<A[k,j] then begin
s:=A[k,j];
k1:=j; end;
A[k,k1]:=A[k,i];
A[k,i]:=s;
end; end;
end;
{-------------------- часть четвертая ------------------------------}
FUNCTION FUNC(N: integer; X:Vect):Real;
var i, n1 : integer;
s : real;
Begin
s:=0.0; n1:=n div 2;
for i:=1 to n do
s:=s+(x[i]+x[n-i+1])/x[n1];
func:=s;
end;
{-------------------- ОСНОВНАЯ ПРОГРАММА ------------------------}
Begin
write('Kanal=');
Readln(Kanal);
Assign(dev, kanal);
Rewrite(dev); write('N=');
Readln(n);
MATRICA(N,A); {вызов процедуры MATRICA}
writeln(dev,' матрица А: ');
for j:=1 to n do begin {начало вывода матрицы}
for i:=1 to n do
write(dev,a[i,j]:10:2);
writeln(dev); end; {конец вывода матрицы}
writeln(dev); {перевод строки}
VECTOR(N,A,X); {вызов процедуры VECTOR}
writeln(dev,' Элементы вектора Х: ');
for i:=1 to n do {начало вывода вектора}
write(dev, x[i]:10:2); {конец вывода вектора}
writeln(dev);
PORJADOK(N,A); {вызов процедуры PORJADOK}
writeln(dev,' Упорядоченная матрица:');
for i:=1 to n do begin {начало вывода упорядоченной матрицы}
for j:=1 to n do
write(dev, a[i,j]:10:2);
writeln(dev); end; {конец вывода упорядоченной матрицы}
writeln(dev);
Y:=FUNC(N,X); {присвоение Y значения функции FUNC}
writeln(dev,' Значение функции Y=', Y:6:2); {вывод значения функции}
Close(dev);
END.
Матрица А:
-1.15 0.25 5.64 -1.40 -0.00 6.57
0.63 -0.12 1.34 0.18 0.65 2.35
1.32 -3.64 -1.78 0.03 -1.89 0.27
0.06 -0.19 -1.68 0.82 0.84 0.02
0.29 0.43 -0.03 -0.36 -6.24 0.17
6.28 0.91 0.73 0.78 0.00 -0.25
Элементы вектора Х:
26.49 17.56 10.27 3.82 -0.92 36.96
Упорядоченная матрица:
6.28 1.32 0.63 0.29 0.06 -1.15
0.91 0.43 0.25 -0.12 -0.19 -3.64
5.64 1.34 0.73 -0.03 -1.68 -1.78
0.82 0.78 0.18 0.03 -0.36 -1.40
0.84 0.65 0.00 -0.00 -1.89 -6.24
6.57 2.35 0.27 0.17 0.02 -0.25
Значение функции Y= 18.33