![]() |
0 Всего найдено: 21
ptaxakur
Сообщение
02/11/2011 16:22
Копия темы
Нужна помощь программистов. Кто хорошо разбирается в Паскале помогите! Нужно найти наименьшее число среди положительных массивом на 20 чисел. Диапазоном [-15 +15]. Я попробовал сделать, но не знаю правильно ли получилось, если кто может помогите разобраться. var a: array [1..20] of integer; i,x: integer; begin randomize; writeln ('массив'); for i:= 1 to 20 do begin a[i]:= random (-15) +15; end; x:=a[1]; writeln; for i:= 2 to 10 do if (a[i] < x) and (a[i] > 0) then x := a[i]; writeln('минимальное =',x); readln; end.
ptaxakur
Сообщение
02/11/2011 16:30
Копия темы
Странно он выдает положительные числа со знаком "-" не могу понять почему? И рандом странно работает, да Паскаль тот еще язык.
inforoom
Сообщение
02/11/2011 16:38
Копия темы
ниче странного нет, все там нормально. выдает все как вы и просите)) Вопрос, а что вывести когда числа все отрицательные?
inforoom
Сообщение
02/11/2011 16:42
Копия темы
нет не правильно. странно что она вообще что то выдает, в чем я глубоко сомневаюсь.
ptaxakur
Сообщение
02/11/2011 16:42
Копия темы
А теперь? var a: array [-15..15] of integer; i,x: integer; begin randomize; writeln ('Èñõîäíûé ìàññèâ'); for i:= 1 to 20 do begin a[i]:= random (14)-15; writeln('a=',i,''); end; x:=a[1]; writeln; for i:= 2 to 20 do if (x>a[i]) and (a[i] > 0) then x := a[i]; writeln('Íàèìåíüøåå ïîëîæèòåëüíîå ',x); readln; end.
inforoom
Сообщение
02/11/2011 16:44
Копия темы
а теперь вообще напутали.... теперь ошибки полностью)))
inforoom
Сообщение
02/11/2011 16:46
Копия темы
var a: array [-15..15] of integer; и for i:= 2 to 20 do if (x>a[i]) непляшут индексы random (14)-15; ет не диапазон от-15 дп 15. и кстати вы так и не сказали >>>Вопрос, а что вывести когда числа все отрицательные?
dab_den
Сообщение
02/11/2011 16:53
Копия темы
Вероятность что все числа будут отрицательны почти нулевая. :)
inforoom
Сообщение
02/11/2011 16:55
Копия темы
ну ет ненада... вероятность есть)) и при решении задач ет нада учитывать. причем просто в етом формулировании идет рандом, а если по заготовленным тестам? думаю любой препод может с 99% вероятность ето спросить)
dab_den
Сообщение
02/11/2011 16:58
Копия темы
Может спросить, да. Верно что в программе нужно учитывать все возможные исходы. :)
inforoom
Сообщение
02/11/2011 17:00
Копия темы
просто я готовлю к олимпиадам по программированию, поетому такие условия пытаюсь читать детально! там все возможно)))
dab_den
Сообщение
02/11/2011 17:03
Копия темы
Интересно! :) Ну вот, теперь подготовили Вову Курочкина к возможным «подводным камням».
dab_den
Сообщение
02/11/2011 17:09
Копия темы
Ну, алгоритм, верный, кажись. А синтаксис, кажется, Олегу не нравится чем-то. Думаю, вам просто нужно чуток внимательней быть, и сами вполне справитесь. Вообще, очень интересные эти «школьные» задачи по программированию. Я помню, когда учился в универе, больно быстро решил свой вариант задачи, так что захотелось решить все остальные 40-60 вариантов. :)
inforoom
Сообщение
02/11/2011 17:14
Копия темы
алгоритм более и менее правильный (идея) неправильная реализация... и важный момент... почему у него часто отрицательные числа в ответе. Да потому что x:=a[1]; и если первым стоит отрицательное число , то потом мы никакое положительное меньше за ето отрицательно не найдем никогда. сюда алгоритм при поиске минимального или максимального числа среди все применить так в лоб нельзя.
dab_den
Сообщение
02/11/2011 17:17
Копия темы
0
Точно. :) Надо ставить иксу 16 (или другой максимум). Цикл проходит весь, а не со второго элемента. И в конце проверять, если икс так и остался 16, то значит положительных чисел в массиве нет. :) |
Выразить восторг, поругаться или предложить что-нибудь можно на форуме |
Для обсуждения этого сервиса так же есть темы на фрилансе по поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал" |