ZBIÓR ZADAŃ Z INFORMATYKI



Podobne dokumenty
EGZAMIN MATURALNY Z INFORMATYKI

Palindromy. Przykładowe rozwiązanie

I znowu można jak w C, za pomocą starych struktur i metod:

Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu.

EGZAMIN MATURALNY Z INFORMATYKI

Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu.

PROGRAMOWANIE W C++ ZADANIA

Iteracje. Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony.

Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu.

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

EGZAMIN MATURALNY Z INFORMATYKI

Pytania sprawdzające wiedzę z programowania C++

EGZAMIN MATURALNY Z INFORMATYKI 13 MAJA 2019 POZIOM PODSTAWOWY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I WYBRANE: Czas pracy: 75 minut

Rozwiązanie. #include <cstdlib> #include <iostream> using namespace std;

Wstęp do Informatyki

8. Wektory. Przykłady Napisz program, który pobierze od użytkownika 10 liczb, a następnie wypisze je w kolejności odwrotnej niż podana.

do instrukcja while (wyrażenie);

EGZAMIN MATURALNY Z INFORMATYKI

Podstawy Programowania Podstawowa składnia języka C++


Wstęp do programowania

EGZAMIN MATURALNY Z INFORMATYKI

EGZAMIN MATURALNY 2011 INFORMATYKA

Podstawowe typy zmiennych

Wojewódzki Przedmiotowy Konkurs z informatyki dla uczniów szkół gimnazjalnych Wojewódzki Konkurs Informatyczny finał - rok szkolny 2012/13 TEST

EGZAMIN MATURALNY Z INFORMATYKI POZIOM ROZSZERZONY CZĘŚĆ II MAJ 2011 WYBRANE: Czas pracy: 150 minut. Liczba punktów do uzyskania: 30 WPISUJE ZDAJĄCY

3. Instrukcje warunkowe

PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI STYCZEŃ Arkusz I. Czas pracy: 60 minut Liczba punktów do uzyskania: 15

EGZAMIN MATURALNY Z INFORMATYKI 17 MAJA 2016 POZIOM ROZSZERZONY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I WYBRANE: Czas pracy: 90 minut

EGZAMIN MATURALNY Z INFORMATYKI POZIOM ROZSZERZONY 19 MAJA CZĘŚĆ II Instrukcja dla zdającego WYBRANE: Czas pracy: 150 minut

if (wyrażenie ) instrukcja

Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu.

Ilość cyfr liczby naturalnej

EGZAMIN MATURALNY Z INFORMATYKI

EGZAMIN MATURALNY 2011 INFORMATYKA

EGZAMIN MATURALNY Z INFORMATYKI POZIOM ROZSZERZONY 19 MAJA CZĘŚĆ II Instrukcja dla zdającego WYBRANE: Czas pracy: 150 minut

Napisz program, który dla podanej na standardowym wejściu temperatury w stopniach Fahrenheita wypisze temperaturę w stopniach Celsjusza.

EGZAMIN MATURALNY Z INFORMATYKI POZIOM PODSTAWOWY CZĘŚĆ II 11 MAJA 2018 WYBRANE: Czas pracy: 120 minut. Liczba punktów do uzyskania: 30

PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI

LISTA 5. C++ PETLE for, while, do while

EGZAMIN MATURALNY Z INFORMATYKI POZIOM ROZSZERZONY CZĘŚĆ II 11 MAJA 2018 WYBRANE: Czas pracy: 150 minut. Liczba punktów do uzyskania: 30

Pliki wykład 2. Dorota Pylak

... (środowisko) minut

Laboratorium 1. Programowanie II - Kierunek Informatyka. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej

EGZAMIN MATURALNY Z INFORMATYKI POZIOM PODSTAWOWY CZĘŚĆ II 13 MAJA 2019 WYBRANE: Czas pracy: 120 minut. Liczba punktów do uzyskania: 30

4. Funkcje. Przykłady

WYKŁAD 3 (13 MARZEC 2014) LICZBY CAŁKOWITE I RZECZYWISTE. Bartosz Łakomy i Dariusz Dobiesz

Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu.

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

Arkusz zawiera informacje prawnie chronione do momentu rozpocz cia egzaminu.

