• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте, чтобы узнать больше. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Помогите с лабораторкой, Паскаль

  • Автор темы Автор темы dimaua2
  • Дата начала Дата начала

dimaua2

Ученик
Почётный участник
Регистрация
7 Май 2011
Сообщения
162
Реакции
0
Баллы
0
Помогите с лабораторкой, Паскаль

Есть задание я его решил на половину...там кароче гужно в паскаль перевести я пол уравнения сделал, а икс не понял как...
посмотрите пожалуйста и помогите просто написать Y:=.....
задание Lb_1.webp
вот, что получилось (строчка подчеркнута по бокам...место где я не дописал тоже подчеркнуто снизу..помогите написать верный вариант этой строчки) Lb_2.webp

[mod2]Наведайтесь сюда, пожалуйста: у нас не принято пользоваться сторонними хостингами.

Модератор[/mod2]

 
Последнее редактирование:
Ну что же - всё правильно, просто там, где у Вас подчеркнуто, нужно заменить.
У Вас:
" sin(x)".
Надо:
"exp(sin(x)*Ln(x))"
И всего-то.
P.S. Кстати, деление на exp(-x) можно заменить умножением на exp(x). Но это уж дело вкуса.
 
Ну что же - всё правильно, просто там, где у Вас подчеркнуто, нужно заменить.
У Вас:
" sin(x)".
Надо:
"exp(sin(x)*Ln(x))"
И всего-то.
P.S. Кстати, деление на exp(-x) можно заменить умножением на exp(x). Но это уж дело вкуса.

Y:= EXP ((1/5)* ln (exp(sin(x)*Ln(x)) + 2*sqr(x))) / EXP (-x);
вот так?
просто я думал, думал и вот так еще пытался....
Y:= EXP ((1/5)* ln (x*sin(x) + 2*sqr(x))) / EXP (-x);
 
Y:= EXP ((1/5)* ln (exp(sin(x)*Ln(x)) + 2*sqr(x))) / EXP (-x);
вот так?
просто я думал, думал и вот так еще пытался....
Y:= EXP ((1/5)* ln (x*sin(x) + 2*sqr(x))) / EXP (-x);



