Clasa a IX-a lecția 14 - 8 feb 2020
Clasament teme lecțiile 1 - 13
Old School
Clasamente avansați
Avansați Infoarena
Avansați Varena
Clasamente începători
Începători Varena
Începători Infoarena
New School
To be continued: clasamente pe categorii (divizori/numere prime, vectori frecventa/caracteristici, sortari, cautare binara, caractere, baze de numeratie/operatii pe biti, etc.)
Lecție
Funcții în limbajul C
Am discutat despre funcții folosind ca sursă principală lecția de la IQAcademy: Funcții în limbajul C
Adăugiri în limbajul C++
Modificarea parametrilor cu efect la ieșirea din funcție
Cum majoritatea dintre voi folosiți deja elemente de C++ în cod, este util să știți că C++ permite trimiterea variabilelor către funcții prin referință:
Exemplu: functia swap
#include <stdio.h>
void swap( int &pa, int &pb ) {
int aux;
aux = pa;
pa = pb;
pb = aux;
}
int main() {
int a, b;
a = 100;
b = 200;
swap( a, b );
printf( "a=%d b=%d\n", a, b );
return 0;
}
După cum se poate observa, referințele permit accesarea directă a variabilelor înauntrul funcției, nemaifiind nevoie de utilizarea operatorului *(pointer).
Aplicații
V-am pregătit un Concurs Virtual.
Pentru cei care au lucrat deja problemele acestea, o listă de probleme pe care le vom discuta și în lecțiile următoare:
infoarena - defrag
infoarena - betasah
infoarena - elicop
Temă
varena - țintă
infoarena - cifre5
infoarena - placare (Greuță)
infoarena - triang (Grea)
În plus pentru începători
Ca temă adițională aveți următoarele probleme, ca aplicații la divizori, descompunere în factori primi și ciurul lui Eratostene:
infoarena - cufar
infoarena - divmul
Soluțiile problemelor pot fi găsite aici. Problema cufăr este explicată detaliat aici.