adrian.paz Temat założony przez niniejszego użytkownika |
NWD I NWW » 2018-01-06 17:56:54 Witam pomóżcie zrobić mi ten program to już ostatni z 9 które miałem do zrobienia. Nie mam pojęcia co i jak za skomplikowane jak dla mnie. Poniżej przesyłam wypociny, jedyne chyba na które mnie stać :D Byłby ktoś chętny zrobić to zadanie jeżeli dla kogoś to nie jest dużo roboty? Byłbym naprawdę bardzo wdzięczny bo to dzisiaj już 9 program i mam dość :D #include <iostream> #include <windows.h> using namespace std; void kolor( int nr ) { HANDLE x; x = GetStdHandle( STD_OUTPUT_HANDLE ); SetConsoleTextAttribute( x, nr ); } int NWD( int a, int b ) { int dz1[ 10 ], dz2[ 10 ]; for( int i = 2; a != 1; i++ ) { if( a % i == 0 ) { a = a / i; dz1[ i - 2 ] = i; cout << dz1[ i - 2 ] << " "; } } cout << endl; for( int i = 2; b != 1; i++ ) { if( b % i == 0 ) { b = b / i; dz2[ i - 2 ] = i; cout << dz2[ i - 2 ] << " "; } } } int main() { int a, b; setlocale( LC_ALL, ".1250" ); kolor( 10 ); cout << "Podaj 1 liczbę naturalną: "; kolor( 14 ); cin >> a; kolor( 10 ); cout << "Podaj 2 liczbę naturalną: "; kolor( 14 ); cin >> b; NWD( a, b ); return 0; }
|
|
mateczek |
» 2018-01-06 19:40:02 wpisz w Google algorytm euklidesa. ja znalazłem #include<iostream> using namespace std; int main() { int a = 12, b = 18; while( b ) swap( a %= b, b ); cout << a; }
|
|
adrian.paz Temat założony przez niniejszego użytkownika |
» 2018-01-07 16:12:07 Nie za bardzo rozumiem tę funkcję Patrzyłem na stronie cpp0x na opis tej funkcji i a=b oraz b=a tak? a jak to wygląda w tym programie? Jakie są kroki zapisu? P.S Oglądając film Pana Mirosława o sortowaniu do zamiany wartości potrzebne było zrobienie czegoś takiego: int bufor; bufor = tab[ j - 1 ]; tab[ j - 1 ] = tab[ j ]; tab[ j ] = bufor;
zamiast tego można zrobić tak?: swap( tab[ j ], tab[ j - 1 ] );
|
|
Luq |
» 2018-01-07 16:26:07 zamiast tego można zrobić tak? |
Tak. |
|
pekfos |
» 2018-01-07 16:28:17 a jak to wygląda w tym programie? Jakie są kroki zapisu? |
Zapewne tak samo jak w algorytmie, który ten kod implementuje. Dostałeś nazwę. Ten zapis to skrót od P.S Oglądając film Pana Mirosława o sortowaniu do zamiany wartości potrzebne było zrobienie czegoś takiego:
int bufor; bufor = tab[ j - 1 ]; tab[ j - 1 ] = tab[ j ]; tab[ j ] = bufor; |
Taki tam był podany kod..? Wow. |
|
adrian.paz Temat założony przez niniejszego użytkownika |
» 2018-01-07 16:46:45 No tak, to było w bubble sort. A co to zła praktyka? (biorę za fakt, że "wow" to nie ironia :D) Należy wziąć pod uwagę, że ta funkcja powoduje skopiowanie obiektu do zmiennej tymczasowej i dwa razy wywołuje operator przypisania, więc może nie być efektywna dla typów, dla których wspomniane operacje są kosztowne. W takie sytuacji rekomendowane jest przeciążenie tej funkcji tak, by wykonywała zamianę w wydajniejszy sposób.
|
Co to są kosztowne operacje i przeciązenie tej funkcji? Może dlatego na tym filmiku została utworzona ta szufladka "fizycznie/manualnie" a nie "wirtualnie" |
|
adrian.paz Temat założony przez niniejszego użytkownika |
» 2018-01-07 17:09:58 I mam jeszcze jedno pytanie.. jak to działa? t – tymczasowo przechowuje dzielnik, t N
Lista kroków: K01: Dopóki b ≠ 0 wykonuj kroki K02...K04 K02: t ← b ; zapamiętujemy dzielnik K03: b ← a mod b ; wyznaczamy resztę z dzielenia, która staje się dzielnikiem K04: a ← t ; poprzedni dzielnik staje teraz się dzielną K05: Pisz a ; NWD jest ostatnią dzielną K06: Zakończ
|
a=1989 b=867 po pierwszym wykonaniu pętli jest a=255 b=867 I tu pytanie-co dalej?? program zawsze liczy większe%mniejsze?? bo jak policzy 255%867 to to dalej jest 255.. |
|
pekfos |
» 2018-01-07 17:15:14 po pierwszym wykonaniu pętli jest a=255 b=867 |
Nie jest. |
|
« 1 » 2 |