Clasa a VI-a lecția 33 - 18 apr 2019

From Algopedia
Revision as of 10:37, 19 March 2021 by Cristian (talk | contribs) (→‎Lecție)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Tema - rezolvări

Comentarii generale

Mă bucur să văd că vă descurcați din ce în ce mai bine. Felicitări! Ce am remarcat:

  • Scorurile atît la concurs cît și la temă au fost bune.
  • În ordinea crescătoare a greutății problemele pare că au fost: sume1, popas, reconstituire2, roboțel.
  • Mulți dintre voi se îmbunătățesc, scriind cod mai clar, mai citibil, mai concis. Bravo!
  • Ați început să folosiți mai des vectori de frecvență și bordare, unii dintre voi încercați să nu duplicați cod. Aici mai aveți de lucru, dar sînteți pe calea cea bună.
  • Ați început să denumiți variabilele cu nume sugestive și să puneți comentarii pentru a face codul citibil. Bravo! Mi-aș dori ca toți să faceți acest lucru.

Problema roboțel

Comentarii generale

  • De departe cea mai grea problemă de la temă. Este o problemă care codată neglijent devine "tractor".
  • Aproximativ jumate dintre voi ați avut probleme în a trece toate testele.
  • Majoritatea ați găsit perechile blocante cu un algoritm care la prima vedere pare neoptim. La o analiză mai atentă el este optim. Există, însă, un algoritm care este optim și este mai ușor de analizat la clasa a șasea. Am remarcat soluția lui Teodorescu și a lui Hossu. Vom vorbi despre aceasta mai jos.
  • Unii din voi nu s-au descurcat la oprirea robotului într-o pereche blocantă. Este o parte mai grea.


Problema sume1

Comentarii generale

  • Problemă rezolvată de aproape toată lumea, bun!
  • Ați găsit soluții diverse, interesant.
  • Unii din voi ați folosit o matrice.
  • Unii ați scris mult cod, alții puțin.
  • Problema se putea rezolva în 16 linii reale (fără linii goale) și fără vectori sau matrice. Nu cred că am văzut nici o soluție atît de scurtă, dar am văzut cîteva soluții apropiate (Calotă, Ipate, Voicu, Ilie, poate și alții).
  • Teodorescu cîștigă lupta pentru cea mai lungă sursă, circa 75 linii. Pe locul doi sînt Iordache și Togan cu aproximativ 50 de linii.

Problema popas

Comentarii generale

  • Problema poate fi muncitorească, în funcție de cum o abordați.
  • Cam jumate din voi nu ați reușit să treceți toate testele.
  • Mulți dintre voi ați scris un cod încîlcit, cu stegulețe.
  • Cu toate acestea codul multora din voi arată atenție cazurile posibile și o anumită ordine în gîndire. Bravo!


Problema reconstituire2

Comentarii generale

  • Marea majoritate nu doar ați rezolvat problema, ci ați luat 100p, felicitări!
  • Cei ce nu au luat 100p sînt cei ce nu au încercat: Rughiniș, Iordache, Cojocariu, Nicola, care nu au trimis nici o sursă, plus alți doi sau trei nefericiți care au reușit cumva să ia zero puncte.
  • Foarte puțini dintre voi ați pus corect condiția de oprire, ca prima poziție unde vectorii de frecvență diferă să fie în afara vectorilor (i >= 10)
  • Ceilalți, majoritatea, vă refugiați prea ușor în brațele stegulețelor. Ele duc la o lene a minții și la o gîndire încîlcită, încercați să le evitați. Aici nu erau necesare. Cine: Ștefănescu, Ipate, Cadîr, Stancu, Burac, Togan, Petcu, Marcu, Grecu, Tatomir, Teodorescu, Chivu, Nicu, Badea, Dobre, Asgari (care a mai și scris o căutare ineficientă), Fares (care nu a folosit stegulețe, dar nici nu s-a oprit la rezultat, urît).
  • Nu am văzut la voi încercări de a elimina codul asemănător. Factorizați vă rog!
  • Problema are o rezolvare elegantă de circa 35 de linii.
  • Vă rog nu scrieți cod așa:
        for ( nr = i; nr > 0; nr /= 10 )
           fp[nr%10]++;

Bucla nu are număr cunoscut de pași, corect era să folosim while (Calotă).

  • Unii din voi introduceți cazuri particulare în algoritm, care nu există. Astfel obțineți un program lung și predispus bugurilor. Acest lucru se întîmplă deoarece vă aruncați în programare cu o idee neclară; apoi, pe măsură ce observați probleme în abordare, peticiți codul. Foarte rău! Pentru a scăpa de aceast mod de lucru trebuie să vă faceți cazuri de test pe hîrtie și să clarificați algoritmul înainte de a intra în Code::Blocks. Am remarcat acest lucru la Petcu, Togan și Tatomir, dar mai sînt și alții.


Rezolvări aici: [1]

Lecție

Am discutat despre problemele de la temă.

Acesta este filmul lecției de dimineață:

<html5media height="720" width="1280">https://www.algopedia.ro/video/2018-2019/2019-04-18-clasa-6-lectie-info-33-1-720p.mp4</html5media>

Deoarece bateria camerei de filmat s-a terminat înainte de finalul de lecție am filmat ultima parte a lecției de după amiază:

<html5media height="720" width="1280">https://www.algopedia.ro/video/2018-2019/2019-04-18-clasa-6-lectie-info-33-2-720p.mp4</html5media>

Problema descmult

Problema descmult este foarte grea pentru clasa a 6a. Ea are o parte de matematică care duce la rezultate neașteptate și o soluție foarte rapidă. În același timp problema admite mai multe soluții care se încadrează în timp, deoarece timpul este destul de mare.

Nu v-am dat această problemă în timpul unui concurs, ci la temă, deoarece aș vrea să încercați să găsiți o soluție cît mai bună.

Atenție: sursele oficiale nu sînt neapărat optime, nu încercați să le copiați ideea.

Temă

Tema 33 clasa a 6a

Atenție! La această temă se vor adăuga problemele de la concursul ce va urma duminică:

Concurs clasa a 6a

Acest concurs este ultimul înainte de olimpiada națională. De aceea el va avea același mod de desfășurare: nu veţi putea vedea rezultatele evaluării surselor trimise decît după încheierea concursului. Puteţi trimite oricîte surse, fără penalizare, însă doar ultima sursă trimisă la o problemă se ia în considerare pentru acea problemă.

Rezolvări aici: [2]