procedural programming (tsz. procedural programmings)
C++ nyelvben a függvényt először deklaráljuk, majd definiáljuk:
Példa:
#include <iostream>
using namespace std;
void koszont(); // deklaráció
int main() {
koszont(); // függvényhívás
return 0;
}
void koszont() { // definíció
cout << "Hello, vilag!" << endl;
}
Kétféle alapvető paraméterátadás: - Érték szerint: az eredeti változó értéke másolódik a függvénybe. - Referencia szerint: a függvény közvetlenül az eredeti változót éri el.
Példa érték szerinti átadásra:
void duplaz(int szam) {
szam *= 2;
}
int main() {
int ertek = 5;
duplaz(ertek);
cout << ertek; // továbbra is 5
}
Példa referencia szerinti átadásra:
void duplaz(int &szam) {
szam *= 2;
}
int main() {
int ertek = 5;
duplaz(ertek);
cout << ertek; // 10
}
A procedurális C++-ban alapvető adattípusokat használunk:
- int: egész számok
- double, float: lebegőpontos számok
- char: karakterek
- bool: logikai érték
- string (a <string>
könyvtárral): szövegek
if (feltetel) {
// ha igaz
} else {
// ha hamis
}
while (feltetel) {
// ismétlődik
}
for (int i = 0; i < 10; i++) {
cout << i << endl;
}
int nap = 3;
switch (nap) {
case 1: cout << "Hetfo"; break;
case 2: cout << "Kedd"; break;
case 3: cout << "Szerda"; break;
default: cout << "Ismeretlen";
}
A procedurális programozásban gyakran használunk tömböket:
int szamok = {1, 2, 3, 4, 5};
for (int i = 0; i < 5; i++) {
cout << szamok << endl;
}
Tömb átadása függvénynek:
void kiir(int tomb, int meret) {
for (int i = 0; i < meret; i++)
cout << tomb << " ";
}
int main() {
int t = {10, 20, 30};
kiir(t, 3);
}
Gyakori eljárás beágyazott ciklusokat használni:
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
cout << "(" << i << "," << j << ") ";
}
cout << endl;
}
C++-ban az fstream
könyvtárat használjuk:
#include <fstream>
using namespace std;
int main() {
ofstream ki("adatok.txt");
ki << "Hello fajlba!" << endl;
ki.close();
ifstream be("adatok.txt");
string sor;
while (getline(be, sor)) {
cout << sor << endl;
}
be.close();
}
int osszeg(int tomb, int meret) {
int ossz = 0;
for (int i = 0; i < meret; i++)
ossz += tomb;
return ossz;
}
int main() {
int szamok = {2, 4, 6, 8};
cout << "Osszeg: " << osszeg(szamok, 4) << endl;
}
Ha hosszabb kódot írunk, célszerű a függvények deklarációját a main()
elé tenni, definíciójukat utána.
Például:
int osszeg(int tomb, int meret);
int main() {
int szamok = {1, 2, 3, 4, 5};
cout << "Osszeg: " << osszeg(szamok, 5);
}
int osszeg(int tomb, int meret) {
int ossz = 0;
for (int i = 0; i < meret; i++)
ossz += tomb;
return ossz;
}
A procedurális programozás C++-ban nagyon hatékony, ha: - jól bontjuk fel a feladatokat kisebb egységekre, - függvényeket tisztán, önállóan írunk, - minimalizáljuk a globális változók használatát, - átlátható ciklusokat és elágazásokat alkalmazunk.
A procedurális szemlélet ideális alap a programozás megtanulásához, és minden komplexebb (például objektumorientált) paradigma alapja.