Помогайте решить пожалуйста с помощью case div mod.
2. Постановка задачи :Для числа «к» вывести на экран дисплея разу «мы нашли К грибов в лесу» согласовав окончание слова «гриб» с числом «к».к натуральное число. Если не так тема то прошу изменить название
case k mod 10 of
0,5..9: s:='ов';
1: s:='';
2..4: s:='а';
end;
WriteLn('мы нашли ',k,' гриб',s,' в лесу');
ещё добавить:
if k div 10 = 1 then s:='ов';
Парни огромное спасибо! а как mod рисуется на схеме алгорита?
так и пиши ... mod
как обыкновеная арифмитическая операция
не знаю как это пишется (арифмитическая)
думаю можно вот так :
a % b
program V;
var
k:byte;
begin
writeln('Bbedute kol-Bo gribov');
readln(k);
if k div 10 = 1 then writeln('11');
case k mod 10 of
1: writeln('mbI nawlu grib v lesy');
2..4: writeln('mbI nawlu griba v lesy');
0,5..9: writeln('mbI nawlu gribov v lesy');
11,12,13,14 : writeln('mbI nawlu gribov v lesy');
end;
readln;
end.
var
k: byte;
s: string;
begin
writeln('Bbedute kol-Bo gribov');
readln(k);
if k in [11, 12, 13, 14] then s := 'ov'
else
case k mod 10 of
1 : s := '';
2 .. 4: s := 'a';
0,5..9: s := 'ov';
end;
writeln('mbI nawlu ', k, ' grib' + s + ' v lesy');
readln;
end.
program v;
var
k : byte;
s : string;
begin
writeln('wwedite kol-vo gribov');
readln(k);
if k in [11,12,13,14] then s:='gribov'
else
case k mod 10 of
1 : s :='grib';
2..4 : s:='griba';
0,5..9:s :='gribov';
end;
writeln('gribov');
readln;
end.
uses crt;
var
k : word;
begin
for k := 1 to 100
do begin
write('Мы нашли в лесу ',k,' гриб');
if k div 10 = 1 then write('ов')
else case k mod 10 of
2..4 : write('а');
5..9,0 : write('ов');
end;
writeln;
end;
readln;
end.
malou, вот объясни мне, ты ВООБЩЕ смотришь на то, что тебе пишут? Я ж тебе дал готовое решение, НЕТ!!! надо было его ИСПРАВИТЬ, и потом сказать, что оно неправильно работает. А зачем исправлял? Прогнать БЕЗ изменений нельзя было?
Задача решена аж 2-мя способами.
Обсуждать тут больше нечего.
Тема зарыта.