Treści usunięte z lekcji zgodnie z podstawą programową
z 2024 r. sprawdź w e-booku podręcznika na eduranga.pl.

Ćwiczenie 0

a) Aby otrzymać kod ASCII danego znaku, należy zrzutować typ char na typ int – jeśli zastosuje się np. polecenie int('a'), program wypisze liczbę 97. Zmień parametry zapisu, aby otrzymać kody ASCII dla znaków c, d i y.

#include <iostream> using namespace std; int main() { cout << int ('a') << endl; cout << int ('b') << endl; cout << int ('z') << endl; return 0; }
99 100 121
Rozwiąż ćwiczenie

b) Odwrotnie, aby otrzymać znak odpowiadający danemu kodowi ASCII, należy rzutować na typ char – jeśli zastosuje się np. polecenie char(97), program wypisze literę a. Sprawdź, co otrzymasz po uruchomieniu poniższego skryptu.

#include <iostream> using namespace std; int main() { cout << char (97) << endl; cout << char (98) << endl; cout << char (122) << endl; return 0; }
Rozwiąż ćwiczenie

c) Aby wypisać kolejne znaki odpowiadające kodom ASCII, np. od 33 do 37, należy zastosować pętlę for. Zmień parametry pętli, aby otrzymać cały alfabet łaciński.

#include <iostream> using namespace std; int main() { for (int i = 33; i < 38; i++) cout << i << ": " << char (i) << endl; return 0; }
97: a 98: b 99: c 100: d 101: e 102: f 103: g 104: h 105: i 106: j 107: k 108: l 109: m 110: n 111: o 112: p 113: q 114: r 115: s 116: t 117: u 118: v 119: w 120: x 121: y 122: z
Rozwiąż ćwiczenie

FilmProgramowanie w C++. Wprowadzenie

Film krótko wprowadza do programowania w języku C++ – omawia podstawowe operatory arytmetyczne
i porównania oraz funkcje.

(chmura tagów – C++) © Gordan/Shutterstock.com

Ćwiczenie 1Szyfrowanie znaku

Zdefiniuj funkcję szyfruj_znak(char znak, int klucz), której parametrami są – odpowiednio – dowolna mała litera alfabetu łacińskiego oraz liczba całkowita nieujemna mniejsza od 1000, a wynikiem jest litera zaszyfrowana danym kluczem. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji szyfruj_znak('a', 3), jest d.
  • Wynikiem funkcji szyfruj_znak('z', 7), jest g.
#include <iostream> using namespace std; // zdefiniuj funkcję char szyfruj_znak(char znak, int klucz) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem szyfruj_znak('a', 26) jest a
return szyfruj_znak('a', 26) == 'a';
a
szyfruj_znak('a', 26)
Wynikiem szyfruj_znak('z', 13) jest m
return szyfruj_znak('z', 13) == 'm';
m
szyfruj_znak('z', 13)
Wynikiem szyfruj_znak('c', 520) jest c
return szyfruj_znak('c', 520) == 'c';
c
szyfruj_znak('c', 520)
Rozwiąż ćwiczenie

InfografikaAlgorytm

Infografika pokazuje, czym jest algorytm, na prostym przykładzie z życia codziennego.

Ćwiczenie 0

Aby stworzyć program, którego wynikiem będzie dany napis z pominiętymi literami, np. a, trzeba przeanalizować napis znak po znaku za pomocą pętli for. Do zmiennej będącej wynikiem, której wartość początkowa jest pustym napisem, należy dodać tylko znaki niebędące literą a. Przeanalizuj zapis, a następnie zmodyfikuj kod tak, aby otrzymać napis z pominiętymi spacjami.

#include <iostream> using namespace std; string pomin(string napis) { string pom = ""; for (int i = 0; i < napis.size(); i++) if (napis[i] != 'a') pom = pom + napis[i]; return pom; } int main() { cout << pomin("agama brodata") << endl; cout << pomin("papuga") << endl; cout << pomin("delfin butelkonosy") << endl; cout << pomin("salamandra czerwona z licznymi plamkami") << endl; return 0; }
Wynikiem funkcji pomin("lampart") jest lampart
return pomin("lampart")=="lampart";
lampart
pomin("lampart")
Wynikiem funkcji pomin(" g e p a r d ") jest gepard
return pomin(" g e p a r d ")=="gepard";
gepard
pomin(" g e p a r d ")
Wynikiem funkcji pomin("za skro niec ") jest zaskroniec
return pomin("za skro niec ")=="zaskroniec";
zaskroniec
pomin("za skro niec ")
Rozwiąż ćwiczenie

Ćwiczenie 0

Jeśli trzeba przeanalizować napis znak po znaku, najlepiej zrobić to za pomocą pętli for. Wartość początkowa zmiennej będącej wynikiem powinna być tzw. pustym napisem. Wynikiem zdefiniowanej poniżej funkcji papuga(string napis) jest napis z podwojoną każdą literą. Zmodyfikuj kod tak, aby po uruchomieniu skryptu otrzymać napis z potrojoną każdą literą.

#include <iostream> using namespace std; string papuga(string napis) { string pom = ""; for (int i = 0; i < napis.size(); i++) pom = pom + napis[i] + napis[i]; return pom; } int main() { cout << papuga("agawa") << endl; cout << papuga("krokus") << endl; return 0; }
Wynikiem funkcji papuga("bez") jest bbbeeezzz
return papuga("bez")=="bbbeeezzz";
bbbeeezzz
papuga("bez")
Wynikiem funkcji papuga("bratki") jest bbbrrraaatttkkkiii
return papuga("bratki")=="bbbrrraaatttkkkiii";
bbbrrraaatttkkkiii
papuga("bratki")
Wynikiem funkcji papuga("-*-") jest ---***---
return papuga("-*-")=="---***---";
---***---
papuga("-*-")
Rozwiąż ćwiczenie

Ćwiczenie 1Zliczanie pojedynczych znaków w tekście

Zdefiniuj funkcję ile(string s, char z), której parametrami są ciąg zna­ków oraz znak A, C, G lub T, a wynikiem jest lista wystąpień danego znaku w ciągu znaków. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji ile("CAATAAAAA", 'T') jest 1.
  • Wynikiem funkcji ile("TCTAAAGATATCGGG", 'A') jest 5.
#include <iostream> using namespace std; // zdefiniuj funkcję int ile(string s, char z) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji ile("AAAAAA", 'A') jest 6
return ile("AAAAAA", 'A')==6;
6
ile("AAAAAA", 'A')
Wynikiem funkcji ile("CCC", 'T') jest 0
return ile("CCC", 'T')==0;
0
ile("CCC", 'T')
Wynikiem funkcji ile("TCCAGGC", 'G') jest 2
return ile("TCCAGGC", 'G')==2;
2
ile("TCCAGGC", 'G')
Rozwiąż ćwiczenie

FilmProgramowanie w C++. Funkcje obliczeniowe

Film ukazuje wykorzystanie instrukcji warunkowej oraz instrukcji iteracji w obliczeniach na przykładzie prostych problemów szachowych.

Ćwiczenie 0

a) Zmienna x ma wartość 3, a zmienna y – wartość 5. Zastosuj zmienną pomocniczą pom i zamień te wartości.

#include <iostream> using namespace std; int main() { int x = 3; int y = 5; // tutaj wpisz rozwiązanie cout << x << endl; cout << y << endl; return 0; }
5 3
Rozwiąż ćwiczenie

b) Poniższy program sprawdza, czy liczba 6 jest podzielna przez 3.

Jak sprawdzić, czy liczba 14 jest podzielna przez 7?

liczba podzielna przez 7
Rozwiąż ćwiczenie

c) Przeanalizuj poniższy kod, a następnie zmień go tak, aby po uruchomieniu skryptu został poprawnie wypisany jeden z dwóch napisów: zero lub liczba różna od zera.

#include <iostream> using namespace std; int main() { int x = 5; if (x > 0) cout << "liczba dodatnia" << endl; else if (x == 0) cout << "zero" << endl; else cout << "liczba ujemna" << endl; return 0; }
liczba różna od zera
Rozwiąż ćwiczenie

d) Poniższy program wypisuje liczby całkowite od 0 do 9 włącznie. Litera i jest nazwą zmiennej sterującej pętlą for. Pierwszy parametr nadaje początkową wartość zmiennym, drugi parametr to warunek kończący pętlę, trzeci to zwiększenie (zmniejszenie) licznika pętli. Zmodyfikuj poniższy kod tak, aby wypisywały się wszystkie liczby parzyste od 2 do 20.

#include <iostream> using namespace std; int main() { for (int i = 0; i < 10; i++) cout << i << endl; return 0; }
2 4 6 8 10 12 14 16 18 20
Rozwiąż ćwiczenie

Ćwiczenie 1Ile korali

Zdefiniuj funkcję ile(int k), której parametrem jest liczba korali na boku kwadratu k, a wynikiem – łączna liczba korali we wzorze. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji ile(5) jest 25.
  • Wynikiem funkcji ile(6) jest 36.
#include <iostream> using namespace std; // zdefiniuj funkcję int ile(int k) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji ile(1) jest 1.
return ile(1) == 1;
1
ile(1)
Wynikiem funkcji ile(8) jest 64.
return ile(8) == 64;
64
ile(8)
Wynikiem funkcji ile(26) jest 676.
return ile(26) == 676;
676
ile(26)
Rozwiąż ćwiczenie

