Problem z Pascalem

wasap80

Nowicjusz
Dołączył
6 Grudzień 2006
Posty
278
Punkty reakcji
1
Wiek
34
Miasto
Lublin
Siemka
Mam pewien problem. Mam napisać program w pascalu, który sprawdzałby mi czy dany ciąg jest ciągiem geometrycznym czy arytmetycznym, ale nie wiem jak to zrobić. Czy ktoś mógłby mi pomóc?? Byłbym dozgonnie wdzięczny. Nie trzeba mi od razu całego kodu programu (ale przydał by mi się) tylko proszę o jakąś wskazówkę.
Z góry dzięki.:D
 

yeti86

Nowicjusz
Dołączył
9 Czerwiec 2006
Posty
2 399
Punkty reakcji
0
Wiek
38
Miasto
Jarocin
wez 3 elementy i sprawdź różnice miedzy nimi jeśli wyjdzie taka sama to arytmetyczny

np

a[0] = 2
a[1] = 4
a[2] = 6
a[3] = 8

bierzesz taki a[2] i odejmujesz a[1] da ci to x, potem a[3] odejmujes a[2] daje ci to y i sprawdzasz czy x i y jest równe

jeżeli nie to masz geometryczny albo przypadkowy (zakladam ze ten nie występuje)
 

snaut

Nowicjusz
Dołączył
1 Sierpień 2005
Posty
493
Punkty reakcji
1
Wiek
17
Nie całkiem, bo ciąg równocześnie może być arytmetyczny i geometryczny(rozpatrz wszystkie ciągi stałe).

Poza tym nie wiem na jakim poziomie masz informatykę, pewnie liceum, możesz w każdym razie jeżeli, nauczyciel powie że takie algorytm zbliżony do tego co napisał yeti jest prawidłowy, nieco belfra zaskoczyć (pozytywnie oczywiście) mówiąc że to nie jest prawda. Mianowicie wynika to z sposobu reprezentacji liczb w komputerze. W skrócie liczby rzeczywiste ze względu na swoje nieskończone dziesiętne rozwinięcie są zachowywane w pewnym przybliżeniu(zależnie od danego języka jak i architektury procesora). Mogę i pewnie sam również możesz zdefiniować taki ciąg geometryczny, że iloraz dwóch kolejnych wyrazów będzie różny mimo że w istocie będzie to ciąg geometryczny...

Poza tym yeti zdefiniuj mi ciąg przypadkowy bo to dość śmieszne może być :p
 

yeti86

Nowicjusz
Dołączył
9 Czerwiec 2006
Posty
2 399
Punkty reakcji
0
Wiek
38
Miasto
Jarocin
snaut zakładając ze operujemy na liczbach typu integer nie ma tego problemu z rozwinięciem, natomiast jeżeli będziemy operować na liczbach real z przecinkiem to wtedy owszem zrobi sie problem, ale myślę że tu nie potrzeba przecinka używać.

ciąg przypadkowy (w sumie to źle to nazwałem powinny być liczby przypadkowe) możesz wprowadzić do programu podając na np takie liczby

2 5 8 12 43 56 67 100 i wiele innych ;)
 

wasap80

Nowicjusz
Dołączył
6 Grudzień 2006
Posty
278
Punkty reakcji
1
Wiek
34
Miasto
Lublin
Wszystko jest ok rozumie ale nie wiem jak to zrobić ze ja podaje np ciag o wzorze ogólnym an=3n+6 a on ma mi to policzyć czy jest on arytm. czy geom. Cały problem polega na tym że nie wiem jak zrobić to żeby wczytywał on mi np 3n+6 bo zazwyczaj sie wpisuje tylko wartość liczbową np 5, bo jak wię wpisze np 2+2 to się wszystko wylącza... Czy ktoś wie jak to zrobić?? I czy wogóle da się takie coś zrobić w pascalu?? Dzięki za pomoc :-D
 

snaut

