Clasa a VI-a lecția 8

From Algopedia
Revision as of 12:23, 13 November 2017 by Bella (talk | contribs) (→‎Implementati corect problemele corectate)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Constante in C

Constante în C: #define. Atunci cînd o constantă apare des în program este bine să îi dăm un nume cu #define. În felul acesta programul devine mai citibil, iar în cazul unei modificări ulterioare a constantei putem modifica într-un singur loc.


#define NMAX 1e9

Un mod special de a folosi constantele este la debug: cît timp facem corecții la program putem defini o constantă care să "activeze" instrucțiuni de tipărire de debug:

#define D 1
...
if ( D )
  printf( "x=%d   y=%d   a=%d\n", x, y, a )
...

La final, cînd considerăm că programul este corect tot ce avem de făcut este să modificăm constanta D în zero:

#define D 0

Observați folosirea lui 0 și 1 ca valori adevărat, respectiv fals.

Tipuri de Constante

a = 1;          // 1 se considera constanta int
x = 1LL;        // constanta long long
y = 2.;         // constanta float

Conversii implicite/explicite

int a, b;
float x, medie;
x = 1./a;
x = 1 / (float) a;
medie = (a + b) / 2.;
medie = ( (float) a + b ) / 2;

int a, b;
long long s, p;
s = (long long) a + b;
s = a + b + 0LL;
p = 1LL<<60;

Corectura probleme din concurs

Concurs C2_6

Concurs C3_6

Tema

Implementati corect problemele corectate din concursuri

Am corectat urmatoarele probleme: Bomboane1, suprapuneri, Trigrame, 2b1

Recapitulati: lucrul cu caractere

Rezolvări aici [1]

Rezolvări aici [2]

Rezolvări aici [3]

Completati-va tema de la Baze de numeratie

Verificati ca ati implementat de 100p si problemele din tema precedenta ( din lectia anterioara)

Reguli

  • Scopul nu este să luați 100 și atît ci sa exersați ceea ce ati invatat din lectie.
  • Indentarea nu este opțională. Este obligatorie. Identati dupa regulile stabilite.
  • Nu folosiți coduri ASCII! Nu aveți voie să scrieți c - 48 și nici c - 32!
  • Citiți explicit caracterul de sfîrșit de linie, după ce cititi o prima linie
  • Citiți pînă întîlniți caracterul sfîșit de linie, '\n'. Nu mergeti pana la EOF daca nu e cazul.
  • Nu mai trimiteți cîte 5-6 surse. Creați-vă propriile teste și testați-vă programul înainte de a-l trimite la varena. La olimpiadă nu veți avea decît o singură trimitere!
  • Nu inițializați variabile la declarare! Declarați toate variabilele la început.
  • Compilați cu -Wall și -O2! Nu ignorați avertismentele (warnings). Le vedeți și la varena în monitorul de evaluare!
  • atentie la else if-uri:
if (conditie1){
  instr1;
  instr2;
}
else if (conditie2){
  instr3;
  instr4;
}
else {
  instr5;
  instr6;
}