|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
![]() |
|
Опции темы | Опции просмотра |
![]() |
#1 (permalink) |
Новичок
Регистрация: 04.09.2013
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
![]() |
![]() |
![]() |
![]() |
|
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Ранее на форуме создавались темы, которые напоминают вашу Решить дифференциальное уравнение Помогите решить дифференциальное уравнение, никак не получается |
![]() |
#3 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,809
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
![]()
Да название-то Бог с ним, хуже то, что никакого уравнения я тут вообще не вижу. Вижу некую функцию. И что с ней делать?
|
![]() |
![]() |
![]() |
#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. первый раз в паскале(( да,функция,извиняюсь |
![]() |
![]() |
![]() |
#5 (permalink) |
Новичок
Регистрация: 04.09.2013
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
![]()
пишет,что ошибка
|
![]() |
![]() |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
![]() |
#6 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,809
Сказал(а) спасибо: 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. |
![]() |
![]() |
![]() |
#7 (permalink) |
Новичок
Регистрация: 04.09.2013
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
![]()
Буду разбираться,спасибо огромное.
Можете посоветовать литературу для изучения языка программирования PASCAL? Такая беда лекция не было , а лабораторные задали |
![]() |
![]() |
![]() |
#8 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,809
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
![]()
Успехов!
Цитата:
|
|
![]() |
![]() |
![]() |
#9 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,750
Записей в дневнике: 71
Сказал(а) спасибо: 162
Поблагодарили 200 раз(а) в 84 сообщениях
Репутация: 74843
|
![]()
Справочники, мануалы и прочая литература по теме форума
Очень рекомендую вам ознакомиться с книгой "Песни о Паскале", она ориентирована как раз на начинающих. |
![]() |
![]() |
![]() |
#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
|
![]() |
Опции темы | |
Опции просмотра | |
|
|