[Algorytmy] Różne wartości liczbowe w ciągu niemalejącym

Gdziemojekonie
Użytkownik
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

Post autor: Gdziemojekonie »

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.
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.
gryxon
Użytkownik
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

Post autor: gryxon »

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.
Gdziemojekonie
Użytkownik
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

Post autor: Gdziemojekonie »

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 ?
AU
AU
88042529429718486423.jpg (5.52 KiB) Przejrzano 95 razy
gryxon
Użytkownik
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

Post autor: gryxon »

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...)
Gdziemojekonie
Użytkownik
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

Post autor: Gdziemojekonie »

a gdzie to \(\displaystyle{ i<n}\) wstawić ?
Awatar użytkownika
kerajs
Użytkownik
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

Post autor: kerajs »

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?
ODPOWIEDZ