Урок 17. Задача №3. Решение.
Primary tabs
Пользователь вводит произвольную строку, посчитайте количество чисел в ней - тех, что больше 125. Например, в строке:
123ret34#2145esrt5такое число только одно и это:
2145(сначала выделите эти числа из строки и запишите их в массив (of integer), а затем уже посчитайте число тех, что больше 125).
type myArr = array [1..4] of integer; function inc_too(var b : integer): integer; begin b += 1; result := b; end; function Check_tmp(s : string; var mas : myArr): myArr; var a, k : integer; begin if(s <> '') then begin for k := low(mas) to high(mas) do if(mas[k] = 0) then begin val(s, a); mas[k] := a; end; end else Exit; result := mas; end; function Count_Arr(var z : integer; full_arr : myArr): integer; var q : integer; begin for q := low(full_arr) to high(full_arr) do if(full_arr[q] > 125) then inc_too(z); result := z; end; var str, tmp : string; key : boolean; i, j, c, conv : integer; arr : myArr; begin writeln('Enter arbitrary string: '); readln(str); for i := 1 to length(str) do begin key := false; if(str[i] >= '0') and (str[i] <= '9') then tmp += str[i] else key := true; if(key = true) and (tmp <> '') then begin val(tmp, conv); j += 1; arr[j] := conv; tmp := ''; end; end; Check_tmp(tmp, arr); Count_Arr(c, arr); writeln('In your string quantity numbers > 125: ', c); readln(); // Удержание консоль end.// Завершение программы
- Log in to post comments
- 3077 reads
vedro-compota
Sat, 05/16/2020 - 10:00
Permalink
надо или возвращать значения,
надо или возвращать значения, или передавать по ссылке.
_____________
матфак вгу и остальная классика =)
vedro-compota
Sat, 05/16/2020 - 10:06
Permalink
оптимальность
-- не оптимально, передавайте в подпрограмму будущий индекс последнего элемента, на случай если он будет записан.
_____________
матфак вгу и остальная классика =)
Firons
Mon, 05/18/2020 - 17:53
Permalink
Исправлено.