danalica mirceapasoi fundamenteleprogramarii cls09

209

Click here to load reader

Upload: vlad-roman

Post on 02-Jan-2016

271 views

Category:

Documents


21 download

TRANSCRIPT

  • DANA LICA MIRCEA PAOI

  • Dana Lica Mircea Paoi

    'tr,,;

    1 FORMATICA

    FUNDAMENTELEPROGRAMRll'-1 ~

    Culegere de probleme - Pascal i C/C++pentru clasa a IX a

    Editura L&S Soft2005 Toate drepturile rezervate.

  • Descrlerea CIP a Bibliotecii Naionale a RomnieiLICA,DANA

    Fundamentele programrii: culegere de problemede informatic - Pascal i C/C++ pentru clasa a IX-a /Dana Lica, Mircea Paoi. - Bucureti : EdituraL & S Soft,2005

    ISBN 973-86022-9-7

    1. Paoi, Mircea

    004.43 PASCAL004.43C004.43C++

  • Cuprins

    Capitol!Programarea structurat i instructiuni n limbajul de programare Pascal/CIC ++

    1.1 Structura liniar i alternativ - Instruciunea de atribuire i condiional ,11.1.1 Teste cu alegere multipl i dual s.1.1.2 Teste cu itemi semiobiectivi U1.1.3 Probleme rezolvate :?Q1.1.4 Probleme propuse :?,1

    1.2 Structuri repetitive - instruciuni repetitive "cs.1.2.1 Teste cu alegere multipl i dual :?~1.2.2 Teste cu itemi semiobiectivi 4.~1.2.3 Probleme rezolvate 49.1.2.4\Probleme propuse SJ

    1.3 Probleme de concurs ce proceseaz date simple S-9.1.3.1 Probleme rezolvate S9.1.3.2 Probleme propuse 91.

    Capitol 2Tipuri de date structurate

    2.1 Tabloul unidimensional Z4.2.1.1 Teste cu alegere multipl i dual ?42.1.2 Teste cu itemi semiobiectivi ??2.1.3 Probleme rezolvate cs.I2.1.4 Probleme propuse 9.0

    2.2 Tabloul bidimensional 9.,12.2.1 Teste cu alegere multipl i dual 9.S2.2.2 Teste cu itemi semiobiectivi ..!.OQ2.2.3 Probleme rezolvate .1.01.2.2.4 Probleme propuse UQ

    2.3 Fiiere text i!.6.2.3.1 Teste cu alegere multipl i dual U9.2.3.2 Probleme rezolvate U9.2.3.3 Probleme propuse I.:?9.

    2.4 Probleme de concurs ce proceseaz date structurate ~,,7.2.4.1 Probleme rezolvate az2.4.2 Probleme propuse !.JZ

    Indicatii i rspunsuri ~,14.

  • Programarea Structurat i Instruciuni n Limbajul deProgramare Pascal! C ! C ++

    Structura liniar i alternativ - Instruciunea de atribuire icondiional

    1.1.1 Teste cu alegere multipl i dual

    1. Care dintre urmtoarele valori fac parte din tipul ntreg:a) 23. Ob} -4321e) -24.0

    d) +1234e} 12345f} O. O

    2. Care dintre urmtoarele operaii au ca rezultat valori din tipul ntreg sau real ?(Operatorul [] desemneaz partea ntreag, iar operatorul mod desemneaz restul lamprirea ntreag):

    a) 3 "* 4 d} 2 mod 10b} [10.345] e) 10.01 < 14.5e) not(5)6} f} .J1O.0+63. Care dintre urmtoarele operaii sunt corecte sintactic:a} 10 + 2.3b) not true;e} 23 mod 2.0

    d} true and 1.0;e} not true false;f} 23.45 < 17;

    4. Care dintre urmtoarele operaii au ca rezultat valoarea true tiind c variabilele ntregia i b au valorile a = 23 i b = 50:

    a} a "* b;b} a > b;e) a + 10;

    d} b ::; a;e) a mod 10;f} b ~ a;

    S. Care dintre urmtoarele operaii au ca rezultat valoarea 3 tiind c variabilele ntregi a ib au valorile a = 45 i b = 120:a) a mod 6;b} a mod 10;e) a - 15;

    d) b div 39;e} b - 2*a;f) a mod 7;

    6. Care dintre urmtoarele operaii au ca rezultat valoarea 10.0 tiind c variabilele reale x,y i z au valorile x =20.0, y = ]5.0 i z=1.5:a} y/z d} x-y/zb} y*z

    e) .Jx*ze} -.r; f} x- x/2

    5

  • a ~ (a+b+c)/2;

    6

    7. Care dintre urmtoarele expresii sunt corecte sintactic?

    d) 220.0

    5) Ct la mprire6) Conjuncie7) Rest la mprire8) mprire

    d) 4e)8

    1) nmulire2) Scdere3) Parte ntreag4) Negaie

    e)240.0

    d) ..r;;; *2 - 32e) [3. 50*x] - 123. 45*yf) (x+2) mod 3

    d) x*y mod a < a mod xe ) not ( [3 . 5O]

  • a) a ~ b/2 + a/2 + e/2;b) a ~ a + b + e/2;e) a _ (a + b)/2 + e/2;

    d) a - b/l/2 + a/l/2 + e/l/2;e) a - a + b/2 + e/2;f) a _ (a + b)/1/2 + e/l/2;

    15. Care sunt valorile variabilelorntregi a i b dup execuia instruciunilor, dac iniial eleaveau valorilea=82 i b=24:

    a a mod 2 + b div 2 div 2 ; a) a 5 i b 5b 2 * a mod 2 ; b) a 6 i b 6a a + b; e) a O i b 6b a mod 2 + b + 10 mod 2; d) a 6 i b O

    e) a O i b O

    16. Care dintre variabilele a, b, c, d vor avea aceeai valoare dup execuia instruciunilorurmtoare, dac iniial ele aveau valorilea=lO, b=20, c=30 i d=40:

    -[.,Jd*2+.b]; a) a 100, d = 100a b) a 60, e 60b ~a + b div 2 *5; e) a 10, e 10 i d 10e -(b - d ) *5 div 10; d) b 60, d 60d-

    (d + a + b - e)div 10;

    17. Determinai mrdinea de executare a instruciunilor urmtoare pentru ca la finalvariabilelex, y, i z s aib valori egale, indiferentde valorile avute anterior:

    a) x- x mod 15 a) b, d, a, c;

    b) z _ x div y; b) c. d, b, a;e) x _100; c) a, b, d, c:d) y _ x div 10; d) c, a, b, d;

    18. Care dintre urmtoarele atribuiri fac ca valoarea variabilei reale x s aib parteafracionar egal cu 0.0, indiferent de valoarea iniial a acesteia? (Operaia parte ntreageste desemnat prin operatorul l l )a) x _ x*lO;b) x ~ [x] * 10;e) x [x*J.O];

    d) x _ x/10;e) x ~ [x] + 10.03;f) x _ [x + 10];

    19. Care dintre urmtoarele atribuiri sunt corecte tiind c variabilele a i b sunt ntregi, iarvariabilelex i y sunt reale:

    a) x _ a*lO div 3;b) a _ [x] * b mod 2e) y _ x mod 2 + 1;

    d) b - (x + y) div 10 + a mod 2;e) x ~ a + b/3;f) y ~ [x + aJ div 3;

    20. Care dintre urmtoarele operaii au ca rezultat valoarea True tiind c variabilele ntregia i b au valorile a = 23 i b = 50:

    a) (a ~ b) and (a>b);b) ((a+10) a div 7;e) not false and (a div 10 < b);f) not (true or (a+b

  • 27. Care sunt valorile variabilelor reale x i y dup executarea instruciunilor urmtoare:

    23. Care dintre operaiile urmtoare atribuie variabilei ntregi x una din cifrele sale, tiindc x>10000:

    25. Variabila max are valoarea 3. Care dintre urmtoarele operaii de atribuire permite cavariabila max s i modifice valoarea din 3 n O?

    x div 100 mod 10;x mod 10 div 1;x mod 50;

    d) x- a < 2e) 4 + a-bf) a .... x div 10 mod 10;

    d) xe) xf) x

    d) x a + b/3 + e/3;e) x a/3 +b/2 +e/2;f) x {a + b + e)/3;

    le ) max 2*max - 6d) max 2 + 5 mod 2

    x mod 100;x mod 10;x div 10 mod 10;

    x - 22.50; a) x 35.0 i y 25.0Y [x]+8; b) x 45.0 i Y 75.0x 2*x; e) x 28.0 i y 30.0Y y+x; d) x 22.5 i y 75.0

    8

    x 3 ; a) x=O i y=3Y x+3; b) x=3 i y=Ox-

    x-3; e) x=6 i y=Od) x=O i y=6

    a) max_max - 12 div 4b) max_(max-1) + 3

    a) a-a + 3b) x_a + 3-2e) b...-b div 2 + 1

    24. Care dintre operaiile de atribuire urmtoare sunt corecte, tiind c toate variabilele autipul ntreg?

    26. Care sunt valorile variabilelor x i y dup executarea n ordine a urmtoarelor treioperaii de atribuire?

    a) xb) xc ) x ...

    a) x {a + b + e)/2;b) x a/3 + b/3 + e/3;e) x a/1/3 + b/1/3+ e/1/3;

    22. Care dintre operaiile urmtoare atribuie variabilei reale x media aritmetic a valorilorvariabilelor ntregi a, b i c :

    x .... 1234; a) x = 12, Y 18, z 24y x div 100; b) x 12, Y 24, z 18x x * 2 div 100; e) x 34, Y 18, z 24z .... (x+y) div 2; d) x 18, Y 12, z 24z _ x

    21. Care sunt valorile variabilelor x, y i z n urma executrii secvenei de instruciuni(Operatorul- desemneazoperaiade interschimbare a valorilor a dou variabile):

  • 28. Care dintre variabilele care intervin n secvena de operaii urmtoare i vor pstravaloarea avut iniial?

    a b+ei a) a i ee a-Ci b) b i eb Ci c) e i ac-

    a-b; d) a, b, i e

    29. Care sunt valorile variabilelor ntregi a i b dup executarea instruciunilor urmtoare:

    a - 1235; b .... a mod 10; a) a 1200 i b = 5[:"ca 'a-blmod 10=0 atunci b) a 12 i b 35

    a _ a div 100; e) a 3500 i b 12b - a mod 100; d) a 1200 i b = 12

    e) a 1200 i b = 35G:aca a=batunci a .... a*100; f) a 100 i b = 35

    30. Care sunt-valorile obinute de variabilele ntregi x, y i z dup executarea operaiei dedecizie urmtoare, dac la intrare aveau valorile x =23, y = 14 i z =25?

    [

    a c a (x>l) and (y-z>O) atuncix _ y-z

    altfel"y .... x-1;Z y+x;

    a) xb) xc) xd) xe) x

    -11,23,23,-11,23,

    y = 14,Y 22,Y 22,Y 22,Y -11,

    z = 25z 37z = 45z = 37

    z = 25

    31. Care dintre secvenele de operaii urmtoare conduc la afiarea a dou valori pozitive?a)rdaca (a>O) and (b=a)La. scrie (a, b)b)

    ~aca (a*bO atuncil. scrie (a, b)

    atuncic)

    ~aca (a>O) or (b>O) atuncil. scrie (a, b)d)

    ~aca (a*b>O) and (b>O) atuncil. scrie (a, b)

    32. Care dintre urmtoarele numere reprezint numere ntregi din vocabularul limbajuluiPascal /C/C++?

    a) -315.2 b) 1982 c) +23 d) 002222 e) 23E2 f) '123'

    33, Care dintre urmtoarele numere reprezint numere reale din vocabularul limbajuluiPascal /C/C++?

    a) 445.6 b) -45.2 c) 22,17 d) pi e) 23E2 f) '12.3'

    34. Se consider urmtorul program:beg-in

    wri te ( 'Eu ');writeln('sunt ');write ( I bine' )

    end.

    9

    void main()cout "Eu ";cout "sunt" endl;cout "bine";

  • 39. Care dintre tipurile urmtoare reprezint tipuri de date reale?

    40. Considerm c variabila a are valoarea -13. Crui tip poate aparine aceast variabil?

    36. Ce va fi afiat pe ecran n urma apelului writeln(45.23:6:3) n Pascal, respectivprintf("%6.3fm", 45.23) n C/C++ ?

    b)unsigned aid) short ai

    d) 45.023

    d)Eusunt bine

    a) flaat b)unsigned char

    a)byte ai

    c) unsigned int d)dauble

    c ) 045.230

    a) b)caut 'A" caut "13.45"

    c) d)caut1.3endl caut 3a

    c)Eu sunt bine

    c)int ai

    c ) d)caut-1.3endl caut1.0endl

    a) b)caut -123 caut "1234"

    10

    b) byte

    b) 45.230

    d)writeln(l.O)

    d) dauble

    b)write( '13.45')

    d)writeln (3a)

    b)write('1234

    ')

    a) +45.230

    37. Care dintre urmtoarele apeluri sunt incorecte sintactic?

    a)write(-123)

    a) real

    38. Care dintre urmtoarele apeluri conduce la afiarea unor caractere ce pot reprezenta unnumr ntreg?

    a)write("A")c)wri teln (1 .3)

    c) word

    c)writeln(-1.3)

    a) b) a) b)write( 'A') i write( 'AB') i caut uAlli caut "ABil iwrite('B')i writeln ('C') i caut UBl! i caut \leII write('C')i caut \leII j endli

    c) d) c) d)writeln( 'AB') i writeln( 'ABC ') caut"AB"endli caut "ABC"write('C')i caut lle" ; endl.r

    c)var a:integer d)vara:shartint

    a)var a:char b)var a:byte

    35. Care dintre urmtoarele secvene conduc la o afiare n acelai format cu cel produs deapelul: write('ABC') n Pascal, respectiv cout "ABC" in C/C++ ?

    n ce fel se va face afiarea mesajelor?a) b)

    Eu Eu suntsunt binebine

  • 41. Stabilii care dintre urmtoarele declaraii de variabile sunt corecte:

    a) var a: integer[10]; a) float lt,2t;b) var x,y:int; b) int a[l. .10];e) var a,b:real; e) int x,y;d) var lt,2t:integer; d) string s;e) var z:longinteger; e) double e iv t

    42. Dac a, b sunt variabile de tip integer (varianta Pascal) / int(varianta C/C++), iar x, ysunt variabile de tip real (varianta Pascal) / jloat(varianta C/C++), stabilii care dintre

    urmtoarele secvene de atribuiri sunt incorecte:

    a) x:=20; y:=10; x:=(x+y)/2;b) x:=8; y:=10; a:=x+y;e) x:=4; b:=2; y:=x/b;d) b:=2; a:=b/2;e) a:=5; b:=5; x:=a+b;

    a) b=2; a=b/2;b) x=8; y=10; a==x+y;e) x=4; b=2; y=x/b;d) x==20; y==10; x=(x+y)/2;e) a=b=5; x=a+b;

    43. Care dintre' urmtoarele declaraii sunt corecte sintactic?

    a) const ab=30; a) int ab=30;b) var a+b:integer; b) int a+b;e) var a1:rea'i; e) float al;d) var 1ab:ehar; d) char lab;e) var ro.n:booleani e) int ro.ni

    44. Care dintre urmtoarele expresii logice au valoarea true(varianta Pasca))! 1 (variantaC/C++) pentru:

    a:=5i b:=3i e:=true; d:=3; a=5i b=3i e=l; d=3;

    a) (a

  • 53. Care dintre variabilele declarate n continuare poate avea valoarea -123?

    51. Care dintre urmtoarele expresii care conin numai operanzi reali sunt corecte sintactic?

    48. Indicai care dintre expresiile urmtoare sunt corecte sintactic. Evaluai expresiilecorecte.

    d)25

    d) int albie;

    b)d=char;

    e)false{Paseal)O (C/C++)

    a) (a

  • 54. Care va fi valoarea variabilei x dup efectuarea secvenei de instruciuni:

    x:=3 + 17 div 3iy:=x + lix:=y + li

    a) 8 b) 9

    x=3 + 17/3iy=x + 1;x=y + li

    e) 10 d) 11

    55. Determinai valoarea expresiei: abs(-11.2)+sqrt(trunc(16.23)), scris n limbajul Pascal,respectiv fabs(-11.2)+sqrt(floor(16.23)) n C/C++.a) -9.2 b) 15 e) 14.2 d) 15.2

    56. Determinai valoarea expresiei trunc(abs(-14.2)) mod 7, scris n limbajul Pascal,respectiv ((int)fabs(-14.2)) % 7 in C/C++?a) 14 b) 2 c ) O d) 8

    57. Determinai valoarea expresiei (99 mod trunc(trunc(8.9)/sqrt(16)) + 1), scris nlimbajul Pascal, respectiv 99 % (int) (floor(8.9)/sqrt(16)) + 1 n C/C++?

    a) 2 b) 1 e) O d) 3

    58. Determinai valoarea expresiei sqr(17 div 5*2) , scris n limbajul Pascal, respectiv(17/5*2)*(17/5*2) in C/C++.

    a) 1 b) 36 e) 1800 d) 2

    59. Determinai care dintre expresiile urmtoare pot fi atribuite variabilei reale x:

    a)8 mod sqrt(4)

    e)sqr(6 div(-3))

    b)sqrt(63 mod 2)

    d)sqrt (sqr (-2) )

    a)8 % sqrt(4)e)(6/-3)*(6/-3)

    b)sqrt(63 % 2)d)sqrt(-2 * -2)

    60. Considerm c ntr-un program se .lucreaz cu variabila real x a crei valoare este 10.3.Ce se va afia n urma apelului write(x:5:2, abs(x):6:2, trunc(x):3),pentru limbajul Pascal,respectiv prinlj\"%5.2f%6.2f%3d", x, fabs(x), (int) x) pentru C/C++?

    a) 10.30-10.30 10 b) 10.3010.3010 c) 10.30 10.30 10 d) 10.30 10.30010

    61. Considernd variabila real x i variabila ntreag a, care va fi secvena de caractereafiate n urma executrii secvenei de instruciuni:x:=-4.3ia:=abs(trune(4)) ;write(a:2,abs(x) :4:2,trune(a+x) :2)

    x=-4.3ia=abs(4)iprintf (" %2d%4. 2f%2d" I a, fabs (x) ,(int) eeil(a+x));

    a) 4 4.300 b) 44.30 O e) 4 4.30 O

    13

    d) 44.300

  • 63. Ce se va afia n urma executrii urmtoarei secvene de instruciuni?

    62. Presupunem c variabilantreag a are valoarea 1O-iar variabilantreag b are valoarea5. Ce se va afia n urma executrii urmtoarei secvene de instruciuni?

    65. tiind c variabilele reale x, y, z au valorilex=12.3, y= - 34.2 i z=5.67, ce se va afia nurma executrii urmtoarei instruciuni?

    d) 13 35 5

    d) 15 5

    d) 121 12

    d) 10 10

    c) 12-35 6

    c ) 15 10

    eouta' "b) {if (x=='.*') a*=3i

    }else {if (y=='-') b-=3i

    else a+=bi

    if (x>y)x=floor(x)+li

    else if (z>y)z=floor(z)+li

    elsey=eeil (y) +1 i

    printf("%3.0f%3.0f%3.0f\n",x,y,z)

    if (floor(x)==floor(y)) X=Yielse X+=Yi

    eout (int)floor(x) '(int) floor(y) i

    a=10i b=a+1iif (a!=b) b++i

    else a++ia=b*ai eout a ' , bi

    aux=liif (ab then begin

    if x='*' then a:=a*3end

    elseif y='-' then b:=b-3else a:=a+bi

    write(a,' ',b,' I ,e) i

    if x>y thenx:=trune(x)+l

    else if z>y thenz:=trune(z)+l

    elsey: =trune (y) +1 i

    writeln(x:3:0,y:3:0,z:3:0) i

    a) 5 5

    64. Presupunem c asupra variabilelor reale x i y au fost efectuate atribuirile x=: 10.23 iy:=5.14, n Pascal, respectivx=1O.23 i y=5.14, n C/C++. Ce se va afia n urma executrii

    urmtoarei instruciuni?

    a:=10i b:=a+1iif ab then b:=b+1

    else a:=a+1ia:=b*ai write(a, , ',b)i

    aux:=liif a

  • a) 13 12 4 b) 3 12 4 c) 1 9 4 d) 3 9 4

    67. Identificai care dintre urmtoarele instruciuni alternative sunt corecte sintactic:

    a) if a:=10 then write(a) ; a) if a=10 couta;

    b) if 1c then max:=aelse max:=c else max:=b

    c) if a>b thenif a>c than max:=aelse max:=c

    else if b>c then max:=belse maX:=Ci

    d) if a>b thenif b>c than max:=balsa max:=c

    alsa max:=a;

    a) if (a>b && a>c) max=a;elseif (b>a && b>c) max=b;alse max=c;

    b) if (a>b)if (a>c) max=a;else max=c; elsa max=b;

    c ) if (a>b)if (a>c) max=a;else max=c;

    alsa if (b>c) max=b;alsa max=c;

    d) if (a>b)if (b>c) max=b;elsa max=c;

    else max=a;

    69. Care dintre urmtoarele instruciuni verific n mod corect dac valoarea variabilei xaparine intervalului (a,b)a) if (x=b) then

    write('NU Apartine')else write('Apartine')

    b) if (x>a)and(xa) or (x>b) thenwrite( 'Apartine')

    alse write(' NU Apartine')

    a) if (x=b)cout "NU Apartine";

    else cout "Apartine";

    b) if (x>a && x

  • 71. Care dintre urmtoarele instruciuni verific n mod corect dac valorile variabilelor a ib sunt consecutive?

    70. Care dintre urmtoarele instruciuni verific n mod corect dac valorile variabilelor a, bi c au acelai semn?

    a)if (a>O)and(b>O)and(c>O) then

    wri te ( 'Au acelasi semn')else write(' NU au acelasi semn')

    a)if (a>O && b>O && c>O)cout "Au acelasi semn";

    else cout "NU au acelasi semn";

    b)if (a*b>O && c*b>O)

    cout "Au acelasi semn";else cout "NU au acelasi semn";

    c)if ((a>O && b>O && c>O) II

    (a

  • 1.1.2 Teste cu itemi semiobiectivi

    1. Se consider urmtorul algoritm:

    1 intreg a, b, c, d;2 citeste a, b;

    c _ a + b;d - a * b;raaca c > d atuncila. c .... d;

    ta c a a mod 2 = O atunciscrie c, d10 altfel11 scrie d, c;12 stop.

    a) Ce valori vor fi afiate dac a=34 ib=2? Dar dac a=24 i b= -2 ?b) Dai un exemplu pentru datele deintrare astfel nct algoritmul s afiezela final dou valori egale.c) Dai exemplu de valori pentru a i bastfel nct s fie afiat o pereche devalori pare ordonate cresctor.d) Realizai programul n limbajul deprogramare studiat Pascal/C/C++.

    2. Se consider urmtorul program pseudocod:intreg a, b;real x , y;

    citest~.,x, y;a _ [x * y];b - [x / y];raaca a < b atuncila. a .... b;

    ta c a x ~ [x] atunciscrie a, baltfel scrie b, aistop.

    a) Ce valori vor fi afiate dac x=34.50i y=l 7.1? Dar dac x=1.5 i y= -2.5 ?b) Dai un exemplu pentru datele deintrare astfel nct algoritmul s afiezela final aceleai valori care au fost cititela intrare. .c) Dai exemplu de valori pentru x i yastfel nct s fie afiat o pereche devalori ordonate descresctor.d) Realizai programul n limbajul deprogramare studiat Pascal/C/C++.

    3. Se consider urmtorul algoritm:

    a) Ce valori vor fi afiate dac a=345 ib=238? Dar pentru a=7093 i b= 211 ?b) Dai un exemplu pentru datele deintrare astfel nct algoritmul s afiezela final aceleai valori ca cele citite.c) Cum trebuie s fie valoarea variabileia pentru ca valoarea ei s nu se modificen urma executrii operaiilor dinalgoritm.d) Realizai programul n limbajul deprogramare studiat Pascal/C/C++.

    b - a mod 100;ta c a a div 10 mod 10>5 atuncia a - a div 10*10altfel bscrie a, b;stop.

    intreg a. b ;citeste a, b; {a,b>100}raaca a mod 10

  • 5. Se consider urmtorul algoritm:

    a) Ce mesaj va fi afiat pentru a=2, b=6i c= -10? Dar pentru a=l, b=3 ic=lO ?b) Dai un exemplu de valori pentrudatele de intrare astfel nct algoritmul

    s afieze un mesaj necorelat cu semneledatelor de intrare.c) Rescriei algoritmul astfel nct sverifice n mod corect dac toate celetrei valori ale datelor de intrare suntpozitive.d) Realizai programul n limbajul deprogramare studiat Pascal/C/C++.

    a) Ce valoare va fi afiat dac a=3 b=8i c=13 ? Dar pentru a=5, b=IO i c=O?b) Dai un exemplu pentru datele deintrare astfel nct algoritmul s afiezemesajul 'INCORECT'.c) Rescriei algoritmul, folosindu-v de

    operaiile logice, astfel nct s conin osingur operaie de decizie.d) Realizai programul n limbajul deprogramare studiat Pascal/C/C++.e) Realizai un enun de problem a creirezolvare este algoritmul prezentat.

    b) Dai un exemplu pentru datele deintrare astfel nct algoritmul s nuefectueze nici una din operaiileexistente n cadrul operaiilor de decizie.c) Realizai un enun de problem a creirezolvare este algoritmul prezentat.d) Realizai programul n limbajul deprogramare studiat Pascal/C/C++.

    a) Ce valori vor fi afiate dac a=3,b=38 i c=17? Dar pentru a=73, b=15 ic= 46?b) Dai un exemplu pentru datele deintrare astfel nct algoritmul s afieze

    stop.

    18

    intreg a, b ,c :citeste a, b, c :

    aca a*b < O atunciscrie 'Exista nr. negativ'

    altfel

    ta c a b*c < O atunciscrie 'Exista nr. negativ'altfelscrie 'NUMERE POZITIVE'intreg a, b ,c:citeste a, b, c:

    aca (a + b)/2 = c atunciscrie 'CORECT'

    altfeldaca (a + c)/2 = b atunci

    scrie 'CORECT'altfel

    [

    a c a (?+b)/2 = a atunciscrJ.e 'CORECT'

    altfelscrie 'INCORECT':

    citeste sl,s2,m1,m2,gl,g2:s - 81 + 82: m - m1 + m2:g _ gl + g2:rdaca 8>60 atunci19 8 - 8 mod 60: m- m+ 1:raaca m>60 atunci

    ~ m _ m mod 60: g _ g + 1;

    scrie g, m, 8: stop.

    intreg a, b ,c:,citeste a, b, c:rdaca a > b atunci19aHb

    6. Se consider urmtorul algoritm:

    7. Se consider urmtorul algoritm:

  • a, b, c; stop.

    c atuncic .... b

    altfel~aca a > cLa. a t-+- C;

    atunci

    valori ce nu sunt ordonate cresctor.c) Cum trebuie modificat algoritmulpentru ca valorile variabilelor a, b, c sfie ordonate cresctor?d) Realizai programul n limbajul deprogramare studiat Pascal/C/C++.

    8. Se consider urmtorul algoritm:

    intreg a, b ,c ;citeste a, b, c ;{a,b,c>O}

    aca (a+b)

  • Soluie: Algoritmul testeaz toate cazurile dup definiiile triunghiului echilateral, isoscel,respectiv dreptunghic.

    1. Considernd cunoscute trei valori reale, verificai dac ele pot reprezenta lungimilelaturilor unui triunghi, iar n caz afirmativ determinai tipul acestuia: isoscel, echilateral,dreptunghic sau oarecare.

    #include float a,b,c;void main() {

    cin a b C;if (a=a+b)cout "Nu este triunghi\n";

    elseif (a==b && a==c && b==c)cout "Echilateral\n";

    elseif (a==b I I a==c I I b==c)cout "Isoscel\n";

    elseif (a*a+b*b==c*c I I

    b*b+c*c==a*a I Ia*a+c*c==b*b)

    cout "Dreptunghic\n";else

    cout "Oarecare\n";

    1.1.3 Probleme rezolvate

    a) Ce mesaj va fi afiat pentru a=l, b=2,c = l? Dar pentru a=4, b=-12, c=9?b) Dati exemplu de valori naturale cititepentru a, b, c astfel nct s se tipareascmesajul 'Nu sunt sol reale'.c) Dai exemplu de dou seturi de valoride intrare pentru care una din valorile

    afiate s fie O.d) Identificai care din datele de intrarepot fi declarate ca date de tip ntreg.e) Realizai programul n limbajul deprogramare studiat Pascal/C/C++.

    20

    var a,b,c:real;beginreadln(a,b,c};if (a=a+c)thenwriteln('Nu este triunghi')

    elseif (a=b)and(a=c)and(b=c) thenwriteln('Echilateral')

    elseif (a=b)or(a=c)or(b=c) thenwriteln('Isoscel')

    elseif (sqr(a)+sqr(b)=sqr(c))or

    (sqr(b)+sqr(c)=sqr(a))or(sqr(a)+sqr(c)=sqr(b)) then

    writeln('Dreptunghic')else

    writeln('Oarecare') ;end.

    real a, b, c, xl, x2, delta;citeste a, b, C;

    aca a=O atunciscrie "Ecuatie de grad I"

    altfeldelta - b*b - 4*a*c

    aca delta>=O atuncixl _ (-b - ~delta)/(2*a}x2 _ (-b + ~delta}/(2*a)scrie xl, x2

    altfelscrie "Nu sunt sol reale"

    11. Se consider urmtorul algoritm:

  • 2. Se consider o fracie a crei numitor este un numr prim. S se verifice dac esteireductibil i subunitar.

    Soluie: Fracia este ireductibil dac numrtorul nu este un multiplu al numitorului.Variabila a va prelua valoarea numrtorului.

    1 var a,b:integer; #include 2 begin int a,b;

    readln (a, b) ; void main() {if (a mod b=O)then cin a b ;

    write ( 'Reductibila, ') if (a%b==O)else cout "Reductibila";

    write('Ireductibila, ') elseif (a

  • 5. Se consider dou puncte n plan, exprimate prin perechi de coordonate (x,y). Elereprezint centrele a dou cercuri de raz Rl , respectiv R2. S se verifice dac cele doucercuri sunt tangente interne, tangente externe, secante sau exterioare.

    Solutie: Pentru a determina poziia celor dou cercuri vom calcula distana dintre cele doucentre. Notnd cu el aceast distan, atunci:

    cercurile sunt exterioare dac el Rl + R2 cercurile sunt tangente externe dac el=RI + R2 cercurile sunt tangente interne dac el = IRI - R21 cercurile sunt secante dac el< IRi - R21 i el < RI + R2 un cerc este interior celuilalt dac el < IRi - R21

    cin x3 y3 x4 y4;cin x5 y5 x6 y6;a={xl-x2)*{xl-x2) +

    (yl-y2)*{yl-y2);b=(xl-x3)*(xl-x3) +

    (yl-y3)*(yl-y3);c={x2-x3)*{x2-x3) +

    (y2-y3)*{y2-y3) ;d=(x4-x5)*(x4-x5) +

    (y4-y5)*(y4-y5);e={x4-x6)*(x4-x6) +

    (y4-y6) * (y4-y6) ;f={x5-x6)*{x5-x6) +

    (y5-y6)*{y5-y6);if (a/d==b/e && a/d==c/f)

    caut "DA";else

    caut "NU";

    #include #include float xl,yl,rl,x2,y2,r2,d;void main() {

    cin xl yl rl;cin x2 y2 r2;d=sqrt((xl-x2)*{xl-x2)+

    (yl-y2)*{yl-y2)) ;if (d>rl+r2)

    caut "Exterioare";elseif (d==rl +r2 )

    caut "Tangente ext";elseif (dfabs{rl-r2))

    caut "Secante";elseif (d==fabs(rl-r2))

    caut "Tangente int";elseif (drl+r2) then8 write{'Exterioare')

    elseif (d=rl+r2) then

    write('Tangente ext')elseif (dabs(rl-r2))then

    write ( 'Secante')elseif (d=abs(rl-r2)) then

    write('Tangente int')else

    if (d

  • 6. Se consider patru puncte n plan A, B, C, D, exprimate prin perechea de coordonate (x,y)ce formeaz un patrulater convex. S se verifice dac cele patru puncte formeaz unparalelogram. Coordonatele punctelor sunt introduse n ordinea (x;\,y;\) (XB,YB) (xe,ye)(XD,YD).

    Solutie: Patru puncte formeaz un paralelogram dac diagonalele se njumtesc n acelaipunct. Vom verifica dac coordonatele mijloacelor celor dou diagonale sunt aceleai.

    1 var2 xl,yl,x2,y2,x3,y3,x4,y4:real;3 begin4 read(xl,yl,x2,y2);5 read(x3,y3,x4,y4);6 if (xl+x3=x2+x4)and7 (yl+y3=y2+y4) then8 write( 'DA')9 else10 \write('NU');11 end.

    #include float xl,yl,x2,y2,x3,y3,x4,y4;void main() {

    cin xl yl x2 y2;cin x3 y3 x4 y4;if (xl+x3==x2+x4 &&

    yl+y3==y2+y4)cout "DA";

    elsecout "NU";

    7. Realizai un program care verific dac un punct X din plan se afl n interiorul unuitriunghi, pe laturile acestuia sau este exterior lui. Se cunosc coordonatele punctului A icoordonatele vrfurilor triunghiului.

    Solutie: Punctul X este interior triunghiului ABC dac suma ariilor triunghiurilor AXB, XACi XBC este egal cu aria triunghiului ABC. Dac una din ariile triunghiurilor care l au cavrf pe X este egal cu Oatunci punctul X se afl pe laturile triunghiului ABC.

    1 var2 xl,yl,x2,y2,x3,y3,x,y:real;3 a,al,a2,a3:real;4 begin5 read(xl,yl,x2,y2);6 read(x3,y3,x,y);7 a:=abs(xl*(y2-y3)-yl*8 (x2-x3)+x2*y3-x3*y2) *0.5;9 al:=abs (xl* (y2-y)-yl*10 (x2-x)+x2*y-x*y2)*O.5;11 a2:=abs(xl*(y-y3)-yl*12 (x-x3)+x*y3-x3*y)*O.5;13 a3:=abs(x*(y2-y3)-y*14 (x2-x3)+x2*y3-x3*y2)*0.5;15 if (al=0)or(a2=O)or(a3=0)16 then write('Pe laturi')17 else18 if (al+a2+a3=a) then19 write('Interior')20 else21 write('Exterior')22 end.

    23

    #include #include float xl,yl,x2,y2,x3,y3,x,y;float a,al,a2,a3;void main() {

    cin xl yl x2 y2;cin x3 y3 x y;a=fabs(xl*(y2-y3)-yl*

    (x2-x3)+x2*y3-x3*y2)*O.5;al=fabs(xl*(y2-y)-yl*

    (x2-x)+x2*y-x*y2)*O.5;a2=fabs (xl* (y-y3)-yl*

    (x-x3)+x*y3-x3*y)*0.5;a3=fabs(x*(y2-y3)-y*

    (x2-x3)+x2*y3-x3*y2)*0.5;if (al==O II a2==O II a3==0)

    cout "Pe laturi";elseif (al+a2+a3 == a)

    cout "Interior";else

    cout "Exterior";

  • 24

    9. Se consider patru puncte n plan, exprimate prin perechea de coordonate (x,y). S severifice dac cele patru puncte formeaz un dreptunghi.

    #include float xl,yl,x2,y2,x3,y3,x4,y4;float dl,d2;void main() {

    cin xl yl x2 y2;cin x3 y3 x4 y4;dl=(xl-x3)*(xl-x3)+

    (yl-y3)*(yl-y3);d2=(x2-x4)*(x2-x4)+

    (y2-y4)*(y2-y4);if (xl+x3==x2+x4 &&

    yl+y3==y2+y4 && dl==d2)caut "DA";

    elsecaut "NU";

    #include float xl,yl,x2,y2,x3,y3,xa,ya;void main() {

    cin xl yl x2 y2;cin x3 y3 xa ya;if ((xl+x2+x3)/3.0 xa &&

    (yl+y2+y3)/3.0== ya)cout"Centru de greutate";

    elsecaut "NU";

    var

    xl,yl,x2,y2,x3,y3,xa,ya:real;begin

    read(xl,yl,x2,y2);read(x3,y3,xa,ya) ;if ((xl+x2+x3)/3.0=xa)and

    ((yl+y2+y3)/3.0)=ya)thenwrite('Centru de greutate')

    elsewrite ( 'NU')

    end.

    end.

    var xl,yl,x2,y2,x3,y3:real;dl,d2,x4,y4:real;

    beginread(xl,yl,x2,y2) ;read(x3,y3,x4,y4);dl:=(xl-x3)*(xl-x3)+(yl-y3) * (yl-y3) ;d2:=(x2-x4)*(x2-x4)+(y2-y4)*(y2-y4);if (xl+x3=x2+x4) and

    (yl+y3=y2+y4)and(dl=d2) thenwri te ( 'DA' )

    elsewrite('NU')

    Solutie: Patru puncte formeaz un dreptunghi dac diagonalele sunt egale i se njumtescn acelai punct.

    Solutie: Calculm lungimea i limea suprafeei comune, apoi determinm aria acesteisuprafee.

    10. Se consider dou dreptunghiuri, cu laturile paralele cu axele, n plan ale cror vrfurisunt exprimate prin perechi de coordonate (x,y). S se determine aria suprafeei comune alecelor dou dreptunghiuri. Coordonatele punctelor unui dreptunghi sunt introduse n ordinea(XA'YA)' (XB,yB) (xe,ye) (XD'YD)'

    8. Se consider trei puncte n plan, exprimate prin perechi de coordonate (x,y). S severifice dac un punct A reprezint centrul de greutate al triunghiului format de cele treipuncte.

    Solutie: Coordonatele centrului de greutate al unui triunghi se obin ca medie aritmetic acelor trei coordonate corespunztoare vrfurilor triunghiului. Demonstraia pleac de lafaptul c acesta se gsete pe orice median la 2/3 de coordonatele vrfului i la 1/3 debaz.

  • var xl,yl,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6,x7,y7,x8,y8,

    vx, vy:real;begin

    read(xl,yl,x2,y2) ;read(x3,y3,x4,y4) ;read(x5,y5,x6,y6) ;read(x7,y7,x8,y8) ;if (xl

  • 26

    9. Realizai cte un algoritm pentru calculul valorilor urmtoarelor expresii:

    10. Realizai un algoritm care verific dac trei numere ntregi sunt pitagorice.

    15 *x daca x < 10

    B = 2 - x daca O:S; x :s; 103 + x daca x > 10

    {3*x -1 daca x < OA=2-x daca x~O

    12 - x daca x < O

    c=max{ x 2 ,11x} daca x ~ O

    7. Maria a depus la banc o sum de bani. Se cunoate c pe lun ea are o dobnd de 30%din valoarea avut la acel moment. Care va fi valoarea deinut la C.E.C dup 3 lunicunoscnd suma iniial depus i faptul c Maria nu a ridicat niciodat dobnda, eaadugndu-se n fiecare lun la suma iniial? Alctuii algoritmul de rezolvare al acesteiprobleme.

    {a *x+b* y =Ox+c*y=l

    5. Inflaia produce devalorizarea monedei naionale. Ct a costat un caiet anul trecut, dacinflaia a fost de 50% pe an? Alctuii algoritmul de rezolvare a acestei probleme tiind careeste preul actual al caietului.

    6. Andrei a depus la o banc o sum de bani. tim c n fiecare lun el primete o dobndde 30% din valoarea iniial depus. Care va fi valoarea deinut la C.E.C dup 3 luni dacse cunoate valoarea depus iniial? Alctuii algoritmul de rezolvare al acestei probleme.

    4. Realizai un algoritm pentru rezolvarea n mulimea numerelor reale a sistemului deecuaii:

    8. Realizai un algoritm care citind de la tastatur trei numere reale calculeaz suma celorpozitive.

    11. Realizai un program care va determina media semestrial la o disciplin avnd ladispoziie cele trei note din oral.

    12. Realizai un program care va determina media semestrial la o disciplin avnd ladispoziie cele trei note din oral i nota din tez.

    13. Realizai un program care va determina lungimea ipotenuzei unui triunghi dreptunghic,cruia i se cunosc lungimile catetelor.

    14. Realizai un program care determin perimetrul i aria unui ptrat, cunoscndu-selungimea laturii acestuia.

  • 15. Realizai un program care determin un procent p din salariul unui muncitor. Se vor citide la tastatur att salariul ct procentul dorit.Exemplu: Pentru salariul s=3000000 i procentulp=15 se va afia 450000.

    16. Cunoscndu-se suma de bani avut de Ionel nainte de a cumpra trei cadouri, ivaloarea fiecruia, realizai un program care s afieze suma rmas dup cumprturi.Exemplu: Pentru suma iniial s=3000000 i cadourile de valoare 100000, 200000 i300000 se va afia 2400000.

    17. O broscu face n fiecare minut cte un salt. Lungimea primului salt este p (valoarecitit de la tastatur) dup care, fiecare salt fcut are lungimea dubl fa de lungimeasaltului anterior fcut. Realizai un program care afieaz distana total parcurs debroscu n cinci salturi.Exemplu: pentru p=2 se va afia 62 (2+4+8+16+32)

    18. Considerm un numr Il>I00. Realizai un program care afieaz ultimele dou cifreale lui i suma acestora.Exemplu:Pentru Il=10234 se va afia 34 7.

    19. Considerlr,\ un numr n de patru cifre. Realizai un program care afieaz primele doucifre ale lui i produsul acestora.Exemplu: Pentru n=1234 se va afia 122.

    20. Considerm un numr Il de trei cifre. Realizai un program care afieaz pe cte o liniefiecare cifr a acestuia.Exemplu: 1Pentru n=123 se va afia: 2

    3

    21. Realizai un program care, citind de la tastatur trei numere reale, calculeaz suma celorpozitive.

    22. Realizai cte un algoritm pentru calculul valorilor urmtoarelor expresii

    A = {min(x* y,x+ z)2 *z altfel

    ptr x:f:. y{

    min(x * y,x+ z) ptr x:f:. ZB=max(2 *z, x - y) altfel

    23. Realizai un program care afieaz n ordine cresctoare cifrele unitilor i zecilor unuinumr natural Il citit.Exemplu:Pentru n=1243 se va afia 34

    24. Realizai un program care verific dac un numr este impar i afieaz n caz afirmativsuma dintre cifra zecilor i cifra unitilor. n situaia cnd numrul citit este par se va afiamesajul "Numar par"Exemplu:Pentru n=1243 se va afia 7.

    \

    27

  • 1. Care dintre urmtoarele instruciuni efectueaz 5 iteraii:

    1.2.1 Teste cu alegere multipl i dual

    !II Structuri repetitive - Instruciuni repetitive

    4 executa

    rpentru j ~ 7,3 -1 executalmr nr ~ nr+1

    e)rpentru d ~ -1,lmr nr ~ nr+1

    d)

    28

    a)rpentru d ~ 0,5 executalmr nr ~ nr+1

    b)rpentru j ~ -1,3 executalmr nr ~ nr+1

    29. Se citesc dou numere naturale. S se afieze valoarea fraciei subunitare care se poateforma cu cele dou numere. Valoarea va fi afiat cu 3 zecimale.Exemplu:Pentru x=2 i y=4 se va afia 0.500.

    30. Realizai un program care afieaz semnul majoritar a 5 valori citite de la tastatur iafieaz un mesaj corespunztor.Exemplu:Pentru valorile 2, -3, -14.2, 2, -4.3 se va afia mesajul: "Majoritatea negative"

    28. Se citete o valoare x numr natural. S se realizeze un program care va afia cele maiapropiate dou numere pare de numrul x.Exemplu: Pentru x=14 se va afia 12 i 16Pentru x=15 se va afia 14 i 16

    27. Se citete de la tastatur o valoare x natural (x> 1O). Dac valoarea citit are cifraunitilor egal cu cifra zecilor se vor afia primele dou numere naturale mai mari dectvaloarea x. n caz contrar se va afia cifra maxim dintre cifra zecilor i a unitilor.Exemplu:Pentru n=3455 se va afia 3456 3457Pentru n=3485 se va afia 8

    25. Realizai un program care determin suma a dou unghiuri exprimate n grade, minutei secunde.Exemplu:Pentru primul unghi de msur: 37 1022 (grade, minute secunde), pentru al doilea unghi de

    msur: 1052 15, se va afia 48237.

    26. Realizai un program care citind de Ia tastatur o valoare x (x

  • 2. Care dintre urmtoarele instruciuni permite afiarea, n ordine, a valorilor 10, 12, 14, 16,18,20?

    a)rpentru d ~ 8,18 executaLa scrie (d + 2);

    b)

    [

    e n t ru j ~ 10,20 executaraaca j ~d 2=0 atuncila. scr~e j;

    e)rpentru d ~ 0,5 executaLa scrie (10 + d*2);

    d)rpentru j ~ 0,10 executaLa scrie (j*2 + 10);

    3. Ce se va afia pe ecran n urma executrii instruciunilor?

    s~O;j ~ 11,15 executai mod 2=0 atunci s

    altfel ss-jmod2s+jmod2

    scrie s; stop.

    a) 3 b) 4 e) -4 d) -3

    4. Care este valoarea final pe care o poate lua contorul pentru ca n urma executriiintruciunii de mai jos s se afieze valoarea 4 ?nr~O;

    scrie nr;stop.

    ~ 10, ? ,-1 executamod 2=0 atunci

    ~ nr + 1

    a) 1 b) 2 e) 3 d) 4

    5. Care dintre variantele urmtoare reprezint un algoritm care verific n mod corect dacun numr este prim?

    a) citeste n {n>l}nr ~ O

    [

    e n t r u d ~ 1,n executaraaca n mod d = O atuncila.nr ~ nr + 1

    ta c a nr=O atunciscrie "Prim"altfelscrie "Nu este prim "e) citeste n {n>l}

    nr ~ O

    [

    e n t r u d ~ I,n executaraaca n mod d = O atuncila.nr ~ nr + 1

    ta c a ~r=2 a 7unciscr~e "Pr~m"altfelscrie "Nu este prim "29

  • 6. Care dintre urmtoarele instruciuni conduce la afiarea pe ecran a valorii 5?

    7. Care dintre urmtoarele secvene de instruciuni permit afiarea valorii 731?

    b} citeste n {n>l}nr - O

    [

    e n t ru d _ 2,n-1 executardaca n mod d = O atunciLanr - nr + 1

    ta c a nr=O atunciscrie "Prim"altfelscrie "Nu este prim "

    nr _ 1357; i _ 1;

    [.

    a t timp nr > O executai _ i + 1;nr _ nr div 10 ;

    nr _ O; i_O;cat timp nr O executai - i*10 + nr mod 10;nr - nr div 100

    scrie i.

    nr _ 13 7; i-O;

    [

    a t timp nr > O executai - i*10 + nr mod 10;nr _ nr div 10 ;

    scrie i

    e}

    d}

    e)

    d}

    d} citesten {n>l}nr _ O

    [

    e n t r u d _ 2,n-1 executardaca n div d = O atunciLa nr - nr + 1

    [

    d a c a nr=O atunciscrie "Prim"

    altfelscrie "Nu este prim

    30

    nr _ O; i-O;cat timp nr O executascrie nr mod 10nr - nr div 100 ;

    scrie i.

    nr - 1327; i_O;

    [

    a t . timp nr < O executa~aca nr mod 2 = 1 atunciL. i - i*10 + nr mod 10;nr _ nr div 10 ;

    scrie i.

    nr _ 1234; i _ 1;

    [

    a t timp nr > 9 executai - i + 1;nr - nr div 100 ;

    scrie i.

    a)

    b}

    b}

    a)

  • 8. Se consider urmtorul algoritm descris n pseudocod. Ce se va afia n urma executriiinstruciunilor (operatorul % reprezint restul la mprirea ntreag):

    intreg a, b;a - 10; b +- 2i a) *rcat timp a

  • 12. Care dintre urmtoarele secvene de instruciuni permite afiarea primei cifre a unuinumr?

    13. Se consider urmtorul algoritm descris n pseudocod. Ce se va afia n urma executriiinstruciunilor:

    14. Care este valoarea minim pe care o poate avea variabila x, astfel nct instruciunea cutest final urmtoare s efectueze o singur iteraie?

    Ilx>10

    div 10cand x>=lO;

    citeste x

    Ce p e t ax +- Xpana

    scrie x

    d)y ~ 1;

    [

    e p e t ascrie y ;y ~ y + 2;pana cand y>=10;

    e)citeste x Ilx>lOrepeta

    [

    d a c a xlOcepeta

    x ~ x div la ;pana cand x>lO;

    scrie x;

    b) citeste x Ilx>lOcepeta

    x ~ x div 10 ;. pana cand x 2*y;

    stop.

  • 15. Care dintre urmtoarele instruciuni execut un numr infinit de iteraii?

    x _ 31;

    [e~::a x mod 10 > O atuncilm X - X + 2pana cand x mod 10 O

    a)

    b)x _ 100;

    [

    ep e t araca x mod 10

    lm X - X + 1x - x div 10 ;pana cand x > 9

    < 5 atunci

    e)

    d)

    < 5 atunci

    1

    x - 32i

    [e~:~a x mod 10 > O atuncilm X - X + 2pana cand x mod 10 1

    16. Se consider urmtoarea secven repetitiv:

    i: =0; j: = ?while (i+j

  • 20. Ce se va afia n urma executrii urmtorului program?

    18. Se consider urmtoarea secven de program n care i, k, n sunt variabile de tip integerI int (varianta PascallC++), iar a, b, x sunt variabile de tip reali float(varianta PascallC++):

    19. Care dintre urmtoarele secvene de program afieaz pe ecran urmtorul ir de numere1 2 2 3 3 3 4. 4. 4. 4. 5 5 5 5 5 (variabilele i i) sunt de tip ntreg)?

    e) 2 5 3 4d) 2 5

    a) (a=x)b) (x>=a) II (x

  • 21. Cte caractere se vor afia n urma execuiei urmtoarei secvene de instruciuni?

    var n,i,j :integer ;

    beginn:=5;for i :=1 to n do begin

    write(i) ;for j:=1 to 3 do write(j);

    end;end.

    #includeint n, i, j;void main() {

    n=5;for (i=1; i

  • 24. Care dintre urmtoarele instruciuni permit afiarea unui numr de 15 caractere peecran?

    a)

    S:=Oifor i :=1 ta n div 2 do

    if n mod i=O then S:=S+iiif s=n then write( 'DA')

    else write('NU')i

    b)

    s:=l;for i :=2 ta n div 2 do

    if n mod i=O then S:=S+iiif s=n then write ('DA')

    else write('NU') i

    c)

    s:=O;for i :=1 ta n div 2 do

    if n div i=O then S:=S+iiif s=n then write('DA')

    else write ( 'NU' ) ;

    d)

    s:=lifor i :=1 ta n div 2 do

    if n mod i=O then S:=S+iiif s=n then write( 'DA')

    else write('NU') i

    a)for i :=1 ta 3 do

    for j:=l ta 5 do write('DA')

    b)for i :=1 ta 3 do begin

    write ('A') ifor j:=l ta 4 do

    write('B')iendi

    c)for i :=2 ta 4 do

    for j:=l ta 5 do write('A')

    d)for i :=1 ta 30 do

    if i mod 2=0 thenwrite( 'A')

    a)

    S=Oifor (i=li i

  • 25. Ce se va afia pe ecran n urma executrii urmtoarei secvene de instruciuni, tiind cpentru variabila x au fost citite valorile 23,25, 345, 892 i 3456 ?

    for i :=1 to 5 do beginreadln{x) ;if i mod 2=0 then

    write{x mod 10)else write{ x div 10 mod 10);

    end;

    for (i=l; i

  • 28. Care dintre urmtoarele instruciuni FOR permit afiarea corect a tuturor numerelorimpare mai mici sau egale cu numrul n?

    29. Care dintre urmtoarele instruciuni FOR permit afiarea unor caractere dispuse pe maimulte linii sub forma unui triunghi?

    a)

    for i ;= 1 to n do beginwrite(i); i:=i+2;

    end;

    b)

    for i ;= n downto 1 doif i mod 2=1 then write(i);

    c)

    for i = O to (n-1) div 2 dowrite(i*2+1);

    d)

    for i = 1 to n div 2 dowrite(i*2+1) ;

    a)for i := 1 to 5 do begin

    writeln;for j:=1 to i write(i);

    endi

    b)for i ;= 1 to 5 do

    for j:=1 to i beginwrite(i);writeln;

    endi

    c)for i ;= 1 to 5 do begin

    writelnifor j:=1 to i

    writeln(i) ;endi

    d)for i := 1 to 5 do begin

    write;for j:=1 to i begin

    writeln(i);end;

    a)

    for (i=1; i=1; i--)if (i%2==1) cout i;

    c)

    for (i=O; i

  • 33. Ce se va afia la executarea urmtoarelor instruciuni?

    31. Ce se va afia la executarea urmtoarelor instruciuni?

    30. Ce se va afia la executarea urmtoarelor instruciuni?

    d) 3 3

    d) 96 2

    d) 2 3 4 O

    d) 1 2 4 5 6

    b)a=12;while (a%10>0)caut a;a/=10i

    }

    a)x=l; k=2*x;while (k>O) {

    caut k+Xik/=l;

    }

    c ) 320 O

    x=32034;while (x%10>0) X/=10icaut x ' , (x/10) %10 i

    c ) 96.0 2.0

    X=3.00iy=2.00;while (x*y

  • 35. Ce se va afia la executarea urmtoarelor instruciuni?

    38. Ce se va afia la executarea urmtoarelor instruciuni?

    37. Ce se va afia la executarea urmtoarelor instruciuni?

    d) 24816

    d) 24816

    d) 1 2 3 6 7

    d)O 10 2 8 4 6 6 4

    c ) 2 4 8 16

    a=2;do {printf("%2d", a);a*=a;

    } while (a10;

    a) 2 4 8 6

    p:=l;repeat

    p:=p*2;write(p) ;

    until p mod 10=6;

    36. Ce se va afia la executarea urmtoarelor instruciuni?

    a) 2 8 4 6 6 4

    a:=0;b:=10;repeat

    a:=a+2; b:=b-2;write(a, , ',b,' ');

    until a>b;

    end;

    d)a:=l;while a mod 10 = 5 do begin

    write1n(a) ;write(a div 10);

    c)x:=231;while x5 do begin

    writeln(x) ;x:=x * (x mod 10);

    end;

  • 39. Indicai care dintre urmtoarele instruciuni execut un numr infinit de iteraii.

    a)

    j:=1234;i:=10;repeat

    write(j) ;j:= i div 10;

    until j>10;

    b)

    a:=2;repeat

    a:=a*2;writeln (a) ;

    until a>20;

    c)

    a:=2;repeat

    writeln(ai';if a

  • 2. Se consider urmtorul algoritm reprezentat n pseudocod:

    a) Ce se va afia pentru n=3?b) De cte ori contorul i va lua valoarean?c) De cte ori contorul j va lua valoarean?d) Realizai programul Pascal/C/C++

    corespunztor algoritmului prezentat.e) Realizai un enun de problem a creirezolvare este chiar algoritmul alturat

    a) Ce se va afia pentru irul de valori 1,2,3 ?b) Dai un exemplu de set de date deintrare pentru care se vor afia trei valorimultipli de 3.c) De cte ori se efectueaz operaia deatribuire s +- S + x ?d) Realizai programul Pascal/C/C++

    corespunztor algoritmului prezentat.

    a) Ce se va afia pentru irul de valori 6,5,4,2, l?b) Dai un exemplu de set de date deintrare pentru care se vor afia cincivalori consecutive.c) De cte ori se efectueaz operaia deatribuire s +- S + x ?d) Realizai programul Pascal/C/C++

    corespunztor algoritmului prezentat.

    a) Ce se va afia pentru n=4 i irul devalori 3, 5, 6,10 ?b) Dai un exemplu de set de date deintrare pentru care se va afia valoarea O.c) Dai un exemplu de set de date deintrare pentru care se va afia suma celorn numere citite.d) Realizai programul Pascal/C/C++

    corespunztor algoritmului prezentat.

    42

    j3 executa

    O;2 executa

    intreg i, j, s, Xpentru i _ 1, 5 executaciteste X; s O;rpentru j - 1, i executa

    4. s - s + X;scrie s;

    intreg X, s, i,pentru i _ 1,citeste X; srpentru j - 1,

    4. s - s + X;scrie s;

    intreg n, x, nr, i ;citeste nnr _ O;

    [

    ent ru i - 1, n executaciteste X;

    raaca (x2*n) atuncil. nr - nr + X;scrie nr;stop.

    intreg i, j, n ;citeste n;

    lpent ru i - 1, n executarpentru j - 1, n executa4. scrie (i-1)*n + j;

    stop.

    4. Se consider urmtorul algoritm reprezentat n pseudocod:

    5. Se consider urmtorul algoritm reprezentat n pseudocod:

    3. Se consider urmtorul algoritm reprezentat n pseudocod:

  • 6. Se consider urmtorul algoritm reprezentat n pseudocod:

    a) Ce se va afia pentru irul de valori 2465743 O?b) Dai un exemplu de ir de valoripentru care se afieaz valoarea O.c) Dai un exemplu de ir de valoripentru care valoarea afiat va fi egalcu numrul de numere introdus.d) Realizai programul Pascal/C/C++

    corespunztor algoritmului prezentat.

    a) Ce se va afia pentru x=2?b) Ce valori poate lua la intrare x pentruca la final s se afieze 10?c) Dai un exemplu de valoare pentru xastfel nct la final s nu fie afiat ovaloare divizibil cu 10.d) Realizai programul Pascal/C/C++

    corespunztor algoritmului prezentat.

    a) Ce se va afia la introducerea iruluide valori 2 4 5 7 4 O?b) Dai un exemplu de valori pentrudatele de intrare astfel nct algoritmul

    s afieze valoarea O.c) Creai un enun de problem a creirezolvare este algoritmul prezentat.d) Realizai programul Pascal/C/C++

    corespunztor algoritmului prezentat.

    a) Ce se va afia dac x=7? Dar pentrux=13 ?b) Dai un exemplu de valoare x astfelnct s se afieze valoarea 1.c) Creai un enun de problem a creirezolvare este algoritmul prezentat.d) Realizai programul Pascal/C/C++

    corespunztor algoritmului prezentat.

    43

    2 atunci

    atunci

    YiO

    O executa

    stop.

    x ... Yi

    intreg x, nriciteste Xinr .... O)

    [

    a t timp" X i O executaraaca x mod 2=1 atuncila nr ... nr + lix ... xt1iv 2i

    scrie nri stop.

    intreg XI nr,citeste Xi nrcat timp X i

    citeste YiFca X mod 2=y modla nr ... nr + li

    intreg a, nriciteste ainr ... Oi

    [

    a t timp a i O executaraaca a mod 2=0 atuncila nr ... nr + liciteste ai

    scrie nri stop.

    intreg x, nriciteste Xi nr ...0

    [;:: ~ ~d 5"0la nr .... nr + lipana cand nr = 2

    scrie Xistop.

    9. Se consider urmtorul algoritm reprezentat n pseudocod:

    8. Se consider urmtorul algoritm reprezentat n pseudocod:

    7. Se consider urmtorul algoritm reprezentat n pseudocod:

  • 10. Se consider urmtorul algoritm reprezentat n pseudocod:

    a) Ce se va afia pentru irul de valori 465 11 15?b) Dai un exemplu de ir de valoripentru care se afieaz valoarea O.c) Ce valoare trebuie s aib la intrare xpentru ca structura repet s efectueze 3

    iteraii?d) Realizai programul Pascal/C/C++

    corespunztor algoritmului prezentat.

    a) Ce valori vor fi afiate dac se vorintroduce, n ordine, numerele:2,3,4,5, O;b) Determinai un set de date de intrarepentru care ultimele dou numere afiates fie egale.c) Modificai algoritmul, fr s

    introducei noi variabile sau instruciuni,astfel nct s se afieze succesiv media

    aritmetic a numerelor citite.

    a) Ce valoare va fi afiat pentru n= 5 inumerele:222, 2043, 29, 2, 20035.b) Determinai un set de date de intrarepentru care valoarea afiat va fi egalcu suma numerelor citite?c) Realizai programul Pascal/C/C++corespunztor algoritmului prezentat.d) Rescriei instruciunile repetitive alealgoritmului folosind numai

    instruciunea condiionat posterior.

    a) Ce se va afia pentru valoarea n=4?b) Scriei un nou algoritm care va afiape ecran imaginea simetric("rsturnat"), fa de axa orizontal, acelei descrise de algoritm.c) Realizai programul Pascal/C/C++

    corespunztor algoritmului prezentat.d) Scriei un nou algoritm care va afiaimaginea simetric fa de axa vertical.

    atunci

    executa

    n-i+1/n executa

    S ~ s + x*nr;

    44

    x ~ x - lipana cand x=O i

    scrie nri stop.

    intreg x, nriciteste Xi nr ~ O irepeta

    citeste Yiraaca (y>1)and(y 9 executanr ~ nr * 10;x ~ [x / 10];

    intreg X, p, iii .... Oi P .... 1;citeste Xi

    [

    a t timp (xi'O)i ~ i + 1;P .... P * x;citeste Xiscrie Pi

    scrie iistop.

    intreg n,i,jiciteste ni

    entru i ~ 1, n executarpentru j 1, n-i executat.. scrie \ 'ir n t ru jls scrie ,* I iscrie salt la linie noua

    12. Se consider urmtorul algoritm:

    13. Se consider urmtorul algoritm:

    11. Se consider urmtorul algoritm:

  • 14. Se consider urmtorul algoritm:

    intreg n,x,nr,j; logic ok;citeste n :nr ~ O; x ~ n; ok ~ True;

    lr e p e t anr ~ nr*lO + n mod 10n ~ [n / 10];pana cand n=O;r~entru j ~ 2, [~nr] executal.G:aca nr%j=O atunci ok~False

    ta c a ok atunciscrie nr/x {cu 2 zecimale}altfelscrie x/nr {cu 2 zecimale}

    a) Ce valoare va fi afiat pentru n= 31?b) Determinai o valoare a lui n pentrucare se obine o egalitate ntre valoareadatei de ieire i cea de intrare.c) Realizai programul PascaI/C/C++corespunztor algoritmului prezentat.d) Rescriei instruciunile repetitive alealgoritmului folosind numai

    instruciunea condiionat anterior.e) Determinai dou valori ale datei deintrare cu proprietatea: ambele vorconduce la afiarea valorii 1.00, dar dinconsiderente diferite.

    45

    16. Se consider urmtorul algoritm:

    a) Ce valori vor fi afiate pentru n= 5 inumerele: 322,3043,39,9, 30035 ?b) Pentru n=4, determinai un set de datede intrare astfel nct una din valorile

    afiate s fie -1?c) Realizai programul Pascal/C/C++

    corespunztor algoritmului prezentat.d) Rescriei algoritmul astfel nct s fie

    afiat numrul de apariii al celei maimari cifre a unitilor numerelorintroduse.

    a) Ce valori vor fi afiate pentru n= !O?b) Determinai o valoare pentru care nuse va face nici o afiare.c) Detenninai o valoare pentru care vorfi afiate trei perechi de numere.d) Realizai programul Pascal/C/C++

    corespunztoralgoritmului prezentat.e) Modificai algoritmul fr a introducenoi instruciuni sau variabile astfel ncto pereche de numere s nu fie afiat de

    dou ori.n Introducei o instruciune alternativcu scopul de a elimina operaiile inutileale algoritmului.

    intreg n ,i ,j; logic ok;citeste r.;pentru i ~ 2, n-2 executa

    ok ~ True;~entru j ~ 2, [~i] executal.~a i % j=O atunci ok~False

    ~e.n..... tru j ~ 2, [~n-i]executaraaca (n-i) mod j = O atuncil.ok ~ False;G:aca ok atunci scrie i, n-i;

    intreg n, i, max1, max2, x, c;citeste n;max1 ~ -1; max2 ~ -1;

    pentru i ~ 1, n executaciteste x; c ~ x mod 10;

    aca c > max1 atuncimax2 ~ maxl; maxl ~ c;

    altfel~aca (c>max2)and(c~max1)t:tunci max2 ~ C;

    15. Se consider urmtorul algoritm:

  • 2. S se determine cel mai mic numr care se poate forma cu cifrele unui numr natural cititde la tastatur. Exemplu: pentru nr=30027 se va afia 20037

    Solutie: Algoritmul realizeaz numrarea apariiilor fiecrei cifre n ordine descresctoarede la 9 la O i afiarea succesiv a acestora.

    #include long nr,x,i,w,apO,ap,c;void main() {cinnr; w=O;for (c=O; c=O; c--) {x=nr;ap=O;do {if (x%lO==c) ap++;x=x/10;

    } while (x>O);for (i=l; i

  • repeatif x mod 10 c then

    inc (ap) ;if x mod 10 O then

    inc (apO) ;x:=x div 10;

    until x=O;if (cO)and(ap>O) then beginif w=O then beginwrite(c) ;for i:=l to apO do

    write(O) ;dec(ap) ;inc(w);

    end;for i:=l to ap do write(c);

    end;end;end.

    x=nr; ap=O; apO=O;do {if (x%10==c) ap++;if (x%10==0) apO++;x=x/10;

    } while (x>O);if (ci=O && ap) {if (iw) {caut c;for (i=l; i5*(p/10)) x+=p-x%p;

    elae X-=X%Pinr=(float)x+f;printf("%.2f\n",nr) ;

    4. Realizai un program care primeste un numr real pozitiv i i trunchiaz parteafracionarastfel nct cifrele rmase formeaz un ir monoton.Exemplu:numrul 3.563289 devine 3.56.

    Solutie: Algoritmul realizeaz o nmulire succesiv a numrului cu 10 ct timp cifra zecilori cifra unitiilor curente menin monotonia iniial. Variabila okl codific monotoniainiial, iar ok2 monotonia curent. n final, numrul este mprit la 10 de tot attea ori decte ori a fost nmulit.

    47

  • Solutie: Numerele vor fi descompuse succesiv n factori primi fcndu-se, dup caz,actualizarea valorii cu numrmaxim de factori distinci.

    5. Se consider un ir de n numere naturale. S se afieze numrul din ir a cruidescompunere conine un numr maxim de factori primi distinci.Exemplu: pentru n=4 i numerele 23 21 6071 se va afia 60 (conine trei factori primidistinci 22*3*5)

    }}cout maxni

    }

    #include long n,maxf,maxn,nrf,xx,f,i,Xiint Okivoid main() {cin ni maxf=Oifor(i=li i=f);if (nrf>maxf)

    maxfenr f :maxn=xx;

    }X=y/10ifor (k=li k (y/10%10) iok2=ok1iwhile (ok1==ok2) {

    i++ix*=10.0i y=(long) (x*10.0) iok2=(y%10) > (y/10%10) i

    48

    1 var x:reali2 i,k,y:longinti3 ok1,ok2:booleani

    beginreadln(x) ix:=X*10i i:=li

    y:=trunc(x*10)iok1:=y mod 10>y div 10 mod

    10iok2:=ok1iwhile ok1=ok2 do begin

    12 inc (i) i13 x:=X*10i y:=trunc(x*10) i14 ok2:=y mod 10>y div 10 mod 10i15 endi16 x:=y div 10i17 for k:=l to i do x:=X/10i18 writeln(x:O:i)19 end.20

    1 var2 n,maxf,maxn,nrf:longinti3 xx,f,i,x:longinti4 ok:booleani5 begin6 readln(n)i maxf:=Oi7 for i:=l to n do begin8 nrf:=Oi f:=2i9 readln(x)i XX:=Xi10 repeat11 ok:=falsei12 while X mod f=O do begin13 x:=x div fi14 ok:=truei15 endi16 inc(f) i17 if ok then inc(nrf)i18 until nmaxf then begin20 maxf:=nrfi21 maxn: =xx i22 endi23 endi24 writeln(maxn)i25 end.

  • 6. Se consider un ir de n numere naturale. S se afieze fracia subunitar ireductibilcare se poate forma din numrul minim i numrul maxim din ir.Exemplu: pentru n=4 i numerele 3 2 5 8 se va afia 1/4.

    Solutie: Se determin minimul i maximul din ir. Pentru a afia fracia sub formireductibil, vom mpri numitorul i numrtorul la c.m.m.d.c.

    var i,min,max,x,y,n:longint;beginreadln(n) ;readln(min) ;max:=min;for i:=l to n-l do beginreadln(x) ;if xmax then max:=x;

    end;x: =mi,n;y: =max;while,xy doif x>y then x:=x-yelse y:=y-x;

    write(min div x, '/' ,max div x)end. "

    #include long i,min,max,x,y,n;void main() {

    cin n min; max=min;for (i=l;iy) x-=y;

    else y-=x;cout min/y "/" max/y;

    7. Se citete un numr natural de cel mult 8 cifre. S se formeze un alt numr din cifrelesituate pe poziii impare (de la stnga spre dreapta).Exemplu: pentru numrul 1234 se va afia 13.

    Solutie: Dup citirea numrului n se va forma oglinditul acestuia notat cu x (cu cifrele de ladreapta spre stnga). n final, numrul cutat se va forma din cifrele lui x situate pe poziiiimpare, ncepnd cu cifra unitiilor,

    var n,x:longint;beginreadln(n); x:=o;repeat

    x:=x*lO+n mod 10n:=n div 10;

    until n=O;repeat

    n:=n*lO+ x mod 10;x:=x div 100;

    until x=O;write(n) ;end.

    #include long n,x;void main() {cin n; x=O;do {

    x=x*lO + n%lO;n=n/10;

    } while (n!=O);do {

    n=n*10 + x%10;x=x/100;

    } while (x!=O);caut n;

    8. Se consider un numr ntreg citit de la tastatur. S se afieze cel mai apropiat numrprim fa de acesta.Exemplu pentru n=22 se va afia numrul 23, iar pentru numrul 20 se va afia 19.

    49

  • 50

    Solutie: Se genereaz perechi de numere (i,j) verificndu-se dac suma numerelor dintre eleeste chiar n, adic (j+i)*(j-i+ 1)12=n.

    #include long i,j,k,nivoid main() {

    cin nifor (i=li i

  • Solutie: Se determin succesiv cifrele semnificative ale numerelor din ir prin mpriri la10 pn cnd se ajunge la valori mai mici sau egale cu 9. Cu aceste cifre se formeaz unnou numr care se verific dac este palindrom.

    var nr,nr1,nr2,n,x,i:longint;beginreadln(n); nr:=O;for i:=l to n do beginreadln(x) ;while x>9 do x:=x div 10;

    nr:=nr*10+x;end;nr1:=nr; nr2:=0;while nr10 do begin

    nr2:=nr2*10+nr1 mod 10;nr1:=nr1 div 10;

    end;if nr2=nr then

    writeln(nr, 'este palindrom')else

    writeln(nr, 'nu e palindrom')end.

    #include long nr,nr1,nr2,n,x,i;void main() {

    cin n; nr=O;for (i=l; i9) x/=10;nr=nr*10+x;

    }nr1=nr; nr2=Oiwhile (nr1!=0) {

    nr2=nr2*10 + nr1%10;nr1/=10i

    }if (nr2==nr)coutnr"este palindrom" i

    elsecoutnr"nu e palindrom"i

    11. Se consider un numr natural de cel mult 8 cifre. S se scrie acest numr ca sumformat doar din termeni egali cu 3 i 5. n situaia n care nu exist soluie se va afiamesajul "IMPOSIBIL".Exemplu: pentru n=7 se va afia IMPOSIBIL iar pentru n=16 se va afia 5+5+3+3;

    ~: algoritmul de rezolvare al problemei determin numrul termenilor egali cu 5 astfelnct restul s fie divizibil cu 3. n caz contrar problema nu admite soluie.

    var x,n5,n3,i:longintibeginread(x)i n5:=Oi n3:=0;while (X mod 30)and(x>=5)do

    begininc (n5) iX:=X-5i

    endin3:=x div 3;if x mod 30 then

    write('IMPOSIBIL')else beginfor i:=l to n5 do

    write(5, '+');for i:=l to n3 do

    write(3, '+') iwrite(#8,' 'li

    endiend.

    #include long x,i,n3,n5ivoid main() {

    cin Xi n5=Oi n3=Oiwhile (x%3 && x>=5) {

    n5++iX-=5i

    }n3=x/3iif (x%3)

    cout "IMPOSIBIL"ielse {for (i=l; i

  • Solutie: problema admite soluie dac numrul n poate fi scris ca sum de numere pare sauca sum de numere impare deci trebuie s respecte una din urmtoarele dou forme: Il=k*ksau n=k*k+k;

    Pentru n=5 se va afia IMPOSIBIL.Cerina problemei este ca primul rnd afiat s conin unul sau cel mult dou caractere, iarfiecare linie s difere de precedenta prin exact dou caractere.

    Cazul a)n= 2+4+6+...+2*k= 2*(l+2+3+...+k)= 2*k* (k+l)I2= k* (k+I)= k*k+k, unde k vareprezenta numrul de linii pe care se va face afiarea.

    Pentru n=I2 se va afia**

    ****

    ******

    #include #include long n,k,i,j,l,ll,ok;void main() {

    cin n;k=(int} sqrt(n); ok=O;if (k*k==n) {

    1=k-1; 11=1;ok=1;

    }else if (k*k+k==n)

    1=k-1; 11=2;ok=1;

    }if (ok) {

    for (i=1; i

  • 1.2.4 Probleme propuse

    1. Realizai un program care, pentru un numr natural n calculeaz produsul primelor nnumere naturale pare. Algoritmul va fi reprezentat n pseudocod.Exemplu: Pentru 11=2 se va afia 8 adic 2*4

    2. Realizai un program care citete de la tastatur n numere naturale i determin mediaaritmetic a numerelor prime.Exemplu: Pentru 11=3 i numerele 4, 5 i 7 se va afia 6.00

    3. Citind de la tastatur n numere naturale s se calculeze produsul celor care sunt prime cu11.Exemplu: Pentru n=3 i numerele 4, 5 i 6 se va afia 20

    4. Pentru un numr Il s se afieze ultimii p divizorii proprii ai lui(diferii de i de elnsui). Dac numrul n are mai puin de p divizori se vor afia toi.Exemplu: Pentru n=24 i p=2 se va afia 8 12

    5. Realizai un program care calculeaz media aritmetic a tuturor numerelor palindrom dinintervalul [a.b].Exemplu: PentruneS i b=13 se va afia 9.33

    6. Realizai un program care permite afiarea primelor n puteri ale lui 2 care aparinintervalului [x,y).Exemplu: Pentru n=2 i intervalul [5,40],se va afia 8 16

    7. Realizai un program care permite afiarea valorilor urmtoarelor expresii, n care 11 esteun numr natural strict mai mic ca 9, citit de la tastatur.El=12 + 23 + 34 +...+ n(n+l)E2=1+12+123+1234+...+ 12...11.

    8. Se consider un numr 11 citit de la tastatur. Realizai un program care s permitafiarea pe ecran a unor caractere dispuse ca n exemplul urmtor:Exemplu: pentru 11 = 5 se va afia:

    a) b) e) d)* * * * * * * * * * * 1* * * * * * * * * * * 1 2* * * * * * * * * * * 1 2 3* * * * * * * * * * * 1 2 3 4* * * * * * * * * * * 1 2 3 4 5

    9. Scriei un program care citete de la tastatur 11 numere naturale nenule32000) iafieaz numrul format prin alipirea cifrelor numrului maxim cu cel minim (n aceastordine).Exemplu:Pentru 11=3 i numerele 63, 153 i 62 se va afia 15362

    53

  • 10. Cunoscndu-se limitele ntregi a, b ale unui interval i un ir de n valori, s se realizezeun program care determin media aritmetic a numerelor citite, pentru care suma cifreloraparine intervalului [a,b].Exemplu: Pentru a=2, b=10, n=5 i valorile 11,39,32,80,84 se va afia 41.00.

    11. S se realizeze un program care afieaz pe ecran toate modalitile de scriere a valorii8 ca sum de trei termeni r.enuli distinci.Exemplu : Pentru 8=8 se va afia:8=1 + 2 + 58=1 + 3 + 4

    12. Se citete de la tastatur un ir de n numere. Realizai un program care verific dacnumrul format din cifrele unitilor acestora este un numr prim.Exemplu: Pentru n=4 i numerele 237 23 453 11 se va afia: Numrul 7331 este prim.

    13. Se citesc de la tastatur n numere naturale. Afiai numrul de triplete de valori cititeconsecutiv care pot reprezenta laturile unui triunghi.Exemplu: Pentru n=5 i valorile: 10,3,4,5,7 se va afia 2 (3, 4, 5 i 4,5,7)

    14. S se afieze toate triplete le de numere pitagoricemai mici dect un numr n dat.

    15. Se citesc de la tastatur preurile a n obiecte achiziionate de o persoan. Valorile cititesunt distincte. S se afieze preurile celor mai scumpe dou obiecte cumprate.Exemplu: Pentru n=5 i valorile 18000, 230, 190000, 2400, i 2000000 se va afia: 190000i 2000000

    16. Se cunosc notele a n elevi la un extemporal. S se afieze care este nota maxim la testi de ctre ci elevi a fost obinut.Exemplu:Pentru n=7 i notele: 4, 6, 4,8,8,5,8, se va afia: 'Nota 8 obinuta de 3 elevi'.

    17. Pentru fiecare elev din cei n nscrii ntr-o clas se cunosc cele dou note obinute laeducaie fizic. Realizai un program care determin media pe clas la educaie fizic,numrul elevilor corigeni i media maxim obinut n clas. Notele obinute de un elevvor fi citite succesiv.Exemplu:Pentru n=3 i notele: 8,6,8, 10,8,8 se va afia:'Media clasei este 8, Nici un elev corigent, Media maxima este 9'

    18. Citind de la tastaur n numere naturale, s se calculeze media armonic a lor. Aceastmedie se calculeaz dup formula:

    12

    1 1 1-+-+...+--nrl nr2 nrN

    19. Se consider un ir de n perechi de numere naturale care reprezint limitele ntregi aleunor intervale. Citirea intervalelor se face n ordine cresctoare a limitelor inferioare aleintervalelor. Realizai un program care afieaz:

    54

  • numrul de intervale disjuncte cu primul interval citit.numrul de intervale incluse n primul interval citit.

    Exemplu: Pentru n=5 i intervalele: (2,6) (3,7) (3,5) (10,12) (15,29) se va afia: 2 1 (douintervale disjuncte cu (2,6) i un interval inclus n (2,6))

    20. S se afieze cele mai mari dou numere prime strict mai mici dect numrul natural n(n>4).Exemplu: Pentru n=19 se va afia 13 i 17

    21. Se consider un numr n citit de la tastatur. S se realizeze un program care afieaz peecran cifrele pare ale acestuia n ordinea invers a apariiei, separate prin cte o virgul.Exemplu Pentru n=1234 se va afia 4,2

    22. Se consider un numr natural n. S se formeze dou noi numere, unul format dincifrele pare ale lui n, cellat format din cifrele impare.Exemplu: Pentru n=13854 se va afia 84 i 135

    23. Se consider un numr natural n (n> 1000). S se afieze cele dou numere formate prin'njumtirea' scrierii zecimale a lui n.Exemplu : Pentr~,n=12345 se va afia 12 i 345. Pentru 11=182345 se va afia 182 i 345.

    24. Se consider un numr natural n (n> 100). S se afieze cifrele lui situate pe poziiiimpare ncepnd cu cifra unitilor. Exemplu: Pentru n=1235 se va afia 52

    25. Se consider un numr n natural (n> 100). S se afieze suma primelor dou cifre ale luin.

    Exemplu: Pentru 11=1235 se va afia 3

    26. Se consider un numr Il natural. S se afieze cel mai mic multiplu par al numrulformat din prima i ultima cifr a acestuia.ExempLu: Pentru n=1235 se va afia 30

    27. Se consider un numr natural n (n> 1000). S se afieze numrul format din cifrele pareale lui n situate pe poziii impare ncepnd cu prima cifr a sa.Exemplu: Pentru 11=724582 se va afia 48

    28. Se consider un numr natural n (Il> 1000). S se afieze numrul de apariii a cifreiunitilor n scrierea lui Il.Exemplu: Pentru 11=15535 se va afia 3 (5 apare de 3 ori)

    29. Se consider un numr natural Il (n>lOOO). S se afieze cea mai mare cifr care aparen scrierea lui n i numrul de apariii al ei.Exemplu: Pentru 11=19539 se va afia "9 apare de 2 ori"

    30. S se afieze toate numerele pare ncepnd cu valoarea 2, ct timp suma celor afiate nueste mai mare dect numrul n natural citit.Exemplu: n=15 se va afia 2 4 6

    55

  • 31. Se citete de la tastatur un numr n impar. S se afieze primele n perechi de numereconsecutive a cror sum este divizibil cu numrul n.Exemplu: Pentru n=3 se va afia:

    124578

    32. Se consider un numr n. Dac numrul este palindrom se va afia numrul format dincifra zecilor i cea a unitilor, n caz contrar se va afia prima cifra a sa. Un numr estepalindrom dac este egal cu numrul obinut cu cifrele citite de la dreapta spre stnga.Exemplu:Pentru n=31413 se va afia numrul 13 ;Pentru numrul 3214 se va afia numrul 3

    33. Realizai un program care citind de la tastatur un numr real, afieaz succesiv cte unnumr mai mic cu 2 dect ultimul afiat, ncepnd cu valoarea citit. Lista continu ct timpvalorile afiate sunt pozitive.Exemplu: Pentru n=7.01 se va afia: 7.01 5.01 3.01 1.01

    34. Se citesc de la tastatur dou numere naturale n i m. Realizai un program care afieazo list de numere impare consecutive, ct timp diferena dintre primul i ultimul numr din

    list nu este mai mare dect m, Lista va ncepe cu primul numr impar mai mare dect n.Exemplu:Pentru n=7 i m=50 se va afia: 9 Il 13.....59

    35. Realizai un program care, citind de la tastatur un numr n, afieaz puterile lui n maimici dect 30000.

    36. Realizai un program care afieaz cifrele unui numr natural x n urma conversiei salen baza b (bs9).Exemplu:Pentru x=128 i b=7 se va afia: 242.

    37. Se citesc de la tastatur dou numere. Realizai un program care l afieaz pe cel careare un numr mai mare de cifre de 1 n scrierea n baza 2.

    38. Se introduc de la tastatur numere, ct timp ultimul citit nu este egal cu sumaprecendentelor dou. S se calculeze suma numerelor citite.Exemplu: Pentru valorile 3, 5, 2, 4, 6 se va afia 20

    39. Se citete de la tastatur un numr n. S se afieze pe o singur linie primele n numereprime.Exemplu: Pentru n=4 se va afia 2, 3, 5, 7

    40. Se consider un numr n. Dac numrul format din primele lui dou cifre este perfect,atunci se va afia numrul total de cifre al lui n, n caz contrar se va afia numrul de cifrepare pe care le conine.

    56

  • Un numr este perfect dac suma divizorilor si, strict mai mici, este egal cu numrulrespectiv: 6=1+2+3.Exemplu:Pentru n=28413 se va afia numrul 5 ;Pentru numrul 4914 se va afia numrul 2.

    41. Se citete de la tastatur, un ir de n numere naturale. Realizai un program pentrudeterminarea numrului din ir cu cei mai muli divizori.

    42. Se citete de la tastatur, un ir de n numere reale. Realizai un program care determinnumrul de apariii al celui mai mare numr prim din ir.

    43. Se citete de la tastatur, un ir de Il numere reale. Realizai un program care determinsuma maxim a dou numere din ir. Exemplu: Pentru n=4 i valorile 8, 3, 8 5 se va afia16.

    44. Se citete de la tastatur, un ir de Il numere naturale. Realizai un program caredetermin numrul total de cifre al tuturor numerelor prime din ir.

    45. Se consider un numr natural Il. S se realizeze un program pentru determinareanumrului perechilor (a,b) de numere naturale (a,b ::;Il) ce au proprietatea c a i b suntprime ntre ele.

    46. Se consider un numr natural n, (lOD::; Il), format din maxim 9 cifre. Realizai unprogram care verific dac numrul Il este "bine ordonat". Numerele "bine ordonate" suntcele care au proprietatea c cifrele lor apar fie n ordine cresctoare, fie descresctoare.

    47. S se alctuiasc algoritmul care permite afiarea factorilor primi i a puterilor la careacetia apar n descompunerea unui numr natural Il, dat.

    48. Se introduc de la tastatur n numere ntregi. Afiai pe ecran cte dintre ele au sumacifrelor egal cu numrul de ordine avut la citire.Exemplu:Pentru 1l=5 i numerele 2, 101,23,3001,234 pe ecran se va afia 2 (101 i 3001).

    49. Se consider trei numere naturale Il, a i b (a::;b:9I). S se creeze un program carepermite afiarea factorilor primi ce aparin intervalului (a, b) i a puterilor la care acetiaapar n descompunerea lui Il.Exemplu: pentru 1l=36, a= 1, b= 10 se va afia:2 exponent 23 exponent 2

    50. Se citete de la tastatur un ir de k intervale, pentru fiecare fiind introduse cele doulimite [a.b] unde a

  • 51. Creai un program care s simuleze urmtorul joc: doi parteneri introduc alternativ cteun caracter de la tastatur. Pierde acel juctor care a introdus un caracter identic cu ultimulintrodus de el sau de partenerul su.

    52. Afiai primele n perechi de numere prime consecutive pe mulimea numerelor impare.Exemplu: pentru n=3 se va afia (3,5), (5,7) (11,13).53. Se dau dou numere naturale nenule a i n cu cel mult 10 cifre. Se cere s se afiezeultima cifr a puterii ati.Exemplu: Pentru a= 1222223 i n= 180 se va afia 1.

    54. Pentru n numr natural nenul cu cel mult 5 cifre se cere s se determine n cte cifre deOse termin produsul 12 .. .-n.Exemplu: pentru n=16 se va afia 3

    55. Afiai toate numerele naturale nenule de la 1 la Il n ordine cresctoare, cte Il pe unrnd (separate prin cte un spaiu).Exemplu: Pentru n=4 se va afia1234567891011 1213 1415 16

    56. Se dau dou numere naturale nenule cu cel mult 10 cifre. Se cere s se afieze cifrelecomune.

    Exemplu: pentru numerele 12323234 i 657284 se va afia 24.

    57. Fie dou cifre zecimale a i b. De la tastatur se va introduce un ir de numere naturale,citirea terrninndu-se cu o dat cu introducerea valorii O(care nu va face parte din ir). Sse afieze numrul de valori citite cu proprietatea c au n scrierea zecimal succesiunea decifre ab.Exemplu:Pentru a=2, b=4 i valorile 2342, 420, 8248, 15264, 24245, Ose va afia 2

    58. Fiind dat un numr natural de maxim 9 cifre, s de determine ntre care din cifre sepoate plasa operatorul de nmulire astfel nct produsul celor dou numere obinute s fiemaxim.Exemplu:Pentru valoarea 3203 se va afia 320*3 = 960.

    59. Se citesc de la tastatur mai multe iruri de numere ntregi, fiecare terrninndu-se cuvaloarea O. Operaia de citire se ncheie la introducerea valorii O de dou ori consecutiv.

    Determinai cel mai mare numr prim din fiecare ir.

    60. S se afieze primele n numere naturale care au cifra de control egal cu cifra x citit dela tastatur. Cifra de control a unui numr se obine prin nsumarea cifrelor din scriereazecimal a numrului, apoi se nsumeaz cifrele acestei sume, .a.m.d pn cnd sumaobinut este exprimat printr-o cifr. De exemplu numrul 28997 are cifra de control 9(2+8+9+9+7=45,4+5= 9).Exemplu: Pentru n=2 i x=3 se va afia: 3, 12

    58

  • Exemplu: n=lO k=20.

    Solutie: Se vor simula micrile copilului respectnd regulile impuse n enun.

    1.3.1 Probleme rezolvate

    poz;

    intreg n, k;citeste n, k;poz +- O;sens +- lipentru i +- 1, k exeouta

    poz +- poz + senSidaoa (i mod 6=0) sau (i mod 10=7) atunci

    sens +- sens * -1;daoa (pozn) atunoi

    scrie O; stop.

    Probleme de concurs ce proceseaz date simple

    S se determine care este copacul n spatele cruia se ascunde copilul la momentulk

  • 60

    Numrul n se va citi de la tastatur i va avea maxim 6 cifre.

    DANU

    (n mod 3=1) atunci

    3)+1;

    sau

    intreg n, i;citeste n;

    aca n < 9 atunci scrie Oaltfel

    aca n = 9 atunci scrie 8altfel

    scrie 72rpentru i ~ 1, n-10 executaLa scrie O

    intreg n;citeste n;

    ta c a (n mod 3=0)scrie 2*(n aiv 3)altfelscrie 2*(n divstop.

    1

    Solutie:Se caut o regul pe care o respect aezarea numerelor divizibile cu 3 n irul dat, i seobserv c atunci cnd restul lui n este O sau 1 rspunsul este 2*(n div 3), iar cnd restuleste 2 rspunsul este 2*(n div 3)+1.

    Solutie: Observaia de baz este c ultimele 9 cifre, care ne intereseaz, ale unui ptrat suntinfluenate doar de ultimele nou cifre ale numrului ce va fi ridicat la ptrat. Astfel, dup osimpla cutare, pentru n=9 exist 8 numere care ridicate la ptrat se termin n 987654321(111111111, 888888889, etc.) Astfel pentru n>9 rspunsul va fi 8*9*100 10 (prima cifrtrebuie s fie diferit de O).

    3. (987654321 - **) Pentru un numr n dat, trebuie s realizai un program care afieazcte numere de n cifre din baza 10 au proprietatea c ptratul lor se termin n secvena decifre: 987654321.

    Solutie: Se factorizeaz fiecare numr citit i se numr ci factori primi are i se afieazmesajul corespunztor.

    4. (Numere aproape prime - **) Definim un numr "aproape prim" un ntreg pozitiv carepoate fi scris ca produsul a dou numere prime. Dndu-se o secven de n

  • ~aca nr > 1 atunci c ~ c + 1;

    rdaca c = 2 atunci scrie "DA"l:ltfel scrie "NU"

    6789

    101112131415161718

    intreg n, it nr, Ciciteste n;pentru i ~ 1, n executa

    citeste nr; c ~ O;pentru d ~ 2, ~nr executa

    [

    a c a nr mod d = O atuncic ~ c + 1;rcat_tiIllp nr mod d = OL. nr ~ nr div d : executa

    S. (Trasarea liniilor - ***) Se consider o foaie de hrtie pe care Gigel va desena linii.Trasnd o singur linie el mparte foaia de hrtie n dou zone. Dac va trasa 2 linii el poate

    obine 2(linii suprapuse), 3 sau chiar 4 zone.

    -8------11-Determinai care este numrul maxim de zone n care poate fi mprit foaia de hrtietrasnd n linii (0

  • 62

    N=7113 1 2 1 1

    1 2

    intreg n, m, k, i, j/ nr, b, aux,rez;citeste n, m, k;rez +- O;

    entru i +- 1,n executaciteste nr;aux +- nr; b +- O;

    [

    a t timp aux > O executaaux +- aux div 2;b +- b + 1;

    aux +- 1;

    [

    ent ru j - b-l, O, -1 executaaux +- (aux*aux) mod k;rsaca bitul j al lui nr = 1 atunci

    ~ aux +- (aux*nr) mod k;

    rsaca aux=O atunci~ rez +- rez + 1;

    intreg n,a,b,c,i;citeste n;a +- 1; b +- 1;c:aca n 1 atunci scrie a;

    c:aca n 2 atunci scrie b;

    [

    ent ru i +- 3, n executac +- a + b;a - b;b +- c;

    scrie C; stop.

    Solutie: Se observ c numrul de moduri n care se urc o scar cu N trepte este egal cunumrul de moduri n care se urc o scara cu N-l trepte (pas de 1) adunat cu numrul demoduri n care se urc o scar cu N-2 trepte. n concluzie, rspunsul este cel de-al N-leatermen al irului Fibonacci.

    7. (Trepte- ***) O persoan trebuie s coboare o scar cu N

  • Solutie: Vom parcurge irul o singur dat i vom reine o variabil c pentru candidatulconsiderat curent majoritar i nr numrul de apariii necontracarate ale candidatului. Lanceput considerm c primul element din ir este majoritar. La fiecare pas, verificm dac

    numrul curent este egal cu candidatul sau nu i modificm numrul de apariii n funcie deasta. Dac numrul de apariii ajunge la un moment dat 0, cu siguran nu am gsitcandidatul majoritar i schimbm valoarea variabilei c cu numrul curent citit.

    intreg n, i, C, nriciteste nic +- -1 i nr +- 1;pentru i +- 1, n executa

    citeste Xi

    tac a X = c atuncinr +- nr + lialtfelnr +- nr - liraaca nr = O atuncil. c +- x; nr +- 1 i

    0'~

    9. (Yirus ***) La laboratorul de cercetri genetice din Lugoj, n urma unor experienenereuite, un virus a suferit mutaii. Ca urmare, exist trei tipuri de virui: virusul iniial (lvom numi virus de tip A) i dou tipuri de virui mutani (i vom numi virui de tip B i

    virui de tip C). Pentru a studia comportamentul viruilor, cercettorii au izolat ntr-unmediu steril un virus de tip A, un virus de tip B i un virus de tip C i au observat c lafiecare secund se produc urmtoarele transformri:

    a orice virus de tip A se divide i se obin un nou virus de tip A, un nou virus de tip Bi un nou virus de tip C.

    a dintr-un virus de tip B i un virus de tip C se obin trei noi virui (unul de tip C i doide tip B).

    De asemenea, cercettorii au observat c viruii nu mor.S se determine numrul de virui de fiecare tip, existeni dup N

  • Solutie: Se simuleaz micarea broatei pas cu pas, adunnd la fiecare n secunde numrulde centimetri parcuri de broscu,

    Scriei un program care citete Dl , Ni, D2, N2 1000) i care s afieze numrul decercetai din fiecare detaament dup reorganizare, ct mai mare posibil i cte detaamentese formeaz n zona Glciuc i cte detaamente se formeaz n zona Soveja.

    10. (Broasca. **) O broasc se deplaseaz efectund cte o sritur de lungime p cm lafiecare secund. Dup fiecare 12 secunde broscua devine mai obosit, iar lungimea srituriipe care o face se njumtete. Scriei un program care citete numerele naturale mai micica 30.000, p, 12, i T - durata total a deplasrii broscuei exprimat n secunde i care

    afieaz distana total pe care a parcurs-o broscua cu doua zecimale. Se tie c Tin < 16.

    1.3.2 Probleme propuse

    35750.00

    executa

    64

    Nr. de cercetasi din fiecaredetasament: 9Nr.de detasamente din Galaciuc:5Nr. de detasamente din Soveja:4

    (Olimpiada Naional de Informatic Gimnaziu, Glciuc 2001, cls. V)

    (Olimpiada Naional de Informatic Gimnaziu, Glciuc 2001, cls. V)

    intreg n, t;real d, p;citeste n, p, t;d .... O;

    [

    a t timp n :o; td d + n*p;p p*0.5;t t - n;

    d .... d + t*p;scrie d;stop.

    Exemplu:

    Dl=3Nl=15D2=2N2=18

    1. (Cercetai **) n zona Vrancea exist dou grupuri de cercetai, cu sediul n douregiuni (Glciuc i Soveja). Cercetaii din Glciuc sunt organizai n Di detaamente acte Ni cercetai fiecare. Cercetaii din Soveja sunt organizai n D2 detaamente a cte N2

    cercetai fiecare. n urma unui ordin de la Organizaia Europeana a Cercetai1or, trebuie catoate detaamentele din zona Vrancea s fie formate din acelai numr de cercetai.Pentru ndeplinirea ordinului, trebuie reorganizate detaamentele din fiecare regiune, fr adeplasa cercetai dintr-o regiune n alta.

    Exemplu:

    n=10p=20T=33

  • 2. (La coal - **) Directorul unei coli dorete s premieze la sfritul anului colar pe ceimai buni elevi la nvtur. Pentru acest lucru el are de rezolvat dou probleme:a) S determine ci elevi vor fi premiai dintre cei Il (2
  • Numarul de valori-panta: 4Cea mai mare valoare-panta: 9621Cea mai mica valoare-panta: 126

    6 om

    66

    (Olimpiada Judeean de Informatic Gimnaziu, 2003, c1s. V)

    1

    2

    (Olimpiada Judeean de Informatic Gimnaziu, 2003, cls. V)

    (Olimpiada Judeean de Informatic Gimnaziu, 2002, cls. VI)

    I Gigel are 2 ani,2 luni si 10 zile(Olimpiada Naional de Informatic Gimnaziu, Glciuc 2002, cls. V)

    Exemplu:n=2p=lk=8

    Exemplu:N=69206400

    8. (Pinochio - **) n fiecare zi nelucrtoare din sptmn, Pinochio spune cte o minciundatorit creia nasul acestuia crete cu cte p

  • 67

    11. (Cifre. **) Se dau dou numere naturale a, b cu maxim 9 cifre.a) S se determine cifrele distincte, comune numerelor a i b.b) S se afieze numrul cel mai mare format din toate cifrele lui a i b.

    10. (Sritura cangurului **) A fost odat ca niciodat, a fost un cangur care cretea caFt Frumos din ptiveste, ntr-un an precum alii n zece. ntr-o zi a nceput s fac srituri,

    i a srit pent~u nceput 7 metri. A doua zi a srit, n plus fa de ziua precedent, de zeceori mai mult. In a treia zi a reuit s sar, n plus fa de prima zi, de zece ori mai multdect n ziua a doua. n a patra zi a srit, n plus fa de prima zi, de zece ori mai mult dectn ziua a treia. i tot aa mai departe. Scriei un program care calculeaz ci metri a sritcangurul, n total, n 1l

  • 68

    14. (Excursie - **) Drumul de la Glciuc la Soveja este marcat prin n+1 borne succesive,borne numerotate de la O la n. Borna O (Glciuc) este la altitudinea O. Pe fiecare dintreurmtoarele n borne sunt scrise cte doua numere naturale, primul reprezentnd altitudinealocului i al doilea reprezentnd distana faa de borna precedent.

    Se cere s se rezolve cerinele:a) Verificai dac H este premiant, sau nu.b) Determinai numrul de premii luate de elevii din oraul lui H (inclusiv H, dac a fostpremiat).c) Determinai numrul de premii luate de elevii din coala lui H (inclusiv H, dac a fostpremiat).

    al NUbl 3el 2

    (Olimpiada Judeean de Informatic Gimnaziu, 2004, cls. V)

    426

    (Olimpiada Judeean de Informatic Gimnaziu, 2004, c1s. VI)

    Exemplu:ka=9kb=10

    13. (Vntoare - **) Vntorul ef al regelui Arthur a primit nsrcinare s vneze primelerae ce se ntorc din rile calde. Regele fiind un tip cu idei fixe, i-a cerut vntorului svneze raele albe cu sgei albe, iar raele negre cu sgei negre. Raele vin n rnduri(stoluri) din ce n ce mai mari: mai nti una, apoi dou, trei, cinci, opt, treisprezece,.a.m.d. Se observ c numrul de rae dintr-un rnd este egal cu numrul de rae de pe cele

    dou rnduri anterioare. Raele fiind nite creaturi ordonate zboar n rnduri, n care nu veiputea gsi dou rae de aceeai culoare alturate, fiecare rnd ncepnd cu o ra alb.

    Vntorul tie c dac a nceput s doboare o ra, trebuie s le doboare pe toate de perndul acesteia, deoarece supravieuitoarele vor alerta celelalte rae i ele nu se vor maintoarce niciodat, iar vntorul nostru i va pierde slujba.

    tiind c vntorul a primit ka sgei albe i kb (ka, kb < 2.000.000.001) sgei negre,trebuie s determinai cte rnduri de rae a dobort i cte sgei de fiecare tip i-au rmas,

    tiind c el vrea s-i pstreze slujba.Se va afia pe ecran:- numrul de rnduri doborte- numrul de sgei albe rmase- numrul de sgei negre rmase.

    Exemplu:H=234n=6123232125222421235

  • 23dl=3d2=19d3=4d4=lOd5=17..

    Se consider c dac o born este la altitudinea x, iar borna urmtoare la altitudinea y (x y), atunci drumul ntre cele dou bome coboar. Dac oborn este la altitudinea x, iar borna urmtoare tot la altitudinea x, atunci drumul ntre celedou borne este tot timpul plat.Se citete valoarea Il i apoi Il perechi de numere naturale reprezentnd valorile nscrie pecele n bome. Deoarece turistul care pleac de la Glacic spre Soveja, gfie de cte ori

    urc, vi se cere s afiai lungimea celei mai lungi poriuni continue pe care acesta oparcurge fr s gfie. Dac exist numai poriuni de urcare, se va afia valoarea O. Toatenumerele din problem sunt numere naturale nenule de cel mult dou cifre.Exemplu:n=5hl=14h2=14h3=8h4=lOh5=5

    (Olimpiada Naional de Informatic Gimnaziu, Glciuc 2001, cls. VI)

    15. (Coordonate - **) Numerele naturale se aeaz ntr-un triunghi, ca n figura:Al B1

    .' \ /A2 Il \ B2

    \ / \ /A3 /2\ /3\ B3

    \ / \ / \ /A4 /4\ /5\ /6\ B4

    \ / \ / \ / \ //7\ /8\ /9\ /10\

    Fiecare numr este aezat n vrful unui romb i este unic determinat de cele doudiagonale (A i B). Diagonalele sunt numerotate de sus n jos, n acest fel:

    - numrul 1 este aezat pe diagonala A l i diagonala Bl- numrul 2 este aezat pe diagonala A2 i diagonala Bl- numrul 3 este aezat pe diagonala Al i diagonala B2 .a.m.d.

    IA4 B2Al B3

    Fiind dat de la tastatur un numr ntreg pozitiv 11

  • 70

    (Olimpiada Judeean de Informatic, Timi 2000, c1s. IX)

    pe fiecare nivel k se plaseaz sub fiecare fracie i/j de pe nivelul de deasupra, fraciaiI(i+j) n stnga, iar fracia (i+j)/j n dreapta.

    albalbgalbenalbgalbenalb

    Becul 1:Becul 2:Becul 3:Becul 4:Becul 5:Becul 6:

    2/1

    2/12/3 3/1

    1/1

    I~(Olimpiada Naional de Informatic, Bacu 2001, cls. IX)

    1/2

    Dndu-se o fracie oarecare prin numrtorul i numitorul su, determinai numrulnivelului pe care se afl fracia sau o fracie echivalent (avnd aceeai valoare) cu aceasta.Se citesc dou numere naturale nenule N,M ::; 2000000000, separate printr-un spaiu,reprezentnd numrtorul i numitorul unei fracii, i se va afia numr natural nenul,reprezentnd numrul nivelului care corespunde fraciei.Exemplu:N=13 M=8N=12 M=8

    nivelul 1: 1/1nivelul 2: 1/2nivelul 3: 1/3 3/2

    nivelul 1:nivelul 2:

    18. (Tablou *****) Generai un tablou bidimensional cu proprietile: conine N linii i N coloane (N

  • 14 6 77455 7 6

    (Olimpiada Naional de Informatic, Bacu 2001, cls. IX)

    doze:2ciuperci fermecate ramase:1ciuperci care nu sunt fermecate:1

    7111983

    (Concurs "Grigore Moisil", Lugoj 2000, cls. VII-VIII)

    I k=7k=10

    Se citesc dou numere naturale nenule, separate printr-un spaiu, reprezentnd numrul delinii i de coloane ale tabloului, respectiv valoarea sumei tuturor elementelor din tablou sise va afisa pe N linii elementele tabloului, cte o linie din tablou; elementele se vor separaprin cte un spaiu. Dac problema nu are soluie, se va scrie cifra O. Dac problema aremai multe soluii, se va scrie una singur.Exemplu:N=3 S=51

    19. (Ciupercue - **) Un vrjitor btrn vrea s prepare o licoare special. Pentru o doza delicoare el are nevoie de M ciuperci fermecate. O ciuperc este fermecat dac numrulbulinelor de pe plria ei este prim.Ucenicul vrjitorului a cules N ciuperci dintre care unele sunt fermecate, altele nu.

    Vrjitorul vrea 's afle cte doze de licoare poate prepara din ciupercile culese, cte ciupercifermecate i rmn i cte ciuperci nu sunt bune de nimic. Scriei un program care s-Iajute! Fiecare ciuperc are cel puin dou buline.Exemplu:M=3 N=8211515731323

    (Concurs "Grigore Moisil", Lugoj 2002, cls. V-VI)

    20. (Cte sunt - *****) Fie mulimea A={l, 2, ... , /I}. Scriei un program care s citeascde la tastatur numrul natural /1

  • 72

    11 2 1540 41

    I 257

    26. (Seiful - *****) Se consider o comisie format din n

  • 27. (Tort - ****) De ziua ei, Ionela a fcut un tort n form triunghiular. Dorind s-Impart cu prietenii ei, Ionela efectueazA tieturi dintr-un col oarecare i B tieturi din altcol al tortului (un col adic un vrf al triunghiului iniial). Dup multe astfel de tieturi, eaeste dezorientat: oare cte felii de tort n form triunghiular a tiat? Prin felie nelegemun triunghi cu tieturi pe laturi si vrfuri n interseciile tieturilor. O felie poate conine ialte tieturi n interior.Ajutai-o pe Ionela s numere feliile de tort n form triunghiular. Se tie c A, B suntnumere naturale mai mici ca 30.000.Exemplu:A=l B=2 15A=l B=O 3

    (http://infoarena.devnet.ro)

    28. (Tabela - ***) Macarie, pasionat de numere, i mai ales de matrici ncepe intr-o zi sumple o foaie infinit de matematic (cu ptrele) cu numere astfel: n colul cel mai desus stnga (1,1) pune 0, apoi scrie de la stnga la dreapta i de sus n jos cel mai mic numrcare nu apare pe linia i coloana respectiv. Dndu-se linia L i coloana C (numere naturalesub 2 miliardejunei csue din tabel aflai numrul de la acea poziie.

    012345 .103254 .230167 .321076 .

    Exemplu:L=2 C=3L=4 C=5 I~

    (http://infoarena.devnet.ro)

    29. (Factorial - *****) e d un numr ntreg P (0

  • Care din urmtoarele referiri ale elementelor celor doi vectori sunt incorecte?

    Care din urmtoarele referiri ale elementelor celor doi vectori sunt incorecte?

    d) x[300-y[0]]

    d) 1 2 3 4 5

    d) b[i]

    d) 1 2 3 4

    e) x[ '1']

    c ) O 1 2 3 4

    for (i=0;i

  • 6. Ce valori vor fi afiate n urma rulrii urmtorului program?

    var

    a:array[l .. 5] of integer;i:integer;

    beginfor i:=l to 5 do ali] :=i*10;for i:=2 to 5 do

    ali] :=a[i]-a[i-1];for i:=l to 5 do write(a[i],' ')

    end.

    a)10 20 30 40 40 b)O 10 20 30 40

    #inelude int a[5],i;void main() {for (i=0;i

  • 13. Considernd urmtoarele instruciuni identificai dou echivalente:

    10. Care dintre urmtoarele secvene de instruciuni determin n mod corect elementulmaxim din vectorul a: array l ..5] of integer (varianta Pascal), respectiv int a[4]; (variantaC/C++).?

    11. Care dintre urmtoarele instruciuni realizeaz deplasarea cu o poziie spre dreapta atuturor elementelor tabloului a ncepnd cu cel situat pe poziia p. Valoarea variabileintregi 11reprezint indicele ultimului element din vectorul a.

    a) for(i=O;imax) max=a[i];

    d)max=30000;for (i=4;i>=0;i--)if (a[i]>max) max=a[i];

    76

    a} for i:=1 to n doif odd(i} then s:=s+a[i];

    b} for i:=1 to n div 2 dos:=s+ a[i*2-1];

    e} for i:=n to downto 2 doif odd(i} then s:=s+a[i-1];

    d} for i:=2 to (n+l}div 2 dos:=s+a[i*2-3];

    a} for i:=p+1 to n do a) for(i=p+l;i=p;i--}a[i+l] :=a[i]; a[i+I]=a[i] ;

    a) for i:=p to n do a} for(i=p;i=p;i--}a[i+l] :=a[i]; a[i+I]=a[i] ;

    12. Care dintre urmtoarele instruciuni realizeaz deplasarea cu o poziie spre stnga atuturor elementelor tabloului a ncepnd cu cel situat pe poziia p+l, n vederea tergeriielementului de pe poziia p? Valoarea variabilei ntregi 11 reprezint indicele ultimuluielement din a.

    a} max: =a [ I] ;for i:=2 to 5 doif a[i]>max then max:=a[i];

    b} max: =0;for i:=1 to 5 doif a[i]>max then max:=a[i];