Instrucțiuni în C și C++

Previzualizare curs:

Extras din curs:

1. Instructiunea expresie.

O instructiune expresie se obtine punând terminatorul de instructiune (punct-virgula) dupa o expresie:

expresie;

Exemple:

a++;

scanf(…);

max=a>b ? a : b;

Exemplul 1: Un numar real, introdus de la tastatura reprezinta masura unui unghi exprimata în radiani. Sa se scrie un program pentru conversia unghiului în grade, minute si secunde sexagesimale.

#include <stdio.h>

#define PI 3.14159265

void main(void){

float rad, gfr, mfr;

int g, m, s;

printf(“Introduceti numarul de radiani: “);

scanf("%f", &rad);

g=gfr=rad*180/PI;

m=mfr=(gfr-g)*60;

s=(mfr-m)*60;

printf("%5.2f radiani=%4d grade %02d min %02d secn",

rad, g, m, s);

}

2. Instructiunea compusa (blocul).

Forma generala:

{

declaratii_si_definitii;

instructiuni;

}

Se foloseste în situatiile în care sintaxa impune o singura instructiune, dar codificarea impune prezenta unei secvente de instructiuni. Blocul de instructiuni conteaza ca o singura instructiune.

3. Instructiunea vida.

Forma generala: ;

Sintaxa impune prezenta unei instructiuni, dar logica problemei nu necesita nici o prelucrare. In acest mod se introduc unele relaxari în sintaxa.

4. Instructiunea if.

Forma generala:

if (expresie)

instructiune1;

else

instructiune2;

Se evalueaza expresia; daca este diferita de 0 se executa instructiune1 altfel instructiune2

O forma simplificata are instructiune2 vida:

if (expresie)

instructiune;

În problemele de clasificare se întâlnesc decizii de forma:

if (expr1)

instr1;

else if (expr2)

instr2;

else

instrn;

De exemplu dorim sa contorizam caracterele citite pe categorii: litere mari, litere mici, cifre, linii si altele:

if (c == ‘n’)

linii++;

else if (c>=’a’ && c<=’z’)

lmici++;

else if (c>=’A’ && c<=’Z’)

lmari++;

else if (c>=’0’ && c<=’9’)

cifre++;

else

altele++;

Exemplul 2 Sa se scrie un program pentru rezolvarea cu discutie a ecuatiei de grad 2: ax2+bx+c=0 folosind operatorul conditional.

#include <stdio.h>

#include <math.h>

void main(void){

float a, b, c, d;

printf(“Introduceti coeficientii ecuatiei: a,b,cn”);

scanf("%f %f %f", &a,&b,&c);

a? d=b*b-4*a*c, d>=0? printf("x1=%ftx2=%fn",(-b- sqrt(d))/2/a,

(-b+sqrt(d))/2/a):

printf("x1=%f+i*%ftx2=%f-i*%fn",-b/2/a,

sqrt(-d)/2/a,-b/2/a, sqrt(-d)/2/a)):

b? printf("x=%fn",-b/2/a): c? printf("0 solutiin"):

printf("identitaten");

}

Exemplul 3: Data curenta se exprima prin an, luna si zi. Sa se scrie un program care determina data zilei de mâine.

#include <stdio.h>

int bisect(int a){

return a%4==0 && a%100!=0 || a%400==0;

}

int ultima(int a, int l){

if (l==2)

return (28+bisect(a));

else if (l==4||l==6||l==9||l==11)

return 30;

else

return 31;

}

void main()

{int a, l, z;

printf(“Introduceti data curenta: an,luna,zin”);

scanf("%d%d%d",&a,&l,&z);

printf("azi: zi:%02d luna:%02d an:%4dn", z,l,a);

if (z < ultima(a,l))

z++;

else

{z=1;

if (l < 12)

l++;

else

{l=1;

a++;

}

}

printf("maine: zi:%02d luna:%02d, an:%4dn", z,l,a);

}

5. Instructiunea switch.

Criteriul de selectie într-o problema de clasificare îl poate constitui un selector care ia valori întregi.

Forma generala:

switch (expresie){

case val1: secventa1;

case val2: secventa2;

. . .

default: secventa s;

}

Se evalueaza expresia selectoare; daca valoarea ei este egala cu una din constantele cazurilor, se alege secventa de prelucrare corespunzatoare, dupa care se continua cu secventele de prelucrare ale cazurilor urmatoare.

Daca valoarea expresiei selectoare nu este egala cu nici una din constantele cazurilor, se alege secventa corespunzatoare etichetei default.

Pentru ca prelucrarile corespunzatoare cazurilor sa fie disjuncte se termina fiecare secventa de prelucrare prin break. De exemplu:

y=x;

switch (n)

{ case 5: y*=x;

case 4: y*=x;

case 3: y*=x;

case 2: y*=x;

}

calculeaza xn, unde n ia valori de la 1 la 5.

Exemplul 4 Scrieti o functie pentru determinarea ultimei zile din luna.

int ultima(int a, int l)

{ switch (l) {

case 1: case 3: case 5: case 7:

case 8: case 10: case 12: return 31;

case 4: case 6: case 9: case 11: return 30;

case 2: return (28 + bisect(a));

}

}

Download gratuit

Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.

Structură de fișiere:
  • Instructiuni in C si C++.doc
Alte informații:
Tipuri fișiere:
doc
Nota:
9.7/10 (6 voturi)
Nr fișiere:
1 fisier
Pagini (total):
13 pagini
Imagini extrase:
13 imagini
Nr cuvinte:
3 846 cuvinte
Nr caractere:
19 334 caractere
Marime:
47.41KB (arhivat)
Publicat de:
NNT 1 P.
Nivel studiu:
Facultate
Tip document:
Curs
Domeniu:
Calculatoare
Predat:
la facultate
Materie:
Calculatoare
Sus!