Условный оператор. Решение тематических задач

Для решения задач этого раздела я рекомендую ознакомиться с разделом "Условный оператор и оператор выбора: введение".

  • Написать программу, которая сравнивает два введенных с клавиатуры целых числа. Программа должна указать, какое число больше, или, если числа равны, вывести соответствующее сообщение.

  • Введите два целых числа и нажмите Enter.
    -> 34 67
    34 меньше 67

  • with Ada.Text_IO; use Ada.Text_IO;
    with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
     
    procedure main is
        A, B : Integer;
    begin
        Put_Line("Введите в одной строке два целых числа и нажмите Enter.");
        Put("-> ");
        Get(A); Get(B); --Вводим 2 числа
        if A > B then
            Put(Item =>; A, Width =>; 1);
            Put(" больше ");
            Put(Item => B, Width => 1);
        elsif A < B then
            Put(Item => A, Width => 1);
            Put(" меньше ");
            Put(Item => B, Width => 1);
         else
             Put("Введённые числа равны!");
         end if;
    end main;


  • Даны три целых числа. Найдите наибольшее из них (программа должна вывести ровно одно целое число). Под наибольшим в этой задаче понимается число, которое не меньше, чем любое другое.

  • Введите три целых числа и нажмите Enter.
    -> 1 2 3
    Максимальное из трёх чисел: 3
  • with Ada.Text_IO; use Ada.Text_IO;
    with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
     
    procedure main is
        A, B, C : Integer;
        max : Integer;
    begin
        Put_Line("Введите в одной строке три целых числа и нажмите Enter.");
        Put("-> ");
        Get(A); Get(B); Get(C);  --Вводим три целых числа
        max := A;                --по умолчанию считаем, что число A - максимальное
        if B > max then          --Если B больше максимального, то
            max := B;            --максимальное число равно B
        end if;
        if C > max then          --Если C больше максимального, то
            max := C;            --максимальное число равно C
        end if;
        Put("Максимальное из трёх чисел:" & Integer'image(max));
    end main;


  • Даны три натуральных числа A, B, C. Определите, существует ли треугольник с такими сторонами. Если треугольник существует, выведите сообщение, что треугольник с такими сторонам существует, иначе выведите, что треугольник не существует.

  • Введите три стороны треугольника и нажмите Enter.
    -> 3 4 5
    Треугольник со сторонами 3, 4, 5 существует.
  • Треугольник — это три точки, не лежащие на одной прямой. Треугольник существует только тогда, когда сумма любых двух его сторон больше третьей.

  • with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;  --Для чтения целых чисел
    with Ada.Text_IO; use Ada.Text_IO;                  --Для вывода строк
     
    procedure main is
        a, b, c : Integer;
    begin
        Put_Line("Введите три стороны треугольника и нажмите Enter.Enter.");
        Put("-> ");
        Get(a); Get(b); Get(c);                                 --Считываем стороны треугольника
        if a + b > c and then b + c > a and then c + a > b then --Проверка всех условий в одной строке
            Put("Треугольник со сторонами" & Integer'image(a) & "," & Integer'image(b) & "," & Integer'image(c) & " существует");
        else
            Put("Треугольник со сторонами" & Integer'image(a) & "," & Integer'image(b) & "," & Integer'image(c) & " не существует");
        end if;
    end main;


  • Даны три целых числа. Определите, сколько среди них совпадающих. Программа должна вывести одно из чисел: 3 (если все совпадают), 2 (если два совпадает) или 0 (если все числа различны).

  • Введите три целых числа и нажмите Enter.
    -> 1 2 3
    0
  • with Ada.Text_IO; use Ada.Text_IO;
    with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
     
    procedure Main is
        A, B, C: Integer;
    begin
        Put_Line("Введите три целых числа и нажмите Enter.");
        Put("-> ");
        Get(A); Get(B); Get(C);
        if A = B and then A = C then            --Если совпадают все три числа
            Put(Item => 3, Width => 1);
        elsif A = B or A = C or B = C then      --Если совпадают два числа
            Put(Item => 2, Width => 1);
        else                                    --Если одинаковых чисел нет
            Put(Item => 0, Width => 1);
        end if;
    end Main;


  • Шахматная ладья ходит по горизонтали или вертикали. Даны две различные клетки шахматной доски, определите, может ли ладья попасть с первой клетки на вторую одним ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки. Программа должна вывести "ДА" если из первой клетки ходом ладьи можно попасть во вторую или "НЕТ" в противном случае.

  • Введите номера столбцов и строк для двух клеток:
    Введите номера столбца и строки для первой клетки и нажмите : 4 4
    Введите номера столбца и строки для второй клетки и нажмите : 5 5
    НЕТ
  • with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
    with Ada.Text_IO; use Ada.Text_IO;
     
    procedure Main is
        subtype checkBoard is Integer range 1..8;
        A, B, C, D: checkBoard;
    begin
        Put_Line("Введите номера столбцов и строк для двух клеток:");
        Put("Введите номера столбца и строки для первой клетки и нажмите : ");
        Get(A); Get(B);
        Put("Введите номера столбца и строки для второй клетки и нажмите : ");
        Get(C); Get(D);
        if A = C or B = D then
            Put("ДА");
        else
            Put("НЕТ");
        end if;
    end Main;


  • Шахматный король ходит по горизонтали, вертикали и диагонали, но только на 1 клетку. Даны две различные клетки шахматной доски, определите, может ли король попасть с первой клетки на вторую одним ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки. Программа должна вывести "ДА", если из первой клетки ходом короля можно попасть во вторую или "НЕТ" в противном случае.

  • Введите номера столбцов и строк для двух клеток:
    Введите номера столбца и строки для первой клетки и нажмите : 4 4
    Введите номера столбца и строки для второй клетки и нажмите : 5 5
    ДА
  • with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
    with Ada.Text_IO; use Ada.Text_IO;
     
    procedure main is
        subtype checkBoard is Integer range 1..8;
        A, B, C, D: checkBoard;
    begin
        Put_Line("Введите номера столбцов и строк для двух клеток:");
        Put("Введите номера столбца и строки для первой клетки и нажмите : ");
        Get(A); Get(B);
        Put("Введите номера столбца и строки для второй клетки и нажмите : ");
        Get(C); Get(D);
        if abs(A - C) <= 1 and then abs(B - D) <= 1 then    -- команда abs() возвращает абсолютное
                                                            --значение (модуль) числа
            Put("ДА");
        else
            Put("НЕТ");
        end if;
    end main;


  • Шахматный слон ходит по диагонали. Даны две различные клетки шахматной доски, определите, может ли слон попасть с первой клетки на вторую одним ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки. Программа должна вывести "ДА", если из первой клетки ходом слона можно попасть во вторую или "Нет" в противном случае.

  • Введите номера столбцов и строк для двух клеток:
    Введите номера столбца и строки для первой клетки и нажмите : 4 4
    Введите номера столбца и строки для второй клетки и нажмите : 5 5
    ДА
  • with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
    with Ada.Text_IO; use Ada.Text_IO;
     
    procedure main is
        subtype checkBoard is Integer range 1..8;
        A, B, C, D: checkBoard;
    begin
        Put_Line("Введите номера столбцов и строк для двух клеток:");
        Put("Введите номера столбца и строки для первой клетки и нажмите : ");
        Get(A); Get(B);
        Put("Введите номера столбца и строки для второй клетки и нажмите : ");
        Get(C); Get(D);
        if abs(a - c) = abs(b - d) then
            Put("ДА");
        else
            Put("НЕТ");
        end if;
    end main;


  • Шахматный ферзь ходит по диагонали, горизонтали или вертикали. Даны две различные клетки шахматной доски, определите, может ли ферзь попасть с первой клетки на вторую одним ходом.

    Формат входных данных:
    Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки.
    Формат выходных данных:
    Программа должна вывести YES, если из первой клетки ходом ферзя можно попасть во вторую или NO в противном случае.

  • Пример 1:
    Введите номера столбцов и строк для двух клеток:
    Введите номера столбца и строки для первой клетки и нажмите : 1 1
    Введите номера столбца и строки для второй клетки и нажмите : 2 2
    ДА

    Пример 2:
    Введите номера столбцов и строк для двух клеток:
    Введите номера столбца и строки для первой клетки и нажмите : 1 1
    Введите номера столбца и строки для второй клетки и нажмите : 2 3
    НЕТ

  • with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
    with Ada.Text_IO; use Ada.Text_IO;
     
    procedure Main is
        subtype checkBoard is Integer range 1..8;
        A, B, C, D: checkBoard;
    begin
        Put_Line("Введите номера столбцов и строк для двух клеток:");
        Put("Введите номера столбца и строки для первой клетки и нажмите : ");
        Get(A); Get(B);
        Put("Введите номера столбца и строки для второй клетки и нажмите : ");
        Get(C); Get(D);
        if abs(A - C) = abs(B - D) or A = D or B = C then
            Put("ДА");
        else
            Put("НЕТ");
        end if;
    end Main;


  • Шахматный конь ходит буквой “Г” — на две клетки по вертикали в любом направлении и на одну клетку по горизонтали, или наоборот. Даны две различные клетки шахматной доски, определите, может ли конь попасть с первой клетки на вторую одним ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки. Программа должна вывести YES, если из первой клетки ходом коня можно попасть во вторую или NO в противном случае.

  • Пример 1:
    Введите номера столбцов и строк для двух клеток:
    Введите номера столбца и строки для первой клетки и нажмите : 1 1
    Введите номера столбца и строки для второй клетки и нажмите : 1 4
    НЕТ

    Пример 2:
    Введите номера столбцов и строк для двух клеток:
    Введите номера столбца и строки для первой клетки и нажмите : 1 1
    Введите номера столбца и строки для второй клетки и нажмите : 8 8
    НЕТ

  • with Ada.Text_IO; use Ada.Text_IO;
    with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
     
    procedure main is
        subtype checkBoard is Integer range 1..8;
        A, B, C, D: Integer;
    begin
        Put_Line("Введите номера столбцов и строк для двух клеток:");
        Put("Введите номера столбца и строки для первой клетки и нажмите : ");
        Get(A); Get(B);
        Put("Введите номера столбца и строки для второй клетки и нажмите : ");
        Get(C); Get(D);
        if abs(A - C) = 2 and then abs(B - D) = 1 then
            Put("ДА");
        elsif abs(A - C) = 1 and then abs(B - D) = 2 then
            Put("ДА");
        else
            Put("НЕТ");
        end if;
    end main;


  • Шоколадка имеет вид прямоугольника, разделенного на N×M долек. Шоколадку можно один раз разломить по прямой на две части. Определите, можно ли таким образом отломить от шоколадки ровно K долек. Программа получает на вход три числа: N, M, K. Программа должна вывести одно из двух слов: "ДА" или "Нет".

  • Пример 1:
    Количество долек по горизонтали: 4
    Количество долек по вертикали: 2
    Сколько долек нужно отделить: 6
    ДА

    Пример 2:
    Количество долек по горизонтали: 2
    Количество долек по вертикали: 10
    Сколько долек нужно отделить: 7
    НЕТ

  • with Ada.Text_IO; use Ada.Text_IO;
    with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
     
    procedure Main is
        N, M, K: Integer;
    begin
     
        Put("Количество долек по горизонтали: ");
        Get(N);
        Put("Количество долек по вертикали: ");
        Get(M);
        Put("Сколько долек нужно отделить: ");
        Get(K);
        if K > M * N then         --Если от шоколадки просят отломить больше, чем сама шоколадка
            Put("НЕТ");
        elsif K rem N = 0 and then K >= N then  --Отламываем по горизонтали
            Put("ДА");
        elsif K rem M = 0 and then K >= M then  --Отламываем по вертикали
            Put("ДА");
        else
            Put("НЕТ");
        end if;
    end Main;


  • Яша плавал в бассейне размером N×M метров и устал. В этот момент он обнаружил, что находится на расстоянии X метров от одного из длинных бортиков (не обязательно от ближайшего) и Y метров от одного из коротких бортиков. Какое минимальное расстояние должен проплыть Яша, чтобы выбраться из бассейна на бортик? Программа получает на вход числа N, M, X, Y. Программа должна вывести число метров, которое нужно проплыть Яше до бортика.

  • Ширина бассейна: 23
    Длина бассейна: 52
    Расстояние от Яши до длинного бортика: 8
    Расстояние от Яши до короткого бортика: 43
    Нужно проплыть минимум, чтобы выбраться из бассейна: 8
  • Возможно, что для решения задачи Вам нужно будет поменять местами 2 переменные. Этот алгоритм выглядит примерно так:

    a, b, tmp : Integer;  --Объявление переменных. Две основных и одна вспомогательная
    a := 3;               --Инициализация переменной a
    b := 5;               --Инициализация переменной b
    --Непосредственно сам алгоритм:
    tmp := a;     --Теперь tmp = 3 и a = 3
    a := b;       --Теперь a = 5 и b = 5;
    b := tmp;     --Теперь b = 3

  • with Ada.Text_IO; use Ada.Text_IO;
    with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
     
    procedure Main is
        N, M, X, Y : Integer;
            -- N - короткий бортик, M - длинный бортик:
            -- X - Расстояние до одного из длинных бортиков
            -- Y - Расстояние до одного из коротких бортиков
        Tmp : Integer;
    begin
        Put("Ширина бассейна: "); Get(N);
        Put("Длина бассейна: "); Get(M);
        Put("Расстояние от Яши до длинного бортика: "); Get(X);
        Put("Расстояние от Яши до короткого бортика: "); Get(Y);
        if N > M then                --Если при вводе перепутаны бортики, то меняем их местами:
            Tmp := M;            --Сохраняем длину M во временную переменную
            M := N;              --Присваиваем переменной M новое значение
            N := Tmp;            --Восстанавливаем длину M в переменной N
        end if;
        Tmp := X;                   --Предположим, что минимальное расстояние равно X
        if abs(N - X) < X then      --Если до второго длинного бортика расстояние меньше X, то
            Tmp := N - X;           --минимальное расстояние равно расстоянию до второго длинного бортика
        end if;
        if Y < Tmp then             --Если до короткого бортика расстояние меньше найденного выше
                                    --минимального, то
            Tmp := Y;               --Минимальное расстояние равно Y
        end if;
        if abs(M - Y) < Tmp then --Если до второго короткого бортика плыть ближе, то
            Tmp := abs(M - Y); --минимальное расстояние равно расстоянию до второго короткого бортика
        end if;
        Put("Нужно проплыть минимум, чтобы выбраться из бассейна: ");
        Put(Item => Tmp, Width => 1);
    end Main;


  • Электронные часы показывают время в формате h:mm:ss (от 0:00:00 до 23:59:59), то есть сначала записывается количество часов, потом обязательно двузначное количество минут, затем обязательно двузначное количество секунд. Количество минут и секунд при необходимости дополняются до двузначного числа нулями. С начала суток прошло N секунд. Выведите, что покажут часы. На вход дается натурально число N, не превосходящее 107 (10000000). Выведите ответ на задачу.

  • Пример ввода 1:
    3602
    Пример вывода 1:
    1:00:02

    Пример ввода 2:
    129700
    Пример вывода 2:
    12:01:40

  • with Ada.Long_Integer_Text_IO; use Ada.Long_Integer_Text_IO;
    with Ada.Text_IO; use Ada.Text_IO;
    procedure Main is
        subtype Sub_LI is Long_Integer range 1..10000000;
        N : Sub_LI;
        h, m, s: Long_Integer;
    begin
        Get(N);
     
        h := N / 3600;        --Получаем часы. Остаток от деления отбрасывается
        N := N - h * 3600;    --Получаем оставшиеся секунды (за вычетом часов)
     
        if h > 24 then        --Так как часы не могут показывать > 24, приводим всё в удобочитаемый вид
            h := h rem 24;    --Остаток от деления на 24 даст точное количество часов
        elsif h = 24 then
            h := 0;
        end if;
     
        m := N / 60;          --Получаем минуты
        s := N rem 60;        --Получаем секунды
     
        Put(Item => h, Width => 1); Put(":");    --Вывод часов и ":"
        if m < 10 then --Если количество минут меньше 10, выводим ведущий 0
            Put(Item => 0, Width => 1);
        end if;
        Put(Item => m, Width => 1); Put(":");    --Вывод минут и ":"
        if s < 10 then --Если количество секунд меньше 10, выводим ведущий 0
            Put(Item => 0, Width => 1);
        end if;
        Put(Item => s, Width => 1);              --Вывод секунд
    end Main;


  • Дано три числа. Расположите их в порядке возрастания.
  • Пример ввода:
    1 2 1
    Пример вывода:
    1 1 2
  • with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
    with Ada.Text_IO; use Ada.Text_IO;
     
    procedure Main is
        A, B, C : Integer;
        min, mid, max : Integer;
    begin
        Get(A); Get(B); Get(C);
            --Ищем минимальное значение
        min := A;
        if B < min then min := B; end if;
        if C < min then min := C; end if;
        --Ищем максимальное значение
        max := A;
        if B > max then max := B; end if;
        if C > max then max := C; end if;
            --Ищем среднее значение
        mid := A;
        if B > min and B < max then
            mid := B;
        end if;
        if C > min and C < max then
            mid := C;
        end if;
        Put(Item => min, Width => 1);
        Put(" ");
        Put(Item => mid, width => 1);
        Put(" ");
        Put(Item => max, Width => 1);
    end Main;


  • Есть две коробки, первая размером A1×B1×C1, вторая размером A2×B2×C2. Определите, можно ли разместить одну из этих коробок внутри другой, при условии, что поворачивать коробки можно только на 90 градусов вокруг ребер. Программа получает на вход числа A1, B1, C1, A2, B2, C2. Программа должна вывести одну из следующих строчек:
    - "Коробки равны", если коробки одинаковые,
    - "Первая коробка меньше второй", если первая коробка может быть положена во вторую,
    - "Первая коробка больше второй", если вторая коробка может быть положена в первую.

  • Пример 1:
    Размеры первой коробки: 1 2 3
    Размеры второй коробки: 3 2 1
    Коробки равны

    Пример 2:
    Размеры первой коробки: 2 2 3
    Размеры второй коробки: 3 2 1
    Первая коробка больше второй

  • with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
    with Ada.Text_IO; use Ada.Text_IO;
     
    procedure main is
        A1, B1, C1, A2, B2, C2 : Integer;
        min, max, mid, tmp : Integer;
    begin
        Get(A1); Get(B1); Get(C1); Get(A2); Get(B2); Get(C2);
        --Приводим грани в соответствие по длинам A1 => A2, B1 => B2, C1 => C2:
        --A1 и A2 - самые длинные, C1 и C2 - самые короткие
        -- "Крутим" первый ящик:
        min := A1;
        mid := B1;
        max := C1;
        if B1 < min then
            mid := min;
            min := B1;
        end if;
        if C1 < min then
            max := min;
            min := C1;
        end if;
        if mid > max then
            tmp := mid;
            mid := max;
            max := tmp;
        end if;
        A1 := min;
        B1 := mid;
        C1 := max;
        -- "Крутим" второй ящик:
        min := A2;
        mid := B2;
        max := C2;
        if B2 < min then
            mid := min;
            min := B2;
        end if;
        if C2 < min then
            max := min;
            min := C2;
        end if;
        if mid > max then
            tmp := mid;
            mid := max;
            max := tmp;
        end if;
        A2 := min;
        B2 := mid;
        C2 := max;
        --Проверка соответствия ящиков и вывод результата:
        if A1 = A2 and then B1 = B2 and then C1 = C2 then
            Put_Line("Коробки равны");
        elsif A1 >= A2 and then B1 >= B2 and then C1 >= C2 then
            Put_Line("Первая коробка больше второй");
        elsif A1 <= A2 and then B1 <= B2 and then C1 <= C2 then
            Put_Line("Первая коробка меньше второй");
        end if; 
    end main;


  • Написать программу, которая вычисляет стоимость междуго­роднего телефонного разговора (цена одной минуты определяется расстоянием до города, в котором находится абонент). Исходными данными для программы являются код города и длительность разговора. Ниже приведены коды некоторых городов и рекомендуемый вид экрана во время работы программы:

    Город Код Цена минуты (руб.)
    Владивосток 423 4
    Москва 095 2
    Мурманск 815 3
    Самара 846 1

  • Вычисление стоимости разговора по телефону.
    Введите исходные данные:
    Код города -> 423
    Длительность (целое количество минут) -> 3
    Город: Владивосток
    Цена минуты: 4 руб.
    Стоимость разговора: 12 руб.
  • with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
    with Ada.Text_IO; use Ada.Text_IO;
     
    procedure Main is
        Code, Len : Integer;
    begin
        Put_Line("Вычисление стоимости разговора по телефону.");
        Put_Line("Введите исходные данные:");
        Put("Код города -> "); Get(Code);
        Put("Длительность (целое количество минут) -> "); Get(len);
        case Code is
            when 423 => Put_Line("Город: Владивосток");
                        Put_Line("Цена минуты: 4 руб.");
                        Put("Стоимость разговора: ");
                        Put(Item => len * 4, Width => 1); Put_Line(" руб.");
            when 095 => Put_Line("Город: Москва");
                        Put_Line("Цена минуты: 2 руб.");
                        Put("Стоимость разговора: ");
                        Put(Item => len * 2, Width => 1); Put_Line(" руб.");
            when 815 => Put_Line("Город: Мурманск");
                        Put_Line("Цена минуты: 3 руб.");
                        Put("Стоимость разговора: ");
                        Put(Item => len * 3, Width => 1); Put_Line(" руб.");
            when 846 => Put_Line("Город: Самара");
                        Put_Line("Цена минуты: 1 руб.");
                        Put("Стоимость разговора: ");
                        Put(Item => len, Width => 1); Put_Line(" руб.");
            when others => Put("Города с таким кодом в базе нет! Попробуйте ещё.");
        end case;
    end Main;


В разделе "Шпаргалка" кратко описаны операторы if и case, функция abs() и алгоритм обмена переменных местами.

One comment on “Условный оператор. Решение тематических задач

  1. Предлагаю решение задачи 15 изложить в следующей редакции
    ------------------------------------------------

    with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
    with Ada.Text_IO; use Ada.Text_IO;

    procedure Program is
    Code, Duration : Integer;
    begin
    Put_Line ("Вычисление стоимости разговора по телефону.");
    Put_Line ("Введите исходные данные:");
    Put ("Код города -> "); Get (Code);
    Put ("Длительность (целое количество минут) -> "); Get (Duration);
    case Code is
    when 423 =>
    Put_Line ("Город: Владивосток");
    Put_Line ("Цена минуты: 4 руб.");
    Put ("Стоимость разговора: ");
    Put (Item => Duration * 4, Width => 1); Put_Line (" руб.");
    when 495 | 499 => -- у Москвы два кода зоны
    Put_Line ("Город: Москва");
    Put_Line ("Цена минуты: 2 руб.");
    Put ("Стоимость разговора: ");
    Put (Item => Duration * 2, Width => 1); Put_Line (" руб.");
    when 815 =>
    Put_Line ("Город: Мурманск");
    Put_Line ("Цена минуты: 3 руб.");
    Put ("Стоимость разговора: ");
    Put (Item => Duration * 3, Width => 1); Put_Line (" руб.");
    when 846 =>
    Put_Line ("Город: Самара");
    Put_Line ("Цена минуты: 1 руб.");
    Put ("Стоимость разговора: ");
    Put (Item => Duration, Width => 1); Put_Line (" руб.");
    when others =>
    Put ("Города с кодом " & Integer'Image (Code) &
    " в базе нет! Попробуйте ещё.");
    end case;
    end Program;

    ------------------------------------------------
    Изменения:
    1. У Москвы два кода
    2. Более дружественный вывод сообщения об отсутствии кода города.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *