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
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
Zadanie1 Podzielność Sprawdzanie podzielności podanych liczb. Wejście W pierwszej linii znajdują się dwie liczby całkowite dodatnie N i M (1≤N,M≤1000000) oddzielone spacją. W kolejnych M liniach podane są pojedyncze liczby całkowite mi (1≤mi≤1000000). Wyjście W jedynej linii wyjścia wypisz TAK, jeżeli którakolwiek z liczb mi dzieli bez reszty liczbę N. W przeciwnym wypadku, jeżeli żadna z liczb mi nie dzieli N, wypisz NIE. Przykład Dla danych wejściowych: 20 5 2 3 19 6 8 poprawną odpowiedzią jest: TAK Zadanie 2 Test liczb pierwszych Napisz program, który sprawdza, czy podana liczba całkowita jest liczbą pierwszą. Wejście Pierwsza linia wejścia zawiera jedną liczbę całkowitą określającą liczbę zestawów danych, których opisy występują kolejno po sobie. Opis jednego zestawu jest następujący: W jedynej linii zestawu znajduje się jedna liczba całkowita n z przedziału od 1 do 100000000. Wyjście Dla każdego zestawu danych wypisać w osobnej linii słowo TAK jeśli liczba n jest pierwsza lub słowo NIE w przeciwnym wypadku. Przykład Dla danych wejściowych: 4 8 7 13 22 poprawną odpowiedzią jest: NIE TAK TAK Zadanie 3 Odwracanie napisów Twoim zadaniem jest wczytać, odwrócić i wypisać podane słowo. Wejście W pierwszej linii znajduje się pojedyncza liczba naturalna N. W kolejnych N liniach znajdują się pojedyncze napisy si (mogą zawierać spacje) o długości nie przekraczającej 100 znaków każde. Wyjście Wypisz N napisów tak aby w kolejnej i-tej linii pojawił się odwrócony napis si. Przykład Dla danych wejściowych: 3 ala ma kota poprawną odpowiedzią jest: ala am atok Zadanie 4 Obliczanie maksimum i minimum Napisz program, który dla zadanych trzech liczb całkowitych znajduje największą i najmniejszą spośród nich. Wejście Pierwsza linia wejścia zawiera jedną liczbę całkowitą określającą liczbę zestawów danych, których opisy występują kolejno po sobie. Opis jednego zestawu jest następujący: W jednej linii znajdują się trzy liczby całkowite a, b i c oddzielone pojedynczym odstępem (-10000≤a,b,c≤10000). Wyjście Dla każdego zestawu danych wypisać w jednej linii dwie liczby min (najmniejszą z liczb a, b i c) i max (największą z liczb a, b i c) oddzielone pojedynczym odstępem. Przykład Dla danych wejściowych: 3 1 6 21 5 8 2 2 15 39 poprawną odpowiedzią jest: 1 21 2 8 2 39
Answer

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.