ZESTAWY A Zestaw 2 1. Napisać program pobierający od użytkownika wartości całkowite aż do podania wartości 0 kończącej pobieranie. W trakcie pobierania, dla każdych dwóch niezerowych ostatnio wczytanych wartości, program powinien wypisywać najmniejszą liczbę naturalną k, taką że k*min(p,q) max(p,q). Przykład: Liczba: 17 Liczba: 4 k: 5 Liczba: 6 k: 2 Liczba: 50 k: 9 Liczba: 11 k: 5 Liczba: 0 Koniec. 2. Szyfrowanie szyfrem Cezara polega na zamianie każdej litery napisu na literę oddaloną od niej o K pozycji w alfabecie, przy czym litery z końca alfabetu zastępowane są literami z jego początku. Znaki nie będące literami pozostawia się bez zmian. Szyfr staje się trudniejszy do złamania, gdy zamiast jednego przesunięcia K używamy dwóch: K1 i K2. Przsunięć tych używamy naprzemiennie. Napisz program pobierający od użytkownika dwie liczby całkowite dodatnie K1, K2 oraz napis o długości co najwyżej 100. Program ma wyświetlać napis po zaszyfrowaniu, Przyjmijmy, że szyfrujemy jedynie duże litery. K1 K2: 1 3 Napis: A A ZZ B D AC K1 K2: 4 5 Napis: A A XYZ E F BDD
ZESTAWY A Zestaw 3 1. Napisz program pobierający od użytkownika liczbę całkowitą R (R>1) i liczbę rzeczywistą dodatnią S, a następnie informujący ile kolejnych liczb z ciągu 1, R-1, R(R+1)-2, R(R+1)(R+2)-3, R(R+1)(R+2)(R+3)-4, należy dodać, aby otrzymać liczbę nie mniejszą niż S, oraz o ile wynik tego dodawania będzie większy od S. R S: 2 143 Liczb: 5, Wynik równy. R S: 3 300 Liczb: 5, Wynik wiekszy o 126 2. Używając klucza ga-de-ry-po-lu-ki można zaszyfrować wiadomość wymieniając znaki leżące wewnątrz tych samych sylab klucza: g a, a g, d e, e d, itd. Znaki, których nie ma w kluczu pozostawia się bez zmian. Powtórne zaszyfrowanie przywraca pierwotną postać tekstu. W charakterze klucza można użyć dowolnego ciągu znaków, który jest przystej długości i nie zawiera powtórzeń. Należy napisać program, który pobiera od użytkownika klucz oraz napis, wyświetla zaszyfrowany napis oraz podaje ilość wykonanych zamian znaków. Przyjmij, że klucz ma nie więcej niż 20 znaków a napis nie więcej niż 100. Nie wymagamy, aby program sprawdzał poprawność wprowadzonego klucza. Przykład: Klucz: gaderypoluki Napis: tajna wiadomosc tgjng wkgepmpsc Wykonano 7 zamian.
ZESTAWY B Zestaw 10 1. Ogrodnik zebrał w pewnym roku N ton pewnych owoców, a w następnym 80% tej ilości. W kolejnych latach plony kształtują się następująco: w latach parzystych (tj. w roku czwartym, szóstym itd.) ogrodnik uzyskuje 80% tego co w poprzednim roku plus 40% plonu sprzed dwóch lat, a w latach nieparzystych (trzecim, piątym itd.) - 75% ilości wyliczonej wg wzoru dla roku parzystego (przykład: dla N =100 ton plon w kolejnym roku to 80 ton, a w kolejnych latach odpowiednio: 78 ton, 94.4 tony, 80.04 ton, 101.792 tony itd. (przyjmujemy że plony z kolejnych lat są na potrzeby dalszych obliczeń zaokrąglane do pełnych kilogramów; zaokrąglenie do najbliższej całkowitej funkcja round z biblioteki cmath). Napisać program pobierający od użytkownika dwie liczby całkowite dodatnie: N oznaczającą liczbę ton owoców zebraną w pierwszym roku oraz G, i obliczający po ilu latach ogrodnik zbierze przynajmniej G ton owoców i jaka będzie to dokładnie ilość. Wyliczane w kolejnych latach plony mają być zaokrąglane do pełnych kilogramów (jeśli uzyskamy np. 85.0872 ton, to do dalszych obliczeń brana jest wartość 85.087). dla N=100, G=1000 otrzymamy wynik: lat: 11 calkowity plon: 1031.987 dla N=50, G=800 otrzymamy wynik lat: 16 calkowity plon: 821.855 2. Napisać program tworzący dynamicznie (po pobraniu od użytkownika wartości N będącej liczbą całkowitą dodatnią) tablicę N wartości całkowitych. Program pobiera od użytkownika wartości tablicy, wypisuje jej zawartość, a następnie wypisuje te spośród rozłącznych par sąsiednich elementów tej tablicy (gdzie pary wybierane są tak, że pierwszy element tablicy jest pierwszym elementem pierwszej pary, a dla tablicy o długości nie podzielnej przez dwa końcowy element tablicy nie jest elementem żadnej pary), które zawierają dokładnie jedno wystąpienie najmniejszej wartości w tej tablicy, oraz informację ile było takich par (przykład: dla tablicy 1,-2,2,2,1,0,1,4,-2,2,3,1,-2,-2,4 program wypisze pary: 1,-2; -2,2 oraz informację że są dwie takie pary, dla tablicy 1,1,1,1 wypisze tylko informację że nie ma takich par).
ZESTAWY B Zestaw 11 1. Dziecko robi wyklejankę ze sznurka. Wyklejanka składa się z umieszczonych współśrodkowo konturów: gwiazdki sześcioramiennej o długości ramienia D cm, otaczającego ją okręgu o promieniu 2D cm, gwiazdy sześcioramiennej o długości ramienia 2D cm, otaczającego ją okręgu o promieniu 4D cm, gwiazdy o długości ramienia 3D cm, okręgu o promieniu 6D cm itd. (długości ramienia kolejnych gwiazdek są kolejnymi wielokrotnościami D, a promienie kolejnych okręgów kolejnymi wielokrotnościami 2D, lub inaczej mówiąc okrąg otaczający daną gwiazdkę ma promień dwa razy dłuższy od jej ramienia). Napisz program pobierający od użytkownika liczby całkowite dodatnie: D oznaczającą długość ramienia najmniejszej gwiazdki i S oznaczającą długość sznurka którym dysponuje dziecko (obie wyrażone w cm), a następnie informujący z ilu konturów będzie składała się wyklejanka, czy ostatnim konturem będzie gwiazdka czy okrąg, i ile sznurka zostanie. dla D=2 i S=24 wynik to: konturow 1, ostatni to gwiazdka, nie zostalo sznurka dla D=2, S=150: konturow 4, ostatni to okrag, zostalo 2.60178 cm sznurka dla D=2, S=12: konturow 0, zostalo 12 cm sznurka 2. Napisać program tworzący dynamicznie (po pobraniu od użytkownika wartości N będącej liczbą całkowitą dodatnią) tablicę N wartości całkowitych. Program pobiera od użytkownika wartości tablicy, wypisuje jej zawartość, a następnie wypisuje wszystkie rozłączne trójki sąsiednich elementów tej tablicy (gdzie trójki wybierane są tak, że pierwszy element tablicy jest pierwszym elementem pierwszej trójki, a dla tablicy o długości nie podzielnej przez trzy końcowe elementy tablicy mogą nie być elementami żadnej trójki), które złożone są tylko z liczb dodatnich, oraz informację czy była wśród nich trójka o sumie większej od liczby całkowitej G podanej przez użytkownika (przykład: dla G=4 i tablicy 1,-2,2,2,1,1,1,4,-2,2,3,1,-2,-2,4,3,1 program wypisze trójki: 2,1,1 i 2,3,1 oraz informację że była trójka o sumie większej niż G).
ZESTAWY B Zestaw 12 1. Napisać program pobierający od użytkownika wartości całkowite aż do podania wartości 0 kończącej pobieranie i wypisujący: te pary kolejno podanych wartości w przypadku których suma elementów pary jest mniejsza od średniej z dwóch liczb poprzedzających tę parę (w ciągu liczb podawanych), oraz informację ile było takich par. Przykład: dla ciągu liczb 4,3,2,1,-1,-2,9,8,1,1 program wypisze pary: 2,1; 1,-1; -1,-2; 1,1 oraz informację że były 4 takie pary. Uwaga jeśli para nie jest poprzedzona dwoma liczbami podanymi wcześniej, to nie jest wypisywana. 2. Napisać program pobierający od użytkownika tekst o maksymalnej długości 100 znaków zawierający litery i spacje. Program wypisuje pobrany tekst, a następnie wypisuje statystykę długości wyrazów tego tekstu (gdzie wyraz to tekst nie zawierający spacji). Przykład: dla tekstu Ala ma psa i dwa koguty program wypisuje: dlugosc 1 wyrazow 1 dlugosc 2 wyrazow 1 dlugosc 3 wyrazow 3 dlugosc 6 wyrazow 1
ZESTAWY C Zestaw 1 1. Pewnego dnia oszacowano populację pewnego gatunku muszek w pewnym miejscu. Okazało się, że jest ich N osobników. Po tygodniu ponownie sprawdzono i okazało się, że muszek jest o 50% więcej. Po wielu tygodniach badań okazało się, że wielkość populacji zmienia się w ten sposób, że w danym tygodniu muszek jest tyle ile w poprzednim plus 50% populacji sprzed 2 tygodni. Przykładowy ciąg określający wielkość populacji w kolejnych tygodniach może wyglądać następująco: 200, 300, 400, 550, 750, 1025,... Napisz program pobierający od użytkownika dwie liczby całkowite dodatnie: N oznaczającą początkową populację muszek oraz G, i obliczający po ilu tygodniach populacja osiągnie liczebność przynajmniej G sztuk i ile dokładnie będzie w niej wtedy osobników. Wyznaczając 50% z liczby nieparzystej przyjmij jako wynik część całkowitą z otrzymanej wartości. dla N=200 i G=500 otrzymamy wynik: tygodni: 3, populacja: 550 dla N=100 i G=2000 otrzymamy wynik: tygodni: 10, populacja: 2433 2. Napisać program tworzący dynamicznie (po pobraniu od użytkownika wartości N będącej liczbą całkowitą dodatnią) tablicę N wartości całkowitych. Program pobiera od użytkownika wartości tablicy, wypisuje jej zawartość, a następnie wypisuje te spośród par symetrycznych elementów tej tablicy, których iloczyn jest większy od liczby całkowitej G podanej przez użytkownika. Parę tworzą pierwszy i ostatni element tablicy, drugi i przedostatni, itd. Środkowy element tablicy nieparzystej długości nie znajduje się w żadnej parze. dla N=11, tablicy 1-2 2 3 1 2 1 2-2 -4 3 i G=3 program wypisze pary: -2-4, 3 2 dla N=6, tablicy 1-2 2 3 2-1 i G=0 program wypisze parę: 2 3
ZESTAWY C Zestaw 2 1. Napisać program pobierający od użytkownika wartości całkowite aż do podania wartości 0 kończącej pobieranie i wypisujący te wartości spośród nich, które były mniejsze od ilorazu dwóch poprzedzających je wartości (pierwszej wartości przez drugą), oraz wypisujący ile było takich wartości (końcowe zero nie jest brane pod uwagę). dla ciągu wartości 3 2 1 2-1 4 3-2 0 wypisywane są wartości i komunikat: 1-1 -2, znaleziono liczb: 3 dla ciągu wartości 1 1 2 2 3 3 0 wypisywany jest komunikat: znaleziono liczb: 0 2. Napisać program tworzący dynamicznie (po pobraniu od użytkownika wartości N będącej liczbą całkowitą dodatnią) tablicę N wartości całkowitych. Program pobiera od użytkownika wartości tablicy, wypisuje jej zawartość, a następnie wypisuje wszystkie takie pary nieuporządkowane utworzone z elementów tablicy stojących na różnych pozycjach, w których jeden element jest mniejszy, a drugi większy od średniej wartości elementów tej tablicy. dla N=5 i tablicy 1 6 3 4 3 wypisane mają być pary złożone z liczb: 1 6, 1 4, 6 3, 6 3, 3 4, 4 3 dla N=4 i tablicy 7 2 0-1 wypisane mają być pary złożone z liczb: 7 0, 7-1
ZESTAWY D Zestaw 1. folderze o nazwie będącej numerem indeksu, umieszczonym na pulpicie. Oddajemy tylko źródła programów (pliki o rozszerzeniach.cpp)!!! 1. Napisz program, który wczytuje dodatnie liczby całkowite mniejsze od 888 aż do napotkania liczby 888 (w przypadku wprowadzenia z klawiatury liczby niedodatniej bądź większej od 888 należy wymusić wprowadzenie dopuszczalnej wartości) i wypisuje na ekranie wszystkie trójki kolejno wczytanych liczb A, B, C, w których środkowa wartość B jest co najmniej dwukrotnie większa od sumy pozostałych (A+C). W przypadku nieistnienia takiej trójki należy wyprowadzić stosowny komunikat. Np. dla liczb: 3,1,6,2,2,7,1 program wypisuje następujące trójki liczb: (1,6,2), (2,7,1) zaś dla liczb: 1,3,1,2,3 pojawia się komunikat: "Brak trójek kolejnych liczb, w których środkowa jest dwukrotnie większa od sumy pozostałych". 2. Napisz program, który wczytuje rozmiar tablicy typu int oraz pobiera wszystkie jej wartości (należy nie dopuścić do wczytania liczby ujemnej do tablicy) a potem losuje 2 różne nieujemne liczby całkowite M, N mniejsze niż rozmiar tablicy takie, że M<N. Następnie program wypisuje na ekranie wczytaną tablicę oraz wszystkie różne wartości liczb wczytanych do tablicy począwszy od elementu o indeksie M do elementu o indeksie N wraz z ich krotnościami w tym zakresie. Np. dla tablicy o wczytanych wartościach: 4,3,5,1,2,3,4,6,4,2,5,6, liczbach M=3, N=10 wypisane zostaną następujące pary wartości: (1,1), (2,2), (3,1), (4,2), (6,1), (5,1).
ZESTAWY D Zestaw 2. folderze o nazwie będącej numerem indeksu, umieszczonym na pulpicie. Oddajemy tylko źródła programów (pliki o rozszerzeniach.cpp)!!! 1. Napisz program, który wczytuje dodatnie liczby całkowite mniejsze od 777 aż do napotkania liczby 777 (w przypadku wprowadzenia z klawiatury liczby niedodatniej bądź większej od 777 należy wymusić wprowadzenie dopuszczalnej wartości) i wypisuje na ekranie wszystkie trójki kolejno wczytanych liczb A, B, C, które mogą stanowić długości boków trójkąta. W przypadku nieistnienia takiej trójki należy wyprowadzić stosowny komunikat. Np. dla liczb: 3,4,5,2,2,7,6 program wypisuje następujące trójki liczb: (3,4,5), (4,5,2), (2,7,6) zaś dla liczb: 1,2,1,1,3 pojawia się komunikat: "Brak trójek kolejnych liczb mogących stanowić długości boków trójkąta". 2. Napisz program, pobierający z klawiatury dowolny tekst o maksymalnej długości 80 znaków a następnie usuwający wszystkie znaki inne niż litery (małe i duże), cyfry i spacje (w konsekwencji tekst się skraca!). Na koniec program wypisuje liczbę usuniętych znaków a następnie tekst po wprowadzonych zmianach. Np. dla tekstu: "Ala ma kota. As to Ali pies, czy ty masz go też?", liczba usuniętych znaków to 3, zaś tekst po zmianach wygląda tak: "Ala ma kota As to Ali pies czy ty masz go też"
ZESTAWY D Zestaw 3. folderze o nazwie będącej numerem indeksu, umieszczonym na pulpicie. Oddajemy tylko źródła programów (pliki o rozszerzeniach.cpp)!!! 1. Napisz program, który wczytuje dodatnie liczby całkowite N mniejsze od 999 aż do napotkania liczby 999 (w przypadku wprowadzenia z klawiatury liczby niedodatniej bądź większej od 999 należy wymusić wprowadzenie dopuszczalnej wartości) i dla każdej wczytanej liczby N wypisuje na ekranie wszystkie możliwe pary liczb całkowitych dodatnich (p,q), dla których N=p 2 +q 2 oraz p<=q. W przypadku nieistnienia takiej pary należy wyprowadzić stosowny komunikat. Np. dla liczby N=5 program ma wypisać parę (1,2) zaś dla liczby n=3 należy wyprowadzić komunikat: "Liczba 3 nie rozkłada się na sumę kwadratów dwóch liczb naturalnych". 2. Napisz program, który wczytuje liczbę całkowitą N > 3 (w przypadku podania liczby mniejszej bądź równej 3 należy wymusić wprowadzenie poprawnej wartości) i tworzy tablicę dwuwymiarową typu int o rozmiarach N na 3 oraz losuje N trójek liczb całkowitych dodatnich z zakresu od 1 do 10 i zapisuje je w tej tablicy. Następnie program wypisuje średnią arytmetyczną ze wszystkich iloczynów zapisanych w tablicy trójek oraz wypisuje te trójki, których iloczyn jest co najmniej dwukrotnie większy niż wyliczona średnia. W przypadku nieistnienia takich trójek należy wyprowadzić stosowny komunikat. Np. dla trójek (2,3,4), (1,4,5), (6,4,8), (2,3,1) średnia wynosi 60.5 i wyprowadzona na ekran jest tylko trójka (6,4,8).