Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Посчитать суммы чисел ряда со степенью N


Рекомендуемые сообщения

Короче, задали мне по информатике такую фигню на Паскале забацать, типа есть ряд: s = x + x^2 +x^3 + ... + x^N. Я вот написал, но оно что-то не пашет :sly: :

program summa_stepenej;uses crt;vars: integer;x: integer;n: integer;i: integer;begin   clrscr;   WriteLN('Введите число: ');   Read(x);   WriteLN('Введите степень: ');   Read(n);   s:=x;   for i:=1 to n do   beginx:=x*x;s:=s+x;   end;   WriteLN('Сумма равна: ', s);   ReadKey;end.

Вот так вот. Даже не знаю что делать. Помогите найти ошибку.

Ссылка на комментарий
Поделиться на другие сайты

В цикле у тебя считается неправильно...

for i:=1 to n do

begin

    x:=x*x;

    s:=s+x;

end;

Перед циклом сделай x1:=x, а вместо x:=x*x напиши x:=x*x1...

А можно сделать другое возведение в степень:

x^n=exp(n*ln(x))...

Ссылка на комментарий
Поделиться на другие сайты

Если я еще помню что-то из программирования, то у тебя должен быть постоянный сдвиг в сторону увеличения суммы на x^2.

В цикле надо указывать i:=2

Но могу и ошибаться, давно это было :sly:

Ссылка на комментарий
Поделиться на другие сайты

gvozd

У тебя x становится равным x, x^2, x^4, x^8... Да и при n, равном 1, выдается сразу уже x+x^2 и так далее - на 1 член ряда больше, чем нужно.

Сделай дополнительно переменную y:integer; для того, чтобы держать в ней текущий член ряда.

Вместо s:=x; напиши y:=1; s:=0;

В цикле вместо того, что у тебя, будет y:=x*y; s:=s+y;

Кстати, ты убежден, что ряд должен быть только для целых чисел? Я бы сделал x, y, s типа Real.

Ссылка на комментарий
Поделиться на другие сайты

Я бы сделал x, y, s типа Real.

К тому же это избавит от переполнения в том случае, если х и N станут больше пяти. Так что, если не хочешь делать их числами с плавающей точкой, то по крайней мере возьми целочисленный тип с большим рамером, longint например.

Ссылка на комментарий
Поделиться на другие сайты

Всем спасибо, все сработало, как же я сам недопер, что

x становится равным x, x^2, x^4, x^8
? Не, ну зачем в школе изучать этот паскаль, гораздо лучше было бы VB учить.

Тролль

Да не, точно целый, да и с Real число не красивое получается.

Еще раз всем спасибо!

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...