10/30/14
Update: notele apar in fisierul.
Vom discuta programarea L1.2 luni, la curs.
Va rog sa gasiti rezolvari pentru probleme date la prima prezentare: program1 si program2.
Buna,
Prima lucrare de evaluare pe parcurs este planificata pentru saptamana
viitoare, a 7-a din semestru.
Lucrarea se va da la curs, luni, 3 noiembrie, dupa
cum urmeaza:
- ora 11 - grupele 1,2
- ora 12:30 - grupele 3,4 si
anii
mari.
Veti avea de pregatit urmatoarele module:
Lucrarea va consta in 2
aplicatii:
- pentru o secventa de cod
data va trebui sa se justifice ce se tipareste pe ecran la executie;
un exemplu:
char a =' c'; float b; int c;
b = 7 / (a - 'a');
c = b += 2;
printf("%d %c %f %d\n", c&&-3, ++a, b, c);
c -= sizeof(char); // in loc de short apare char, short nu a fost prezentat la Tipuri
printf("%d %d\n", c, !c !=
1);
Rezolvare:
La rularea secventei:
//
1
'c'
-> a
//
2
7
/ ('c' - 'a') = 7 / 2 = 3 -> 3.0 ->b (conversie
implicita a rezultatului la tipul variabilei b)
//
3
3.0
+ 2 = 5.0 -> b
5
-> c (5.0 se converteste implicit la 5, tipul lui c e int)varat
//
4
c&&-3
= 5&&-3 = 1 (ambele valori sunt
diferite de 0, interpretate ca adevarat)
++a
e 'd' (++ e preincrementare aici)
se
vor tipari:
1
d 5.0000000 5
//
5
sizeof(char)
e 1, deci c -= 1 face ca c sa devina 4
//
6
!c
!= 1
!4
!= 1
0
!= 1 - adevarat, deci expresia e 1
se
vor tipari:
4
1
- scrierea unui program pentru
un enunt dat; exemple de enunturi:
- Pentru doua date citite,
prin valorile an, luna, zi, sa se afiseze numarul de ani
intregi
trecuti.
- Sa se scrie un program
care determina daca trei valori reale citite pot fi laturile unui
triunghi, in caz afirmativ, afisandu-i aria calculata cu formula lui
Heron si determinand daca e echilateral, isoscel sau oarecare.
- Se considera functia:
f(x)=(2-x^4)/(1-2x), pentru x<0.5
(2x-1)/(1-5x^5), pentru x>=0.5.
Pentru un x citit de la tastatura se va afisa valoarea functiei.
Va rog sa gasiti aplicatii
rezolvate si alte exemple la Aplicatii
propuse pentru examen.
Putem lamuri neclaritatile prin
discutii aici.
Succes,
Carmen
Holotescu
Posted by Carmen at 11:09:43 am into the following categories:
Anunturi
Buna zua, am o intrebare la punctul 1 . De ce 'c'-'a' este 2 in randul 2 si de ce ++a este 'd' in randul 4 ?
Posted by:
Motateanu Alexandru [Visitor] on 11/01/14 @
10:13http://www.timsoft.ro/weblog/index.php?blog=9&title=prima_evaluare_luni_3_noiembrie&more=1&c=1&tb=1&
Buna,
In linia 2, variabila a are valoarea 'c', deci a -'a' = 'c'-'a' - se face diferenta intre codurile ASCII ale celor 2 caractere, deci se obtine 2 (litera c e a doua dupa a).
In linia 4, ++a este 'd', intrucat ++ e operator de preincrementare, deci valoarea expresiei ++a e litera urmatoare lui 'c', deci 'd'.
Daca mai sunt neclaritati, va rog sa-mi spuneti,
Carmen Holotescu
Posted by:
Carmen [Member] on 11/01/14 @
10:28http://www.timsoft.ro
As mai avea o intrebare , daca avem int c=5 iar apoi c
Posted by:
Motateanu Alexandru [Visitor] on 11/01/14 @
16:58http://www.timsoft.ro/weblog/index.php?blog=9&title=prima_evaluare_luni_3_noiembrie&more=1&c=1&tb=1&
Buna, nu aveti operatorii pe biti. Te rog reia intrebarile, apar trunchiate - trimite ai la carmen.holotescu@upt.ro.
CH
Posted by:
Carmen [Member] on 11/02/14 @
17:05http://www.timsoft.ro
La punctul 1. sizeof(short)=2, deci
c -= sizeof(short) e 3 nu 4.
expresia !c != 1 e ramane adevarata si se
tipareste 1
Posted by:
Calin [Visitor] on 11/02/14 @
20:29
Buna,
Valoarea sizeof(short) difera in functie de implementare, poate fi si 1, la fel ca pentru char.
Luati ca reper valorile din modulul Tipuri. Am vorbit acolo doar de char, nu si de short, deci short nu va aparea in subiectele de maine. Am si modificat in exemplul de mai sus, char in loc de short.
Carmen Holotescu
Posted by:
Carmen [Member] on 11/02/14 @
20:46http://www.timsoft.ro