December 2018 1 119 Report
GRA W KOŚCI
Język programowania: c++
W grze w kości bierze udział dwóch graczy o nazwach: pierwszy, drugi.
Każdemu graczowi przypada 5 tur, w każdej turze, gracz wykonuje
maksymalnie 10 rzutów dwoma kośćmi jednocześnie. Tury graczy odbywają się
naprzemiennie
tzn. grę zaczyna gracz pierwszy, po turze następuje tura
gracza drugiego, następna jest tura gracza pierwszego itd.. Możliwe wyniki
rzutu jedną kością to jedna z następujących cyfr
{
1
,
2
,
3
,
4
,
5
,
6
}
. Grę zawsze
rozpoczyna gracz ”pierwszy”. Podczas każdej tury gracz zbiera punkty według
zasad opisanych poniżej. Suma punktów każdego gracza przed rozpoczęciem
gry wynosi zero. Wygrywa gracz, który zbierze mniejszą ilość punktów.
Napisz program symulujący grę w kości. Standardowe wejście programu to
dwie cyfry ze zbioru
{
1
,
2
,
3
,
4
,
5
,
6
}
oznaczające liczbę oczek na poszczególnych
kościach w danym rzucie. Pary cyfr podawane są kolejno. W każdym rzucie
wczytywana jest nowa para cyfr oznaczająca wynik rzutu kośćmi danego
gracza. Standardowe wyjście zależy od sumy oczek z obydwu kości w danym
rzucie w następujący sposób:
1. Gdy gracz w swojej turze w pierwszym rzucie uzyska sumę oczek z obu
kości równą 7 lub 11, wygrywa. Na standardowe wyjście powinien zostać
wypisany komunikat o wyniku gracza w danej turze:
"Gracz nazwa_gracza wygral".
Aktualnie wykonywana tura powinna zostać przerwana i rozpocząć tura
przeciwnika.
2. Gdy gracz w swojej turze w pierwszym rzucie uzyska sumę oczek z obu
kości równą 2 lub 12, przegrywa. Na standardowe wyjście powinien
zostać wypisany komunikat o wyniku gracza w danej turze:
"Gracz nazwa_gracza przegral".
Aktualnie wykonywana tura powinna zostać przerwana i rozpocząć tura
przeciwnika. Do punktów gracza doliczone są punkty w liczbie równej
ilości rzutów w danej turze.
3. Gdy gracz w swojej turze uzyska sumę oczek z obu kości równą 5,
wygrywa, kończy swoją turę, rozpoczyna się tura przeciwnika. Na
standardowe wyjście powinien zostać wypisany komunikat o wyniku
gracza w danej turze:
"Gracz nazwa_gracza wygral".
1
4. Gdy gracz w swojej turze uzyska sumę oczek z obu kości inną niż opisane
powyżej do punktów gracza doliczona zostaje suma oczek uzyskanych w
danym rzucie podzielona przez numer rzutu w danej turze.
Zmienne przechowujące punkty graczy ze wszystkich tur powinny być typu
double
.
Po zakończeniu
wszystkich
tur obydwu graczy na standardowe wyjście
zostaje wypisany komunikat o sumie punktów zdobytych przez każdego z
graczy oraz, który z graczy wygrał. W przypadku uzyskania jednakowej ilości
punktów przez obydwu graczy jest remis.
Wynik pierwszego gracza x
Wynik drugiego gracza y
Wygral gracz nazwa_gracza
lub
Wynik pierwszego gracza x
Wynik drugiego gracza x
Remis
Do wypisania na standardowe wyjście wyniku punktowego każdego z graczy
należy użyć komendy
cout
nie zmieniając domyślnej precyzji.
Przykład 1.
tura pierwszego gracza
:
Wejście:
1 4
Wyjście:
Gracz pierwszy wygral
tura drugiego gracza
:
Wejście:
4 5
6 6
1 6
1 4
Wyjście:
Gracz drugi wygral
tura pierwszego gracza
:
Wejście:
1 1
Wyjście:
Gracz pierwszy przegral
2
tura drugiego gracza
:
Wejście:
6 6
Wyjście:
Gracz drugi przegral
tura pierwszego gracza
:
Wejście:
1 2
5 6
2 5
6 6
3 4
5 5
1 4
Wyjście:
Gracz pierwszy wygral
tura drugiego gracza
:
Wejście:
6 6
Wyjście:
Gracz drugi przegral
tura pierwszego gracza
:
Wejście:
6 6
Wyjście:
Gracz pierwszy przegral
tura drugiego gracza
:
Wejście:
6 6
Wyjście:
Gracz drugi przegral
tura pierwszego gracza
:
Wejście:
6 6
Wyjście:
Gracz pierwszy przegral
tura drugiego gracza
:
Wejście:
6 6
Wyjście
Gracz drugi przegral
3
Wynik pierwszego gracza 19.9
Wynik drugiego gracza 21.3333
Wygral gracz pierwszy
Format przykładowego wyjścia programu:
Gracz pierwszy wygral
Gracz drugi wygral
Gracz pierwszy przegral
Gracz drugi przegral
Gracz pierwszy wygral
Gracz drugi przegral
Gracz pierwszy przegral
Gracz drugi przegral
Gracz pierwszy przegral
Gracz drugi przegral
Wynik pierwszego gracza 19.9
Wynik drugiego gracza 21.3333
Wygral gracz pierw
More Questions From This User See All

