В языке Pascal есть такое понятие, как "пустой оператор" – оператор, который не имеет графического представления и не производит никаких действий. Причин существования такой конструкции несколько. Например, символ ";" синтаксически является разделителем, т.е. оператор, после которого идет служебное слово end, не должен заканчиваться этим символом:
begin
s1; s2; s3
end;
Но если предположить, что после оператора s3 идет пустой оператор, тогда такая форма записи тоже правильна:
begin
s1; s2; s3;
end;
Другой пример использования пустого оператора – бесконечный цикл, не выполняющий никаких действий и завершающийся после нажатия любой клавиши:
repeat until keypressed;
Здесь подразумевается, что между словами repeat и until находится пустой оператор.
Дәріс 20
Тақырыбы: Қайталау операторы
Мақсаты: Қайталау операторы қайталауды шартты жалғастыру циклі
Қайталау операторы
Оператор цикла с предусловием.
Блок схема такого оператора:
Форма записи:
while <условие> do <оператор>;
В качестве оператора может быть любой простой или составной оператор. Оператор здесь выполняется только в том случае и до тех пор, пока истинно условие, которое проверяется каждый раз после выполнения оператора. Если с самого начала условие имеет значение false, оператор цикла не выполнится ни разу.
Примеры:
Вычисление факториала:
while x <=N do
begin {начало цикла}
Fact := Fact*x;
x := x + 1
end; {конец цикла}
Вычислить у=х2 при х=2, 4, 6, 8, 10:
x:=2;
while x<=10 do
begin {начало цикла}
y:=sqr(x);
writeln(‘x=‘,x:3, ‘y=‘,y:5);
x:=x+2
end; {конец цикла}
Если в операторе цикла условие всегда истинно, то такой цикл называется бесконечным:
t:=true;
while t do x:=x+5;
Оператор цикла с постусловием
Блок-схема оператора:
Форма записи:
repeat
<оператор1>;
<оператор2>;
…
until <условие>;
Последовательность операторов может состоять из одного или нескольких любых операторов. В отличие от предыдущего, в этом цикле условие проверяется всегда после выполнения оператора (или последовательности операторов), если оно ложно – оператор снова выполняется, иначе цикл прекращается. При такой структуре оператор хотя бы один раз обязательно выполнится.
Дәріс 21
Тақырыбы: Параметрлі қайталау операторы
Мақсаты: Параметрлі қайталау операторының артықшылығы
Дәріс мазмұны:
Оператор цикла с параметром
Этот оператор используют, когда количество повторений цикла известно заранее или необходимо изменять какую-либо величину на одно и то же значение в определенном диапазоне. Форма записи оператора:
for <параметр> := <начальное значение> to <конечное значение> do <оператор>;
Служебное слово to указывает направление изменения параметра – увеличение на 1 (начальное значение меньше конечного значения; если это условие не выполнится, оператор в теле цикла не выполнится ни разу). Если необходимо, чтобы параметр уменьшался на 1, то используют слово downto (начальное значение больше конечного значения). В качестве оператора можно использовать любой простой или составной оператор.
При использовании этого оператора цикла нужно помнить следующие правила:
в качестве параметра можно использовать простую переменную, описанную в этом же блоке;
параметр должен иметь дискретный тип;
начальное и конечное значения должны иметь тот же тип, что и параметр;
в теле цикла (операторе) явное изменение значения параметра (например, оператором присваивания) может привести к бесконечному циклу;
нельзя в теле цикла изменить начальное и конечное значения параметра, если они заданы переменными.
после завершения работы цикла значение параметра становится равным конечному значению параметра, если цикл не был прерван оператором перехода.
Для каждого значения параметра между начальным и конечным оператор в теле цикла выполняется только один раз.
Примеры:
Вывести на экран все символы от ‘a’ до ‘z’:
for i := ‘a’ to ‘z’ do write(i, ‘ ‘);
Вычислить у=х2 при х=2, 4, 6, 8, 10.
x:=2;
for i:=1 to 5 do
begin
y:=x*x;
writeln(x:3,y);
x:=x+2
end;
Дәріс 22
Тақырыбы: Кестелік шамалар.
Мақсаты: Кестелік шамалар массив элементтерін енгізу
Массивтер
Массивы – наиболее часто используемые типы данных. Каждое значение массива – это некоторое фиксированное количество значений одного и того же базового типа. Другими словами, такой тип данных позволяет объединять несколько значений одного типа в группу, причем имя дается всей группе в целом, а не каждому значению, сами же значения просто нумеруются. Доступ к элементам группы осуществляется по их номерам (индексам).
Массивы характеризуются типом элементов, их количеством и "способом нумерации". Определение массива в программе имеет вид:
type
<имя типа> = array [тип индекса] of <тип элементов>;
Тип индекса – любой дискретный тип, кроме longint.
Поскольку индексов у элементов массива может быть несколько (например, в математике, элементы матриц имеют два индекса), то в описании можно указать не один тип индекса, а несколько, разделенных символом ",". Примеры описания массивов:
type
letters = array [1..40] of char;
matrix1 = array [1..10] of array [1..5] of integer;
matrix2 = array [1..10,1..5] of real;
var
alf : letters;
A, С : matrix1;
B : matrix2;
Возможно непосредственное описание массивов в разделе описания переменных:
Var
аlf: array [1..40] of char;
А: array [1..10] of array [1..5] of integer;
Тогда обращение к элементам массивов будет выглядеть следующим образом:
alf[1]:=‘a’;
B[1,1]:=14.9;
Элементы массива считаются переменными и могут участвовать в любых операциях, допустимых с элементами данного типа. Над всем массивом в целом возможна операция присваивания, когда типы выражений в обеих частях совпадают:
А := С;
Примеры использования массивов
1. Пусть имеется массив A, состоящий из n элементов с номерами от 1 до n. Найти сумму элементов массива, вывести ее на экран.
Const n=10;
Var А: array [1..n] of integer;
sum,I:integer;
begin
sum:=0;
for i:=1 to n do sum:=sum+A[i];
writeln(‘Сумма элементов массива = ‘ ,sum);
end.
2. Найти произведение матрицы А (размерности m на n) на число k.
for i:=1 to n do
for j:=1 to m do
A[ i , j ] := A[ i , j ] * k;
Жолдық типтер
Строковый тип данных используется для представления строк. Любая строка является набором символов, обобщает понятие символьных массивов, позволяя динамически изменять длину строки. В этом состоит главное отличие строк от символьных массивов.
Данные строкового типа – это последовательности (цепочки) символов произвольной длины (от нуля до заданного числа – максимальной длины строки). Т.е. все символы в любой строке нумеруются целыми числами, начиная с единицы.
Определение переменной строкового типа производится с помощью служебного слова string, после которого в квадратных скобках указывается максимальная длина строки (может быть задана константой или отсутствовать, тогда по умолчанию используется максимальное число – 255):
type
slovo = string[10];
var
str1 : slovo;
str2 : string [100];
str3 : string;
|
str3 := ‘Это строка, а не символьный массив’;
Если строковой переменной присваивается выражение, длина которого больше максимальной длины данной строки, то лишние символы просто отбрасываются, программа при этом не прерывается (т.е. такая ситуация не считается ошибочной).
Операции, определенные над данными строкового типа:
конкатенация (+) – сложение строк (то же самое выполняет стандартная функция concat(str1, str2, …, strN) );
Например, возможен такой фрагмент:
str1:=‘Иван’;
str2:=‘Петрович’;
str:=str1 + ‘ ‘+ str2 + ‘ Сидоров’;
writeln(str);
На экран будет выведена строка: Иван Петрович Сидоров;
операции сравнения (<, >, =, <>, >=, <=). Сравнение строк происходит поэлементно, т.е. первый символ одной строки сравнивается с первым второй, если они не равны, то большей считается та строка, символ которой больше, если же символы оказались равными, то сравнивается второй со вторым и так далее пока не встретятся не равные символы.
Например, результат следующих операций – true:
‘Иван’< ‘Иванова’
‘Кот’ > ‘Код’
‘Я’>’Ты’
Дәріс 23
Тақырыбы: Файлдармен жұмыс
Мақсаты: Файлдармен жұмыс текстік файлдар
Достарыңызбен бөлісу: |