info licenta 2011

Upload: cristina-muntean

Post on 08-Jul-2015

144 views

Category:

Documents


1 download

TRANSCRIPT

2.Secventa urmatoare de comenzi: If A< B then, conditia indeplinita, se executa doar acest bloc C=B-A Else If A=B then nu se executa C=0 Else nu se executa nici pt A>B C=A-B Print C=,C End If End If pentru A=3 si B=10 afiseaza: a. C=3 b. C=0 c. C=7 d. nu afiseaza nimic e. C=10 Deoarece dupa primul bloc nu exista comanda Print, nu afiseaza nimic ANS: D 3. Se considera tabelul MAT: Nr. 1 2 3 Cod 21123 31221 41124 Mat Tabla Cot Con UM kg kg kg Cant 1221 1550 15500 Pret_u 150000 120000 130000

Care este rezultatul urmatoarei interogari: SQL> SELECT SUM (Pret_u) As Total FROM MAT; a. 150000 b. 130000 c. 120000 d. nu afiseaza nimic e. 400000 Calculeaza suma elementelor din coloana (campul) Pret_u 13000+120000+150000 = 400000 ANS: E 4. Sa se stabileasca care varianta este corecta pentru urmatoarea secventa de program scrisa pentru problema: Sa se calculeze profitul (profit) sau pierderea (-profit) din vanzari pentru un produs la care se cunosc costul de productie (cost) si pretul de vanzare (pret). a. Dim cost As Integer Dim pret As Integer Dim profit As Integer cost=InputBox(Costul; este: ) pret=InputBox(Pretul este: ) profit = pret cost Then If pret > cost MsgBox Profitul este: &profit Else MsgBox Pierderea este: &(-profit) Lipseste End If

b.

Dim cost As Integer Dim pret As Integer Dim profit As Integer cost=InputBox(Costul; este: ) pret=InputBox(Pretul este: ) profit = pret - cost If pret > cost Then MsgBox Profitul este: &profit Else MsgBox Pierderea este: &(-profit) End If Dim cost As Integer Dim pret As Integer Dim profit As Integer cost=InputBox(Costul; este: ) pret=InputBox(Pretul este: ) profit = pret - cost If pret > cost Then MsgBox Profitul este: &profit Or correct este Else MsgBox Pierderea este: &(-profit) End If Dim cost As Integer Dim pret As Integer Dim profit As Integer cost=InputBox(Costul; este: ) pret=InputBox(Pretul este: ) profit = pret - cost Daca pret > cost Atunci MsgBox Profitul este: &profit Altfel MsgBox Pierderea este: &(-profit) End Daca correct este If, Else, End If Dim cost As Integer Dim pret As Integer Dim profit As Integer cost=InputBox(Costul; este: ) pret=InputBox(Pretul este: ) profit = pret - cost If pret > cost lipseste Then MsgBox Profitul este: &profit Else MsgBox Pierderea este: &(-profit) End If

c.

d.

e.

ANS: B 6.Secventa urmatoare de comenzi: If A< B then C=B-A Else If A=B then C=0 Else

C=A-B Print C=,C End If End If pentru A=10 si B=3 afiseaza: deoarece primele 2 conditii nu sunt indeplinite (fiindca A>B) se va executa ultima instructiune: C = A-B, adica 7 a. b. c. d. e. C=-7 C=0 C=7 nu afiseaza nimic C=10