Ćwiczenie 2Dwukolorowy romb

Zdefiniuj funkcję ile_kolor(int k, char kolor), której parame­trami są liczba korali na boku kwadratu k i kolor korali – c (czerwony) lub n (niebieski), a wynikiem jest liczba korali podanego koloru we wzorze. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji ile_kolor(6, 'c') jest 18.
  • Wynikiem funkcji ile_kolor(7, 'c') jest 24.
  • Wynikiem funkcji ile_kolor(6, 'n') jest 18.
  • Wynikiem funkcji ile_kolor(7, 'n') jest 25.
#include <iostream> using namespace std; // zdefiniuj funkcję int ile_kolor(int k, char kolor) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji ile_kolor(32, 'c') jest 512.
return ile_kolor(32, 'c') == 512;
512
ile_kolor(32, 'c')
Wynikiem funkcji ile_kolor(31, 'c') jest 480.
return ile_kolor(31, 'c') == 480;
480
ile_kolor(31, 'c')
Wynikiem funkcji ile_kolor(32, 'n') jest 512.
return ile_kolor(32, 'n') == 512;
512
ile_kolor(32, 'n')
Wynikiem funkcji ile_kolor(31, 'n') jest 481.
return ile_kolor(31, 'n') == 481;
481
ile_kolor(31, 'n')
Rozwiąż ćwiczenie

Ćwiczenie 2Zliczanie ciągów znaków w tekście

Zdefiniuj funkcję pary(string s), której parametrem jest łań­cuch DNA, a wynikiem – liczba wystąpień par jednakowych symboli (np. TTAT – 1, TTTA – 2, TATA – 0). Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji pary("TGATTCTGAACAAGTGTT") jest 4.
  • Wynikiem funkcji pary("TGATATTCGATGTGAAAAAGTCATACTGTT") jest 6.
#include <iostream> using namespace std; // zdefiniuj funkcję int pary(string s) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji pary("ACGTGTCA") jest 0
return pary("ACGTGTCA")==0;
0
pary("ACGTGTCA")
Wynikiem funkcji pary("ACGTTT") jest 2
return pary("ACGTTT")==2;
2
pary("ACGTTT")
Wynikiem funkcji pary("T") jest 0
return pary("T")==0;
0
pary("T")
Rozwiąż ćwiczenie

Ćwiczenie 3Piramida

Zdefiniuj funkcję piramida(int k), której parametrem jest liczba korali w podstawie k, a wynikiem – łączna liczba korali. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji piramida(5) jest 15.
  • Wynikiem funkcji piramida(6) jest 21.
#include <iostream> using namespace std; // zdefiniuj funkcję int piramida(int k) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji piramida(1) jest 1.
return piramida(1) == 1;
1
piramida(1)
Wynikiem funkcji piramida(8) jest 36.
return piramida(8) == 36;
36
piramida(8)
Wynikiem funkcji piramida(26) jest 351.
return piramida(26) == 351;
351
piramida(26)
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 1

Przeanalizuj poniższą pętlę.

Twój wynik to: /1
  • Ile razy zostanie wykonana instrukcja?

InfografikaPodstawowe konstrukcje programistyczne

Infografika przedstawia podstawowe konstrukcje programistyczne, tj. sekwencję poleceń, instrukcję warunkową oraz pętle for i while.

PrezentacjaC++ – powtórzenie

Prezentacja przypomina operatory arytmetyczne stosowane w języku C++, konstrukcję instrukcji warunkowej oraz pętli for i while.

Ćwiczenie 0

Kliknij polecenie ROZWIĄŻ ĆWICZENIE, aby wyświetlić edytor, w którym będziesz pisać swoje programy. Sprawdź, jaki jest efekt zapisanego kodu – kliknij przycisk URUCHOM PROGRAM.

#include <iostream> using namespace std; int main() { cout << "Zaczynam programować" << endl; cout << "w języku C++" << endl; return 0; }
Zaczynam programować w języku C++
Rozwiąż ćwiczenie

W większości ćwiczeń oprócz wyniku dla parametrów zadanych przez ciebie zobaczysz też dodatkowe testy, dokładniej sprawdzające uruchomiony program – jeśli w tabeli zawierającej wyniki testów wartości w kolumnach Oczekiwano i Otrzymano są jednakowe, wyświetli się wynik Pozytywny, który oznacza, że twój program został poprawnie skonstruowany. Jeśli choć jeden wynik testu będzie oznaczony jako Negatywny, musisz coś jeszcze poprawić.

Ćwiczenie 1Wypisywanie tekstu

Wypisz na ekranie trzy wybrane przez siebie hasła na temat podróżowania. Każde z nich powinno wyświetlać się w nowym wierszu.

#include <iostream> using namespace std; int main() { cout << "pierwsze hasło" << endl; cout << "drugie hasło" << endl; cout << "trzecie hasło" << endl; return 0; }
pierwsze hasło drugie hasło trzecie hasło
Rozwiąż ćwiczenie

Ćwiczenie 2Podstawowe działania arytmetyczne bez zmiennych

Wyznacz kolejno: sumę, różnicę, iloczyn, iloraz, iloraz całkowity, resztę z dzielenia całkowitego. Do obliczeń wykorzystaj liczby całkowite.

#include <iostream> using namespace std; int main() { cout << 7 + 2 << endl; cout << 7 - 2 << endl; //wpisz kolejne działania return 0; }
Rozwiąż ćwiczenie

Ćwiczenie 3Kupowanie obcej waluty

Oblicz, ile musisz zapłacić w złotówkach za 126 euro, jeśli 1 euro = 4,74 zł.

#include <iostream> using namespace std; int main() { // wpisz swoje rozwiązanie return 0; }
Rozwiąż ćwiczenie

Ćwiczenie 4Porównanie cen wyrażonych w różnych walutach

Te same buty w Grecji kosztują 49 euro, a w Polsce 200 zł. Sprawdź, czy buty kupio­ne w Grecji są droższe niż buty kupione w Polsce, jeśli 1 euro = 4,76 zł. Zastosuj operatory arytmetyczne i porównania.

#include <iostream> using namespace std; int main() { cout << (49 // wpisz operator 4.76 // wpisz operator 200); return 0; }
1
Rozwiąż ćwiczenie

Ćwiczenie 5Średni dystans

W czasie wakacji uczniowie na obozie wędrownym przeszli w ciągu kolejnych trzech dni 12, 14 i 18 km. Zdefiniuj odpowiednie zmienne i oblicz dzienną średnią pokonywanych tras.

#include <iostream> using namespace std; int main() { //zdefiniuj zmienne //oblicz średni dystans i wypisz wynik return 0; }
Rozwiąż ćwiczenie

Ćwiczenie 3Zmiana struktury ciągu znaków

Odwrotne uzupełnienie łańcucha DNA to ciąg utworzony przez odwrócenie dane­go ciągu i dopełnienie każdego symbolu, tj. zamiany A na T i odwrotnie oraz C na G i odwrotnie (np. CTGA → AGTC → TCAG). Zdefiniuj funkcję oduz(string s), której parametrem jest łańcuch DNA, a wynikiem jego odwrotne uzupełnienie. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji oduz("TGACCCA") jest TGGGTCA.
  • Wynikiem funkcji oduz("TGATATTCGATGTGAAAAA") jest TTTTTCACATCGAATATCA.
#include <iostream> using namespace std; // zdefiniuj funkcję string oduz(string s) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji oduz("AAAAAGG") jest ciąg znaków CCTTTTT
return oduz("AAAAAGG")=="CCTTTTT";
CCTTTTT
oduz("AAAAAGG")
Wynikiem funkcji oduz("ATGC") jest ciąg znaków GCAT
return oduz("ATGC")=="GCAT";
GCAT
oduz("ATGC")
Wynikiem funkcji oduz("C") jest ciąg znaków G
return oduz("C")=="G";
G
oduz("C")
Rozwiąż ćwiczenie

Ćwiczenie 4Zmiana struktury ciągu znaków

Przeanalizuj dane w tabeli i zdefiniuj funkcję ta(string s), której parametrem jest łańcuch DNA, a wynikiem – łańcuch DNA z gwiazdką (*) w miejscu symboli C, G i T. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji ta("TGACCCA") jest **A***A.
  • Wynikiem funkcji ta("TGATATTCGATGTGAAAAA") jest **A*A****A****AAAAA.
#include <iostream> using namespace std; // zdefiniuj funkcję string ta(string s) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji ta("CCCC") jest ciąg znaków ****
return ta("CCCC")=="****";
****
ta("CCCC")
Wynikiem funkcji ta("CAGATTTT") jest ciąg znaków *A*A****
return ta("CAGATTTT")=="*A*A****";
*A*A****
ta("CAGATTTT")
Wynikiem funkcji ta("ATGCCGTA") jest ciąg znaków A******A
return ta("ATGCCGTA")=="A******A";
A******A
ta("ATGCCGTA")
Rozwiąż ćwiczenie

Ćwiczenie 6Przeliczanie prędkości

Samolot z Warszawy do Rzymu pokonuje dystans 1320 km. Zdefiniuj funkcję jak_szybko(float t), której parametrem jest czas przelotu samolo­tu w godzinach, a wynikiem – średnia prędkość tego samolotu. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji jak_szybko(2.5) jest 528.
  • Wynikiem funkcji jak_szybko(3) jest 440.
