Урок 18 Задача 5

Урок 18 Задача 5:

Пользователь вводит в консоль строку вида:

Имя         123

-- т.е. слева имя и через произвольное количество пробелов число баллов. Разберите эту строку получив имя пользователя как значение в переменной типа string и число баллов в перееменной типа integer;

var
  s, s1, s2: string;
  i,
  j, a: integer;
begin
  write ('Введите строку: ');
  readln(s);
  i:= 0;
  j:= 0;
  s1:= '';
  s2:= '';
  while not (i > length(s)) do           // цикл для обхода строки
  begin
    i:= i+1;

{Условие, если встретилось число или не число и не пробел(т.е. символ из имени)}
    if (s[i]>='0')and(s[i]<='9') or not ((s[i]>='0')and(s[i]<='9') or (s[i] =' ')) then
    begin
      j:= j + 1;
      if j > 2 then
        break
      else
        for i:= i to length(s) do
          if not ((s[i]>='0')and(s[i]<='9') or (s[i] =' ')) then
            s1:= s1 + s[i]
          else if (s[i]>='0')and(s[i]<='9')  then
                s2:= s2 + s[i]
            else
                break;
    end;
  end;
    val(s2, a);   // преобразовываем вторую строку в число
    writeln (s1);
    writeln (a);
  readln();
end.

var
  s, s1, s2: string;
  i, a: integer;
begin
  write ('Введите строку: ');
  readln(s);
  s1:= '';
  s2:= '';
  for i:=1 to length(s) do     // цикл для обхода строки
    if (s[i]>='0')and(s[i]<='9') then
      s2:= s2 + s[i]
    else
      if not (s[i] =' ') then
        s1:= s1 + s[i];
  val(s2, a);   // преобразовываем вторую строку в число
  writeln (s1); // выводим имя
  write (a);    // выводим число баллов
  readln();
end.

Вывод в консоли:

Введите строку: Вася   234
Вася 
234
vedro-compota's picture

засчитано

_____________
матфак вгу и остальная классика =)