Учим Паскаль - Ветвления

А что, если...


Очень часто надо узнать, какое значение ввёл пользователь. Например, прошлый код можно было бы изменить так, чтобы программа смогла понимать, совершеннолетний ли пользователь или нет. Сделать это можно при помощи ветвлений. В Паскале это записывается так: if условие then begin действие1; действие2; end;. "А как же указывается условие. Допустим, как проверить, равно ли значение переменной a пяти?" - спросишь ты. Условия прописываются так: значение_1 оператор_сравнения значение_2. Операторы сравнения бывают:



  • = - равно ли значение_1 значению_2.
  • <> - не равно ли значение_1 значению_2.
  • < - меньше ли значение_1 значения_2.
  • > - больше ли значение_1 значения_2.
  • <= - меньше или равно ли значение_1 значения_2.
  • >= - больше или равно ли значение_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.





Домашнее задание:

Напишите программу, которая принимала бы число и выводило сообщение о том, натуральное ли это число или нет



Полезные ссылки →