|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
14.03.2008, 19:23 | #1 |
Пользователь
Регистрация: 14.03.2008
Сообщений: 32
|
Задачи на множества
Помогите плиз решить 2 задачи:
1,В возpастающем поpядке напечатать все целые числа из диапазона 1..10000, пpедставимые в виде n *n + m*m ,где n,m>0. 2,Нужно ввести с клавиатуры некоторую последовательность символов, а программа должна вывести символы из диапазона от a до f и от x до z, елси таковые имеются в вводимой последовательности. Вот решала задачу через константу, а через множество не знаю. |
14.03.2008, 19:52 | #2 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Если решали через константу, то она наверняка была множеством. Можно и эту вторую задачу решить с помощью константы-множества. Но если нужно именно через множества, тогда так.
Код:
|
14.03.2008, 20:23 | #3 |
Пользователь
Регистрация: 14.03.2008
Сообщений: 32
|
Спс за вторую задачу).
я её решала так: uses crt; const bucva=['a','b','c','d','e','f','x','y','z']; var x:char; i:byte; s:string; begin clrscr write('vvedite posledovatelnost'); readln(s); for i:=1 to lentgth(s) do if s[i] in bucva then write (s[i]); readln; end. ps:помоги плиз решить первую задачу через множества, если тебе не трудно плииииз; буду весьма благодарна |
14.03.2008, 22:42 | #4 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Провозился с первой задачей, пока не понял, что для обычной рабрты в Паскале 10000 это много, программа очень долго считает, почти зависает. Для 1000 работает быстро, но чисел очень много и на экране плохо понятный бардак, видимо результат лучше ваводить в файл.
Остановился на 500. И работает быстро и экрана хватает. Код:
|
14.03.2008, 23:17 | #5 |
Пользователь
Регистрация: 14.03.2008
Сообщений: 32
|
Ыыы... давольная как слон. Спасибо огромное тебе:сама бы решала вечность.
|
15.03.2008, 16:00 | #6 |
Забанен
Форумчанин Подтвердите свой е-майл
Регистрация: 01.11.2006
Сообщений: 420
|
Задача № 1
Код:
множество добавить только осталось to puporev в ващем решении числа дублируются
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
|
15.03.2008, 21:20 | #7 |
Пользователь
Регистрация: 14.03.2008
Сообщений: 32
|
Первый раз когда вводила твою программу, она у меня подвисла на 100).Второй раз выполнялось хорошо. Не знаю, мб я не в тему, всё-таки я сама задачу не решала, но насколько я знаю break, halt и вроде exit рекомендуется употреблять в крайних случаях, когда невозможно по другому выйти из цикла, т.к. при таком выходе память не очищается.
ps: спасибо за решение |
15.03.2008, 22:06 | #8 |
JAVA BEAN
Участник клуба
Регистрация: 22.04.2007
Сообщений: 1,329
|
Мой вариант задачи №1. Работает быстро даже при 100000:
Код:
Последний раз редактировалось Carbon; 15.03.2008 в 22:09. |
15.03.2008, 22:56 | #9 | |
Пользователь
Регистрация: 14.03.2008
Сообщений: 32
|
Цитата:
Да и ктому же программа выдала ошибку о переполнении, короче паскаль подвис у меня). |
|
15.03.2008, 23:19 | #10 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Вариант Plague нормально работает, только как туда множества засунуть, ведь тема на множества. Кстати, чтобы в врианте Plague сделать нормальный вsвод нужно слегка переделать конец и вывод будет порциями с задержкой.
Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Множества | Zid@ne | Помощь студентам | 16 | 20.01.2008 10:19 |
Множества в Си | Иллидан | Общие вопросы C/C++ | 14 | 17.01.2008 15:58 |
Задачи по теме множества | Hostlman | Общие вопросы Delphi | 2 | 22.12.2007 21:52 |