Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2011, 16:15   #1
Мария Сафонова
 
Регистрация: 27.03.2011
Сообщений: 7
Восклицание

помогите пожалуйста решить задачу,так как плохо разбираюсь в паскале

лаба5.jpg

помогите решить..срочно.через процедуры

Последний раз редактировалось Stilet; 27.03.2011 в 19:52.
Мария Сафонова вне форума Ответить с цитированием
Старый 27.03.2011, 19:44   #2
Летучий_СкилетиК
Форумчанин
 
Аватар для Летучий_СкилетиК
 
Регистрация: 04.02.2011
Сообщений: 260
По умолчанию

Цитата:
Сообщение от Мария Сафонова Посмотреть сообщение
помогите решить..срочно.через процедуры
срочно= фриланс, или лично ко мне в личку или скайп maksim366780
Летучий_СкилетиК вне форума Ответить с цитированием
Старый 27.03.2011, 20:01   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

С потолка:
Код:
const a:array[1..13] of integer =(2,1,7,9,0,4,8,6,5,12,11,10,3);

function p(x:double):double;
var i:integer;
begin
 for i:=13 downto 1 do   p:=a[i]*exp((i+1)*ln(x))+p;
end;

function z:Double;begin z:=p(1)-p(12.6)+sqr(p(0.14-12.6))+p(1)*p(1)*p(1);end;

begin
 Write(z);
 readln;
 ...
 А вот написание суммирования предоставляю автору.
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.03.2011, 20:05   #4
Мария Сафонова
 
Регистрация: 27.03.2011
Сообщений: 7
По умолчанию

дальше попробую разобраться.спасибо
Мария Сафонова вне форума Ответить с цитированием
Старый 27.03.2011, 21:29   #5
Мария Сафонова
 
Регистрация: 27.03.2011
Сообщений: 7
Печаль

нет,не работает.выдает ошибку в строке function p(x : double) : double;
пишет неизвестное имя типа
Мария Сафонова вне форума Ответить с цитированием
Старый 27.03.2011, 22:27   #6
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Поменяйте на это
Код:
function p(x:double):Double;
var i:integer; Sm:Double;
begin
 Sm:=0;
 for i:=13 downto 1 do
 Begin
  Sm:=Sm+a[i]*(exp((i-1)*ln(x)));
 End;
 P:=Sm
end;
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 27.03.2011, 22:47   #7
Мария Сафонова
 
Регистрация: 27.03.2011
Сообщений: 7
Восклицание

вообщем всеравно вот что выдает

ооооо.jpg

или как то направильно заменила.
ошибка
Мария Сафонова вне форума Ответить с цитированием
Старый 28.03.2011, 18:17   #8
Летучий_СкилетиК
Форумчанин
 
Аватар для Летучий_СкилетиК
 
Регистрация: 04.02.2011
Сообщений: 260
По умолчанию

p(0.14-12.6) - это есть значение аргумента этого exp((i-1)*ln(x)), т.е ln(от отрицательного), не может быть,тут либо по модулю, либо рассматривать как комлексные числа.
через процедуры решается вроде так:
Код:
const a:array[0..12] of integer =(2,1,7,9,0,4,8,6,5,12,11,10,3);
var x : real;
procedure p(x:real; var Sm : real);
var i:integer;
    s : real;
begin
 Sm:=0;
 s := 0;
 for i:=12 downto 0 do
 begin
     Sm:=Sm+a[i]*(exp((i-1)*ln(abs(x))));
     s := s + (a[i] * exp(i*ln(abs(x))));
 end;
 writeln('For x=',x,' s =',s:10:2);
end;

procedure z(var z_ : real);
var x1, x2, x3 :real;
begin
   p(1,x1);
   p(12.6,x2);
   p(0.14-12.6,x3);
   z_:=x1-x2+sqr(x3)+sqr(x1)*x1;
end;

begin
z(x);
Write(x);
readln;
end.

Последний раз редактировалось Летучий_СкилетиК; 28.03.2011 в 18:36.
Летучий_СкилетиК вне форума Ответить с цитированием
Старый 28.03.2011, 18:54   #9
val_nnm
Форумчанин
 
Регистрация: 18.10.2009
Сообщений: 185
По умолчанию

А можно ещё немного упростить
Замените процедуру p вот на это
Код:
procedure p(x:real; var Sm : real);
var i:integer;
     xi:real;
begin
 Sm:=0;
 xi = 1;
 for i:=0 to 12 do
 begin
     Sm:=Sm+a[i]*xi;
     xi := xi*x;
 end;
end;

Кстати Мария. Уточните вам именно через процедуры нужно? (Летучий_СкилетиК вам написали через процедуры, но через функции былобы намного красивее)
На С# пишу лучше чем на русском.
"У меня правильнописание хромает. Оно хорошее, но почему-то хромает."

Последний раз редактировалось val_nnm; 28.03.2011 в 18:57.
val_nnm вне форума Ответить с цитированием
Старый 29.03.2011, 17:13   #10
Мария Сафонова
 
Регистрация: 27.03.2011
Сообщений: 7
По умолчанию

да если бы красивее то без проблем.а тут именно через процедуры.проверю
Мария Сафонова вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны действительные числа margarit Паскаль, Turbo Pascal, PascalABC.NET 0 13.01.2011 20:00
Даны действительные числа, а1 а20 . Zhasik Паскаль, Turbo Pascal, PascalABC.NET 1 30.12.2010 15:20
Даны действительные числа а1, а2, ..., аn. Figushkin Помощь студентам 4 08.06.2010 14:35
Даны действительные числа а1, а2, ..., аn. Figushkin Помощь студентам 0 30.05.2010 11:17
Даны действительные числа x, y, z Вычислить: Mystalla Помощь студентам 2 02.03.2010 00:17