Ćwiczenia w tej sekcji sprawdzają wiedzę zawartą nie tylko w tym e‑materiale, ale i w pozostałych e‑materiałach z tej serii. Linki do nich znajdziesz w sekcji „Wprowadzenie”.
11
Pokaż ćwiczenia:
RcEXVduteAf7p1
Ćwiczenie 1
Rtv7OZT5iJ6841
Ćwiczenie 2
R1NXDzXud2brG1
Ćwiczenie 3
Rx8FFbCslm5ud2
Ćwiczenie 4
2
Ćwiczenie 5
R1OCh5KTXr7CY
Asocjacja to połączenie aktora z przypadkiem użycia.
RrTyttbkArb9b3
Ćwiczenie 6
Ćwiczenie 6
RkZIayUR2QEsL
3
Ćwiczenie 7
Zaprojektuj diagram przypadków użycia dla pewnej małej firmy.
Aktorzy:
Dział zamówień
Klient
Kasa
Księgowość
Przypadki użycia:
Analiza zamówienia
Przygotowanie wysyłki
Składanie zamówienia
Realizacja płatności
Fakturowanie
Dla ułatwienia na diagramie umieszczono już asocjacje.
R3NY0CE7ZIKLD
RHnNibwNmlZdn
Ćwiczenie 7
R145G5HUGlHA8
3
Ćwiczenie 8
W wybranym przez siebie języku programowania napisz program wielowątkowy, który w pierwszym wątku będzie generował losowe liczby i wypisywał je na wyjściu standardowym.
W międzyczasie ma się uruchomić drugi wątek, który będzie oczekiwał na wciśnięcie klawisza Enter. Po kliknięciu tego przycisku praca obydwu wątków ma się zatrzymać. Po ponownym wciśnięciu klawisza Enter praca obydwu wątków ma się wznowić.
Program uruchom, wykorzystując zainstalowany lokalnie kompilator lub interpreter.
Rllb5tTvB2eYj
Oto rozwiązania w: C++, Python, Java.
C++
Linia 1. kratka define podkreślnik CRT podkreślnik NONSTDC podkreślnik NO podkreślnik DEPRECATE.
Linia 2. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 3. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 4. kratka include otwórz nawias ostrokątny thread zamknij nawias ostrokątny.
Linia 5. kratka include otwórz nawias ostrokątny conio kropka h zamknij nawias ostrokątny.
Linia 6. kratka include otwórz nawias ostrokątny windows kropka h zamknij nawias ostrokątny.
Linia 7. using namespace std średnik.
Linia 9. void wypisywanieInformacji otwórz nawias okrągły bool asterysk flaga zamknij nawias okrągły.
Linia 10. otwórz nawias klamrowy.
Linia 11. while otwórz nawias okrągły true zamknij nawias okrągły.
Linia 12. otwórz nawias klamrowy.
Linia 13. if otwórz nawias okrągły wykrzyknik asterysk flaga zamknij nawias okrągły.
Linia 14. otwórz nawias klamrowy.
Linia 15. cout otwórz nawias ostrokątny otwórz nawias ostrokątny rand otwórz nawias okrągły zamknij nawias okrągły procent 100 otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik.
Linia 16. this podkreślnik thread dwukropek dwukropek sleep podkreślnik for otwórz nawias okrągły chrono dwukropek dwukropek milliseconds otwórz nawias okrągły 200 zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 17. zamknij nawias klamrowy.
Linia 18. this podkreślnik thread dwukropek dwukropek sleep podkreślnik for otwórz nawias okrągły chrono dwukropek dwukropek milliseconds otwórz nawias okrągły 200 zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 19. zamknij nawias klamrowy.
Linia 20. zamknij nawias klamrowy.
Linia 22. void oczekiwanieNaInput otwórz nawias okrągły bool asterysk flaga zamknij nawias okrągły.
Linia 23. otwórz nawias klamrowy.
Linia 24. char check średnik.
Linia 25. while otwórz nawias okrągły true zamknij nawias okrągły.
Linia 26. otwórz nawias klamrowy.
Linia 27. char przycisk znak równości getch otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 28. if otwórz nawias okrągły asterysk flaga zamknij nawias okrągły cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów Kliknieto guzik wykrzyknik Startuje wypisywanie wykrzyknik cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik.
Linia 29. else cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów Kliknieto guzik wykrzyknik Zatrzymuje wypisywanie wykrzyknik cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik.
Linia 30. asterysk flaga znak równości wykrzyknik asterysk flaga średnik.
Linia 31. zamknij nawias klamrowy.
Linia 33. zamknij nawias klamrowy.
Linia 37. int main otwórz nawias okrągły zamknij nawias okrągły.
Linia 38. otwórz nawias klamrowy.
Linia 39. bool czyGenerowac znak równości false średnik.
Linia 40. thread watekInput otwórz nawias okrągły oczekiwanieNaInput przecinek ampersant czyGenerowac zamknij nawias okrągły średnik.
Linia 41. thread watekOutput otwórz nawias okrągły wypisywanieInformacji przecinek ampersant czyGenerowac zamknij nawias okrągły średnik.
Linia 42. watekInput kropka join otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 43. watekOutput kropka join otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 44. zamknij nawias klamrowy.
Python
Linia 1. import threading.
Linia 2. import time.
Linia 3. import random.
Linia 6. class Procedura dwukropek.
Linia 7. x znak równości cudzysłów brak cudzysłów.
Linia 8. petla znak równości 1.
Linia 9. def losuj otwórz nawias okrągły self zamknij nawias okrągły dwukropek.
Linia 10. while True dwukropek.
Linia 11. if self kropka petla znak równości znak równości 1 dwukropek.
Linia 12. print otwórz nawias okrągły random kropka random otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły.
Linia 13. time kropka sleep otwórz nawias okrągły 1 zamknij nawias okrągły.
Linia 15. def odczytaj otwórz nawias okrągły self zamknij nawias okrągły dwukropek.
Linia 16. while True dwukropek.
Linia 17. self kropka x znak równości input otwórz nawias okrągły zamknij nawias okrągły.
Linia 18. if self kropka x znak równości znak równości cudzysłów cudzysłów and self kropka petla znak równości znak równości 1 dwukropek.
Linia 19. print otwórz nawias okrągły cudzysłów Watek 1 wstrzymany cudzysłów zamknij nawias okrągły.
Linia 20. self kropka petla znak równości 0.
Linia 21. elif self kropka x znak równości znak równości cudzysłów cudzysłów and self kropka petla znak równości znak równości 0 dwukropek.
Linia 22. print otwórz nawias okrągły cudzysłów Watek 1 wznowiony cudzysłów zamknij nawias okrągły.
Linia 23. self kropka petla znak równości 1.
Linia 24. self kropka x znak równości cudzysłów brak cudzysłów.
Linia 27. klasa znak równości Procedura otwórz nawias okrągły zamknij nawias okrągły.
Linia 29. t1 znak równości threading kropka Thread otwórz nawias okrągły target znak równości klasa kropka losuj zamknij nawias okrągły.
Linia 30. t2 znak równości threading kropka Thread otwórz nawias okrągły target znak równości klasa kropka odczytaj zamknij nawias okrągły.
Linia 32. t1 kropka start otwórz nawias okrągły zamknij nawias okrągły.
Linia 33. t2 kropka start otwórz nawias okrągły zamknij nawias okrągły.
Java
plik: ObslugaPetli.java
Linia 1. public class ObslugaPetli otwórz nawias klamrowy.
Linia 2. boolean petla średnik.
Linia 3. public ObslugaPetli otwórz nawias okrągły boolean petla zamknij nawias okrągły.
Linia 4. otwórz nawias klamrowy.
Linia 5. this kropka petla znak równości petla średnik.
Linia 6. zamknij nawias klamrowy.
Linia 7. public void zmien otwórz nawias okrągły zamknij nawias okrągły.
Linia 8. otwórz nawias klamrowy.
Linia 9. if otwórz nawias okrągły this kropka petla znak równości znak równości true zamknij nawias okrągły this kropka petla znak równości false średnik.
Linia 10. else this kropka petla znak równości true średnik.
Linia 11. zamknij nawias klamrowy.
Linia 13. zamknij nawias klamrowy.
plik: Polecenie1.java
Linia 1. import java kropka util kropka Random średnik.
Linia 2. import java kropka util kropka Scanner średnik.
Linia 4. public class Polecenie1 implements Runnable otwórz nawias klamrowy.
Linia 5. int trybPracy średnik.
Linia 6. ObslugaPetli petla średnik.
Linia 7. public Polecenie1 otwórz nawias okrągły ObslugaPetli petla przecinek int trybPracy zamknij nawias okrągły otwórz nawias klamrowy.
Linia 8. this kropka petla znak równości petla średnik.
Linia 9. this kropka trybPracy znak równości trybPracy średnik.
Linia 10. zamknij nawias klamrowy.
Linia 11. public void Losuj otwórz nawias okrągły zamknij nawias okrągły throws InterruptedException.
Linia 12. otwórz nawias klamrowy.
Linia 13. Random random znak równości new Random otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 14. while otwórz nawias okrągły true zamknij nawias okrągły.
Linia 15. otwórz nawias klamrowy.
Linia 16. if otwórz nawias okrągły this kropka petla kropka petla zamknij nawias okrągły otwórz nawias klamrowy System kropka out kropka print otwórz nawias okrągły random kropka nextInt otwórz nawias okrągły zamknij nawias okrągły plus cudzysłów lewy ukośnik n cudzysłów zamknij nawias okrągły średnik zamknij nawias klamrowy.
Linia 17. Thread kropka sleep otwórz nawias okrągły 1000 zamknij nawias okrągły średnik.
Linia 18. zamknij nawias klamrowy.
Linia 19. zamknij nawias klamrowy.
Linia 20. public void Odczytaj otwórz nawias okrągły zamknij nawias okrągły.
Linia 21. otwórz nawias klamrowy.
Linia 22. Scanner myObj znak równości new Scanner otwórz nawias okrągły System kropka in zamknij nawias okrągły średnik.
Linia 23. while otwórz nawias okrągły true zamknij nawias okrągły.
Linia 24. otwórz nawias klamrowy.
Linia 25. myObj kropka nextLine otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 26. if otwórz nawias okrągły this kropka petla kropka petla znak równości znak równości true zamknij nawias okrągły.
Linia 27. otwórz nawias klamrowy.
Linia 28. System kropka out kropka print otwórz nawias okrągły cudzysłów Watek 1 wstrzymany lewy ukośnik n cudzysłów zamknij nawias okrągły średnik.
Linia 29. this kropka petla kropka zmien otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 30. zamknij nawias klamrowy.
Linia 31. else if otwórz nawias okrągły this kropka petla kropka petla znak równości znak równości false zamknij nawias okrągły.
Linia 32. otwórz nawias klamrowy.
Linia 33. System kropka out kropka print otwórz nawias okrągły cudzysłów Watek 1 wznowiony lewy ukośnik n cudzysłów zamknij nawias okrągły średnik.
Linia 34. this kropka petla kropka zmien otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 35. zamknij nawias klamrowy.
Linia 36. zamknij nawias klamrowy.
Linia 37. zamknij nawias klamrowy.
Linia 38. at Override.
Linia 39. public void run otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 40. try otwórz nawias klamrowy.
Linia 41. System kropka out kropka print otwórz nawias okrągły this kropka trybPracy zamknij nawias okrągły średnik.
Linia 42. if otwórz nawias okrągły this kropka trybPracy znak równości znak równości 1 zamknij nawias okrągły otwórz nawias klamrowy this kropka Losuj otwórz nawias okrągły zamknij nawias okrągły średnik zamknij nawias klamrowy.
Linia 43. else if otwórz nawias okrągły this kropka trybPracy znak równości znak równości 2 zamknij nawias okrągły otwórz nawias klamrowy this kropka Odczytaj otwórz nawias okrągły zamknij nawias okrągły średnik zamknij nawias klamrowy.
Linia 44. zamknij nawias klamrowy catch otwórz nawias okrągły InterruptedException e zamknij nawias okrągły otwórz nawias klamrowy.
Linia 45. e kropka printStackTrace otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 46. zamknij nawias klamrowy.
Linia 47. zamknij nawias klamrowy.
Linia 48. zamknij nawias klamrowy.
Linia 50. class Main otwórz nawias klamrowy.
Linia 51. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy.
Linia 52. ObslugaPetli petla znak równości new ObslugaPetli otwórz nawias okrągły true zamknij nawias okrągły średnik.
Linia 53. Polecenie1 losowanie znak równości new Polecenie1 otwórz nawias okrągły petla przecinek 1 zamknij nawias okrągły średnik.
Linia 54. Polecenie1 odczytywanie znak równości new Polecenie1 otwórz nawias okrągły petla przecinek 2 zamknij nawias okrągły średnik.
Linia 55. Thread w1 znak równości new Thread otwórz nawias okrągły losowanie zamknij nawias okrągły średnik.
Linia 56. w1 kropka start otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 58. Thread w2 znak równości new Thread otwórz nawias okrągły odczytywanie zamknij nawias okrągły średnik.
Linia 59. w2 kropka start otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 60. zamknij nawias klamrowy.
Linia 61. zamknij nawias klamrowy.