You are on page 1of 6

Ćwiczenie 14.

Analizujemy funkcję porównującą teksty. Objaśnij działanie funkcji pokazanej na rysunku,


odpowiadając na pytania:
a. Co określają parametry funkcji?
b. Dlaczego w funkcji teksty_sa_identyczne() zastosowano instrukcję iteracyjną while, a nie
for? Uzasadnij odpowiedź.
c. Dlaczego w instrukcji while zastosowano złożony warunek logiczny (koniunkcję)? Objaśnij
poszczególne elementy tego warunku (omów, co sprawdzają).
d. Jaką wartość zwraca funkcja?
e. Jakie będzie działanie funkcji dla tekstów różniących się tylko wielkością liter, np. „abc” i
„ABC”?

Ćwiczenie 15. Napisz program realizujący algorytm porównywania tekstów


1. Korzystając z opisu algorytmu porównywania tekstów z ćwiczenia14 napisz specyfikację
zadania.
Na tej podstawie utwórz program realizujący algorytm porównywania dwóch tekstów.
Zdefiniuj funkcję teksty_sa_identyczne() pokazaną na rysunku wyżej. Wywołaj ją w
programie głównym z parametrami aktualnymi (argumentami) tekst1 i tekst2. Wyprowadzaj
na ekran odpowiednie komunikaty.
2. Zapisz program w pliku pod nazwą Porównywanie.
3. Przetestuj działanie programu dla kilku różnych danych.
Wskazówka: W funkcji teksty_sa_identyczne() przed instrukcją pętli możesz sprawdzać, czy
teksty są takiej samej długości: jeśli nie, to wartością funkcji będzie fałsz.

Ćwiczenie 16. Piszemy program zliczający wystąpienia znaku „a” w tekście1. Napisz
program wyszukujący i zliczający literę „a” w tekście wprowadzanym z klawiatury. Zapisz
specyfikację tego zadania. Zdefiniuj funkcję zlicz_znak z jednym parametrem tekst. Wywołaj
funkcję w programie głównym z parametrem aktualnym (argumentem) napis. Dla
przejrzystości wykonywania programu wyprowadzaj odpowiednie komunikaty.
2. Zapisz program w pliku pod nazwą Zliczanie_znaku_a.
3. Przetestuj działanie programu dla kilku różnych danych.
Wskazówki: Instrukcja for zastosowana w funkcji zlicz_znak może mieć postać: C++
Ćwiczenie 17. Modyfikujemy program zliczający znaki1. Zmodyfikuj program zapisany w
ćwiczeniu 16.: w języku C++ zastosuj funkcję getline() do wprowadzania napisów
składających się z wyrazów oddzielonych spacjami.
2. Zapisz program w pliku pod nazwą Zliczanie_znaku_a_zmod.
3. Przetestuj działanie programu dla różnych danych.

#include <iostream>
#include <string>
using namespace std;
int zlicz_znak(string tekst)
{
int liczba_znakow = 0;
for(int i = 0; i < tekst.length(); i++)
if(tekst[i] == 'a')
liczba_znakow++;
return liczba_znakow;
}
int main()
{
string napis;
cout << "Podaj napis: ";
getline(cin, napis);
cout << "Liczba znakow " << "a" << " w napisie " << napis << " wynosi: " <<
zlicz_znak(napis) << endl;
return 0;
}

Ćwiczenie 18. Zliczamy wystąpienia kilku znaków w tekście1. Napisz program wyszukujący
i zliczający litery „a”, „b” i „c” w tekście wprowadzanym z klawiatury. Zapisz specyfikację
tego zadania.
2. Zapisz program w pliku pod nazwą Zliczanie_znaków.

#include <iostream>
#include <string>
using namespace std;
int zlicz_znak(string tekst, char z)
{
int liczba_znakow = 0;

for(int i = 0; i < tekst.length(); i++)


if(tekst[i] == z)
liczba_znakow++;
return liczba_znakow;
}
int main()
{
string napis;
char znak;
cout<<"**********************************"<<endl;
cout<<"MENU PROGRAMU"<<endl;
cout<<"a. Zliczanie wszystkich liter a"<<endl;
cout<<"b. Zliczanie wszystkich liter b"<<endl;
cout<<"c. Zliczanie wszystkich liter b"<<endl;
cout<<"**********************************"<<endl;

cout << "Podaj napis: ";


getline(cin, napis);
cout << "Podaj znak opcji: ";
cin >> znak;

switch(znak)
{
case 'a':
cout << "Liczba znakow " << znak << " w napisie " << napis << "
wynosi: " << zlicz_znak(napis, znak) << endl;
break;

case 'b':
cout << "Liczba znakow " << znak << " w napisie " << napis << "
wynosi: " << zlicz_znak(napis, znak) << endl;
break;

case 'c':
cout << "Liczba znakow " << znak << " w napisie " << napis << "
wynosi: " << zlicz_znak(napis, znak) << endl;
break;

return 0;
}

Zadanie 1. Napisz program, który zapyta się użytkownika, Która godzina lekcyjna się
zaczęła?,
Jeśli jest 1 lekcja ma wyświetlić się napis: Masz teraz matematykę, jeśli lekcja 2: Masz teraz
fizykę, 3 lekcja: Masz teraz j. polski, 4 lekcja: Masz teraz historie, 5 lekcja: Masz teraz
geografie, 6 lekcja: Masz teraz informatykę, jeśli użytkownik wprowadzi lekcje powyżej 6 ma
wyświetlić się napis: Jesteś juz po lekcjach.

#include <iostream>
using namespace std;
int main()
{
int lekcja;
cout << "Która godzina lekcyjna sie zaczęła?";
cin >> lekcja;
if (lekcja == 1) cout <<"Masz teraz matematykę";
if (lekcja == 2) cout << "Masz teraz fizykę";
if (lekcja == 3) cout << "Masz teraz j. polski";
if (lekcja == 4) cout << "Masz teraz historie";
if (lekcja == 5) cout << "Masz teraz geografie";
if (lekcja == 6) cout << "Masz teraz informatykę";
if (lekcja > 6) cout << "Jesteś juz po lekcjach";
getchar() ;
return 0;
}
Zadanie 2. Zmodyfikuj program , zastosuj instrukcję switch.
Zadanie 3. Napisz program, wyświetlający w kolumnie liczby od 0 do 20. Przy
liczbach niepodzielnych przez 3 znajduje się odpowiedni komentarz. Zastosuj
pętlę for.

Składnia pętli while


while (wyrażenie) instrukcja;
gdzie:
-wyrażenie przyjmujące wartość
wyrażenie logiczną
„prawda" albo „fałsz"
instrukcja - istrukcja wykonywana w pętli

Zadanie 4. Napisz program wyświetlający na ekranie znaki podane z klawiatury do momentu,


aż podamy znak „k".
Jeśli w tym programie użytkownik poda na początku znak „k", pętla w h i l e nie wykona
się nawet jeden raz.
Składnia pętli do ... while
do instrukcja while (wyrażenie);

gdzie:

instrukcja - instrukcja wykonywana w pętli


wyrażenie - wyrażenie przyjmujące jedną z dwóch wartości logicznych: prawda albo fałsz

Zadanie 5. Napisz program rysujący na ekranie 4 gwiazdki. Skorzystaj z pętli do….while.

You might also like