- •Введение Литература
- •Сокращения
- •Тема № 1. Основные понятия программирования
- •1.1. Состав программы на языкеPascal
- •1.2. Элементы программы в языкеPascal
- •1.3. Типы данных в языкеPascal
- •1.4. Операции в языкеPascal
- •1.5. Выражения в языкеPascal
- •1.6. Стандартные функции в языкеPascal
- •1.7. Операторы языка Pascal
- •Тема № 2. Программирование базовых алгоритмов
- •2.1. Программирование последовательных вычислений
- •2.2. Программирование разветвлений
- •2.3. Программирование циклов
- •Тема № 3. Программирование задач с массивами
- •3.1. Одномерные массивы
- •Фрагменты вычисления характеристик одномерного массива
- •Фрагменты операций с одномерными массивами
- •Особенности элементов одномерного массива
- •3.2. Двумерные массивы
- •Фрагменты вычисления характеристик двумерного массива
- •Фрагменты вычисления характеристик строк и столбцов двумерного массива
- •Фрагменты операций с двумерными массивами
- •Особенности элементов квадратных матриц
- •3.3. Перестановка и сортировка элементов массива
- •Тема № 4. Программирование подпрограмм и структурных типов данных
- •4.1. Подпрограммы
- •4.2. Программирование задач с функциями
- •4.3. Программирование задач с процедурами
- •4.4. Программирование задач с файлами
- •4.5. Программирование задач с символами и строками
- •4.6. Программирование задач с записями
- •4.7. Программирование задач со множествами
- •Тема № 5. Моделирование
- •5.1. Моделирование как метод познания
- •5.2. Классификация моделей
- •5.3. Задачи и методы моделирования
- •5.4. Виды численных методов
- •Тема № 6. Введение в компьютерную графику
- •6.1. Предмет компьютерной графики
- •6.2. Виды компьютерной графики
- •6.3. Направления компьютерной графики
- •Тема № 7. Модели компьютерной графики
- •7.1. Геометрические модели
- •7.2. Цветовые и оптические модели
- •Тема № 8. Аффинные преобразования
- •8.1. Общий вид двумерных преобразований
- •8.2. Элементарные двумерные преобразования
- •8.3. Однородные координаты на плоскости
- •8.4. Композиции двумерных преобразований
- •8.5. Преобразования систем координат
- •8.6. Двумерные преобразования на экране монитора
- •8.7. Матричное представление трёхмерных преобразований
2.2. Программирование разветвлений
Для реализации алгоритма разветвляющейся структурыв языкеPascalиспользуются следующие операторы.
Оператор безусловного переходапозволяет осуществлять переход к далеко расположенной части программы без проверки условия.
Этот оператор имеет вид:
gotoM
где goto– перейти к,M– метка.
Это означает, что надо перейти к строке с меткой M .
Оператору безусловного перехода могут соответствовать фрагменты блок-схемы
или
Оператор условного перехода(условный оператор) позволяет осуществлять переход к одной из двух частей программы в зависимости от выполнения какого-то условия.
Этот оператор имеет вид:
ifUthenOp1elseOp2
где if– если,then– то, else– иначе,U– условие, Op1– оператор 1-й,Op2– оператор 2-й.
Это означает, что если условие U истинное, то выполнять оператор Op1, иначе выполнять оператор Op2.
Условие– логическое выражение, которое может принимать одно из 2-х значений: «истина» или «ложь».
Оператору условного перехода могут соответствовать фрагменты блок-схемы
или
В операторе условного перехода служебное слово else может отсутствовать, но в этом случае ветвь «нет» без блоков всё равно присутствует.
Оператор варианта(оператор выбора) позволяет выбирать направление выполнения программы по одному варианту из множества частей.
Этот оператор имеет вид:
caseSof
Z1 : Op1;
…
ZN : OpN
else Op0
end
где case – случай, of – из, else – иначе, end – конец, S – селектор, Z1 – значение 1-е, ZN – значение N-е, Op1 – оператор 1-й, OpN – оператор N-й, Op0 – оператор 0-й.
Это означает, что в случае, если селектор S принимает значение из списка Z1, то выполнять оператор Op1, … если селектор S принимает значение из списка ZN, то выполнять оператор OpN, иначе выполнять оператор Op0.
Селектор– выражение порядкового типа, которое может принимать одно из многих значений(селектор может быть целым числом и не может быть дробным числом).
Оператору варианта могут соответствовать фрагменты блок-схемы
или
В операторе варианта служебное слово else и ветвь «нет» могут отсутствовать.
Задача 2.
Условие задачи. Вычислить величину
Блок-схема.
|
Программа.
Program z2;
Var
a,b,c:real;
Begin
read(a,b);
if a>b
then c:=a+b
else c:=a-b;
writeln(c);
End.
Задача 3.
Условие задачи. Вычислить величину , гдеa и c – целые числа.
а) Использование вложенных условных переходов
Программа.
Program z3a;
Var
a,c:integer;
Begin
read(a);
if a=0 then c:=2
else if (a>=1) and (a<=10) then c:=3
else if (a=-1) or (a=11) then c:=4
else c:=5;
writeln(c);
End.
б) Использование множественного ветвления
Программа.
Program z3b;
Var
a,c:integer;
Begin
read(a);
case a of
0: c:=2;
1..10: c:=3;
-1,11: c:=4
else c:=5
end;
writeln(c);
End.
2.3. Программирование циклов
Для реализации алгоритма циклической структурыв языкеPascalиспользуются следующие операторы.
Оператор цикла с предусловиемпозволяет выполнять заранее неизвестное количество повторений в цикле, условие выхода из которого проверяется перед действиями в теле цикла.
Этот оператор имеет вид:
whileUdoOp
где while– пока,do– делать, U– условие, Op– оператор.
Это означает, что пока условие U истинное, повторять оператор Op в цикле; как только условие станет ложным, выйти из цикла.
Оператору цикла с предусловием может соответствовать фрагмент блок-схемы
Действия в теле цикла с предусловием могут не выполняться ни разу в случае, если условие продолжения цикла сразу становится ложным.
Оператор цикла с постусловиемпозволяет выполнять заранее неизвестное количество повторений в цикле, условие выхода из которого проверяется после действий в теле цикла.
Этот оператор имеет вид:
repeat
Op1;
…
OpN
untilU
где repeat– повторять,until– до тех пор пока, Op1– оператор 1-й,OpN– операторN-й, U– условие.
Это означает, что надо повторять операторы Op1, … OpN в цикле до тех пор, пока условие U не станет истинным; как только условие станет истинным, выйти из цикла.
Оператору цикла с постусловием может соответствовать фрагмент блок-схемы
Действия в теле цикла с постусловием могут выполняться как минимум 1 раз в случае, если условие выхода из цикла сразу становится истинным.
Оператор цикла с параметромпозволяет выполнять заранее известное количество повторений в цикле, определяемое параметром цикла. Этот оператор имеет 2 разновидности.
а) Оператор цикла с параметром (при увеличении параметра) имеет вид:
for Par := Nz to Kz do Op
где for– для,to– до,do– делать,Par– параметр цикла,Nz– начальное значение,Kz– конечное значение,Op– оператор.
Это означает, что для параметра Par , увеличивающегося от начального значения Nz до конечного значения Kz с шагом 1, повторять оператор Op в цикле.
б) Оператор цикла с параметром (при уменьшении параметра) имеет вид:
for Par := Nz downto Kz do Op
где for – для,downto– вниз до, do – делать, Par – параметр цикла, Nz – начальное значение, Kz – конечное значение, Op – оператор.
Это означает, что для параметра Par , уменьшающегося от начального значения Nz до конечного значения Kz с шагом (-1), повторять оператор Op в цикле.
Параметр цикла(счётчик циклов) – переменная порядкового типа, изменяющаяся в цикле от начального до конечного значения с каким-либо шагом(параметр цикла может быть целым числом и не может быть дробным числом).
Оператору цикла с параметром могут соответствовать фрагменты блок-схемы
или
Задача 4.
Условие задачи. Вычислить значения функции приx, увеличивающемся от xн до xк с шагом x
(Введём обозначения: xн xn ; xк xk ; x dx ).
Блок-схема.
|
Программа.
Program z4;
Var
x,y,xn,xk,dx:real;
Begin
read(xn,xk,dx);
x:=xn;
while x<=xk do
begin
y:=sin(x)/cos(x);
writeln('при x=',x:10:3,' y=',y:7:2);
x:=x+dx;
end;
End.
Задача 5.
Условие задачи. Вычислить значения функции приx, изменяющемся от 0 до 10 с шагом 1.
а) Цикл с предусловием.
Блок-схема.
|
Программа.
Program z5a;
Var
x,y:real;
Begin
x:=0;
while x<=10 do
begin
y:=exp(x);
writeln(x,y);
x:=x+1;
end;
End.
б) Цикл с постусловием.
Блок-схема.
|
Программа.
Program z5b;
Var
x,y:real;
Begin
x:=0;
repeat
y:=exp(x);
writeln(x,y);
x:=x+1;
untilx>10;
End.
в) Цикл с параметром.
Блок-схема.
|
Программа.
Program z5c;
Var
x:integer;
y:real;
Begin
for x:=0 to 10 do
begin
y:=exp(x);
writeln(x,y);
end;
End.
г) Цикл с использованием безусловного перехода.
Блок-схема.
|
Программа.
Programz5d;
Label20;
Var
x,y:real;
Begin
x:=0;
20: y:=exp(x);
writeln(x,y);
x:=x+1;
ifx<=10thengoto20;
End.