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

Poziom 2 lekcja 22 zadanie trzecie.

Ostatnio zmodyfikowano 2016-12-30 16:40
Autor Wiadomość
Damfled
Temat założony przez niniejszego użytkownika
Poziom 2 lekcja 22 zadanie trzecie.
» 2016-12-28 18:24:55
C/C++
int znajdzMinimum( int tablica[], int ile )
{ // to jest funkcja która ma znaleźć najmniejszą liczbę w tablicy, ile = 10, zmienna liczba jest do zwrócenia wartości z funkcji
    std::cout << "Znajduje najmniejsza liczbe..." << std::endl;
    int liczba = tablica[ 0 ]; // dlaczego zmienna liczba musi = tablica[] żeby znaleźć najmniejsza liczbę? w ten sposób informuje program żeby szukał w przedziale tablicy i nie wychodził po za nią?
    for( int licznik = 0; licznik < ile; licznik++ )
    for( liczba; liczba > tablica[ licznik ]; )
         liczba = tablica[ licznik ];
   
    return liczba;
}
Chcę zrozumieć cały program zanim pójdę dalej.
P-155600
carlosmay
» 2016-12-28 19:16:54
// dlaczego zmienna liczba musi = tablica[] żeby znaleźć najmniejsza liczbę? w ten sposób informuje program żeby szukał w przedziale tablicy i nie wychodził po za nią?
A jakich innych liczba tam się spodziewasz? Przecież szukasz wśród liczb w tablicy.
int liczba = tablica[ 0 ];
 - tutaj inicjalizujesz zmienną pierwszą wartością tablicy,
a później sprawdzasz, czy każdy następny jest mniejszy. Pętle można z powodzeniem zacząć od
licznik = 1;
,
bo pierwszy element już jest przypisany.

Dlaczego tak?
C/C++
for( liczba; liczba > tablica[ licznik ]; )
     liczba = tablica[ licznik ];
a nie tak?
C/C++
if( liczba > tablica[ licznik ] ) {
    liczba = tablica[ licznik ];
}

Sensownie nazwij zmienne.
P-155604
Damfled
Temat założony przez niniejszego użytkownika
» 2016-12-29 20:26:44
Dziękuję za odpowiedź. Wytłumaczenie pomogło w dokładniejszym zrozumieniu. :)

Jak napiszę:
C/C++
if( liczba > tablica[ licznik ] ) {
    liczba = tablica[ licznik ];
}
Wyświetla error: expected ';' before ')' token
i error: expected ';' before 'return'.

Kiedy napiszę:
C/C++
for( liczba; liczba > tablica[ licznik ]; )
     liczba = tablica[ licznik ];

Nie wyświetla błędów. Różnica tylko że zmienna wpisałem w miejsce deklaracji zmiennej i jest ';' po tablicy w pętli for.

Co do nazywania zmiennych wciąż się uczę. :)
P-155660
carlosmay
» 2016-12-29 21:55:52
Wstaw kod dla takiego błędu:
Wyświetla error: expected ';' before ')' token
i error: expected ';' before 'return'.
P-155667
Damfled
Temat założony przez niniejszego użytkownika
» 2016-12-30 10:00:02
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>

void wylosujLiczby( int wylosowane[], int ile )
{
    for( int wylosowanych = 0; wylosowanych < ile; wylosowanych++ )
         wylosowane[ wylosowanych ] =( std::rand() % 20 ) + 10;
   
}

void wypiszTablice( int tablica[], int ile )
{
    for( int wypisanych = 0; wypisanych < ile; wypisanych++ )
         std::cout << tablica[ wypisanych ] << ", ";
   
    std::cout << std::endl;
}

void wypiszTabliceOdTylu( int tablica[], int ile )
{
    for( int wypisanych = 9; wypisanych >= 0; wypisanych-- )
         std::cout << tablica[ wypisanych ] << ", ";
   
    std::cout << std::endl;
}

int znajdzMinimum( int tablica[], int ile )
{
    int liczba = tablica[ 0 ];
    for( int elementow = 1; elementow < ile; elementow++ )
    for( liczba > tablica[ elementow ] )
         liczba = tablica[ elementow ];
   
    return liczba;
}

int znajdzMaksimum( int tablica[], int ile )
{
    int liczba = tablica[ 0 ];
    for( int elementow = 1; elementow < ile; elementow++ )
    for( liczba < tablica[ elementow ] )
         liczba = tablica[ elementow ];
   
    return liczba;
}

void wypiszMinMax( int iMin, int iMax )
{
    std::cout << "Najmniejsza liczba to: " << iMin << "\nNajwieksza liczba to: " << iMax << std::endl;
}
int main()
{
    srand( time( NULL ) );
    int tablica[ 10 ];
    wylosujLiczby( tablica, 10 );
    wypiszTablice( tablica, 10 );
    wypiszTabliceOdTylu( tablica, 10 );
    int iMin = znajdzMinimum( tablica, 10 );
    int iMax = znajdzMaksimum( tablica, 10 );
    wypiszMinMax( iMin, iMax );
    return 0;
}
P-155682
carlosmay
» 2016-12-30 11:31:13
Miałeś wstawić kod z
if
em, który generuje powyższy błąd.
P-155684
Damfled
Temat założony przez niniejszego użytkownika
» 2016-12-30 12:03:34
"Miałeś wstawić kod z
if
em, który generuje powyższy błąd."

Nie rozumiem co mam wstawić, możesz jakoś inaczej napisać to zdanie? :)

Program który wstawiłem wyżej po uruchomieniu wyświetla błędy które wypisałem.
P-155686
carlosmay
» 2016-12-30 15:50:31
Jak napiszę:
C/C++
if( liczba > tablica[ licznik ] ) {
    liczba = tablica[ licznik ];
}
Wyświetla error: expected ';' before ')' token
i error: expected ';' before 'return'.
Chcę, żebyś wstawił kod z zastosowaniem tej instrukcji warunkowej w twoim kodzie.
P-155699
« 1 » 2
  Strona 1 z 2 Następna strona