Marmot Opublikowano 8 Lutego 2007 Udostępnij Opublikowano 8 Lutego 2007 Witam. Bardzo pilnie potrzebuję schemat blokowy jakiegoś najprostszego algorytmu do sortowania elementów tablicy. Potrzebne mi to na sprawdzian z informatyki, a jak szukałem czegoś, to znajdowałem tylko kod C++a, którego kompletnie nie znam :) . Oczywiście, nie musi być schemat blokowy, może być nawet słowne wyjaśnienie co po kolei się dzieje, bylebym mógł ułożyć z tego schemat blokowy :) . Liczę na waszą pomoc :) . Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kryniak Opublikowano 9 Lutego 2007 Udostępnij Opublikowano 9 Lutego 2007 Daj mi ten kod C++ to ja spróbuję coś wykombinować. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
blackmaul Opublikowano 9 Lutego 2007 Udostępnij Opublikowano 9 Lutego 2007 O ile się nie mylę, większość języków posiada funkcję do sortowania, więc algorytm wyglądałby tak: start | V stwórz tablice [..] | V sortuj (sort(tablica)) | V end Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
propaganja Opublikowano 9 Lutego 2007 Udostępnij Opublikowano 9 Lutego 2007 oja uslyszalbym to pytanie jakies 2 lata temu? Mysle ze bym ci umial odpowiedziec,a teraz to juz tylko zabawa i kobiety w glowie ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 9 Lutego 2007 Udostępnij Opublikowano 9 Lutego 2007 Nie mów że nie znasz :) #include<iostream> int main() { int size = 4; int array[size]; array[0] = 1; array[1] = 533; array[2] = 0; array[3] = 42; array[4] = 4; bool sort = 0; //0 - najmniejsze na gorze, 1 - najwieksze na gorze. int temp; for( int n = 1; n <= size; n++ ) { if( ( ( array[n-1] < array[n] ) && sort ) || ( ( array[n-1] > array[n] ) && !sort ) ) { temp = array[n-1]; array[n-1] = array[n]; array[n] = temp; n = 1; } } for( int n = 0; n <= size; n++ ) { std::cout << array[n] << std::endl; } system("PAUSE"); } Ew. do porawki. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marmot Opublikowano 9 Lutego 2007 Autor Udostępnij Opublikowano 9 Lutego 2007 Dobra, dobra. Teoretycznie mógłbym to już przełożyć na blokowy schemat, gdybym wiedział o co chodzi z tą c++ową pętlą for i z tym IF o co chodzi ;p . Ja o C++ mam zerowe pojęcie, a w pascalu FOR wygląda zupełnie inaczej :/ . Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 9 Lutego 2007 Udostępnij Opublikowano 9 Lutego 2007 for( start; warunek; krok; ) { reszta kodu; } Najpierw robię element start, później sprawdzam warunek, jeśli true to wykonuję krok i resztę kodu, później znowu sprawdzam warunek i jeśli true to wykonuje krok i resztę kodu - itd. itd. jeśli z warunku wychodzi false to wtedy break :) Można w sumie ją zapisać tak: start; while( warunek ) { krok; reszta kodu; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
blackmaul Opublikowano 9 Lutego 2007 Udostępnij Opublikowano 9 Lutego 2007 for przyjmuje 3 argumenty. Pierwszy to zmienną tworzona w pętli mająca określoną wartość. Drugi to ustalenie tak jakby do kiedy ma się wykonywać czyli w tym przypadku aż będzie większe lub równe size. I ostatni argument, to określenie jakim sposobem czyli tutaj inkrementacja :). edit: // :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marmot Opublikowano 9 Lutego 2007 Autor Udostępnij Opublikowano 9 Lutego 2007 @Tymon: wiem na czym polega for, ale nie rozumiałem poprostu tego ostatniego z dwoma plusami, dopiero teraz sobie to skojarzyłem z GM ;p . Czyli to będzie wyglądać tak?: START \/ Podaj rozmiar tablicy (size) Podaj wartości do tablicy (array[size]) \/ sort:=false temp:=0 \/ for n:=1 to size -> if array[n-1] < array[n] & sort OR array[n-1] > array[n] AND NOT sort -> temp:=array[n-1] -> array[n-1]:=array[n] -> array[n]:=temp -> n:=1 \/ Wyświetl tablicę \/ STOP Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pablo1517 Opublikowano 9 Lutego 2007 Udostępnij Opublikowano 9 Lutego 2007 n++? xD przeciez tzn to samo co w GM n+=1 xD Co ty nigdy nie pisałeś skryptów dla map w call of Duty xD? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marmot Opublikowano 9 Lutego 2007 Autor Udostępnij Opublikowano 9 Lutego 2007 Wiem co to znaczy n++, tylko nie rozumiałem składni tego for, takie skomplikowane to xD . A skryptów do CoD nie pisałem ^^ . Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 9 Lutego 2007 Udostępnij Opublikowano 9 Lutego 2007 W sumie sort mógłbyś wywalić: START \/ Podaj rozmiar tablicy (size) Podaj wartości do tablicy (array[size]) \/ temp:=0 \/ for n:=1 to size -> if array[n-1] > array[n] -> temp:=array[n-1] -> array[n-1]:=array[n] -> array[n]:=temp -> n:=1 \/ Wyświetl tablicę \/ STOP :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marmot Opublikowano 9 Lutego 2007 Autor Udostępnij Opublikowano 9 Lutego 2007 Ok, dzięki za pomoc :) . Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się