Witam, jestem początkujący. Mam zadanie:
Dany jest n elementowy ciąg liczb całkowitych X uporządkowany niemalejąco. Opracować algorymt wyznaczania ile jest różnych wartości liczbowych w tym ciągu.
Przykład \(\displaystyle{ n=6}\)
\(\displaystyle{ X: -1 -1 3 4 4 7}\)
Mam nadzieję, że ktoś pomoże mi w rozwiązaniu.
Nie wiem od czego zacząć, a chciałbym to zrozumieć.
Na początku muszę wypisać zmienne i narysować schemat.
[Algorytmy] Różne wartości liczbowe w ciągu niemalejącym
-
- Użytkownik
- Posty: 507
- Rejestracja: 24 sty 2014, o 12:18
- Płeć: Mężczyzna
- Lokalizacja: KRK
- Podziękował: 382 razy
[Algorytmy] Różne wartości liczbowe w ciągu niemalejącym
Ostatnio zmieniony 3 wrz 2014, o 00:03 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
-
- Użytkownik
- Posty: 311
- Rejestracja: 30 gru 2011, o 02:21
- Płeć: Mężczyzna
- Lokalizacja: Puławy
- Podziękował: 11 razy
- Pomógł: 53 razy
[Algorytmy] Różne wartości liczbowe w ciągu niemalejącym
Gdzie leży problem? Jako że liczby są posortowane to po prostu lecisz przez liczby i po uzyskaniu innej liczby niż poprzednia zwiększasz licznik.
-
- Użytkownik
- Posty: 507
- Rejestracja: 24 sty 2014, o 12:18
- Płeć: Mężczyzna
- Lokalizacja: KRK
- Podziękował: 382 razy
[Algorytmy] Różne wartości liczbowe w ciągu niemalejącym
Problem polega w tym, że nie wiem jak zapisać to w postaci bloków, mam kilka screenów z wykładów, ale nie wiem co do czego, mam kilka zadań, podobno łatwych, ale nic nie kumam, a za 2 dni już poprawa egzaminu...
Czy to ten algorytm ?
Czy to ten algorytm ?
-
- Użytkownik
- Posty: 311
- Rejestracja: 30 gru 2011, o 02:21
- Płeć: Mężczyzna
- Lokalizacja: Puławy
- Podziękował: 11 razy
- Pomógł: 53 razy
[Algorytmy] Różne wartości liczbowe w ciągu niemalejącym
Nie wydaję mi się żeby to było poprawnie zapisane, ale sama idea jest dobra. Tylko zacznij \(\displaystyle{ s=1}\), oraz \(\displaystyle{ i<n}\) (no jeszcze zależy jak numerujesz indeksy...)
-
- Użytkownik
- Posty: 507
- Rejestracja: 24 sty 2014, o 12:18
- Płeć: Mężczyzna
- Lokalizacja: KRK
- Podziękował: 382 razy
[Algorytmy] Różne wartości liczbowe w ciągu niemalejącym
a gdzie to \(\displaystyle{ i<n}\) wstawić ?
- kerajs
- Użytkownik
- Posty: 8567
- Rejestracja: 17 maja 2013, o 10:23
- Płeć: Mężczyzna
- Podziękował: 306 razy
- Pomógł: 3347 razy
[Algorytmy] Różne wartości liczbowe w ciągu niemalejącym
W tym algorytmie masz następujące zmienne
s - to ilość różnic między dwoma kolejnymi wyrazami ciągu
i - to indeks wyrazu Twojego ciągu
Ponadto masz
n to liczba wyrazów ciągu
a to i-ty wyraz ciągu
W pierwszym prostokącie pod start oprócz s:=0 powinno pojawić się i:=1
Tu przypisałeś zmiennym konkretne wartości. Masz 0 różnic a indeks wynosi 1.
Poniżej masz pięciokąt (zwykle jest to romb i lewa strzałka trafia do strzałki nad nim ) . W nim odbywa się sprawdzenie czy indeks jest mniejszy do n (wpisz tam : ,,Czy i < n ?' ). Są dwie odpowiedzi . Strzałka w prawo (dopisz tam ,, Nie') kończy program wypisaniem ilości różnic (s). Stzrałka w dół (dopisz tam ,, Tak') prowadzi do kolejnego pytania . W rombie wpisz ,,Czy a < a[i+1] ?' . Wychodza z niego dwie strzałki : w prawo ( dopisz tam ,,nie') i w dół (dopisz ,,tak'). Dodatkowo. na lewej strzałce skierowanej w górę powinien pojawić się prostokąt z napisem ,,i:=i+1'.
-- 3 wrz 2014, o 15:56 --
Istniejące prostokąty nazwę (licząc od góry)P1 i P2, a nowy P3
Romby (od góry) R1 i R2, równoległobok z ,,writeln(s)' W
I masz jeszcze tak ciąg niemalejący
\(\displaystyle{ a _{1} =2, a_{2} =2, 2_{3} =3, a_{4} =7, a_{5} =7,}\)
Algorytm działa tak:
Start - P1 (s=0, i=1) - R1 (czy 1<5 ?) <tak> - R2 (czy a1<a2?) <nie> - P3(i=i+1=1+1=2) - R1 (czy 2<5 ?) <tak> - R2 (czy a2<a3 ?)<tak> - P2 (s=s+1=0+1=1) - P3(i=i+1=2+1=3) - R1 (czy 3<5 ?) - ..........
Co będzie dalej?
s - to ilość różnic między dwoma kolejnymi wyrazami ciągu
i - to indeks wyrazu Twojego ciągu
Ponadto masz
n to liczba wyrazów ciągu
a to i-ty wyraz ciągu
W pierwszym prostokącie pod start oprócz s:=0 powinno pojawić się i:=1
Tu przypisałeś zmiennym konkretne wartości. Masz 0 różnic a indeks wynosi 1.
Poniżej masz pięciokąt (zwykle jest to romb i lewa strzałka trafia do strzałki nad nim ) . W nim odbywa się sprawdzenie czy indeks jest mniejszy do n (wpisz tam : ,,Czy i < n ?' ). Są dwie odpowiedzi . Strzałka w prawo (dopisz tam ,, Nie') kończy program wypisaniem ilości różnic (s). Stzrałka w dół (dopisz tam ,, Tak') prowadzi do kolejnego pytania . W rombie wpisz ,,Czy a < a[i+1] ?' . Wychodza z niego dwie strzałki : w prawo ( dopisz tam ,,nie') i w dół (dopisz ,,tak'). Dodatkowo. na lewej strzałce skierowanej w górę powinien pojawić się prostokąt z napisem ,,i:=i+1'.
-- 3 wrz 2014, o 15:56 --
Istniejące prostokąty nazwę (licząc od góry)P1 i P2, a nowy P3
Romby (od góry) R1 i R2, równoległobok z ,,writeln(s)' W
I masz jeszcze tak ciąg niemalejący
\(\displaystyle{ a _{1} =2, a_{2} =2, 2_{3} =3, a_{4} =7, a_{5} =7,}\)
Algorytm działa tak:
Start - P1 (s=0, i=1) - R1 (czy 1<5 ?) <tak> - R2 (czy a1<a2?) <nie> - P3(i=i+1=1+1=2) - R1 (czy 2<5 ?) <tak> - R2 (czy a2<a3 ?)<tak> - P2 (s=s+1=0+1=1) - P3(i=i+1=2+1=3) - R1 (czy 3<5 ?) - ..........
Co będzie dalej?