Страница 1 из 1
Pascal. Цикл + Массив
Добавлено: 14 дек 2008, 16:55
keywanda
Задача.
Составить программу для проверки утверждения: "Результатами вычислений по формуле sqr(x)+x+17 являются простые числа" при 0=<x=<15. Все результаты выводятся на экран.
Я пробывал делать через массив, но не хочется вписывать 16 значений с 0 до 15, которые строго определены.. А как сделать так что бы выводились сразу эти результаты без ввода значений?
Re: Pascal. Цикл + Массив
Добавлено: 14 дек 2008, 23:15
Naeel Maqsudov
Дык, цикл просто. Без массивов то есть.
Код: Выделить всё
function Prostoe(x):boolean;
begin
{тыщу раз обсуждалась тут эта функция}
end;
i:=0;
repeat
F:=sqr(i)+i+17;
inc(i);
until (i=16) or (not Prostoe(F));
if i=16 then {утверждение верно} else {утверждение неверно};
Re: Pascal. Цикл + Массив
Добавлено: 15 дек 2008, 00:33
keywanda
что такое inc(i) ?
Re: Pascal. Цикл + Массив
Добавлено: 15 дек 2008, 01:38
Naeel Maqsudov
inc(i);
эквивалентно
i:=i+1;
Re: Pascal. Цикл + Массив
Добавлено: 15 дек 2008, 23:24
keywanda
а нельзя обойтись без подпрограмм??
это задание из расчётно-графической работы на темы "циклы"..
я думаю можно как то упростить программу....
Re: Pascal. Цикл + Массив
Добавлено: 16 дек 2008, 08:31
Naeel Maqsudov
Ну, если хотите, то можно
усложнить (я все-таки настаиваю на именно такой формулировке) программу и тело функции (надеюсь вы ее нашли в этом разделе) подставить сразу после inc(i).
Во время вычисления функции будет присвоение Prostoe:=true или false.
Т.е. вместо функции у Вас будет просто переменная.
Ну и проверка условия выхода из цикла будет выглядеть как:
(i=16) or not Prostoe;
PS
вообще-то мне не понятно, чем мешают подпрограммы.
Если тема "циклы", то главное, чтобы циклы
были!
Когда я учился, у нас приветствовался хороший стиль программирования...
Что-то, видимо, поменялось в этом мире в худшую сторону

Re: Pascal. Цикл + Массив
Добавлено: 16 дек 2008, 21:52
keywanda
в этом мире нечего не менялось в худшую сторону..
зачем использовать подпрограмму если можно обойтись одним циклом? вообще по моему в любое время приветствуется минимизация программы.. я не учусь на программиста, я звукоинженер.. информатика - это общеобразовательная дисциплина.. мы не нуждаемся в программировании для профессионального роста. С нас не требуют выработки стиля программирования, но очень сильно трубуют понимание.. понимание каждой строчки, каждой буквы в программе и следовательно в моём случае сделать минимум наворотов

спасибо за помощь, я уже сам разобрался.. но всё равно thanx

Re: Pascal. Цикл + Массив
Добавлено: 21 дек 2008, 14:59
keywanda
я решил эту задачу так...
[HTML]begin
for x:=0 to 15 do y:=sqr(x)+x+17;
k:=0;
for x:=2 to y div 2 do
if y mod x=0 then k:=k+1;
if k=0 then writeln('результат ',y);
readkey
end.[/HTML]
я просчитываю результаты от 0 до 15 и в итоге мне выводит только один результат..
257. (т.е. sqr(15)+15+17)
а как вывести ВСЕ результаты???
т.е. 17, 19, 23, 29 ... 257
при 0, 1, 2, 3 ... 15 соответственно
Re: Pascal. Цикл + Массив
Добавлено: 22 дек 2008, 00:30
Хыиуду
После do поставить begin, перед readkey - end.