#include <iostream> using namespace std; // zdefiniuj funkcję float jak_szybko(float t) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji jak_szybko(2.75) jest 480.
return jak_szybko(2.75)>479.999 && jak_szybko(2.75)<480.001;
480
jak_szybko(2.75)
Wynikiem funkcji jak_szybko(3.3) jest 400
return jak_szybko(3.3)>399.999 && jak_szybko(3.3)<400.001;
400
jak_szybko(3.3)
Wynikiem funkcji jak_szybko(2) jest 660
return jak_szybko(2)==660;
660
jak_szybko(2)
Rozwiąż ćwiczenie

Ćwiczenie 7Przeliczanie jednostek

Mila lądowa, jednostka długości stosowana w krajach anglosaskich, równa jest 1,609 km. Zdefiniuj funkcję zamiana(float m), której parame­trem jest odległość w milach lądowych, a wynikiem – ta sama odległość w kilometrach. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji zamiana(10) jest 16.09.
  • Wynikiem funkcji zamiana(12) jest 19.308.
#include <iostream> using namespace std; // zdefiniuj funkcję float zamiana(float m) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji zamiana(100) jest 160.9
return zamiana(100)>160.89 && zamiana(100)<160.91;
160.9
zamiana(100)
Wynikiem funkcji zamiana(400) jest 643.6
return zamiana(400)>643.59 && zamiana(400)<643.61;
643.6
zamiana(400)
Wynikiem funkcji zamiana(898) jest 1444.88
return zamiana(898)>1444.87 && zamiana(898)<1444.89;
1444.88
zamiana(898)
Rozwiąż ćwiczenie

Ćwiczenie 2Szyfrowanie tekstu

Zdefiniuj funkcję szyfruj(string tekst, int klucz), której parametrami są – odpowiednio – ciąg małych liter alfabetu łacińskiego oraz liczba całkowita nieujemna mniejsza od 1000, a wynikiem jest tekst zaszyfrowany danym kluczem. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji szyfruj("kiedyspotkanie", 13), jest xvrqlfcbgxnavr.
  • Wynikiem funkcji szyfruj("tajne", 3), jest wdmqh.
#include <iostream> using namespace std; char szyfruj_znak(char znak, int klucz) { int litera_alfabetu = int(znak) - 97; int kod_nowej_litery = (litera_alfabetu + klucz) % 26; return char (kod_nowej_litery + 97); } // zdefiniuj funkcję string szyfruj(string tekst, int klucz) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji szyfruj("innabajka", 13) jest ciąg znaków vaanonwxn
return szyfruj("innabajka", 13) == "vaanonwxn";
vaanonwxn
szyfruj("innabajka", 13)
Wynikiem funkcji szyfruj("celujdobrze", 520) jest ciąg znaków celujdobrze
return szyfruj("celujdobrze", 520) == "celujdobrze";
celujdobrze
szyfruj("celujdobrze", 520)
Wynikiem funkcji szyfruj("rakinieboraki", 99) jest ciąg znaków mvfdidzwjmvfd
return szyfruj("rakinieboraki", 99) == "mvfdidzwjmvfd";
mvfdidzwjmvfd
szyfruj("rakinieboraki", 99)
Rozwiąż ćwiczenie

Ćwiczenie 3Odszyfrowywanie tekstu

Wynikiem zdefiniowanej poniżej funkcji deszyfruj(string tekst, int klucz) powinien być od­szyfrowany tekst z danym kluczem, np.:

  • wynikiem funkcji deszyfruj("xvrqlfcbgxnavr", 13) jest ciąg znaków kiedyspotkanie,
  • wynikiem funkcji deszyfruj("wdmqh", 3) jest ciąg znaków tajne.

Przeanalizuj podane informacje i popraw błąd w skrypcie.

#include <iostream> using namespace std; char szyfruj_znak(char znak, int klucz) { int litera_alfabetu = int(znak) - 97; int kod_nowej_litery = (litera_alfabetu + klucz) % 26; return char (kod_nowej_litery + 97); } string szyfruj(string tekst, int klucz) { string pom = ""; for (int i = 0; i < tekst.size(); i++) { pom = pom + szyfruj_znak(tekst[i], klucz); } return pom; } string deszyfruj(string tekst, int klucz) { return szyfruj(tekst, 26 + klucz % 26); } int main() { cout << deszyfruj("xvrqlfcbgxnavr", 13) << endl; cout << deszyfruj("wdmqh", 3) << endl; return 0; }
Wynikiem funkcji deszyfruj("pwfaijeyw", 126) jest ciąg znaków tajemnica
return deszyfruj("pwfaijeyw", 126) == "tajemnica";
tajemnica
deszyfruj("pwfaijeyw", 126)
Wynikiem funkcji deszyfruj("vaanonwxn", 13) jest ciąg znaków innabajka
return deszyfruj("vaanonwxn", 13) == "innabajka";
innabajka
deszyfruj("vaanonwxn", 13)
Wynikiem funkcji deszyfruj("tuvuqu", 410) jest ciąg znaków zabawa
return deszyfruj("tuvuqu", 410) == "zabawa";
zabawa
deszyfruj("tuvuqu", 410)
Rozwiąż ćwiczenie

Ćwiczenie 1Przestawianie parami

Zdefiniuj funkcję szyfr(string s), której parametrem jest tekst jawny składający się z małych liter alfabetu łacińskiego i pojedynczych spacji, a wy­nikiem – szyfrogram utworzony przez przestawienie kolejnych par znaków, przy czym spacja traktowana jest jak każda inna litera i również podlega zamianie.

Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji szyfr("kotwica") jest okwtcia.
  • Wynikiem funkcji szyfr("szyfrowanie jest trudne") jest zsfyorawin eejtst urnde.
#include <iostream> using namespace std; // zdefiniuj funkcję string szyfr(string s) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji szyfr(" pierwsza") jest p eiwrzsa
return szyfr(" pierwsza")=="p eiwrzsa";
p eiwrzsa
szyfr(" pierwsza")
Wynikiem funkcji szyfr("ostatnia ") jest soatntai
return szyfr("ostatnia ")=="soatntai ";
soatntai
szyfr("ostatnia ")
Wynikiem funkcji szyfr("w") jest w
return szyfr("w")=="w";
w
szyfr("w")
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 2

Przeanalizuj poniższą pętlę.

Jaki będzie efekt działania powyższej pętli?

A)

1
2
3
4
5

B) 1 2 3 4 5

C)

5
4
3
2
1

D) 5 4 3 2 1

Twój wynik to: /1
  • Wybierz poprawną odpowiedź.

Ćwiczenie dodatkowe 3

Zdefiniuj funkcję lata(int ile), której parametrem jest liczba lat danego człowieka, a wynikiem: 0 – jeśli dana osoba jest niepełnoletnia (ma mniej niż 18 lat), 2 – jeśli dana osoba jest w wieku 50+, 1 – w pozostałych przypadkach. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji lata(14) jest 0.
  • Wynikiem funkcji lata(46) jest 1.
  • Wynikiem funkcji lata(65) jest 2.
#include <iostream> using namespace std; // zdefiniuj funkcję int lata(int ile) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji lata(16) jest 0.
return lata(16) == 0;
0
lata(16)
Wynikiem funkcji lata(18) jest 1.
return lata(18) == 1;
1
lata(18)
Wynikiem funkcji lata(96) jest 2.
return lata(96) == 2;
2
lata(96)
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 1

Zdefiniuj funkcję codruga(string napis), której wynikiem jest napis z pominiętym co drugim znakiem. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji codruga("aksamitka") jest asmta.
  • Wynikiem funkcji codruga("chaber") jest cae.
#include <iostream> using namespace std; // zdefiniuj funkcję string codruga(string napis) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji codruga("irys") jest iy
return codruga("irys")=="iy";
iy
codruga("irys")
Wynikiem funkcji codruga("magnolia") jest mgoi
return codruga("magnolia")=="mgoi";
mgoi
codruga("magnolia")
Wynikiem funkcji codruga("rosiczka") jest rsck
return codruga("rosiczka")=="rsck";
rsck
codruga("rosiczka")
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 2

Zdefiniuj funkcję wspak(string napis), której wynikiem jest napis ze znakami przestawionymi od końca do początku. Rozwiązanie zapisz za pomocą pętli. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji wspak("aloes") jest seola.
  • Wynikiem funkcji wspak("dalia") jest ailad.
#include <iostream> using namespace std; // zdefiniuj funkcję string wspak(string napis) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji wspak("kaktus") jest sutkak
return wspak("kaktus")=="sutkak";
sutkak
wspak("kaktus")
Wynikiem funkcji wspak("mak") jest kam
return wspak("mak")=="kam";
kam
wspak("mak")
Wynikiem funkcji wspak("orchidea") jest aedihcro
return wspak("orchidea")=="aedihcro";
aedihcro
wspak("orchidea")
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 3

Zdefiniuj funkcję lustro(string napis), której wynikiem jest napis z połączonym napisem wspak. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji lustro("aster") jest asterretsa.
  • Wynikiem funkcji lustro("peonia") jest peoniaainoep.
#include <iostream> using namespace std; // zdefiniuj funkcję string wspak(string napis) { } // zdefiniuj funkcję string lustro(string napis) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji lustro("kalina") jest kalinaanilak
return lustro("kalina")=="kalinaanilak";
kalinaanilak
lustro("kalina")
Wynikiem funkcji lustro("malwa") jest malwaawlam
return lustro("malwa")=="malwaawlam";
malwaawlam
lustro("malwa")
Wynikiem funkcji lustro("skrzyp") jest skrzyppyzrks
return lustro("skrzyp")=="skrzyppyzrks";
skrzyppyzrks
lustro("skrzyp")
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 4

