#include //przykład 1 #include #pragma hdrstop main () { clrscr (); // czyszczenie ekranu cout << "\n"; // nowa linia, endl; cout << "Witam na wykładzie\n"; cout << "Przedmiot: " << "Programowanie Obiektowe\n"; cout << "III rok, sem. V," << " kier. Elektrotechnika\n"; getch(); //oczekiwanie na nacisnięcie klawisza }
przyklad 2
/*------------------------------------------------------------------------------------- Program przelicza wysokosć podana w stopach na wysokosć podana w metrach. Ćwiczymy operacje wczytywania z klawiatury i wypisywania na ekranie. ----------------------------------------------------------------------------------------*/ #include #include main () { int stopy; // wysokosć podana w stopach float metry; // wysokosć w metrach float przelicznik = 0.3; // przelicznik: stopy na metry clrscr (); cout << "Podaj wysokosć w stopach: "; cin >> stopy; // wczytanie wysokosci w stopach // z klawiatury metry = przelicznik * stopy; cout << "\n"; // to samo co endl; cout << "Wysokosć " << stopy << " stóp - to jest: " << metry << " metrów\n"; getch(); }
przyklad 3
//przyklad 1 na if /* Program oblocza watosć funkcji f(x) w punkcie x. Funkcja zadana jest wzorem: f(x)=2*x^2+2 dla x<=0 f(x)=log x dla x>0 */ #include #include #include #pragma hdrstop;
#include //test instrukcji break #include main () { int i = 7; clrscr (); while (1) //pętla nieskończona { cout << "Pętla, i = " << i << "\n"; i = i - 1; if (i < 5) { cout << "Przerwanie pętli ! "; break; } } getch(); }
przyklad 9
#include //przyklad instrukcji break #include main () { int i, m; int dlugosc_linii = 3; clrscr (); for (i =0; i < 4; i = i+1) { for (m = 0; m <10; m = m+1) { cout << "*"; //druk dla m = 0,1,2,3,4 if (m > dlugosc_linii) break; } cout << "\nKontynuujemy zewnętrzna pętlę for" << " dla i =" << i << "\n"; } getch(); }
przyklad 10
#include //goto #include main () { cout << "Ala ma kota \n"; goto a; // brak deklaracji etykiety cout << "Ola ma psa"; a: cout << "Ela ma papugÄ™"; getch(); }
przyklad 11
#include //testowanie continue #include main () { int k; clrscr (); for (k = 0; k < 12; k = k+1) { cout << "A"; if (k > 1) continue; //rezygnacja z poniższej instrukcji cout << "b \n"; } cout << "\n"; getch(); }
przyklad 12
#include // liczby ósemkowe i szesnastkowe #include main () { int i; int k, n, m, j; clrscr (); i = 5; k = i + 010; //010 - ósemkowo = 8D cout << "k= " << k << endl; m = 100; n = 0x100; j = 0100; cout << "m+n+j= " << (m+n+j) << endl; cout << "wypisujemy: " << 0x22 << " " << 022 << " " << 22 << endl; getch(); }
#include #include int k =33; //zmienna globalna main () { clrscr (); cout << "Jestem w pliku głównym, k = " << k << endl; { //---------------------------------------------- int k = 10; //zmienna lokalna cout << "Po lokalnej definicji k = " << k << endl; } //---------------------------------------------- cout << "Poza blokiem k = " << k << endl; getch(); }
przyklad 15
#include // operatora zakresu :: #include int k =33; //zmienna globalna main () { clrscr (); cout << "Jestem w pliku głównym, k = " << k << endl; { //---------------------------------------------- int k = 10; //zmienna lokalna cout << "Po lokalnej definicji k = " << k << ", " << endl << "ale obiekt globalny k = " << ::k; } //---------------------------------------------- cout << "\nPoza blokiem k = " << k << endl; getch(); }
#include //przykład oper. % - modulo #include main() { int i ; for (i = 0 ; i < 64 ; i = i + 1) { if( i % 8) cout << "\t" ; //jesli r. jest niezerowa to wypis // tabulatora else cout << "\n" ; // przejscie do nowej linii cout << i ; } getch(); }
#include #include main() { int a = 85; char b; cout << "a= " << a << endl; b = (char) a; // b = 'U' cout << "b= " << b << endl; b = 'A'; a = (int) b; // a = 65 cout << "a= " << a < getch(); }
przyklad 23
#include #include
int Funk_1(int x); float Funk_2(long x); //obszar deklaracji funkcji char Funk_3(float z);
main ( ) { int a; float b; char c; //....... a = Funk_1(12 ); b = Funk_2(33333); //funkcja main() c = Funk_3 (0.3); //.... getch(); } int Funk_1(int x) { int aaa; aaa = 1111*x; return aaa; } float Funk_2(long x) //obszar definicji funkcji { float bbb; bbb = 0.00001*x; return bbb; } char Funk_3(float z) //obszar definicji funkcji { char bbb; bbb = 'a'; return bbb; }
przyklad 24
#include //przykład - funkcje #include //******************************************************************* int kukulka (int ile); main () { int m = 30; cout << "Zaczynamy" << endl; m = kukulka (2); cout << "\nNa koniec m = " << m; getch(); } //******************************************************************* int kukulka (int ile) { int i; for (i = 0; i < ile; i++) cout << "Ku-ku! "; return 66; }
void Prostokat () // definicja fun. rysujacej prostokat { int i, y; for (i = 1; i <= 20; i++) // krawędz górna cout << "*"; cout << endl;
for (i = 1; i <= 8; i++) // boki { y = wherey(); // funkcja okreslajaca wiersz na ekr. cout << "*"; gotoxy (20, y); cout << "*\n"; } for (i = 1; i <= 20; i++) // krawęz dolna cout << "*"; cout << endl; }
przyklad 29
//---------------------Program Prostokat wersja 2---------- // Program umożliwia narysowanie prostokata w trybie // tekstowym. Znakiem rysujacym jest gwiazdka '*'. // Dlugosc prostokata: 20; Wysokosc prostokata: 10 //---------------------------------------------------------------- #include #include void Prostokat (); //---------------------------------------------------------------- void main ( ) { Prostokat (); getch(); }
//Deklaracja dodatkowych funkcji używanych przez f. prostokat void Pozioma (); // deklaracja funkcj Pozioma void Boki (); // deklaracja funkcji Boki
void Prostokat () // definicja funkcji Prostokat { Pozioma (); Boki (); Pozioma (); } void Pozioma () // definicja funkcji Pozioma { int i; for (i = 1; i <= 20; i++) // rysowanie krawędzi poziomej cout << "*"; cout << endl; } void Boki () // definicja funkcji Boki { int i, y; for (i = 1; i <= 8; i++) // rysowanie funkcji prostokata { y = wherey(); cout << "*"; gotoxy (20, y); cout << "*\n"; } }
// Program umożliwia: // 1. Wczytanie aktualnego rozmiaru wektora liczb całk. // 2. Wczytanie elementów wektora liczb całkowitych; // 3. Okreslenie elementu maksymalnego oraz numeru // tego elementu; // 4. Wyswietlenie wartosci i numeru elementu maks. //--------------------------------------------------------- #include //tablice 1D #include const int n_Max = 50; // max rozmiar tablicy int X[n_Max]; // definicja tablicy int n, // aktualny rozmiar tablicy El_Max, // element maksymalny Ind_Max; // indeks elementu maks. //------poniżej podano inaczej niż we wcześniejszych przykładach od razu definicje funkcji void Czyt_Dane(int &n, int X[]) //przekazanie wart. przez ref. // Wczytanie rozmiaru i kolejnych elementów tablicy { int i; cout << "Podaj rozmiar tablicy: "; cin >> n; cout << "\nPodaj kolejne elementy tablicy:\n"; cout << endl; for (i = 0; i < n; i++) { cout << "X["; cout.width (2); cout << i << "] = "; cin >> X[i]; } } //--------------------------------------------------------- void Max_Element(int n, int X[], int &El_Max, int &Ind_Max) // Okreslenie elementu maksymalnego i jego indeksu { int i; El_Max = X[0]; Ind_Max = 0; for (i = 1; i < n; i++) { if (El_Max < X[i]) { El_Max = X[i]; Ind_Max = i; } } } void Pisz_Wynik (int El_Max, int Ind_Max) // Wyswietlenie wartosci i indeksu numeru elementu maks. { cout << "\nElement o wartosci maksymalnej: " << El_Max; cout << "\nNumer elementu maksymalnego: " << (Ind_Max +1); cout << endl; } //------------------------------------------------------ void main () { clrscr (); Czyt_Dane (n, X); Max_Element (n, X, El_Max, Ind_Max); Pisz_Wynik (El_Max, Ind_Max); getch(); }
przykład 32
//--------------------------------------------------------- // Program umożliwia: // 1. Wczytanie aktualnego rozmiaru tablicy liczb całk. // 2. Wczytanie elementów tablicy liczb całkowitych; // 3. Zamianę miejscami elementów tablicy leżacych // po przeciwnej stronie prostej pionowej dzielacej // tablicę na dwie równe częsci. // 4. Wyswietlenie wartosci i numeru elementu maks. //--------------------------------------------------------- #include //przykład dotyczacy tablic 2D #include const int n_Max = 10; // max liczba wierszy tablicy const int m_Max = 10; // max liczba kolumn tablicy int A[n_Max][m_Max]; // definicja tablicy int n, // aktualna liczba wierszy m; // aktualna liczba kolumn
void Czyt_Dane(int &n, int &m, int A[][m_Max]); //deklaracje funkcji void Przestawienie(int n, int m, int A[][m_Max]); void Pisz_Wynik (int n, int m, int A[][m_Max]); //--------------------------------------------------------- void main () { clrscr (); Czyt_Dane (n,m, A); Przestawienie(n, m, A); Pisz_Wynik (n, m, A); getch(); }
void Czyt_Dane(int &n, int &m, int A[][m_Max]) //--------------------------------------------------------- // Wczytanie rozmiaru i kolejnych elementów tablicy //--------------------------------------------------------- { int i, j, x,a, y; cout << "Podaj liczbę wierszy: "; cin >> n; cout << "Podaj liczbę kolumn: "; cin >> m; cout << "\nPodaj kolejne elementy tablicy:\n"; cout << endl; x = wherex (); y = wherey (); for (i = 0; i < n; i++) { for (j = 0; j < m; j++) { gotoxy ( x+j*6, y); cin >> A[i][j]; } y++; } } //---------------------------------------------------------
void Przestawienie(int n, int m, int A[][m_Max]) //--------------------------------------------------------- // Zamiana miejscami elementów tablicy leżacych po // przeciwnych stronach prostej pionowej dzielacej // tablicę na dwie równe częsci //--------------------------------------------------------- { int i,j, pom;
for (i = 0; i < n; i++) for (j = 0; j < m/2; j++) { pom = A[i][j]; A[i][j] = A[i][m-j-1]; A[i][m-j-1] = pom; } }
void Pisz_Wynik (int n, int m, int A[][m_Max]) //---------------------------------------------------------- // Wyswietlenie tablicy wynikowej //---------------------------------------------------------- { int i, j, x, y;
cout << endl; cout << "Tablica wynikowa:\n"; cout << endl; x = wherex (); y = wherey (); for (i = 0; i < n; i++) { for (j = 0; j < m; j++) { gotoxy ( x+j*6, y); cout << A[i][j]; } y++; cout << endl; } }
#include //p.35a dotyczyacy tablic i wskaźników #include void main () { int T_i[5]; // definicja tablicy typu int float T_f[5]; // definicja tablicy typu float int *Wsk_i; // definicja wska«nika na obiekty int float *Wsk_f; // definicja wska«nika na obiekty float
#include //p. 37 dotyczacy relacji na wskaznikach #include void main () { int Tab[10]; int *Wsk_a, *Wsk_b; int i; Wsk_a = &Tab[5]; cout << "Mamy 10-elementowa tablice Tab.\n" "Wskaznik Wsk_a pokazuje na element o indeksie 5.\n" "Na ktory element ma pokazywac wskaznik Wsk_b? (0-10): "; cin >> i; if (i < 0 || i > 10) cout << "\nNie ma takiego elementu w tej tablicy!"; else { Wsk_b = &Tab[i]; cout << "\nZ przeprowadzonego porownania wskaznikow" " Wsk_a i Wsk_b wynika, ¾e: \n"; if (Wsk_a > Wsk_b) cout << "Wsk_b pokazuje na element blizej poczatku tablicy\n"; else if (Wsk_a < Wsk_b) cout << "Wsk_b pokazuje na elem. o wyzszym indeksie\n"; else if (Wsk_a == Wsk_b) cout << "Wsk_a i Wsk_b pokazuja na to samo\n"; } }
Przykład 38
#include //p. 38 dotyczacy przesyłania (odbierania) tablic do (z) funkcji #include void Fun_Wska(int *Wsk, int Rozmiar); //dla tych 3 funkcji operacje wykonuje się void Fun_Tab(int Tab[ ], int Rozmiar); // na tym samym obszarze pamięci void Fun_Wsk2(int *Wsk, int Rozmiar); // ale robi się to w różny sposób void main () { int A[5] = { 5, 10, 15,20, 25 }; Fun_Tab(A, 5); // wskazujemy adres 1 elementu Fun_Wska(A, 5); Fun_Wsk2(A, 5); } void Fun_Tab(int Tab[ ], int Rozmiar) //adres odebrany jest jako tablica { cout << "\nWewnatrz funkcji Fun_Tab:\n"; for (int i = 0; i < Rozmiar; i++) cout << Tab[i] << "\t"; } //posługujemy się zapisem tablicowym //============= void Fun_Wska(int *Wsk, int Rozmiar) //przesłany adres inicjalizuje lokalny Wsk { cout << "\nWewnatrz funkcji Fun_Wska:\n"; //czyli jakby int *Wsk=A for (int i = 0; i < Rozmiar; i++) //lokalny wskaźnik wskazuje na kolejne cout << *(Wsk++) << "\t"; } //elementy //============ void Fun_Wsk2(int *Wsk, int Rozmiar) { cout << "\nWewnĄtrz funkcji Fun_Wsk2:\n"; //przesłany adres inicjalizuje lokalny Wsk for (int i = 0; i < Rozmiar; i++) //a potem używamy korzystając z notacji cout << Wsk[i] << "\t"; } //tablicowej wskaźnika
Przykład 39
#include //p. 39 wskazniki do obiektu const #include void Pokaz(const int *Wsk, int Ile); void Zmien(int *Wsk, int Ile); //========================== void main () { int Tab[5] = { 10, 20, 30, 40, 50 }; Pokaz(Tab, 5); Zmien(Tab, 5); Pokaz(Tab, 5); cout << "Dla potwierdzenia Tab[4] = " << Tab[4] << endl; } void Pokaz (const int *Wsk, int Ile) { cout << "Dziala pokazywacz:\n"; for (int i = 0; i < Ile; i++, Wsk++) { //*Wsk += 20; // Blad! Elementów tablicy nie wolno zmieniac! cout << "element nr " << i << " ma wartosc " << *Wsk << endl; //wskazujemy na kolejne drukowane elementy tablicy } } void Zmien (int *Wsk, int Ile) { cout << "Dziala zmieniacz:\n"; for (int i = 0; i < Ile; i++, Wsk++) { *Wsk += 500; // zmiana kolejnych wskazywanych wartości elementów tablicy cout << "element nr " << i << " ma wartosc " << *Wsk << endl; } }
Przykład 40
#include //p. 40 rezerwacja obszarów pamieci #include char *tworz (void); //funkcja zwraca adres do obiektu typu char void main () { char *w1, *w2, *w3, *w4; // definicje wskaznikow w1 = tworz (); // tworzenie wskaznikow na obiekt char w2 = tworz (); w3 = tworz (); w4 = tworz (); *w1 = 'A'; //nadanie wartosci zmiennej pod adresem w1 *w2 = 'B'; *w3 = 'C'; cout << "Oto 3 znaki: " << *w1 << *w2 << *w3 << "\noraz znak przypadkowy w czwartym: " << *w4 << endl; delete w1; //kasowanie obiektu delete w2;delete w3; delete w4; //*w1='x'; nie ma juz obiektu - bylby blad } char *tworz (void) //funkcja zwraca adres do obiektu typu char { char *w; cout << "Robie nowy obiekt typu char\n"; w = new char; //adres nowego obiektu return w; }
przyklad 41
#include //p. 41 tablice dynamiczne 1D #include void main () { //statycznie bylo: int tab[15]; //int *tab; //deklaracja wskaznika typu int //tab = new int [rozm]; //ustawienie wskaznika na poczatek obszaru // mozna tez krocej: int *tab = new int[rozm]; cout << "ile elementow ma miec tablica? \n"; int rozm; cin>> rozm; int *tab = new int[rozm]; //tab jest wskaz. na poczatek obszaru for (int i=0; i {tab[i]=i+1; //wpis elementów do tablicy } for (int i=0; i {cout<< "tab[" << i << " ]= " << tab[i] << endl; } delete [] tab; getch(); }
Przykład 42
#include //p. 42 tablice dynamiczne 2D #include int w,k; void utworz (int **tab); //deklaracja 3 funkcji, których argumentem jest void wyswietl (int **tab); //wskaźnik **tab do tablicy dwuwymiarowej (2D) void usun (int **tab); void main () {int **T; //** T - wskaźnik do tablicy 2D cout << "ile wierszy ma miec tablica? \n"; cin >> w; cout << "ile kolumn ma miec tablica? \n"; cin >> k; T = new int*[w]; // lub int **T = new int*[w]; for (int i=0; i T[i] = new int [k]; //krok 2 ustawienie adresu kolumn
for (int i = 0; i < w; i++) for (int j = 0; j < k; j++) T[i][j] = i + j; // inicjalizacja tab
wyswietl(T); usun(T); getch(); } void wyswietl(int **tab) { for (int i = 0; i < w; i++) { for (int j = 0; j < k; j++) cout << tab[i][j] << " "; cout << "\n" << endl; } } void usun(int **tab) { for (int i = 0; i < w; i++) delete[] tab[i]; // krok 1: usuniecie kolumn delete[] tab; // krok 2: usuniecie wierszy }
Przykład 43
#include //p. 43 praca na wskaźnikach do funkcji #include int Pierwsza (); //deklaracja dwóch funkcji int Druga (); // void main () { int i; int (*Wskaz_Fun) (); //deklaracja wskaźnika do funkcji // cout << "Na ktora funkcje ma pokazac wskaznik?\n" << "pierwsza-\t1\nczy druga -\t2\n" << "Napisz numer: "; cin >> i; switch (i) {case 1 : Wskaz_Fun = Pierwsza; //adres=adres break; case 2 : Wskaz_Fun = Druga; //adres=adres break; default : Wskaz_Fun = NULL; //nie wskazuj na żadną break; } cout << "Moj wybor:\n"; if (Wskaz_Fun) //jezli nie NULL for (i = 0; i < 3; i++) { (*Wskaz_Fun) (); } getch(); } int Pierwsza () //definicje funkcji { cout << "Funkcja pierwsza\n"; return 10; //zwraca 10 } int Druga () { cout << "Funkcja druga\n"; return 110; //zwraca 110 }
Przykład nr 44
//========================================================== /* Program oblicza wartości dwóch całek oznaczonych wykorzystując */ /* do obliczenia całki metodę Simpsona */ //========================================================== #include //przykład nr 44; argument funkcji jest funkcją #include #include
float Fun1 (float x); float Fun2 (float x); float Simpson ( float a, float b, int m, float f (float x)); //dekl. funkcji f
void main () // program główny { clrscr (); cout.width (6); cout.precision (2); cout << "Całka I1 = " << Simpson (-2.0, 3, 10, Fun1);//przekaz. f. przez adr. cout << "\nCałka I2 = " << Simpson (0, 1.0, 10, Fun2); getch(); } // koniec programu głównego; float Fun1 (float x) // Funkcja podcałkowa = 3*x*x { float wynik; wynik = 3*x*x; return ( wynik ); }