Урок 22 Задача 2
Primary tabs
Есть исходный код:
var s:string; i, n: Integer; a: array[1..8] of char; begin writeln('Vvedite stroku'); readln(s); n := 1; while(n<10) do // 1-8 begin for i:=1 to Length(s) do if (s[i]>='0')and(s[i]<='9') then begin a[n]:=s[i]; inc(n); end; end; for i:=low(a) to high(a) do write(a[i],' '); // выводим массив readln(); end.Задача:
Определить, что делает эта программа (добавьте текстовое описание)
В ней есть лишние конструкции -- перепишите код оптимальным образом
{ Программа принимает от пользователя строку и вписывает первые 8 числовых символов, встретившиеся в этой строке, в массив из 8 элементов. Если в строке числовых символов меньше, чем 8, то после записи в массив последнего числового символа происходит возврат к первому числовому символу в строке и снова производится запись числовых символов в массив, пока не заполнится весь массив }
Переписанный код:
var s: string; i, n: integer; a: array[1..8] of char; begin writeln('Vvedite stroku'); readln(s); n:= 1; // счетчик массива i:= 0; // счетчик строки while not (n > high(a)) do // пока счетчик не выйдет за пределы массива begin if i = length(s) then // если строка закончилась i:= 1 // начинаем обходить строку заново else // если строка не закончилась i:= i+1; // переходим к след. символу строки if (s[i]>='0')and(s[i]<='9') then // если встретилось число begin a[n]:= s[i]; // записываем его в массив write(a[n],' '); // выводим элемент массива на экран inc(n); // увеличиваем счетчик массива end; end; readln(); end.
- Log in to post comments
- 562 reads
vedro-compota
Sun, 01/15/2023 - 13:14
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)