Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на языке Pascal

Выпуск № 262
от 25.03.2004, 17:00

Администратор:
Имя: Sensey
URL: Информационный ресурс
ICQ: 105679124
Украина, Харьков
О рассылке:
Задано вопросов: 443
Отправлено ответов: 1629
Активность: 367.7 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Strory
Статус: Доверительный
Общий рейтинг: 161.29
[Подробней >>]
Boriss
Статус: Профессиональный
Общий рейтинг: 155.27
URL: Программирование на Паскале
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 440. Добрый день! Подскажите, что здесь можно сделать(я думаю, что-то с рекурсией). Я не очень понимаю за... (ответов: 2)
Вопрос № 441. Можно долго и задумчиво рассуждать об ошибках у Борланда или ТМТ, но Вы видимо не обратили внимания ... (ответов: 1)

Вопросов: 2, ответов: 3


 Вопрос № 440

Добрый день! Подскажите, что здесь можно сделать(я думаю, что-то с рекурсией). Я не очень понимаю задание.
Функция F(x) определена с помощью ряда F(x)=Сумма при n от 1 до бесконечности Xn /n3 . (где сумма, там значок сигма).Из заданного массива Y выделить и упорядочить по возрастанию только те элементы, для которых заданная точность вычисления F(Y[i]) достигается при суммировании не более m слагаемых.



Вопрос отправлен: 22.03.2004, 08:54
Отправитель: nitrogen

[Следующий вопрос >>] [Список вопросов]

Отвечает Strory

Добрый день, nitrogen!
Это Вам по програмированию задачку задали? Если да то можно сделать только одно - надавать по голове преподу :)
Насколько мне известно, не придумали ещё такой тип данных, который имеет верхнюю границу - бесконечность. Да и тактовая частота процессора должна быть бесконечной, чтобы программа выполнилась хоть когда-нибудь.
Поэтому - использовать рекурсию здесь нельзя, т.к. она заберёт всю память через "конечный" уровень вложенности. Да и простое вычесление через циклы не пойдёт, т.к. он будет работать такое же время, как и верхняя граница N, т.е. бесконечно.
Исходя из всего вышеперечисленного следует решать задачу математически, а вот это уже не к нам...

Ответ отправлен: 22.03.2004, 18:45
Отправитель: Strory


Отвечает Boriss

Доброе время суток, nitrogen!
Ага, точно надо надавать, хотя я и сам преп и задача решается без бесконечностей
и на конечных машинах, и рекурсий не надо.
1) надо просто просуммировать m слагаемых и проверить - сошлось или нет,
с заданной точностью. Но тут есть вопросы
2) Но что-то у Вас значков много и Xn и Y[i]... - и какого они типа?
Если считать,что Xn - это число, от n независящее, то без расчетов можно сказать,
за сколько сойдется. Иначе не ясно, откуда брать его. Или Xn - это X в степени n?
3) n3 - надо понимать n в третьей степени. Так?
4) Теорией сходимости рядов пользоваться нельзя. Так?
5) Здесь две задачи - а) сошлось - не сошлось; б) сортировка
6) Для сортировки любой алгоритм - попробуйте сами - это элементарно.
Для сигнала о сходимости, необходимо ввести еще один "параллельный" массив булевский
с размерностью Y
Ответьте на эти вопросы - хотя бы с помощью давшего задание - и решим без проблем

Ответ отправлен: 24.03.2004, 19:24
Отправитель: Boriss


 Вопрос № 441

Можно долго и задумчиво рассуждать об ошибках у Борланда или ТМТ, но Вы видимо не обратили внимания на такие слова в вопросе:
"...но по определенным причинам хотелось бы обойтись без асма."
Следовательно, не нужен был работающий код именно в том виде, каком его привел X-RayMan, а нужен был код работающий без асма. И в любом учебнике по Паскалю (да и в любом коде тоже) использование процедурных типов приводится именно в том виде, как описано у меня в примере. Код рабочий :).
Лично для меня навороты с указателями на процедурный тип излишен, т.к. позволяет прекрасно обойтись без него. Зачем усложнять? К сожалению X-RayMan не объяснил, зачем ему нужно было именно так, как он написал (т.е. с указателями), а не поняв вопроса трудно дать правильный ответ. Поэтому ответ был дан именно в ПОНИМАНИИ вопроса (читай домысла :) каждого конкретного эксперта.
Кстати, если в ТМТ этот код работает, а в остальных реализациях Паскаля нет, то это не значит, что правильная реализация именно в ТМТ :)).
Без обид :). Может быть я и не прав :).



Вопрос отправлен: 22.03.2004, 10:25
Отправитель: sir henry

[Следующий вопрос >>] [Список вопросов]

Отвечает Strory

Здравствуйте, sir henri,
Во-первых, спасибо! Если бы не Вы, то я бы ещё долго не скачал бы себе Virtual Pascal и Free Pascal :)
Теперь по теме. Об использовании ассемблера я просто не уточнил. Конечно же я имел в виду просто указателя на процедурный тип:
a:= addr(_p);
a^;
О необходимости использования в этом случае указателей спорить не нам (хотя я указатель тоже не использовал бы), но раз уж такой вопрос поступил, значит (по определению) это сделать было необходимо. Может быть это было сделано с целью оптимизации, т.к. использовалось очень много таких переменных...
Теперь о компиляторах. Как я уже сказал, сегодня скачал FP и VP. На VP выдаётся некая загадочная ошибка периода исполнения, с которой разбираться было некогда, да и не хотелось (я в VP вообще ноль). На FP тоже выводится ошибка на стадии компиляции, но уже не такая загадочная :). Там что-то типа 'incompatible types: got "" expected "PPROC"'. Короче говоря, с этим я тоже разбираться не стал, т.к. видимо, справки по ошибкам в FP нет (по крайней мере не нашёл).
Поэтому пока получается, что работает только в TMT (а может у меня руки кривые и работает везде). Но ведь по логике код должен работать и ошибок не содержит, да и если использовать аналогичную комманду через ассемблер, то всё работает как часы... Вопрос спорный. Поэтому предлагаю перенести дискуссию в более подходящее место. Если таковое место найдётся, то сообщите мне на Strory@NewMail.ru

Ответ отправлен: 22.03.2004, 18:27
Отправитель: Strory



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (26)
C / C++ (16)
Perl (4)
Builder / Delphi (20)
Pascal (22)
Basic / VBA (6)
Java / JavaScript (7)
PHP (14)
Криптография (8)
WinAPI (14)
Радиоэлектроника (10)
Пользователю
Windows 95/98/Me (44)
Windows NT/2000/XP (57)
"Железо" (34)
Поиск информации (21)
Администратору
Windows NT/2000/XP (29)
Linux / Unix (14)
Юристу
Гражданское право (14)
Семейное право (13)
Трудовое право (13)
КоАП (10)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2004 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу


В избранное