Задача 3 Урок 18
Primary tabs
Пользователь вводит произвольную строку, посчитайте
количество чисел в ней - тех, что больше 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
- Log in to post comments
- 1434 reads
vedro-compota
Sun, 12/05/2021 - 13:25
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)