Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Исправление ошибок ввода: Паскаль в Dev-Pas 1.9.2 без сбоев

Delphi , Синтаксис , Ошибки и Исключения

Вопрос о работе с ошибками ввода в языках программирования является актуальным для многих разработчиков. Особенно это важно, когда речь идет о языках, таких как Паскаль, которые не имеют встроенной поддержки конструкций try...catch, как, например, в C# или Java. В данной статье мы рассмотрим, как можно избежать сбоев программы в среде Dev-Pas 1.9.2 при вводе символов или значений, не соответствующих ожидаемым.

Проблема пользователя

Пользователь Dev-Pas 1.9.2 столкнулся с проблемой, при которой программа могла завершиться сбоем при вводе символов или значений, которые не являются целыми числами в допустимом диапазоне. Пример кода, который приводит к такой ошибке, выглядит следующим образом:

Function GetMenuChoice : Integer;
Var
  OptionChosen : Integer;
Begin
  Write('Please enter your choice: ');
  Readln(OptionChosen);
  If (OptionChosen < 1) Or ((OptionChosen > 4) And (OptionChosen <> 9))
    Then
      Begin
        Writeln;
        Writeln('That was not one of the allowed options.  Please try again: ');
      End;
  GetMenuChoice := OptionChosen;
End;

Решение проблемы

Для решения проблемы ввода некорректных данных можно изменить тип переменной OptionChosen на Char, что позволит обрабатывать ввод как строку символов. В таком случае, можно использовать цикл repeat...until для повторного запроса ввода до тех пор, пока не будет введен один из допустимых символов. Пример такого решения:

Function GetMenuChoice : Char;
Var
  OptionChosen : Char;
Begin
  repeat
    Write('Please enter your choice: ');
    Readln(OptionChosen);
    If not (OptionChosen in ['1'..'4', '9'])
      Then
        Begin
          Writeln;
          Writeln('That was not one of the allowed options.  Please try again: ');
        End;
  until OptionChosen in ['1'..'4', '9'];
  GetMenuChoice := OptionChosen;
End;

Если же необходимо получить целочисленное значение, можно использовать функцию Ord, которая возвращает числовое значение символа, и преобразовать его в целое число, используя разность кодов символа и нуля:

GetMenuChoice := Ord(OptionChosen) - Ord('0');

Альтернативные подходы

В дополнение к предложенному решению, можно использовать функцию Read для чтения одиночного символа, что позволит избежать ввода символа перевода строки. Также, можно использовать функцию Val, которая преобразует строку в числовое значение, и таким образом предотвратить ошибку ввода:

GetMenuChoice := Val(OptionChosen);

Однако, стоит помнить, что использование Val может потребовать от пользователя нажатия клавиши перевода строки после ввода числа.

Заключение

В данной статье мы рассмотрели, как можно обработать ошибки ввода в среде Dev-Pas 1.9.2, используя примеры кода на языке Паскаль. Предложенные решения могут быть полезны не только для начинающих разработчиков, но и для опытных программистов, сталкивающихся с аналогичными проблемами в своих проектах.

Создано по материалам из источника по ссылке.

Статья рассматривает методы исправления ошибок ввода в программе на языке Паскаль в среде разработки Dev-Pas 1.9.2 для предотвращения аварийных завершений программы.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




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


:: Главная :: Ошибки и Исключения ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-02-05 12:49:10/0.0057241916656494/1