Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ одномерный массив через функцию

Автор: RIJIKOV 15.12.2006 15:50

Задана последовательность N веще6ственных чисел.Вычислить значение выражения: корень в N степени,под корнем по модулю x1*x2*...xn( или s=exp(sqrt(abs(s))); )



program zadacha;
uses crt;
var n:integer;
i:byte;
x:array[1..100] of integer;
s,z:real;
function func(s:real):real;
begin
s:=s*x[i];
s:=exp(sqrt(abs(s)));

end;
begin
clrscr;
writeln('vvedite n=');
readln(n);
s:=1;
for i:=1 to n do
begin
writeln('vvedite zna4enie');
readln(x[i]);
end;
{for i:=1 to n do}
begin
s:=func(s);
s:=exp(sqrt(abs(s)));
writeln('s=',s:2:1);
end;
readln;

end.

в контрольном примере выводит s:=1 хотя должно быть совсем другое значение.
Исправьте пожалуста что не так. Заранее спасибо.

Автор: volvo 15.12.2006 15:54

Вот эта конструкция что (по-твоему) делает:

s:=exp(sqrt(abs(s)));

?

Автор: RIJIKOV 15.12.2006 16:00

ета конструкция и должна вычислить значение,тока почемуто не хочет unsure.gif я незнаю что нужно сделать чтобы заставить ее работать. Впринцепе ввел переменную S(типа ето должен быть ответ),ответ есть но постоянно 1. И паскаль выдает что ошибок нет,чего сделать то нужно,чтобы заработало?

Автор: volvo 15.12.2006 16:06

Цитата
чего сделать то нужно,чтобы заработало?
Программу правильно написать!!!

Я же не просто так тебя спрашиваю, наверное, ЧТО вычисляет этот код, который я привел, а ты не хочешь отвечать. Я понимаю, что ЗНАЧЕНИЕ... А вот значение ЧЕГО - вот в чем вопрос...

Тебе же хотел помочь, ты же помощь и отвергаешь... Как хочешь dry.gif Разбирайся сам тогда...

Автор: RIJIKOV 15.12.2006 16:54

я наверно тебя просто не понял,извени smile.gif но мне реально нужно чтобы она работала без всяких проблем,если можешь,то исправь ее пожалуста,очень тебя прошу.

Автор: RIJIKOV 16.12.2006 20:11

Люди,ну помогите сделать!будьтеже людьми!!ниужели так сложно исправить ошибки?

Автор: Ozzя 16.12.2006 20:15

Тебе же ответили уже. Формула неверна. Тебе нужно найти корень н-ной степени. А в формуле что?

Автор: RIJIKOV 17.12.2006 1:17

а что если abs(s) заменить на abs(s1)? т.е. s:=exp(sqrt(abs(s1))); ? может тогда S1 нужно и в формуле
s:=s*x[i], т.е если заменить s:=s1*x[i];? как вы думаете?

Автор: RIJIKOV 18.12.2006 15:42

любая степень обозначается как exp,т.е. експонента и в задаче ты сам можешь указать степень(нато она и n,чтобы самому ее ввести)

Автор: мисс_граффити 18.12.2006 18:30

правда?
вообще-то exp обозначается степень числа е.
то есть ты s присваиваешь значение е в степени модуль s
а по условию тебе что надо найти?
вот и думай

Автор: RIJIKOV 19.12.2006 1:29

народ,я тугодум blink.gif до всего додуматься мне очень сложно,я же не такой как вы smile.gif еслибы я знал как ее делать,то сюда бы не обращался. Сделайте ее пожалуста хоть ктонибудь с нуля,кому не впадлу.Я ету прогу просто не через функцию сделал и сдал преподу,формула у меня была s:=exp(sqrt(abs(s))); просто одномерный массив,за который я получил 5 smile.gif а вот через функцию его не как не могу! если хотите могу текст программы просто одномерного выложить(текст етой проги,не через функцию)?

Автор: RIJIKOV 19.12.2006 14:55

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


Прикрепленные файлы
Прикрепленный файл  odnomerniy.pas ( 316 байт ) Кол-во скачиваний: 210