03.02.2010, 15:16
общий
это ответ
Здравствуйте, Мальков Иван Сергеевич.
Собственно решение задачи приведено ниже.
Для удобства пользователя можно еще накрутить вокруг функционального кода много проверок.
Функция TrimLeft - удаляет лидирующие пробелы
Функция GetNumber - возвращает первое число из строки.
Приложение:
{
Ввести строку,состоящую из 2х числе. Преобразовать в числа,сложит и вывести.
Например:
Дана строка '25 24'
Нужно каждое число,занести в свой массив.
Т.е у:='25',а к:='24',потом сложить их
}
Uses
Crt;
Var
St: String;
a, b: Integer;
p: Byte;
function TrimLeft(st: String; ch: Char): String;
var
p: Byte;
begin
p := Pos(ch, st);
while (p = 1) do begin
Delete(st, 1, 1);
p := Pos(ch, st);
end;
TrimLeft := st;
end;
function GetNumber(st: String): Integer;
var
result, c : Integer;
begin
p := Pos(' ', st);
if (p = 0) then
Val(Copy(st, 1, Length(st)), result, c)
else
Val(Copy(st, 1, p-1), result, c);
GetNumber := result;
end;
begin
ClrScr;
repeat {Ввод двух чисел разделенных пробелом (или пробелами)}
Write('Введите два целых числа разделенные пробелом: ');
ReadLn(St);
St := TrimLeft(St, ' '); {в случае ошибочного ввода лишних пробелов перед числом они будут удалены}
p := Pos(' ', St);
if (p = 0) then
WriteLn('Ошибка ввода: Не найден разделить между числами. Повторите ввод.');
until (p > 0);
a := GetNumber(St); {Получить первое число}
Delete(St, 1, p); {Удалить первое число, чтобы добраться до второго}
St := TrimLeft(St, ' '); {Удалить лишние лидирующие пробелы, если таковые имеются}
b := GetNumber(St); {Получить второе число}
Write('Результат: ',a,' + ',b,' = ', a + b);
repeat until keypressed;
end.