Programowanie C++
Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char = -128 do 127, unsigned char = od 0 do 255, int, signed int = -32768 do 32767 unsigned int = od 0 do 65535 long = - 2miliardy do 2 miliardy Operatory - * - mnożenie, / - dzielenie, + - dodawanie, - - odejmowanie, % - reszta z dzielenia Operatory relacyjne - < mniejszy, <= - mniejszy lub równy, > - większy, >= - większy lub równy, == - równy,!= - nierówny, Operatory logiczne -! negacja, && - Koniunkcja, - Alternatywa Operatory zwiększania ++ zwiększa wartość zmiennej o 1 w każdym cyklu trwania Operator zmniejszenia -- zmniejsza wartość zmiennej o 1 w każdym cyklu trwania Wyprowadzenie komunikatu na ekran : cout << komunikat Pobranie wartości zmiennej : cin>> wartość Skróty : suma = suma + liczba zastępujemy suma+=liczba, podobnie a=a*b -> a*-=b Znaki specjalne : \n przejście do nowej linii, \f przejście na początek następnej strony, \a sygnał dźwiękowy, \r przejście na początek bieżącej linii
Pętle While(wyrażenie) Instrukcja - jeśli wartość wyrażenia jest różna od 0 to wykonywana jest instrukcja ------------------------------------------------------------------------------------------------------------- If (warunek ){ - budowa warunku if } -------------------------------------------------------------------------------------------------------------- If(warunek1) { - budowa podwójnego warunku if } Else If (warunke2){ } -------------------------------------------------------------------------------------------------------------- For (wartość początkowa; warunek sprawdzający; krok){ - pętla for }
Zadanie 1 Napisz program do obliczenia sumy i iloczynu ciągu liczb zakończonego liczbą zero. Zakładamy, że ciąg zawiera co najmniej jedną liczbę (założenie to jest konieczne przy obliczeniu iloczynu, ponieważ dla pustego ciągu program wyprowadzał by wartość 1 jako wyznaczony iloczyn)
Rozwiązanie #include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int suma, iloczyn, liczba; // suma - suma ciągu liczbowego // iloczyn - iloczyn ciagu liczbowego // liczba - liczba w ciągu suma=0; iloczyn=1; cout<<"podaj liczby: "; cin >> liczba; while (liczba!=0){ suma+=liczba; iloczyn*=liczba; cin>>liczba; } cout <<"Suma liczb wynosi: "<<suma<<endl; cout<<"iloczyn liczb wynosi: "<<iloczyn; system("pause"); return EXIT_SUCCESS;
Zadanie 2 Należy wyznaczyć max i minimum w niepustym ciągu licz różnych od zera, zakończonego zerem
Algorytm zadania 2 Czytaj liczbę Zapamiętaj ją jako dotychczasowe maksimum w zmiennej max Zapmiętaj ją jakod dotychczasowe minimum w zeminnej min While (liczba jest różna od zera){ If (liczba > dotychczasowe maksimum) Zapamiętaj liczbe jako dotychczasowe maksimum If (liczba < dotychczacowe minimum) Zapamiętaj liczbę jako dotychczasowe minimum Czytaj liczbę } Drukuj max Drukuj min
#include <cstdlib> #include <iostream> // program do wyznaczania max i min using namespace std; int main(int argc, char *argv[]) { int max, min, liczba; //max - liczba maksymalna ciągu; // min - liczba minimaolna ciągu; //liczba - liczba w ciagu cout << "Podaj liczby"<< endl; cin>> liczba; // przyjecie za maksimum i minium pierwszej liczby ciągu max=liczba; min=liczba; while (liczba!=0){ if (liczba>max) max=liczba; else if (liczba<min) min = liczba; cin>>liczba; } cout<<"maksimum wynosi: " <<max<<endl; cout<< "minimum wynosi: "<<min; system("pause"); return EXIT_SUCCESS; } Program zadanie 2
Zadanie 3 Program poświęcony jest wygenerowaniu ciągu tak zwanych liczb Fibonacciego. Liczby te są generowane w następujący sposób. Pierwsze dwie liczby sa równe 0 i 1, natomiast następne powstają poprzez obliczenia sumy dwóch poprzednich. Matematycznie liczby te przedstawiają się rekurencyjnym wzorem a 1 =0, a 2 =1,a n+2 =a n +a n+1. Poniżej przedstawiam klika liczb Fibonacciego : 0 1 1 2 3 5 8 13 21 34 55 Wyznacza n liczb Fibonacciego dla wczytanej wartości n.
Pomoc Pomoc=poprzednia+biezaca; Poprzednia = biezaca; Biezaca=pomoc; If (licznik % LINIA==0) Cout<< endl; Umożliwia wydruk w jednej linii tylu wygenerowanych liczb, ile wynosi wartość stałej o nazwie LINIA. Przejście do następne linii następuje, gdy licznik jest wielokrotnością stałej LINIA, co oznacza, że doszliśmy do końca linii
Rozwiązanie #include <fstream.h> #include <iomanip.h> #define LINIA 8 #define POLE 7 void main(void) { int poprzednia, biezaca, pomoc, licznik, n; cout << "Podaj ile chcesz wygenerowac liczb" << endl; cin >> n; poprzednia = 0; biezaca = 1; cout << setw(pole)<< poprzednia << setw(pole) << biezaca; for(licznik = 3; licznik <= n; licznik++) { pomoc = poprzednia + biezaca; poprzednia = biezaca; biezaca = pomoc; cout << setw(pole) << biezaca; if (licznik % LINIA == 0 ) cout << endl; } char x; cin >> x; }
Tablice Int t[10] deklaracja tablicy o wymiarze 10. Const NMAX=10; Int a[nmax] deklaracja tablicy jako zmienna, lecz przed zadeklarowaniem tablicy zmienna musi mieć znaną wartość Int tab [ ]={11,12,13,14,15} Int t [2][4] ={ {11,12,13,14} {21,22,23,24} } Int Tab[10] For (int i=0;i<=1-;i++){ Tab[i]=i; } - uzupełnienie każdego elementu w tablicy cyfrą
Zadanie 4 Należy wprowadzić do tablicy 10 liczb a następnie wydrukować je ponownie w odwrotnej kolejności. (użytkownik z poziomu konsoli wprowadza dane do tablicy)
Zadanie 5 Wprowadzamy do tablicy n liczb a następnie program musi sprawdzić czy wśród wprowadzonych licz istnieje para liczb jednakowych. (użytkownik z poziomu konsoli wprowadza liczby do tabeli)
Zadanie 6 Zbuduj tablicę dwuwymiarową a następnie znajdź element minimalny w tablicy. (Wskazówka należy użyć dwie pętle for zagnieżdżone)
Zadanie 7 sortowanie bąbelkowe Należy posortować tablicę tak aby najmniejszy element tablicy był na początku a największy na końcu tablicy. Sortowania należy dokonać metodą bąbelkową. Polega to na wielokrotnym przeglądaniu sąsiadujących ze sobą elementów tablicy od lewej strony do prawej. Po napotkaniu pary, dla której żądana kolejność nie jest spełniona, elementy tej tablicy są przestawione. Algorytm nazywa się bąbelkowy ponieważ większe liczby są unoszone do góry jak bąbelki na wodzie.
Przykład sortowania bąbelkowego 9 2 7 10 8 4 2 9 7 10 8 4 2 7 9 10 8 4 2 7 9 8 10 4 2 7 9 8 4 10 2 7 8 9 4 10. Pierwotny stan tablicy Krok 1 zamiana 9 2 Krok 2 zamiana 9 7 Krok 3 zamiana 10 8
Funkcje Korzyści wynikające z zastosowania funkcji : Program napisany z wykorzystaniem funkcji jest bardziej czytelny i zrozumiały Pewne powtarzające się fragmenty lub realizujące ściśle określone operacje mogą być wyodrębnione i zapisane w postaci jednej funkcji Podczas uruchamiania i testowania programu można oddzielnie testować poszczególne funkcje a następnie sprawdzić cały program.
Funkcja przykłady Deklaracje funkcji : { typ nazwa (specyfikacja parametrów) instrukcje } Przykład : Int SumaKwadratow (int n){ Int i, suma=0; For(i=1;i<=n;i++) Suma +=i*i; Return suma; } Nazwa funkcji to SumaKwadratów. Jest ona Typu int tzn. podaje wartość typu int oraz ma Jeden parametr tego samego typu o nazwie n. Każda funkcja przed jej wykonaniem powinna być najpierw zadeklarowana poprzez podanie Tzw prototypu funkcji (patrz przykład poniżej) Oraz w nawiasach powinna mieć zadeklarowane parametry formalne. Return powoduje zakończenie wykonania Funkcji i powrót do miejsca jej wywołania.
#include <cstdlib> #include <iostream> Funkcje przykład Program powinien wyliczyć sumę kwadratów liczba : 1^2+2^2+.n^2= Użytkownik powinien podać liczbę n. int SumaKwadratow(int n); using namespace std; int main(int argc, char *argv[]) { int n, k, wynik; cout << "Podaj wartosc zmiennej n" << endl; cin >> n; wynik = SumaKwadratow(n); cout << "Suma kwadratow dla n = " << n << " wynosi " << wynik << endl; cin >> k; system("pause"); return EXIT_SUCCESS; } int SumaKwadratow(int n) { int i, suma = 0; for (i=1; i<=n; i++) suma += i*i; return (suma); }
Zadanie 8 Należy napisać program który liczy sumę potęg. 1^k+2^k+ n^k Należy do nagłówka programu dodać: # include <math.h> I wykorzystać polecenie pow(i,k)