Przejdź do zawartości

C++/Ćwiczenia

Z Wikibooks, biblioteki wolnych podręczników.
< C++

Ćwiczenie 1

[edytuj]

Napisać program, który czyta ze strumienia standardowego wejścia i zmienia małe litery na wielkie i odwrotnie (nie bierzemy pod uwagę polskich znaków), wypisując wynik do strumienia standardowego wyjścia. Następnie zmodyfikować go tak, aby pracował na plikach: wejściowym oraz wyjściowym, podanych jako parametry programu..

Ćwiczenie 2

[edytuj]

Mamy tablice kwadratowa, której wymiarem jest liczba nieparzysta. Napisz program, który wypełni ja zerami i jedynkami w następujący sposób:

0 0 1 0 0
0 1 0 1 0
1 0 0 0 1
0 1 0 1 0
0 0 1 0 0

Ćwiczenie 3

[edytuj]

Dany jest plik:

+-----------+----+-----------+--------------+
|PESEL      |Płeć|Imię       |Nazwisko      |
+-----------+----+-----------+--------------+
 45679815845  M   Tomasz      Buczakowski
 48491848438  M   Andzej      Krzemień
 81871681861  K   Karolina    Cubisz
 78168181348  M   Aleksander  Buczykowski
 48618481389  M   Jerzy       Apostoł
 56884864684  K   Magdalena   Koczkowska
 84184864889  M   Patryk      Rutkowski
 93818984869  M   Daniel      Dworkowski
 48498386181  K   Karina      Puszkowski
 78681864864  M   Jakub       Buczakowski
 48648848646  M   Stefan      Buczakowski
 84681846844  K   Anna        Stepaniuk
 45784698943  M   Grzegorz    Warszawski
  1. Wypisać wszystkie nazwiska kończące się na "ski" w porządku alfabetycznym, bez powtórzeń.
  2. Wypisać w odwrotnym porządku alfabetycznym osobno imiona żeńskie i męskie.

Ćwiczenie 4

[edytuj]

Napisz funkcje wypisującą liczby pierwsze (lub złożone) z podanego zakresu liczb.

Podpowiedź: Należy użyć algorytmu sita Eratostenesa.

Ćwiczenie 5

[edytuj]

Mamy taki oto plik źródłowy:

 #include <iostream>
 
 using namespace std;
 
 class wydatkiMiesieczne
 {
    public:
       
       //w tym miejscu wpisz brakujace pola klasy
             
    private:
       int cenaChleb;  //                                            
       int cenaMleko;  //ceny produktow (przypisz je w konstruktorze)
       int cenaGazeta; //                                            
      
       bool zakupChleba; //
       bool zakupMleka;  //zmienne true/false
       bool zakupGazety; //
      
       int pensja; //pensja obiektu (człowieka)
       int sumaWydatkowMiesiecznych; //zmienna ktora sumuje wydatki
       bool czyWystarczaNaMiesiac; //zmienna przechowuje true jesli pensja jest wieksza niz wydatki; jesli jest odwrotnie - false
 };
 
 int main(int argc, char** argv)
 {
    wydatkiMiesieczne Marian;
    Marian.zarobek(200); 
    Marian.czyKupujeChleb(true);
    Marian.czyKupujeMleko(true);
    Marian.czyKupujeGazete(true);
    Marian.obliczanieWydatkowMiesiecznych();
    cout << "Pensja Mariana " << (Marian.czyWystarczaPieniedzyNaWydatkiMiesieczne() ? "jest wystarczajaca" : "nie jest wystarczajaca");
    cout << " na pokrycie kosztow codziennych zakupow" << endl;
   
    wydatkiMiesieczne* Jadwiga = new wydatkiMiesieczne;
    Jadwiga->zarobek(12000);
    Jadwiga->czyKupujeChleb(true);
    Jadwiga->czyKupujeMleko(true);
    Jadwiga->czyKupujeGazete(false);
    Jadwiga->obliczanieWydatkowMiesiecznych();
    cout << "Pensja Jadwigi " << (Jadwiga->czyWystarczaPieniedzyNaWydatkiMiesieczne() ? "jest wystarczajaca" : "nie jest wystarczajaca");
    cout << " na pokrycie kosztow codziennych zakupow" << endl;
    delete Jadwiga;
   
    getchar();
    return 0;
 }

Program ten oblicza czy pensja, którą dostaje człowiek zdefiniowany jako obiekt klasy wydatkiMiesieczne, jest w stanie pokryć uproszczone wydatki miesięczne. Jednak program nie jest kompletny. Uzupełnij brakujące pola klasy w sekcji public stosując się do poniższych instrukcji:

  • Użyj konstruktora do przypisania wartości polom danych:
    +-----------+-----------------+
    |nazwa pola |wartość która ma |
    |  danych   |zostać przypisana|
    +-----------+-----------------+
    | cenaChleb |         2       |
    | cenaMleko |         3       |
    | cenaGazeta|         2       |
    |           |                 |
    | sumaWydat-|                 |
    | kowMiesie-|         0       |
    | cznych    |   (opcjonalnie) |
    +-----------+-----------------+
  • Pamiętaj że zmienne cenaChleb, cenaMleko i cenaGazeta reprezentują cenę za jedną sztukę danego produktu, a my będziemy potrzebować ceny za zakup tych towarów przez cały miesiąc (przyjmijmy ze miesiąc ma 30 dni).
  • Nie twórz innych funkcji w sekcji public niż te, które zostały wywołane w funkcji main().
  • Funkcja zarobek() ma pobierać liczbę reprezentującą zarobek danej osoby (w zł) i wpisywać tą wartość w zmienną pensja.
  • Funkcje z przedrostkami czyKupuje- mają przypisywać wartość (true - jeśli kupuje dany produkt; false - jeśli nie) do swoich odpowiedników z sekcji private (np. funkcja czyKupujeMleko() przypisze wartość zmiennej zakupMleka).
  • Funkcja obliczanieWydatkowMiesiecznych() ma obliczyć kwotę jaka będzie wydana przez miesiąc kupowania ustalonych przez obiekt produktów i przypisać wynik zmiennej sumaWydatkowMiesiecznych.
  • Funkcja czyWystarczaPieniedzyNaWydatkiMiesieczne() ma obliczyć czy pensja danego obiektu jest wystarczająca na pokrycie kosztów zakupów, przekazać wynik true, albo false do zmiennej czyWystarczaNaMiesiac i zwrócić go.