• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Optymalizacja - GRA LOSOWA.

iDELTI

C++
Joined
Jan 15, 2010
Messages
2,033
Reaction score
69
Location
Zimbabwe
PHP:
#include <iostream>
#include <cstdlib>
#include <ctime>
// zadanie domowe - nr 7 - maszyna losujaca
using namespace std;

int main()
{
    float a;
    int los = ( rand() % 100 );
    int proby = 0;
    srand( time( NULL ) );

    cout << "MASZYNA LOSUJACA - CREATED BY ETHAN" << endl;
      do {
            proby++;
            cout << "Podaj liczbe, ktora zostala wylosowania: ";
            cin >> a;
            if ( a < los)
            {
                cout << "Wylosowana liczba jest wieksza od tej, ktora podales!\n";
            }
            if ( a > los )
            {
                cout << "Wylosowana liczba jest mniejsza od tej, ktora podales!\n";
            }

         } while ( a != los );

    cout << "Brawo, wylosowana liczba to: " << los << endl;
    cout << "Udalo Ci sie za " << proby << " razem.";

}

Jest możliwość większej optymalizacji tego kodu?
Chodzi o to, że dla faceta od programowania, jedyne co się liczy to długość kodu(w tym sensie, że ma być krótki).
Lubię C++ silnikowe, ale matematyczne nie ma być skomplikowane, tylko łatwe do zrozumienia.
Czego wymagać od aplikacji konsolowych? :)
 
możesz wypierdzielić te klamry przed i po coucie i couta dać do jednej linii z ifami, no i zamiast drugiego ifa dać elsa.
Nic to w sumie nie da, ale może będzie ładniej jeśli krócej :p
 
możesz wypierdzielić te klamry przed i po coucie i couta dać do jednej linii z ifami, no i zamiast drugiego ifa dać elsa.
Nic to w sumie nie da, ale może będzie ładniej jeśli krócej :p

Jezeli da elsa zamiast drugiego ifa, to wyswietlu mu, ze liczba jest mniejsza nawet gdy liczba bedzie rowna :p.
 
Wywal
Code:
cout << "MASZYNA LOSUJACA - CREATED BY ETHAN" << endl;
wtedy kod będzie krótszy.
 
Code:
#include <iostream>
#include <ctime>
using namespace std;
int main() {
    float a;
    int los = rand()%100, proby = 0;
    srand(time(NULL));
      do {
	    proby++;
	    cout << "Podaj liczbe, ktora zostala wylosowania: ";
            cin >> a;
            if (a < los)
                cout << "Wylosowana liczba jest wieksza\n";
            if (a > los)
                cout << "Wylosowana liczba jest mniejsza\n";
         } while (a != los);
    cout << "Brawo, wylosowana liczba to: " << los << endl << "Udalo Ci sie za " << proby << " razem.";
}
 
Zrób pod plik funkcje i zrob jakas jedna funkcje w mainie np start(); :) krócej chyba się nie da.
 
Ktoś chętny ogarnąć optymalkę do tablic jednowymiarowych? D :

PHP:
#include <cstdlib>
#include <iostream>
#include <ctime>

using namespace std;

int main()
{
    int liczba[ 15 ];
    int licznik = 0;
    
    srand( time( NULL ) );
    do
    {
        liczba[ licznik ] =( rand() % 10 ) + 0;
        licznik++;
    } while( licznik <= 14 );
    
    cout << "Liczby. ktore podales: " << endl;
    licznik = 0;
    do
    {
        cout << "- " << liczba[ licznik ] << "\n";
        licznik++;
    } while( licznik <= 14 );
    
    cout << "Teraz dodajemy wszystkie liczby: \n";
    
    int suma = 0;
    licznik = 0;
    do
    {
        suma += liczba[ licznik ];
        licznik++;
    } while( licznik <= 14 );
    
    cout << "Wynik: " << suma << endl;
    
}

