Упражнение 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.

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