Помощь - Поиск - Пользователи - Календарь
Полная версия: Минимум среди нечетных
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
asder
Приветствую! Помогите решить простую задачу на паскале:
"Даны N целых чисел. Найти и вывести на экран минимальное среди нечётных чисел."
DarkWishmaster
Цитата(asder @ 16.06.2011 12:24) *

Приветствую! Помогите решить простую задачу на паскале:
"Даны N целых чисел. Найти и вывести на экран минимальное среди нечётных чисел."

И чем помочь? Что не понял? Где испытываешь трудности?
asder
Напишите, как эту задачу оформить в самом паскале
DarkWishmaster
Цитата(asder @ 16.06.2011 12:28) *

Напишите, как эту задачу оформить в самом паскале



Uses Crt;
var N,min,number:integer;
Begin
write('N= ');
readln(n);
writeln('Insert ',N,' numbers: ');
min:=MaxInt;
while n>0 do
begin
readln(number);
if odd(number) then
if number<min then min:=number;
dec(n);
end;
writeln(Min);
readln;
end.


asder
DarkWishmaster большое спасибо! Выручили! smile.gif
Lapp
DarkWishmaster, три вопросика к тебе. Сумеешь правильно ответить - ставлю + в репу без разговоров (за помощь новичкам)). Первые два вопроса - в комменетах:

Uses Crt; // зачем тут эта строка?
var N,min,number:integer;
Begin
write('N= ');
readln(n);
writeln('Insert ',N,' numbers: ');
min:=MaxInt;
while n>0 do
begin
readln(number);
if odd(number) then // почему эта строка сдвинута?
if number<min then min:=number;
dec(n);
end;
writeln(Min);
readln;
end.

Последний вопрос такой:
Что выведет твоя прога в таком случае:
n=2
10
20
и в таком случае:
n=2
10
32767
smile.gif
Krjuger
А можно я скажу smile.gif можно?))) lol.gif
Кстати его вроде пытались научить не использовать ЦРТ,когда он сам тут задавал вопросы.
DarkWishmaster
Цитата(Lapp @ 16.06.2011 22:39) *

DarkWishmaster, три вопросика к тебе. Сумеешь правильно ответить - ставлю + в репу без разговоров (за помощь новичкам)). Первые два вопроса - в комменетах:



1) Uses Crt обычно я всегда исп. потому что всегда исп. ClrScr, но тут забыл )
2)Ну сдвинул потому что хотел подчеркнуть это строку
3)ага, промажка. Нужна переменая boolean чтоб всё исправить.


Uses Crt;
var N,min,number:integer; q:boolean;
Begin ClrScr;
write('N= ');
readln(n);
writeln('Insert ',N,' numbers: ');
min:=MaxInt;
q:=false;
while n>0 do
begin
readln(number);
if odd(number) then
if number<min then
begin
min:=number;
q:=true;
end;
dec(n);
end;
if q=true then writeln('min= ',min) else writeln('не существует такое число');
readln;
end.


Krjuger
А почему нельзя вообще обьединить эти 2 условия?)

if (odd(number)) and (number<min) then
....


Функциональность не страдает.
Ведь никакие другие случаи не рассматриваются.
Lapp
Ответы, увы, требуют уточнений.. Даю тебе возможность это сделать )).
Цитата(DarkWishmaster @ 17.06.2011 17:10) *
1) Uses Crt обычно я всегда исп. потому что всегда исп. ClrScr, но тут забыл )
А _зачем_ ты "всегда исп." ClrScr? Эт. треб. по усл.?

Цитата
2)Ну сдвинул потому что хотел подчеркнуть это строку
Сдвиг имеет вполне конкретный смысл. Нельзя вешать на торт табличку "горький" просто потому, что хочется пометить, что он сладкий, а таблички "сладкий" нету.. Хочется подчеркнуть - выдели комментариями, выдели пустыми строками снизу и сверху - но _не_сдвигом_.

Цитата
3)ага, промажка. Нужна переменая boolean чтоб всё исправить.


Uses Crt;
var N,min,number:integer; q:boolean;
Begin ClrScr;
write('N= ');
readln(n);
writeln('Insert ',N,' numbers: ');
min:=MaxInt;
q:=false;
while n>0 do
begin
readln(number);
if odd(number) then
if number<min then
begin
min:=number;
q:=true;
end;
dec(n);
end;
if q=true then writeln('min= ',min) else writeln('не существует такое число'); // тут (Lapp)
readln;
end.

Вопрос: почему в той строке, которую я пометил, ты не написал так:
if (true=((q=true)=true))=true then ...
- ? smile.gif

2 Krjuger: я лично ничего не имею против разбиения условия на два оператора (для ясности или чтоб устранить неоднозначность полного/краткого вычисления логики при компиляции)
Krjuger
Цитата

Вопрос: почему в той строке, которую я пометил, ты не написал так:
if (true=((q=true)=true))=true then
...
- ?

Потому что слишком много букафФ lol.gif а еще вы забыли про true после true,ну про тот самый ,что после того true.(надеюсь никого это не обидит).
IUnknown
DarkWishmaster, хочешь еще один совет? Если твоя программа что-то печатает - лучше, чтобы это было корректно. Вот ты вывел фразу "Не существует такое число"... Какое это число не существует? Озвучь, пожалуйста... Ах, ты имел в виду "Не было введено нечетных чисел"... Так и пиши...
Lapp
Цитата(Krjuger @ 18.06.2011 0:31) *
Потому что слишком много букафФ lol.gif а еще вы забыли про true после true,ну про тот самый ,что после того true.(надеюсь никого это не обидит).

if not (q = false) and (true = not (1 = 2)) or not true then ..
))

Цитата(IUnknown @ 18.06.2011 0:39) *
DarkWishmaster, хочешь еще один совет? Если твоя программа что-то печатает - лучше, чтобы это было корректно. Вот ты вывел фразу "Не существует такое число"... Какое это число не существует? Озвучь, пожалуйста... Ах, ты имел в виду "Не было введено нечетных чисел"... Так и пиши...
Присоединяюсь, совершенно согласен yes2.gif. Определение "такой" следует вообще запретить.. ))
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.