ANS: C 7. Se considera tabelul MAT: Nr. Cod Mat UM 1 21123 Tabla kg 2 31221 Cot kg 3 41124 Con kg Care este rezultatul urmatoarei interogari: SQL> SELECT AVG (Pret_u) As media FROM MAT; a. 170000 b. 120000 c. 140000 d. nu afiseaza nimic e. 420000 SELECT AVG calculeaza media aritmetica din coloana Pret_u a tabelei MAT 42000:3 = 14000 ANS: C 8. Sa se stabileasca care varianta este corecta pentru urmatoarea secventa de program scrisa pentru problema: Sa se calculeze valoarea totala (val_tot) a 10 produse perisabile aflate intr-un depozit, dupa o perioada de depozitare, cunoscand categoriile de produse (definite prin cod_produs) si valoarea acestor produse (val) la inceputul perioadei de depozitare. Valoarea finala (val_f) a fiecarui produs se calculeaza cu formula val_f=val*(1-coef_peris), unde coeficientii de perisabilitate (coef_peris) se evalueaza astfel: daca cod_produs=3000 coef_peris=50/100 End Select val_f(i) = valo(i)*(1-coef_peris) val_tot=val_tot+val_f(i) Lipseste Next i, pentru a se trece la urmatoarea val a lui i val_tot = 0 For i=1 To 10 cod_produs(i)=InputBox (Cod produs: ) valo(i)=InputBox(Valoare: ) Select Case cod_produs(i) Case Is < 1000 coef_peris=0 Case Is < 2000 coef_peris=5/100 Case Is < 3000 conditia din enunt pt coef_peris este >= 3000 coef_peris=10/100 Case Is =3000 coef_peris=50/100 End Select val_f(i) = valo(i)*(1-coef_peris) val_tot=val_tot+val_f(i)

c.

d.

Next i e. val_tot = 0 For i=1 To N N este nedeterminat, deci va rula la nesfarsit! cod_produs(i)=InputBox (Cod produs: ) valo(i)=InputBox(Valoare: ) Select Case cod_produs(i) Case Is < 1000 coef_peris=0 Case Is < 2000 coef_peris=5/100 Case Is < 3000 coef_peris=10/100 Case Is >=3000 coef_peris=50/100 End Select val_f(i) = valo(i)*(1-coef_peris) val_tot=val_tot+val_f(i) Next i

ANS: D 10.Secventa urmatoare de comenzi: C = A B C= -5 Select Case C (selectia se face dupa valorile lui C) Case Is < 0 C = C + A, C=0 Case Is > 0 nu poate continua C=C-B Case 0 C = 100 End Select Print "C=", C pentru A=5 si B=10 afiseaza: a. b. c. d. e. C=5 C=0 C=100 nu afiseaza nimic C=10

ANS: B 11. Se considera tabelul MAT: Nr. Cod Mat 1 21123 Tabla 2 31221 Cot 3 41124 Con UM kg kg kg Cant 1221 1550 15500 Pret_u 170000 120000 130000

Care este rezultatul urmatoarei interogari: SQL> SELECT MIN (Pret_u) As pu_min FROM MAT; a. 170000

b. 120000 c. 130000 d. nu afiseaza nimic e. 420000 Din coloana Pret_u a tabelei MAT selecteaza materialul cu pretul unitar cel mai mic ANS: B 12. Sa se stabileasca care varianta este corecta pentru urmatoarea secventa de program scrisa pentru problema. Sa se calculeze cheltuielile totale de transport (ch_totale) pentru cinci curse, cunoscand cheltuielile de transport specifice (ch_tp) categoriei de distanta (dist_tp). a. ch_totale = 0 For i=1 To N, n este nedeteminat dist_tp=InputBox(Distanta de transport: ) Select Case dist_tp(i) Case Is C=5>0 For i = 1 To 2 If C < 0 Then C=B-A Else If C = 0 Then C = 100 Else C=A-B End If End If Next i Print "C=", C pentru A=10 si B=5 afiseaza: a. contine erori de sintaxa b. C=5 c. C=-5 d. nu afiseaza nimic e. C=100 Pt i=1 se executa secventa a 3-a rezulta C= 5>0 Pt i=2 se executa tot ultima secventa, deci C=5 ANS: B 25.Sa se stabileasca varianta corecta pentru secventa de program care se refera la urmatoarea problema: sa se intocmeasca balanta de verificare cunoscand rulaj debitor rdebit, rulaj creditor rcredit. Ca variabile de lucru se definesc tsd total sold debitor, tsc total sold creditor. a. tsd=0 tsc=0 For i=1 To 3 rdebit=InputBox(Rulaj debit) rcredit=InputBox(Rulaj credit) tsd=tsd+rdebit tsc=tsc+rcredit Print rdebit,rcredit Next i Print Total suma debitoare: ;tsd Print Total suma creditoare: ;tsc b. tsd=0 tsc=0 For i=1 To 3 rdebit=InputBox(Rulaj debit) rcredit=InputBox(Rulaj credit) tsd=tsd+rdebit tsc=tsc+rcredit Print rdebit,rcredit Dupa instructiunea Print trebuie sa urmeze Next i Print Total suma debitoare: ;tsd Print Total suma creditoare: ;tsc Nu se stabilesc conditiile ca totalul soldurilor creditor si debitor sa fie 0 For i=1 To 3 rdebit=InputBox(Rulaj debit) rcredit=InputBox(Rulaj credit)

