Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna





Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica


Informatica


Qdidactic » stiinta & tehnica » informatica
Instructiuni de control



Instructiuni de control


Instructiuni de control





OBIECTIVE




1.operatori relationali, de egalitate si logici; 2.operatori si expresii relationale; 3.operatori si expresii de egalitate; 4.operatorul , ; 5.operatorul conditional ?: 6.instructiuni de test: if, if-else, switch (break) 7.instructiuni repetitive: while, for, do-while 8.functii: parametri formali, parametri actuali, apel prin valoare, void, return, exit 9.operatori pentru biti: ^, &, |, <<, >>, masti 10.complement fata de 2, impachetare, despachetare.








CERINTE




1.12 probleme din primele 18 pentru nota 8; 2.suplimentar inca 2 probleme din 19, , 22 pentru nota 10.




EXERCITII






1.Program care calculeaza si afiseaza valoarea functiei f(x)=x^2+3x-5, pentru toti x din multimea . 2.Din moment ce + si ++ sunt operatori, rezulta ca expresia a+++b poate fi interpretata fie ca a++ + b fie a + ++b depinzand de modul de grupare semnului +. Scrieti un program scurt pentru a vedea ce interpretare face compilatorul C. 3.Program care calculeaza n!, pentru un n citit de la tastatura. 4.Scrieti un program care citeste un numar natural n si determina, aplicand criteriile de divizibilitate, daca este divizibil cu 2,3,4,5,9,25. 5.Scrieti un program C care sa calculeze cel mai mare divizor comun dintre a si b, unde a, b sunt numere intregi, folosind algoritmul lui Euclid. 6.Folosind structura for, scrieti un program care calculeaza urmatoarele formule logice (sub forma unei tabele de adevar): b1 || b3 || b5 si b1 && b2 || b4 && b5 7.Fie functia lui Collatz:



=a_+a_n, n>=1




11.Se da un numar intreg n > 0.

.Gasiti toate perechile de numere intregi (x,y) pentru care x^2+n=y^2. .Gasiti perechea (a,b) pentru care n=2^a(2*b+1).

12.Folosind functiile 'rand()', 'min(,)' si 'max(,)', sa se genereze n numere naturale si sa se afiseze minimul si maximul dintre acestea. 13.(Jocul cap-pajura, simulare Monte-Carlo) Presupunem ca dispunem de o moneda ideala (nemasluita). Doi jucatori arunca cu moneda dupa urmatoarele reguli:



1.a. Se fac un numar total de n aruncari;

1.b. Primul jucator arunca moneda si celalalt spune 'cap' sau 'pajura';

1.c. Daca acesta 'ghiceste' ce va pica moneda, atunci se inverseaza jucatorii (adica arunca al doilea si primul incearca sa ghiceasca);

1.d. La sfarsit, trebuie afisat scorul (si procentul de castig al fiecaruia).




14.(Jocul hartie, pumn, foarfece) Presupunem ca avem doi jucatori care folosesc mana dreapta pentru reprezentarea a trei obiecte:




hartie = palma intinsa

pumn = mana stransa sub forma de pumn

foarfece = doua degete departate (semnul Victoriei)




Ei isi arata simultan mana dreapta in una din aceste configuratii (de mai multe ori). Daca ei arata acelasi lucru, este remiza (nu castiga nimeni). Daca nu se aplica una din urmatoarele trei reguli:



a) Hartia acopera pumnul. (deci palma intinsa castiga fata de pumn)

b) Pumnul sparge foarfecele.

c) Foarfecele taie hartia.




Sa se simuleze acest joc, facand un numar arbitrar de evenimente precizand scorul final. Se cere sa se joace persoana-calculator, si varianta a doua calculator-calculator. 15.O ruleta este o masina care selecteaza la intamplare un numar intre 0 si 35 la intamplare. Jucatorul poate paria pe un numar par/impar sau poate paria pe un numar oarecare. Castigul unui pariu par/impar se premiaza cu 2/1 dolari, cu exceptia celor in care ruleta alege 0. Daca jucatorul 'prinde' numarul selectat de ruleta, atunci este platit cu 35 1 dolari. Intrebare: Considerand ca jucam pariuri de 1 dolar, cate parieri trebuie sa facem astfel incat sa pierdem 10 dolari ? 16.(Conjectura lui Goldbach) Orice numar par mai mare decat 2 se poate scrie ca suma a doua numere prime. Scrieti un program C care verifica aceasta conjunctura pentru numere situate intre m si n. De exemplu, daca m=700 si n=1100, atunci afisati:



700 = 17 + 683

702 = 11 + 691

704 = 3 + 701


1098 = 5 + 1093

1100 = 3 + 1097




Generalizare: Scrieti toate combinatiile posibile de adunare a doua numere prime egal cu un numar dat. 17.Folosind functia 'bit_print' construiti un tabel (cu trei coloane) care sa contina n, reprezentarea binara a lui 2^n, reprezentarea binara a lui 2^n-1, pentru n = 0, 1, 2, , 32. Apoi, afisati un tabel (tot cu trei coloane) care sa contina n, 10^n si 10^n-1 pentru n = 0, 1, 2, , 7 (in baza zece). Ce asemanare observati ? 18.Zilele secolului 20 pot fi notate folosind intregi in forma 'zi/luna/an'. De exemplu, 1/7/93 inseamna 1 iulie 1993. Scrieti o functie care memoreaza ziua, luna si anul compact, astfel:



a) pentru zile (maxim 31) sunt suficienti 5 biti;

b) pentru luna (12) sunt suficienti 4 biti;

c) pentru ani (100) sunt suficienti 7 biti;




Functia trebuie sa aiba la intrare ziua, luna si anul ca intregi si trebuie sa returneze data 'impachetata' pe un 'intreg' pe 16 biti. Scrieti inca o functie care face 'despachetarea'. 19.(*) Folosind operatori pe biti, scrieti programe C care:



a) testeaza daca un numar de tip 'int' sau 'long' este divizibil cu 8.

Generalizare (divizibilitate cu 2^n);

b) testeaza daca un numar este pozitiv sau negativ;

c) calculeaza pentru un n dat, multiplii de 2, 4, Generalizare;

d) calculeaza pentru un n dat, [n/2], [n/4], Generalizare;

e) calculeaza m^n, folosind reprezentarea in baza 2 a lui n si

metoda 'divide et impera'.




20.Scrieti un program de transformare a numarului n din baza p in baza q (n,p si q se citesc). 21.(Serii Farey)

Seria Farey de ordinul n= sirul crescator al fractiilor reduse, cuprinse intre 0 si 1, cu numitorul <=n. De exemplu, seria Farey de ordinul 7:


Notam seria Farey de ordinul n prin (x_1,y_1),(x_2,y_2),

.Aratati ca x_(k+1) * y_k - x_k * y_(k+1) = 1. .Aratati ca :

x_0 = 0, x_1 = y_0 =1, y_1 = n

x_(k+2) = [(y_k+n) / y_(k+1)] * x_(k+1) - x_k

y_(k+2) = [(y_k+n) / y_(k+1)] * y_(k+1) - y_k .Scrieti un program care genereaza seria Farey de ordinul n, pentru n dat.


Sa se genereze numarul natural n, pornind de la cifra 4 si efectuand la fiecare pas una din urmatoarele operatii:

.impartire la 2 .adaugarea(concatenarea) la dreapta a cifrei 0 .adaugarea(concatenarea) la dreapta a cifrei 4

Poate fi generat astfel orice numar natural n?








Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright