PROGRAMARE PROCEDURALA Lucrez din amintiri si din publicatiile mele pe alte forumuri:
*greseli in grila:
6D cu conditia sa fie x= si nu a= ca restul sunt gresite
93B cu conditia sa fie definit p<9> (nu sunt sigur rog pe cineva sa verifice cu un compilator).
am gasit ultimele posturi prin temporare pe la mine:
93: Hmm prod cartezian e ceva gen:
(0 0 0) (0 0 1) (0 0 2) (0 1 0) (0 1 1) (0 1 2) (0 2 0) (0 2 1) (0 2 2)... apoi prima devine 1 si apoi 2 deci 9x3=27 apeluri tipar()
Ori nu vad bine ori am fost prea intuitiv dar mi se pare corecta o solutie gen a=0 b=2 c=2 sau a=1 b=3 c=2. Altfel as zice solutia 93B: cazul in care avem tot tabelul definit p<0>-p<9> dar afiseaza doar primele 3. Eu zic ca e putin gresit enuntul in grila.
Trebuie -*test*-('")at un tablou de vreo 9 elemente (ca sa nu crape compu la atribuiri cu k>2)
94:
metoda cautarii binare inseamna exact jocul "gandeste-te la un numar intre 1 si 100 eu zic un nr tu zici mai mic sau mai mare" si ti-l gasesc din maxim 7 incercari:
sirul este 1 3 5 7 10 16 21
eu intreb mijlocul: 7 tu zici mai mare
eu iau mijlocul sirului 7..21, aleg 16, zici mai mic
aleg mijlocul subsirului 7..16: adica 10 (mijloc inteleg pozitia din mijloc)
Deci 7 16 10 (94A)
(Intre 1 si 100 intrebarile ar fi: 50<; 25<; 12<6>; 10 BINGO!)
18B: a=10 b=11; a!=b atunci b++; a*=b deci a=10 b=12 si a *=b
a=120 si b=12 ("altfel" nu se executa, a nu devine 11)
71C: p=n*(n-1)*(n-2)*...*2*1=n!
93 astept parerea unui compilator, nu imi pot da seama asa. Am pus ce parea mai aproape de realitate (precizat mai sus).
Grila finala
1B 2C 3B 4D 5B 6D* 7D 8D 9C 10B 11B 12D 13C 14D 15D 16C 17C 18B 19B 20C
21C 22B 23C 24C 25B 26C 27D 28B 29B 30C 31D 32D 33D 34B 35C 36A 37B 38A 39B 40B
41C 42B 43C 44C 45C 46D 47C 48C 49C 50C 51D 52D 53B 54C 55A 56C 57B 58C 59A 60A
61D 62C 63C 64C 65D 66A 67B 68D 69C 70B 71C 72C 73B 74C 75B 76D 77A 78B 79C 80B
81C 82C 83C 84D 85A 86D 87B 88D 89A 90B 91A 92A 93B* 94B
Steluta * zice greseli in grila, sunt insa modificate dupa cele mai probabile situatii. Reamintesc: 6D daca x= si nu a=.
utza- 01-27-2008
eu zic ca la 41 este D
licuriciHR- 01-27-2008
de ce spui ca la 41 e D?la 65 nu e raspunsul corect A?
nu poate cineva sa verifice?
andrei- 01-27-2008
trebuie sa verific 41 nu mai stiu dar am gasit denumirea exact asa in cursuri sau sinteze. Nu cred sa fi facut o eroare de tipar dar bine ca mi-ai adus aminte ca nu le am cu teoria si am si uitat. Apropo: google search "parametri formali" si gasesti.
65: 7+6+5+4+3+2+1=28 (is pe fuga si e o verificare rapida. Prima data j e de la 1 la 7 =7 ori a doua oara de la 2 la 7 si tot asa pana e de la 7 la 7 = 1 data).
Apropo decizia se executa indiferent daca e falsa sau adevarata. Poate de aia s-au gandit multi la 16
monlovedan- 01-27-2008
41 sigur e d parametri formali
chmro- 01-27-2008
41:
Declararea unei functii:
Function <nume><(<lista_parametrii_formali>)>:<tip_rezultat>
<<declarare_variabile>> { tipul variabilelor locale}
<<declarare_proceduri>> {definirea de proceduri/functii}
begin
<procesul_de_calcul> {corpul/instructiunile functiei}
end
Iar la 93, din "if(k==c) tipar() se deduce ca c trebuie sa fie 2; altfel se depaseste marimea tabloului p, care are 3 elemente. Singura varianta cu c=2 este d.
andrei- 01-28-2008
41 e o capcana:
Declararea se face utilizand parametri formali
int function(parametri formali){};
Apelarea se face prin parametri actuali:
a=function(parametri actuali).
Enuntul spune: Parametrii utilizati la apelul unei functii, se numesc: actuali adica 41C e corect
La 93 cat mi-am batut capul pare o greseala undeva. Si eu as fi ales varianta cu c=2 dar scartaie si aia. Am presupus ca P are mai mult de 3 elemente doar ca pe alea 3 le utilizeaza (ca sa nu apara depasiri)
A: Afiseaza (0,0,0)...(10,10,10)
B: Afiseaza (1,1,1)...(3,3,3) dar produce o gramada de afisari pentru acelasi element
C: Afiseaza (1,1,1)...(9,9,9) de 9 ori fiecare element.
D: Afiseaza (1,1,1)...(9,9,9)
STATI CA MI-A PICAT FISA, (ce dobitoc mai sunt): D E CORECT nu am observat ca M e "multimea cifrelor nenule" adica {1...9} si ma gandeam la {0..2} sau {1..3}
1B 2C 3B 4D 5B 6D* 7D 8D 9C 10B 11B 12D 13C 14D 15D 16C 17C 18B 19B 20C
21C 22B 23C 24C 25B 26C 27D 28B 29B 30C 31D 32D 33D 34B 35C 36A 37B 38A 39B 40B
41C 42B 43C 44C 45C 46D 47C 48C 49C 50C 51D 52D 53B 54C 55A 56C 57B 58C 59A 60A
61D 62C 63C 64C 65D 66A 67B 68D 69C 70B 71C 72C 73B 74C 75B 76D 77A 78B 79C 80B
81C 82C 83C 84D 85A 86D 87B 88D 89A 90B 91A 92A 93D 94B
Steluta * zice greseli in grila, sunt insa modificate dupa cele mai probabile situatii. Reamintesc: 6D daca x= si nu a=.
rseby- 01-28-2008
imi explicati si mie va rog de ce 40 B ?
licuriciHR- 01-28-2008
..totusi sunteti siguri ca la 18 corect e raspunsul b?
andrei- 01-28-2008
18:
a=10, b=a+1=11 (se executa atribuirile, desi plasate intr-un if). a!=b (a diferit de b, ok) atunci b++ (NU se executa a++) ->b=b+1=12. a*=b tot una cu a=a*b=10*12=120 Deci a=120 b=12. B corect.
b++ inseamna b devine b+1 (in arhitectura sistemelor veti gasi INC 1$ sau ceva asemanator)
a*=b inseamna a devine a * b.
40B:
C-ul trateaza charurile ca si intregi, e un limbaj foarte flexibil. Mai ales in afisari de genul printf("%d") %d e punctul important aici ca si in alte probleme, inseamna INTREG si asta forteaza afisarea la nivel de byte iar nu ca litera propriu zisa, deci intreg. 'A'=65 in cazul asta (verificati cu character map)
Continuati va rog, o sa am primul examen la programare si ma ajuta sa ma verific in raspunsuri.
singlexyz- 01-30-2008
La 78 este sigur varianta "b." ???
Eu as spune ca ar fi mai degraba "a." dar ... intreb.
chmro- 01-30-2008
La 78 este sigur varianta "b." ???
Eu as spune ca ar fi mai degraba "a." dar ... intreb.
Programul tipareste primele doua caractere din fisier, cauta caracterul "rand nou" si tipareste primul caracter de dupa el.
mihai770- 01-30-2008
am si eu un fix :)
de ce la 56 este C?? nu ar trebui sa fie A ??
multumesc anticipat.
chmro- 01-30-2008
am si eu un fix :)
de ce la 56 este C?? nu ar trebui sa fie A ??
multumesc anticipat.
Aici chiar nu stiu sa-ti explic, dar am facut scurt un programel iar rezultatul a fost"ueae". Deci trebuie sa-mi crezi computerul pe cuvant.
andrei- 01-30-2008
am ramas tablou: face parte din exercitiile pe care le-am rezolvat dar acu ma uit ca matza si nu inteleg cum am reusit.
O scurta analiza cu explicatie: se pare ca afiseaza vocale. Deci eaeu sau ueae. Afisarea se face la intoarcerea din recursivitate deci se vor afisa invers. Deci ueae. Dar promit ca ma holbez pe el maine sa aflu DE CE mai sigur.
Hmm uitandu-ma mai bine dap asa e. i se duce pan la 8 si apoi se intoarce. s la intoarcere e "examenul" de la coada la cap, cand e o vocala se afiseaza.
Mersi, merita retinut la multe probleme de recursivitate "oferite" drept calvar: dupa ce conditia e satisfacuta functia intoarce totul de la coada la cap. Cand functia recursiva apare inaintea conditiei de iesire. Multe probleme de info sunt totusi de intuitie ca altfel nu ai timp sa le rezolvi cap coada.
Si scuze ca remodificandu-mi posturile imi dau seama ca am inceput sa vorbesc in "deci"... echivalati cu "rezulta ca" acolo unde apare. :lol:
Forumer™ is Voted #1 Free Forum Hosting provider
Build your own community today with the largest message board hosting company.