Добрый день! Подскажите, что здесь можно сделать(я думаю, что-то с рекурсией). Я не очень понимаю задание. Функция F(x) определена с помощью ряда F(x)=Сумма при n от 1 до бесконечности Xn /n3 . (где сумма, там значок сигма).Из заданного массива Y выделить и упорядочить по возрастанию только те элементы, для которых заданная точность вычисления F(Y[i]) достигается при суммировании не более m слагаемых.
Добрый день, 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 не объяснил, зачем ему нужно было именно так, как он написал (т.е. с указателями), а не поняв вопроса трудно дать правильный ответ. Поэтому ответ был дан именно в ПОНИМАНИИ вопроса (читай домысла :) каждого конкретного
эксперта. Кстати, если в ТМТ этот код работает, а в остальных реализациях Паскаля нет, то это не значит, что правильная реализация именно в ТМТ :)). Без обид :). Может быть я и не прав :).
Здравствуйте, 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.