IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> простенькая задача на множества, Срочняк!!!
emm
сообщение 17.11.2004 15:55
Сообщение #1





Группа: Пользователи
Сообщений: 5

Репутация: -  0  +


Из множества целых чисел 1..100 выделить множество чисел, являющихся в свою очередь квадратами целых чисел
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
APAL
сообщение 17.11.2004 15:59
Сообщение #2


Смотрю...
*****

Группа: Модераторы
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

Репутация: -  6  +


не понял условия... sad.gif

Квадратами каких целых чисел???


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 17.11.2004 16:07
Сообщение #3


Гость






emm
Можно переформулировать задачу так:
"Найти все числа из интервала 1..100, являющиеся квадратами целых чисел"?

Или я не прав?
 К началу страницы 
+ Ответить 
APAL
сообщение 17.11.2004 16:19
Сообщение #4


Смотрю...
*****

Группа: Модераторы
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

Репутация: -  6  +


Хм... volvo, ты уже не в первый раз придаешь непонятным топикам хоть какой-то смысл... :p9:

Если это действительно так, то какие затруднения emm?
Будем учить Pascal или все подать на "тарелочке"?


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
emm
сообщение 17.11.2004 20:35
Сообщение #5





Группа: Пользователи
Сообщений: 5

Репутация: -  0  +


ну никак не получается
посмотрите, что нетак с этой программой
Код
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.


Сообщение отредактировано: volvo - 8.05.2005 14:31
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
APAL
сообщение 17.11.2004 20:37
Сообщение #6


Смотрю...
*****

Группа: Модераторы
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

Репутация: -  6  +


Может вместо set будем использовать array ?

emm, забываешь заключать код в теги!


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 17.11.2004 20:41
Сообщение #7


Гость






emm
Описываешь Set of Byte и пытаешься засунуть туда 100*100 ?
 К началу страницы 
+ Ответить 
Romtek
сообщение 17.11.2004 20:47
Сообщение #8


Знаток
****

Группа: Пользователи
Сообщений: 303
Пол: Мужской
Реальное имя: Роман

Репутация: -  2  +


Множества, в своём большинстве, не превосходят 10 элементов.
Для 100 элементов лучше использовать массив (array), как уже заметили раньше.


--------------------
Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Romtek
сообщение 17.11.2004 20:55
Сообщение #9


Знаток
****

Группа: Пользователи
Сообщений: 303
Пол: Мужской
Реальное имя: Роман

Репутация: -  2  +


Поправь так:
Код
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);


--------------------
Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
emm
сообщение 18.11.2004 3:10
Сообщение #10





Группа: Пользователи
Сообщений: 5

Репутация: -  0  +


ну если нам дали эту задачу из раздела множества и сказали решать с множествами, дак как вы думаете!!! нужны тут множества или нет?!!! Что-то я пока ни одного ценного совета здесь не заметила!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 18.11.2004 9:13
Сообщение #11


Гость






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 элементов ... Используя те советы, которые давались здесь, Вы можете этого избежать...

Сообщение отредактировано: volvo - 4.11.2010 12:16
 К началу страницы 
+ Ответить 
emm
сообщение 19.11.2004 13:07
Сообщение #12





Группа: Пользователи
Сообщений: 5

Репутация: -  0  +


Ну неужели хоть кто-то помог. Спасибо большое!!! :no:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 17.06.2025 23:32
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"