//PascalABC.NET
uses GraphABC;
var c: integer;
begin
window.IsFixedSize := true;//запрет изменения размера экрана
window.Clear(cllightblue);//очистка экрана синим цветом
pen.Color := clred;//меняем цвет пера на красный
for var i := 0 to 19 do//цикл для отрисовки линий
begin
c := (window.Height div 19) * i;//сдвиг линнии по y
line(0, 0 + c, window.Width, window.Height - c);//рисуем линию
end;
end.
Объяснение:
uses graphabc;
begin
circle(50,50,50);
circle(50,50,20);
circle(150,50,50);
circle(150,50,20);
circle(250,50,50);
circle(250,50,20);
circle(350,50,50);
circle(350,50,20);
circle(450,50,50);
circle(450,50,20);
circle(550,50,50);
circle(550,50,20);
end.
Структура программы в Pascal
Итак, на предыдущей странице мы определились со следующими понятиями: program, integer, real, const, var, begin, end, write, writeln, read, readln. Давайте напишем программы на Паскале с их использованием. Но сначала выясним, из каких частей состоит программа на Паскале.
Любая программа на языке программирования Pascal имеет три составляющие: 1) заголовок; 2) раздел описаний; 3) тело программы.
✎ 1) Заголовок – это слово Program , после которого идет название программы латиницей и точка с запятой в конце. Название не может начинаться с цифры, не должно совпадать с зарезервированными словами (begin, end, integer и т.п.) или с названиями переменных из раздела описаний (см. ниже), а также недопустимо использование каких бы то ни было символов (‘@’, ‘%’, ‘&’ и т.п.), кроме подчеркивания. Название желательно давать со смыслом, которое отображало бы суть самой программы. Но заголовок писать не обязательно.
✎ 2) Раздел описаний – Поскольку сначала мы будем рассматривать задачи, то у нас во втором разделе будет находиться или описание констант, или переменных (см. пп. 4 и 5 статьи Введение в Pascal).
✎ 3) Тело программы – блок операторов, в котором записываются команды для выполнения. Начинается этот блок словом begin («начало»), а заканчивается словом end. («конец») с точкой в конце(пп. 6, 7 той же статьи).
Таким образом, в общем случае программа на Паскале выглядит следующим образом:
Код Pascal
1
2
3
4
5
6
7
8
9
10
Program <название программы>;
<раздел описаний>
begin
<оператор 1>;
<оператор 2>;
. . . . . . .
<оператор N>;
end.
При решении задач ограничимся сначала целыми числами. Перед тем как начать программировать, укажем действия над числами в Паскале: «+» − сложение, «-» − вычитание, «*» − умножение, «/» − деление. Как видим, в программировании и математике элементарные действия над числами обозначаются одинаково. Решим следующую задачу:
Объяснение:
CONST
max = 11;
TYPE
vector = array[1..max]of integer;
VAR
M, I, K:vector;
j:byte;
{ Массивы I,K предварительно реорганизовать следующим образом: на первом
месте, в данных массивах должен стоять элемент с минимальным значением}
procedure reorganize_vector(var vt:vector);
var i, j:byte;
min, tmp:integer;
begin
// вначале ищем минимальный элемент и запоминаем его место в массиве
j:=1;//
min:=vt[1];//назначаем наименьшим - первый элемент
for i:=2 to max do
if (min>vt[i]) then begin
min:=vt[i];
j:=i;//индекс наименьшего числа
end;
// теперь меняем местами первый элемент массива с наименьшим числом
tmp := vt[1];//запоминаем значение первого элемента
vt[1] := min;//меняем его на наименьший элемент
vt[j] := tmp;//на место наименьшего ставим значение из первого элемента
end;
// процедура для вывода массива на экран
procedure print_vector(var vt:vector);
var j:byte;
begin
for j:=1 to max do
write(vt[j]:6);
writeln(' ');
end;
BEGIN
writeln('Дано:');
//заполняем массивы случаынйми данными
randomize;
for j:=1 to max do begin
I[j]:=random(-128,127);
K[j]:=random(-128,127);
end;
//выводим их на экран
write('массив I[',max,']: ');
print_vector(I);
write('массив K[',max,']: ');
print_vector(K);
writeln(' ');
writeln('Реорганизовать массивы так, чтобы на первом месте ');
writeln('должен стоять элемент с минимальным значением');
reorganize_vector(I);
reorganize_vector(K);
write('массив I[',max,']: ');
print_vector(I);
write('массив K[',max,']: ');
print_vector(K);
writeln(' ');
writeln('Сформировать массив М[',max,'], элементы которого вычисляются');
writeln('по формуле M[j] = I[j] + K[j]');
for j:=1 to max do
M[j] := I[j] + K[j];
write('массив M[',max,']: ');
print_vector(M);
END.