===================================
по вашему способу выдает ошибку(
Lb_3.webp Lb_4.webp

по моему тоже Lb_5.webp

точно такая же ошибка....


П.С:сори за картинки в след раз сделаю как надо (просто миниатюрами в текст я не понял как вставить)
 
по вашему способу выдает ошибку, по моему тоже точно такая же ошибка....
Так. Прежде всего, я прошу вас усвоить одну истину: текст (листинг) программы - это не школьное сочинение, тут требуется АБСОЛЮТНАЯ точность и правильность расстановки всех значков. "Общих соображений" транслятор не понимает. А что у Вас? Да целый букет ошибок, неряшливостей и т.п. Что-то написали шаляй-валяй и хотите, чтобы программа заработала? Нет, не пойдёт. Тут только аргумент оператора writeln чего стОит! Почему Вы вплюхали туда разделитель "точка с запятой"? Ему там делать ровно нечего, нужна запятая. Текстовый вывод 'Y=' не взят в кавычки. Ну и т.п.
В общем, вот работающий код:
Код:
uses CRT;
var x,y:real;
begin
 clrscr;
 write('x= ');
 readln(x);
 Y:=Exp(1/5*Ln(exp(sin(x)*Ln(x))+2.0*sqr(x)))/Exp(-x);
 Writeln('x= ',x:0:2,'  Y= ',Y:0:8);
 Readln;
end.
П.С:сори за картинки в след раз сделаю как надо (просто миниатюрами в текст я не понял как вставить)
Да уж, пожалуйста. Сейчас я опять сделал это за Вас.
 
Так. Прежде всего, я прошу вас усвоить одну истину: текст (листинг) программы - это не школьное сочинение, тут требуется АБСОЛЮТНАЯ точность и правильность расстановки всех значков. "Общих соображений" транслятор не понимает. А что у Вас? Да целый букет ошибок, неряшливостей и т.п. Что-то написали шаляй-валяй и хотите, чтобы программа заработала? Нет, не пойдёт. Тут только аргумент оператора writeln чего стОит! Почему Вы вплюхали туда разделитель "точка с запятой"? Ему там делать ровно нечего, нужна запятая. Текстовый вывод 'Y=' не взят в кавычки. Ну и т.п.
В общем, вот работающий код:
Код:
uses CRT;
var x,y:real;
begin
 clrscr;
 write('x= ');
 readln(x);
 Y:=Exp(1/5*Ln(exp(sin(x)*Ln(x))+2.0*sqr(x)))/Exp(-x);
 Writeln('x= ',x:0:2,'  Y= ',Y:0:8);
 Readln;
end.
Да уж, пожалуйста. Сейчас я опять сделал это за Вас.

спасибо, сейчас посмотрю....задачу делал сам т.к. информатик толком не объяснил, а задание уже дал....у нас он старенький, иногда бывает объяснит одной группе и думает, что все объяснил, а задание всем даеит и причем разное...я читал в инете, что понял то и пытался написать
 
спасибо, сейчас посмотрю....задачу делал сам т.к. информатик толком не объяснил, а задание уже дал....у нас он старенький, иногда бывает объяснит одной группе и думает, что все объяснил, а задание всем даеит и причем разное...я читал в инете, что понял то и пытался написать

заработало!!!спасибо
правда я немного не понял с разу написал реадлн и врайтлн с маленькой буквы и не ставил пробелы у всех строчек после бегин в общем вышло так
uses CRT;
var x,y:real;
begin
clrscr;
write('x= ');
readln(x);
Y:=Exp(1/5*Ln(exp(sin(x)*Ln(x))+2.0*sqr(x)))/Exp(-x);
writeln('x= ',x:0:2,' Y= ',Y:0:8);
readln;
end.

выдало ошибку, написал в точности как сделали вы и вуаля заработало....выходит надо всегда отступать? и с большой те слова писать? (или я мог случайно где-то ошибиться и ничего не получалось?просто я читал что вроде паскаль к регистру не чуствителен)
 
и можно еще один вопросик, когда пишу число 9 все ок когда пишу 200 пишет
Error 205: Floating point overflow.
вы знаете, что это значит?
 
и если все же скажите скажите как сделать циклически, что бы прога повторялась...а то я несколько раз вставлял код и оно поторялось, но может как то можно сделать без вставки кода как то бесконечно
 
заработало!!!спасибо правда я немного не понял с разу написал реадлн и врайтлн с маленькой буквы и не ставил пробелы у всех строчек после бегин
Расстановка регистров букв, а также отступов, "лесенок" и прочего форматирования листинга - исключительно для удобства и повышения читабельности. Транслятору это всё равно.
и можно еще один вопросик, когда пишу число 9 все ок когда пишу 200 пишет Error 205: Floating point overflow. вы знаете, что это значит?
Это значит переполнение разрядной сетки, в данном случае машина не может справиться с вычислением Exp(x) при таких огромных аргументах. Поэтому значения х нужно выбирать разумно.
и если все же скажите скажите как сделать циклически, что бы прога повторялась...а то я несколько раз вставлял код и оно поторялось, но может как то можно сделать без вставки кода как то бесконечно
Запросто. Например, так:
Код:
uses CRT;
var x,y:real;
begin
 clrscr;
 Repeat
  write('Enter x, "0" to quit. x= ');
  readln(x);
  if (x<0) or (x>20) then
   writeln('Invalid x!')
  else
   if x>0 then
    begin
     Y:=Exp(1/5*Ln(exp(sin(x)*Ln(x))+2.0*sqr(x)))/Exp(-x);
     Writeln('x= ',x:0:2,'  Y= ',Y:0:8);
    end;
 Until x=0;
end.
Заодно там вставлен контроль диапазона допустимых значений аргумента.
 
вышло так uses CRT; var x,y:real; begin clrscr; write('x= '); readln(x); Y:=Exp(1/5*Ln(exp(sin(x)*Ln(x))+2.0*sqr(x)))/Exp(-x); writeln('x= ',x:0:2,' Y= ',Y:0:8); readln; end. выдало ошибку
Уж не знаю, почему. Проверил - код абсолютно правильный. У меня никаких ошибок не выдало.
 
Назад
Сверху