Aaa, żeby nie było - teoretycznie w szkole nie znamy:
PHP:
for( licznik = 0; licznik <= 14; licznik++, suma += liczba[ licznik ] );

Tak więc nie wyskakiwać z ta petlą i... wstawianie funkcji + argumenty int tablica[] - też nie można (teorytecznie nie poznana z chronologią nauczania) - da sie cos z tym zrobic jeszcze? D :
 
Code:
#include <iostream>
#include <ctime>
using namespace std;

int main()
{
    int a,proby=0,los = ( rand() % 100 );
    srand( time( NULL ) );
       do {
            proby++;
            cout << "Podaj liczbe, ktora zostala wylosowania: ";
            cin >> a;
         if(a != los)
	cout << "Wylosowana liczba jest " << (a < los ? "wieksza" : "mniejsza") << endl;

         } while ( a != los );

 cout << "Brawo, wylosowana liczba to: " << los << endl << "Udalo Ci sie za " << proby << " razem.";
}
 
Code:
#include <iostream>
#include <ctime>
using namespace std;

int main()
{
    int a,proby=0,los = ( rand() % 100 );
    srand( time( NULL ) );
       do {
            proby++;
            cout << "Podaj liczbe, ktora zostala wylosowania: ";
            cin >> a;
         if(a != los)
	cout << "Wylosowana liczba jest " << (a < los ? "wieksza" : "mniejsza") << endl;

         } while ( a != los );

 cout << "Brawo, wylosowana liczba to: " << los << endl << "Udalo Ci sie za " << proby << " razem.";
}

ej, troszkę nie w temacie jesteś irvinek - to co tutaj zastosowałeś już dawno skróciłem z pomocą Diatha - by the way...
mam jeszcze krócej, niż Ty :p.
 
Code:
#include <cstdlib>
#include <iostream>
#include <ctime>

using namespace std;

int main()
{
    int suma,licznik,liczba[15];
    
    
    srand( time( NULL ) );
        cout << "Liczby. ktore podales: " << endl;
    for (licznik=0;licznik<=14;++licznik)
    {
liczba[licznik] =( rand() % 10 ) + 0;
       cout << "- " << liczba[ licznik ] << "\n";
 suma += liczba[ licznik ];
    }
   cout << "Teraz dodajemy wszystkie liczby: \n" <<  cout << "Wynik: " << suma << endl;

    
}
 
Last edited:
Code:
#include <cstdlib>
#include <iostream>
#include <ctime>

using namespace std;

int main()
{
    int suma,licznik,liczba[15];
    
    
    srand( time( NULL ) );
    for (licznik=0;licznik<=14;++licznik)
liczba[licznik] =( rand() % 10 ) + 0;
    
    cout << "Liczby. ktore podales: " << endl;
    
     for (licznik=0;licznik<=14;++licznik)
        cout << "- " << liczba[ licznik ] << "\n";
   
    
    cout << "Teraz dodajemy wszystkie liczby: \n";
    
   
    for (licznik=0;licznik<=14;++licznik)
        suma += liczba[ licznik ];
        cout << "Wynik: " << suma << endl;
    
}

Nie skomentuje tego...


Ktoś chętny ogarnąć optymalkę do tablic jednowymiarowych? D :

PHP:
#include <cstdlib>
#include <iostream>
#include <ctime>

using namespace std;

int main()
{
    int liczba[ 15 ];
    int licznik = 0;
    
    srand( time( NULL ) );
    do
    {
        liczba[ licznik ] =( rand() % 10 ) + 0;
        licznik++;
    } while( licznik <= 14 );
    
    cout << "Liczby. ktore podales: " << endl;
    licznik = 0;
    do
    {
        cout << "- " << liczba[ licznik ] << "\n";
        licznik++;
    } while( licznik <= 14 );
    
    cout << "Teraz dodajemy wszystkie liczby: \n";
    
    int suma = 0;
    licznik = 0;
    do
    {
        suma += liczba[ licznik ];
        licznik++;
    } while( licznik <= 14 );
    
    cout << "Wynik: " << suma << endl;
    
}

