Условный оператор If в зависимости от значения некоторого условия выполняет либо оператор, стоящий после Then (условие выполняется), либо оператор, стоящий после Еlse (условие не выполняется).
Структура условного оператора:
If условие Then группа операторов [Else группа операторов];
Перед Else знак ";" никогда не ставится. В квадратных скобках указана необязательная часть.
В качестве условия может быть использовано любое выражение логического типа.
Условия можно объединять с помощью Or – Или и с помощью And – И. Если условий несколько, то каждое из них необходимо заключить в скобки:
If (a>2) and (b<2) Then
Наберите и отладьте программу trеug1
Программа должна запросить три стороны треугольника и по ним определить тип треугольника. Определение типа производится сравнением сторон. После отладки проверьте ее при работе со сторонами
а) 2, 2, 2; ответ должен быть "равносторонний"
б) 4, 4, 8; ответ должен быть "равнобедренный"
в) 4, 3, 5 ответ должен быть "разносторонний".
program treug1;
uses crt;
var a,b,c:integer;
d:string;
begin
clrscr;
write('Введи три стороны треугольника ');
readln (a,b,c);
if (a=b) or (b=c) or (a=c) then d:='треугольник равнобедренный';
if (a=b) and (b=c) then d:='треугольник равносторонний';
if (a<>c) and (a<>b) and (b<>c) then d:='треугольник разносторонний';
writeln (d);
end.
Счетчики
Для подсчета любых данных, ситуаций, событий, удобно использовать счетчики. Счетчиком можно назвать расчетную строку, в которой слева и справа используется одинаковая переменная.
Например, k:=k+… или m:=m*… или d:=d-… и т.д., где вместо многоточия (…) записывается число или переменная.
Строку типа k:=k+1 можно назвать счетчиком количества. Работает она так: число, лежащее в ячейке k увеличить на 1 и снова записать в ту же ячейку.
Вот фрагмент программы, показывающий работу такого счетчика:
readln(a,b,c);
if a>0 then p:=p+1 else o:=o+1;
if b>0 then p:=p+1 else o:=o+1;
if c>0 then p:=p+1 else o:=o+1;
writeln(‘положительных чисел - ’,p, ‘ отрицательных чисел или 0 - ’,o );
так же часто используется счетчик суммы: s:=s+a
Применение счетчиков такого типа будет рассмотрено позднее, в работе циклов.
Работа с символьными переменными
В Паскаль АВС используется несколько типов символьных переменных, в этой теме будут рассмотрены два: char и string:
char: значения переменной – отдельный символ (один);
string: цепочка символов (несколько букв, символов, слов).
Например: var a:char; b:string;
Символьные переменные можно объединять (складывать):
f:='ab';
d:='cd';
s:=f+d; или s:='ab'+'cd';
результатом операции будет значение переменной s, равное 'abcd'.
В работе с символьными переменными могут использоваться операции отношения: =, <>, >, <, >=, <=, в которых проводится посимвольное сравнение кодов (номеров) символов. Если коды первых символов равны, то сравниваются коды следующих символов.
1. Наберите и отладьте программу imena (определение полного имени по короткому). После отладки проверьте ее при работе с именами Саша, Коля и Витя.
program imena;
uses crt;
var ik, ip : string;
begin
clrscr;
write('Введите имя ');
readln (ik);
ip := 'Я такого не знаю';
if ik = 'Саша' then ip := 'Александр';
if ik = 'Коля' then ip := 'Николай';
if ik = 'Петя' then ip := 'Петр';
writeln (ip);
end.
2. Написать программу нахождения максимальной из двух величин a и b, запрошенных с клавиатуры. Используется дополнительная переменная m, которой присваивается значение большего из чисел a и b.
program r1;
uses crt;
var a, b, m:real;
begin
writeln('Максимум двух чисел');
write('Введи первое число ');
readln(a);
write('Введи второе число ');
readln(b);
if a>=b then m:=a else m:= b;
clrscr;
writeln('a =',a,' b =',b);
writeln('max =',m);
end.
Задачи для самостоятельного решения
1. Составить программу, чтобы компьютер запросил имя пользователя и его год рождения, затем подсчитал возраст человека, в зависимости от возраста разработайте вариант диалога с пользователем (еще не учишься, учишься в таком-то классе (использовать формулу!), уже не учишься).
2. Запросить с клавиатуры координаты точки (X, Y) и горизонтального отрезка прямой (Xn, Xk, Yn) и определить, лежит точка на отрезке прямой или нет. Сообщение об этом вывести на экран.
Подсказка. Если координата Y точки не равна координате Y прямой, то НЕ лежит, если координата Х точки не находится в пределах между Хn начала и Хk конца прямой, то точка НЕ лежит на прямой.
Указание: программу проверить при суммах 1000, 8000 и 12000 руб. Ответы должны быть соответственно 0, 1040 и 1600 руб.
3. Запросить с клавиатуры 3 стороны треугольника и по ним определить, является ли он прямоугольным, сообщение вывести на экран.
Подсказка. Для каждой стороны применить теорему Пифагора и проверить, выполняется ли она. Если выполняется, то треугольник является прямоугольным. Переменные должны быть целыми числовыми. Функция квадрата - sqr(x), корня квадратного - sqrt(x). Программу проверить при сторонах 3, 4, 5 - прямоугольный, а 4, 5, 6 - не прямоугольный.