Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Jakość kodu - początek nauki
Forum PHP.pl > Forum > Przedszkole
uzytkowniczka123
Hej wszystkim,

Napisz program, który wypisze liczby z tej tablicy w postaci
ponumerowanej listy - czyli tak:
1. 3
2. 5
1. 12
2. 24
itd.

Napisałam taki kod:
  1. $a = array(3, 5, 12, 24, 1, 16, 17, 12, 1, 21, 32, 1, 11);
  2. $licznik = 0;
  3. foreach($a as $tab)
  4. {
  5. $licznik++;
  6. if($licznik<=2)
  7. {
  8. echo $licznik. ' . '.$tab.'</br>';
  9. }
  10.  
  11. if($licznik==2)
  12. {
  13. $licznik = 0;
  14. }
  15. }


Sprawdziłam gotowe rozwiązanie. Oto kod:
  1. $licznik = 1;
  2. foreach($a as $tab)
  3. {
  4. echo $licznik . ". " . $tab . "<br />";
  5. $licznik = 3 - $licznik;
  6. }


W życiu bym nie wpadła na takie rozwiązanie. Czy mój kod jest zły? Czy w trakcie nauki na początku mam skupiać się nad tym, żeby kod był najkrótszy?
Pyton_000
Albo tak
  1. <?php
  2.  
  3. $a = [3, 5, 12, 24, 1, 16, 17, 12, 1, 21, 32, 1, 11];
  4.  
  5. foreach($a as $key => $val) {
  6. echo ($key%2)+1 . '.'.$val.PHP_EOL;
  7. }


Przy programowaniu najlepiej zaczynać od kodu który działa. Potem ulepszać do formy znośnej i dobrej. Oczywiście jesli od razu napiszesz ładny kod który dobrze się czyta i się go rozumie to jest też ok.
leonpro778
Twój kod działa ale tu raczej nie chodzi o "działający kod" tylko o sposób rozwiązania problemu smile.gif

TO jest coś co można spotkać na rozmowach rekrutacyjnych. Taki mały offtop (z rozmowy):

Cytat
Mamy do wykorzystania DWA procesory pracujące niezależnie (słowo procesor jest tutaj na wyrost bowiem nasz procesor umie tylko dodawać biggrin.gif ). Mamy również kolejkę / łańcuch składający się z N elementów.

Pytanie. Jak wyznaczyć "środek" kolejki / łańcucha korzystając TYLKO z tych dwóch procesorów.


Dodam tylko, że odpowiedź standardowa (czyli n/2) nie jest odpowiedzią smile.gif
Tomplus
Nie chodzi w tym zadaniu o znalezienie części wspólnej?


Co do nauki.
Kod powinien ewoluować z amatorskiego do profesjonalego.

Nawet po przeczytaniu najlepszych książek z CC nic nie dadzą jeżeli nie bedziemy uczyć się na błędach.
trzczy
Cytat(leonpro778 @ 7.11.2017, 12:15:02 ) *
TO jest coś co można spotkać na rozmowach rekrutacyjnych. Taki mały offtop (z rozmowy)


Nie wiem, co to znaczy, że procesory działają niezależnie. Ale pomysł mam taki:

Oba procki liczą od zera.
Procek A dodaje zawsze 2, a procek B dodaje zawsze 1.
Kiedy na procku A suma przekroczy n, to procek B wskaże środek kolejki.

O to chodziło?
Pyton_000
Też o tym pomyślałem ale przydał by się jakiś akumulator biggrin.gif
leonpro778
Cytat(trzczy @ 7.11.2017, 13:37:16 ) *
Nie wiem, co to znaczy, że procesory działają niezależnie. Ale pomysł mam taki:

Oba procki liczą od zera.
Procek A dodaje zawsze 2, a procek B dodaje zawsze 1.
Kiedy na procku A suma przekroczy n, to procek B wskaże środek kolejki.

O to chodziło?


Dokładnie. Ja zrobiłem to inaczej. Procek A uruchamiał się co drugą kolejkę biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.