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

Урок 18

Пользователь вводит произвольную строку, посчитайте
количество чисел в ней - тех, что больше 125. Например, в строке:

123ret34#2145esrt5

такое число только одно и это:

2145
type ar = array[1..10] of integer;
var fromString: string;
    newArray: ar;

function lookForNum(fromString1: string): ar;

  var loopCount{счетчик цикла}, toInt{для преобразования в число},
      arrCount, errorCode{код ошибки}: integer;
      toString: string;
      flag: boolean;
      newArray1: ar;

begin
  flag := false;
  arrCount := 0;
  toString := '';
  for loopCount := 1 to length(fromString1) do
  begin
    val(fromString1[loopCount], toInt, errorCode);
    if (errorCode = 0) and flag then
    begin
      toString := toString + fromString1[loopCount];
      val(toString, newArray1[arrCount], errorCode);
    end
    else if (errorCode = 0) and not flag then
    begin
      flag := true;
      inc(arrCount);
      toString := toString + fromString1[loopCount];
      val(toString, newArray1[arrCount], errorCode);
    end
    else if (errorCode <> 0) and flag then
    begin
      flag := false;
      toString := '';
    end;
  end;
  if (arrCount < length(newArray1)) then
  begin
    for loopCount := arrCount + 1 to length(newArray1) do
    begin
      newArray1[loopCount] := 0;
    end;
  end;
  result := newArray1;
end;

procedure lookFor125(newArray1: ar);
  var loopCount, countOfInt: integer;

begin
  countOfInt := 0;
  for loopCount := low(newArray1) to high(newArray1) do
  begin
    if (newArray1[loopCount] > 125) then
    begin
      inc(countOfInt);
    end;
  end;
  writeln('Чисел больше 125 в строке: ', countOfInt);
  if countOfInt > 0 then
    writeln('Это числа: ');
  for loopCount := low(newArray1) to high(newArray1) do
  begin
    if (newArray1[loopCount] > 125) then
    begin
      writeln(newArray1[loopCount]);
    end;
  end;
end;

begin
  writeln('Введите строку');
  readln(fromString);
  newArray := lookForNum(fromString);
  lookFor125(newArray);
  readln();
end.

КОНСОЛЬ

Введите строку
eb516evf651erfv61vrfs
Чисел больше 125 в строке: 2
Это числа:
516
651
vedro-compota's picture

засчитано

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