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

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

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

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

Задание в паскале. Помогите с решением

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

Valet

Новые
Регистрация
15 Мар 2011
Сообщения
21
Реакции
0
Баллы
0
Задание в паскале. Помогите с решением

задание: составить программу для расчета графика функции, заданной параметрами при изменениипараметра t от a до b с шагом h

За ранние спасибо
 

Вложения

  • 123 001.webp
    123 001.webp
    11.3 KB · Просмотры: 81
В знаменателе 2 или Z?
 
Точно не уверен в правильности программы, ибо задача поставлена не очень ясно. Не понятно нужно ли вводить значение переменной E или нет. Я решил ввести, если что сами исправите. Программа немного громоздка, если кто исправит, будет замечательно)
Вот код:
Код:
Program graf;
uses crt;
var
i,a,b,h,t:integer;
x,e,y,z,x1,x2,x3:real;
begin
writeln(' - MENU -');
writeln('1 - FORMULA 1, 2 - FORMULA 2');
write('Enter Number:');
read(t);
if(t=1)
then
begin
writeln('Enter a,b,h,e=');
read(a,b,h,e);
for i:=a to b do
begin
if(i>=b)
then
break;
i:=i+h;
x:=power(e,i);
x1:=power(e,-i);
writeln('Otvet: ',x,'+',x1,' /2 - ',(i),' = ',((x+x2/2)-i));
end;
end;
if(t=2)
then
begin
writeln('Enter a,b,h,e=');
read(a,b,h,e);
for i:=a to b do
begin
if(i>=b)
then
break;
i:=i+h;
x2:=power(e,i);
x3:=power(e,i);
writeln('Otvet: ',x2,'-',x3,' /2 - ',(1),' = ',((x2-x3/2)-1));
end;
end;
end.
 
Может быть, я бы и помог, но - увы: знаний не хватает! Дело в том, что символ smb.webp (он крайний правый в формуле) я встретил впервые в жизни и значения его не ведаю.

ZEKE
, это как понимать:
Код:
x2:=power(e,i); 
x3:=power(e,i);
Не знаю, может быть в АВС и добавлена стандартная функция возведения в степень, но вряд ли оттуда убрана обычная показательная функция, а потому куда резоннее написать так:
Код:
x2:=Exp(i); 
x3:=Exp(-i);
И никакого е вводить (и уж тем более консольно!) не требуется.
 
Этот символ как я понял, единица. Судя по размазанному почерку)
Насчет EXP, вы правы. Я про нее и не подумал)
 
Владимир, подскажите пожалуйста функцию для округления вещественных чисел до двух знаков)
 
Исправил немного, получилось так:
Код:
Program graf;
uses crt;
var
i,a,b,h,t:integer;
x,y,z,x1,x2,x3:real;
begin
writeln(' - MENU; -');
writeln('1 - FORMULA 1, 2 - FORMULA 2');
write('Enter number:');
read(t);
if(t=1)
then
begin
writeln('Enter a,b,h=');
read(a,b,h);
for i:=a to b do
begin
if(i>=b)
then
break;
i:=i+h;
x:=exp(i);
x1:=exp(-i);
writeln('Otvet: ',x:8:3,'+',x1:8:4,' /2 - ',(i),' = ',((x+x1/2)-i):8:3);
end;
end;
if(t=2)
then
begin
writeln('Enter a,b,h=');
read(a,b,h);
for i:=a to b do
begin
if(i>=b)
then
break;
i:=i+h;
x2:=exp(i);
x3:=exp(i);
writeln('Otvet: ',x2:8:3,'-',x3:8:3,' /2 - ',(1),' = ',((x2-x3/2)-1):8:3);
end;
end;
end.
 
Владимир, подскажите пожалуйста функцию для округления вещественных чисел до двух знаков)
Если по рабоче-крестьянски, то так:
y:=(Round(x*100))/100;
Может быть, и поумнее как-нибудь можно, не знаю.
 
Спасибо.
 
прошу прощения за потчерк, там было 2 и в самом конце второй формулы 1
 
Задача как надо?)))
 
ну сын заболел, пока не смотрели вмести с ним, я то плохо в этом разбираюсь) ну надеюсь все правильно. Большое спасибо!
 
что делает break в формуле?
 
как нибуть без брейка можно сделать?
 
как нибуть без брейка можно сделать?
Можно. Например, так:
Код:
VAR
 a,b,h,t:Real;
 N,i:Word;

Function X(Tx:Real):Real;
begin
 X:=0.5*(Exp(Tx)+Exp(-Tx))-Tx;
end;

Function Y(Ty:Real):Real;
begin
 Y:=0.5*(Exp(Ty)-Exp(-Ty))-1;
end;

BEGIN
 Write('Lower T value = ');
 ReadLn(a);
 Write('Upper T value = ');
 ReadLn(b);
 Write('Step T value = ');
 ReadLn(h);
 N:=Trunc((b-a)/h);
 For i:=0 to N do
  begin
   t:=a+h*i;
   WriteLn(X(t):10:5,Y(t):20:5);
  end;
 Readln;
END.
 
Function X(Tx:Real):Real; а без этого? просто они такое еще не проходили, надо задачу как то по простому сделать с помощью ветвления в ветвлении
 
Function X(Tx:Real):Real; а без этого? просто они такое еще не проходили, надо задачу как то по простому сделать с помощью ветвления в ветвлении
Можно и без функций. И даже без ветвлений.
Код:
VAR
 a,b,h,t,x,y:Real;
 N,i:Word;

BEGIN
 Write('Lower t value = ');
 ReadLn(a);
 Write('Upper t value = ');
 ReadLn(b);
 Write('Step t value = ');
 ReadLn(h);
 N:=Trunc((b-a)/h);
 For i:=0 to N do
  begin
   t:=a+h*i;
   x:=0.5*(Exp(t)+Exp(-t))-t;
   y:=0.5*(Exp(t)-Exp(-t))-1;
   WriteLn(x:10:5,y:20:5);
  end;
 Readln;
END.
 
Ну так совсем не интересно)))
 
нужно имено с ветвлением)
 
Назад
Сверху