Napisz program w wybranym przez siebie języku programowania, który będzie sczytywał i wyświetlał na ekranie informację o kliknięciu strzałek kierunkowych na klawiaturze. Następnie po użyciu przycisku spacja, program wypisze, jakie strzałki zostały użyte w kolejności od tej klikniętej najwcześniej, do tej klikniętej najpóźniej. Swoje rozwiązanie porównaj z odpowiedzią.
Specyfikacja:
Dane:
lista – zmienna typu tablicowego
Wynik:
Program na wyjściu standardowym zwróci informację, jakie przyciski zostały wciśnięte przez użytkownika.
R19LXoNMcD5Ai
Język Python:
Przydatna może okazać się funkcja ord().
Sprawdź, jak program odczytuje kliknięcie strzałki.
Język C++:
Sprawdź, jak program odczytuje kliknięcie strzałki.
Język Java:
Skorzystaj z klasy KeyListener.
Przykładowe rozwiązanie w języku Java:
Linia 1. import javax kropka swing kropka asterysk średnik.
Linia 2. import java kropka awt kropka event kropka KeyEvent średnik.
Linia 3. import java kropka awt kropka event kropka KeyListener średnik.
Linia 4. import java kropka util kropka ArrayList średnik.
Linia 7. public class Main otwórz nawias klamrowy.
Linia 8. private static JTextArea tekst średnik.
Linia 9. static ArrayList lista znak równości new ArrayList otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 10. static class ObslugaWejscia implements KeyListener otwórz nawias klamrowy.
Linia 11. at Override.
Linia 12. public void keyTyped otwórz nawias okrągły KeyEvent e zamknij nawias okrągły otwórz nawias klamrowy.
Linia 14. zamknij nawias klamrowy.
Linia 15. at Override.
Linia 16. public void keyPressed otwórz nawias okrągły KeyEvent e zamknij nawias okrągły otwórz nawias klamrowy.
Linia 17. int keyCode znak równości e kropka getKeyCode otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 18. switch otwórz nawias okrągły keyCode zamknij nawias okrągły otwórz nawias klamrowy.
Linia 19. case KeyEvent kropka VK podkreślnik UP dwukropek.
Linia 20. tekst kropka append otwórz nawias okrągły cudzysłów Wcisnieto strzalke w gore lewy ukośnik n cudzysłów zamknij nawias okrągły średnik.
Linia 21. lista kropka add otwórz nawias okrągły KeyEvent kropka VK podkreślnik UP zamknij nawias okrągły średnik.
Linia 22. break średnik.
Linia 23. case KeyEvent kropka VK podkreślnik DOWN dwukropek.
Linia 24. tekst kropka append otwórz nawias okrągły cudzysłów Wcisnieto strzalke w dol lewy ukośnik n cudzysłów zamknij nawias okrągły średnik.
Linia 25. lista kropka add otwórz nawias okrągły KeyEvent kropka VK podkreślnik DOWN zamknij nawias okrągły średnik.
Linia 26. break średnik.
Linia 27. case KeyEvent kropka VK podkreślnik LEFT dwukropek.
Linia 28. tekst kropka append otwórz nawias okrągły cudzysłów Wcisnieto strzalke w lewo lewy ukośnik n cudzysłów zamknij nawias okrągły średnik.
Linia 29. lista kropka add otwórz nawias okrągły KeyEvent kropka VK podkreślnik LEFT zamknij nawias okrągły średnik.
Linia 30. break średnik.
Linia 31. case KeyEvent kropka VK podkreślnik RIGHT dwukropek.
Linia 32. tekst kropka append otwórz nawias okrągły cudzysłów Wcisnieto strzalke w prawo lewy ukośnik n cudzysłów zamknij nawias okrągły średnik.
Linia 33. lista kropka add otwórz nawias okrągły KeyEvent kropka VK podkreślnik RIGHT zamknij nawias okrągły średnik.
Linia 34. break średnik.
Linia 35. case KeyEvent kropka VK podkreślnik SPACE dwukropek.
Linia 36. tekst kropka setText otwórz nawias okrągły cudzysłów cudzysłów zamknij nawias okrągły średnik.
Linia 37. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny lista kropka size otwórz nawias okrągły zamknij nawias okrągły średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 38. int kodKlawisza znak równości otwórz nawias okrągły int zamknij nawias okrągły lista kropka get otwórz nawias okrągły i zamknij nawias okrągły średnik.
Linia 39. switch otwórz nawias okrągły kodKlawisza zamknij nawias okrągły otwórz nawias klamrowy.
Linia 40. case KeyEvent kropka VK podkreślnik UP dwukropek.
Linia 41. tekst kropka append otwórz nawias okrągły cudzysłów Archiwum dwukropek Wcisnieto strzalke w gore lewy ukośnik n cudzysłów zamknij nawias okrągły średnik.
Linia 42. break średnik.
Linia 43. case KeyEvent kropka VK podkreślnik DOWN dwukropek.
Linia 44. tekst kropka append otwórz nawias okrągły cudzysłów Archiwum dwukropek Wcisnieto strzalke w dol lewy ukośnik n cudzysłów zamknij nawias okrągły średnik.
Linia 45. break średnik.
Linia 46. case KeyEvent kropka VK podkreślnik LEFT dwukropek.
Linia 47. tekst kropka append otwórz nawias okrągły cudzysłów Archiwum dwukropek Wcisnieto strzalke w lewo lewy ukośnik n cudzysłów zamknij nawias okrągły średnik.
Linia 48. break średnik.
Linia 49. case KeyEvent kropka VK podkreślnik RIGHT dwukropek.
Linia 50. tekst kropka append otwórz nawias okrągły cudzysłów Archiwum dwukropek Wcisnieto strzalke w prawo lewy ukośnik n cudzysłów zamknij nawias okrągły średnik.
Linia 51. break średnik.
Linia 52. zamknij nawias klamrowy.
Linia 53. zamknij nawias klamrowy.
Linia 54. zamknij nawias klamrowy.
Linia 55. zamknij nawias klamrowy.
Linia 56. at Override.
Linia 57. public void keyReleased otwórz nawias okrągły KeyEvent e zamknij nawias okrągły otwórz nawias klamrowy.
Linia 59. zamknij nawias klamrowy.
Linia 60. zamknij nawias klamrowy.
Linia 61. 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 62. tekst znak równości new JTextArea otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 63. tekst kropka setEditable otwórz nawias okrągły false zamknij nawias okrągły średnik.
Linia 64. tekst kropka setSize otwórz nawias okrągły 800 przecinek 600 zamknij nawias okrągły średnik.
Linia 65. JFrame okienko znak równości new JFrame otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 66. okienko kropka add otwórz nawias okrągły tekst zamknij nawias okrągły średnik.
Linia 67. tekst kropka addKeyListener otwórz nawias okrągły new ObslugaWejscia otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 68. okienko kropka setSize otwórz nawias okrągły 800 przecinek 600 zamknij nawias okrągły średnik.
Linia 69. okienko kropka setVisible otwórz nawias okrągły true zamknij nawias okrągły średnik.
Linia 70. zamknij nawias klamrowy.
Linia 71. zamknij nawias klamrowy.
Przykładowe rozwiązanie w języku C++:
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. kratka include otwórz nawias ostrokątny thread zamknij nawias ostrokątny.
Linia 3. kratka include otwórz nawias ostrokątny conio kropka h zamknij nawias ostrokątny.
Linia 4. kratka include otwórz nawias ostrokątny vector zamknij nawias ostrokątny.
Linia 6. kratka define KEY podkreślnik UP 72.
Linia 7. kratka define KEY podkreślnik DOWN 80.
Linia 8. kratka define KEY podkreślnik LEFT 75.
Linia 9. kratka define KEY podkreślnik RIGHT 77.
Linia 10. using namespace std średnik.
Linia 12. void zinterpretujWcisnietyPrzycisk otwórz nawias okrągły zamknij nawias okrągły.
Linia 13. otwórz nawias klamrowy.
Linia 14. vector otwórz nawias ostrokątny int zamknij nawias ostrokątny lista średnik.
Linia 15. while otwórz nawias okrągły true zamknij nawias okrągły.
Linia 16. otwórz nawias klamrowy.
Linia 17. unsigned char przycisk znak równości podkreślnik getch otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 18. if otwórz nawias okrągły przycisk znak równości znak równości 0 kreska pionowa kreska pionowa przycisk znak równości znak równości 224 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 19. przycisk znak równości podkreślnik getch otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 20. if otwórz nawias okrągły przycisk znak równości znak równości KEY podkreślnik UP zamknij nawias okrągły.
Linia 21. otwórz nawias klamrowy.
Linia 22. cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów strzalka w gore cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik.
Linia 23. lista kropka push podkreślnik back otwórz nawias okrągły przycisk zamknij nawias okrągły średnik.
Linia 24. zamknij nawias klamrowy.
Linia 25. else if otwórz nawias okrągły przycisk znak równości znak równości KEY podkreślnik DOWN zamknij nawias okrągły.
Linia 26. otwórz nawias klamrowy.
Linia 27. cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów strzalka w dol cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik.
Linia 28. lista kropka push podkreślnik back otwórz nawias okrągły przycisk zamknij nawias okrągły średnik.
Linia 29. zamknij nawias klamrowy.
Linia 30. else if otwórz nawias okrągły przycisk znak równości znak równości KEY podkreślnik RIGHT zamknij nawias okrągły.
Linia 31. otwórz nawias klamrowy.
Linia 32. cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów strzalka w prawo cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik.
Linia 33. lista kropka push podkreślnik back otwórz nawias okrągły przycisk zamknij nawias okrągły średnik.
Linia 34. zamknij nawias klamrowy.
Linia 35. else if otwórz nawias okrągły przycisk znak równości znak równości KEY podkreślnik LEFT zamknij nawias okrągły.
Linia 36. otwórz nawias klamrowy.
Linia 37. cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów strzalka w lewo cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik.
Linia 38. lista kropka push podkreślnik back otwórz nawias okrągły przycisk zamknij nawias okrągły średnik.
Linia 39. zamknij nawias klamrowy.
Linia 40. zamknij nawias klamrowy.
Linia 41. else if otwórz nawias okrągły przycisk znak równości znak równości apostrof apostrof zamknij nawias okrągły.
Linia 42. otwórz nawias klamrowy.
Linia 43. for otwórz nawias okrągły int elementListy dwukropek lista zamknij nawias okrągły.
Linia 44. otwórz nawias klamrowy.
Linia 45. if otwórz nawias okrągły elementListy znak równości znak równości KEY podkreślnik UP zamknij nawias okrągły cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów wcisnieto przycisk w gore lewy ukośnik n cudzysłów średnik.
Linia 46. else if otwórz nawias okrągły elementListy znak równości znak równości KEY podkreślnik DOWN zamknij nawias okrągły cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów wcisnieto przycisk w dol lewy ukośnik n cudzysłów średnik.
Linia 47. else if otwórz nawias okrągły elementListy znak równości znak równości KEY podkreślnik LEFT zamknij nawias okrągły cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów wcisnieto przycisk w lewo lewy ukośnik n cudzysłów średnik.
Linia 48. else if otwórz nawias okrągły elementListy znak równości znak równości KEY podkreślnik RIGHT zamknij nawias okrągły cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów wcisnieto przycisk w prawo lewy ukośnik n cudzysłów średnik.
Linia 49. zamknij nawias klamrowy.
Linia 50. zamknij nawias klamrowy.
Linia 51. zamknij nawias klamrowy.
Linia 52. zamknij nawias klamrowy.
Linia 56. int main otwórz nawias okrągły zamknij nawias okrągły.
Linia 57. otwórz nawias klamrowy.
Linia 58. zinterpretujWcisnietyPrzycisk otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 59. zamknij nawias klamrowy.
Przykładowe rozwiązanie w języku Python:
Linia 1. import os.
Linia 4. def zinterpretujWcisnietyPrzycisk otwórz nawias okrągły zamknij nawias okrągły dwukropek.
Linia 5. import msvcrt.
Linia 6. lista znak równości otwórz nawias kwadratowy zamknij nawias kwadratowy.
Linia 7. while 1 dwukropek.
Linia 8. key znak równości ord otwórz nawias okrągły msvcrt kropka getch otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły.
Linia 9. if key znak równości znak równości 224 or key znak równości znak równości 0 dwukropek.
Linia 10. key znak równości ord otwórz nawias okrągły msvcrt kropka getch otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły.
Linia 11. if key znak równości znak równości 80 dwukropek kratka strzalka w dol.
Linia 12. print otwórz nawias okrągły cudzysłów kliknieto strzalke w dol cudzysłów zamknij nawias okrągły.
Linia 13. lista kropka append otwórz nawias okrągły key zamknij nawias okrągły.
Linia 14. elif key znak równości znak równości 72 dwukropek kratka strzalka w gore.
Linia 15. print otwórz nawias okrągły cudzysłów kliknieto strzalke w gore cudzysłów zamknij nawias okrągły.
Linia 16. lista kropka append otwórz nawias okrągły key zamknij nawias okrągły.
Linia 17. elif key znak równości znak równości 75 dwukropek kratka lewa strzalka.
Linia 18. print otwórz nawias okrągły cudzysłów kliknieto strzalke w lewo cudzysłów zamknij nawias okrągły.
Linia 19. lista kropka append otwórz nawias okrągły key zamknij nawias okrągły.
Linia 20. elif key znak równości znak równości 77 dwukropek kratka prawa strzalka.
Linia 21. print otwórz nawias okrągły cudzysłów kliknieto strzalke w prawo cudzysłów zamknij nawias okrągły.
Linia 22. lista kropka append otwórz nawias okrągły key zamknij nawias okrągły.
Linia 23. elif key znak równości znak równości 32 dwukropek kratka spacja.
Linia 24. os kropka system otwórz nawias okrągły cudzysłów cls cudzysłów zamknij nawias okrągły.
Linia 25. print otwórz nawias okrągły lista zamknij nawias okrągły.
Linia 26. for val in lista dwukropek.
Linia 27. if val znak równości znak równości 80 dwukropek.
Linia 28. print otwórz nawias okrągły cudzysłów dol cudzysłów zamknij nawias okrągły.
Linia 29. elif val znak równości znak równości 72 dwukropek.
Linia 30. print otwórz nawias okrągły cudzysłów gora cudzysłów zamknij nawias okrągły.
Linia 31. elif val znak równości znak równości 75 dwukropek.
Linia 32. print otwórz nawias okrągły cudzysłów lewo cudzysłów zamknij nawias okrągły.
Linia 33. elif val znak równości znak równości 77 dwukropek.
Linia 34. print otwórz nawias okrągły cudzysłów prawo cudzysłów zamknij nawias okrągły.
Linia 35. break.
Linia 38. zinterpretujWcisnietyPrzycisk otwórz nawias okrągły zamknij nawias okrągły.