Programarea calculatoarelor Pc_Cap7 (de Citit)
-
Upload
bogdan-mihai-dumitru -
Category
Documents
-
view
216 -
download
2
description
Transcript of Programarea calculatoarelor Pc_Cap7 (de Citit)
-
fi de asemenea simple sau structurate).
,
(break , continue , goto
, (if , switch (for ,
while , do- while ).
buire din limbajul algoritmic,
operatorului de atribuire.
n capitolul de introducere n limbajul C s-
= expresie ;
(1) = expresi e
.
uarea expresiei asociate. n mod uzual
modificarea valorii unei variabile (sau mai multe) din cadrul expresiei.
nea
expresie ; expresie
-
x = sin(y) + z;
i++;
n = (u > v) ? u : v;
\
efecte laterale.
Exemple.
1) este_simetrica este 1 sau nu: if (este_simetrica == 1)
pri \
else
\
2) ntotdeauna valoarea 1:
if (este_simetrica = 1)
\
el se
\
3) -o
s = 0;
do {
\
s += x;
\ nMai sunt nume
e utulizarea
-se din punct de vedere sintactic drept o
locale acestuia:
bloc vid. Blocurile vide sunt
}
bloc
{
-
u
-
-ar putea utiliza un bloc vid corespunde cazului cnd sintaxa
,
;
if
switch .
ecizie (if )
if
cuvntului else else
if
Cteva ob if , fie pe
alternativa else if
e. n unele
else if
z
valorile operanzilor x, y op de tip char : )
z = x + y;
-
z = x - y;
z = x * y;
z = x / y;
;
else
) if
if ( expresie
-
if if ) pot exista confuzii
semantice doar din punctul de vedere al programatorului. De exemplu, n cazul unei
if ()
if ()
;
else
;
. n realitate,
if la car
.
Exemplul 7.1. a b, a < b. Se vor descrie n continuare
-
n
- ).
Cazul I.
k1 k2 0
pentru i 1 la n
x
x > a atunci
x > b atunci
k2 k2 + 1
altfel
k1 k1 + 1
Cazul II.
k1 k2 0
pentru i 1 la n
x
x > a atunci
x > b atunci
k2 k2 + 1
altfel
k1 k1 + 1
C sunt:
int n, i, k1 = 0, k2 = 0;
float x;
/* Cazul I. */
for (i=0; i
-
if (x < a)
if (x < b)
k2++;
else
k1++;
}
/* Cazul II. */
for (i=0; i
-
unde, expresie
are:
switch
:
Ob
switch
goto se va discuta ntr-un paragraf
ulterior.
switch
n caz contrar default , n cazul n care eticheta default switch
Exemplul 7.2. n, pentru n
natural mai mic dect n.
#include
int main () {
int n;
double x, y = 1;
);
switch (n) {
case 5:
y *= x;
case 4:
y *= x;
case 3:
y *= x;
default :
}
: case
expresie
instruc
-
case 2:
y *= x;
case 1:
y *= x;
}
\
return 0;
}
:
1)
2)
switch break . n acest mod
break break
- break
switch
switch case din limbajul Pascal), se
break .
Exemplul 7.3.
4,1
3,1
2),sin(1
1,1
),(
2
nx
ne
nx
nx
nxfx
#include
#include
int main () {
int n, ok = 1;
double x, y;
printf(
switch (n) {
case 1:
y = 1 + x * x;
break;
case 2:
y = 1 + sin(x);
-
break;
case 3:
y = 1 + exp(x);
break;
case 4:
y = 1 + sqrt(x);
break;
default:
ok = 0;
}
i f (ok)
\
else
\
return 0;
}
else - if (dar nu toate) pot fi transformate n
switch if
z = x + y;
-
z = x - y;
else if (op
z = x * y;
z = x / y;
- switch
- zecimal:
- 10);
-
-
else
e repetitive sunt while , do- while for
Despre toate acestea s-
sintactice
specifice.
.
-
1)
while for , testul se f
do- while
2)
do-
while - -while pentru
determinarea sumei unor numere i
#include
#include
int main () {
int x, s = 0;
char c;
do {
\
s += x;
c = getchar();
}
\
return 0;
}
3) este necesar elor ce apar n
poate face chiar n cadrul expresiilor laterale, prin anumite efacte laterale. De exemplu,
nui text toate caracterele de tip
while
while ((c=getchar()) &&
\
\
4) for
for for (;;)
instructiune
for (; 1 ;)
instructiune