Inicjacja tablicy jednowymiarowej

Czas pracy: 60 minut

EGZAMIN MATURALNY Z INFORMATYKI CZERWIEC 2011 POZIOM PODSTAWOWY CZĘŚĆ I WYBRANE: Czas pracy: 75 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY

Program znajduje największa lub najmniejsza z podanych liczb. Liczby podajemy dopóki nam sie nie znudzi.

1. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci:

Wojewódzki Przedmiotowy Konkurs z informatyki dla uczniów szkół gimnazjalnych ETAP REJONOWY 2013/2014 TEST

Język ludzki kod maszynowy

Wstęp do programowania

Wstęp do programowania

Zadania język C++ Zad. 1. Napisz program wczytujący z klawiatury wiek dwóch studentów i wypisujący informację o tym, który z nich jest starszy.

Wprowadzenie do programowania i programowanie obiektowe

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

EGZAMIN MATURALNY Z INFORMATYKI MAJ 2013 POZIOM PODSTAWOWY CZĘŚĆ I WYBRANE: Czas pracy: 75 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY

5. Rekurencja. Przykłady

Podstawy informatyki. Informatyka Stosowana Zajęcia nr 6. autor: Grzegorz Smyk

EGZAMIN MATURALNY Z INFORMATYKI

Podstawy Programowania

EGZAMIN MATURALNY Z INFORMATYKI

Zadanie 4.2. (0 3) Podaj, ile liczb w pliku liczby.txt jest podzielnych przez 2 oraz ile liczb jest podzielnych przez 8.

PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI

PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI

Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu.

Proste programy w C++ zadania

Tablice są typem pochodnym. Poniżej mamy przykłady deklaracji różnych tablic:

EGZAMIN MATURALNY Z INFORMATYKI 19 MAJA 2015

(A1) ... (środowisko)

Instrukcje sterujące

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

Liczby całkowite i rzeczywiste

1 Wielokrotne powtarzanie tych samych operacji

lekcja 8a Gry komputerowe MasterMind

Podstawy informatyki. Informatyka Stosowana Zajęcia nr 5. autor: Grzegorz Smyk

Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną)

Zadanie 1. Suma silni (11 pkt)

UZUPEŁNIA ZDAJĄCY miejsce na naklejkę

Wstęp do informatyki- wykład 8 Pętla while, do while,for -pętla w pętli- przykłady Operator rzutowania Manipulatory

Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Olimpiada O Diamentowy Indeks AGH 2017/18. Informatyka Etap III

Wojewódzki Przedmiotowy Konkurs z informatyki dla uczniów szkół gimnazjalnych ETAP REJONOWY 2008/2009 TEST

PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI

Wstęp do programowania

Lekcja 3: Pierwsze kroki z Pythonem. Pętle

Programowanie - instrukcje sterujące

Pliki wykład 2. Dorota Pylak

Algorytm. a programowanie -

INFORMATYKA Z MERMIDONEM. Programowanie. Moduł 5 / Notatki

Podstawy programowania obiektowego

Programowanie w językach

Programowanie - wykład 4

Wojewódzki Przedmiotowy Konkurs z informatyki dla uczniów szkół gimnazjalnych ETAP REJONOWY 2010/2011 TEST

Wstęp do programowania

Transkrypt:

ZBIÓR ZADAŃ Z INFORMATYKI OPRACOWANY W RAMACH PROJEKTU KOMPETENCJE KLUCZOWE DROGĄ DO KARIERY WSPÓŁFINANSOWANEGO ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO opracowany przez zespół z6i pod opieką mgr Jerzego Nowosielskiego BIAŁOGARD 2013

Spis treści. Spis treści... 1 Wstęp... 2 Sprawdzanie, czy tekst jest palindromem... 3 Badanie, czy liczba jest liczbą pierwszą... 12 Algorytmy badające własności liczb... 16 1

