Showing posts with label variabile globale. Show all posts
Showing posts with label variabile globale. Show all posts

Tuesday, January 26, 2016

Limbajul PHP. Tablouri multidimensionale. O aplicatie practica de iterare si determinare a unor valori specificate printre elementele unui tablou

Enuntul urmator reprezinta o problema de practica individuala asociata modulului de PHP procedural (PHP I) predat in cadrul InfoAcademy. 

Cum am specificat si cu ocazia altor postari, publicarea solutiei nu intentioneaza, nici pe departe, compromiterea procesului didactic la academia respectiva. 

Rezolvarea propusa aici nu este unica (e greu de vorbit de rezolvari "unice" in informatica) si, cu siguranta, nici cea mai optima sau mai "curata" la nivel de cod. Ea este utila in primul rand autorului, ca reminder in perspectiva in care va avea nevoie :-)

Enuntul:

 "Fie un magazin cu diverse modele de telefoane mobile, manufacturate de feluriti producatori. Incepeti prin a defini manual un tablou cu producatori si modelele atasate:

$modele = array(
            "producator1" => array ("model1", "model2", ...),
            "producator2" => "array("model3", "model4", ...),
         ..............................................));

Se cere:

1.Pornind de la tabloul de mai sus, generati (algoritmic) un alt tablou, numit $magazin, de forma:

$magazin = array("model1"=>array(
                                                 "producator"=> "producator1",
                                                  "caracteristici"=>array("lungime"=>...
                                                                                          "latime"=>...,
                                                                                          "greutate"=>...)),
                              "model2"=>array(
                                                "producator"=>...etc


in care dimensiunile si greutatea sunt generate aleator (in limite rezonabile, desigur).

2. Scrieti un algoritm care determina si afiseaza toate caracteristicile celui mai usor telefon (producatorul, modelul, lungime, latime, greutate);
3. Scrieti un algoritm care determina si afiseaza latimea medie a telefoanelor pentru fiecare producator in parte."

Saturday, January 23, 2016

Limbajul C++. Numere prietene.

Un enunt clasic: 

"Dat fiind un numar intreg fixat ca limita, sa se gaseasca toate numerele prietene pana la aceasta limita, inclusiv."

Numerele naturale x si y sunt prietene daca toti divizorii lui x, exclusiv x, inclusiv 1, insumati, egaleaza y si reciproc.

Prima pereche de numere prietene este (220, 284) pentru ca suma divizorilor lui 220, 1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110, este egala cu 284.

Divizorii lui 284 sunt 1, 2, 4, 71 si 142 iar suma lor este 220.

In codul urmator, functia isFriend(...) testeaza secvential toate numerele intre 1 si numarul-limita, inclusiv, calculand suma divizorilor, sum_div. Numarului obtinut astfel i se calculeaza, de asemenea, divizorii iar daca suma lor este egala cu numarul natural luat ca argument la iteratia curenta, i, atunci cele doua numere, i si sum_div, sunt prietene.

Variabila globala int last memoreaza ultimul numar prieten determinat ca suma a divizorilor la o iteratie oarecare i.

Acesta este "sarit" cand variabila-contor ajunge la el, pentru evitarea duplicarii perechilor.

isFriend(...) intoarce 1 daca este gasita o pereche de numere prietene si 0 in caz contrar, ceea ce permite determinarea numarului de perechi ca suma a rezultatelor intoarse pe parcursul iteratiilor.


Codul si prinscreenul: