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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2011, 15:24   #1
BackSlash
Пользователь
 
Регистрация: 15.12.2009
Сообщений: 39
Подмигивание Поменять на for, как?

Задача:1. Дан первый член геометрической прогрессии и ее знаменатель. Сформировать массив из первых k членов этой прогрессии.
Код:
Код:
uses crt;
type mass=array[1..100] of real;
var q,{Znamenatel' geometri4eskoy progressii}
    b1,{Pervuy 4len}
    k, {ol-vo 4lenov}
    n,i: integer;
var a:mass;
begin
 clrscr;
 writeln ('Enter b1,q,k');
 readln (b1,q,k);
 n:=1;i:=1;
 while i<k do
 begin
      for i:=1 to k do
          begin
          a[i]:=b1*(exp((n-1)*ln(q)));
          n:=n+1;
          end;
 end;

 for i:=1 to k do writeln (a[i]:30:0,' ');
 end.
Преподавателя не устраивает вот это (b1*(exp((n-1)*ln(q))) (это b1*(q^(n-1))
просит поменять на цикл for;
А я не могу понять как туда запихать for чтобы вичислял q^(n-1)
Need Help!
Функции не предлагать =)

Проще говоря нужно чтобы степень вычислялась не этим выражением (exp((n-1)*ln(q))), а циклом for

Последний раз редактировалось BackSlash; 10.02.2011 в 15:28.
BackSlash вне форума Ответить с цитированием
Старый 10.02.2011, 15:38   #2
Niro
Форумчанин
 
Аватар для Niro
 
Регистрация: 23.09.2010
Сообщений: 682
По умолчанию

Код:
 for i:=1 to k do
          begin
            rez:=1; 
            for zy:=1 to n-1 do
                  rez:=rez*q;
          a[i]:=b1*rez;
          n:=n+1;
          end;
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить.
Niro вне форума Ответить с цитированием
Старый 10.02.2011, 15:39   #3
interxor
Пользователь
 
Аватар для interxor
 
Регистрация: 09.02.2011
Сообщений: 12
По умолчанию

кажется все проще:
Код:
uses crt;
type mass=array[1..100] of real;
var q,{Znamenatel' geometri4eskoy progressii}
    b1,{Pervuy 4len}
    k, {ol-vo 4lenov}
    n,i: integer;
var a:mass;
begin
 clrscr;
 writeln ('Enter b1,q,k');
 readln (b1,q,k);
 n:=1;i:=1;
 a[1]=b1;
      for i:=2 to k do
          begin
          a[i]:=a[i-1]*q;
          end;
 for i:=1 to k do writeln (a[i]:30:0,' ');
 end.
...месяц в небе, год в книге, а день такой у нас, какой и у вас, и за сим...
interxor вне форума Ответить с цитированием
Старый 10.02.2011, 16:00   #4
BackSlash
Пользователь
 
Регистрация: 15.12.2009
Сообщений: 39
По умолчанию

Хитро,хитро, спасибо, разобрался)
BackSlash вне форума Ответить с цитированием
Ответ


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