D. Baza danych Na rynku towarowym działa 1 <= m <= 100 producentów oferujących 1 <= n <= 100 produktów. Każdy producent ustala swoją cenę jednostkową danego produktu (cena jest liczbą całkowitą nieujemną, nieprzekraczającą 1000 ). Twoim zadaniem jest zarządzanie cenami produktów poszczególnych producentów tzn. przechowywanie, aktualizacja oraz wyszukiwanie informacji o produktach wszystkich producentów. Ceny należy przechowywać w dwuwymiarowej tablicy – wiersze odpowiadają producentom, natomiast kolumny produktom. Zakładamy, że producenci oraz produkty mają przypisane numery zaczynając od 0 (zgodnie z indeksowaniem tablic) . Na zdefiniowanej tablicy cen należy móc wykonywać pewne operacje. Operacja dana jest przez sygnaturę (określoną przez literę alfabetu) oraz opcjonalne parametry. Niech t(i) ( 0 <= t(i) <= 1000 ) oraz cena_jednostokowa(i) oznaczają odpowiednio ilość oraz cenę jednostkową produktu i . Na potrzeby zadania definiujemy podstawowe pojęcie sumarycznej ceny zakupu produktów w ilościach t(0),...,t(n-1) u danego producenta jako wyrażenie t(0)*cena_jednostkowa(0) + ... + t(n-1)*cena_jednostkowa(n-1) . Wejście: W kolejnych liniach opisane są wymagane do wykonania operacje o następującym formacie: • A m n t – stworzenie nowej tablicy cen o rozmiarze m na n na podstawie listy t (tablica podawana jest wierszami a poszczególne liczby oddzielone spacjami) • B i j c - aktualizacja ceny produktu j producenta i na cenę c • C i1 i2 – zamiana cen wszystkich produktów pomiędzy producentem i1 a producentem i2. Przykład: jeśli ceny produktów u producenta i1 są równe 3 4 2 natomiast ceny u producenta i2 wynoszą 10 6 8 to w wyniku wykonania tej operacji producent i1 powinien mieć zdefiniowane kolejne ceny jako 10 6 8 a producent i2 jako 3 4 2 . • D i – przesunięcie cykliczne w prawo wszystkich cen jednostkowych producenta i. Przykład : jeżeli producent i miał ustalone ceny jednostkowe równe 10 6 8, to po wykonaniu tej operacji zostaną one zmienione na 8 10 6 . • E i t(0) ... t(n-1) - wypisanie sumarycznej ceny zakupu produktów w ilościach t(0),...t(n-1) u producenta i. Przykład: jeśli kolejne ceny produktów producenta i wynoszą 3 2 7 oraz liczby t1, t2, t3 są równe 3, 1, 5, to w wyniku należy wypisać wynik operacji 3*3+1*2+5*7, czyli 46. • F t1 ... tn – należy wypisać posortowaną niemalejąco listę sumarycznych cen zakupu produktów w ilościach t(0),...,t(n-1) dla wszystkich producentów. Zabronione jest używanie bibliotek STL. Przykład: dla tabeli postaci: 2 3 1 2 1 3 3 2 2 oraz zapytania F 1 2 2 poprawną odpowiedzią jest: 10 10 11 • G j - wypisanie numeru producenta oferującego najniższą cenę jednostkową produktu j (w przypadku kilku producentów oferujących najniższą cenę, wypisz najniższy z numerów producentów oferujących cenę minimalną). • K – zakończenie działania programu Zakładamy, że podawane dane są zawsze poprawne. W szczególności pierwszą operacją jest stworzenie tablicy cen. Poza tym, może wystąpić wiele operacji tworzenia tablicy cen – wówczas nowa tablica powinna zastąpić poprzednią. Wyjście: Na wyjściu program powinien w kolejnych liniach podawać wyniki wykonywanych operacji (dotyczy sygnatur E, F, G ), a po napotkaniu sygnatury K powinien wypisać aktualną zawartość tabeli (w kolejnych liniach wypisujemy kolejne wiersze tablicy, a za każdym elementem wiersza stawiamy znak spacji). Całość kończymy przejściem do nowej linii. Przykład 1: Dla danych wejściowych: A 2 3 4 5 6 1 2 3 E 0 0 0 0 B 0 1 10 C 0 1 E 0 1 1 1 B 1 0 5 D 1 C 0 0 E 0 1 2 1 G 1 K poprawną odpowiedzią jest: 0 6 8 0 1 2 3 6 5 10
Answer
Zadanie A Język programowania: C++ Zadanie polega na napisaniu programu, który na danych wczytanych ze standardowego wejścia wykona pewne operacje. Wejście Każdy plik wejściowy będzie zawierał dokładnie dwie linie. W pierwszej linii znajdzie się pojedyncza duża litera oznaczająca kod operacji, którą masz wykonać. W drugiej linii znajdą się dane, na których masz wykonać odpowiednie operacje. Wynik działania programu ma zostać wypisany na standardowe wyjście. Uwaga: Wynik działania programu musi dokładnie odpowiadać specyfikacji. Istotna jest ilość linii, liczba spacji i i wielkośc liter. Specyfikacja operacji Kod: M Druga linia: Trzy różne liczby całkowite. Wyjście: Środkowa (pod względem wielkości) spośród wczytanych liczb. Kod: C Druga linia: Trzy liczby oddzielone pojedynczą spacją Wyjście: Linia zawierająca wczytane liczby oddzielone przecinkiem i pojedynczą spacją. Każda z liczb musi być ujęta w pojedyncze cudzysłowy. Kod: U Druga linia: Trzy małe litery oddzielone pojedynczą spacją Wyjście: Trzy duże litery odpowiadające wczytanym małym literom. Każda z liter powinna znaleźć się w osobnej linii. Kod: K Druga linia: Zapis operacja matematycznej do wykonania przez program. Zawiera kolejno: liczbę całkowitą; spację; jeden z symboli: '+', '-', '*', '/'; spację; liczbę całkowitą Wyjście: Pojedyncza linia zawierająca wynik odpowiedniej operacji matematycznej. Jeśli operacja jest dzieleniem przez zero, na wyjściu zamiast wyniku powinny pojawić się trzy wykrzykniki. Uwaga: Dzielenie w tym zadaniu jest dzieleniem całĸowitym: np. 8/3=2 Przykłady Wejście Wyjście M 0 -2 5 0 C 100 145 -54 '100', '145', '-54' U a x c A X C K 1 + 5 6 K 2 * -3 -6 K 3 - 5 -2 K 11 / 3 3 K 11 / 0 !!!
Answer

Recommend Questions



Life Enjoy

" Life is not a problem to be solved but a reality to be experienced! "

Get in touch

Social

© Copyright 2013 - 2024 KUDO.TIPS - All rights reserved.