{"id":168,"date":"2022-11-12T17:07:47","date_gmt":"2022-11-12T16:07:47","guid":{"rendered":"https:\/\/novum.100r.pl\/?page_id=168"},"modified":"2022-12-19T20:53:17","modified_gmt":"2022-12-19T19:53:17","slug":"programy","status":"publish","type":"page","link":"https:\/\/novum.100r.pl\/?page_id=168","title":{"rendered":"Programy"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; disabled_on=&#8221;off|on|on&#8221; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#ffc6a3&#8243; use_background_color_gradient=&#8221;on&#8221; background_color_gradient_stops=&#8221;#0c303a 0%|#29c4a9 43%|#5e5e5e 95%&#8221; background_enable_pattern_style=&#8221;on&#8221; background_pattern_style=&#8221;honeycomb&#8221; background_pattern_color=&#8221;rgba(12,48,58,0.07)&#8221; background_pattern_transform=&#8221;flip_horizontal&#8221; background_pattern_vertical_offset=&#8221;0%&#8221; min_height=&#8221;298px&#8221; top_divider_style=&#8221;slant2&#8243; top_divider_color=&#8221;#002d3a&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; width=&#8221;95%&#8221; max_width=&#8221;1600px&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; header_text_align=&#8221;center&#8221; header_text_color=&#8221;#FFFFFF&#8221; header_font_size=&#8221;42px&#8221; background_enable_image=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h1>Notatnik<\/h1>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_3,1_3,1_3&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; width=&#8221;95%&#8221; max_width=&#8221;1600px&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; background_image=&#8221;https:\/\/novum.100r.pl\/wp-content\/uploads\/2022\/11\/notatnik2.png&#8221; max_width=&#8221;95%&#8221; module_alignment=&#8221;center&#8221; height=&#8221;400px&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_text][et_pb_text _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; text_text_color=&#8221;#FFFFFF&#8221; header_text_align=&#8221;center&#8221; header_text_color=&#8221;#FFFFFF&#8221; header_font_size=&#8221;42px&#8221; background_enable_image=&#8221;off&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; content_last_edited=&#8221;on|phone&#8221; content_phone=&#8221;<\/p>\n<p style=%22text-align: justify;%22>Program napisany z przekory i my\u015bli, \u017ce da si\u0119 \u0142atwo napisa\u0107 sw\u00f3j w\u0142asny notatnik. Napisanie go nie zaj\u0119\u0142o d\u0142ugo a pokaza\u0142o, \u017ce %22da si\u0119%22. \u015awiadczy to te\u017c troch\u0119 o znajomo\u015bci i umiej\u0119tno\u015bci wykorzystania element\u00f3w GUI. Jakkolwiek, s\u0105 dost\u0119pne podstawowe funkcjonalno\u015bci notatnika takie jak zapisywanie do pliku, otwieranie plik\u00f3w .txt, czy wyszukiwanie fraz. Wszystko oparte na polu tekstowym standardowo wbudowanym w \u015brodowisku Java. Oczywi\u015bcie program uwzgl\u0119dnia te\u017c jedn\u0105 z funkcji towarzysz\u0105cych &#8211; zawijania wierszy.<\/p>\n<p>&#8221; sticky_enabled=&#8221;0&#8243; content_tablet=&#8221;<\/p>\n<p>Program napisany z przekory i my\u015bli, \u017ce da si\u0119 \u0142atwo napisa\u0107 sw\u00f3j w\u0142asny notatnik. Napisanie go nie zaj\u0119\u0142o d\u0142ugo a pokaza\u0142o, \u017ce %22da si\u0119%22. \u015awiadczy to te\u017c troch\u0119 o znajomo\u015bci i umiej\u0119tno\u015bci wykorzystania element\u00f3w GUI. Jakkolwiek, s\u0105 dost\u0119pne podstawowe funkcjonalno\u015bci notatnika takie jak zapisywanie do pliku, otwieranie plik\u00f3w .txt, czy wyszukiwanie fraz. Wszystko oparte na polu tekstowym standardowo wbudowanym w \u015brodowisku Java. Oczywi\u015bcie program uwzgl\u0119dnia te\u017c jedn\u0105 z funkcji towarzysz\u0105cych &#8211; zawijania wierszy.<\/p>\n<p>&#8222;]<\/p>\n<p>Program napisany z przekory i my\u015bli, \u017ce da si\u0119 \u0142atwo napisa\u0107 sw\u00f3j w\u0142asny notatnik. Napisanie go nie zaj\u0119\u0142o d\u0142ugo a pokaza\u0142o, \u017ce &#8222;da si\u0119&#8221;. \u015awiadczy to te\u017c troch\u0119 o znajomo\u015bci i umiej\u0119tno\u015bci wykorzystania element\u00f3w GUI. Jakkolwiek, s\u0105 dost\u0119pne podstawowe funkcjonalno\u015bci notatnika takie jak zapisywanie do pliku, otwieranie plik\u00f3w .txt, czy wyszukiwanie fraz. Wszystko oparte na polu tekstowym standardowo wbudowanym w \u015brodowisku Java. Oczywi\u015bcie program uwzgl\u0119dnia te\u017c jedn\u0105 z funkcji towarzysz\u0105cych &#8211; zawijania wierszy.<\/p>\n<p>[\/et_pb_text][et_pb_divider _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_divider][et_pb_text _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; header_text_align=&#8221;center&#8221; header_text_color=&#8221;#FFFFFF&#8221; header_font_size=&#8221;42px&#8221; background_enable_image=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h1>Kalkulator walut<\/h1>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; background_image=&#8221;https:\/\/novum.100r.pl\/wp-content\/uploads\/2022\/11\/dibs2.png&#8221; width=&#8221;100%&#8221; max_width=&#8221;95%&#8221; module_alignment=&#8221;center&#8221; height=&#8221;350px&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p>.<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; text_text_color=&#8221;#FFFFFF&#8221; header_text_align=&#8221;center&#8221; header_text_color=&#8221;#FFFFFF&#8221; header_font_size=&#8221;42px&#8221; background_enable_image=&#8221;off&#8221; text_orientation=&#8221;justified&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p>Program &#8222;DibsCalc&#8221; w za\u0142o\u017ceniu ma realizowa\u0107 pobieranie aktualnego kursu walut ze \u017ar\u00f3de\u0142 internetowych i przelicznie podanej kwoty wg. bie\u017c\u0105cego kursu.<\/p>\n<p>Program, kt\u00f3ry przygotowa\u0142em pobiera aktualny kurs podstawowych walut ze strony Narodowego Banku Polskiego. Serwis pozwala pobra\u0107 te informacje z zamieszczonego pliku xml (w kilku wersjach). Ja wybra\u0142em wersj\u0119 pliku \u201elastA.xml\u201d, kt\u00f3ry zawiera kurs podstawowych 36 walut. Plik jest aktualizowany codziennie o godzinie 12:00.<\/p>\n<p>Plik danych pobierany jest po nawi\u0105zaniu sesji i zapisany do pliku \u201elastA.xml\u201d na dysku komputera \u2013 zawsze w aktualnej wersji. Nast\u0119pnie dane s\u0105 zapisywane do tablic ArrayList&lt;&gt; o odpowiednim przechowywanym typie. Nast\u0119puje to poprzez parsowanie pliku XML \u2013 tu zastosowa\u0142em parsowanie metod\u0105 (strukturaln\u0105) DOM . Do programu zosta\u0142 przygotowany interfejs GUI zbudowany przy u\u017cyciu biblioteki SWING, kt\u00f3ry zawiera pola koniecznej interakcji: wej\u015bciowe (warto\u015b\u0107 do przeliczenia waluty oraz procentowa warto\u015b\u0107 doliczana jako kurs sprzeda\u017cy i kurs kupna) oraz wyj\u015bciowe (warto\u015b\u0107 przeliczon\u0105 po wybranym kursie; warto\u015b\u0107 pomniejszon\u0105 o kurs sprzeda\u017cy; warto\u015b\u0107 powi\u0119kszon\u0105 o kurs kupna) a tak\u017ce przyciski, etykiety i pola typu tooltip.<\/p>\n<p>Taki spos\u00f3b obliczania kwot zastosowa\u0142em ze wzgl\u0119du na fakt, i\u017c NBP podaje jedynie tzw. kursy \u015brednie. Mo\u017cliwe jest tak\u017ce zapisanie tablicy kurs\u00f3w do pliku, w\u0142a\u015bciwie o dowolnym rozszerzeniu, lecz o wymaganej strukturze XML. Mo\u017cliwe jest tak\u017ce odczytanie zarchiwizowanej (zapisanej wcze\u015bniej) tablicy. Mo\u017cna te\u017c wybra\u0107 kierunek przeliczania (&#8222;na walut\u0119 obc\u0105&#8221; lub \u201ena PLN\u201d).<\/p>\n<p>Waluta do wyboru jest dost\u0119pna na li\u015bcie typu JComboBox dopiero po zsychronizowaniu z serwisem lub odczytaniu z pliku. Do tego jest jeszcze zegar i data, z kt\u00f3rej pochodzi kurs. Kod ca\u0142ego programu to troch\u0119 ponad 500 linii zawartych w jednym pliku. Z uwagi na fakt, i\u017c pobierany plik jest ma\u0142y a parsowanie szybkie nie zdecydowa\u0142em si\u0119 na u\u017cycie do tego osobnych w\u0105tk\u00f3w. Kod jest ma\u0142o hermetyczny, np. metody typu \u201epublic static\u201d, co z pewno\u015bci\u0105 trzeba by\u0142o by zmieni\u0107 . Z drugiej strony jednak szczeg\u00f3\u0142owe importy, u\u017cycie dynamicznych list, menu programu oraz dosy\u0107 rozbudowany nas\u0142uchiwacz zdarze\u0144 .<\/p>\n<p>W pakiecie java.util jest klasa \u201eCurrency\u201d, kt\u00f3ra mo\u017ce s\u0142u\u017cy\u0107 do przeliczania walut w zale\u017cno\u015bci od lokalizacji. Jednak, w tym programie, dane dotycz\u0105 tylko kursu w Polsce, wi\u0119c u\u017cywanie regionalizacji uzna\u0142em tu za niepotrzebne.<\/p>\n<p>[\/et_pb_text][et_pb_divider _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_divider][et_pb_text _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; header_text_align=&#8221;center&#8221; header_text_color=&#8221;#FFFFFF&#8221; header_font_size=&#8221;42px&#8221; background_enable_image=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h1>Symulator AM\/FM<\/h1>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; background_image=&#8221;https:\/\/novum.100r.pl\/wp-content\/uploads\/2022\/11\/amfm2.png&#8221; max_width=&#8221;95%&#8221; module_alignment=&#8221;center&#8221; height=&#8221;310px&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; width=&#8221;95%&#8221; max_width=&#8221;1600px&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; text_text_color=&#8221;#FFFFFF&#8221; header_text_align=&#8221;center&#8221; header_text_color=&#8221;#FFFFFF&#8221; header_font_size=&#8221;42px&#8221; background_enable_image=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p style=\"text-align: justify;\">Program \u201eGraphModd\u201d napisa\u0142em w ramach zaliczenia zaj\u0119\u0107 <em>Wsp\u00f3\u0142czesne systemy telekomunikacyjne<\/em>. Obrazuje on zasad\u0119 modulacji AM oraz FM \u2013 bazowych modulacji, na kt\u00f3rych opiera si\u0119 radiofonia. S\u0105 tak\u017ce wykorzystywane do modulacji cyfrowych ( jako ASK i FSK \u2013 przebieg moduluj\u0105cy ma wtedy charakter skokowy np. binarny), jakkolwiek zasada modulacji pozostaje ta sama.<\/p>\n<p style=\"text-align: justify;\">Modulacj\u0119 wybra\u0107 mo\u017cna poprzez pozycj\u0119 z menu \u201eWyb\u00f3r modelu modulacji -&gt;\u2026\u201d. W programie mo\u017cna wybra\u0107 gotowe scenariusze wyrazistych przyk\u0142ad\u00f3w \u201eOpcje -&gt; Scenariusze -&gt; .. \u201d. Program pozwala na modyfikacj\u0119 parametr\u00f3w za pomoc\u0105 suwak\u00f3w, co pozwala zauwa\u017cy\u0107 wp\u0142yw na modulacj\u0119. 1) fala no\u015bna, 2) sygna\u0142 do modulacji, 3) indeks\/g\u0142\u0119boko\u015b\u0107 modulacji. To technicznie.<\/p>\n<p style=\"text-align: justify;\">Od strony programistycznej to dwa pliki \u2018.java\u2019. Interfejs graficzny napisany z u\u017cyciem biblioteki SWING \u2013 widok okna, obiekty typu \u2018menu\u2019 i \u2018slider\u2019 oraz AWG \u2013 rysowanie przebieg\u00f3w funkcj\u0105 \u201epaintComponent()\u201d. Same wykresy s\u0105 generowane za pomoc\u0105 r\u00f3wna\u0144 matematycznych, kt\u00f3re opisuj\u0105 modulacj\u0119. Parametry s\u0105 tu dobrane tak, aby wykres utrzymywa\u0142 si\u0119 w kadrze. Sam kod sk\u0142ada si\u0119 z ok. 450 linii.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; disabled_on=&#8221;on|on|off&#8221; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#ffc6a3&#8243; use_background_color_gradient=&#8221;on&#8221; background_color_gradient_stops=&#8221;#0c303a 0%|#29c4a9 43%|#5e5e5e 95%&#8221; background_enable_pattern_style=&#8221;on&#8221; background_pattern_style=&#8221;honeycomb&#8221; background_pattern_color=&#8221;rgba(12,48,58,0.07)&#8221; background_pattern_transform=&#8221;flip_horizontal&#8221; background_pattern_vertical_offset=&#8221;0%&#8221; min_height=&#8221;298px&#8221; top_divider_style=&#8221;slant2&#8243; top_divider_color=&#8221;#002d3a&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row column_structure=&#8221;1_3,1_3,1_3&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; width=&#8221;95%&#8221; max_width=&#8221;1600px&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; header_text_align=&#8221;center&#8221; header_text_color=&#8221;#FFFFFF&#8221; header_font_size=&#8221;42px&#8221; background_enable_image=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h1>Notatnik<\/h1>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; header_text_align=&#8221;center&#8221; header_text_color=&#8221;#FFFFFF&#8221; header_font_size=&#8221;42px&#8221; background_enable_image=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h1>Kalkulator walut<\/h1>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; header_text_align=&#8221;center&#8221; header_text_color=&#8221;#FFFFFF&#8221; header_font_size=&#8221;42px&#8221; background_enable_image=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h1>Symulator AM\/FM<\/h1>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_3,1_3,1_3&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; width=&#8221;95%&#8221; max_width=&#8221;1600px&#8221; animation_style=&#8221;slide&#8221; animation_direction=&#8221;right&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; background_image=&#8221;https:\/\/novum.100r.pl\/wp-content\/uploads\/2022\/11\/notatnik2.png&#8221; height=&#8221;400px&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; background_image=&#8221;https:\/\/novum.100r.pl\/wp-content\/uploads\/2022\/11\/dibs2.png&#8221; width=&#8221;100%&#8221; max_width=&#8221;100%&#8221; height=&#8221;450px&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p>.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; background_image=&#8221;https:\/\/novum.100r.pl\/wp-content\/uploads\/2022\/11\/amfm2.png&#8221; height=&#8221;400px&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_3,1_3,1_3&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; width=&#8221;95%&#8221; max_width=&#8221;1600px&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; text_text_color=&#8221;#FFFFFF&#8221; header_text_align=&#8221;center&#8221; header_text_color=&#8221;#FFFFFF&#8221; header_font_size=&#8221;42px&#8221; background_enable_image=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p>Program napisany z przekory i my\u015bli, \u017ce da si\u0119 \u0142atwo napisa\u0107 sw\u00f3j w\u0142asny notatnik. Napisanie go nie zaj\u0119\u0142o d\u0142ugo a pokaza\u0142o, \u017ce &#8222;da si\u0119&#8221;. \u015awiadczy to te\u017c troch\u0119 o znajomo\u015bci i umiej\u0119tno\u015bci wykorzystania element\u00f3w GUI. Jakkolwiek, s\u0105 dost\u0119pne podstawowe funkcjonalno\u015bci notatnika takie jak zapisywanie do pliku, otwieranie plik\u00f3w .txt, czy wyszukiwanie fraz. Wszystko oparte na polu tekstowym standardowo wbudowanym w \u015brodowisku Java. Oczywi\u015bcie program uwzgl\u0119dnia te\u017c jedn\u0105 z funkcji towarzysz\u0105cych &#8211; zawijania wierszy.<\/p>\n<p>[\/et_pb_text][et_pb_cta button_url=&#8221;\/pliki\/Notatnik.jar&#8221; button_text=&#8221;Pobierz&#8221; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;RGBA(255,255,255,0)&#8221; custom_button=&#8221;on&#8221; button_text_size=&#8221;21px&#8221; button_text_color=&#8221;#000000&#8243; button_bg_color=&#8221;#a3a3a3&#8243; button_border_width=&#8221;3px&#8221; button_border_color=&#8221;#000000&#8243; button_border_radius=&#8221;40px&#8221; button_letter_spacing=&#8221;4px&#8221; button_font=&#8221;Alegreya|600|||||||&#8221; button_use_icon=&#8221;off&#8221; button_alignment=&#8221;center&#8221; button_custom_padding=&#8221;10px||10px||true|false&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; box_shadow_style_button=&#8221;preset2&#8243; global_colors_info=&#8221;{}&#8221; button_bg_color__hover_enabled=&#8221;on|desktop&#8221; button_bg_color__hover=&#8221;rgba(224,210,148,0.72)&#8221; button_bg_enable_color__hover=&#8221;on&#8221;][\/et_pb_cta][et_pb_text _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; text_text_color=&#8221;#FFFFFF&#8221; header_font=&#8221;Alegreya|600|||||||&#8221; header_text_align=&#8221;center&#8221; header_text_color=&#8221;#FFFFFF&#8221; header_font_size=&#8221;24px&#8221; header_line_height=&#8221;1.5em&#8221; header_3_font=&#8221;Alegreya|600||||on|||&#8221; header_3_text_align=&#8221;center&#8221; header_3_text_color=&#8221;#FFFFFF&#8221; header_3_line_height=&#8221;1.5em&#8221; background_enable_image=&#8221;off&#8221; custom_margin=&#8221;||5px||false|false&#8221; custom_padding=&#8221;||||false|false&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h1 style=\"text-align: center;\">Uwaga! Przegl\u0105darki mog\u0105 ostrzega\u0107 przed zapisywaniem rzadko pobieranych plik\u00f3w.<br \/>Pobierz pomimo to.<\/h1>\n<p>&nbsp;<\/p>\n<h3>Do otwarcia programu potrzebne jest \u015brodowisko Java JRE. Je\u015bli nie masz zainstalowanej Javy <br \/>bezpo\u015bredni link pobierania znajdziesz na stronie<\/h3>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; text_text_color=&#8221;#FFFFFF&#8221; header_font=&#8221;Alegreya|600|||||||&#8221; header_text_align=&#8221;center&#8221; header_text_color=&#8221;#FFFFFF&#8221; header_font_size=&#8221;24px&#8221; header_line_height=&#8221;1.5em&#8221; header_3_font=&#8221;Alegreya|600|||||||&#8221; header_3_text_align=&#8221;center&#8221; header_3_text_color=&#8221;#000000&#8243; header_3_font_size=&#8221;23px&#8221; header_3_line_height=&#8221;1.5em&#8221; background_enable_image=&#8221;off&#8221; link_option_url=&#8221;https:\/\/java.com\/pl\/download&#8221; hover_enabled=&#8221;1&#8243; global_colors_info=&#8221;{}&#8221; header_3_text_color__hover_enabled=&#8221;on|hover&#8221; header_3_text_color__hover=&#8221;#7CDA24&#8243;]<\/p>\n<h3><a href=\"https:\/\/java.com\/pl\/download\">https:\/\/java.com\/pl\/download<\/a><\/h3>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; text_text_color=&#8221;#FFFFFF&#8221; header_text_align=&#8221;center&#8221; header_text_color=&#8221;#FFFFFF&#8221; header_font_size=&#8221;42px&#8221; background_enable_image=&#8221;off&#8221; text_orientation=&#8221;justified&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p>Program &#8222;DibsCalc&#8221; w za\u0142o\u017ceniu ma realizowa\u0107 pobieranie aktualnego kursu walut ze \u017ar\u00f3de\u0142 internetowych i przelicznie podanej kwoty wg. bie\u017c\u0105cego kursu.<\/p>\n<p>Program, kt\u00f3ry przygotowa\u0142em pobiera aktualny kurs podstawowych walut ze strony Narodowego Banku Polskiego. Serwis pozwala pobra\u0107 te informacje z zamieszczonego pliku xml (w kilku wersjach). Ja wybra\u0142em wersj\u0119 pliku \u201elastA.xml\u201d, kt\u00f3ry zawiera kurs podstawowych 36 walut. Plik jest aktualizowany codziennie o godzinie 12:00.<\/p>\n<p>Plik danych pobierany jest po nawi\u0105zaniu sesji i zapisany do pliku \u201elastA.xml\u201d na dysku komputera \u2013 zawsze w aktualnej wersji. Nast\u0119pnie dane s\u0105 zapisywane do tablic ArrayList&lt;&gt; o odpowiednim przechowywanym typie. Nast\u0119puje to poprzez parsowanie pliku XML \u2013 tu zastosowa\u0142em parsowanie metod\u0105 (strukturaln\u0105) DOM . Do programu zosta\u0142 przygotowany interfejs GUI zbudowany przy u\u017cyciu biblioteki SWING, kt\u00f3ry zawiera pola koniecznej interakcji: wej\u015bciowe (warto\u015b\u0107 do przeliczenia waluty oraz procentowa warto\u015b\u0107 doliczana jako kurs sprzeda\u017cy i kurs kupna) oraz wyj\u015bciowe (warto\u015b\u0107 przeliczon\u0105 po wybranym kursie; warto\u015b\u0107 pomniejszon\u0105 o kurs sprzeda\u017cy; warto\u015b\u0107 powi\u0119kszon\u0105 o kurs kupna) a tak\u017ce przyciski, etykiety i pola typu tooltip.<\/p>\n<p>Taki spos\u00f3b obliczania kwot zastosowa\u0142em ze wzgl\u0119du na fakt, i\u017c NBP podaje jedynie tzw. kursy \u015brednie. Mo\u017cliwe jest tak\u017ce zapisanie tablicy kurs\u00f3w do pliku, w\u0142a\u015bciwie o dowolnym rozszerzeniu, lecz o wymaganej strukturze XML. Mo\u017cliwe jest tak\u017ce odczytanie zarchiwizowanej (zapisanej wcze\u015bniej) tablicy. Mo\u017cna te\u017c wybra\u0107 kierunek przeliczania (&#8222;na walut\u0119 obc\u0105&#8221; lub \u201ena PLN\u201d).<\/p>\n<p>Waluta do wyboru jest dost\u0119pna na li\u015bcie typu JComboBox dopiero po zsychronizowaniu z serwisem lub odczytaniu z pliku. Do tego jest jeszcze zegar i data, z kt\u00f3rej pochodzi kurs. Kod ca\u0142ego programu to troch\u0119 ponad 500 linii zawartych w jednym pliku. Z uwagi na fakt, i\u017c pobierany plik jest ma\u0142y a parsowanie szybkie nie zdecydowa\u0142em si\u0119 na u\u017cycie do tego osobnych w\u0105tk\u00f3w. Kod jest ma\u0142o hermetyczny, np. metody typu \u201epublic static\u201d, co z pewno\u015bci\u0105 trzeba by\u0142o by zmieni\u0107 . Z drugiej strony jednak szczeg\u00f3\u0142owe importy, u\u017cycie dynamicznych list, menu programu oraz dosy\u0107 rozbudowany nas\u0142uchiwacz zdarze\u0144 .<\/p>\n<p>W pakiecie java.util jest klasa \u201eCurrency\u201d, kt\u00f3ra mo\u017ce s\u0142u\u017cy\u0107 do przeliczania walut w zale\u017cno\u015bci od lokalizacji. Jednak, w tym programie, dane dotycz\u0105 tylko kursu w Polsce, wi\u0119c u\u017cywanie regionalizacji uzna\u0142em tu za niepotrzebne.<\/p>\n<p>[\/et_pb_text][et_pb_cta button_url=&#8221;\/pliki\/DibsCalc.jar&#8221; button_text=&#8221;Pobierz&#8221; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;RGBA(255,255,255,0)&#8221; custom_button=&#8221;on&#8221; button_text_size=&#8221;21px&#8221; button_text_color=&#8221;#000000&#8243; button_bg_color=&#8221;#a3a3a3&#8243; button_border_width=&#8221;3px&#8221; button_border_color=&#8221;#000000&#8243; button_border_radius=&#8221;40px&#8221; button_letter_spacing=&#8221;4px&#8221; button_font=&#8221;Alegreya|600|||||||&#8221; button_use_icon=&#8221;off&#8221; button_alignment=&#8221;center&#8221; button_custom_padding=&#8221;10px||10px||true|false&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; box_shadow_style_button=&#8221;preset2&#8243; global_colors_info=&#8221;{}&#8221; button_bg_color__hover_enabled=&#8221;on|desktop&#8221; button_bg_color__hover=&#8221;rgba(224,210,148,0.72)&#8221; button_bg_enable_color__hover=&#8221;on&#8221;][\/et_pb_cta][et_pb_text _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; text_text_color=&#8221;#FFFFFF&#8221; header_font=&#8221;Alegreya|600|||||||&#8221; header_text_align=&#8221;center&#8221; header_text_color=&#8221;#FFFFFF&#8221; header_font_size=&#8221;24px&#8221; header_line_height=&#8221;1.5em&#8221; header_3_font=&#8221;Alegreya|600||||on|||&#8221; header_3_text_align=&#8221;center&#8221; header_3_text_color=&#8221;#FFFFFF&#8221; header_3_line_height=&#8221;1.5em&#8221; background_enable_image=&#8221;off&#8221; custom_margin=&#8221;||5px||false|false&#8221; custom_padding=&#8221;||||false|false&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h1 style=\"text-align: center;\">Uwaga! Przegl\u0105darki mog\u0105 ostrzega\u0107 przed zapisywaniem rzadko pobieranych plik\u00f3w.<br \/>Pobierz pomimo to.<\/h1>\n<p>&nbsp;<\/p>\n<h3>Do otwarcia programu potrzebne jest \u015brodowisko Java JRE. Je\u015bli nie masz zainstalowanej Javy <br \/>bezpo\u015bredni link pobierania znajdziesz na stronie<\/h3>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; text_text_color=&#8221;#FFFFFF&#8221; header_font=&#8221;Alegreya|600|||||||&#8221; header_text_align=&#8221;center&#8221; header_text_color=&#8221;#FFFFFF&#8221; header_font_size=&#8221;24px&#8221; header_line_height=&#8221;1.5em&#8221; header_3_font=&#8221;Alegreya|600|||||||&#8221; header_3_text_align=&#8221;center&#8221; header_3_text_color=&#8221;#000000&#8243; header_3_font_size=&#8221;23px&#8221; header_3_line_height=&#8221;1.5em&#8221; background_enable_image=&#8221;off&#8221; link_option_url=&#8221;https:\/\/java.com\/pl\/download&#8221; hover_enabled=&#8221;1&#8243; global_colors_info=&#8221;{}&#8221; header_3_text_color__hover_enabled=&#8221;on|hover&#8221; header_3_text_color__hover=&#8221;#7CDA24&#8243;]<\/p>\n<h3><a href=\"https:\/\/java.com\/pl\/download\">https:\/\/java.com\/pl\/download<\/a><\/h3>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; text_text_color=&#8221;#FFFFFF&#8221; header_text_align=&#8221;center&#8221; header_text_color=&#8221;#FFFFFF&#8221; header_font_size=&#8221;42px&#8221; background_enable_image=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p style=\"text-align: justify;\">Program \u201eGraphModd\u201d napisa\u0142em w ramach zaliczenia zaj\u0119\u0107 <em>Wsp\u00f3\u0142czesne systemy telekomunikacyjne<\/em>. Obrazuje on zasad\u0119 modulacji AM oraz FM \u2013 bazowych modulacji, na kt\u00f3rych opiera si\u0119 radiofonia. S\u0105 tak\u017ce wykorzystywane do modulacji cyfrowych ( jako ASK i FSK \u2013 przebieg moduluj\u0105cy ma wtedy charakter skokowy np. binarny), jakkolwiek zasada modulacji pozostaje ta sama.<\/p>\n<p style=\"text-align: justify;\">Modulacj\u0119 wybra\u0107 mo\u017cna poprzez pozycj\u0119 z menu \u201eWyb\u00f3r modelu modulacji -&gt;\u2026\u201d. W programie mo\u017cna wybra\u0107 gotowe scenariusze wyrazistych przyk\u0142ad\u00f3w \u201eOpcje -&gt; Scenariusze -&gt; .. \u201d. Program pozwala na modyfikacj\u0119 parametr\u00f3w za pomoc\u0105 suwak\u00f3w, co pozwala zauwa\u017cy\u0107 wp\u0142yw na modulacj\u0119. 1) fala no\u015bna, 2) sygna\u0142 do modulacji, 3) indeks\/g\u0142\u0119boko\u015b\u0107 modulacji. To technicznie.<\/p>\n<p style=\"text-align: justify;\">Od strony programistycznej to dwa pliki \u2018.java\u2019. Interfejs graficzny napisany z u\u017cyciem biblioteki SWING \u2013 widok okna, obiekty typu \u2018menu\u2019 i \u2018slider\u2019 oraz AWG \u2013 rysowanie przebieg\u00f3w funkcj\u0105 \u201epaintComponent()\u201d. Same wykresy s\u0105 generowane za pomoc\u0105 r\u00f3wna\u0144 matematycznych, kt\u00f3re opisuj\u0105 modulacj\u0119. Parametry s\u0105 tu dobrane tak, aby wykres utrzymywa\u0142 si\u0119 w kadrze. Sam kod sk\u0142ada si\u0119 z ok. 450 linii.<\/p>\n<p>[\/et_pb_text][et_pb_cta button_url=&#8221;\/pliki\/GraphModd.jar&#8221; button_text=&#8221;Pobierz&#8221; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;RGBA(255,255,255,0)&#8221; custom_button=&#8221;on&#8221; button_text_size=&#8221;21px&#8221; button_text_color=&#8221;#000000&#8243; button_bg_color=&#8221;#a3a3a3&#8243; button_border_width=&#8221;3px&#8221; button_border_color=&#8221;#000000&#8243; button_border_radius=&#8221;40px&#8221; button_letter_spacing=&#8221;4px&#8221; button_font=&#8221;Alegreya|600|||||||&#8221; button_use_icon=&#8221;off&#8221; button_alignment=&#8221;center&#8221; button_custom_padding=&#8221;10px||10px||true|false&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; box_shadow_style_button=&#8221;preset2&#8243; global_colors_info=&#8221;{}&#8221; button_bg_color__hover_enabled=&#8221;on|desktop&#8221; button_bg_color__hover=&#8221;rgba(224,210,148,0.72)&#8221; button_bg_enable_color__hover=&#8221;on&#8221;][\/et_pb_cta][et_pb_text _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; text_text_color=&#8221;#FFFFFF&#8221; header_font=&#8221;Alegreya|600|||||||&#8221; header_text_align=&#8221;center&#8221; header_text_color=&#8221;#FFFFFF&#8221; header_font_size=&#8221;24px&#8221; header_line_height=&#8221;1.5em&#8221; header_3_font=&#8221;Alegreya|600||||on|||&#8221; header_3_text_align=&#8221;center&#8221; header_3_text_color=&#8221;#FFFFFF&#8221; header_3_line_height=&#8221;1.5em&#8221; background_enable_image=&#8221;off&#8221; custom_margin=&#8221;||5px||false|false&#8221; custom_padding=&#8221;||||false|false&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h1 style=\"text-align: center;\">Uwaga! Przegl\u0105darki mog\u0105 ostrzega\u0107 przed zapisywaniem rzadko pobieranych plik\u00f3w.<br \/>Pobierz pomimo to.<\/h1>\n<p>&nbsp;<\/p>\n<h3>Do otwarcia programu potrzebne jest \u015brodowisko Java JRE. Je\u015bli nie masz zainstalowanej Javy <br \/>bezpo\u015bredni link pobierania znajdziesz na stronie<\/h3>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; text_text_color=&#8221;#FFFFFF&#8221; header_font=&#8221;Alegreya|600|||||||&#8221; header_text_align=&#8221;center&#8221; header_text_color=&#8221;#FFFFFF&#8221; header_font_size=&#8221;24px&#8221; header_line_height=&#8221;1.5em&#8221; header_3_font=&#8221;Alegreya|600|||||||&#8221; header_3_text_align=&#8221;center&#8221; header_3_text_color=&#8221;#000000&#8243; header_3_font_size=&#8221;23px&#8221; header_3_line_height=&#8221;1.5em&#8221; background_enable_image=&#8221;off&#8221; link_option_url=&#8221;https:\/\/java.com\/pl\/download&#8221; hover_enabled=&#8221;1&#8243; global_colors_info=&#8221;{}&#8221; header_3_text_color__hover_enabled=&#8221;on|hover&#8221; header_3_text_color__hover=&#8221;#7CDA24&#8243;]<\/p>\n<h3><a href=\"https:\/\/java.com\/pl\/download\">https:\/\/java.com\/pl\/download<\/a><\/h3>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>NotatnikProgram napisany z przekory i my\u015bli, \u017ce da si\u0119 \u0142atwo napisa\u0107 sw\u00f3j w\u0142asny notatnik. Napisanie go nie zaj\u0119\u0142o d\u0142ugo a pokaza\u0142o, \u017ce &#8222;da si\u0119&#8221;. \u015awiadczy to te\u017c troch\u0119 o znajomo\u015bci i umiej\u0119tno\u015bci wykorzystania element\u00f3w GUI. Jakkolwiek, s\u0105 dost\u0119pne podstawowe funkcjonalno\u015bci notatnika takie jak zapisywanie do pliku, otwieranie plik\u00f3w .txt, czy wyszukiwanie fraz. Wszystko oparte na [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"class_list":["post-168","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/novum.100r.pl\/index.php?rest_route=\/wp\/v2\/pages\/168","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/novum.100r.pl\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/novum.100r.pl\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/novum.100r.pl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/novum.100r.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=168"}],"version-history":[{"count":34,"href":"https:\/\/novum.100r.pl\/index.php?rest_route=\/wp\/v2\/pages\/168\/revisions"}],"predecessor-version":[{"id":711,"href":"https:\/\/novum.100r.pl\/index.php?rest_route=\/wp\/v2\/pages\/168\/revisions\/711"}],"wp:attachment":[{"href":"https:\/\/novum.100r.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=168"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}