Documente Academic
Documente Profesional
Documente Cultură
Alexandru Lungu
Hai La Olimpiada! 2020
grupa 7-8
Subprograme: soluții în
care implementarea este
detașată de context
Problema
Implementăm Folosim
Alegem o implementare cât mai Utilizăm subprogramul urmând
indiferentă de context. principiul “black-box”
Definire Numele subprogramului
Intrare-ieșire
Ieșire Au o valoare predefinită, iar
Intrare modificările au efect în
Au valoare neutră, iar
Au o valoare predefinită, programul apelant.
modificările au efect în
iar modificările nu au programul apelant.
efect și în programul
apelant.
Modificările peste parametrii de intrare
Parametrii de
nu ar trebui să aibă efect în programul
apelant.
copii
fi folosită pe tot parcursul subprogramului.
Intrare-ieșire
Ieșire Parametrii de intrare-ieșire
Intrare sunt aceeași variabilă ca
Nu există în C++.
Parametrul de intrare cea din programul apelant -
este în fapt o copie a sub altă denumire.
variabilei din programul
apelant.
Vectorii pot avea dimensiuni foarte
Intrare-ieșire
Ieșire
Intrare
Nu există în C++.
Definire Numele subprogramului
Subprogramele ce nu
returnează void se mai
numesc și funcții.
Tipul de date returnat
void sort(int n, int A[ ])
{
// to be continued...
}
Pașii necesari în a folosi un subprogram
Implementăm Folosim
Alegem o implementare cât mai Utilizăm subprogramul urmând
indiferentă de context. principiul “black-box”
Implementare
Implementăm Folosim
Alegem o implementare cât mai Utilizăm subprogramul urmând
indiferentă de context. principiul “black-box”
După definirea și
implementarea
Verificare subprogramului, trebuie să
ne asigurăm că respectăm
anumite standarde.
Ce greșim?
Ce observ la validare?
Soluții
Probleme ce pot apărea la validare
Nu am p
u s tipul d
g.! Am i m e return
subpro plemen corect!
estiv
en u mit sug t a t g re
Nu am d șit!
Implementăm Folosim
Alegem o implementare cât mai Utilizăm subprogramul urmând
indiferentă de context. principiul “black-box”
Date de intrare
Black-box Ex: int n și int A[ ]
Trebuie să privim un
subprogram ca o “cutie
opacă”. Cu alte cuvinte,
sort(n, A);
când folosim un
subprogram, nu trebuie
să ne intereseze
implementarea; trebuie
să ne intereseze doar Date de ieșire
utilizarea. Ex: n rămâne la fel
A va fi sortat
Folosirea subprogramelor
nume param void impl return erori args d-c apel result
Implementăm Folosim
Alegem o implementare cât mai Utilizăm subprogramul urmând
indiferentă de context. principiul “black-box”
După definirea,
implementarea, verificarea
și folosirea
Testare subprogramului, trebuie să
ne asigurăm că îl folosim
corect.
Ce greșim?
Ce observ la testare?
Soluție
Probleme ce pot apărea la testare
Nu dau
la
un Nu folo ori valo parametrii tipu
m en t pentru sesc c ri corec ri de da
c a a r gu te. te
valoare orespunzăto
e rin ță
o re f
Nu pun de ieșir
e! a retur r
a m e t r u nată
p ar
uri/
Nu pun parametrii în ordinea bună! Nu pun su
ficienți pa ed
proc
prea mulți rametrii, o
ri pun i
ne
r n- ul u funcții
Nu scriu bine i n r etu l unei
numele funcți
ei, ori funcția să obț turn-u
există! u re
Vrea losesc
chiar nu
o
Nu f
Pașii necesari în a folosi un subprogram
nume param void impl return erori args d-c apel result test :)
Implementăm Folosim
Alegem o implementare cât mai Utilizăm subprogramul urmând
indiferentă de context. principiul “black-box”
Programator vs STL
● https://www.pbinfo.ro/articole/3
656/subprograme
● https://profs.info.uaic.ro/~infogi
m/2020/78.html
● Infogim-2019
● Infogim-2017
● Infogim-2016
● Infogim-2015
Subprograme definite de utilizator
Alexandru Lungu
grupa 7-8