Zestawy z dn. 30.11

Transkrypt

Zestawy z dn. 30.11
ZESTAWY A
Zestaw 2
Organizacja plików: Wszystkie pliki oddawane do sprawdzenia należy zapisać we wspólnym
folderze o nazwie będącej numerem indeksu, umieszczonym na pulpicie. Oddajemy tylko źródła
programów (pliki o rozszerzeniach .cpp)!!!
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.
Przykłady:
• 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
Organizacja plików: Wszystkie pliki oddawane do sprawdzenia należy zapisać we wspólnym
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 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.
Przykłady:
• 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
Organizacja plików: Wszystkie pliki oddawane do sprawdzenia należy zapisać we wspólnym
folderze o nazwie będącej numerem indeksu, umieszczonym na pulpicie. Oddajemy tylko źródła
programów (pliki o rozszerzeniach .cpp)!!!
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). Przykłady:
◦ 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
Organizacja plików: Wszystkie pliki oddawane do sprawdzenia należy zapisać we wspólnym
folderze o nazwie będącej numerem indeksu, umieszczonym na pulpicie. Oddajemy tylko źródła
programów (pliki o rozszerzeniach .cpp)!!!
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. Przykłady:
• 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
Organizacja plików: Wszystkie pliki oddawane do sprawdzenia należy zapisać we wspólnym
folderze o nazwie będącej numerem indeksu, umieszczonym na pulpicie. Oddajemy tylko źródła
programów (pliki o rozszerzeniach .cpp)!!!
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
Organizacja plików: Wszystkie pliki oddawane do sprawdzenia należy zapisać we wspólnym
folderze o nazwie będącej numerem indeksu, umieszczonym na pulpicie. Oddajemy tylko źródła
programów (pliki o rozszerzeniach .cpp)!!!
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.
Przykłady:
• 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.
Przykłady:
• 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
Organizacja plików: Wszystkie pliki oddawane do sprawdzenia należy zapisać we wspólnym
folderze o nazwie będącej numerem indeksu, umieszczonym na pulpicie. Oddajemy tylko źródła
programów (pliki o rozszerzeniach .cpp)!!!
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ę).
Przykłady:
• 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.
Przykłady:
• 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.
Organizacja plików: Wszystkie pliki oddawane do sprawdzenia należy zapisać we wspólnym 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.
Organizacja plików: Wszystkie pliki oddawane do sprawdzenia należy zapisać we wspólnym 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.
Organizacja plików: Wszystkie pliki oddawane do sprawdzenia należy zapisać we wspólnym 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+q2 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).