0 / 0 / 0
Регистрация: 16.10.2019
Сообщений: 14
|
|
1 | |
Образовать по рекуррентным формулам последовательности A и B28.10.2019, 15:09. Показов 1162. Ответов 13
Метки нет Все метки)
(
Нужно образовать по рекуррентным формулам a[i]=F(a[i-1];b[i-1]) и b[i]=G(a[i-1];b[i-1]); две последовательности чисел A и B(в простом цикле);
исходные данные F:=(1-a/1-b*b)*sin(a*a+a*b+2); G:=0,8+2*sin(b)-5,5*(sqr(sin(a))); Заранее спасибо за помощь ![]()
0
|
|
28.10.2019, 15:09 | |
Ответы с готовыми решениями:
13
Составить программу вычисления по рекуррентным формулам без использования массивов
|
Модератор
9734 / 5071 / 3285
Регистрация: 17.08.2012
Сообщений: 15,619
|
|
29.10.2019, 04:02 | 2 |
Если следовать правилам чтения математических формул, то
На 1 делить бессмысленно, значит, Вы неверно написали формулу. Уточните задание.
0
|
0 / 0 / 0
Регистрация: 16.10.2019
Сообщений: 14
|
|
29.10.2019, 10:20 [ТС] | 3 |
Хм, в моём задании так и написано. Наверное, так F:=((1-a)/(1-b*b))*sin(a*a+a*b+2);
0
|
Модератор
9734 / 5071 / 3285
Регистрация: 17.08.2012
Сообщений: 15,619
|
||||||
29.10.2019, 13:30 | 4 | |||||
Буду считать, что первые члены последовательности задаются пользователем.
0
|
0 / 0 / 0
Регистрация: 16.10.2019
Сообщений: 14
|
|
29.10.2019, 17:46 [ТС] | 5 |
Кажется, Вы не учли, что каждый член последовательности зависит от предыдущего. И хотелось бы реализацию именно через функцию.
0
|
Модератор
9734 / 5071 / 3285
Регистрация: 17.08.2012
Сообщений: 15,619
|
||||||
29.10.2019, 18:27 | 6 | |||||
Почему Вы так решили? Учёл, естественно.
Через функции запросто... Правда, незачем, но раз надо, значит, надо... Единственное, так как функций получается две, придётся запоминать предпоследний член одной из последовательностей, чтобы его можно было использовать во второй функции.
1
|
0 / 0 / 0
Регистрация: 16.10.2019
Сообщений: 14
|
|
29.10.2019, 21:15 [ТС] | 7 |
Спасибо! Это только часть моего задания, и я не знала, как ее правильно реализовать, поэтому вам кажется, что бессмысленно
Добавлено через 1 час 48 минут И еще кое-что, можете объяснить цикл в вашем коде? Точнее, вот эту строку writeln(ai:16, ' ', bi:16); И почему индексы написаны так "bi", а не так b[i]. Разве не нужно ввести массив? Добавлено через 23 минуты То есть, пользуясь вашим способом, я могу эти последовательности потом сравнить? находить аi, для которых ai+bk<0 , например.
0
|
Модератор
9734 / 5071 / 3285
Регистрация: 17.08.2012
Сообщений: 15,619
|
||||||
29.10.2019, 22:12 | 8 | |||||
ai и bi - это просто имена переменных. Назвал я их так, чтобы они отличались от имён формальных параметров функций
function fg(a, b: real): real; Можете переименовать их во что угодно. Например, в number_a и number_b, или просто в a и b, так тоже пойдёт. Никаких индексов в программе и в помине нет, поскольку массивы не используется. Сами же написали: "Нужно образовать <...> две последовательности чисел...". Для формирования последовательностей массивы, как правило, не требуются. Если нужно хранить последовательности, тогда массивы требуются. Но в задании ни слова о хранении последовательности, поэтому массивы нужны как зайцу стоп-сигнал. Но, если Вы желаете иметь в запасе какое-то количество членов последовательности, массивы придётся ввести. Хотя, и не обязательно: можно вычислять нужный член последовательности каждый раз заново. Это дольше по времени, но всё же имеет право на жизнь. Нажмите, чтобы узнать, что такое :16
Запись вида ai :16 - это форматированный вывод. В сколько позиций выводить предшествующую этому суффиксу переменную ai, в данном случае, в 16 позиций.
Суффиксы вида :m могут применяться для выводимых данных любого типа. Например, в строке 22 такой суффикс применяется для вывода символа. Кроме того, для вещественных данных применяется суффикс вида :m:n, где m - сколько всего отводить позиций под число (вместе со знаком и десятичной точкой), n - количество цифр после десятичной точки. Если указать m меньше, чем необходимо, то всё равно переменная выводится полностью, в минимально возможное (но большее m) количество позиций. Вот Вам программа с массивами:
Недостаток: размеры последовательностей ограничены размером статических массивов, применяемых для их хранения. Так, на всякий случай: укажите, на котором диалекте паскаля Вы собираетесь писать Вашу работу? Может быть, для хранения последовательностей будет возможно применить динамические массивы? Или типизированные файлы... Или связные списки... Учтите, что Pascal ABC и Pascal ABC.NET - это совершено разные диалекты паскаля. Первый - учебный, второй - мощная среда разработки на основе технологии .NET, помесь усовершенствованного Pascal ABC и C#. В нём есть, кстати, средства работы с последовательностями, лямбда-выражения и много ещё всякого... Не сказал бы, что лёгкого.
0
|
0 / 0 / 0
Регистрация: 16.10.2019
Сообщений: 14
|
|
29.10.2019, 23:57 [ТС] | 9 |
Работу я пишу на pascalABC.net , но могу выбрать и другой диалект. Это моя первая семестровая работа в вузе, поэтому многих нюансов я ещё не знаю.
0
|
Модератор
9734 / 5071 / 3285
Регистрация: 17.08.2012
Сообщений: 15,619
|
|
30.10.2019, 20:20 | 10 |
Luiza27, у Вас непростой выбор: писать программу в стиле классического паскаля, или же так, как Вам больше нравится. Рубль за сто даю, что учили Вас классическому паскалю, а в качестве компилятора порекомендовали Pascal ABC.NET. Если желаете классический паскаль, то установите Lazarus (Delphi-подобная среда программирования на основе Free Pascal Compiler (FPC), бесплатная, с открытыми исходниками (лицензия GNU GPL). Очень удобная и мощная среда, позволяет писать программы на паскале практически для чего угодно. Можете писать в стиле классического паскаля в среде Pascal ABC.NET, почему бы и нет. Но! Тогда грех не воспользоваться нехилыми возможностями PABC.NET, тем более, что он просто создан для работы с последовательностями! Однако, для работы с последовательностями, несмотря на свою любовь к паскалю, я бы всё же порекомендовал C#, поскольку лучше использовать первоначальную и порядком развитую идею, чем перевод этой идеи на паскаль, пусть и весьма неплохой. Но, если паскаль ближе - то чего бы и не PABC.NET. Почитайте отзывы, описания, справки. При желании - изучите выбранный диалект (FPC, PABC.NET, Delphi). Это я вот к чему: Вы используете PABC.NET, но возможностей его не знаете даже на 1%, просто потому, что Вас этому не учили. Выбор за Вами. Могу дать рекомендации, но чуда не произойдёт: программировать Вам всё равно на том, что Вам ближе.
0
|
0 / 0 / 0
Регистрация: 16.10.2019
Сообщений: 14
|
|
30.10.2019, 20:58 [ТС] | 11 |
Спасибо большое, но сейчас я изучаю именно программирование, а не паскаль и его возможности. То есть программы мне писать нужно так, чтобы они не зависели от языка программирования. Надеюсь, я правильно выразилась.
0
|
Модератор
9734 / 5071 / 3285
Регистрация: 17.08.2012
Сообщений: 15,619
|
|
30.10.2019, 21:29 | 12 |
Luiza27, это как раз очень и очень правильно. Одобряю. Главное - это понять, как написать программу, а на каком языке это дело будете реализовывать - это уже детали. Вообще, считаю, что холивары о преимуществах того или иного языка - это всего лишь от незнания. После изучения синтаксиса третьего, ну, может быть, четвёртого, языка, всякие холивары начинают выглядеть, как минимум, смешно, а, если точнее, нелепо. Каждый язык имеет свои преимущества, поэтому пишешь на том, на чём удобнее. Если нужны новые возможности - просто учишь новый язык.
0
|
0 / 0 / 0
Регистрация: 16.10.2019
Сообщений: 14
|
|
30.10.2019, 21:31 [ТС] | 13 |
Могу я отправить вам в лс свой код? Очень бы хотелось, чтобы знающий человек его проверил... есть кое-какие проблемы.
0
|
Модератор
9734 / 5071 / 3285
Регистрация: 17.08.2012
Сообщений: 15,619
|
|
30.10.2019, 22:34 | 14 |
Luiza27, не надо. В тематических разделах обсуждение вопроса темы где-либо, кроме самой темы, запрещено. Смотрите правила форума, пункт 4.6. Пишите прямо сюда. И не такой уж я суперзнающий. Здесь есть и поумнее меня специалисты.
0
|
30.10.2019, 22:34 | |
30.10.2019, 22:34 | |
Помогаю со студенческими работами здесь
14
Найти элемент последовательности, заданной рекуррентным выражением
Вычисление n-го члена числовой последовательности, заданной рекуррентным соотношением Задачка по рекуррентным соотношениям: вычислить первые n элементов последовательности Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |