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

[CR] C++ (#12): Polski SPOJ. Zadanie próbne. Prędkość średnia

42 Warsaw Coding Academy
+2 głosów
2,455 wizyt
pytanie zadane 12 kwietnia 2016 w Nasze poradniki przez Mirosław Zelent Nałogowiec (34,780 p.)

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

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

Zadanie próbne:

#include <iostream>

using namespace std;

int a,b;

int main()
{

    cin>>a>>b;
    cout<<a+b<<endl;

    return 0;
}

Prędkość średnia:

#include <iostream>

using namespace std;

int v1,v2,ile;

int main()
{
    cin>>ile;

    for(int i=1; i<=ile; i++)
    {
       cin>>v1>>v2;
       cout<<2*v1*v2/(v1+v2)<<endl;
    }

    return 0;
}

Paczka z odcinka: POBIERZ​

1 odpowiedź

+3 głosów
odpowiedź 12 kwietnia 2016 przez adrian17 Mentor (353,220 p.)

for(int i=1; i<=ile; i++)

Praktycznie jedynym słusznym sposobem iterowania jest

for (int i = 0; i < ile; ++i)
komentarz 14 kwietnia 2016 przez Sebastian Fojcik Nałogowiec (43,040 p.)
edycja 14 kwietnia 2016 przez Sebastian Fojcik

Praktycznie jedynym słusznym [...]

Nie przesadzałbym z takim stwierdzeniem. Jest to niewątpliwie słuszne rozwiązanie, gdy iterujemy jakąś tablicę, ale tutaj wszystko jest w jak najlepszym porządku. Drobna odskocznia od standardowych zapisów na pewno nikomu nie zaszkodzi. Trzeba uruchomić kilka dodatkowych szarych komórek :-D

Ty możesz uważać swój zapis za "jedyny słuszny". (Swoją drogą preinkrementacja iteratora pętli (++i) jest bardzo rzadko spotykana w pętlach typu for. Dziwię się zatem, że zasugerowałeś właśnie taki zapis.) Ja natomiast mógłbym napisać, że według mnie najczytelniejszym zapisem jest coś takiego:

while( ile-- )

W sposobie zapisu pętli nie ma jedynych słusznych rozwiązań.

W jednym z pierwszych odcinków kursu Pan Mirosław zastosował zapis:

cout << endl << "Jakis tekst";
cout << endl << "Jakis tekst";

I tutaj na forum pewna osoba stworzyła posta z zapytaniem: Jak to możliwe, że te 2 napisy są w osobnych liniach?
Właśnie o to chodzi. Małe odchylenie od tego co uważamy za standardowe może sporo nauczyć.
W powyższym przypadku kursant spodziewał się endl na końcach linijek i nie zauważył, że były na początkach :-)

 

komentarz 14 kwietnia 2016 przez adrian17 Mentor (353,220 p.)

Drobna odskocznia od standardowych zapisów na pewno nikomu nie zaszkodzi.

Jest taki coś takiego jak jednolity styl - coś, do czego powinno się zachęcać.

Swoją drogą preinkrementacja iteratora pętli (++i) jest bardzo rzadko spotykana w pętlach typu for.

Jest często spotykana i powszechnie zalecana. Szablony wbudowane np. ST3 oraz Qt Creatora mają właśnie taką składnię: http://puu.sh/oi67w/ddfc485604.mp4

Podobne pytania

+1 głos
1 odpowiedź 845 wizyt
0 głosów
0 odpowiedzi 353 wizyt
pytanie zadane 1 listopada 2021 w C i C++ przez Flaxi Nowicjusz (120 p.)
0 głosów
1 odpowiedź 1,109 wizyt
pytanie zadane 14 lipca 2019 w C i C++ przez Padomen Początkujący (260 p.)

93,389 zapytań

142,385 odpowiedzi

322,547 komentarzy

62,749 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...