- •Лабораторная работа 1. Программирование алгоритмов линейной структуры
- •Задания для самостоятельного выполнения лабораторной работы 1:
- •Лабораторная работа 2. Численные переменные и типы данных
- •Задания для самостоятельного выполнения лабораторной работы 2:
- •Лабораторная работа 3. Логические переменные
- •Задания для самостоятельного выполнения лабораторной работы 3.
- •Лабораторная работа 4. Управляющие конструкции языка. Условный и составной операторы.
- •Задания для самостоятельного выполнения лабораторной работы 4:
- •Лабораторная работа 5.
- •Задания для самостоятельного выполнения лабораторной работы 5
- •Лабораторная работа 6. Управляющие конструкции языка. Оператор безусловного перехода.
- •Задания для самостоятельного выполнения лабораторной работы 6:
- •Лабораторная работа 7. Графические возможности. Графический режим. Система координат
- •Задания для самостоятельного выполнения лабораторной работы 7.
- •Лабораторная работа 8. Циклические конструкции. Оператор цикла с предусловием
- •Задания для самостоятельного выполнения лабораторной работы 8.
- •Лабораторная работа 9. Циклические конструкции. Оператор цикла с постусловием
- •Задания для самостоятельного выполнения лабораторной работы 9.
- •Лабораторная работа 10. Циклические конструкции. Оператор цикла с параметром
- •Задания для самостоятельного выполнения лабораторной работы 10.
- •Лабораторная работа 11. Символьные переменные Тип данных "char"
- •Задания для самостоятельного выполнения лабораторной работы 11.
- •Лабораторная работа 12. Массивы.
- •Задания для самостоятельного выполнения лабораторной работы 12.
- •Лабораторная работа 13. Методы обработки массивов
- •Задания для самостоятельного выполнения лабораторной работы 13.
- •Лабораторная работа 14.
- •Задания для самостоятельного выполнения лабораторной работы 14.
Задания для самостоятельного выполнения лабораторной работы 3.
1 Определите значение логического выражения, утверждающего, что точка с координатами х,у принадлежит окружности радиусом r. Центр окружности находится в точке (а,b).
2 Определите значение логического выражения, утверждающего что точка с координатами х,у принадлежит первой или третьей четверти координатной плоскости.
3 Определите значение величины q после выполнения каждой из следующих команд присваивания:
q:=a<b<c andс<5
q:=(a<=b) or (b>=c)
q:=odd(a+b) xor odd(b+c)
q:=sin(a) < sin(b) < sin(c)
a, b, с - целочисленные переменные, значение которых вводится с клавиатуры.
4Напишите программу которая вычисляет значение логического выражения, утверждающего, что модуль суммы двух введённых с клавиатуры чисел больше модуля разности этих же чисел. Результат вычисления вывести на экран монитора.
5 Напишите программу, которая вычисляет значение логического выражения, утверждающего, что синус суммы трёх введённых с клавиатуры действительных чисел - число положительное. Результат вычисления выводится на экран монитора.
6 Напишите программу которая определяет значение логического выражения, утверждающего, что два вещественных числа, введённых с клавиатуры, - числа разного знака.
7 Напишите программу, которая определяет значение логического выражения, утверждающего, что хотя-бы одно из введённых с клавиатуры действительных чисел отрицательно. Результат вычисления выводится на экран монитора.
8 Напишите программу, которая определяет значение логического выражения, утверждающего, что синус и косинус введённого с клавиатуры действительного числа имеют положительное значение.
9 Определите значение логического выражения, утверждающего что три целых числа, введённых с клавиатуры, четные числа.
10Определите значение логического выражения, утверждающего, что из двух целых чисел а и b, одно чётное, другое нечётное.
Лабораторная работа 4. Управляющие конструкции языка. Условный и составной операторы.
В системе программирования TurboPascal существует возможность составлять алгоритмы нелинейной структуры. Для этого предусмотрены специальные средства, так называемые "управляющие конструкции".
Самым простым нелинейным алгоритмом является алгоритм организации ветвлений. Вычислительный процесс (алгоритм) называется разветвляющимся, если в зависимости от выполнения определённых условий он реализуется по одному из нескольких, заранее предусмотренных направлений. Каждое отдельное направление называется ветвью вычислений. Выбор той или иной ветви осуществляется уже при выполнении программы в результате проверки некоторых условий.
Управляющая конструкция для программной реализации таких алгоритмов называется условным оператором.
Условный оператор.
Условный оператор реализует алгоритмическую конструкцию "развилка" (ветвление) и изменяет порядок выполнения операторов в зависимости от истинности или ложности некоторого условия. Существует два варианта оператора.
Полная форма:
if<условие>then<оператор 1>else<оператор 2>;
и краткая форма:
if<условие>then<оператор 1>;
В этих операторах: <условие> - некоторое логическое выражение, истинность которого проверяется;
<оператор 1> - оператор, который выполняется, если логическое выражение <условие> истинно.
<оператор 2> - оператор, который выполняется, если логическое выражение <условие> ложно.
В качестве условия после служебного слова if может применяться любое выражение, результатом которого является логическая величина. Это может быть простое логическое условие, сложное логическое условие, составленное из простых условий с помощью логических союзов, выражения с операциями отношения, просто логические переменные и т.д.
В качестве операторов после служебных слов then и else может применяться любой оператор языка, в том числе и условный оператор.
Ограничение.
Оператор, который располагается после служебного слова then, не может быть условным. Без этого ограничения пришлось бы рассматривать операторы вроде следующего:
if а>0 thenif а<2 then а:=2 else а:=3;
и было бы неясно, к какому из двух if относится единственное else. При использовании условного оператора после else никаких двусмысленностей не возникает.
Важное замечание.
Так как условный оператор IF является самостоятельным, единым оператором (предложением), ни перед then, ни перед else точку с запятой ставить нельзя.
Примеры использования условного оператора:
ifх<0 thenх:=-у;
if х<1.5 then z:=x+y else z:=1.5;
Как вы уже заметили, после служебных слов then и else может находиться (выполнятся) только один оператор. Но ветви условного оператора, состоящие из одного оператора, встречаются довольно редко. Гораздо чаще каждая ветвь условного оператора состоит из нескольких операторов. На первый взгляд кажется, что составить условный оператор в этом случае не представляется возможным. Для реализации таких ситуаций применяют составной оператор.
Составной оператор.
В тех случаях, когда в программе вместо нескольких необходимых операторов, по правилам языка можно поставить только один оператор, применяют составной оператор. Он представляет собой группу операторов ограниченных так называемыми операторными скобками BeginEnd. В этом случае данная группа операторов, состоящая из произвольного количества любых операторов, воспринимается компилятором как один оператор.
Пример составного оператора.
Begin
Write('Текущее сообщение'); z :=1; d:=d+l; End;
В данном примере три оператора, ограниченные операторными скобками, воспринимаются как один оператор.
Пример использования составного оператора в условном операторе.
Write('Введите контрольное число');
Readln(х);
if х>=0 then
begin
write('Контрольное число положительно*); i:=i+1; d:=d-l; х:=х+10; endelse
begin
write('Контрольное число отрицательно'); i:=7.-1; d:=d+l;х:=х-10; end.
Пример программы.
Программа для решения квадратного уравнения.
ProgramJcvur;
Vara,b,c: real; {коэффициенты квадратного уравнения}
xl,x2: real; {корни квадратного уравнения}
D: real; {дискриминант квадратного уравнения}
Begin
Writeln('Решение квадратного уравнения.'); {Bвод данных}
Write('Bведите коэффициент а: ');
Readln(а);
Write('Bведите коэффициент b: ');
Readln(b);
Write('Введите коэффициент с: ');
Readln(с);
{Определение дискриминанта}
D:=b*b-4*a*c;
{Определение корней и вывод информации}
if D>0 then
begin
xl:=(-b+sqrt(D))/(2*a); x2:=(-b-sqrt(D))/(2*a);
Writeln('Первый корень уравнения: ',xl); Writeln('Второй корень уравнения: ',х2);
end;
if D=0 then
begin
xl:=-b/(2*a);
Writeln('Уравнение имеет един корень: ',xl);
end;
ifD=0thenwriteln('Уравнение корней не имеет.'); Readln;
End.
Контрольные вопросы.
1 Для чего предназначен условный оператор?
2 Каковы две формы записи условного оператора?
3 Может ли условный оператор содержать в себе другие условные операторы?
4 Когда и как применяется составной оператор?