- •Глава 1
- •Свойства алгоритма
- •Словесный способ записи алгоритма.
- •Структурно-стилизованный способ записи алгоритма.
- •Программный способ записи алгоритма.
- •Графический способ записи алгоритма.
- •Циклическая структура с постусловием
- •Циклическая структура с предусловием
- •Циклическая структура с параметром
- •Глава 2
- •Символы разделители:
- •Зарезервированные слова
- •Стандартные идентификаторы
- •Стандартные константы
- •Операции div и mod
- •Стандартные функции
- •Правила написания арифметических выражений
- •Возведение в степень
- •Раздел описания меток
- •Раздел описания констант
- •Раздел описания переменных
- •Раздел определения типов данных
- •Перечисляемый тип
- •Интервальный тип
- •Раздел описания процедур и функций
- •Раздел var ?
- •Глава 3
- •Оператор присваивания
- •Оператор безусловного перехода goto
- •Оператор вызова процедуры
- •Пустой оператор
- •Составной оператор
- •Условные операторы
- •Операторы повтора
- •Глава 4
- •Линейная сортировка
- •Метод сортировки Шелла
- •Метод прямого обмена (пузырьковый метод)
- •Глава 5
- •Глава 6
- •Цветовая шкала
- •Стандартные стили заполнения
- •Стиль линии
- •Толщина линии
- •Построение прямоугольников
- •Построение дуг и окружностей
- •Глава 1 3
- •Глава 2 36
- •Глава 3 78
- •Глава 4 130
- •Глава 5 157
- •Глава 6 167
Линейная сортировка
Program Massiv;
Var A: array [1..25] of real; {описание массива}
i, k, j: integer;
min,S:real;
begin
for i:=1 to 25 do Read(A[i]);
for k:=1 to 25 do
begin
min:=a[k];
for i:=k to 25 do
if a[i] < min then begin min:=A[i]; j:=i end;
S:=A[k];
A[k]:=min;
A[j]:=S
end;
for i:=1 to 25 do Write(A[i]);
end.
Для того, чтобы не терялись значения элементов массива вместо которых ставятся элементы с наименьшим значение, введена переменная S.
Метод сортировки Шелла
program Sort;
Const n=10;
Var a : array[1..n] of integer;
i , j, c, k : integer;
Begin
Randomize;
for i:=1 to n do
begin
a[i]:=random(15)-3; {создание массива в диапазоне [-3;11]}
Write(a[i]:4)
end;
k:=n div 2;
while k>0 do
begin
for i:=n-k downto 1 do
begin
i:=j;
while i<=n-k do
begin
if a[i]>a[i+k] then begin
c:=a[i];
a[i];=a[i+k];
a[i+k]:=c;
end;
i:=i+k;
end;
end;
k:=k div 2
end;
Writeln;
for i:=1 to n do Write(a[i]:4)
End.
Метод прямого обмена (пузырьковый метод)
program Sort ;
Const n=15;
Var a : array[1..n] of integer;
i , j, c: integer;
begin
Randomize;
for i:=1 to n do
begin
a[i]:=random(22); {создание массива в диапазоне [0;21]}
Write(a[i]:8)
end;
Writeln;
for i:=1 to n-1 do
for j:=1 to n-1 do
if a[j]>a[j+1] then begin
c:=a[j];
a[j];=a[j+1];
a[j+1]:=c;
end;
for i:=1 to n do Write(a[i]:8)
end.
Контрольные вопросы
Что такое массив?
Как определить местоположение элемента в массиве?
Что такое индекс? Каким требованиям он должен удовлетворять?
Каким образом задается описание массива? Что в нем указывается?
В каких операциях могут участвовать массивы и какие требования при этом предъявляются?
Каким образом задается обращение к элементу массива?
Почему при описании массива предпочтительнее употреблять константы, а не указывать размеры массива в явном виде?
Что называется главной (побочной) диагональю?
Как произвести вывод двумерного массива в виде матрицы?
Где ошибки (их четыре) в следующей программе?
Program Massiv;
var X : array[1..8]: real;
begin
Read (X);
for i:=1 to 8 do X:=X*2;
Write(X)
end.
Где ошибки (их три) в следующей программе?
Program Massiv;
var X : array[1…n] of real;
begin
Read (n);
for i:=1 to n do X[i]:=random(5);
Write(X[i]) end.
Найдите значение переменной Z при заданных исходных данных 7 4 -3 12 8 4 2 0
Program Summa;
const n=8;
var X : array[1..n] of integer;
Z: integer;
begin
for i:=1 to n do read(X[i]);
z:=z+X[i]
end.