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

Pętla for - ostatnie zadanie domowe - ulepszenie

Ostatnio zmodyfikowano 2015-11-21 07:38
Autor Wiadomość
Lich555
Temat założony przez niniejszego użytkownika
Pętla for - ostatnie zadanie domowe - ulepszenie
» 2015-11-20 20:57:02
Witam.
Czy ten program da się jakoś znacząco zmienić, skrócić, tak, żeby działał bez zarzutu?
Jest to program dot. poniższego zadania domowego:

Napisz program który wykona wszystkie poniższe kroki w podanej kolejności:

    -Losuje 10 liczb z przedziału od 10 do 30 włącznie i zapisuje je do tablicy;
    -Wypisuje 10 wylosowanych liczb od początku do końca;
    -Wypisuje 10 wylosowanych liczb od końca do początku;
    -Znajduje najmniejszą oraz największą wylosowaną liczbę.
    -Wypisuje najmniejszą i największą wylosowaną liczbę.

Program nie może używać pętli innych niż pętla for
C/C++
#include <iostream>
#include <cstdlib>
#include <time.h>

using namespace std;

void wypiszMinMax( int imin, int imax )
{
    cout << imin << endl;
    cout << imax << endl;
}

int minimum( int iLiczba[], int ile )
{
    int imin = iLiczba[ 0 ];
    for( int i = 0; i < ile; i++ )
         if( imin > iLiczba[ i ] ) imin = iLiczba[ i ];
   
    return imin;
}

int maximum( int iLiczba[], int ile )
{
    int imax = iLiczba[ 0 ];
    for( int i = 0; i < ile; i++ )
         if( imax < iLiczba[ i ] ) imax = iLiczba[ i ];
   
    return imax;
}

void wypiszkon( int iLiczba[], int ile )
{
    for( int i = ile - 1; i >= 0; i-- )
         cout << iLiczba[ i ] << endl;
   
    cout << endl;
}

void wypisz( int iLiczba[], int ile )
{
    for( int i = 0; i < ile; i++ )
         cout << iLiczba[ i ] << endl;
   
    cout << endl;
}

void los( int iLiczba[], int ile )
{
    for( int i = 0; i < ile; ++i )
         iLiczba[ i ] =( rand() % 21 ) + 10;
   
}

int main()
{
    srand( time( NULL ) );
    int liczba[ 10 ];
    los( liczba, 10 );
    wypisz( liczba, 10 );
    wypiszkon( liczba, 10 );
    int iMax = maximum( liczba, 10 );
    int iMin = minimum( liczba, 10 );
    wypiszMinMax( iMin, iMax );
    return 0;
}
P-140462
carlosmay
» 2015-11-20 21:19:59
C/C++
int iMax = maximum( liczba, 10 );
int iMin = minimum( liczba, 10 );
wypiszMinMax( iMin, iMax );
można zamienić na
C/C++
cout << "Min: " << minimum( liczba, 10 ) << ", Maks: " << maximum( liczba, 10 ) << endl;

wtedy funkcja 'wypiszMinMax()' jest zbędna.
P-140465
Gibas11
» 2015-11-20 21:25:15
Kod wygląda całkiem nieźle, na pierwszy rzut oka nie ma się do czego przyczepić. Chociaż ja w parametrach funkcji przyjmujących tablicę wolę zamiast
int iLiczba[]
 używać
int * iLiczba
, ale to tylko moja subiektywna opinia.

EDIT: @Up Chyba autorowi chodziło po części o poćwiczenie używania funkcji, chociaż rzeczywiście byłoby krócej.
EDIT2: Chociaż ten kawałek nawet przy założeniu stosowania wielu funkcji mógłby wyglądać trochę lepiej:
wypiszMinMax( minimum( liczba, 10 ), maximum( liczba, 10 ) );
P-140467
Lich555
Temat założony przez niniejszego użytkownika
» 2015-11-20 22:27:54
Doklejam jeszcze coś, na czym się wzorowałem, bo po prostu na końcu tematu było pokazane jak powinna wyglądać funkcja main.
C/C++
int main()
{
    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;
}

@carlosmay
Dokładnie tak jak powiedział kolega. Wszystko ma być zawarte w funkcjach co można zauważyć w powyższym kodzie.

@Gibas11
Co do wskaźników, to nie używam ich, bo jeszcze nie miałem ich w tym kursie. Oglądałem coś o nich, ale nie znam ich jeszcze dobrze.

P-140470
carlosmay
» 2015-11-21 00:32:08

ostatnie zadanie domowe - ulepszenie

Czy ten program da się jakoś znacząco zmienić, skrócić, tak, żeby działał bez zarzutu? 
 To zadawaj pytania konkretnie. Nic nie napisałeś o trzymaniu się scenariusza.

Dokładnie tak jak powiedział kolega. Wszystko ma być zawarte w funkcjach co można zauważyć w powyższym kodzie.
 gdzie tak sugerowała treść posta?

Jest tylko przytoczona treść zadania dla informacji.
Wg której masz skrócony kod. Która część treści nie jest wykonana z tego co dostałeś?
P-140480
Lich555
Temat założony przez niniejszego użytkownika
» 2015-11-21 07:38:17
Spokojnie :P Zdaję sobie dobrze sprawę, że jest to temat dosyć niekonkretny. Nikt nie ma do Ciebie pretensji :P
P-140484
« 1 »
  Strona 1 z 1