шаблоны сайт визитка joomla
Скачать шаблоны Joomla 3.5 бесплатно
Вы находитесь здесь:Главная»Учебные материалы»Pascal»Pascal. Ветвление и условные операторы

Pascal. Ветвление и условные операторы

Ветвление – это однак из команд (действий) алгоритма, в которой делается выбор между двумя группами команд, опираясь приэтом на какое-то условие.  Для простоты понимания приведем пример из жизни:  ЕСЛИ на улице идет дождь, ТО я возьму зонт, ИНАЧЕ пойду без зонта.  В словесной форме ветвление выглядит так:

ЕСЛИ <условие> ТО <команды, выполняемые при соблюдении условия> ИНАЧЕ <команды, выполняемые при несоблюдении условия>

 

img19

На языке Pascal ветвление выглядит также. Запомните! Перед else никогда не ставят точку с запятой!

if <условие> then <команды, выполняемые при соблюдении условия> else <команды, выполняемые при несоблюдении условия>

 Примеры задач и программ на ветвление:

 Задача 1. Даны два числа. Вывести на экран то из них, которое больше.
program MaxOfTwo;

var
 a, b: integer;
begin
  readln(a, b);
  if a > b then begin
     writeln(a)
  end
  else begin
     writeln(b)
  end
end.

 

Задача 2. Даны три числа. Вывести на экран то из них, которое больше.

pascal7

program MaxOfThree;
var
 a, b, c: integer;
begin
  readln(a, b, c);
  if a > b then begin
    if a > c then begin
           writeln(a)
      end
      else begin
            writeln(c)
         end
      end
      else begin
         if b > c then begin
            writeln(b)
      end
      else begin
        writeln(c)
      end
  end
end.

 

Задача 3. Вывести название дня недели по его номеру.

program DaysOfTheWeek;
var
 i: byte;
begin
  readln(i);
  case i of
     1: writeln('Monday');
     2: writeln('Tuesday');
     3: writeln('Wednesday');
     4: writeln('Thursday');
     5: writeln('Friday');
     6: writeln('Saturday');
     7: writeln('Sunday')
     else writeln('This day of the week does not exist!')
  end
end.

 

Задача 4. Дано четырехзначное число. Проверить, является ли оно палиндромом. Примечание: палиндромом называется число, слово или текст, которые одинакового читаются слева направо и справа налево. Например, в нашем случае это числа 1441, 5555, 7117 и т. д.

program PalindromeNum;
var
  n: word;
  a, b: byte;
begin
  readln(n);
  a := n mod 10;
  n := n div 10;
  b := n mod 10;
  n := n div 10;
  a := 10 * a + b;
  writeln(n = a)
end.

 

Задача 5. Дано четырехзначное число. Проверить, является ли оно «счастливым билетом». Примечание: счастливым билетом называется число, в котором: а) при четном количестве цифр в числе сумма цифр его левой половины равна сумме цифр его правой половины; б) при нечетном количестве цифр – то же самое, но с отбрасыванием серединной цифры. Например, рассмотрим число 1322. Его левая половина равна 13, а правая – 22, и оно является счастливым билетом (т. к. 1 + 3 = 2 + 2). Аналогично: 1735 (1 + 7 = 3 + 5), 1111 (1 + 1 = 1 + 1) и т. д.

program HappyTicket;
var
  n: word;
  left, right: byte;
begin
  readln(n);
  right := n mod 10;
  n := n div 10;
  right := right + n mod 10;
  n := n div 10;
  left := n mod 10;
  n := n div 10;
  left := left + n;
  writeln(left = right)
end.

 

Задача 6. Дано число типа byte. Проверить, является ли палиндромом его двоичное представление с учетом того, что сохранены старшие нули. Пример таких чисел: 102 (т. к. 102 = 0110 01102, а это палиндром), 129 (129 = 1000 00012) и т. д.

program BinaryPalindrome;
var
  n, a, b, c, d: byte;
begin
  readln(n);
  a := n mod 2;
  n := n div 2;
  b := n mod 2;
  n := n div 2;
  c := n mod 2;
  n := n div 2;
  d := n mod 2;
  n := n div 2;
  a := 8 * a + 4 * b + 2 * c + d;
  writeln(n = a)
end.

 

Задача 7. Даны вещественные числа ab и c, причем отлично от 0. Решить квадратное уравнение ax2 + bx + c = 0 или сообщить о том, что действительных решений нет.

pascal12 4

program QuadraticEquation;
var
  a, b, c, d, x1, x2: real;
begin
  readln(a, b, c);
  d := b * b - 4 * a * c;
  if d >= 0 then begin
    if d <> 0 then begin
       x1 := (-b + sqrt(d)) / 2 * a;
       x2 := (-b - sqrt(d)) / 2 * a;
       writeln('x1 = ', x1:4:2, ', x2 = ', x2:4:2)
    end
    else begin
       x1 := -(b / 2 * a);
       writeln('x = ', x1:4:2)
    end
  end
  else begin
     writeln('No real solutions!');
  end
end.

 

Похожие материалы (по тегу)

Другие материалы в этой категории: « Pascal. Циклы Pascal. Задачи на линейные алгоритмы »

Новости о нас

КАЖДУЮ ПЯТНИЦУ - бесплатное занятие по 3D-моделированию с 16:40 до 18:10. Только для учащихся нашего технопарка! Подробнее
 Региональный отборочный фестиваль "Робофест-Стерлитамак 2018" состоится 25-26 января в г.... Подробнее
В сезоне 2017/18 фестиваля «РобоФест Стерлитамак 2018» Региональный учебно-тренировочный сбор... Подробнее
ВНИМАНИЕ учащимся! Объявляем конкурс рисунков на тему "Робот моей мечты", который пройдет по двум... Подробнее
В нашем технопарке Толтек СФ БашГУ пройдут открытые ОТБОРОЧНЫЕ СОРЕВНОВАНИЯ для ВСЕХ возрастов и... Подробнее

Наши партнеры

 TZOyoOCZ8y0 logotip novy SF BashGU  utv logo  CityMoll  VolnoeDelo