c.

tsd=tsd+ rdebit tsc=tsc+ rcredit Print rdebit,rcredit Next i Print Total suma debitoare: ;tsd Print Total suma creditoare: ;tsc d. tsd=0 tsc=0 For i=1 To 3 rdebit=InputBox(Rulaj debit) rcredit=InputBox(Rulaj credit) tsd=tsd+ rcredit Aici este prb ca la tsd trebuie adaugat rdebit si la tsc +rcredit tsc=tsc+ rdebit Print rdebit,rcredit Next i Print Total suma debitoare: ;tsd Print Total suma creditoare: ;tsc tsd=0 tsc=0 For i=0 To 3 Aici sunt mai multe rulaje , de la 0 La 3 sunt 4 cicluri (poate sa fie si asta pentru cel care stie contabilitate) SECVENTA ESTE TOTUSI CORECTA! asa ca daca raspundeti E puteti face contestatie fara probleme! rdebit=InputBox(Rulaj debit) rcredit=InputBox(Rulaj credit) tsd=tsd+rdebit tsc=tsc+rcredit Next i Print Total suma debitoare: ;tsd Print Total suma creditoare: ;tsc

e.

ANS: A 26. Secventa urmatoare de comenzi: C = A B C=5 For i = 1 To 2 If C < 0 Then C=B-A Else If C = 0 Then C = 100 Else C=A-B End If End If Print "C=", C Next i pentru A=10 si B=5 afiseaza: a. b. c. d. C= - 5 si C=5 C=5 si C=5 C=5 si C= -5 C= - 5 si C= - 5

e.

C=100

