ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.05.2024
Просмотров: 112
Скачиваний: 0
СОДЕРЖАНИЕ
Создание консольных приложений
Программирование линейных алгоритмов Оператор присваивания
Программирование разветвляющихся алгоритмов
Программирование циклических алгоритмов
Описание и использование данных строкового типа
Процедуры и функции для работы со строками
Описание и использование процедур и функций
Формальные и фактические параметры
Использование функций
Обычно функции применяют в качестве операндов выражений. Параметром функции может быть константа, переменная или выражение соответствующего типа. Ниже приведены примеры использования стандартных функций и функций преобразования.
n := Round( (x2-x1)/dx); x1: = (-b + Sqrt(d)) / (2*a); m := Random(10); cena := StrToInt(Edit1.Text); Edit2.Text := IntToStr( 100); mes := 'x1=' + FloatToStr( x1) ; n := Round( (x2-x1)/dx); x1: = (-b + Sqrt(d)) / (2*a); m := Random(10); cena := StrToInt(Edit1.Text); Edit2.Text := IntToStr( 100); mes := 'x1=' + FloatToStr( x1) ;
Программирование линейных алгоритмов Оператор присваивания
Оператор присваивания является основной вычислительной инструкцией. Если в программе надо выполнить вычисление, то нужно использовать оператор присваивания.
В результате выполнения оператора присваивания значение переменной меняется, ей присваивается значение.
В общем виде оператор присваивания выглядит так: Имя := Выражение;
где:
Имя — переменная, значение которой изменяется в результате выполнения инструкции присваивания;
: = — символ инструкции присваивания.
Выражение — выражение, значение которого присваивается переменной, имя которой указано слева от символа инструкции присваивания.
Пример:
Summa := Сеnа * Kol; Skidka := 10; Found := False;
Тип выражения должен быть согласован с типом переменной.
Для примера
a:=b;
если a переменная типа Z, то b так же должна быть переменной типа Z;
если a – R, то b может быть как Z так и R;
если а переменная логического типа, то b тоже логического типа;
если a типа char, то и b типа char;
если a переменная строкового типа string, то и b строкового типа.
Операторы ввода и вывода
Для ввода исходных данных с клавиатуры используются процедуры:
read(список ввода);
readln(список ввода);
Список ввода представляет собой перечисленные через запятую имена переменных, которым присваиваются введенные с клавиатуры значения. Переменные могут быть целого, вещественного, символьного и строкового типов.
При вводе с клавиатуры информация представляет собой строку символов, т. е. имеет строковый тип. В процессе ввода происходит автоматическое преобразование строковых значений к типу переменных, входящих в список ввода. При наборе информации с клавиатуры она сначала помещается в виде строки в буфер ввода. Преобразование и передача значений из буфера ввода в переменные списка возможно только, если в буфер ввода введен признак конца строки (#13), этот символ вводится в буфер ввода клавишей Enter. При вводе значений из буфера используется указатель считывания.
Процедура read вводит значения переменных из списка ввода. Ввод значений числовых переменных завершается в строке символами пробел, Tab (#9) или признаком конца строки (#13). В качестве значения символьной переменной используется любой символ, на который в данный момент указывает указатель считывания. Признаком конца строкового значения (типа string) является признак конца строки (#13).
Примеры:
vara,b:integer;
beginread(a,b);end.
Если переменным a и b следует присвоить значения 5 и –76 соответственно, то ввести их с клавиатуры можно следующим образом:
5|_|-76Enter или 5 Enter
-76 Enter
2) varc,d:char;
begin read(c,d); {c должно получить значение ’+’, d - значение ’z’}
end.
Ввод с клавиатуры следует осуществить следующим образом:
+z Enter
3) varc:char; d:integer;
beginread(d,c); { d=23, c=’*’}end.
Если ввести: 23|_| * Enter
то d=23, c=’|_|’
Таким образом, если в списке ввода оператора read необходимо указать имена как числовых, так и символьных переменных, то список имен символьных переменных должен предшествовать списку имен числовых переменных. Ввод данных в иной последовательности невозможен.
read(c,d); Ввести:*23 Enter
4) vars:string ;
beginread(s); { s=’8 марта’}end.
Ввести: 8 марта Enter
5) vara,b:string ;
beginread(a); read(b)end.
Если ввести:
да Enter
то a=’да’ и b=’’.
Ввод значений двух переменных, первая из которых имеет тип string, процедурами read невозможен, необходимо использовать процедуры readln, причем в списке ввода должно быть имя только одной переменной типа string. В отличие от процедуры read процедура readln после ввода значений всех переменных списка очищает буфер ввода и переводит курсор в начало следующей строки..
vara,b:string ;
beginreadln(a); readln(b) {a=’мама’, b=’папа’}end.
Ввести: мама Enter
папа Enter
Для вывода на экран используются процедуры:
write(список вывода);
writeln(список вывода);
Список вывода содержит выражения со значениями целого, вещественного, символьного, логического и строкового типов.
Процедура write(список вывода) выводит значения из списка подряд в одну строку и устанавливает курсор в следующую свободную позицию этой же строки экрана.
Процедура writeln(список вывода) выводит значения из списка подряд в одну строку, но после вывода значений переводит курсор в первую позицию следующей строки экрана.
Процедура writeln; переводит курсор в первую позицию следующей строки экрана.
Для вывода значений целого, символьного, логического и строкового типов можно использовать формат вывода: выражение:m, где m- длина поля, в котором размещается выводимое значение, оно выводится прижатым к правому краю поля. Для вывода значений вещественного типа используется формат вывода: выражение:m: n, где m – общая длина поля, n – количество позиций, отводимых под дробную часть.
Если указанной длины поля недостаточно для размещения значения, то поле автоматически раздвигается до нужной длины.
Примеры: На экране:
write(15); 15
writeln(‘a=’,-12); a=-12
writeln(-15.6 : 13 : 2); - 1 5 . 6 0
Программирование разветвляющихся алгоритмов
Для программирования разветвляющихся алгоритмов используются: условный оператор, оператор выбора и оператор безусловного перехода.
1. Условный оператор имеет полную и сокращенную форму записи. Полная форма условного оператора имеет вид:
if логическое выражение then оператор_1 else оператор_2;
Вычисляется значение логического выражения; если оно равно true, то выполняется оператор_1, если же - false - оператор_2.
Сокращенная форма условного оператора имеет вид:
if <логическое выражение> then <оператор>;
Вычисляется значение логического выражения; если оно равно true, то выполняется оператор, записанный после then, если же - false, то этот оператор не выполняется.
Примеры:
if x>y
thenz:=sqr(x)elsez:=y;
Здесь в результате выполнения условного оператора переменная z в любом случае получает новое значение.
if (x>=2) and(x<4)then b:=sin(x);
Здесь, например, при x = 5 переменная b сохраняет то значение, которое она имела до выполнения условного оператора.
В условном операторе после служебных слов then или else записывается лишь один оператор; если необходимо выполнить несколько действий, то соответствующие операторы объединяются в составной оператор, который имеет вид: begin оператор_1;
оператор_2;
оператор_n
end;
Пример: if x>y then begin min:=y; max:=x end
else begin min:=x; max:=y end;
2. С помощью оператора выбора можно выбрать один из любого количества вариантов. Оператор выбора имеет вид:
case <выражение> of
<константа_1>:<оператор_1>;
<константа_2>:<оператор_2>;
…….
<константа_n>:<оператор_n>;
else оператор
end;
Сначала вычисляется значение выражения (имеющего порядковый тип), затем среди констант отыскивается константа, равная вычисленному значению. Выполняется оператор, записанный после найденной константы, и оператор выбора завершает работу. Если в списке выбора не будет найдена константа, соответствующая вычисленному значению выражения, то выполняется оператор, стоящий за словом else. Если же часть else оператор отсутствует, и в списке выбора нет нужной константы, то выполнение оператора выбора завершается.
Пример:case mof
12,1,2: writeln(‘зима’);
3,4,5: writeln(‘весна’);
6,7,8: writeln(‘лето‘);
9,10,11: writeln(‘осень’)
else writeln(‘ошибка в данных’)
end;
3. Оператор безусловного перехода позволяет перейти к нужному оператору, при этом нарушается естественный порядок выполнения операторов. Оператор имеет вид: goto метка;
В качестве метки используется идентификатор или целое число без знака (0-9999). Метка описывается в разделе label:
label метка_1,метка_2, метка_n;
Например: label 1,ab;
Одной меткой можно пометить только один оператор. Метка отделяется от помеченного оператора двоеточием.
метка:оператор;
Например: ab: writeln(‘переход по метке’);
Пример: label t;
varx,y:real;
begin…gotot; …..
t: y: =sqr(x); …..
end.
Программирование циклических алгоритмов
Для программирования циклических алгоритмов используются операторы цикла. В языке Pascal различают три вида операторов цикла: for, while, repeat. Оператор цикла for имеет вид:
for параметр цикла:= выражение_1 to выражение_2 do оператор;
или
for параметр цикла:=выражение_1 downto выражение_2 do оператор;
параметр цикла - переменная порядкового типа;
выражение_1- начальное значение параметра цикла;
выражение_2– конечное значение параметра цикла.
Сначала вычисляются и запоминаются значения выражения_1 и выражения_2. Далее проверяется: значение выражения_1 меньше или равно (для downto - больше или равно) значению выражения_2. Если нет, то выполнение оператора цикла завершается, если же - да, то параметр цикла получает значение выражения_1, выполняется оператор и параметр цикла получает следующее значение (для downto – предыдущее значение). Затем проверяется: параметр цикла меньше или равен (для downto - больше или равен) значению выражения_2. Если да, то снова выполняется оператор и параметр цикла получает новое значение, если же - нет, то выполнение оператора цикла завершается.
Примеры:
for i:=1to10dowriteln(‘i=’,i);
for i:= 10downto1dowriteln(‘i=’,i);
Оператор цикла while имеет вид:
while логическое выражение do оператор;
Пока значение логического выражения true, выполняется оператор, записанный после служебного слова do, как только значение станет false, оператор цикла завершит свою работу. Если значение выражения с самого начала false, то указанный в цикле оператор не выполнится ни разу.