/* 2. felev, uj tematika, C++ nyelv A C++ nem obj,orient.ujdonsagai 8. gyak GEPESZ Egyszeru pelda osztalyra es egyedre. // 1. prg: cimszerinti ertekatadas referenciavaltozok segitsegevel: /* #include <stdio.h> #include <conio.h> #include <iostream.h> //ez az osztalydeklaracio kell a cin es cout-hoz void szelsoertekek(int a, int b, int& max, int& min) { if (a > b) { max= a; min= b;} else {max= b; min= a;}; } void main(void) { int c, d, nagy, kicsi; clrscr(); cout << "Cimszerinti ertekatadas demo" << endl; do {cout << "Adj meg ket egesz szamot!" << endl; cout << "c="; cin >> c; cout << "d="; cin >> d; szelsoertekek(c, d, nagy, kicsi); cout << "A nagyobbik= " << nagy << ", a kisebbik= " << kicsi << endl; } while (c!=d); cout << "vege." ; getch(); } */ //2. pelda: Dinamikus memoriakezeles new es delete segitsegevel: /* #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <iostream.h> //probaljuk ki nagyobb ertekkel is, pl 1600 ! #define db 16 void main() { randomize(); float * valosmut; float * vektmut; clrscr(); cout << "Dinamikusan foglalunk helyet egy valos skalarnak \ es egy vektornak" << endl; valosmut = new float; vektmut = new float[db]; if (!valosmut || !vektmut) { cout << "Memoriafoglalas sikertelen!" << endl; exit(1); } *valosmut= random(25)/11.5; for (int i=0; i<db; i++) vektmut[i]= random(25)/12.0; //kiiratas: for (i=0; i<db; i++) cout << "vektmut[" << i << "]= " << vektmut[i] << endl; cout << "*valosmut= " << *valosmut << endl; cout << "Majd felszabaditjuk a foglalt helyeket. " << endl; delete valosmut; delete vektmut; //delete[] vektmut; Borland C++ Builder eseteben getch(); } */ //3. pelda: Alapertelmezett fuggvenyargumentum, osztaly, egyed pelda // Lásd előadásanyagot is! #include <stdio.h> #include <conio.h> #include <string.h> #include <iostream.h> #include <ctype.h> class Szovegparos {private: char forras[80], cel[80]; public: void MyStrncpy(int honnan=0, int mennyit=2000); void SetForras(char forrasbe[]){strcpy(forras,forrasbe);} void PrintCel(){puts(cel);} }; Szovegparos obj; char forrasbe[80]; int honnan, mennyit; char c1,c2; void main() {clrscr(); c1='N'; c2='N'; puts("Add meg az s1 szoveget:"); gets(forrasbe); obj.SetForras(forrasbe); cout << "Megadja a honnan poziciot? (I/N): " << endl; if ((c1=toupper(getch())) == 'I') {cout << "honnan= " ; cin >> honnan;} if (c1=='I') { cout << "Megadja a mennyit erteket? (I/N): " << endl; if ((c2=toupper(getch())) == 'I') {cout << "mennyit= " ; cin >> mennyit;} } if (c2=='I') obj.MyStrncpy(honnan, mennyit); else if (c1=='I') obj.MyStrncpy(honnan); else obj.MyStrncpy(); obj.PrintCel(); getch(); } void Szovegparos::MyStrncpy(int honnan, int mennyit) {if (mennyit==2000) strncpy(cel, forras+honnan, strlen(forras)-honnan+1); else strncpy(cel, forras+honnan, mennyit); } //forras: kerekparverseny, honnan: N, kiir: kerekparverseny //forras: kerekparverseny, honnan=8, meddig: N : kiir:verseny //forras: kerekparverseny, honnan=5, meddig: 3 : kiir: par