К содержанию

Упражнение 3

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

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

Вывод на экран результатов организуем с помощью стандартных процедур вывода Writeln, а для ввода строк и преобразования их в числа создадим процедуру Inp_Str. Для передачи данных между процедурой и основной программой введем формальные параметры-переменные S типа string и X типа integer.

Для преобразования введенной строки в число применим стандартную функцию Val, а для анализа операции преобразования строки в число введем локальную переменную Code целого типа. После преобразования строки в число проверим значение переменной Code, если оно не равно 0, то значит в строке не все символы являются цифрами. Значение Code укажет позицию первого символа в строке, не являющегося цифрой. В этом случае напечатаем на экране сообщение об ошибке и укажем позицию неверно введенного символа в строке, после чего прервем работу программы, используя стандартную процедуру Halt. Текст процедуры Inp_Str будет выглядеть следующим образом:

procedure Inp_Str(var S: string: var X:integer);

{Процедура ввода строки цифр и преобразования строки в число}

var

Cod: integer; {Результат преобразования строки в число}

begin

Write(‘Введите строку цифр’);

Readln(S);

VAR(S, X, Cod); {Преобразование строки S в целое число X}

if Cod <> 0 then {Если не все символы в строке являются цифрами}

begin

Writeln(‘Ошибка! В позиции ‘.Cod.’ введенной строки не цифра’);

Halt(l); {Прерывание программы}

end;

end;

С учетом вышесказанного полный текст программы решения задачи будет записан следующим образом:

program Demo_Val_Str;

var SI. S2 : string:

XI, X2 : integer;

procedure Inp_Str(var S; string; var X:integer);

{Процедура ввода строки цифр и преобразования строки в число}

var

Cod: integer; {Результат преобразования строки в число}

begin

Write(‘Введите строку цифр’);

Readln(S):

VaR(S, X, Cod); {Преобразование строки S в целое число X}

if Cod <> 0 then {Если не все символы в строке являются цифрами}

begin

Writeln(‘Ошибка! В позиции ‘.Cod,’ введенной строки не цифра’);

Halt(l); {Прерывание программы}

end;

end;

begin {Начало основной программы}

Inp_Str(Sl,Xl); {Вызов процедуры ввода строки с фактическими параметрами-переменными S1.X1}

Inp_Str(S2,X2); {Вызов процедуры ввода строки с фактическими параметрами-переменными S2,X2}

Writeln(‘Результат склеивания строк -> ‘,Concat(Sl.S2));

Writelп(‘Сумма введенных чисел= ‘.Х1+Х2);

end.

Запустите интегрированную среду программирования. Введите текст программы Demo_Val_Str и запишите файл на диск под соответствующим именем, а затем откомпилируйте его. После успешного завершения компиляции проверьте работу программы с отладкой в пошаговом режиме, отслеживая значения переменных SI, S2, XI, Х2.

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

Частые вопросы

Чем страница «Упражнение 3» отличается от главной Языки программирования Pascal и Delphi?

Это отдельная карточка или рубрика, а не дубль главной. Канонический адрес — текущий URL без www и с https.

Стоит ли покупать «Упражнение 3» только по этому тексту?

Нет. Текст помогает сравнить варианты, но финальный выбор зависит от вашего сценария, бюджета и актуальной оферты продавца.

Есть ли смысл читать FAQ, если уже есть рейтинг?

Да. FAQ отвечает на типовые вопросы выбора, рейтинг — на сравнение позиций. Это разные блоки одной страницы.

Что это за материал «Упражнение 3»?

Это редакционный разбор на Языки программирования Pascal и Delphi: коротко, кому подходит тема, какие критерии сравнения важны и где проверить актуальные условия у поставщика.