Clasa a IX-a lecția 14 - 8 feb 2020

From Algopedia
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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

Probleme OȘI
Probleme OJI

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.