ANS: B Ruleaza primul i=1 si afiseaza C=5 (pt conditia C>0 dela al 2-lea else Se face al doilea i=2 Si C=5, doarece este indeplinita acceasi conditie ca si la i=1 27. Se considera tabelul MATERIALE avand urmatoarea structura: MATERIALE (COD, DEN, UM, CANT, PRET_U). Comanda: SQL> SELECT * FROM MATERIALE WHERE Pret_u BETWEEN 140 AND 170; a. b. c. d. e. Contine erori de sintaxa Selecteaza materialele pentru care pretul este mai mare de 140 Selecteaza materialele pentru care pretul este mai mare sau egal de 140 si mai mic sau egal de 170 Selecteaza materialele pentru care pretul este mai mic de 140 si mai mare de 170 Selecteaza materialele pentru care pretul este mai mic de 170

ANS: C 28. Sa se stabileasca care este secventa de program corecta pentru urmatoarea problema: o societate comerciala desface 25 de produse pentru care se cunosc urmatoarele date de intrare: codprod codul produsului; denprod denumirea produsului; cant cantitate; pret pretul. Sa se calculeze valoarea pentru fiecare produs in parte si sa se afiseze pe ecran doar acele produse pentru care valoarea (VAL) este mai mare ca 600 RON. a. For i=1 To 25 codprod=InputBox(Introduceti cod produs) denprod=InputBox(Introduceti denumire produs) cant=InputBox(Introduceti cantitatea) pret=InputBox(Introduceti pretul) VAL=cant*pret If VAL >600 Then Print Tab(2); denprod;Tab(33); VAL End If Next i For i=1 To M nici nu mai spun de ce! codprod=InputBox(Introduceti cod produs) denprod=InputBox(Introduceti denumire produs) cant=InputBox(Introduceti cantitatea) pret=InputBox(Introduceti pretul) VAL=cant*pret If VAL >600 Then Print Tab(2); denprod;Tab(33); VAL End If Next i For i=1 To 25 codprod=InputBox(Introduceti cod produs) denprod=InputBox(Introduceti denumire produs)

b.

c.

d.

e.

cant=InputBox(Introduceti cantitatea) pret=InputBox(Introduceti pretul) VAL=cant*pret If VAL 600 Then Print Tab(2); denprod;Tab(33); VAL End If Next i For i=1 To 25 codprod=InputBox(Introduceti cod produs) denprod=InputBox(Introduceti denumire produs) cant=InputBox(Introduceti cantitatea) pret=InputBox(Introduceti pretul) VAL=cant*pret If VAL >600 Then Print Tab(2); denprod;Tab(33); VAL End If Next I lipseste!

ANS: A 29. Secventa urmatoare de comenzi: C = A B C=-5 For i = 1 To 2 Select Case C Case Is < 0 C=C+A Case Is > 0 C=C-B Case 0 C = 100 End Select Print "C=", C Next i pentru A=5 si B=10 afiseaza: a. C= - 5 si C=100 b. C=5 si C=100 c. C=0 si C= 100 d. C= - 5 si C= 5 e. C=100 i=1, Case Is SELECT AVG(cant) FROM MATERIALE WHERE Pret_u >100; a. b. c. d. e. Selecteaza materialele pentru care pretul este mai mare de 100 Selecteaza cantitatea maxima pentru acele materiale pentru care pretul este mai mare decat 100 Calculeaza media cantitatii materialelor pentru care pretul este mai mare decat 100 Calculeaza media cantitatii materialelor pentru care pretul este mai mic decat 100 Nu selecteaza nimic.

ANS: C 31. Se considera tabelul MAT: Nr. 1 2 3 Cod 21123 31221 41124 Mat Tabla Cot Con UM kg kg kg Cant 1221 1550 15500 Pret_u 150000 120000 130000

Care este rezultatul urmatoarei interogari: SQL> SELECT SUM (UM) As Total FROM MAT; a. 150000 b. 130000 c. 120000 d. nu afiseaza nimic e. 400000 Nu poate calcula suma unor unitati de masura! In limbaj informatic, campul UM contine date de tip text, deci nu se poate calcula media unor siruri de caractere! (Campul e o coloana a unui tabel sau interogare ce contine date de ac. tip) ANS: D 32. Se considera tabelul MAT: Nr. Cod Mat UM 1 21123 Tabla kg 2 31221 Cot kg 3 41124 Con kg Care este rezultatul urmatoarei interogari: SQL> SELECT AVG (UM) As media FROM MAT; a. 170000 b. 120000 c. 140000 d. nu afiseaza nimic e. 420000 Nu poate calcula media unitatilor de masura! Ca mai sus ANS: D 33. Se considera tabelul MAT: Nr. Cod 1 21123 Mat Tabla UM kg Cant 1221 Pret_u 170000 Cant 1221 1550 15500 Pret_u 170000 120000 130000

2 3

31221 41124

Cot Con

kg kg

1550 15500

120000 130000

Care este rezultatul urmatoarei interogari: SQL> SELECT MIN (Cant) As pu_min FROM MAT; a. 1221 b. 120000 c. 130000 d. nu afiseaza nimic e. 420000 Selecteaza valoarea minima din campul Cant, 1221 ANS: A 34. Se considera tabelul MAT: Nr. Cod 1 21123 2 31221 3 41124 Mat Tabla Cot Con UM kg kg kg Cant 1221 1550 15500 Pret_u 170000 120000 130000

Care este rezultatul urmatoarei interogari: SQL> SELECT MAX (Cant) As cmax FROM MAT;

a. 15500 b. 120000 c. 130000 d. nu afiseaza nimic e. 420000 Selecteaza inregistrarea cu val maxima din coloana Cant, 15500 ANS: A 35. Se considera tabelul MATERIALE avand urmatoarea structura: MATERIALE (COD, DEN, UM, CANT, PRET_U). Comanda: SQL> SELECT * FROM MATERIALE WHERE Pret_u BETWEEN 130 AND 200 a. b. c. d. e. Contine erori de sintaxa - wild-card-ul * inlocuieste un sir de caractere, nu o comanda, deci nu stie prg ce sa mai faca! Plus ca nici nu ar afisa nimic, val 130 si 200 sunt in afara domeniului de def Selecteaza materialele pentru care pretul este mai mare de 130 Selecteaza materialele pentru care pretul este mai mare sau egal de 130 si mai mic sau egal de 200 Selecteaza materialele pentru care pretul este mai mic de 130 si mai mare de 200 Selecteaza materialele pentru care pretul este mai mic de 200

ANS: A 36. Sa se stabileasca varianta corecta pentru secventa de program care se refera la urmatoarea problema: sa se calculeze penalitatile pentru plata furnizorilor la o societate comerciala si suma de plata pe factura majorata, stiind valoarea initiala a facturilor si numarul de zile de intarziere pentru fiecare factura. Penalitatile se calculeaza astfel: pana la 15 zile intirziere 5%, intre 15 si 30 de zile -8%, iar peste 30 de zile 10%. Numarul de facturi luat in calcul este 3. a. For i=1 TO 3

b.

nrfact(i)= InputBox( Introduceti numarul facturii) Valf(i)= InputBox( Valoarea facturii) nrzile(i)= InputBox( Nr. Zile intarziere) Next i SumaPTotal=0 For i=1 TO 3 Select Case nrzile(i) Case Is= 30 SumaP(i) = Valf(i) + Valf(i) *10/100 End Select Print nrzile(i), Valf(i), Sumap(i) SumaPTotal = SumaPTotal + SumaP(i) Next i For i=1 TO n (se considera doar 3 facturi!) nrfact(i)= InputBox( Introduceti numarul facturii) Valf(i)= InputBox( Valoarea facturii) nrzile(i)= InputBox( Nr. Zile intarziere) Next i SumaPTotal=0 For i=1 TO 3 Select Case nrzile(i) Case Is= 30 SumaP(i) = Valf(i) + Valf(i) *10/100 End Select Print nrzile(i), Valf(i), Sumap(i) SumaPTotal = SumaPTotal + SumaP(i) Next i For i=1 TO 3 nrfact(i)= InputBox( Introduceti numarul facturii) Valf(i)= InputBox( Valoarea facturii) nrzile(i)= InputBox( Nr. Zile intarziere) Next I lipsa! SumaPTotal=0 For i=1 TO 3 Select Case nrzile(i) Case Is= 30 SumaP(i) = Valf(i) + Valf(i) *10/100 End Select Print nrzile(i), Valf(i), Sumap(i) SumaPTotal = SumaPTotal + SumaP(i) Next i For i=1 TO 3 nrfact(i)= InputBox( Introduceti numarul facturii)

c.

d.

e.

Valf(i)= InputBox( Valoarea facturii) nrzile(i)= InputBox( Nr. Zile intarziere) Next i SumaPTotal=0 For i=1 TO 3 Select Case nrzile(i) Case Is= 30 SumaP(i) = Valf(i) + Valf(i) *10/100 End Select Print nrzile(i), Valf(i), Sumap(i) SumaPTotal = SumaPTotal + SumaP(i) Next i lisa! For i=1 TO 3 nrfact(i)= InputBox( Introduceti numarul facturii) Valf(i)= InputBox( Valoarea facturii) nrzile(i)= InputBox( Nr. Zile intarziere) Next i SumaPTotal=0 For i=1 TO n! Select Case nrzile(i) Case Is= 30 SumaP(i) = Valf(i) + Valf(i) *10/100 End Select Print nrzile(i), Valf(i), Sumap(i) SumaPTotal = SumaPTotal + SumaP(i) Next i

ANS: A 37. Sa se stabileasca varianta corecta pentru secventa de program care se refera la urmatoarea problema: sa se calculeze suma de plata a energiei electrice pentru o societate comerciala, cunoscand suma de plata la scadenta SumaInit, nr. De zile de intarziere a platii Nrzile si procentul de penalizare ProcPenaliz. Daca societatea comerciala se afla la prima abatere PrimaAbatere, penalizarile se reduce la jumatate. a. Dim SumaInit As Double, NrZile As Integer Dim ProcPenaliz As Single, SumaFin As Double Dim PrimaAbatere As Boolean SumaInit= Val(txtSuma) NrZile= Val(txtIntarziere) PrimaAbatere= chkAbatere If PrimaAbatere Then ProcPenaliz= Val(txtProcent)/2 Else lipsa! ProcPenaliz= Val(txtProcent) End If SumaFin= SumaInit + SumaInit *(ProcPenaliz/100)*NrZile txtTotal = Format(SumaFin, Standard)

b.

Dim SumaInit As Double, NrZile As Integer Dim ProcPenaliz As Single, SumaFin As Double Dim PrimaAbatere As Boolean SumaInit= Val(txtSuma) NrZile= Val(txtIntarziere) PrimaAbatere= chkAbatere If PrimaAbatere Then ProcPenaliz= Val(txtProcent)/2 Else ProcPenaliz= Val(txtProcent) End If SumaFin= SumaInit + SumaInit *(ProcPenaliz/100)*NrZile txtTotal = Format(SumaFin, Standard) Dim SumaInit As Double, NrZile As Integer Dim ProcPenaliz As Single, SumaFin As Double Dim PrimaAbatere As Boolean SumaInit= Val(txtSuma) nu este declarata NrZile= Val(txtIntarziere) PrimaAbatere= chkAbatere If PrimaAbatere Then ProcPenaliz= Val(txtProcent)/2 Else ProcPenaliz= Val(txtProcent) End If SumaFin= SumaInit + SumaInit *(ProcPenaliz/100)*NrZile txtTotal = Format(SumaFin, Standard) Dim SumaInit As Double, NrZile As Integer Dim ProcPenaliz As Single, SumaFin As Double Dim PrimaAbatere As Boolean SumaInit= Val(txtSuma) NrZile= Val(txtIntarziere) PrimaAbatere= chkAbatere If PrimaAbatere Then ProcPenaliz= Val(txtProcent)/2 Else ProcPenaliz= Val(txtProcent) End If lipsa! SumaFin= SumaInit + SumaInit *(ProcPenaliz/100)*NrZile txtTotal = Format(SumaFin, Standard) Dim SumaInit As Double, NrZile As Integer Dim ProcPenaliz As Single, SumaFin As Double Dim PrimaAbatere As Boolean SumaInit= Val(txtSuma) NrZile= Val(txtIntarziere) PrimaAbatere= chkAbatere lipseste! If PrimaAbatere Then ProcPenaliz= Val(txtProcent)/2 Else ProcPenaliz= Val(txtProcent) End If SumaFin= SumaInit + SumaInit *(ProcPenaliz/100)*NrZile txtTotal = Format(SumaFin, Standard)

c.

d.

e.

ANS: B