Aaa, żeby nie było - teoretycznie w szkole nie znamy:
PHP:
for( licznik = 0; licznik <= 14; licznik++, suma += liczba[ licznik ] );

Tak więc nie wyskakiwać z ta petlą i... wstawianie funkcji + argumenty int tablica[] - też nie można (teorytecznie nie poznana z chronologią nauczania) - da sie cos z tym zrobic jeszcze? D :

Wiem, ze mozecie napisac posty typu:
- to nie na tym forum, idz z tymi kodami, etc...

Ale wiem, ze sa tutaj ludzie potrafiący w C++ pisać lepiej, niż dobrze i od takich trzeba się uczyć :).
 
Oj, tam nie widzialem co po kodzie jest napisane;
Code:
#include <cstdlib>
#include <iostream>
#include <ctime>

using namespace std;

int main()
{
    int licznik=0,suma=0,liczba[15];
    srand( time( NULL ) );
 cout << "Liczby. ktore podales: " << endl;
    do
    {
        liczba[licznik] =( rand() % 10 ) + 0;
suma += liczba[ licznik ];
cout << "- " << liczba[licznik] << "\n";
        licznik++;

    } while( licznik <= 14 );
    cout << "Teraz dodajemy wszystkie liczby: "<< endl << "Wynik: " << suma << endl;
    
}
bez do while
Code:
#include <cstdlib>
#include <iostream>
#include <ctime>

using namespace std;

int main()
{
    int licznik=0,suma=0,liczba[15];
    
    
    srand( time( NULL ) );
 cout << "Liczby. ktore podales: " << endl;
   while( licznik <= 14 )
{
        liczba[licznik] =( rand() % 10 ) + 0;
 suma += liczba[ licznik ];
cout << "- " << liczba[licznik] << "\n";
        licznik++;
}
    cout << "Teraz dodajemy wszystkie liczby: "<< endl << "Wynik: " << suma << endl;
     
}
 
Last edited:
Oj, tam nie widzialem co po kodzie jest napisane;
Code:
#include <cstdlib>
#include <iostream>
#include <ctime>

using namespace std;

int main()
{
    int licznik=0,suma=0,liczba[15];
    srand( time( NULL ) );
 cout << "Liczby. ktore podales: " << endl;
    do
    {
        liczba[licznik] =( rand() % 10 ) + 0;
suma += liczba[ licznik ];
cout << "- " << liczba[licznik] << "\n";
        licznik++;

    } while( licznik <= 14 );
    cout << "Teraz dodajemy wszystkie liczby: "<< endl << "Wynik: " << suma << endl;
    
}
bez do while
Code:
#include <cstdlib>
#include <iostream>
#include <ctime>

using namespace std;

int main()
{
    int licznik=0,suma=0,liczba[15];
    
    
    srand( time( NULL ) );
 cout << "Liczby. ktore podales: " << endl;
   while( licznik <= 14 )
{
        liczba[licznik] =( rand() % 10 ) + 0;
 suma += liczba[ licznik ];
cout << "- " << liczba[licznik] << "\n";
        licznik++;
}
    cout << "Teraz dodajemy wszystkie liczby: "<< endl << "Wynik: " << suma << endl;
     
}

lepsze to niż nic, choć i tak chaotycznie... ; x

A z tym dasz radę? Pisałem w 10 minut, ale musze sie wziac jeszcze za 2 zadania... ;x

PHP:
#include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;

int wylosujLiczby( int t[], int ileLiczb, int a, int b )
{
    cout << "Wylsowoane liczby to: " << endl;
    int licznik = 0;
    do
    {
        t[licznik] = ((rand() % b) + a);
        licznik++;

    } while ( licznik <= ileLiczb );
}

