|
|
|
|
|
|
|
Вернуться
| 1 Дробышев Андрей Валентинович, 10 ноября 2012 г. 11:56:59 | |
Мне не совсем ясно, почему, но после вот этого ... else begin b:=false; for i:=2 to round(sqrt(n)) do b:=b or ((n mod i)=0); sim:=not(b); ... все заработало.
|
|
|
| 2 Дробышев Андрей Валентинович, 10 ноября 2012 г. 11:46:50 | |
Точно, прошу прощения: в 5 строке снизу b вместо sim ( b:=b or ((n mod i)=0 ) В программе все верно написано однако ж не работает.
|
|
|
| 3 Mikhael, 10 ноября 2012 г. 9:38:40 | |
|
* учитывая, что round(sqrt(n)) >=2.
|
|
|
| 4 Mikhael, 10 ноября 2012 г. 9:32:26 | |
думаю? если объявить локальную переменную с именем отличным от sim, то программа заработает... а в данной функуии вы некорректно возращаете значение функции. Если я правильно понял, то если (n <> 1) and (n<>2)and(n<>3), то выполняется всего ОДНА итеррация цикла for, в которой вычисляется возращаемое значение функции.Строка кода sim:=not(b); вообще не выполняется
|
|
|
| 5 Дробышев Андрей Валентинович, 09 ноября 2012 г. 22:23:54 | |
Господа, не хотелось бы сойти за дегенерата, но я точно не понимаю, что к чему. Имеется значит функция, призванная определять, является ли данное число простым. Работать корректно наотрез отказывается. При этом если тот же алгоритм записать как отдельную программу, все прекрасно работает. function sim(n:word):boolean; var i:word; b:boolean; begin case n of 1:sim:=false; 2,3:sim:=true; else begin for i:=2 to round(sqrt(n)) do sim:=b or ((n mod i)=0); sim:=not(b); end; end; end;
|
|
|
Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!
| | | |