- •Содержание
- •Линейные алгоритмы
- •Язык программирования Turbo Passcal
- •Типы переменных в Паскале:
- •Стандартные операции и функции от скалярных данных.
- •Структура программы на Pascal
- •Команда присваивания
- •Команды ввода и вывода
- •Справка по работе с системой Turbo Pascal
- •Условный оператор, оператор множественного выбора Алгоритмы с ветвлением
- •Ветвление в Pascal Логические выражения
- •Логические операции
- •Команды ветвления
- •1. Условный оператор if
- •2. Оператор Case.
- •3. Команда безусловного перехода goto
- •Циклы Алгоритмы с циклами
- •1. Цикл с предусловием
- •2. Цикл с постусловием.
- •Циклы в Pascal
- •1. Цикл с параметром
- •2. Цикл с предусловием.
- •3. Цикл с постусловием
- •Вложенные циклы
- •Подпрограммы
- •Функции пользователя
- •Процедуры
- •Массивы Одномерные массивы
- •Стандартные задачи обработки массивов:
- •Двумерные массивы
- •Обработка строк и символов
- •Процедуры и функции обработки строк.
- •Основные алгоритмы обработки строк
- •Графика в Pascal
- •Основные графические процедуры и функции
- •Работа с файлами
- •Процедуры и функции для работы с файлами.
Массивы Одномерные массивы
Массив – последовательность однотипных величин.
Массив можно рассматривать как таблицу, в которой каждый компонент занимает определенную ячейку. Все элементы массива обозначаются одним именем (имя массива), а отдельный элемент определяется своим номером (индексом). Каждая отдельная величина называется компонентой массива. Тип компонент может быть любым, принятым в языке ПАСКАЛЬ, кроме файлового типа. Тип компонент называется базовым типом.
-2 |
5 |
0 |
7 |
11 |
A[1]=-2
A[2]=5
Описание массива:
Var
M: array [1..10] of integer;
Индексом элементов массива могут быть константы, переменные, выражения: A[1], A[k], B[2*k].
После объявления массива в памяти компьютера выделяется нужное количество ячеек. Для того, чтобы заполнить ячейки значениями, необходимо воспользоваться одним из следующих способов формирования массива:
1) С помощью Read:
Program primer;
Var
A: array [1..10] of integer;
I: integer;
Begin
For i:=1 to 10 do
Begin
Write(‘введите ‘, I, ‘- ый элемент’); Readln(a[i]);
End;
End.
2) C помощью команды присваивания:
a)
For i:=1 to 10 do
Begin
A[i]:=2*i+1;
Write(a[i]:4);
End;
В результате будет получен массив, элементами которого являются числа – 3, 5, 7…
b) заполнение случайными числами:
For i:=1 to 10 do
Begin
A[i]:=random(100);
Write(a[i]:4);
End;
В результате будет получен массив, состоящий из 10 случайных чисел из диапазона [0, 100).
Функция Random(N); генерирует случайное число из диапазона [0; N). Если необходимо выбрать число из диапазона [a; b], записывают random(b-a+1)+a.
[10,50] – x:=random(41)+10;
X:=random(21)-10; - [-10;10]
Для того, чтобы СС каждым запуском программы получать новые последовательности чисел, необходимо использовать процедуру Randomize, которая инициализирует датчик случайных чисел.
Стандартные задачи обработки массивов:
Пример 1. Подсчет суммы (произведения) элементов
Задан одномерный массив A[1..5]. Заполнить массив числами, вводимыми с клавиатуры, определить произведение элементов.
Program primer;
Var
a: array [1..5] of integer;
i, p: integer;
Begin
For i:=1 to 5 do
begin
Write(‘a[‘, I, ‘]=’); Readln(a[i]);
end;
P:=1;
For i:= 1 to 5 do
P:=p*a[i];
Writeln(‘p=’, p);
Readln;
End.
Пример 2. Выбор максимального (минимального) элемента массива
Сформировать одномерный массив из 20 элементов, которые выбираются случайным образом из диапазона [-50; 50]. Определить максимальный элемент и его индекс.
Program primer;
Var
a: array [1..20] of integer;
i, max, k : integer;
Begin
For i:=1 to 20 do
begin
a[i]:= random(101)-50;
Write(a[ i]:3);
end;
max:=a[1]; k:=1;
For i:=2 to 20 do
begin
if max<a[i] then begin max:=a[i]; k:=I; end;
end;
Writeln(‘max=’, max, ‘index=’, k);
Readln;
End.
Пример 3. Подсчет количества элементов, удовлетворяющих условию
Сформировать одномерный массив из 12 элементов. Определить количество четных элементов.
Program primer;
Var
a: array [1..12] of integer;
i, k: integer;
Begin
k:=0;
For i:=1 to 20 do
begin
a[i]:= random(101)-50;
Write(a[ i]:3);
if (a[i] mod 2=0) then inc(k);
end;
Writeln(‘kol=’, k);
Readln;
End.
Пример 4. Поиск заданного элемента
Сформировать одномерный массив из 7 элементов. Определить, содержится ли в нем элемент ‘5’, если элемент найден, поменять его с первым элементом.
Program primer;
Var
a: array [1..7] of integer;
i, k: integer;
Begin
k:=0;
For i:=1 to 7 do
begin
a[i]:= random(101)-50;
Write(a[ i]:3);
if (a[i] =5) then k:=I;
end;
Writeln;
if k<>0 then
begin
a[k]:=a[1]; a[1]:=5;
For i:=1 to 7 do
Write(a[ i]:3);
end
else Writeln(‘net 5’);
Readln;
End.
Пример 5. Сортировка массива
Сформировать одномерный массив из 10 элементов. Упорядочить по возрастанию элементы массива.
Program primer;
Var
a: array [1..10] of integer;
i, j, t: integer;
Begin
For i:=1 to 10 do
begin
a[i]:= random(51);
Write(a[ i]:3);
end;
For i:=1 to 9 do
For j:=i+1 to 10 do
If a[i]>a[j] then begin t:=a[i]; a[i]:=a[j]; a[j]:=t; end;
For i:=1 to 10 do
Write(a[i]:3);
Readln;
End.