Zdefiniuj funkcję przeplot(string napis), której wynikiem jest napis powstały z oryginalnego napisu poprzez dostawienie po każdej literze znaku z danego napisu, ale od końca. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji przeplot("azalia") jest aaziallaizaa.
  • Wynikiem funkcji przeplot("mniszek") jest mkneizsszienkm.
#include <iostream> using namespace std; // zdefiniuj funkcję string wspak(string napis) { } // zdefiniuj funkcję string przeplot(string napis) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji przeplot("jaskier") jest jraesikkisearj
return przeplot("jaskier")=="jraesikkisearj";
jraesikkisearj
przeplot("jaskier")
Wynikiem funkcji przeplot("zawilec") jest zcaewliilweacz
return przeplot("zawilec")=="zcaewliilweacz";
zcaewliilweacz
przeplot("zawilec")
Wynikiem funkcji przeplot("wrzos") jest wsrozzorsw
return przeplot("wrzos")=="wsrozzorsw";
wsrozzorsw
przeplot("wrzos")
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 5

Metoda find() zwraca pozycję pierwszego wystąpienia frazy w tekście, podanej jako argument, lub zwraca wartość string::npos w sytuacji, gdy fraza nie zostanie odszukana. Przeanalizuj poniższy fragment kodu.

Twój wynik to: /1
  • Na której pozycji odnaleziony zostanie ciąg szukaj?

Ćwiczenie 8O której godzinie pociąg dotrze do celu?

Nocny pociąg z Krakowa do Paryża wyjeżdża ze stacji o godzinie 21. Zdefiniuj funkcję godzina(int n), której parametrem jest czas przejazdu pociągu w godzinach, a wynikiem – godzina dojazdu do celu. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji godzina(14) jest 11.
  • Wynikiem funkcji godzina(20) jest 17.
#include <iostream> using namespace std; // zdefiniuj funkcję int godzina(int n) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji godzina(16) jest 13.
return godzina(16)==13;
13
godzina(16)
Wynikiem funkcji godzina(5) jest 2.
return godzina(5)==2;
2
godzina(5)
Wynikiem funkcji godzina(2) jest 23.
return godzina(2)==23;
23
godzina(2)
Rozwiąż ćwiczenie

Ćwiczenie 9Która godzina będzie w Nowym Jorku?

Sprawdź, jaka strefa czasowa obowiązuje w Nowym Jorku, a następnie zdefiniuj funkcję godz_nj(int g), której parametrem jest pełna godzina w Warszawie, a wynikiem – aktualna pełna godzina w Nowym Jorku. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji godz_nj(18) jest 12.
  • Wynikiem funkcji godz_nj(2) jest 20.
#include <iostream> using namespace std; // zdefiniuj funkcję int godz_nj(int g) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji godz_nj(16) jest 10
return godz_nj(16)==10;
10
godz_nj(16)
Wynikiem funkcji godz_nj(5) jest 23
return godz_nj(5)==23;
23
godz_nj(5)
Wynikiem funkcji godz_nj(21) jest 15
return godz_nj(21)==15;
15
godz_nj(21)
Rozwiąż ćwiczenie

Ćwiczenie 4Inaczej na pozycjach nieparzystych i parzystych

Zdefiniuj funkcję szyfruj2(string tekst, int klucz1, int klucz2), której parametrami są – odpowiednio – ciąg małych liter alfabetu łacińskiego oraz dwie liczby całkowite, a wynikiem jest tekst zaszyfrowany w ten sposób, że litery na pozycjach parzystych zaszyfrowano kluczem klucz1, a na nieparzystych – kluczem klucz2. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji szyfruj2("poufnytekst", 3, 10) jest zreixbdhuvd.
  • Wynikiem funkcji szyfruj2("poczekajnamnie", 123, 5) jest uhhsjdfcstrgnx.
#include <iostream> using namespace std; // zdefiniuj funkcję char szyfruj_znak(char znak, int klucz) { int litera_alfabetu = int(znak) - 97; int kod_nowej_litery = (litera_alfabetu + klucz) % 26; return char (kod_nowej_litery + 97); } // zdefiniuj funkcję string szyfruj2(string tekst, int klucz1, int klucz2) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji szyfruj2("innabajka", 13, 104) jest ciąg znaków iannbnjxa
return szyfruj2("innabajka", 13, 104)=="iannbnjxa";
iannbnjxa
szyfruj2("innabajka", 13, 104)
Wynikiem funkcji szyfruj2("celujtam", 520, 728) jest ciąg znaków celujtam
return szyfruj2("celujtam", 520, 728)=="celujtam";
celujtam
szyfruj2("celujtam", 520, 728)
Wynikiem funkcji szyfruj2("otokot", 410, 897) jest ciąg znaków bnbebn
return szyfruj2("otokot", 410, 897)=="bnbebn";
bnbebn
szyfruj2("otokot", 410, 897)
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 6

Korzystając z klasy string, można wykonywać operacje na tekście. Poniżej zamieszczono opisy działania podstawowych metod klasy string.

A. odczytywanie długości tekstu
B. dołączenie nowego tekstu na koniec istniejącego tekstu
C. wstawianie nowych znaków we wskazanym miejscu istniejącego tekstu
D. usuwanie fragmentu tekstu

Twój wynik to: /1
  • Dopasuj nazwę metody do jej opisu.

Ćwiczenie dodatkowe 7

Przeanalizuj poniższy kod.

Twój wynik to: /1
  • Jaki napis jest wartością obiektu n3 po wykonaniu kodu?

Ćwiczenie dodatkowe 8

Przeanalizuj poniższy fragment kodu.

Twój wynik to: /1
  • Jaką postać przyjmie ciąg tekstowy w po wykonaniu funkcji reverse?

Zadanie 1Sekwencja błędów

Odległość Hamminga między dwoma łańcuchami DNA oznacza liczbę symboli, któ­rymi różnią się oba łańcuchy. Odległość Hamminga między łańcuchami st o tej samej długości wynosi 8. Niepasujące symbole są zaznaczone kolorem:

  • łańcuch s – CAGGCTACTACCGGTAT,
  • łańcuch t – CATCGTAATGCAGGGCT.

Zdefiniuj funkcję hamming(string s, string t), gdzie st to łańcuchy o tej samej długości. Wynikiem funkcji jest liczba będąca odległością Hamminga między danymi łańcuchami. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji hamming("CAGGTT", "CAGGTT") jest 0.
  • Wynikiem funkcji hamming("CAGGCTACTACCGGTAT", "CATCGTAATGCAGGGCT") jest 8.
#include <iostream> using namespace std; // zdefiniuj funkcję int hamming(string s, string t) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji hamming("AAAACTACTA", "CATCGTAATG") jest 6
return hamming("AAAACTACTA", "CATCGTAATG")==6;
6
hamming("AAAACTACTA", "CATCGTAATG")
Wynikiem funkcji hamming("CCCCCCCC", "AAAAAAAA") jest 8
return hamming("CCCCCCCC", "AAAAAAAA")==8;
8
hamming("CCCCCCCC", "AAAAAAAA")
Wynikiem funkcji hamming("GACATAGCTA", "GAACCGGGGG") jest 7
return hamming("GACATAGCTA", "GAACCGGGGG")==7;
7
hamming("GACATAGCTA", "GAACCGGGGG")
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 4

BMI to wskaźnik masy ciała, który obliczamy przez podzielenie masy ciała podanej w kilogramach przez kwadrat wysokości podanej w metrach. Zdefiniuj funkcję bmi(int kg, float m), której parametrami są waga podana w kilogramach oraz wzrost podany w metrach, a wynikiem jest jeden z trzech komunikatów w zależności od wartości BMI:

  • niedowaga dla BMI < 18,5,
  • nadwaga dla BMI > 25,
  • waga prawidłowa dla pozostałych wartości

Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji bmi(50, 1.63) jest waga prawidłowa.
  • Wynikiem funkcji bmi(44, 1.63) jest niedowaga.
  • Wynikiem funkcji bmi(90, 1.63) jest nadwaga.
#include <iostream> using namespace std; // zdefiniuj funkcję string bmi(int kg, float m) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji bmi(34,1.56) jest niedowaga.
return bmi(34,1.56) == "niedowaga";
niedowaga
bmi(34,1.56)
Wynikiem funkcji bmi(74,1.56) jest nadwaga.
return bmi(74,1.56) == "nadwaga";
nadwaga
bmi(74,1.56)
Wynikiem funkcji bmi(54,1.64) jest waga prawidłowa.
return bmi(54,1.64) == "waga prawidłowa";
waga prawidłowa
bmi(54,1.64)
Rozwiąż ćwiczenie

Pytania quizoweWyszukiwanie wzorca w tekście

Twój wynik to: /3
  • Ile razy wykona się poniższa pętla dla napisu w = "laseczek"?
    for (int i = 0; i < w.size(); i++) 
        cout << w[i] << endl;
  • Jaka wartość zostanie wypisana dla napisu w = "wiaderko" w wyniku działania polecenia cout << w.size();?
  • Jaka litera zostanie wypisana dla napisu w = "kaktus" w wyniku działania polecenia cout << w[5] << endl;?

