• algorytmy

      • temperatura

        Edytor algorytmów online: https://app.diagrams.net/

        TOP

        1. algorytmy na liczbach całkowitych, np.:
        2. algorytmy wyszukiwania i porządkowania (sortowania),np.:
          • jednoczesne znajdowanie największego i najmniejszego elementu w zbiorze: algorytm naiwny i optymalny,
          • algorytmy sortowania ciągu liczb: bąbelkowy, przez wybór, przez wstawianie liniowe lub binarne, przez scalanie, szybki, kubełkowy,
        3. algorytmy numeryczne, np.:
          • obliczanie wartości pierwiastka kwadratowego,
          • obliczanie wartości wielomianu za pomocą schematu Homera,
          • zastosowania schematu Homera: reprezentacja liczb w różnych systemach liczbowych, szybkie podnoszenie do potęgi,
          • wyznaczanie miejsc zerowych funkcji metodą połowienia,
          • obliczanie pola obszarów zamkniętych metodą trapezów i prostokątów
        4. algorytmy na tekstach, np.:
          • sprawdzanie, czy dany ciąg znaków tworzy palindrom, anagram,
          • porządkowanie alfabetyczne, (leksykograficzne)
          • wyszukiwanie wzorca w tekście,
          • obliczanie wartości wyrażenia podanego w postaci odwrotnej notacji polskiej,
        5. algorytmy kompresji i szyfrowania, np.:
          • kody znaków o zmiennej długości, np. alfabet Morse'a, kod Huffmana,
          • szyfr Cezara,
          • szyfr przestawieniowy,
          • szyfr z kluczem jawnym (RSA),
          • wykorzystanie algorytmów szyfrowania, np. w podpisie elektronicznym,
        6. algorytmy badające własności geometryczne, np.:
          • sprawdzanie warunku trójkąta,
          • badanie położenia punktów względem prostej,
          • badanie przynależności punktu do odcinka,
          • przecinanie się odcinków,
          • przynależność punktu do obszaru,
          • konstrukcje rekurencyjne: drzewo binarne, dywan Sierpińskiego, płatek Kocha;

         

        REALIZACJE

         

        1. algorytmy na liczbach całkowitych, np.:
        • reprezentacja liczb w dowolnym systemie pozycyjnym, w tym w dwójkowym i szesnastkowym,
        • sprawdzanie, czy liczba jest liczbą pierwszą,
        • sprawdzanie, czy liczba jest liczbą doskonałą
        • rozkładanie liczby na czynniki pierwsze,

        /*rozklad na czynniki */
        #include <iostream>
        
        using namespace std;
        
        int main()
        {
            int a,i=2;
            cout << "a=" ;
            cin>>a;
            ///---
            while(a>1)
                {
                    while(a%i==0)
                        {
                            cout<<i<<"\t";
                            a=a/i;
                        }
                    i++;
                }
            ///wynik wyprowadzony jest tylko na ekran
            ///nie przechowuje tych danych do dalszych obliczen
            /// jak zrobic funkcje podpowiedz typ void
            return 0;
        }
        
        
         #include <iostream>
        using namespace std;
        int _nwd(int a, int b) ///algorytm Euklidesa z dzieleniem
        {
            int reszta;
            while(b>0)
            {
                reszta=a%b;
                a=b;
                b=reszta;
            }
            return a;
        }
        /// START
        int main()
        {
            int a,b,c,dzielnik;
            cout<<"a=";
            cin>>a;
            cout<<"b=";
            cin>>b;
               dzielnik=_nwd(a,b);
                /// teraz pokaza funkcje
            cout << "nwd(" <<a<<","<<b<<")="<<dzielnik<< endl;
            return 0;
        }
        //--------------------------------------------------------------------//
          rnwd.cpp 
        #include <iostream>
        using namespace std;
        int nwdr(int a, int b) {
           if (a % b != 0) {
              //printf("%5d, %5d\n", a, b);
              return nwdr(b, a % b);
        
           } else
              return b;
        }
        int main() {
           int x = 3509, y = 209;
           cout << "nwd("<<x<<","<<y<<")="<<nwdr(x, y) << endl;
        }
        
        • iteracyjne i rekurencyjne obliczanie wartości liczb Fibonacciego,
        • wydawanie reszty metodą zachłanną
        1. algorytmy wyszukiwania i porządkowania (sortowania),np.:
          • jednoczesne znajdowanie największego i najmniejszego elementu w zbiorze: algorytm naiwny i optymalny,
          • algorytmy sortowania ciągu liczb: bąbelkowy, przez wybór, przez wstawianie liniowe lub binarne, przez scalanie, szybki, kubełkowy,
            przezWstawianie.cpp
            #include <iostream>
            using namespace std;
            const int n=10;
            int main()
            {
                int dane[n]= {1,2,0,4,3,7,4,10,2,6};
                /// wyswietlenie tablicy
                for(int i=0; i<n; i++)
                {
                    cout<<dane[i]<<"\t";
                }
                cout<<"\n";
                int i=1;
                int podniesiona;
                for (int k=1; k<n; k++)
                {
                    podniesiona=dane[k];
            
                    i=k;
            
                    while(podniesiona<dane[i-1] && i>0)
                    {
                        dane[i]=dane[i-1];
                        i--;
                        // cout<<dane[i]<<"\t";
                    }
                    dane[i]=podniesiona;
                }
                for(int i=0; i<n; i++)
                {
                    cout<<dane[i]<<"\t";
                }
                cout<<"\n";
                return 0;
            }
            
            
        2. algorytmy numeryczne, np.:
          • obliczanie wartości pierwiastka kwadratowego,
          • obliczanie wartości wielomianu za pomocą schematu Homera,
          • zastosowania schematu Homera: reprezentacja liczb w różnych systemach liczbowych, szybkie podnoszenie do potęgi,
          • wyznaczanie miejsc zerowych funkcji metodą połowienia,
          • obliczanie pola obszarów zamkniętych metodą trapezów i prostokątów
        3. algorytmy na tekstach, np.:
          • sprawdzanie, czy dany ciąg znaków tworzy palindrom, anagram,
          • porządkowanie alfabetyczne, (leksykograficzne)
          • wyszukiwanie wzorca w tekście,
          • obliczanie wartości wyrażenia podanego w postaci odwrotnej notacji polskiej,
        4. algorytmy kompresji i szyfrowania, np.:
          • kody znaków o zmiennej długości, np. alfabet Morse'a, kod Huffmana,
          • szyfr Cezara,
          • szyfr przestawieniowy,
          • szyfr z kluczem jawnym (RSA),
          • wykorzystanie algorytmów szyfrowania, np. w podpisie elektronicznym,
        5. algorytmy badające własności geometryczne, np.:
          • sprawdzanie warunku trójkąta,
          • badanie położenia punktów względem prostej,
          • badanie przynależności punktu do odcinka,
          • przecinanie się odcinków,
          • przynależność punktu do obszaru,
          • konstrukcje rekurencyjne: drzewo binarne, dywan Sierpińskiego, płatek Kocha;