Procedureswap(var s1:string; var s2:string)
Var b:string;
b:=s1;
s1:=s2;
s2:=b;
телопрограммы
vars1,s2:string;
begin
(тут мы расписывали типо до обмен после обмена чему равно s1 и s2 но самое главное procedureswap(s1;s2);)
присвоить s1 и s2 какие либо значения
writeln(вывести их до замены)
swap(s1;s2);
wrireln(вывести их после замены)
End.
34 Конструкцияif
Простой
If< условие>then<операторы>
Else<операторы>
сложный
If< условие>then<операторы>
ElseIf< условие>then<операторы>
Else … If<условие>then<операторы>
Else<операторы>
Пример
простой
Ifa>=btheng:=a-b
elseg:=b-a;
сложный(на примере сумма наибольших)
if(a>b) and c>bthen writeln(a+c)
ElseIf(b>a) and (c>a) thenwriteln(b+c)
Elsewriteln(a+b);
35 Конструкция case
Оператор выбора
case<выражение>of
значение 1:<оператор 1>;
значение 2:<оператор 2>;
значение 3:<оператор 3>;
……
значение n:<оператор n>;
Else <оператор>
End.
Пример
Program cas;
Varx:integer;
begin
Writeln(‘Введите числа от 1 до 5’) ;
Readln(x);
Case x of
1: Writeln(‘один’);
2: Writeln(‘два’);
3: Writeln(‘три’);
4: Writeln(‘четыре’);
5: Writeln(‘пять’)
Elsewriteln(‘не входит в интервал 1-5’);
End;
Readln;
End.
(еще пример с калькулятором у нас есть пример в практике)
36 КонструкцияFor
For<параметр цикла> := <начальное значение>to<конечное значение>do< Тело цикла>;( так же можно использовать downtoесли идти от конечного значения к начальному)
Пример (вычисление факториала через цикл)
Program cikl;
Var
I,s,p:integer;
Begin
Writeln(‘Введитечислоs’);
Readln(s);
P:=1;
For i:=2 to s do
P:=p*i;
Writeln(p);
Readln;
End;
37 Конструкцияwhile(Пока)
While<условие>do<операторы>
Пример
Programprog;
Var
Sum,I,x:integer;
Sum:=0;
I:=0;
While i<10 do
Begin
Readln(x);
Sum:=sum+x;
I:=i+1;
End;
Readln;
End.
Массивы в паскале
одномерный
<переменная>:array[1..N] of<тип переменных>
Двумерный
<переменная>:array[1..N,1..N] of<тип индекса>
Примеродномерный
Program massiv;
Var
a:array[1..5] of integer;
I:integer;
Begin
Randomize;
For i:=1 to 5 do
Begin
a[i]:=random(30);
writeln(a[i]:3);
end;
readln;
end.
ПримерДвумерный
Program massiv;
Var
a:array[1..5,1..5] of integer;
i,j:integer;
Begin
Randomize;
For i:=1 to 5 do
begin
For j:=1 to 5 do
Begin
a[I,j]:=random(30);
writeln(a[I,j]:3);
end;
writeln;
end;
readln;
end.
39 Конструкцияrecord
Данные такого рода, описывающие существенные стороны того или иного объекта путем включения в описание нескольких, часто разнотипных, элементов, называют записью (record). В языке Паскаль запись определяется путем указания служебного слова record и перечисления входящих в запись элементов с указанием типов этих элементов.
Запись Паскаля – структурированный комбинированный тип данных, состоящий из фиксированного числа компонент (полей) разного типа.
Например, анкетные данные о студенте вуза могут быть представлены в виде информационной структуры
· Такая структура называется двухуровневым деревом. В Паскале эта информация может храниться в одной переменной типа record (запись). Задать тип можно следующим образом:
· type < имя _ типа >=record
<имя_поля1>: тип;
<имя_поля2>: тип;
………………….
<имя_поля K >: тип
end ;
· где record – служебное слово, а <имя_типа> и <имя_поля> - правильные идентификаторы языка Паскаль.
Описание анкеты студента в Паскале будет выглядеть так:
· Type anketa=record
fio: string[45];
pol: char;
dat_r: string[8];
adres: string[50];
curs: 1..5;
grupp: string[3];
end;
- Пусть нам необходимо заполнить сведения о студенте (Ф.И.О., дата рождения, адрес, курс и группа), а затем вывести эти сведения на экран.
Пример программы c записью Паскаля
program primer1;
type anketa=record
fio: string[45];
dat_r: string[8];
adres: string[50];
curs: 1..5;
grupp: string[3]
end;
var student: anketa;
begin
writeln ('введите сведения о студенте');
{обратите внимание, ввод каждого поля осуществляется отдельно}
writeln ('введите фамилию, имя и отчество');
readln (student.fio);
writeln ('введите дату рождения');
readln (student.dat_r);
writeln ('введите адрес');
readln(student.adres);
writeln ('введите курс');
readln(student.curs);
writeln ('введите группу');
readln (student.grupp);
writeln ('ввод закончен');
writeln ;
{обратите внимание, что вывод записи осуществляется по полям}
writeln ('фамилия студента: ', student . fio );
writeln(' дата рождения : ', student.dat_r);
writeln(' адрес : ', student.adres);
writeln(' курс : ', student.curs);
writeln(' группа : ', student.grupp);
end.
40Созданиеновыхтиповпаскаль
type matr =array[1..10,1..50]ofinteger;
var a:matr;