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

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

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

> Задача на Прогрессии, вывод геометрич прогрессии через арифмет
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Женский

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


Приветик, всем спецам Паскаля, к сожалению к которым не принадлежу (оч жаль, надеюсь за год подтянусь немного к вам). Вот вам задачка на раздумья:

Дана арифметическая прогрессия с заданном a1 - первым членом , с заданным d - разностью, и n - числом членов прогрессии, так же дана геометрическая прогрессия с заданным b1 - первым членом явл. равным a1, и q - знаменатеолем прогрессии (все задается юзером), теперь надо вычислить все это n-число членов арифметической прогрессии и проверить нет ли там случайно заданной геометрической прогрессии , причем члены геометрической прогрессии необязательно должны быть идти по порядку в арфметической, и их должно быть не менее 3 членов. Постараться использовать без применения массива

blink.gif Вот такое запутанное условие. Сама уже запуталась в своих решениях, командах и кодах. :p2: Но вот пример чтобы ясней было:

дан первый член a1 = 1
разность ариф прогр d = 1
число членов ариф прогресии n = 28
первый член геометрич прогрессии b1 = a1
знаменатель геомт прогрессии q = 3

итак выводим прогрессию арифм получается:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28

проверка на геометрическую прогрессию должна нам вывести вот такие члены арифметич прогрессии:

1, 3, 9, 27

а вот если членов будет не 28 а 8 то прогрессии геометрической не будет...

Ждем вашей помощи.. хотя бы подсказки.. О БОГИ ПАСКАЛЯ!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 14)
сообщение
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Женский

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


кстати пример сама составила так что если что то будет не получаться проверьте может я в примере ошибку сделала... О боги паскаля, жду вашего ответа!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Автооответчик
*****

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

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


Цитата
О БОГИ ПАСКАЛЯ!

lol.gif lol.gif
MapЫшKa, вы явно преувеличиваете ... :p2:
не понял задания, но как-то знакомо все....
если врублюсь - напишу


--------------------
Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Бывалый
***

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

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


Цитата
О БОГИ ПАСКАЛЯ
blink.gif
Нихрена себе.

Сообщение отредактировано: suriv -


--------------------
Хочу в репу !

Cмотри,а то ведь получишь!
Админ.

Не получит - его фиг догонишь!
Админ №2.

P.S Вы еще третьего админа притащите сюда :D
ваш аффтар :D
Звали? :D (админ № не помню какой)

ха больше нифига не напишете
афтар

Уверен? (Moderator)
А еще можно ? (супмодер)
Хватит его мучать ! Избили уж... (админ)
Не хватит. я тоже напишу (тоже Админ)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Автооответчик
*****

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

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


я так понял:
проверить, содержит ли арифметическая прогрессия члены геометрической ?


--------------------
Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






MapЫшKa
Замените константы на операторы ввода при необходимости ...

Код

const
 a = 1;
 d = 2;
 n = 15;
 b = 1;
 q = 3;

var
 bnext: longint;
 counter: integer;
 i, res: integer;
begin
 counter := 0;
 bnext := b;

 while true do
   begin
     res := succ((bnext - a) div d);
     if (bnext - a) mod d = 0
       then
         if (res <= n) and (res > 0) then inc(counter);

     bnext := bnext * q;
     if bnext > (a + d*(n - 1)) then break;
   end;

 if counter >= 3 then
   begin
     writeln( 'Прогрессия найдена:' );
     bnext := b;
     for i := 1 to counter do
       begin
         write( bnext:5 );
         bnext := bnext * q;
       end;
   end
 else writeln('Нет прогрессии');
 writeln
end.


Программа исправлена...

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Ищущий истину
******

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

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


Цитата
О боги паскаля

А вот и он:
volvo
:P


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


Автооответчик
*****

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

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


опоздал я sad.gif
ну фиг с ним, все-равно выложу lol.gif
Код
uses crt;
var arif:array[1..500] of integer;
   geom:array[1..500] of integer;
   re,n,d,q,t:integer;

