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

Rozdział 18 - Tablice, gotowy kod, uwagi, zastrzeżenia

Ostatnio zmodyfikowano 2017-02-15 12:23
Autor Wiadomość
Biskup
Temat założony przez niniejszego użytkownika
Rozdział 18 - Tablice, gotowy kod, uwagi, zastrzeżenia
» 2017-02-15 11:03:14
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int wylosuj( int start, int stop )
{
    int ile = stop - start + 1;
    int los =( rand() % ile );
    int wynik = los + start;
    return wynik;
   
}
int main()
{
    int liczba[ 999 ];
    srand( time( NULL ) );
    int ile = 0;
    do
    {
        cout << "Liczba nr " << ile + 1 << ": " << wylosuj( 4, 10 ) << endl;
        liczba[ ile ] = wylosuj( 4, 10 );
        ile++;
    } while( ile < 999 );
   
    int suma = 0;
    ile = 0;
    do
    {
        liczba[ 999 ];
        suma += liczba[ ile ];
        ile++;
    } while( ile < 999 );
   
    cout << "Suma liczb = " << suma;
   
    return 0;
}
Witam, czy ktoś mógłby rzucić okiem na mój kod? Wydaje mi się, że wszystko jest poprawnie zrobione jednak dobrze było by dostać jakiś informację zwrotną od kogoś lepiej się na tym znającego. Żebym wiedział czy dobrze zrozumiałem rzeczy które robię. Czy np. poprawnie stosuję funkcje. Wiem, że mógłbym zrobić krótszy kod jednak chciałem użyć funkcji. Kolejne pytanie, czy mógłbym zmieścić wszystko w jednym DO tak, żeby zachować treść zadania (najpierw wypełnienie całej tablicy, potem sumowanie).
C/C++
do
{
    cout << "Liczba nr " << ile + 1 << ": " << wylosuj( 4, 10 ) << endl;
    liczba[ ile ] = wylosuj( 4, 10 );
    suma += liczba[ ile ];
    ile++;
}
Wiem, że mógłbym tak, krótszy kod, zadanie wykonane, jednak suma jest wykonywana równocześnie z losowaniem. Czy jest inny sposób?
EDIT: Mam też pytanie odnośnie estetyki pisania. Kiedy piszę swoje kody nie robię zwykle odstępów między operatorami, nawiasami itp. Dam teraz przykład z tego kodu. Ja napisałem go tak:   cout<<"Liczba nr "<<ile+1<<": "<<wylosuj(4,10)<<endl;   jednak po wsadzeniu swojego kodu w ramki (cpp) (niech mnie ktoś oświeci jak to się nazywa) zauważyłem, że wszędzie zostały dodane spacje
cout << "Liczba nr " << ile + 1 << ": " << wylosuj( 4, 10 ) << endl;
 Pomaga to przy pracy czy nie ma znaczenia? Nie chcę sobie wyrabiać złych nawyków na samym początku.
P-157730
carlosmay
» 2017-02-15 12:23:43
Wiem, że mógłbym tak, krótszy kod,
Nie skracanie, a czytelność kodu jest najważniejsza.

Nie używaj "magic number". Każdą liczbę można zastąpić znaczącą zmienną ze znaczącą nazwą.
To zwiększa czytelność kodu (nie trzeba w nim szukać znaczenia liczb).
C/C++
constexpr int rozmiar_tablicy { 999 };
int poczatek_przedzialu { 4 };
int koniec_przedzialu { 10 };

Co do estetyki:
- stosuj przerwy, wcięcia, klamry itd. (to dobra praktyka)
- każde działanie robiące odrębne operacje lepiej napisać w osobnej linii niż pisać długie nieczytelne jedolinijkowce.
P-157738
« 1 »
  Strona 1 z 1