Ćwiczenie dodatkowe 5

Zdefiniuj funkcję naj(int liczba1, int liczba2, int liczba3), której parametrami są trzy liczby całkowite, a wynikiem jest największa z nich. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji naj(1, 2, 3) jest 3.
  • Wynikiem funkcji naj(99, 33, 12) jest 99.
#include <iostream> using namespace std; // zdefiniuj funkcję int naj(int liczba1, int liczba2, int liczba3) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji naj(24,5,6) jest 24.
return naj(24,5,6) == 24;
24
naj(24,5,6)
Wynikiem funkcji naj(14,8,6) jest 14.
return naj(14,8,6) == 14;
14
naj(14,8,6)
Wynikiem funkcji naj(24,55,16) jest 55.
return naj(24,55,16) == 55;
55
naj(24,55,16)
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 1

Polecenie endl przenosi kursor do następnej linii. Zmodyfikuj program tak, aby obliczał pole kwadratu. Zdefiniuj funkcję pole_kw(int bok).

#include <iostream> using namespace std; int obw_kw(int bok) { return 4 * bok; } int main() { cout << obw_kw(25) << endl; cout << obw_kw(101) << endl; return 0; }
Wynikiem funkcji pole_kw(1) jest 1
return pole_kw(1)==1;
1
pole_kw(1)
Wynikiem funkcji pole_kw(3) jest 9
return pole_kw(3)==9;
9
pole_kw(3)
Wynikiem funkcji pole_kw(99) jest 9801
return pole_kw(99)==9801;
9801
pole_kw(99)
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 2

Zdefiniuj funkcję obw_pr(int bok1, int bok2), której parametrami są dwie liczby będące długościami boków prostokąta, a wynikiem jest obwód tego prostokąta. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji obw_pr(25, 30) jest 110.
  • Wynikiem funkcji obw_pr(105, 95) jest 400.
#include <iostream> using namespace std; // zdefiniuj funkcję int obw_pr(int bok1, int bok2) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji obw_pr(1, 2) jest 6
return obw_pr(1, 2)==6;
6
obw_pr(1, 2)
Wynikiem funkcji obw_pr(11, 9) jest 40.
return obw_pr(11, 9)==40;
40
obw_pr(11, 9)
Wynikiem funkcji obw_pr(159, 200) jest 718.
return obw_pr(159, 200)==718;
718
obw_pr(159, 200)
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 6

Zdefiniuj funkcję waga(int pocz, int n), której parametrami są masa żuczka po urodzeniu podana w gramach oraz liczba miesięcy jego życia, a wynikiem jest masa żuczka po upływie n miesięcy. Załóż, że pierwszym miesiącu żuczek tyje o 2 g, w drugim o 4 g i w każdym następnym miesiącu o 2 g więcej niż w poprzednim. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji waga(2, 2) jest 8.
  • Wynikiem funkcji waga(5, 3) jest 17.
#include <iostream> using namespace std; // zdefiniuj funkcję int waga(int pocz, int n) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji waga(15,3) jest 27.
return waga(15,3) == 27;
27
waga(15,3)
Wynikiem funkcji waga(5,33) jest 1127.
return waga(5,33) == 1127;
1127
waga(5,33)
Wynikiem funkcji waga(12,365) jest 133602.
return waga(12,365) == 133602;
133602
waga(12,365)
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 7

Zdefiniuj funkcję skarbonka(int ile, int n), której parametrami są początkowa kwota w złotówkach znajdująca się w skarbonce oraz liczba miesięcy, a wynikiem jest suma pieniędzy w skarbonce po upływie n miesięcy. Załóż, że w pierwszym miesiącu wrzucamy do skarbonki 1 zł, a w każdym następnym dwa razy więcej niż w poprzednim, czyli kolejno 1 zł, 2 zł, 4 zł, 8 zł, 16 zł… Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji skarbonka(12, 2) jest 15.
  • Wynikiem funkcji skarbonka(0, 5) jest 31.
#include <iostream> using namespace std; // zdefiniuj funkcję int skarbonka(int ile, int n) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji skarbonka(11,2) jest 14.
return skarbonka(11,2) == 14;
14
skarbonka(11,2)
Wynikiem funkcji skarbonka(0,15) jest 32767.
return skarbonka(0,15) == 32767;
32767
skarbonka(0,15)
Wynikiem funkcji skarbonka(110,12) jest 4205.
return skarbonka(110,12) == 4205;
4205
skarbonka(110,12)
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 8

Zdefiniuj funkcję jaki(int n), której parametrem jest liczba naturalna n ≥ 3, a wynikiem  n-ty wyraz ciągu. Załóż, że pierwszy wyraz tego ciągu to 1, drugi to 2, a każdy następny równa się sumie dwóch poprzednich wyrazów pomniejszonej o 1, czyli kolejno: 1, 2, 2, 3, 4, 6, 9, 14, … Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji jaki(5) jest 4.
  • Wynikiem funkcji jaki(9) jest 22.
#include <iostream> using namespace std; // zdefiniuj funkcję int jaki(int n) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji jaki(6) jest 6.
return jaki(6) == 6;
6
jaki(6)
Wynikiem funkcji jaki(16) jest 611.
return jaki(16) == 611;
611
jaki(16)
Wynikiem funkcji jaki(29) jest 317812.
return jaki(29) == 317812;
317812
jaki(29)
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 3

Zdefiniuj funkcję waga(float kg), której parametrem jest waga towaru podana w kilogramach, a wynikiem –  ta sama waga podana w funtach. Załóż, że 1 kg = 2,2 funta. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji waga(2) jest 4.4.
  • Wynikiem funkcji waga(15) jest 33.
#include <iostream> using namespace std; // zdefiniuj funkcję float waga(float kg) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji waga(1) jest 2.2
return waga(1)==2.2;
2.2
waga(1)
Wynikiem funkcji waga(10) jest 22
return waga(10)==22;
22
waga(10)
Wynikiem funkcji waga(80) jest 176
return waga(80)==176;
176
waga(80)
Rozwiąż ćwiczenie

Zadanie 1Która godzina będzie w Warszawie?

Różnica czasu między Los Angeles a Warszawą wynosi dziewięć godzin – jeżeli w Los Angeles zegar wskazuje godzinę 21, to w Warszawie jest godzina 6 rano. Zdefiniuj funkcję godz_waw(int g), której parametrem jest pełna godzina w Los Angeles, a wynikiem – aktualna godzina w Warszawie. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji godz_waw (8) jest 17.
  • Wynikiem funkcji godz_waw (21) jest 6.
#include <iostream> using namespace std; // zdefiniuj funkcję int godz_waw(int g) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji godz_waw(24) jest 9
return godz_waw(24)==9;
9
godz_waw(24)
Wynikiem funkcji godz_waw(0) jest 9
return godz_waw(0)==9;
9
godz_waw(0)
Wynikiem funkcji godz_waw(12) jest 21
return godz_waw(12)==21;
21
godz_waw(12)
Rozwiąż ćwiczenie

Zadanie 2Ile to kosztuje?

Zdefiniuj funkcję cena(float f), której parametrem jest cena w dolarach funta danego pro­duktu, a wynikiem –  cena w złotówkach kilograma tego produktu. Załóż, że 1 USD = 3,83 PLN, a 1 funt = 0,45 kg. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji cena(1.35) jest 11.49.
  • Wynikiem funkcji cena(3.98) jest 33.874222222222.
#include <iostream> using namespace std; // zdefiniuj funkcję float cena(float f) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji cena(24.66) jest 209.884
return cena(24.66)>209.883 && cena(24.66)<209.885;
209.884
cena(24.66)
Wynikiem funkcji cena(199.8) jest 1700.52
return cena(199.8)>1700.51 && cena(199.8)<1700.53;
1700.52
cena(199.8)
Wynikiem funkcji cena(678.3) jest 5773.09
return cena(678.3)>5773.08 && cena(678.3)<5773.10;
5773.09
cena(678.3)
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 9

Ciąg Collatza zdefiniowany jest następująco: pierwsza liczba ciągu jest dowolną liczbą naturalną c, każda kolejna wartość ciągu obliczana jest na podstawie poprzedniej według następującej reguły: jeśli dana liczba jest parzysta, to dzielimy ją przez 2, w przeciwnym wypadku mnożymy ją przez 3 i dodajemy 1. Zdefiniuj funkcję collatz(int c, int n), której parametrami są liczba całkowita dodatnia c, od której zaczynamy obliczenia, i liczba powtórzeń n, natomiast wynikiem jest n-ty wyraz ciągu Collatza. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji collatz(11, 5) jest 13.
  • Wynikiem funkcji collatz(1, 10) jest 4.
#include <iostream> using namespace std; // zdefiniuj funkcję int collatz(int c, int n) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji collatz(7, 5) jest 52.
return collatz(7, 5) == 52;
52
collatz(7, 5)
Wynikiem funkcji collatz(119, 19) jest 11.
return collatz(119, 19) == 11;
11
collatz(119, 19)
Wynikiem funkcji collatz(51, 99) jest 1.
return collatz(51, 99) == 1;
1
collatz(51, 99)
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 10

Zdefiniuj funkcję suma(int liczba), której parametrem jest liczba całkowita dodatnia, a wynikiem – suma nieparzystych cyfr tej liczby. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji suma(1122445) jest 7.
  • Wynikiem funkcji suma(986713) jest 20.