WSTĘP Zbiór zadań z informatyki zawiera zadania maturalne z programowania, które wystąpiły podczas egzaminów maturalnych, jakie odbyły się w latach 2006 2012. Mimo tego, że standardach wymagań egzaminacyjnych można znaleźć aż trzynaście algorytmów, które musi opanować maturzysta, dotychczasowe zadania dotyczyły jedynie trzech. Zadania zostały pogrupowane tematycznie i poprzedzone odpowiednim wprowadzeniem teoretycznym, przykładami, algorytmami zapisanymi w postaci listy kroków oraz schematu blokowego. Ponadto przedstawione zostały implementację w języku C++. Nauczyciele przygotowujący uczniów do egzaminu maturalnego z informatyki korzystają z materiałów zamieszczanych w arkuszach maturalnych CKE ponieważ dotychczas na polskim rynku wydawniczym nie ukazał się ani jeden zbiór zadań zawierający zadania o charakterze maturalnym. Dodatkowo ani CKE, ani OKE nie organizuje próbnych egzaminów co czyni niniejsze opracowanie szczególnie przydatnym. 2

I. Sprawdzanie, czy tekst jest palindromem. 1. Czym jest palindrom? Palindrom (z greckiego palindromeo, inaczej: anagram odwrotny) jest to wyraz, który tak samo brzmi czytany wspak (od końca). Palindromami są wyrazy: kajak, sedes, oko, mam, Ala, zaraz, zakaz itp. Współcześnie palindromy pełnią funkcję gry słownej. W każdym języku powstają setki całych zdań, a nawet wierszy będących palindromami. Angielski Do geese see God? Czy gęsi widzą Boga? Devil lived - Diabeł żył. Rats live on no evil star. - Szczury nie żyją na żadnej złej gwieździe. Chiński (Mandaryński) 我 爱 妈 妈, 妈 妈 爱 我 - Ja kocham mamę, mama mnie kocha. Polski A to idiota! Jadzi w gębę gwizdaj. Kobyła ma mały bok. 3

Nam orła dał Roman? Ino gile Roman na moreli goni. Ile Roman ładny dyndał na moreli? Zakopane i nie na pokaz. Nowy Targ, góry, Zakopane - na pokazy róg, graty won! Najdłuższy na świecie palindrom liczy 33 tys. znaków. Umieścił go na swojej stronie Tadeusz Morawski. Palindromami mogą być liczby w danym systemie liczbowym, od najprostszych, dwucyfrowych, począwszy. Każdy palindrom liczbowy w systemie dziesiętnym złożony z parzystej liczby cyfr jest podzielny przez 11 (np. 279972:11=25452). 2. Algorytm w postaci listy kroków. Specyfikacja algorytmu: Dane wejściowe: ciąg znaków s Dane wyjściowe: komunikat tak lub nie w zależności od tego, czy ciąg znaków s jest palindromem, czy nie Zmienne pomocnicze: i, j liczby naturalne Krok 1: Krok 2: Krok 3: Wczytaj ciąg znaków s. Zmiennej i przypisz wartość 1, a zmiennej j liczbę znaków ciągu s. Jeśli i jest większe niż lub równe j, wtedy wypisz 4

komunikat tak i zakończ działanie algorytmu. Krok 4: Krok 5: Krok 6: Jeśli s[i] jest różne od s[j], wypisz komunikat nie i zakończ działanie algorytmu. Powiększ zmienną i o 1, a zmienną j pomniejsz o 1. Przejdź do kroku 3. 3. Schemat blokowy algorytmu. NIE TAK NIE TAK 4. Program w języku C++. Implementacja algorytmu sprawdzającego, czy podany ciąg znaków jest palindromem w języku C++ mogłaby wyglądać następująco: 5

#include <iostream.h> using namespace std; int main() { char s[100]; cout << "Podaj ciag znakow: "; cin >> s; int i, j; i = 0; j = strlen(s)-1; while(i<j) { if(s[i]!=s[j]) { cout << "Wprowadzony ciag znakow nie jest palindromem\n"; exit(0); i++; j--; cout << "Wprowadzony ciag znakow jest palindromem\n"; cin.ignore(); getchar(); return 0; 6

