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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2019, 19:22   #1
765785467
Новичок
Джуниор
 
Регистрация: 18.03.2019
Сообщений: 3
Печаль [Pascal] Найдите сумму ряда x^3+x^5+...+x^n не используя функцию вычисления степени. Через процедуру получилось, но она не работает

Задание: Найдите сумму ряда x^3+x^5+...+x^n не используя функцию вычисления степени. Через процедуру.

вот что получилось, но она не работает:

Код:
program summ;
const h=2;
const z=3;
var x,i,n,s:integer;
procedure step(i:integer;x,s,z:real);
begin
for i:=1 to n do
begin
s:=1;
x:=x**z;
z:=z+h;
s:=s+x;
end;
end;
begin 
writeln('Введите первый член ряда: ');
Readln(x);
writeln('Введите количество членов ряда: ');
Readln(n);
step(i,z,x,s);
writeLn('Сумма равна: ',s);
end.
Пожалуйста, оформляйте Ваш код согласно правилам.

Последний раз редактировалось Вадим Мошев; 18.03.2019 в 19:29.
765785467 вне форума Ответить с цитированием
Старый 18.03.2019, 19:44   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

procedure step(i:integer;x,s,z:real);
чтобы получать результат из процедур
надо исп. var параметр
Код:
procedure step(i:integer;x,s,z:real; var s: real);
или функцию
Код:
function step(i:integer;x,z:real): real;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 18.03.2019, 19:46   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

1. Если хотите параметр поменять, то его надо через вар передавать
2. Не надо на каждом шагу сбрасывать сумму в 1
p51x вне форума Ответить с цитированием
Старый 18.03.2019, 19:51   #4
765785467
Новичок
Джуниор
 
Регистрация: 18.03.2019
Сообщений: 3
По умолчанию

он пишет: "неправильный тип параметров подпрограммы"
765785467 вне форума Ответить с цитированием
Старый 18.03.2019, 20:01   #5
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

А что ожидал?
У тебя параметр z - real, а ты подставляешь переменную s - integer.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 22.03.2019, 14:23   #6
val_nnm
Форумчанин
 
Регистрация: 18.10.2009
Сообщений: 185
По умолчанию

Набросал ответ
(правда писал без проверки, и паскаль уже совсем забыл. поэтому если будут ошибки, поправь сам)
Код:
program summ;

var x,s:real;
    n:integer;

procedure step(x:real;n:integer;var s:real);
var
    tmp:real;
    i:integer;
begin
  s:=0;
  tmp:= x*x*x;
  i:=3;
  while (i<=n) do Begin
    s:=s+tmp;
    tmp:=tmp*x*x;
    i:=i+2;
  end;
end;

begin 
  writeln('Введите первый член ряда: ');
  Readln(x);
  writeln('Введите количество членов ряда: ');
  Readln(n);
  step(x,n,s);
  writeLn('Сумма равна: ',s);
end.
На С# пишу лучше чем на русском.
"У меня правильнописание хромает. Оно хорошее, но почему-то хромает."
val_nnm вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Pascal]: помогите программу, работающую через функцию, переписать так, чтобы она работала через процедуру всё плохо :( Помощь студентам 7 06.01.2017 22:35
Написать рекурсивную функцию для вычисления корня k-й степени по заданной формуле E1337 Паскаль, Turbo Pascal, PascalABC.NET 5 24.01.2016 15:25
Используя очередь, написать процедуру или функцию,для вычисления среднего геометрического элементов типизированного файла (Паскаль BumBum4ik Помощь студентам 0 04.01.2014 18:12
программа для вычисления определенного интеграла методом прямоугольника через процедуру (Turbo Pascal) KristyDolganova Помощь студентам 5 19.12.2012 20:28
Массив используя функцию и процедуру. Profan4ik Помощь студентам 1 30.05.2010 14:06