Nowicjusz
Dołączył
1 Sierpień 2005
Posty
493
Punkty reakcji
1
Wiek
17
snaut zakładając ze operujemy na liczbach typu integer nie ma tego problemu z rozwinięciem, natomiast jeżeli będziemy operować na liczbach real z przecinkiem to wtedy owszem zrobi sie problem, ale myślę że tu nie potrzeba przecinka używać.
No jasne, chodzi tylko o to żeby pozytywnie zaskoczyć nauczyciela.
ciąg przypadkowy (w sumie to źle to nazwałem powinny być liczby przypadkowe) możesz wprowadzić do programu podając na np takie liczby
2 5 8 12 43 56 67 100 i wiele innych mruga.gif
Cienka to definicja oj cienka, ale mniejsza o to. Chodziło mi o to że jakbyś dobrze tego nie zdefiniował to np.ciąg Fibonacciego, czy ciąg liczb Catalana, które przypadkowe nie są i nie są również arytmetyczne i geometryczne. Takie ścisłe zboczenie, ale tak muszę mieć żeby nie pogubić się w gąszczu definicji i dowodów. Ale nie ciągmy tych ciągów już dalej ;) . A definicji chciałem dlatego że niektóre przez użycie pewnych słów stają się śmieszne. Miałem nadzieje na "jajeczną" definicje bo lubię się z takich czasem pośmiać. Po prostu czasami mnie bawi jak matematycy w swoich definicjach używają śmieszne słowa(jak np. dobre porządki( tu się od razu narzuca że powinno się zdefiniować złe porządki :daibel2: ) - mimo że to jest używane na całym świecie po ang. jest to well-ordering).

A wasap80 podaj dokładną specyfikacje bo ja już nie wiem co masz na wejściu, bez tego się nie obejdzie. Nie wiem czy masz wzór ciągu w co wątpie, czy ileś tam jego początkowych wyrazów. Jak to drugie to problem jest nierozstrzygalny(pamięć komputera jest skończona a wyrazów ciągu nieskończenie wiele), a jak pierwsze to algorytm jest trudny i żeby go napisać trzebaby zrobić sporo nietrywialnych dowodów, aczkolwiek pewnie dałoby się, nie wiem ale to dużo czasu by zajęło.
 

warli

Nowicjusz
Dołączył
19 Kwiecień 2006
Posty
139
Punkty reakcji
0
Wiek
36
Cienka to definicja oj cienka, ale mniejsza o to. [..ciach..]
zapewne chodzilo o ciag naprzemienny, przeciez on nie jest ani gemetryczny ani arytmetyczny :D

A wasap80 podaj dokładną specyfikacje bo ja już nie wiem co [..ciach..]

o ilee dobrze przeczytalem co napisal, to wprowadza z klawiatury wzor ogolny ciagu (np. 5n + 6) a program ma sprawdzic jaki jest to ciag :) Sprawa wydaje sie o tyle trudna ze wystepuje to nieszczesne "n", jednak chodzi mi po glowie pomysl na zrobienie tego na stringach :)
 

wasap80

Nowicjusz
Dołączył
6 Grudzień 2006
Posty
278
Punkty reakcji
1
Wiek
34
Miasto
Lublin
o ilee dobrze przeczytalem co napisal, to wprowadza z klawiatury wzor ogolny ciagu (np. 5n + 6) a program ma sprawdzic jaki jest to ciag :) Sprawa wydaje sie o tyle trudna ze wystepuje to nieszczesne "n", jednak chodzi mi po glowie pomysl na zrobienie tego na stringach :)
Warli jeśli chodzi o n to ja wiem jak to zrobić tylko nie wiem jak zrobić to z wczytywaniem wzoru ogólnego. A na stringach chyba Ci to nie wyjdzie, bo string się odnosi chyba tylko do liter tak jak "char".

A że wszyscy chyba wszyscy nie wiedzą o co mi chodzi wiec wyjaśnie najprościej jak można. Chce aby po wpisaniu ogólnego wzoru np. 2n+6 , żeby mi sprawdzał czy jest to ciąg geom. czy arytmetyczny. Chcialem to zrobić tak, że on by mi obliczał a1,a2,a3 (podstawiał by on do wzoru za n 1 a poxniej 2, 3 ) a poxniej by mi liczył czy to arytm czy geom. Nie wiem tylko jak to zrobić zeby on mi wczytywał ogólny wzór An, na okreslonym wzorze wiem jak to zrobić. I takie buty...:D
 

warli

Nowicjusz
Dołączył
19 Kwiecień 2006
Posty
139
Punkty reakcji
0
Wiek
36
Wiem ze o to chodzi i wlasnie wiedz ze taki wprowadzanie "wzoru ogolnego" to raczej tylko na stringu przejdzie. Pozniej znalezienie "n" funkcja Pos, usuniecie i podstawienie za niego (delete i insert) odpowiednio 1, 2 i 3, zmiana funkcja Val na liczbe (dlatego trzeba n usunac) no i porownanie :) Masz inna propozycje albo pytanie czemu na stringach? Przeciez powiedzmy do integera nie przyjmie ci 5*n
 
Do góry