• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Na jakim poziomie jest taki kod

VPS Starter Arubacloud
0 głosów
583 wizyt
pytanie zadane 20 listopada 2015 w C i C++ przez coonkhey Nowicjusz (180 p.)
Witam. Po kilku godzinach zapisałem taki kod w C++. Chcę żeby wypowiedział się na jakim poziomie jest to kod.

#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
//zmienne globalne, wskaznik do tablicy, oraz zmienna n przechowujaca rozmiar tablicy
int* array;
int n;

//Podprogram zmieniajacy rozmiar tablicy
void changeArraySize(){
    cout << "Podaj rozmiar tablicy: ";
    if(!(cin >> n)){
        cout << "Kernel PANIC!\n";
        exit(0);
    }
    array = new int[n];
}

//Glowne menu programu, jako wynik zwraca numer opcji
int mainMenu(){
    int option;
    cout << "Menu: \n\n\t0-Zakoncz program\n\t1-Wczytaj do tablicy wartosci z klawiatury\n\t2-Wczytaj wartosci losowe\n\t3-Wyswietl tablice\n\t4-Wyswietl najmniejszy element\n\t5-Zmien rozmiar tablicy\n\t6-Sortowanie poprzez wstawianie tablicy\n\t7-Sortowanie babelkowe\n\t8-Sortowanie quick\n\nPodaj numer opcji: ";
    if(!(cin >> option)){
        cout << "Kernel PANIC!\n";
        exit(0);
    }
    cout << "Wybrano opcje: " << (option>7?1:option) << "\n\n";
    return option;
}

//wypelnianie tablicy za pomoca klawiatury
void keyboardFill(int* array){
    cout << "Wczytywanie z klawiatury\n";
            for(int i=0; i<n; ++i){
                cin>>array[i];
                cout << "Podaj jeszcze: " << n-i << " liczb \n";
            }
}

//Wypelnianie tablicy liczbami losowymi
void randomFill(int* array){
    cout << "Wypelniam tablice wartosciami losowymi :)\n";
            for(int i=0; i<n; ++i){
                array[i]=rand()%10001;
            }

}

//Podprogram drukujacy tablice
void arrayPrint(int* array){
    system("CLS");
    cout<<"\nWypisuje zawartosc tablicy:\n\n";
    for(int i=0; i<n; ++i){
        cout<<array[i] << "\t";
    }
    cout << "\n\nNacisnij dowolny klawisz";
    cin.get(); cin.get();
}

//Popprogram ktory szuka minimum w tablicy
void findTheSmallestNumber(int* array){
    int min=array[0];
    int index=0;
    for(int i=1; i<n; ++i){
        if(min > array[i]){
            min = array[i];
            index=i;
        }
    }
    cout << "Najmniejszy element ma wartosc: " << min << " jest pod indeksem: "<< index <<"\n";
    cin.get(); cin.get();
}

//struktura przechowujaca dwa int'y
struct indexData{
    int index;
    int data;
};

//Przeciazana funkcja wyszukujaca minimum w okreslonym fragmencie tablicy od start do konca
indexData findTheSmallestNumber(int* array, int start){
    int min=array[start];
    int index=start;
    for(int i=start+1; i<n; ++i){
        if(min > array[i]){
            min = array[i];
            index=i;
        }
    }
    indexData temp;
    temp.data=min;
    temp.index=index;
    return temp;
}

//glowna procedura sortujaca poprzez wstawianie
void sortByInstert(int* array, int n){
    char a;
    int j=0;
    int temp;
    indexData temp2;
    while(j<n){
        temp2=findTheSmallestNumber(array,j);
        temp = array[temp2.index];
        array[temp2.index]=array[j];
        array[j]=temp;
        j=j+1;
        a=rand()%120+120;
        cout << a;
    }
    cout << "\n\nPosortowano! Nacisnij dowolny klawisz";
    cin.get(); cin.get();
}

//sortowanie babelkowe
void sortBubble(int* array, int n){
    int x;
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<n - 1; j++)
        {
            if(array[j]>array[j+1])
                swap(array[j], array[j+1]);
        }
    }
}

//sortowanie szybkie
void sortowanieSzybkie( int* array, int lewy, int prawy )
{
    int i = lewy;
    int j = prawy;
    int x;
    int s = array[(lewy+prawy)/2];
    do
    {
        while(array[i]<s)
             i++;
        
        while(array[j]>s)
             j--;
        
        if( i <= j )
        {
            x=array[i];
            array[i]=array[j];
            array[j]=x;
            i++;
            j--;
        }
    } while(i<=j);
    
    if(lewy<j) sortowanieSzybkie(array,lewy,j);
    if(prawy>i) sortowanieSzybkie(array,i,prawy);
    
}

 

//Podprogram wlaczajacy inne podprogramy w zaleznosci od podanego numeru opcji, po wykonaniu podprogramu sie znow wlacza
void menuSelector(){
    system("cls");
    switch(mainMenu()){
        default:
        case 1:
            system("CLS");
            keyboardFill(array);
            break;
        case 2:
            system("CLS");
            randomFill(array);
            break;
        case 3:
            system("CLS");
            arrayPrint(array);
            break;
        case 4:
            system("CLS");
            findTheSmallestNumber(array);
            break;
        case 5:
            system("CLS");
            changeArraySize();
            break;
        case 6:
            system("CLS");
            sortByInstert(array,n);
            break;
        case 7:
            system("CLS");
            sortBubble(array,n);
            break;
        case 8:
            system("CLS");
            sortowanieSzybkie(array,0,n-1);
            break;    
        case 0:
            cout << "Koncze dzialanie programu...";
            exit(1);
            break;
    }
    return menuSelector();
}

int main(){
    changeArraySize();
    //definiowanie maszyny losujacej
    srand(time(0));

    //wlaczanie glownego podprogramu
    menuSelector();
    cin.get(), cin.get();
}

3 odpowiedzi

+2 głosów
odpowiedź 20 listopada 2015 przez Patrycjerz Mędrzec (192,340 p.)
A na jakim poziomie jest twoja kultura wypowiedzi?
+2 głosów
odpowiedź 20 listopada 2015 przez niezalogowany
Przeczytaj zawartość tego linku: https://forum.pasja-informatyki.pl/faq
0 głosów
odpowiedź 20 listopada 2015 przez Mikrokontroler xD Stary wyjadacz (13,500 p.)
na bardzo podstawowym
Pozatym nawet nie wiemy co to ma niby robić a raczej nikt nie będzie wszystkiego analizował "co autor miał na myśli".

Podobne pytania

0 głosów
1 odpowiedź 260 wizyt
0 głosów
2 odpowiedzi 8,031 wizyt
0 głosów
2 odpowiedzi 891 wizyt

92,452 zapytań

141,262 odpowiedzi

319,085 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...