#include <iostream> using namespace std; // zdefiniuj funkcję int suma(int liczba) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji suma(222222) jest 0.
return suma(222222) == 0;
0
suma(222222)
Wynikiem funkcji suma(983451) jest 18.
return suma(983451) == 18;
18
suma(983451)
Wynikiem funkcji suma(123987) jest 20.
return suma(123987) == 20;
20
suma(123987)
Rozwiąż ćwiczenie

Zadanie dodatkowe 1

Szachownica złożona jest z równych pól, naprzemiennie białych i czarnych. Zdefiniuj funkcję ile_pol(int n), której parametrem jest rozmiar szachownicy n, a wynikiem – liczba pól na szachownicy. Parametr n może przyjmować wartości od 2 do 32. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji ile_pol(8) jest 64.
  • Wynikiem funkcji ile_pol(13) jest 169.
#include <iostream> using namespace std; // zdefiniuj funkcję int ile_pol(int n) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji ile_pol(2) jest 4.
return ile_pol(2)==4;
4
ile_pol(2)
Wynikiem funkcji ile_pol(6) jest 36.
return ile_pol(6)==36;
36
ile_pol(6)
Wynikiem funkcji ile_pol(26) jest 676.
return ile_pol(26)==676;
676
ile_pol(26)
Rozwiąż ćwiczenie

Zadanie dodatkowe 2

Szachownica złożona jest z kwadratowych pól, naprzemiennie białych i czarnych. Lewy dolny róg (1, 1) zajmuje pole czarne. Zdefiniuj funk­cję ile_kolorowych(int n, char kolor), której parametrami są rozmiar szachownicy n i kolor pola – b (białe) lub c (czarne) – a wynikiem jest liczba pól w danym kolorze. Parametr n może przyjmować wartości od 2 do 32. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji ile_kolorowych(8, 'b') jest 32.
  • Wynikiem funkcji ile_kolorowych(7, 'b') jest 24.
  • Wynikiem funkcji ile_kolorowych(8, 'c') jest 32.
  • Wynikiem funkcji ile_kolorowych(7, 'c') jest 25.
#include <iostream> using namespace std; // zdefiniuj funkcję int ile_kolorowych(int n, char kolor) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji ile_kolorowych(32, 'b') jest 512.
return ile_kolorowych(32, 'b')==512;
512
ile_kolorowych(32, 'b')
Wynikiem funkcji ile_kolorowych(31, 'b') jest 480.
return ile_kolorowych(31, 'b')==480;
480
ile_kolorowych(31, 'b')
Wynikiem funkcji ile_kolorowych(32,'c') jest 512.
return ile_kolorowych(32, 'c')==512;
512
ile_kolorowych(32, 'c')
Wynikiem funkcji ile_kolorowych(31, 'c') jest 481.
return ile_kolorowych(31, 'c')==481;
481
ile_kolorowych(31, 'c')
Rozwiąż ćwiczenie

Zadanie dodatkowe 3

Wieża porusza się w tym samym rzędzie lub w tej samej kolumnie, o dowolną liczbę pól. Zdefiniuj funkcję ile_wieza(int n, int x, int y), której para­metrami są rozmiar szachownicy n oraz położenie figury (x, y), a wynikiem jest liczba pól atakowanych przez wieżę na pustej szachownicy. Parametr n może przyjmować wartości od 2 do 32. Pa­rametry xy mogą przyjmować wartości od 1 do n. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji ile_wieza(8, 2, 2) jest 14.
  • Wynikiem funkcji ile_wieza(13, 3, 4) jest 24.
#include <iostream> using namespace std; // zdefiniuj funkcję int ile_wieza(int n, int x, int y) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji ile_wieza(9, 2, 2) jest liczba 16.
return ile_wieza(9, 2, 2)==16;
16
ile_wieza(9, 2, 2)
Wynikiem funkcji ile_wieza(16, 8, 4) jest liczba 30.
return ile_wieza(16, 8, 4)==30;
30
ile_wieza(16, 8, 4)
Wynikiem funkcji ile_wieza(21, 5, 8) jest liczba 40.
return ile_wieza(21, 5, 8)==40;
40
ile_wieza(21, 5, 8)
Rozwiąż ćwiczenie

Zadanie dodatkowe 4

Goniec przesuwa się po przekątnych o dowolną liczbę pól i w dowolnym kierunku. Zdefiniuj funkcję ile_goniec(int n, int x, int y), której parame­trami są rozmiar szachownicy n oraz położenie figury (x, y), a wynikiem jest liczba pól atakowanych przez gońca na pustej szachownicy. Parametr n może przyjmować wartości od 2 do 32. Parametry xy mogą przyjmować wartości od 1 do n. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji ile_goniec(8, 2, 2) jest liczba 9.
  • Wynikiem funkcji ile_goniec(13, 3, 4) jest liczba 16.
#include <iostream> using namespace std; // zdefiniuj funkcję int ile_goniec(int n, int x, int y) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji ile_goniec(9, 2, 2) jest 10.
return ile_goniec(9, 2, 2)==10;
10
ile_goniec(9, 2, 2)
Wynikiem funkcji ile_goniec(16, 8, 4) jest 21.
return ile_goniec(16, 8, 4)==21;
21
ile_goniec(16, 8, 4)
Wynikiem funkcji ile_goniec(21, 5, 8) jest 28.
return ile_goniec(21, 5, 8)==28;
28
ile_goniec(21, 5, 8)
Rozwiąż ćwiczenie

Zadanie dodatkowe 5

Hetman może poruszać się jak wieża i goniec. Zdefiniuj funkcję ile_hetman(int n, int x, int y), której parame­trami są rozmiar szachownicy n oraz położenie figury (x, y), a wynikiem jest liczba pól atakowanych przez hetmana na pustej szachownicy. Parametr n może przyjmować wartości od 2 do 32. Parametry xy mogą przyjmować wartości od 1 do n. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji ile_hetman(8, 2, 2) jest 23.
  • Wynikiem funkcji ile_hetman(13, 3, 4) jest 40.
#include <iostream> using namespace std; int ile_wieza(int n, int x, int y) { return 2 * (n - 1); } int ile_goniec(int n, int x, int y) { return min(x - 1, n - y) + min(x - 1, y - 1) + min(n - x, y - 1) + min(n - x, n - y); } // zdefiniuj funkcję int ile_hetman(int n, int x, int y) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji ile_hetman(9, 2, 2) jest 26.
return ile_hetman(9, 2, 2)==26;
26
ile_hetman(9, 2, 2)
Wynikiem funkcji ile_hetman(16, 8, 4) jest 51.
return ile_hetman(16, 8, 4)==51;
51
ile_hetman(16, 8, 4)
Wynikiem funkcji ile_hetman(21, 5, 8) jest 68.
return ile_hetman(21, 5, 8)==68;
68
ile_hetman(21, 5, 8)
Rozwiąż ćwiczenie

Zadanie dodatkowe 6

Król może się przesuwać pionowo, poziomo i po przekątnej, ale tylko o jedno pole. Zdefiniuj funkcję ile_krol(int n, int x, int y), której parametrami są rozmiar szachownicy n oraz położenie figury (x, y), a wynikiem jest liczba pól ata­kowanych przez króla na pustej szachownicy. Parametr n może przyjmować wartości od 2 do 30. Parametry xy mogą przyjmować wartości od 1 do n. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji ile_krol(8, 1, 1) jest 3.
  • Wynikiem funkcji ile_krol(10, 4, 4) jest 8.
#include <iostream> using namespace std; // zdefiniuj funkcję int ile_krol(int n, int x, int y) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji ile_krol(8, 4, 1) jest 5.
return ile_krol(8, 4, 1) == 5;
5
ile_krol(8, 4, 1)
Wynikiem funkcji ile_krol(8, 1, 4) jest 5.
return ile_krol(8, 1, 4) == 5;
5
ile_krol(8, 1, 4)
Wynikiem funkcji ile_krol(8, 3, 5) jest 8.
return ile_krol(8, 3, 5) == 8;
8
ile_krol(8, 3, 5)
Rozwiąż ćwiczenie

Zadanie dodatkowe 7

Skoczek porusza się o dwa pola w pionie i jedno w poziomie lub jedno w poziomie i dwa w pionie. Zdefiniuj funkcję ile_skoczek(int n, int x, int y), której parametrami są rozmiar szachownicy n oraz położenie figury (x, y), a wyni­kiem jest liczba pól atakowanych przez skoczka na pustej szachownicy. Parametr n może przyjmować war­tości od 2 do 30. Parametry xy mogą przyjmować wartości od 1 do n. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji ile_skoczek(8, 1, 1) jest 2.
  • Wynikiem funkcji ile_skoczek(10, 4, 4) jest 8.
#include <iostream> using namespace std; // zdefiniuj funkcję int ile_skoczek(int n, int x, int y) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji ile_skoczek(8, 2, 1) jest 3.
return ile_skoczek(8, 2, 1)==3;
3
ile_skoczek(8, 2, 1)
Wynikiem funkcji ile_skoczek(8, 1, 5) jest 4.
return ile_skoczek(8, 1, 5)==4;
4
ile_skoczek(8, 1, 5)
Wynikiem funkcji ile_skoczek(8, 2, 2) jest 4.
return ile_skoczek(8, 2, 2)==4;
4
ile_skoczek(8, 2, 2)
Rozwiąż ćwiczenie

Zadanie dodatkowe 8

