СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до 14.07.2025

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Оператор ветвления в Pascal.

Категория: Информатика

Нажмите, чтобы узнать подробности

Оператор ветвления в Pascal

 

    Если  в зависимости  от  первоначального  условия  должны  выполняться  различные  выражения,  то  мы  будем  использовать  условный  оператор.

 Структура  условного  оператора:

    if  < условие>  then  <оператор 1 >  else  < оператор 2 >

    if  < условие>  then  <оператор >

    if  then  elseзарезервированные  слова (если, то, иначе)

 

Задача 1.  Даны  два  числа.  Ответить  чему  равно  большее  из  них  (найти максимальное).

 

     var max,x,y:real;

Begin

     writeln('Введите  число  x ');

     readln(x);

     writeln(' Введите  число y ');

     readln(y);

     if x>y then max:=x else max:=y;

     writeln('большее из двух = ',max);

End.

 

 

Задача 2.   Даны  три  числа.  Найти  максимальное.

 

     var max,x,y,z:real;

Begin

     writeln(' Введите  три числа ');

     readln(x,y,z);

     if x>y then max:=x else max:=y;

     if z>max then max:=z;

     writeln('большее из трёх =',max);

End.

 

 

Задача  3.   Задано число a. Кратно ли оно 3.

 

     var а:longint;

