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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 3)
мисс_граффити
сообщение 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

 

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