December 2018 1 72 Report
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

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
More Questions From This User See All

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
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.