
- •1. Структура программы на языке Turbo Pascal
- •2. Типы данных
- •3. Простые операторы.
- •4. Операторы безусловного и условного перехода
- •5. Операторы повтора (цикла)
- •8. Параметры значения и параметры переменные подпрограмм. Механизм передачи параметров и подпрограмму
- •6. Массивы. Действия над массивами. Действия над элементами массива
- •7. Описание процедур и функций. Формальные и фактические параметры подпрограмм
- •9. Описание строкового типа. Строковые выражения (арифметич. И логические)
- •10. Строковые процедуры и функции
8. Параметры значения и параметры переменные подпрограмм. Механизм передачи параметров и подпрограмму
Механизм передачи параметра.
Параметры различаются:
1. По механизум передачи.
– value – передачи по значению;
– addr – передачи по ссылке.
2. По взаимодействию вызывающей и вызываемой процедуры или функции.
– только как входной параметр (in),
– только как выходной параметр (out),
– как входной, так и выходной (inout).
В Turbo Pascale реализовано 3 способа передачи параметров:
1. Когда реализуется value in – они называются параметры значения
Procedure proc (P1, P2: T1; P3:T2);
2. Когда реализуется addr inout – параметры переменной
Procedure proc(var P1:T1;P2:T2)
3. Параметры вида addr in – параметры константы
Procedure sum (x,y:real; const sum; sub: red l);
Безтиповые параметры.
Могут передаваться только по адресу, т.е как параметры переменных или параметры констант. Особенность их заключается в отсутствии указания типа в заголовке процедуры.
Параметры процедуры и функции:
Заголовок процедуры аналогичен процедуре с заданием параметров переменной. Отличие состоит в том, что в место слова var пишется либо процедура, либо функция и при задании параметров процедур тип не указывается, а при описании функции указывается тип параметров.
Рекурсии – такой способ организации вычислительного процесса, при котором процедура или функция входе выполнения составляющих ее операторов обращается сама к себе.
6. Массивы. Действия над массивами. Действия над элементами массива
Структурированные типы данных – задают множество сложных знач-й с одним общим именем
По способу организации и типу компонентов бывают:
1. Регулярный тип – массивы;
2. Комбинированный – записи;
3. Файловый тип – файл;
4. Множественный тип – строки;
5. Объектовый тип – объекты.
Массив – структуры данных, которые представляют собой однорядную, фиксированную по размеру и конфигурации совокупность элементов простой или составной структуры, упорядоченных по номерам. Массив опр-ся именем и количеством размерности.
1. Одномерный массив
Const n = 100;
Var A: array [1….n] of real;
Const n =100;
Type vector = array [1…n] of real;
Var A: vector
2. Двумерный массив
Const n = 30; m =50;
Var A: array [1….n, 1….m] of integer;
Const n = 30; m =50;
Type vector = array [1…n,1..m] of integer;
Var A: vector;
Действия над массивами:
1. Присвоение
А,В
А := В (присвоение элементам А элементов В)
2. Отношение (=, <>)
А=В; А<>B (если хотя бы 1 элемент не совпадает)
Действия над элементами массива.
1. Инициализация – присвоение начальных значений каждому элементу массива.
Var A: array [1….4] of real;
I: integer;
Begin fоr I := 1 to 4 do
Read (A[I]);
End.
Если массив 2-х мерный, то: Var A: array [1..4, 1…4] of real;
J,I: integer;
Begin for I := 1 to 4 do
for Y := 1 to 4 do
read (A[I,J]);
end.
2. Копирование – присвоение значений всех элементов массива соответствующим элементам другого массива.
Var a,D: array [1…4, 1..4] of read ;
J,I: integer;
Begin for I := 1 to 4 do
For J :=1 to 4 do
A[I, J] := D [I, J];
End.
Сортировка массивов.
Сортировка – распред-е элементов множества по группам в соответствии с опред-ми правилами.
1. Сортировка–вставка. Массив разделяется на 2 части: отсортир-ю и неотсор. Затем элементы из неотсартированной части поочередно отбираются и вставляются в отсортированную часть таким образом, чтобы не нарушить упорядоченность элементов.
Const n =20;
Var vector: array [1;n] of real;
B: real;
I,J,K: integer;
Begin write ( “Bв. элемент массива”);
For I :=1 to n do read (vector [I]);
For I := 2 to n do
Begin B := vector [I];
J := 1;
While (B >vector [J]) do
J := J + 1;
For K := I – 1 donnto J do
Vector [K + 1] := vector [K];
Vector [J] := B
End;
For I :=1 to n do write (vector [I] : 8:2)
End.
2. Сортировка– выборка – в этом случае в массиве (M) назначается элемент с минимальным значением в интервале от первого до последнего и меняется местами с первым элементом.
Const n =20;
Var A: array [1…n] of real;
Min: real;
I min, S, I,: integer;
Begin write («вв. массив»);
For I := 1 to n do real (A [I]);
For S := 1 to (n – 1) do
Begin
Min := A [S];
I min := S;
For I := S + 1 to n do
If A [I] < min t
Begin min := A [I];
I min := I;
end;
A [I min] := A [s];
A [s] := min;
End;
For I := 1 to n do write ( A[I] : 8:2);
End.
3. Сортировка обмена. В этом случае слева направо поочередно списываются 2 соседних элемента и если их взаимоположение не соответствует заданному условию, то они меняются местами, затем берутся 2 последних соседних элемента.
Const n =20;
Var A: array [1…n] of real;
B: real;
I, K: integer;
Begin write («вв. массив»);
For I := 1 to n do real (A [I]);
For K := n donnto 2 do
For I := 1 to K do
If A [I] > A [I + 1] then
Begin B := A [I];
A [I] := A [I + 1];
A[I + 1] := B:
End;
For I := 1 to n do
Write (A[I]: 8:2);
End.
4. Бинарный поиск. В этом случае исходный массив делится пополам, а для сравнения выбирается средней элемент, если он совпадает с исходным, то поиск закончен. Если средний элемент меньше искомого, то все элементы слева будут меньше искомого. Они исключаются и остается правая часть.
Const n =20;
Var A: array [1…n] of real:
X: real;
L, R, I: integer;
F: boolen;
Begin write («вв. Массив»)
For I := 1 to n do read ( A[I]);
Read (x);
L := 1; R := n;
While ( L <= R) do
Begin I := (L + R) div Z;
Else if A [I] < x then L := I + 1 else R := I – 1;
If A[I] = x then write (‘найден’) Else (‘не найден’)
End.
5. Транспонирование матриц. В этом случае чтобы соблюдалось условие: количество строк и столбцов равно.
Const n =10 n = m;
Var A: array [1…n, 1…m] of integer;
I, Y, C : integer;
begin Randomize (регенерация случайных чисел)
fоr I := 1 to n do
begin for Y := 1 to m do
begin A [I,Y] = Random (99)
end;
end.
For I := 1 to n do
For Y := 1 to m do
Begin C : A[I;J]
A[I;J] := A [J;I];
A [I,J] := C;
For I: =1 to n do
Begin for Y := 1 to m do
Begin write (A[I,Y]);
End; End; End.