Begin

     writeln(' Введите число');

     readln(а);

     if a mod 3 =0 then writeln(a,' кратно 3’)

                   else writeln(a,' не кратно 3’); 

End.

 

 

Задача  2-4.   Дано  число.  Дать  характеристику  числа:

  • положительное,  отрицательное;
  • чётное,  нечётное ;
  • целое, не целое.

 

uses crt;

   var

      a:real;

      k,m,p:string;

Begin

    writeln('Введите  число');

    readln(a);

    if a<0    then k:='отрицательное'

              else k:=' положительное';

    if a=int(a)   then m:=' целое'

                  else m:='не целое';

    if a/2=int(a/2) then p:=' чётное'

                    else p:=' нечётное ';

    writeln('число  ',a,' ; ',k,' ; ',m,' ; ',p);

delay(32000);

End.

 

Задача  5.   Даны  два  числа  а и b .  Выдать  текстовой  ответ  какое  из  чисел      большее.  Предусмотреть  ситуацию  когда  числа  равны.(Задача  решена  двумя  способами.Посмотрите  в  чём отличие  между  ними). 

 

     var a,b,s:real;

Begin

     writeln(' Введите  число a ');

     readln(a);

     writeln(' Введите  число b ');

     readln(b);

     if a>b then writeln('число  а  большее')

            else

               if a=b then writeln('числа  равны')

                      else writeln('число b большее');

End.

 

 

     var a,b,s:real;

Begin

     writeln(' Введите  число a ');

     readln(a);

     writeln(' Введите  число b ');

     readln(b);

     if a>b then  writeln('число  а  большее');

     if a=b then  writeln('числа  равны');

     if a<b then  writeln('число  b  большее');

End.

 

Задача  6.   Даны  три  числа  а,b,c.  Выдать  текстовой  ответ  какое  из  чисел  (a,b или c) большее.

 

     var a,b,c,m:real;

Begin

     writeln(' Введите  числa a,b,c');

     readln(a,b,c);

     if a>b then m:=a else m:=b;

     if c>m then m:=c;

     if m=a then writeln('число  а  большее');

     if m=b then writeln('число  b  большее');

     if m=c then writeln('число  с  большее');

End.

 

Задача  7.   Составить  программу  которая  по  введённому  номеру  дня  недели  будет  выдавать  название  дня  недели  (задача  решена  двумя  способами).

 

program zadacha2_7a;

         var k:integer;

Begin

    writeln(' Введите  номер  дня  недели');

    readln(k);

    if k=1 then writeln('понедельник');

    if k=2 then writeln('вторник');

    if k=3 then writeln('среда');

    if k=4 then writeln('четверг');

    if k=5 then writeln('пятница');

    if k=6 then writeln('суббота');

    if k=7 then writeln('воскресенье');

    if (k<1) or (k>7)  then

                writeln('такого дня недели нет');

End.

 

program zadacha2_7b;

         var k:integer;

Begin

    writeln('введите  номер  дня  недели');

    readln(k);

    if k=1 then writeln('понедельник') else

      if k=2 then writeln('вторник')    else

        if k=3 then writeln('среда')      else

          if k=4 then writeln('четверг')    else

            if k=5 then writeln('пятница')   else

              if k=6 then writeln('суббота')  else

                if k=7   then  writeln('воскресенье')

                         else

                       writeln('такого  дня  недели  нет');

End.

 

 

Простые  и составные условия.

            Условия, которые мы до сих пор использовали являются простыми.

Если после служебного слова if проверяется только одно условие (а mod 3=0; a>b; k=1), то такое условие будем называть простым условием.

Если после служебного слова if возникает необходимость проверить сразу несколько условий, то группу таких условий будем называть составным условием.

Показать полностью

Просмотр содержимого документа
«Оператор ветвления в Pascal.»



Оператор ветвления в Pascal


Если в зависимости от первоначального условия должны выполняться различные выражения, то мы будем использовать условный оператор.

Структура условного оператора:

if then else

if then

if then elseзарезервированные слова (если, то, иначе)


Задача 1. Даны два числа. Ответить чему равно большее из них (найти максимальное).


var max,x,y:real;

Begin

writeln('Введите число x ');

readln(x);

writeln(' Введите число y ');

readln(y);

if xy then max:=x else max:=y;

writeln('большее из двух = ',max);

End.



Задача 2. Даны три числа. Найти максимальное.


var max,x,y,z:real;

Begin

writeln(' Введите три числа ');

readln(x,y,z);

if xy then max:=x else max:=y;

if zmax then max:=z;

writeln('большее из трёх =',max);

End.



Задача 3. Задано число a. Кратно ли оно 3.


var а:longint;

Begin

writeln(' Введите число');

readln(а);

if a mod 3 =0 then writeln(a,' кратно 3’)

else writeln(a,' не кратно 3’);

End.



Задача 2-4. Дано число. Дать характеристику числа:

  • положительное, отрицательное;

  • чётное, нечётное ;

  • целое, не целое.


uses crt;

var

a:real;

k,m,p:string;

Begin

writeln('Введите число');

readln(a);

if a

else k:=' положительное';

if a=int(a) then m:=' целое'

else m:='не целое';

if a/2=int(a/2) then p:=' чётное'

else p:=' нечётное ';

writeln('число ',a,' ; ',k,' ; ',m,' ; ',p);

delay(32000);

End.


Задача 5. Даны два числа а и b . Выдать текстовой ответ какое из чисел большее. Предусмотреть ситуацию когда числа равны.(Задача решена двумя способами.Посмотрите в чём отличие между ними).


var a,b,s:real;

Begin

writeln(' Введите число a ');

readln(a);

writeln(' Введите число b ');

readln(b);

if ab then writeln('число а большее')

else

if a=b then writeln('числа равны')

else writeln('число b большее');

End.



var a,b,s:real;

Begin

writeln(' Введите число a ');

readln(a);

writeln(' Введите число b ');

readln(b);

if ab then writeln('число а большее');

if a=b then writeln('числа равны');

if aчисло b большее');

End.


Задача 6. Даны три числа а,b,c. Выдать текстовой ответ какое из чисел (a,b или c) большее.


var a,b,c,m:real;

Begin

writeln(' Введите числa a,b,c');

readln(a,b,c);

if ab then m:=a else m:=b;

if cm then m:=c;

if m=a then writeln('число а большее');

if m=b then writeln('число b большее');

if m=c then writeln('число с большее');

End.


Задача 7. Составить программу которая по введённому номеру дня недели будет выдавать название дня недели (задача решена двумя способами).


program zadacha2_7a;

var k:integer;

Begin

writeln(' Введите номер дня недели');

readln(k);

if k=1 then writeln('понедельник');

if k=2 then writeln('вторник');

if k=3 then writeln('среда');

if k=4 then writeln('четверг');

if k=5 then writeln('пятница');

if k=6 then writeln('суббота');

if k=7 then writeln('воскресенье');

if (k7) then

writeln('такого дня недели нет');

End.


program zadacha2_7b;

var k:integer;

Begin

writeln('введите номер дня недели');

readln(k);

if k=1 then writeln('понедельник') else

if k=2 then writeln('вторник') else

if k=3 then writeln('среда') else

if k=4 then writeln('четверг') else

if k=5 then writeln('пятница') else

if k=6 then writeln('суббота') else

if k=7 then writeln('воскресенье')

else

writeln('такого дня недели нет');

End.



Простые и составные условия.

Условия, которые мы до сих пор использовали являются простыми.

Если после служебного слова if проверяется только одно условие (а mod 3=0; ab; k=1), то такое условие будем называть простым условием.

Если после служебного слова if возникает необходимость проверить сразу несколько условий, то группу таких условий будем называть составным условием.


Задача 8. Даны два числа а,b. Ответить одинакового ли знака введённые числа.

Например:

a

B

Ответ:

2

2

-2

-2

4

-4

4

-4

Одинакового

разного

разного

одинакового

var a,b:real;

Begin

writeln('Введите два числa');

readln(a,b);

if (a0) and (b0) then writeln('числа одного знака');

if (aчисла одного знака');

if (a0) and (bчисла разных знаков');

if (a0) then writeln('числа разных знаков');

End.

В примере можно видеть, что работать будет только одна строка из четырёх. Если первое и второе условия объединить, то программа станет более короткой.


var a,b:real;

Begin

writeln('Введите два числa');

readln(a,b);

if ((a0)and(b0)) or ((a

then writeln('числа одного знака')

else writeln('числа разных знаков');

End.

Данную задача решена проще:

var a,b:real;

Begin

writeln('Введите два числa');

readln(a,b);

if a*b0 then writeln('числа одного знака')

else writeln('числа разных знаков');

End.


Операторные скобки

После служебного слова then, или после служебного else будет выполняться только один оператор. Если необходимо, чтобы выполнялось несколько операторов их нужно взять в операторные скобки

begin


end;

Причем, end желательно записывать под begin


Задача 9.Составить программу решающую квадратное уравнение.


uses crt;

var a,b,c:integer;

x,d,x1,x2:real;

Begin

writeln('введите коэффициенты а,b,c');

readln(a,b,c);

d:=b*b-4*a*c; {вычисление дискриминанта}

if d

writeln('уравнение не имеет корней');

if d=0 then

begin

writeln('уравнение имеет 1 корень');

x:=-b/(2*a);

writeln('x= ',x);

end;

if d0 then

begin

writeln('уравнение имеет 2 корня');

x1:=(-b+sqrt(d))/(2*a);

x2:=(-b-sqrt(d))/(2*a);

writeln('x1= ',x1);

writeln('x2= ',x2);

end;

End.






Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!