ответе пожайлусто нельзя мне получи меньше 9потому что у меня и так 1 (и пожайлусто не пишите что-то типо - я не знаю украинский сори- или - р пс вппсаарп-)
Вот так эту задачу можно решить на современном Паскале. Но, к сожалению, так в школах не учат, заставляя тратить время и силы на громоздкие программы, в которых легко ошибиться.
// PascalABC.Net 3.2
begin Write(ReadlnString('->').ToWords.Where(x->x.Left(2)='со').Count) end.
Пример: -> Три собаки сосали одну косточку 2
А вот так (примерно, потому что обычно еще хуже) учат писать программы в школе...
var s:string; i,n,k,p:integer; begin Write('->'); Readln(s); if Copy(s,1,2)='со' then k:=1 else k:=0; Delete(s,1,3); repeat i:=Pos(' со',s); if i>0 then begin Inc(k); Delete(s,1,i+3) end until i=0; Writeln(k) end.
гайсанов
04.11.2022
В Вашем варианте после while необходимо писать begin, а после Writeln - end. Но само по себе решение некрасивое. Вот Вам еще два на выбор.
1. Без массива
var s,n:integer; begin Write('Введите сумму: '); Read(s); n:=s div 5000; if n>0 then begin Writeln('Банкнот "5000" всего: ',n); s:=s mod 5000 end; n:=s div 1000; if n>0 then begin Writeln('Банкнот "1000" всего: ',n); s:=s mod 1000 end; n:=s div 500; if n>0 then begin Writeln('Банкнот "500" всего: ',n); s:=s mod 500 end; n:=s div 100; if n>0 then begin Writeln('Банкнот "100" всего: ',n); s:=s mod 100 end; n:=s div 50; if n>0 then begin Writeln('Банкнот "50" всего: ',n); s:=s mod 50 end; n:=s div 10; if n>0 then begin Writeln('Банкнот "10" всего: ',n); s:=s mod 10 end; if s>0 then Writeln('Недоплачено: ',s) end.
const k:array[1..6] of integer=(5000,1000,500,100,50,10); var s,n,i:integer; begin Write('Введите сумму: '); Read(s); for i:=1 to 6 do begin n:=s div k[i]; if n>0 then begin Writeln('Банкнот "',k[i],'" всего: ',n); s:=s mod k[i] end end; if s>0 then Writeln('Недоплачено: ',s) end.
ответе пожайлусто нельзя мне получи меньше 9потому что у меня и так 1 (и пожайлусто не пишите что-то типо - я не знаю украинский сори- или - р пс вппсаарп-)
// PascalABC.Net 3.2
begin
Write(ReadlnString('->').ToWords.Where(x->x.Left(2)='со').Count)
end.
Пример:
-> Три собаки сосали одну косточку
2
А вот так (примерно, потому что обычно еще хуже) учат писать программы в школе...
var
s:string;
i,n,k,p:integer;
begin
Write('->'); Readln(s);
if Copy(s,1,2)='со' then k:=1 else k:=0;
Delete(s,1,3);
repeat
i:=Pos(' со',s);
if i>0 then begin
Inc(k);
Delete(s,1,i+3)
end
until i=0;
Writeln(k)
end.