|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
04.09.2013, 17:19 | #1 (permalink) |
Новичок
Регистрация: 04.09.2013
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите решить уравнение. Паскаль
|
04.09.2013, 17:19 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Ранее на форуме создавались темы, которые напоминают вашу Решить дифференциальное уравнение Помогите решить дифференциальное уравнение, никак не получается |
04.09.2013, 17:32 | #3 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Да название-то Бог с ним, хуже то, что никакого уравнения я тут вообще не вижу. Вижу некую функцию. И что с ней делать?
|
04.09.2013, 18:10 | #4 (permalink) |
Новичок
Регистрация: 04.09.2013
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Program lab1;
Var F,x,e,arccos,arcsin: real; Begin Writeln('x'); Readln(x); F:=sqrt(exp(ln(x)*4)-2*x)+arccos(2.5*exp(ln(e)*(-0.5)*sqr(x))); Writeln('F',F:3:3); end. первый раз в паскале(( да,функция,извиняюсь |
04.09.2013, 18:11 | #5 (permalink) |
Новичок
Регистрация: 04.09.2013
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
пишет,что ошибка
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
04.09.2013, 19:13 | #6 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
И не мудрено, тут не просто ошибка, а большой вагон ошибок.
1. От того, что Вы ввели переменную Arccos (и зачем-то Arcsin), программа не научится их считать. Арккосинус - это функция, отсутствующая среди стандартных функций Паскаля. А значит, её нужно ввести именно как функцию и грамотно описать. 2. По поводу распространённого в студенческих программах (извините) идиотизма по имени ln(e) я в своё время написал небольшое эссе. Очень рекомендую ознакомиться дабы впредь больше не позориться: Кое что о логарифмах и экспонентах 3. Почему-то из подкоренного выражения Вы волевым усилием выбросили слагаемое +3. Внимательнее! 4. Грамотное решение задачи требует предварительной проработки. Дело в том, что выражение, стоящее под знаком Arccos, не может принимать значения, превышающие 1, иначе возникнет ошибка. Решая соответствующее неравенство, находим допустимый диапазон аргумента: x² ≥ -2*Ln(0.4) или x ≥ 1.354 Исходя из этого, ввод аргумента желательно зациклить. Цикл прервётся, когда будет введено допустимое значение х. 5. Формат вывода 3:3 никуда не годится. Ведь первое число в данной записи означает ПОЛНОЕ количество значащих цифр, включая разделитель (точку), а второе - количество знаков после точки (т.е. в дробной части). Поэтому первое должно быть по крайней мере на 2 единицы больше второго. Но можно (а в данном случае - целесообразно) первым числом поставить ноль, тогда это означает, что мы фиксируем лишь число значащих цифр в дробной части, а уж в целой - сколько есть, столько и будет выведено. 6. Ну и парочка мелочей. Четвертая степень - это квадрат квадрата, и лучше так ее и вводить. В конце программы желательно поставить Readln; без аргументов - тогда выполнение прервется и можно будет рассмотреть результат. Итого: Код:
Var F,x: real; Function ArcCos(z:Real):Real; begin if Round(z*10000000)=10000000 then ArcCos:=0 else if Round(z*10000000)=-10000000 then ArcCos:=Pi else ArcCos:=(Pi/2)-ArcTan(z/Sqrt(1-z*z)); end; Begin Repeat Write('x= ' ); Readln(x); If x<Sqrt(-2.0*Ln(0.4)) then Writeln('Error! X must be >1.354!!!'); Until x>=Sqrt(-2.0*Ln(0.4)); F:=Sqrt(Sqr(Sqr(x))-2*x+3)+ArcCos(2.5*Exp(-0.5*Sqr(x))); Writeln('F= ',F:0:3); Readln End. |
04.09.2013, 20:34 | #7 (permalink) |
Новичок
Регистрация: 04.09.2013
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Буду разбираться,спасибо огромное.
Можете посоветовать литературу для изучения языка программирования PASCAL? Такая беда лекция не было , а лабораторные задали |
04.09.2013, 20:54 | #8 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Успехов!
Цитата:
|
|
06.09.2013, 07:51 | #9 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,794
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Справочники, мануалы и прочая литература по теме форума
Очень рекомендую вам ознакомиться с книгой "Песни о Паскале", она ориентирована как раз на начинающих. |
10.09.2013, 22:30 | #10 (permalink) |
Новичок
Регистрация: 04.09.2013
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
а вот можете объяснить что значат эти строчки
if Round(z*10000000)=10000000 then ArcCos:=0 else if Round(z*10000000)=-10000000 then ArcCos:=Pi else |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|