Из множества целых чисел 1..100 выделить множество чисел, являющихся в свою очередь квадратами целых чисел
APAL
17.11.2004 19:59
не понял условия...
Квадратами каких целых чисел???
volvo
17.11.2004 20:07
emm Можно переформулировать задачу так: "Найти все числа из интервала 1..100, являющиеся квадратами целых чисел"?
Или я не прав?
APAL
17.11.2004 20:19
Хм... volvo, ты уже не в первый раз придаешь непонятным топикам хоть какой-то смысл... :p9:
Если это действительно так, то какие затруднения emm? Будем учить Pascal или все подать на "тарелочке"?
emm
18.11.2004 0:35
ну никак не получается посмотрите, что нетак с этой программой
Код
var b:set of 1..100; kv:set of byte; i:integer;
begin kv:=[]; for i:=1 to 100 do if (sqr(i) in B)=true then include(kv,sqr(i)); for i:=1 to 100 do if (i in kv)=true then write(' ',i); readln; writeln; end.
APAL
18.11.2004 0:37
Может вместо set будем использовать array ?
emm, забываешь заключать код в теги!
volvo
18.11.2004 0:41
emm Описываешь Set of Byte и пытаешься засунуть туда 100*100 ?
Romtek
18.11.2004 0:47
Множества, в своём большинстве, не превосходят 10 элементов. Для 100 элементов лучше использовать массив (array), как уже заметили раньше.
Romtek
18.11.2004 0:55
Поправь так:
Код
Sq := Sqr (N); if (Sq <= Max) then Include (kv, Sq);
И вместо write(' ',i); напиши write (i : 4); Так красивее.
Множества, по-моему, здесь вообще не нужны.
Код
Sq := Sqr (N); if (Sq <= Max) then write (Sq : 4);
emm
18.11.2004 7:10
ну если нам дали эту задачу из раздела множества и сказали решать с множествами, дак как вы думаете!!! нужны тут множества или нет?!!! Что-то я пока ни одного ценного совета здесь не заметила!!!
volvo
18.11.2004 13:13
emm Спокойнее... У Вас где-нибудь было сказано, что эту задачу нужно решать при помощи множеств? Нет... А решается она при помощи множеств вот так:
const maxNum = 100; var kv:set of byte; i: 1 .. maxNum; const b = [1 .. maxNum];
begin kv:=[]; {Работаем с квадратами, поэтому достаточно пройти до корня из макс числа...} for i:=1 to Trunc(sqr(maxNum)) do if (sqr(i) in b) then include(kv,sqr(i));
for i:=1 to maxNum do if (i in kv) then write(i:4); readln; writeln; end.
P.S. А можно встречный вопрос? Что будет, если Вашему преподавателю вздумается найти все числа из интервала 1 .. 400, являющиеся квадратами целых чисел ? А множества вмещают 256 элементов ... Используя те советы, которые давались здесь, Вы можете этого избежать...
emm
19.11.2004 17:07
Ну неужели хоть кто-то помог. Спасибо большое!!! :no:
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.