IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Задача на табулирование, Помогите найти ошибку
Василяй
сообщение 14.06.2007 0:49
Сообщение #1





Группа: Пользователи
Сообщений: 8
Пол: Мужской
Реальное имя: Василий

Репутация: -  0  +


Помогите найти ошибку в этой задаче! Задание такое:
Даны натуральное число N и вещественное a. Вычислить
N (N над значком суммы)
S=∑ (k!- a^k) Не получается у меня правильно написать формулу YYY.gif (если что рисунок внизу)
k=1 (k=1 под значком суммы)

Реализовать заданное выражение в виде функции.
Произвести табулирование полученной функции по двум переменным.

Var j,a,f,d,n,k,a1,a2,n1,i,e:integer;
res,y:real;
function summ(n,a:integer):real;
var
k,i:integer;
s:real;
Begin
s:=0;
k:=1;
for k:=1 to n do
begin
k:=k*i;
y:=Exp(k*ln(a));
s:=s+(k-y);
end;
summ:=s;
End;

Begin
writeln('n=');
read (n);
writeln ('a=');
read(n1);
writeln('shag n=');
read(f);
writeln('shag a=');
read(a1);
writeln('kolichestvo n=');
read(d);
writeln ('kolichestvo a=');
read(a2);
e:=a;
for k:=1 to d do
begin
a:=e;
for j:=1 to a2 do
begin
res:=summ(n,a);
writeln(n,' ',a,' ',res);
a:=a+a1;
end;
n:=n+f;
end;
End.


Сообщение отредактировано: Василяй - 14.06.2007 0:50


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 14.06.2007 1:17
Сообщение #2


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


у меня получилось вот так:
program summ;
var N1,N2,N: integer;
a2,a, shag: real;

function sum(const N: integer; const a: real): real;
var k,fact: integer;
ak,s: real;
begin
ak:=1;
fact:=1;
s:=0;
for k:=1 to N do
begin
fact:=fact*k;
ak:=ak*a;
s:=s+fact-ak;
end;
sum:=s;
end;

begin
writeln('vvedite N1');
readln(N1);
writeln('vvedite N2');
readln(N2);
writeln('vvedite a1');
readln(a);
writeln('vvedite a2');
readln(a2);
writeln('vvedite shag dlya a');
readln(shag);
while a<=a2 do
begin
writeln('a=',a:0:2);
for N:=N1 to N2 do
begin
writeln(' N=',N);
writeln(' sum=',sum(N,a):0:2);
end;
a:=a+shag;
end;
readln;
end.


по поводу твоих ошибок... что бросается в глаза:
Цитата
Даны натуральное число N и вещественное a

а у тебя оно какое???

k:=k*i;

внутри цикла по k не стоит изменять k. тем более умножать его на неизвестно что (i не определена)

Добавлено через 5 мин.
а, вот еще:
здесь:
         e:=a;

а равно неизвестно чему (скорее всего 0). оно же не вводится нигде...


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Василяй
сообщение 14.06.2007 1:28
Сообщение #3





Группа: Пользователи
Сообщений: 8
Пол: Мужской
Реальное имя: Василий

Репутация: -  0  +


Спасибо что помогли!

но я не совсем понял что ознает вот эта строчка:
ak:=ak*a

я так думаю что это а^k?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 14.06.2007 10:31
Сообщение #4


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


ну типа того. только ak - это не операция возведения в степень, а имя переменной.
при k=1 ak=a
k=2 ak=a*a
k=3 ak=a*a*a
то есть мы не рассчитываем степень каждый раз, а просто домножаем на а.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.06.2025 1:02
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"