- •Язык программирования паскаль
- •Литература
- •1. Понятие о структурном программировании
- •1.1Особенности написания программ
- •1.2Алгоритм и его свойства
- •1.3Блок-схема
- •2.Общие сведения о языке программирования паскаль
- •2.1Название языка Паскаль
- •2.2Алфавит языка Паскаль
- •2.3Типы данных
- •2.4Перечисляемые типы данных
- •2.5Арифметические операции. Функции. Выражения
- •2.6Основные математические функции
- •2.7Структура программы
- •3.Текстовый режим работы в системе Паскаль
- •4.Основные операторы языка Паскаль.
- •4.1Оператор ввода данных с клавиатуры
- •4.2Оператор вывода данных на экран
- •4.3Оператор присваивания.
- •4.4Составной оператор и пустой оператор
- •4.5Оператор условного перехода
- •If условие then оператор;
- •4.6Оператор выбора варианта
- •4.7Оператор безусловного перехода
- •4.8Операторы цикла(повторения)
- •5.Массивы
- •6.Процедуры и функции
- •7.Строки
- •8.Особенности графики
- •8.1Переход в графический режим и возврат в текстовый
- •8.2Начало и окончание программы для работы с графикой:
- •8.3Рисование контурных геометрических изображений.
- •8.4Рисование закрашенных изображений.
- •8.5Вывод текста на графический экран
- •8.6Очитска экрана, тип и толщина линии
- •8.7Смещение в точки и смещение на вектор
- •8.8Иммитация движения
- •8.9Элементы мультипликации
- •8.10Построение графиков математических функций
- •8.11Работа с фрагментами изображения
- •8.12Управление видеостраницами
4.3Оператор присваивания.
Оператор присваивания имеет вид:
<имя переменной>:=выражение;
При вычислении значения выражения, стоящего в первой части оператора присваивания, учитывается тип данных и операции, которые над ним выполняются. Если в выражение входят данные целого типа, над которыми выполняются операции +,-,*, div, mod, то результат будет целочисленным. Если хотя бы один элемент данных относится к вещественному типу или встречается операция «деление», то результат будет вещественного типа. При этом будет сообщение об ошибке, указывающее на несоответствие типа.
4.4Составной оператор и пустой оператор
Составной оператор - это последовательность произвольных операторов программы, заключенная в операторные скобки - зарезервированные слова
begin . . . end;
Составные операторы - важный инструмент Паскаля, дающий возможность писать программы по современной технологии структурного программирования (без операторов перехода GOTO).
Фактически, весь раздел операторов, обрамленный словами begin . . . end, представляет собой один составной оператор. Поскольку зарезервированное слово end является закрывающей операторной скобкой, оно одновременно указывает и конец предыдущего оператора, поэтому ставить перед ним символ «;» необязательно, и далее во всех примерах мы не будем этого делать. Наличие точки с запятой перед end в предыдущих примерах означало, что между последним оператором и операторной скобкой end располагается пустой оператор. Пустой оператор не содержит никаких действий, просто в программу добавляется лишняя точка с запятой. В основном пустой оператор используется для передачи управления в конец составного оператора.
Пример 1. Рассмотрим программу для вычисления значений выражений: ;
program umn;
uses crt;
var a,b,с,d: real;
BEGIN
clrscr;
writeln('введите a d');
readln(a,d);
b:=a*a*а; c:=sin(a)+sqrt(abs(d));
writeln('Ответ b= ', b:6:2, ' c= ', c:8:1);
readln;
END.
4.5Оператор условного перехода
Условный оператор позволяет проверить некоторое условие (логическое выражение, boolean) и в зависимости от результатов проверки выполнить то или иное действие. Таким образом, условный оператор - это средство ветвления вычислительного процесса.
Для записи команды ветвления используется полная команда ветвления команда if...then...else;.
если условие то оператор1 иначе оператор2 все |
if условие then оператор1 else оператор 2; |
|
Где IF, THEN, ELSE - зарезервированные слова (если, то, иначе); <условие> - произвольное выражение логического типа; <оператор1>, <оператор2> - любые операторы языка Паскаль.
Условный оператор работает по следующему алгоритму. Вначале вычисляется условное выражение <условие>. Если результат есть TRUE (истина), то выполняется <оператор1>, а <оператор2> пропускается; если результат есть FALSE (ложь), наоборот, <оператор1> пропускается, а выполняется <оператор2>.
Пример: if x>=0 then y:=2*x else y:=3 - x ;.
Перед служебным словом else знак «;» не ставится.
Можно сказать, что слова then и else действуют только на один оператор, т. е. до первого знака «;». Чтобы действие этих слов распространялось на несколько операторов, используют операторные скобки или составной оператор:
begin ..... end (перед end знак «;» может не ставиться).
Пример:
if x>0 then
begin y:=1; z:=7 end
else begin y:=2; z:=9 end;.
В этом случае команда ветвления заканчивается последним словом end и после этого слова ставится знак «;».
Пример:
1) if x>0 then y:=1
else begin y:=2; z:=9 end;
2) if x>0 then begin y:=1; z=7 end
else y:=2;
В этих примерах только после одного служебного слова используются операторные скобки.
В записи if x>0 then y:=1 else y:=2;z:=7 значение 7 присвоится переменной z и при x>0 и при x<=0, так как оператор z:=7; уже не относится к оператору ветвления.
После служебного слова if без скобок записывается только простое условие. При записи составных условий обязательно каждое простое условие заключается в круглые скобки и отделяется пробелом от служебных слов:
if (x>1) and (x<7) then ...
При записи команды ветвления возникает проблема «болтающегося» else при оценке нескольких условий. Поскольку любой из операторов <оператор1> и <оператор2> может быть любого типа, в том числе и условным, а в то же время не каждый из «вложенных» условных операторов может иметь часть ELSE <оператор2>, то возникает неоднозначность трактовки условий.
Если не ввести дополнительного соглашения, то в записи
if условие then if условие then оператор 1 else оператор 2;
не понятно, к какому условному оператору, внутреннему или внешнему, относится else.
Эта неоднозначность в Паскале решается следующимобразом: любая встретившаяся часть ELSE соответствует ближайшей к ней «сверху» части THEN условного оператора.
Но если в then входит оператор if, то его лучше заключить его в операторную скобку begin...end, даже если if единственный оператор в then-части.
if условие then
begin
if условие
then оператор 1
else оператор 3;
end
else оператор 2;
Сокращенная форма оператора ветвления имеет вид: