Aufgabe 1: Schreiben Sie ein C++ Programm, das eine Zeile einliest und jeden Buchstaben testet, ob es der Buchstabe a ist. Wenn der Buchstabe a auftaucht, soll folgender Text ausgegeben werden: „Buchstabe a gefunden“ #include <iostream> int main() { std::string str; _______ << "Bitte geben Sie eine Zeile ein! >"; getline(_______, str); for (int i = ________; i < str________; ______) { if (__________ 'a') { ______ << "Buchstabe a gefunden " << _____ } } return 0; } Lösung: #include <iostream> int main() { std::string str; std::cout << "Bitte geben Sie eine Zeile ein! >"; getline(std::cin, str); for (int i = 0; i < str.length(); i++) { if (str.at(i) == 'a') { std::cout << "Buchstabe a gefunden " << std::endl; } } return 0; } Aufgabe 2: Schreiben Sie ein C++ Programm, das eine deutsche Wortliste aus der Datei wortliste.txt (utf-8Datei, pro Zeile ein Wort) liest und die einzelnen Wörter testet, ob sie ein Palindrom sind. Schreiben Sie eine Funktion is_pali, die wahr zurückliefert, wenn das Argument ein Palindrom ist. Geben Sie jedes eingelesene Wort aus und falls das Wort ein Palindrom ist, dann geben Sie auch die Meldung „ ist ein Palindrom“ aus. #include <iostream> #include <fstream> #include <locale> using _________ _________; //bitte denken //Funktion zum Testen, ob w ein Palindrom ist _______ is_pali(wstring w) { _______ is_palindr = true; int endIndex = _________; for (________; ________; _________) { //Vergleich vorne hinten if (w[i] ____ w[__________]) { is_palindr = ________; } } return is_palindr; } int main() { ______ word; //Deklaration Variable mit Datentyp ______ inputFS; //Deklaration Filehandle mit Datentyp //Locale besorgen und einstellen setlocale(______, ________); //Kanal zum Lesen öffnen inputFS.______("wortliste.txt"); if (______) { //Test, ob Fileöffnen Fehler gemeldet hat _____ << L"Fehler Dateioeffnen!" << endl; // auf Fehlerkanal ______ << L"Aufruf" << "'wortliste.txt'" << L"=" << endl; // auf Fehlerkanal return 1; //Rest wird nicht mehr ausgeführt } //Kanal einfärben inputFS.________(locale(________)); //Einlesen eines Wortes aus der Datei while (_________ >> word) { wcout << L"Gelesenes Wort=" << word << endl; //Aufruf und Test mit dem Wort word und der Funktion is_pali if (_________) { wcout << L" ist ein Palindrom"; } wcout << endl; } inputFS._______; //Kanal schliessen } Lösung: #include <iostream> #include <fstream> #include <locale> using namespace std; //bitte denken //Funktion zum Testen, ob w ein Palindrom ist bool is_pali(wstring w) { bool is_palindr = true; int endIndex = w.length() - 1; for (int i = 0; i < endIndex; i++) { //Vergleich vorne hinten if (w[i] != w[endIndex-i]) { is_palindr = false; } } return is_palindr; } //Main int main() { wstring word; //Deklaration Variable mit Datentyp wifstream inputFS; //Deklaration Filehandle mit Datentyp //Locale besorgen und einstellen setlocale(LC_ALL, "de_DE.utf-8"); //Kanal zum Lesen öffnen inputFS.open("wortliste.txt"); if (!inputFS) { //Test, ob Fileöffnen Fehler gemeldet hat wcerr << L"Fehler Dateioeffnen!" << endl; // auf Fehlerkanal wcerr << L"Aufruf" << "'wortliste.txt'" << L"=" << endl; // auf Fehlerkanal return 1; //Rest wird nicht mehr ausgeführt } //Kanal einfärben inputFS.imbue(locale("de_DE.UTF-8")); //Einlesen eines Wortes aus der Datei while (inputFS >> word) { wcout << L"Gelesenes Wort=" << word << endl; //Aufruf und Test mit dem Wort word und der Funktion is_pali if (is_pali(word)) { wcout << L" ist ein Palindrom"; } wcout << endl; } inputFS.close(); //Kanal schliessen }
© Copyright 2024 ExpyDoc