5. Zadania do samodzielnego rozwiązania. Zadanie 1. (CKE - matura podstawowa 2010) Palindromem nazywamy słowo, które czytane od lewej i od prawej strony jest takie samo. Na przykład palindromami są słowa: JABFDFBAJ HAJAHAJAH ABBA Słowo JANA nie jest palindromem. W pliku dane.txt umieszczono w kolejnych wierszach 1000 słów o długościach od 2 do 25 znaków, składających się z wielkich liter A, B, C, D, E, F, G, H, I, J. Napisz program, który przegląda słowa zapisane w pliku dane.txt i wypisuje te z nich, które są palindromami, po jednym w wierszu. Kolejność wypisywania palindromów powinna być taka sama jak w pliku z danymi. Wyniki zapisz w pliku zadanie4.txt. Zadanie 2. (CKE - matura rozszerzona 2006) W pliku dane.txt w oddzielnych wierszach znajdują się słowa o długości od 2 do 20 znaków, składające się z wielkich liter A, B, C, D, E i F. Palindromem nazywamy słowo, które czytane od lewej i od prawej daje to samo słowo. Na przykład słowa ABCDCBA i AEEFFEEA są palindromami. Napisz program, który policzy, ile jest 7

palindromów w pliku dane.txt. Ocenie będzie podlegać poprawność Twojego programu i metoda sprawdzania, czy dane słowo jest palindromem. Liczbę palindromów zapisz w pliku wyniki.txt. Zadanie 3. (CKE - matura rozszerzona 2008) Infobank oferuje swoim klientom internetowe konta osobiste. Do korzystania z tych kont potrzebna jest lista haseł jednorazowych. Jesteś pracownikiem Wydziału Bezpieczeństwa. Wydział ten zajmuje się tworzeniem dla klientów list haseł jednorazowych na podstawie słów wcześniej wygenerowanych przez Wydział Statystyk, według ustalonych przez bank algorytmów. Plik slowa.txt, zawiera 1000 słów o długościach nie większych niż 30 znaków. Każde słowo jest zapisane w osobnym wierszu i złożone jest z wielkich liter alfabetu angielskiego. a) Na początku swojej działalności bank stosował następującą metodę generowania haseł. Hasłami jednorazowymi są zapisane od końca słowa Wygenerowane przez Wydział Statystyk. Przykład. EGZAMIN NIMAZGE KAJAK KAJAK MATURA ARUTAM 8

Dla danych z pliku slowa.txt utwórz listę haseł jednorazowych i umieść ją w pliku hasla_a.txt (każde hasło w osobnym wierszu). Dodatkowo w pliku slowa_a.txt podaj najdłuższe i najkrótsze hasła oraz ich długości. Metoda tworzenia haseł opisana w punkcie a) okazała się zawodna, dlatego Wydział Bezpieczeństwa postanowił zmienić algorytm. Palindrom to takie słowo, które czytane od lewej do prawej i od prawej do lewej jest takie same. Algorytm tworzenia hasła ze słowa w: wyznacz najdłuższe słowo w 1 takie, że w 1 jest początkiem słowa w oraz w1 jest palindromem oznaczmy w=w 1 w 2 hasło powstaje przez złączenie dwóch słów: w 2 zapisanego od prawej do lewej i w. Przykład. Słowo Najdłuższy palindrom rozpoczynający słowo Utworzone hasło KAJAK KAJAK KAJAK KAJAKARSTWO KAJAK OWTSRAKAJAKARSTWO KAKTUS KAK SUTKAKTUS Dla danych znajdujących się w pliku slowa.txt, utwórz listę haseł według nowego algorytmu. Utworzone hasła jednorazowe umieść w pliku hasla_b.txt (każde hasło w osobnym wierszu). 9

Dodatkowo odpowiedzi do poniższych podpunktów umieść w pliku tekstowym slowa_b.txt. Odpowiedź do każdego podpunktu poprzedź cyfrą oznaczającą podpunkt. 1. Podaj wszystkie hasła o długości 12. 2. Podaj najdłuższe i najkrótsze hasło. 3. Podaj sumę długości wszystkich haseł. Zadanie 4. (CKE - matura podstawowa 2011) Informatyk z firmy KompOK zapisał w pliku hasla.txt 200 haseł. Każde hasło umieszczone jest w osobnym wierszu pliku. Hasło składa się tylko z małych liter alfabetu angielskiego, zaś jego długość wynosi od 3 do 10 znaków. Wykorzystując dane zawarte w tym pliku, wykonaj poniższe polecenia. Odpowiedzi do poszczególnych podpunktów zapisz w plikach tekstowych o nazwach wynik4a.txt, wynik4b.txt. a) W pliku wynik4a.txt podaj, ile haseł ma parzystą, a ile nieparzystą liczbę znaków. b) W pliku wynik4b.txt utwórz zestawienie haseł (po jednym w wierszu), które są palindromami. Palindrom to wyraz brzmiący tak samo przy czytaniu z lewej strony do prawej, jak i odwrotnie, np. kajak, potop. Rozwiązanie: #include <iostream> #include <fstream> 10