Dostępna jest szachownica o rozmiarze n = 8. Zde­finiuj funkcje czy_wieza(int xp, int yp, int xk, int yk), czy_goniec(int xp, int yp, int xk, int yk) oraz czy_hetman(int xp, int yp, int xk, int yk), których parametrami są położenie początkowe i końcowe figury, a wynikiem jest 1 (prawda), jeśli w jednym ruchu można przejść z położe­nia początkowego do końcowego daną figurą, lub 0 (fałsz), jeśli nie da się tego zrobić. Parametry mogą przyjmować wartości od 1 do 8. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji czy_wieza(1, 1, 1, 4) jest 1.
  • Wynikiem funkcji czy_wieza(2, 2, 7, 8) jest 0.
  • Wynikiem funkcji czy_goniec(1, 1, 4, 4) jest 1.
  • Wynikiem funkcji czy_goniec(2, 2, 7, 8) jest 0.
  • Wynikiem funkcji czy_hetman(1, 1, 1, 4) jest 1.
  • Wynikiem funkcji czy_hetman(2, 2, 7, 8) jest 0.
#include <iostream> using namespace std; // zdefiniuj funkcję int czy_wieza(int xp, int yp, int xk, int yk) { } // zdefiniuj funkcję int czy_goniec(int xp, int yp, int xk, int yk) { } // zdefiniuj funkcję int czy_hetman(int xp, int yp, int xk, int yk) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji czy_wieza(2, 3, 1, 4) jest 0.
return czy_wieza(2, 3, 1, 4) == 0;
0
czy_wieza(2, 3, 1, 4)
Wynikiem funkcji czy_wieza(3, 3, 3, 6) jest 1.
return czy_wieza(3, 3, 3, 6) == 1;
1
czy_wieza(3, 3, 3, 6)
Wynikiem funkcji czy_wieza(4, 5, 1, 5) jest 1.
return czy_wieza(4, 5, 1, 5) == 1;
1
czy_wieza(4, 5, 1, 5)
Wynikiem funkcji czy_goniec(2, 3, 1, 4) jest 1.
return czy_goniec(2, 3, 1, 4) == 1;
1
czy_goniec(2, 3, 1, 4)
Wynikiem funkcji czy_goniec(3, 3, 3, 6) jest 0.
return czy_goniec(3, 3, 3, 6) == 0;
0
czy_goniec(3, 3, 3, 6)
Wynikiem funkcji czy_goniec(4, 5, 1, 5) jest 0.
return czy_goniec(4, 5, 1, 5) == 0;
0
czy_goniec(4, 5, 1, 5)
Wynikiem funkcji czy_hetman(2, 3, 1, 4) jest 1.
return czy_hetman(2, 3, 1, 4) == 1;
1
czy_hetman(2, 3, 1, 4)
Wynikiem funkcji czy_hetman(3, 3, 3, 6) jest 1.
return czy_hetman(3, 3, 3, 6) == 1;
1
czy_hetman(3, 3, 3, 6)
Wynikiem funkcji czy_hetman(4, 5, 1, 5) jest 1.
return czy_hetman(4, 5, 1, 5) == 1;
1
czy_hetman(4, 5, 1, 5)
Rozwiąż ćwiczenie

Pytania quizoweDefiniowanie funkcji obliczeniowych

Twój wynik to: /3
  • Jaką wartość będzie miała zmienna licznik po wykonaniu poniższych poleceń?
    licznik = 3; 
    licznik = licznik + 3;
  • Jaka ostatnia wartość zostanie wypisana po wykonaniu poniższej pętli?
    for (int i = 3; i < 11; i = i + 1) 
        cout << i << endl;
  • Z jakim argumentem należy wywołać funkcję, aby uzyskać wynik 4?
    int test(int x) { 
        if (x % 2 == 0) 
            return x / 2; 
        else 
            return x - 1; 
    }

Ćwiczenie dodatkowe 1

Pewien tekst zaszyfrowano szyfrem Cezara z kluczem o wartości 5. W wyniku tej operacji otrzymano szyfrogram: HEQTBNJP PYTWD LTSN IBF EFOFHJ SNJ EQFUNJ FSN OJISJLT. Odszyfruj ten tekst, wiedząc, że do szyfrowania użyto alfabetu łacińskiego bez polskich znaków.

QuizAlgorytmika i programowanie w C++

Twój wynik to: /10
  • Jaką wartość będzie miała zmienna d po wykonaniu poniższego fragmentu kodu?
    int d = 6;
    int x = 12;
    if (x % 3 == 0)
       x = x / 3;
    else
       d = d / 2;
  • Masz obliczyć, ile jest par sąsiednich cyfr danej liczby wielocyfrowej, których suma jest liczbą dwucyfrową. W liczbie 123 456 789 takimi parami są 5 i 6, 6 i 7, 7 i 8 oraz 8 i 9. Liczba 12 321 nie ma takich par. Ile maksymalnie porównań trzeba wykonać, aby otrzymać wynik?
  • Wskaż poprawnie przyporządkowany rodzaj przechowywanej wartości.
  • Jaki jest efekt działania polecenia cout << "x"?
  • Czym może być spowodowany następujący komunikat?
    prog.cpp: In function ‘int main()’:
    prog.cpp:6:2: error: expected initializer before ‘return’
       return 0;
       ^~~~~~
  • Co oznacza zapis: pom = pom + 1?
  • Co oznacza polecenie return w funkcji?
  • Jaka litera zostanie wypisana po wykonaniu poniższego fragmentu kodu?
    napis = "medycyna";
    cout << napis[2];
  • Jaką najmniejszą wartość powinna mieć zmienna x, aby ostatnia została wypisana wartość 24?
    for (int i = 2; i < x; i + = 2)
       cout << i << endl;
  • Jakie dwie liczby zostaną wypisane po wykonaniu poniższego fragmentu kodu?
    int x = 11;
    int y = 13;
    int a = x;
    x = y;
    y = a;
    cout << x << endl;
    cout << y << endl;
    

Zadanie 1Jakim kluczem zaszyfrowano?

Zdefiniuj funkcję jaki(string tekst_jawny, string szyfrogram), której parametrami są ciągi małych liter alfabetu łacińskiego, a wynikiem jest klucz z przedziału [0, 25], pozwalający zaszyfrować tekst jawny za pomocą metody Ce­zara, lub wartość –1, gdy szyfrogram nie mógł powstać z tekstu jawnego w wyniku szyfrowania metodą Cezara. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji jaki("niespodzianka", "pkgurqfbkcpmc") jest 2.
  • Wynikiem funkcji jaki("zmiana", "anjbxb") jest -1.
#include <iostream> using namespace std; // zdefiniuj funkcję int jaki(string tekst_jawny, string szyfrogram) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji jaki("innabajka", "vaanonwxn") jest 13
return jaki("innabajka", "vaanonwxn")==13;
13
jaki("innabajka", "vaanonwxn")
Wynikiem funkcji jaki("celujtam", "celujtas") jest -1
return jaki("celujtam", "celujtas")==-1;
-1
jaki("celujtam", "celujtas")
Wynikiem funkcji jaki("naratunek", "ylclefypv") jest 11
return jaki("naratunek", "ylclefypv")==11;
11
jaki("naratunek", "ylclefypv")
Rozwiąż ćwiczenie

Pytania quizoweSzyfrowanie i deszyfrowanie tekstu

Twój wynik to: /3
  • Napis tajemnica zaszyfrowano szyfrem Cezara i otrzymano xeniqrmge. Jakiego klucza użyto?
  • Ile wynosi kod ASCII litery m, jeśli kod ASCII litery k wynosi 107?
  • Jak nazywa się szyfr, w którym każdą literę tekstu jawnego zastępuje się inną?

Ćwiczenie 2Parkan

Zdefiniuj funkcję parkan(string s), której parametrem jest tekst jawny złożony z małych liter alfabetu łacińskiego, a wynikiem – szyfrogram utwo­rzony za pomocą szyfru parkan. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji parkan("fronty") jest fotrny.
  • Wynikiem funkcji parkan("tajne") jest tjean.
#include <iostream> using namespace std; // zdefiniuj funkcję string parkan(string s) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji parkan("abba") jest ciąg znaków abba
return parkan("abba")=="abba";
abba
parkan("abba")
Wynikiem funkcji parkan("k") jest k
return parkan("k")=="k";
k
parkan("k")
Wynikiem funkcji parkan("kkllaassaa") jest klasaklasa
return parkan("kkllaassaa")=="klasaklasa";
klasaklasa
parkan("kkllaassaa")
Rozwiąż ćwiczenie

Ćwiczenie 3Czy to jest palindrom

Zdefiniuj funkcję logiczną czy_palindrom(string s), której pa­rametrem jest napis zawierający tylko małe litery alfabetu łacińskiego, a wynikiem: wartość logiczna 1 (prawda), gdy napis jest palindromem, lub 0 (fałsz), gdy nim nie jest. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji czy_palindrom("aabbaa") jest 1.
  • Wynikiem funkcji czy_palindrom("aaxyaa") jest 0.
#include <iostream> using namespace std; // zdefiniuj funkcję bool czy_palindrom(string s) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji czy_palindrom("p") jest 1
return czy_palindrom("p")==1;
1
czy_palindrom("p")
Wynikiem funkcji czy_palindrom("prawda") jest 0
return czy_palindrom("prawda")==0;
0
czy_palindrom("prawda")
Wynikiem funkcji czy_palindrom("abcddcba") jest 1
return czy_palindrom("abcddcba")==1;
1
czy_palindrom("abcddcba")
Rozwiąż ćwiczenie