int wypiszLiczby(int t[], int ileLiczb)
{
    cout << "Oto wylosowane liczby: " << endl;
    int licznik = 0;
    do
    {
        cout << "- " << t[licznik] << endl;
        licznik++;
    } while ( licznik <= ileLiczb);
}

int obliczSume( int t[], int ileLiczb)
{
    int wynik = 0;
    int licznik = 0;
    do
    {
        wynik = wynik + t[licznik];
        licznik++;
    } while (licznik <= ileLiczb);
    return wynik;
}

int main()
{
    int tablica[ 15 ];
    wylosujLiczby( tablica, 15, 4, 10 );
    wypiszLiczby( tablica, 15 );
    int iSuma = obliczSume( tablica, 15 );
    std::cout << "Suma liczb wynosi: " << iSuma << std::endl;
    return 0;
}

poprawka:

PHP:
#include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;

int wylosujLiczby( int t[], int ileLiczb, int a, int b )
{
    cout << "Wylsowoane liczby to: " << endl;
    int licznik = 0;
    do
    {
        t[licznik] = ((rand() % b) + a);
        licznik++;

    } while ( licznik <= ileLiczb );
}

int wypiszLiczby(int t[], int ileLiczb)
{
    cout << "Oto wylosowane liczby: " << endl;
    int licznik = 0;
    do
    {
        cout << "- " << t[licznik] << endl;
        licznik++;
    } while ( licznik <= ileLiczb);
}

int obliczSume( int t[], int ileLiczb)
{
    int wynik = 0;
    int licznik = 0;
    do
    {
        wynik = wynik + t[licznik];
        licznik++;
    } while (licznik <= ileLiczb);
    return wynik;
}

int main()
{
    srand(time(NULL));
    int tablica[ 15 ];
    wylosujLiczby( tablica, 15, 4, 10 );
    wypiszLiczby( tablica, 15 );
    int iSuma = obliczSume( tablica, 15 );
    std::cout << "Suma liczb wynosi: " << iSuma << std::endl;
    return 0;
}
 
Code:
    std::cout << "Suma liczb wynosi: " << obliczSume( tablica, 15 ) << std::endl;

void wypiszLiczby(int t[], int ileLiczb)
i
void wylosujLiczby( int t[], int ileLiczb, int a, int b )
jak nic nie zwracasz

jak nie potrzebujesz 3 funkcji.
Code:
#include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;

void jedna_funkcja(int t[], int ileLiczb, int a, int b )
{
    int wynik=0,licznik=0;
    cout << "Oto wylosowane liczby: " << endl;
   while(licznik <= ileLiczb){
        t[licznik] = ((rand() % b) + a);
        wynik = wynik + t[licznik];
        cout << "- " << t[licznik] << endl;
        licznik++;
    } 
     std::cout << "Suma liczb wynosi: " << wynik << std::endl;
   
}

int main()
{
    srand(time(NULL));
    int tablica[ 15 ];
 jedna_funkcja( tablica, 15 ,4 , 10 );
   return 0;
}
 
Last edited:
lol, czyli mówisz, że szkoła cię ogranicza i nie pozwala wychodzić wyżej niż zakres nauczania? lolll

tak ogólnie to patrzę, będę tu wrzucał swoje prace domowe, napewno ktoś tutaj z fizy,matmy, angielskiego, niemca, polskiego itd. coś wykombinuje xD
 
lol, czyli mówisz, że szkoła cię ogranicza i nie pozwala wychodzić wyżej niż zakres nauczania? lolll

tak ogólnie to patrzę, będę tu wrzucał swoje prace domowe, napewno ktoś tutaj z fizy,matmy, angielskiego, niemca, polskiego itd. coś wykombinuje xD


Przecież już były tematy z pomocą naukową typu matematyka, fizyka ; D
 
Back
Top