Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

NWD I NWW

Ostatnio zmodyfikowano 2018-01-07 22:09
Autor Wiadomość
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
C/C++
#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;
}
P-168434
mateczek
» 2018-01-06 19:40:02
wpisz w Google algorytm euklidesa.
ja znalazłem
C/C++
#include<iostream>
using namespace std;
int main() {
    int a = 12, b = 18;
    while( b ) swap( a %= b, b );
   
    cout << a;
}
P-168439
adrian.paz
Temat założony przez niniejszego użytkownika
» 2018-01-07 16:12:07
Nie za bardzo rozumiem tę funkcję
swap(a %= b, b); 
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:
C/C++
int bufor; bufor = tab[ j - 1 ];
tab[ j - 1 ] = tab[ j ];
tab[ j ] = bufor;
zamiast tego można zrobić tak?:

C/C++
swap( tab[ j ], tab[ j - 1 ] );
P-168461
Luq
» 2018-01-07 16:26:07
zamiast tego można zrobić tak?
Tak.
P-168463
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
C/C++
a %= b;
swap( a, b );

P.S Oglądając film Pana Mirosława o sortowaniu do zamiany wartości potrzebne było zrobienie czegoś takiego:
C/C++
int bufor; bufor = tab[ j - 1 ];
tab[ j - 1 ] = tab[ j ];
tab[ j ] = bufor;
Taki tam był podany kod..? Wow.
P-168464
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"
P-168466
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..
P-168467
pekfos
» 2018-01-07 17:15:14
po pierwszym wykonaniu pętli jest
a=255
b=867
Nie jest.
P-168468
« 1 » 2
  Strona 1 z 2 Następna strona