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

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

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

> Задача на Прогрессии, вывод геометрич прогрессии через арифмет
MapЫшKa
сообщение 31.10.2004 19:21
Сообщение #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)
MapЫшKa
сообщение 31.10.2004 19:24
Сообщение #2


Новичок
*

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

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


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


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

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

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


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

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


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


Бывалый
***

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

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


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

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


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

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

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

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

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

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


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

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

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


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


--------------------
Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 31.10.2004 20:04
Сообщение #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 - 31.10.2004 21:29
 К началу страницы 
+ Ответить 
Altair
сообщение 31.10.2004 20:14
Сообщение #7


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

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

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


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

А вот и он:
volvo
:P


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
GoodWind
сообщение 31.10.2004 20:39
Сообщение #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 - 31.10.2004 20:41


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


Новичок
*

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

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


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

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


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

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



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


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

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


Гость






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

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



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


counter := counter + 1;

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


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

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

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


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

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


--------------------
Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Amro
сообщение 31.10.2004 21:34
Сообщение #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 - 31.10.2004 22:12


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


Гость






Amro

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

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

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

Сообщение отредактировано: volvo - 31.10.2004 22:26
 К началу страницы 
+ Ответить 
MapЫшKa
сообщение 31.10.2004 22:08
Сообщение #14


Новичок
*

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

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


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

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



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


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

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

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


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

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


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

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

 



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