using namespace std; int main(){ int i,j,p=0,n=0; char slowo[25]; fstream plik; plik.open("hasla.txt"); while (!plik.eof()) { bool palindrom=true; plik >> slowo; i = 0; j = strlen(slowo)-1; if (strlen(slowo)%2==0) p++; else n++; while(i<j) { if(slowo[i]!=slowo[j]) { i=j+1; palindrom=false; i++; j--; if (palindrom==true) cout << slowo << endl; plik.close(); cout << "Hasel o nieparzystej liczbie znakow jest " << n << ", a o parzystej liczbie znakow " << p; 11

cin.ignore(); getchar(); return 0; II. Badanie, czy liczba jest liczbą pierwszą. 1. Czym jest liczba pierwsza? Liczba pierwsza to liczba naturalna, która ma dokładnie dwa dzielniki naturalne: jedynkę i siebie samą. Liczbami pierwszymi są: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, itp. Liczby naturalne większe od 1, które nie są pierwsze, nazywa się liczbami złożonymi. Z podanych definicji wynika, że liczby 0 i 1 nie są ani pierwsze, ani złożone. Największa liczba pierwsza składa się z siedemnastu milionów cyfr i wynosi 2 57,885,161-1. Odkrył ją Curtis Cooper z University of Central Missouri. Prace odbywały się w ramach projektu do którego zaprzęgniętego 360 tysięcy procesorów połączonych ze sobą komputerów. 2. Algorytm w postaci listy kroków. Specyfikacja algorytmu: Dane wejściowe: liczba naturalna n>1 12

Dane wyjściowe: komunikat tak lub nie w zależności od tego, czy liczba n jest liczbą pierwszą, czy złożoną Zmienne pomocnicze: p kolejny dzielnik naturalny liczby n Krok 1: Krok 2: Krok 3: Krok 4: Krok 5: Wczytaj liczbę n. Zmiennej p przypisz wartość 2. Jeśli p jest równe n, wtedy wypisz komunikat tak i zakończ działanie algorytmu. Jeśli (n mod p) jest równe 0, wypisz komunikat nie i zakończ działanie algorytmu. Powiększ zmienną p o 1 i przejdź do kroku 3. 3. Algorytm w postaci schematu blokowego. NIE TAK TAK NIE 13

4. Program w języku C++. Implementacja algorytmu sprawdzającego, czy dana liczba jest pierwsza w języku C++ mogłaby wyglądać następująco: #include <iostream.h> using namespace std; int main() { int n; cout << "Podaj liczbe naturalna: "; cin >> n; for(int p=2; p<n; p++) if(n % p == 0) { cout << "To nie jest liczba pierwsza" << endl; exit(0); cout << "Jest to liczba pierwsza" << endl; cin.ignore(); getchar(); return 0; 5. Zadania do samodzielnego rozwiązania. Zadanie 1. (CKE - matura podstawowa 2009) Liczba pierwsza to liczba naturalna większa od 1, która ma dokładnie dwa dzielniki naturalne: 1 i samą siebie. 14

Przykłady liczb pierwszych: 7 11 29 Liczba 21 nie jest liczbą pierwszą, ponieważ oprócz liczby 1 i 21 jej dzielnikami są także 3 i 7. W pliku o nazwie liczby.txt umieszczono w kolejnych wierszach 500 liczb całkowitych dodatnich, po jednej w wierszu, z których każda liczba ma co najwyżej 6 cyfr. Napisz program, za pomocą którgo otrzymasz tylko te liczby z pliku liczby.txt, które są kwadratami liczb pierwszych. Na przykład liczba 49 jest kwadratem liczby pierwszej 15. Wyniki zapisz w pliku zad_5.txt. Twój program powinien działać poprawnie również wtedy, gdy plik liczby.txt będzie zawierał 500 innych liczb całkowitych dodatnich, o co najwyżej 6 cyfrach, każda liczba w osobnym wierszu. Zadanie 2. (CKE - matura rozszerzona 2007) Liczba super pierwsza, to taka liczba naturalna, która spełnia następujące warunki: jest liczbą pierwszą suma cyfr tej liczby jest również liczbą pierwszą. Liczba super B pierwsza, oprócz wymienionych dwóch warunków, spełnia warunek trzeci:

suma cyfr w jej zapisie binarnym jest także liczbą pierwszą. a) Dla każdego z podanych niżej przedziałów oblicz, ile jest liczb super B pierwszych w tym przedziale. Wyniki wpisz do tabeli. Dodatkowo, w plikach o nazwach 1.txt, 2.txt i 3.txt zapisz wszystkie liczby super B pierwsze odpowiednio z przedziałów 1., 2. i 3., po jednej liczbie w każdym wierszu. Nr przedziału Przedział Liczba wystąpień liczb super B pierwszych w przedziale 1. <2; 1000> 2. <100;10000> 3. <1000;100000> b) Odpowiedz na następujące pytania: Ile jest liczb w przedziale <100; 10000>, których suma cyfr jest liczbą pierwszą? Czy suma wszystkich liczb super B pierwszych z przedziału <100; 10000> jest liczbą pierwszą? III. Algorytmy badające własności liczb. Zadanie 1. (CKE - matura podstawowa 2012) W kolejnych wierszach pliku cyfry.txt znajduje się 1000 liczb naturalnych, mniejszych niż 10 9 (jeden miliard), po jednej liczbie w każdym wierszu. Napisz program, który da odpowiedzi do poniższych podpunktów. Każdą odpowiedź zapisz w pliku zadanie4.txt, poprzedzając ją oznaczeniem odpowiedniego podpunktu. a) Ile liczb parzystych jest w pliku cyfry.txt? 16

b) Podaj liczbę z pliku cyfry.txt, której suma cyfr jest największa oraz liczbę z tego pliku, której suma cyfr jest najmniejsza. W obu przypadkach jest tylko jedna taka liczba. Przykład: Dla danego zbioru liczb: 121324 66562 675100 1187010 odpowiedzią są liczby: 66562 oraz 121324, ponieważ suma cyfr liczby 66562 jest równa 25 (6+6+5+6+2) i jest największą taką sumą, zaś suma cyfr liczby 121324 (1+2+1+3+2+4) jest równa 13 i jest najmniejszą taką sumą. c) Wypisz wszystkie liczby z pliku cyfry.txt, których cyfry tworzą ciąg rosnący. Przykład: Cyfry liczby 123579 tworzą ciąg rosnący, ponieważ 1<2<3<5<7<9. Cyfry liczby 1232 nie tworzą ciągu rosnącego, ponieważ ostatnia cyfra (2) nie jest większa od przedostatniej (3). 17

Cyfry liczby 34556 nie tworzą ciągu rosnącego, ponieważ cyfra trzecia (5) i cyfra czwarta (5) są sobie równe. Rozwiązanie do pkt. a: #include <iostream> #include <fstream> using namespace std; int main(){ int ilosc=0; unsigned int liczba; fstream plik; plik.open("cyfry.txt"); while (!plik.eof()) { plik >> liczba; if (liczba%2==0) ilosc++; plik.close(); cout << "Liczb parzystych jest " << ilosc; cin.ignore(); getchar(); return 0; 18

Rozwiązanie do pkt. b: #include <iostream> #include <fstream> using namespace std; int main(){ int max=0; string liczba, szukana; fstream plik; plik.open("cyfry.txt"); while (!plik.eof()) { int suma=0; plik >> liczba; int dlugosc=liczba.length(); for (int i=0; i<dlugosc; i++) suma=suma+liczba[i]; if (suma>max) { max=suma; szukana=liczba; plik.close(); cout << "Szukana liczba to: " << szukana; cin.ignore(); getchar(); return 0; 19