Ćwiczenie 4Czy zdanie jest palindromem

Zdefiniuj funkcję logiczną czy_palindrom2(string s), której pa­rametrem jest napis zawierający małe litery alfabetu łacińskiego i spacje, a wynikiem wartość logiczna 1 (prawda), gdy napis jest palindromem, lub 0 (fałsz), gdy nim nie jest. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji czy_palindrom2("a to kanapa pana kota") jest 1.
  • Wynikiem funkcji czy_palindrom2("a to kanapka pana kota") jest 0.
#include <iostream> using namespace std; // zdefiniuj funkcję bool czy_palindrom(string s) { } // zdefiniuj funkcję string pomin(string s) { } // zdefiniuj funkcję bool czy_palindrom2(string s) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji czy_palindrom2("tolo ma samolot) jest 1
return czy_palindrom2("tolo ma samolot")==1;
1
czy_palindrom2("tolo ma samolot")
Wynikiem funkcji czy_palindrom2("tolo da samolot") jest 0
return czy_palindrom2("tolo da samolot")==0;
0
czy_palindrom2("tolo da samolot")
Wynikiem funkcji czy_palindrom2("atak na kata") jest 0
return czy_palindrom2("atak na kata")==0;
0
czy_palindrom2("atak na kata")
Wynikiem funkcji czy_palindrom2("atak w kata") jest 1
return czy_palindrom2("atak w kata")==1;
1
czy_palindrom2("atak w kata")
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 1

Zdefiniuj funkcję zastap(string napis), której wynikiem jest napis ze spacjami zastąpionymi przez znak podkreślenia (_). Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji zastap("podgrzybek brunatny") jest podgrzybek_brunatny.
  • Wynikiem funkcji zastap(" rydz mleczaj ") jest _rydz_mleczaj_.
#include <iostream> using namespace std; // zdefiniuj funkcję string zastap(string napis) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji zastap("boro wik") jest boro__wik
return zastap("boro wik")=="boro__wik";
boro__wik
zastap("boro wik")
Wynikiem funkcji zastap(" t r u f l a ") jest _t_r_u_f_l_a_
return zastap(" t r u f l a ")=="_t_r_u_f_l_a_";
_t_r_u_f_l_a_
zastap(" t r u f l a ")
Wynikiem funkcji zastap("rydz i kania") jest rydz_i_kania
return zastap("rydz i kania")=="rydz_i_kania";
rydz_i_kania
zastap("rydz i kania")
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 2

Napisz funkcję zamien(string napis), której parametrem jest napis o parzystej liczbie znaków, a wynikiem – ten sam napis z pozamienianymi sąsiednimi znakami (tj. pierwszy z drugim, trzeci z czwartym itd.). Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji zamien("agrest") jest gaerts.
  • Wynikiem funkcji zamien("mandarynka") jest amdnranyak.
#include <iostream> using namespace std; // zdefiniuj funkcję string zamien(string napis) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji zamien("jagoda") jest ajogad
return zamien("jagoda")=="ajogad";
ajogad
zamien("jagoda")
Wynikiem funkcji zamien("nektarynka") jest entkranyak
return zamien("nektarynka")=="entkranyak";
entkranyak
zamien("nektarynka")
Wynikiem funkcji zamien("ananas") jest nanasa
return zamien("ananas")=="nanasa";
nanasa
zamien("ananas")
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 3

Zdefiniuj funkcję zmiana(string napis), której wynikiem jest napis z pozamienianymi literami a na o i odwrotnie: o na a. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji zmiana("brzoskwinia") jest brzaskwinio.
  • Wynikiem funkcji zmiana("morela") jest marelo.
#include <iostream> using namespace std; // zdefiniuj funkcję string zmiana(string napis) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji zmiana("brzoza") jest brzazo
return zmiana("brzoza")=="brzazo";
brzazo
zmiana("brzoza")
Wynikiem funkcji zmiana("topola") jest tapalo
return zmiana("topola")=="tapalo";
tapalo
zmiana("topola")
Wynikiem funkcji zmiana("modrzew i sosna") jest madrzew i sasno
return zmiana("modrzew i sosna")=="madrzew i sasno";
madrzew i sasno
zmiana("modrzew i sosna")
Rozwiąż ćwiczenie

Zadanie dodatkowe 1

W języku C++ występują trzy operatory logiczne:

a) negacja – !,
b) koniunkcja – &&,
c) alternatywa – ||.

Przeanalizuj poniższy kod.

Twój wynik to: /1
  • Jakie wartości przyjmą zmienne c oraz d?

Ćwiczenie dodatkowe 4

Zdefiniuj funkcję cykl(string napis), której wynikiem jest napis pozamienianymi samogłoskami a na e, e na i, i na o, o na u, u na y i y na a. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji cykl("czarne jagody") jest czerni jeguda.
  • Wynikiem funkcji cykl("poziomki") jest puzoumko.
#include <iostream> using namespace std; // zdefiniuj funkcję string cykl(string napis) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji cykl("guawa") jest gyewe
return cykl("guawa")=="gyewe";
gyewe
cykl("guawa")
Wynikiem funkcji cykl("jagody goji") jest jeguda gujo
return cykl("jagody goji")=="jeguda gujo";
jeguda gujo
cykl("jagody goji")
Wynikiem funkcji cykl("cytryny") jest catrana
return cykl("cytryny")=="catrana";
catrana
cykl("cytryny")
Rozwiąż ćwiczenie

Pytania quizowePodstawy pracy w środowisku C++

Twój wynik to: /3
  • Co jest wynikiem działania 121 % 3?
  • Co wypisze polecenie cout << endl;?
  • W jaki sposób działa polecenie return?

Zadanie 1Ukrywanie tekstu

Zdefiniuj funkcję ukryj(string s), której parametrem jest napis złożony z małych liter alfabetu łacińskiego, a wynikiem – napis z wstawioną co drugą literą wybraną losowo. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji ukryj("zima") jest np. zkitmwau.
  • Wynikiem funkcji ukryj("alamakota") jest np. axldaamaackvostvac.

Wskazówka: do losowania wykorzystaj funkcje rand() i srand().

#include <iostream> using namespace std; // zdefiniuj funkcję string ukryj(string s) { } int main() { // sprawdź działanie funkcji return 0; }
Rozwiąż ćwiczenie

Zadanie 2ROT13

Zapoznaj się z informacją na temat szyfru ROT13 na s. 199 podręcznika, a następnie zdefiniuj funkcję rot(string s), której parametrem jest napis zawierający wielkie litery alfabetu łacińskiego, a wynikiem – napis zakodowany według podanej zasady. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji rot("GRAT") jest TENG.
  • Wynikiem funkcji rot("INFORMACJA") jest VASBEZNPWN.
#include <iostream> using namespace std; // zdefiniuj funkcję string rot(string s) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji rot("NOPQRSTUVWXYZ") jest ciąg znaków ABCDEFGHIJKLM
return rot("NOPQRSTUVWXYZ")=="ABCDEFGHIJKLM";
ABCDEFGHIJKLM
rot("NOPQRSTUVWXYZ")
Wynikiem funkcji rot("ADEZAW") jest ciąg znaków NQRMNJ
return rot("ADEZAW")=="NQRMNJ";
NQRMNJ
rot("ADEZAW")
Wynikiem funkcji rot("INFORMATYKA") jest ciąg znaków VASBEZNGLXN
return rot("INFORMATYKA")=="VASBEZNGLXN";
VASBEZNGLXN
rot("INFORMATYKA")
Rozwiąż ćwiczenie

Zadanie 3Anagram

Zdefiniuj funkcję anagram(string s), której parametrem jest tekst jawny składający się z małych liter a, b lub c, a wynikiem  napis, w którym wszystkie litery tekstu ustawione są w kolejności alfabetycznej. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji anagram("acabbca") jest aaabbcc.
  • Wynikiem funkcji anagram("abccbaaaa") jest aaaaabbcc.
#include <iostream> using namespace std; // zdefiniuj funkcję string anagram(string s) { } int main() { // sprawdź działanie funkcji return 0; }
Wynikiem funkcji anagram("accaccaaaa") jest ciąg znaków aaaaaacccc
return anagram("accaccaaaa")=="aaaaaacccc";
aaaaaacccc
anagram("accaccaaaa")
Wynikiem funkcji anagram("bbbbbbbbbbbbb") jest ciąg znaków bbbbbbbbbbbbb
return anagram("bbbbbbbbbbbbb")=="bbbbbbbbbbbbb";
bbbbbbbbbbbbb
anagram("bbbbbbbbbbbbb")
Wynikiem funkcji anagram("bbaaaccbaaaba") jest ciąg znaków aaaaaaabbbbcc
return anagram("bbaaaccbaaaba")=="aaaaaaabbbbcc";
aaaaaaabbbbcc
anagram("bbaaaccbaaaba")
Rozwiąż ćwiczenie

Pytania quizowePrzetwarzanie napisów

Twój wynik to: /3
  • Jaki znak zostanie wypisany dla napisu w = "szyfrant" w wyniku działania polecenia cout << w[w.size() - 8] << endl;?
  • Przeglądanie napisu co 1 znak można zrealizować za pomocą następującej pętli:
  • Jak należy zacząć jednowierszowy komentarz?