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

[CR] C++ (#3): Pętla: for, while, do..while. Pętle wyjaśnione

Object Storage Arubacloud
+1 głos
6,890 wizyt
pytanie zadane 5 kwietnia 2016 w Nasze poradniki przez Mirosław Zelent Nałogowiec (34,750 p.)

CR = Code Review. O co chodzi? Zajrzyj tutaj
Pełna lista wszystkich Code Review? Zajrzyj tutaj

https://www.youtube.com/watch?v=y6GOYVTVvqo

Kod #1 z odcinka:

#include <iostream>

using namespace std;

int main()
{

    for (int i=1; i<=10; i++)
    {
        cout << i <<endl;
    }

    return 0;
}

Kod #2 z odcinka:

#include <iostream>

using namespace std;

int main()
{

    for (int i=-13; i<0; i=i-2)
    {
        cout << i <<endl;
    }

    return 0;
}

Kod #3 z odcinka:

#include <iostream>
#include <windows.h>
#include <cstdlib>

using namespace std;

int main()
{

    for (int i=15; i>=0; i--)
    {
        Sleep(1000);
        system("cls");
        cout << i <<endl;
    }
    cout<<"JEBUT";
    return 0;
}

Kod #4 z odcinka:

#include <iostream>

using namespace std;

string imie; int liczba;

int main()
{
    cout<<"Podaj imie: ";
    cin>>imie;
    cout<<"Podaj dodatnia liczbe calkowita: ";
    cin>>liczba;

    for (int i=1; i<=liczba; i++)
    {
        cout <<i<<". "<<imie<<endl;
    }
    return 0;
}

Kod #5 z odcinka:

#include <iostream>

using namespace std;

int populacja=1; int godzin=0;

int main()
{
    while (populacja <= 1000000000)
    {
        godzin++;
        populacja = populacja*2;

        cout<<"minelo godzin: "<<godzin;
        cout<<" liczba bakterii: "<<populacja<<endl;
    }
    return 0;
}

Kod #6 z odcinka:

#include <iostream>

using namespace std;

int populacja=1; int godzin=0;

int main()
{
    do
    {
        godzin++;
        populacja = populacja*2;

        cout<<"minelo godzin: "<<godzin;
        cout<<" liczba bakterii: "<<populacja<<endl;
    }while (populacja <= 1000000000);

    return 0;
}
 

Paczka z odcinka: POBIERZ​

komentarz 9 kwietnia 2017 przez Szymon Sajmon Nowicjusz (100 p.)

Hej, mam taki sam zapis ale mnie przy komendzie for pokazuje sie czerwona kartka. na czerwono zaznaczylem błąd

||=== Build: Debug in pentle (compiler: GNU GCC Compiler) ===|
C:\Users\Szymon\Documents\pentle\main.cpp|8|error: expected unqualified-id before 'for'|
C:\Users\Szymon\Documents\pentle\main.cpp|8|error: 'i' does not name a type|
C:\Users\Szymon\Documents\pentle\main.cpp|8|error: 'i' does not name a type|
||=== Build failed: 3 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
 

 

komentarz 9 kwietnia 2017 przez Szymon Sajmon Nowicjusz (100 p.)
teraz inny problem. Tamten rozwiązalem pisząc od nowa. Być może, że był jakis problem z nawiasami. Teraz problem mam takie, że mam ten sam zapis co na filmku. I mi pokazuje same 1  anie od 1-10. Co wiecej zrobił drugi projekt i tam juz mam od 1-10 ale nie znalazlem zadnych roznic! Jakies pomysly?
komentarz 9 kwietnia 2017 przez draghan VIP (106,230 p.)
Tutaj umieszczamy tylko rewizje kodu z kursu. W przypadku problemu z kodem proszę utworzyć nowy temat - zgodnie z zasadami tworzenia tematów (podać kod źródłowy, błędy, precyzyjnie nazwać problem w tytule).

1 odpowiedź

+5 głosów
odpowiedź 5 kwietnia 2016 przez niezalogowany

Tutaj się przyczepię kolejnego złego nawyku, czyli kilku instrukcji w jednej linii. Co prawda jest to kwestia czysto estetyczna, to kod powinien być czytelny.

Nie potrafię zrozumieć sensu takiego zapisu (Listing 5)

int populacja=1; int godzin=0;

Jeżeli już chcemy zadeklarować wiele zmiennych jednocześnie i przypisać im wartość to nie lepiej jest już to zrobić po przecinku (co też nie jest super klarownym zapisem, ale zdecydowanie bardziej akceptowalnym):

// powiedzmy, że ok
int populacja=1, godzin=0;

// chyba najczytelniejsza forma (łatwa do dość szybkiej analizy)
int populacja=1; 
int godzin=0;

Moim zdaniem zupełnie nieakceptowalnym jest coś takiego (Listing 4):

string imie; int liczba;

Bo w momencie gdy muszę szybko przeanalizować kod, to aby znaleźć interesujące mnie deklaracje muszę analizować całe linie, a nie jedynie ich początek.

Ktoś może powiedzieć że się czepiam i ma rację, za dużo już widziałem kodu na tym forum, który tracił czytelność przez stosowanie wielu instrukcji w jednej linii, źle takie coś się czyta.

komentarz 5 kwietnia 2016 przez KamilloPL Gaduła (3,470 p.)
dobrze prawisz- gdzieś przypadkiem w ręce wpadła mi książka apropo czytelności kodu i tam też ktoś tak prawił.
osobiście od początku tak się uczę mimo że robie od niedawna kursy od mirosława
komentarz 10 kwietnia 2016 przez Shiro Stary wyjadacz (10,300 p.)
Z jednej strony: pisząc taki mały projekt pisanie kilku zmiennych różnego typu w jednej linii to nie aż taki błąd zwłaszcza gdy cały kod programu mieści się na jednym ekranie.

Z drugiej strony: taka praktyka może być wyuczona przez "małe projekty" a to bardzo źle.

Należy wiedzieć że użycie autostylizacji kodu C::B, C::B sam się domyśli że taki dwie deklaracji różnych lub nawet takich samych typów (o ile każda deklaracja zakończona ';') powinny znajdować się w różnych liniach.

Pozdrawiam Shiro (Sebastian Hryszko)

Podobne pytania

+5 głosów
0 odpowiedzi 7,947 wizyt
pytanie zadane 18 sierpnia 2016 w Nasze poradniki przez Mirosław Zelent Nałogowiec (34,750 p.)
+3 głosów
0 odpowiedzi 4,354 wizyt

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...