Обычно ветвление в паскале рассматривают на примере решения уравнения вида ax2+bx+c=0.
Но мы начнём с чего-то попроще. Пусть компьютер угадывает загаданное пользователем число от 1 до 2.
Пишем:
program ugadayka1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
ans : Char;
begin
Writeln('Zagadayte chislo ot 1 do 2. Nazhmite Enter po gotovnosti.');//сообщаем пользователю, что мы от него хотим
Readln;//когда человек загадал число, он должен нажать Enter
Writeln ('Eto 1? (y/n)');//спрашиваем, загадал ли он единицу.
Readln(ans);//ответить он должен, нажав y или n на клавиатуре
if (ans='y') or (ans='Y') then //т.к. может быть нажат Caps Lock, за ответ "да" будем считать как маленькую, так и заглавную букву y
Writeln('Ura! Ya ugadal! Eto 1')
else
Writeln('Vy zagadali chislo 2');
Readln;
end.
Расширим теперь нашу программу - пусть человек загадывает число от 1 до 4:
program ugadayka2;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
ans : Char;
begin
Writeln('Zagadayte chislo ot 1 do 4. Nazhmite Enter po gotovnosti.');
Readln;
Writeln ('Eto 1? (y/n)');
Readln(ans);
if (ans='y') or (ans='Y') then
Writeln('Ura! Ya ugadal! Eto 1')
else
begin
Writeln ('Eto 2? (y/n)');
Readln(ans);
if (ans='y') or (ans='Y') then
Writeln('Ura! Ya ugadal! Eto 2')
else
begin
Writeln ('Eto 3? (y/n)');
Readln(ans);
if (ans='y') or (ans='Y') then
Writeln('Ura! Ya ugadal! Eto 3')
else
Writeln('Vy zagadali chislo 4');
  
end;
end;
  
   
Readln;
end.
Изменим теперь программу так, чтобы ей требовалось максимум 2 вопроса, чтобы угадать число от 1 до 4:
program ugadayka3;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
ans : Char;
begin
Writeln('Zagadayte chislo ot 1 do 4. Nazhmite Enter po gotovnosti.');
Readln;
Writeln ('Chislo chetnoe? (y/n)');//Этим вопросом мы разбиваем все возможные варианты ответа на 2 равные группы Readln(ans);
if (ans='y') or (ans='Y') then
begin
Writeln ('Eto 2? (y/n)');
Readln(ans);
if (ans='y') or (ans='Y') then
Writeln('Ura! Ya ugadal! Eto 2')
else
Writeln('Vy zagadali chislo 4');
end
else
begin
Writeln ('Eto 1? (y/n)');
Readln(ans);
if (ans='y') or (ans='Y') then
Writeln('Ura! Ya ugadal! Eto 1')
else
Writeln('Vy zagadali chislo 3');
end;
  
Readln;
end.
Составьте в конспекте блок-схемы алгоритмов рассмотренных программ.
Составьте алгоритм и напишите программу, которая бы угадывала загаданный день недели.
Составьте алгоритм и напишите программу, которая бы угадывала загаданный месяц.
Но мы начнём с чего-то попроще. Пусть компьютер угадывает загаданное пользователем число от 1 до 2.
Пишем:
program ugadayka1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
ans : Char;
begin
Writeln('Zagadayte chislo ot 1 do 2. Nazhmite Enter po gotovnosti.');//сообщаем пользователю, что мы от него хотим
Readln;//когда человек загадал число, он должен нажать Enter
Writeln ('Eto 1? (y/n)');//спрашиваем, загадал ли он единицу.
Readln(ans);//ответить он должен, нажав y или n на клавиатуре
if (ans='y') or (ans='Y') then //т.к. может быть нажат Caps Lock, за ответ "да" будем считать как маленькую, так и заглавную букву y
Writeln('Ura! Ya ugadal! Eto 1')
else
Writeln('Vy zagadali chislo 2');
Readln;
end.
Расширим теперь нашу программу - пусть человек загадывает число от 1 до 4:
program ugadayka2;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
ans : Char;
begin
Writeln('Zagadayte chislo ot 1 do 4. Nazhmite Enter po gotovnosti.');
Readln;
Writeln ('Eto 1? (y/n)');
Readln(ans);
if (ans='y') or (ans='Y') then
Writeln('Ura! Ya ugadal! Eto 1')
else
begin
Writeln ('Eto 2? (y/n)');
Readln(ans);
if (ans='y') or (ans='Y') then
Writeln('Ura! Ya ugadal! Eto 2')
else
begin
Writeln ('Eto 3? (y/n)');
Readln(ans);
if (ans='y') or (ans='Y') then
Writeln('Ura! Ya ugadal! Eto 3')
else
Writeln('Vy zagadali chislo 4');
end;
end;
Readln;
end.
Изменим теперь программу так, чтобы ей требовалось максимум 2 вопроса, чтобы угадать число от 1 до 4:
program ugadayka3;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
ans : Char;
begin
Writeln('Zagadayte chislo ot 1 do 4. Nazhmite Enter po gotovnosti.');
Readln;
Writeln ('Chislo chetnoe? (y/n)');//Этим вопросом мы разбиваем все возможные варианты ответа на 2 равные группы Readln(ans);
if (ans='y') or (ans='Y') then
begin
Writeln ('Eto 2? (y/n)');
Readln(ans);
if (ans='y') or (ans='Y') then
Writeln('Ura! Ya ugadal! Eto 2')
else
Writeln('Vy zagadali chislo 4');
end
else
begin
Writeln ('Eto 1? (y/n)');
Readln(ans);
if (ans='y') or (ans='Y') then
Writeln('Ura! Ya ugadal! Eto 1')
else
Writeln('Vy zagadali chislo 3');
end;
Readln;
end.
Составьте в конспекте блок-схемы алгоритмов рассмотренных программ.
Составьте алгоритм и напишите программу, которая бы угадывала загаданный день недели.
Составьте алгоритм и напишите программу, которая бы угадывала загаданный месяц.
Немає коментарів:
Дописати коментар