Dobrą praktyką jest tworzenie funkcji:
- krótkich
- z minimalną liczbą parametrów
- wykonujących jedno zadanie
Przykład funkcji, która powinna zostać podzielona z powodu zbyt wielu wykonywanych zadań:
int suma_najmniejszych_pieciu_elementow_tablicy_wczytana_z_wejscia_z_ekstremalnie_dluga_nazwa() {
std::vector<int> ints(10);
for (int& i : ints) {
std::cin >> i;
}
std::partial_sort(ints.begin(), ints.begin() + 5, ints.end());
std::cout << "Najmniejsze: ";
for (auto it = ints.begin(); it != ints.begin() + 5; ++it) {
std::cout << *it << " ";
}
int sum{};
for (int i = 0; i < 5; ++i) {
sum += ints[i];
}
return sum;
}
- wczytuje dane
- wyszukuje poprzez sortowanie 5 najmniejszych liczb
- wypisuje 5 najmniejszych liczb
- zwraca sumę 5 najmniejszych liczb
Przykład poprawnie napisanej funkcji z std::cout, std::cin i zwracającej inta:
#include <iostream>
#include <string>
int readint(std::string msg = "") {
int num;
std::cout << msg;
std::cin >> num;
return num;
}
int main() {
int myInt = readint("Podaj liczbę: ");
}