Учим Паскаль - Ветвления
А что, если...
Очень часто надо узнать, какое значение ввёл пользователь. Например, прошлый код можно было бы изменить так, чтобы программа смогла понимать, совершеннолетний ли пользователь или нет. Сделать это можно при помощи ветвлений. В Паскале это записывается так: if условие then begin действие1; действие2; end;. "А как же указывается условие. Допустим, как проверить, равно ли значение переменной a пяти?" - спросишь ты. Условия прописываются так: значение_1 оператор_сравнения значение_2. Операторы сравнения бывают:
|
|
Зная конструкцию ветвлений, давайте изменим программу из прошлого урока так, чтобы она говорила пользователю, может ли он уже водить машину(т.е проверим, исполнилось ему уже шестнадцать или нет).
var
age:integer;
name:string;
begin
writeln('Привет, как тебя зовут?');
readln(name);
writeln('Хорошо, а сколько тебе лет?');
readln(age);
writeln('Отлично! Тебя зовут ',name,' и тебе ', age,' лет.');
if age >= 16 then
begin
writeln('Ух-ты, а ты уже можешь получить водительские права!');
end;
end.
Заметь, что после end в ветвлении стоит точка с запятой, а не точка(если поставишь точку, то программа не будет работать!)
Ветвление "иначе"
Но если пользователю ещё нет шестнадцати, мы должны сказать ему, что он пока не может получить водительские права. Можно было опять использовать if then просто поменять знак с '>=' на '<', но в Паскале есть более удобное решение - else. Записывается он просто: else begin действие1; действие2; end; Но чтобы всё работало надо изменить 'end;', который относится к if'у, на 'end'. То есть выглядеть это будет так:
var
age:integer;
name:string;
begin
writeln('Привет, как тебя зовут?');
readln(name);
writeln('Хорошо, а сколько тебе лет?');
readln(age);
writeln('Отлично! Тебя зовут ',name,' и тебе ', age,' лет.');
if age >= 16 then
begin
writeln('Ух-ты, а ты уже можешь получить водительские права!');
end
else
begin
writeln('К сожалению, ты не можешь пока получить водительские права');
end;
end.
Также в самом ветвлении можно использовать еще одно ветвление. Например:
var
age:integer;
name:string;
begin
writeln('Привет, как тебя зовут?');
readln(name);
writeln('Хорошо, а сколько тебе лет?');
readln(age);
writeln('Отлично! Тебя зовут ',name,' и тебе ', age,' лет.');
if age >= 16 then
begin
writeln('Ух-ты, а ты уже можешь получить водительские права!');
end
else
begin
if age <0 then
begin
writeln('Ты ещё не родился(как ты вообще пользуешься этой программой?)');
end;
writeln('К сожалению, ты не можешь пока получить водительские права');
end;
end.
Домашнее задание:
Напишите программу, которая принимала бы число и выводило сообщение о том, натуральное ли это число или нет