function stepen(x,y:integer):integer;
var i,q:integer;
begin
q:=1;
for i:=2 to y do q:=q*x;
stepen:=q;
end;

procedure make_arif;
var i:integer;
begin
for i:=2 to n do arif[i]:=arif[i-1]+d;
end;

procedure find_geo;
var i,j:integer;
begin
for i:=1 to n do
 begin
   for j:=t+1 to n do
    begin
      if arif[i]=stepen(q,j) then
      begin
       inc(t);
       geom[t]:=arif[i];
      end;

    end;
 end;
end;

begin
clrscr;
write('Введите a1: '); readln(arif[1]); geom[1]:=arif[1];t:=1;
write('Введите кол-во членов ариф. прогресси: ');   readln(n);
write('Введите разность ариф. прогресси: ');readln(d);
write('Введите знаменатель геом. прогресси: ');readln(q);
make_arif; find_geo;
for re:=1 to n do write(arif[re],' ');writeln;
for re:=1 to t do write(geom[re],' ');
readkey;
end.

массивы применял, оптимизации никакой....
ну и фиг с ним, выложил все равно lol.gif

Сообщение отредактировано: GoodWind -


--------------------
Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Женский

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


ВЫ ТОЧ ГЕНИИ!
чесное слово!

Скрытый текст
БОГИ!


вот называется таланты.... над с вас брать пример... так тока проблемчики в понятие некоторых команд... а именно:

res := succ((bnext - a) div d);
inc(counter);



volvo объясни пожалуйста...


P.S. БОГИ! БОГИ!!!!!!! СПАСИБКИ ОГРОМНОЕ! не додумались сами... наверное из за не знания команд... и возможностей паскаля... НО ВЫ БОГИ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

P.S.S. начинает копить деньги на памятник...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Цитата
res := succ((bnext - a) div d);
аналогично:

res := ((bnext - a) div d) + 1; { div - деление нацело }



Цитата
inc(counter);
аналогично:


counter := counter + 1;

 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Автооответчик
*****

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

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


Цитата
P.S.S. начинает копить деньги на памятник...

лучше на пиво ;) lol.gif


--------------------
Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Пионер
**

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

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


Хех люблю простоту smile.gif
Правда толком не проверял, но постарался упростить вариант Volvo
Код
uses crt;
const
a1 = 1;
b1 = 1;
n = 81;
q = 3;
d = 2;
var
i,g : integer;
An, Bn : longint;
{.....................................................}
Procedure Proverka(An:longint);
var
i : integer;
begin
i:=1;
repeat
    Bn:=b1*Round(exp((i-1)*ln(q)));
    if An=Bn then  
                        inc(g);
    if Bn>An then
                        break;
   inc(i);
until An=Bn;
end;
{........................................................}
begin
clrscr;
i:=1;

repeat
  An:=a1+d*(i-1);
  Proverka(An);
  inc(i);
until n <= i;

if g>=3 then
                begin
                 writeln('Прогрессия найдена:');
                 i:=1;
                 for i:=1 to g do
                     begin
                      Bn:=b1*Round(exp((i-1)*ln(q)));
                      Write(Bn:4);
                     end;
                end
              else write('А и нету ничего');
end.

Исправлено!!!
Мдя хотел упростить назавыется smile.gif а написал ещё больше!!! smile.gif

Сообщение отредактировано: Amro -


--------------------
Закон иудеев: Семь раз отмерь, один отрежь.
Закон экономии: Семь раз отмерь, семь раз отрежь.
Закон программиста: Семь раз отрежь, ошибся, отмерь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Гость






Amro

А запусти-ка свою программку с n = 11
:P

Добавлено...

А вот после исправления - вроде работает ...

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Женский

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


ндяя... .однако программисты облегчают себе жизнь... эх... сколько всякого над запомнить... ндя... мож я не туда иду... хотя.. куда мне теперь с такой направленностью

БОГИ! - я не устану ето повторять!



P.S. договоримся ;)))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Автооответчик
*****

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

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


Цитата
P.S. договоримся ))

а вот такой подход мне нравится lol.gif


--------------------
Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 7.09.2025 23:19
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name