Лабораторный практикум по программированию на языке Pascal. Суркова Е.В. - 54 стр.

UptoLike

Составители: 

53
for i:=1 to n do
begin
write ('введите ',i,'-е слово ');
readln(s[i]); {ввод i-го слова}
tmp:=0; {обнуление суммы цифр i-го слова}
Далее в блок-схеме алгоритма следует проверка символа на принадлеж-
ность его к цифрам, для чего организуется еще один цикл, в котором будет
осуществляться перебор символов
i-го слова. В программе мы несколько ус-
ложним алгоритм за счет добавления проверки символов на допустимость зна-
чений, т. е. условия, которое будет проверять принадлежность символа к мно-
жеству допустимых символов
alf. В этом используется функция преобразова-
ния символа в верхний регистр
UpCase (строчные буквы становятся заглавны-
ми, заглавныеостаются без изменений).
for j:=length(s[i]) downto 1 do
if UpCase(s[i,j]) in alf then {проверка допустимости
j-го символа i-го слова}
begin
Если проверяемый символ допустимый, то проверяется его принадлеж-
ность к множеству цифр.
if s[i,j] in ['0'..'9'] {если j-й символ i-го слова -
цифра}
then
Когда символ оказывается цифрой, то происходит его преобразование в
число и увеличение суммы цифр текущего слова.
begin
val(s[i,j],k,cod); {преобразование символа в число}
tmp:=tmp+k; {накапливается сумма цифр i-го слова}
end
end
Если же проверяемый символ оказался недопустимый, то выдается сооб-
щение об ошибке, обнуляется сумма цифр слова и уменьшается номер слова.
Цикл
For автоматически увеличивает параметр цикла, и такое «топтание» на
месте позволит еще раз повторить ввод и обработку ошибочного слова. Коман-
да
break позволит досрочно выйти из цикла проверки символов i-го слова.
else
begin
writeln('Встретился недопустимый символ!');
writeln;
tmp:=0;
dec(i); {Уменьшение номера слова}
break; {Досрочный выход из цикла по j}
end;