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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.10.2008, 18:45   #1
+Hitman+
Пользователь
 
Регистрация: 24.02.2008
Сообщений: 17
По умолчанию Помогите пожалучта с задачей

Даны действительные числа s,t,a10..a12 получить p*(1)-P*(t)+p(в квадрате)*(s-t)-p(в кубе), где p(x)=a12*x(в12 степени) + a11*(x в 11 степени)+...+а0.
Сори за то что пишу в скобках степень, не нашёл как написать индексы, внизу и вверху.
Program aaaA;
type b=array [0..12] of integer;
var s,t,x,d1,d2:real;
i:integer;
Procedure R(a:b;x:real;var F:real);
var i:integer;
begin
F:=a[0];
For i:=1 to 12 do
begin
f:=a[i]*exp(i*ln(abs(x)))*abs(x)/x+f;
End;
end;
begin
For i:=0 to 12 do
begin
b[i]:= random(121); {вот тут у меня выдаёт ошибку}
End;
write('vvedite s');readln(s);
write('vvedite t');readln(t);
R(1,d);
R(t,d1);
R(s-t,d2);
z:=d-d1+sqr(d2)-sqr(d)*d;
write('z=,'z:0:2); end.
+Hitman+ вне форума Ответить с цитированием
Старый 07.10.2008, 19:12   #2
-=<[Evklidd]>=-
Форумчанин Подтвердите свой е-майл
 
Аватар для -=<[Evklidd]>=-
 
Регистрация: 22.01.2008
Сообщений: 161
По умолчанию

Конечно выдавать будет, потому что b - это тип, который вы объявили, а не переменная-массив! Создайте какую-либо переменную типа b в разделе var и вот к ней уже и обращайтесь.
ЗЫ И советую убрать лишние begin-end; в циклах с одним оператором - проще код читать/
ЗЗЫ У вас еще и вот здесь ошибки:
Цитата:
R(1,d);
R(t,d1);
R(s-t,d2);
, так как передаете только два параметра вместо трех во всех трех вызовах процедуры R, да и переменную d вы не объявили!

Последний раз редактировалось -=<[Evklidd]>=-; 07.10.2008 в 19:18.
-=<[Evklidd]>=- вне форума Ответить с цитированием
Старый 07.10.2008, 19:15   #3
+Hitman+
Пользователь
 
Регистрация: 24.02.2008
Сообщений: 17
По умолчанию

спасибо, но вы не могли бы написать как правильно, когда я не ввожу в type то тоже выдаёт ошибку но не там а тут:
F:=a[0];
ЗЫ и мне посоветовали ввести в type
+Hitman+ вне форума Ответить с цитированием
Старый 07.10.2008, 19:17   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

У Вас нет переменной b, есть только тип-массив. Надо объявить переменную типа b. Кроме того вообще непонятно
R(1,d);
R(t,d1);
В процедуре объявлено три параметра, у Вас 2, причем первым должен быть массив.
puporev вне форума Ответить с цитированием
Старый 07.10.2008, 19:22   #5
-=<[Evklidd]>=-
Форумчанин Подтвердите свой е-майл
 
Аватар для -=<[Evklidd]>=-
 
Регистрация: 22.01.2008
Сообщений: 161
По умолчанию

Цитата:
спасибо, но вы не могли бы написать как правильно, когда я не ввожу в type то тоже выдаёт ошибку но не там а тут:
F:=a[0];
ЗЫ и мне посоветовали ввести в type
Свой тип-массив под названием b вы должны оставить, просто надо дополнительно создать переменную этого типа и к ней уже обращаться.
Вот код:
Код:
Program aaaA;
type b=array [0..12] of integer;
var 
s,t,x,d1,d2, d:real;
i:integer;
x:b;
Procedure R(a:b;x:real;var F:real);
var i:integer;
begin
F:=a[0];
For i:=1 to 12 do
f:=a[i]*exp(i*ln(abs(x)))*abs(x)/x+f;
end;
begin
For i:=0 to 12 do
x[i]:= random(121); {вот тут у меня выдаёт ошибку}
write('vvedite s');readln(s);
write('vvedite t');readln(t);
R(x,1,d);
R(x,t,d1);
R(x,s-t,d2);
z:=d-d1+sqr(d2)-sqr(d)*d;
write('z=,'z:0:2); end.

Последний раз редактировалось -=<[Evklidd]>=-; 07.10.2008 в 19:26.
-=<[Evklidd]>=- вне форума Ответить с цитированием
Старый 07.10.2008, 19:35   #6
+Hitman+
Пользователь
 
Регистрация: 24.02.2008
Сообщений: 17
По умолчанию

спасибо, а у вас не выдаёт ошибку тут:
x:b;
так получается что мы х используем два раза и выдаёт 4 ошибку, нужно убрать х от сюда s,t,x,d1,d2, d:real; ?
а после этого тут write('z=,'z:0:2); end.

Последний раз редактировалось +Hitman+; 07.10.2008 в 19:41.
+Hitman+ вне форума Ответить с цитированием
Старый 07.10.2008, 19:56   #7
-=<[Evklidd]>=-
Форумчанин Подтвердите свой е-майл
 
Аватар для -=<[Evklidd]>=-
 
Регистрация: 22.01.2008
Сообщений: 161
По умолчанию

Да, вы правы, просто торопился, не заметил, что переменная x уже была объявлена.
Цитата:
а после этого тут write('z=,'z:0:2); end.
Вообще-то и переменная z у ваc тоже не объявлена в var, к тому же в операторе write вынесите запятую из кавычек или добавьте еще одну

Вот выкладываю код вашей программы без ошибок:
Код:
Program aaaA;
type b=array [0..12] of integer;
var s,t,d1,d2,d,z:real;
i:integer;
l: b;
Procedure R(a:b; x:real; var F:real);
begin
F:=a[0];
For i:=1 to 12 do
f:=a[i]*exp(i*ln(abs(x)))*abs(x)/x+f;
end;
begin
For i:=0 to 12 do
l[i]:= random(121);
write('vvedite s');readln(s);
write('vvedite t');readln(t);
R(l,1,d);
R(l,t,d1);
R(l,s-t,d2);
z:=d-d1+sqr(d2)-sqr(d)*d;
write('z= ',z:0:2); end.

Последний раз редактировалось -=<[Evklidd]>=-; 07.10.2008 в 20:12.
-=<[Evklidd]>=- вне форума Ответить с цитированием
Старый 07.10.2008, 20:17   #8
+Hitman+
Пользователь
 
Регистрация: 24.02.2008
Сообщений: 17
По умолчанию

-=<[Evklidd]>=- спасибо большое!
+Hitman+ вне форума Ответить с цитированием
Старый 07.10.2008, 20:24   #9
-=<[Evklidd]>=-
Форумчанин Подтвердите свой е-майл
 
Аватар для -=<[Evklidd]>=-
 
Регистрация: 22.01.2008
Сообщений: 161
По умолчанию

Хочешь сказать "спасибо" - оставь положительный отзыв о моем сообщении(-ях) ("весы" под репутацией и рядом со статусом offline/online). Тебе ведь мелочь - а мне приятно
-=<[Evklidd]>=- вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с задачей. terminadoor Помощь студентам 4 22.07.2008 18:38
Помогите с задачей на С++ Nemisoi Помощь студентам 1 22.04.2008 22:09
Помогите с задачей Лёха Паскаль, Turbo Pascal, PascalABC.NET 7 08.02.2008 20:08
Помогите с задачей bel_ka Общие вопросы C/C++ 13 26.12.2007 19:23