• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Algorytm definiujący funkcję obliczającą dowolny wyraz ciągu

VPS Starter Arubacloud
0 głosów
349 wizyt
pytanie zadane 8 stycznia 2017 w Algorytmy przez Kamil Maksymowicz Początkujący (400 p.)

Jak napisać algorytm definiujący funkcję obliczającą przy pomocy pętli dowolny wyraz ciągu określonego wzorem

oraz każdy kolejny wyraz jest sumą dwóch poprzednich

komentarz 8 stycznia 2017 przez Kamil Maksymowicz Początkujący (400 p.)
edycja 8 stycznia 2017 przez Kamil Maksymowicz

 function ciąg(a) 

Begin

if (a= =0) return 2

if (a= =1) return 3

else return ciąg (a-1) + ciąg (a-2)

end

 

 

Miałem zapisać w pseudokodzie. Czy jest poprawnie ?

2 odpowiedzi

0 głosów
odpowiedź 8 stycznia 2017 przez Barus Stary wyjadacz (14,120 p.)

Zależy w jakim języku. Opiszę Ci to w C++ i w C#.

C++ :

  • Pytasz użytkownika jak długi ma być ciąg, user zapisuje długość ciągu do zmiennej (nazwijmy ją x). 
  • Tworzysz dynamiczną alokację pamięci w której w nawiasach kwadratowych wpisujesz zmienną x.
  • Do tablicy o indeksie 0 przypisujesz liczbę 2
  • Do tablicy o indeksie 1 przypisujesz liczbę 3.
  • Tworzysz pętlę for (może być także while, ale ja opiszę for), która rozpoczyna się od 2, kończy na zmiennej x i inkrementuje co 1.
  • W ciele pętli sumujesz: tablica[i]=tablica[i-1]+tablica[i-2] i wyświetlasz wynik na konsolę.
  • Usuwasz dynamicznie zaalokowaną pamięć.

C# :

  • Pytasz użytkownika jak długi ma być ciąg, user zapisuje długość ciągu do zmiennej (nazwijmy ją x). 
  • Tworzysz tablicę, w której w nawiasach kwadratowych wpisujesz zmienną x.
  • Do tablicy o indeksie 0 przypisujesz liczbę 2
  • Do tablicy o indeksie 1 przypisujesz liczbę 3.
  • Tworzysz pętlę for (może być także while, ale ja opiszę for), która rozpoczyna się od 2, kończy na zmiennej x i inkrementuje co 1.
  • W ciele pętli sumujesz: tablica[i]=tablica[i-1]+tablica[i-2] i wyświetlasz wynik na konsolę.
     

Jeżeli jesteś na etapie, w którym nie poznałeś jeszcze tablic, wskaźników i dynamicznej alokacji pamięci to najpierw przerób te materiały, a potem zrobisz bez problemu ten program :)

Pozdrawiam! 

komentarz 8 stycznia 2017 przez playerony Pasjonat (15,240 p.)
Wystarczy, że przewinie strone w dół i zrobi to bez wykorzystania tablic itp. btw. po co przechowywać wszystkie wyrazy po czym je usuwać ?
komentarz 8 stycznia 2017 przez Barus Stary wyjadacz (14,120 p.)
Zrobiłeś to kolego innym sposobem (z pewnością lepszym), a ja innym i działa. Miałem na myśli usunięcie dynamicznie zaalokowanej pamięci w celu jej opróżnienia już po wykonaniu pętli.
komentarz 8 stycznia 2017 przez Sinnley Stary wyjadacz (12,810 p.)
Sortowanie bąbelkowe też działa.

Algorytm jest dobry wtedy kiedy jest optymalny a nie wtedy kiedy działa.
0 głosów
odpowiedź 8 stycznia 2017 przez playerony Pasjonat (15,240 p.)
No tutaj się kłania ciąg fibonacciego, tak więc tłumacze:

Kolejne wyrazy ciągu: 2, 3, 5, 8, 13, 21,  ...

1. Robisz sobie jakąś funkcje, która zwróci Ci n-ty wyraz ciągu, która jako parametr przyjmnie numer.

2. Wewnątrz trzymasz zmienne odpowiadające za 1 oraz 2 wyraz twojego ciągu, na potrzeby przykładu będą to "a" oraz "b" do których przypiszemy kolejno liczby 2 i 3.

3. Jescze sprzydał by się jakies for wyliczający do naszego przesłanego jako parametr n.

4. No i w forze do drugiej zmiennej dodajesz tę poprzednią np. "b+=a" -> "5+=3" -> "8"

5. Jescze pozostaje wyznaczyć te "a" z podpunktu 4, no tu wystarczy zrobić proste odejmowanie "a = b - a" -> "5 = 8 - 3".

6. W zmiennej "a" będziesz miał szukany n-ty wyraz ciągu.

7. Na koniec dodajesz ify dla warunku kiedy użytkownik poda liczbe mniejsza od zera, równą 1 oraz równa 2.

8. Cieszysz się wykonanym programem.

Podobne pytania

–3 głosów
2 odpowiedzi 180 wizyt
pytanie zadane 8 stycznia 2017 w Algorytmy przez niezalogowany
0 głosów
0 odpowiedzi 1,650 wizyt
pytanie zadane 29 stycznia 2017 w Algorytmy przez Corvo Nowicjusz (180 p.)
+2 głosów
1 odpowiedź 246 wizyt

92,452 zapytań

141,262 odpowiedzi

319,080 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...