<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Forum Pasja Informatyki - Najnowsze z tagiem programowanie</title>
<link>https://forum.pasja-informatyki.pl/tag/programowanie</link>
<description>Powered by Question2Answer</description>
<item>
<title>Wybór szkoły średniej</title>
<link>https://forum.pasja-informatyki.pl/599930/wybor-szkoly-sredniej</link>
<description>Widziałem, że temat ten już się przewinął, ale dotyczył kierunków takich jak technik informatyk. Ja zastanawiam się nad technik programista lub jakiś liceum i studia. Wiem, że można się uczyć samemu. Chcę zostać programistą. Czy ktoś powie coś na ten temat?</description>
<category>Rozwój zawodowy, nauka, praca</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599930/wybor-szkoly-sredniej</guid>
<pubDate>Sun, 26 Apr 2026 19:40:57 +0000</pubDate>
</item>
<item>
<title>UPDATE! Stario i AI</title>
<link>https://forum.pasja-informatyki.pl/599730/update-stario-i-ai</link>
<description>

&lt;p&gt;Ostatnio wspominałem o naszym projekcie&amp;nbsp;&lt;strong&gt;STARIO.PL&lt;/strong&gt;. To system SaaS zbudowany w oparciu o mikroserwisy i podsystemy dla branży beauty, salonów fryzjerskich oraz przychodni medycznych.&lt;/p&gt;



&lt;p&gt;Niedawno nawiązaliśmy współpracę ze startupem tworzącym generatorów AI i pojawił się pomysł: a gdyby połączyć nasze oprogramowanie do zarządzania placówkami z pełną automatyzacją procesów?&lt;/p&gt;



&lt;p&gt;Chcieliśmy, żeby w jednym miejscu dało się obsłużyć:&lt;/p&gt;



&lt;ul&gt;
	

&lt;li&gt;
	

&lt;p&gt;analizę konkurencji przez n8n,&lt;/p&gt;
	&lt;/li&gt;
	

&lt;li&gt;
	

&lt;p&gt;automatyczne przypomnienia SMS,&lt;/p&gt;
	&lt;/li&gt;
	

&lt;li&gt;
	

&lt;p&gt;prośby o opinie po wizycie,&lt;/p&gt;
	&lt;/li&gt;
	

&lt;li&gt;
	

&lt;p&gt;infolinię z agentami głosowymi AI,&lt;/p&gt;
	&lt;/li&gt;
	

&lt;li&gt;
	

&lt;p&gt;oraz całą komunikację z pacjentem lub klientem.&lt;/p&gt;
	&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;I udało się. Stworzyliśmy własnego Agenta AI i zintegrowaliśmy go z naszym systemem. Całość działa w jednym, prostym panelu SaaS.&lt;/p&gt;



&lt;p&gt;Dodatkowo przez API system może integrować się z dowolnym systemem EDM w przychodni. W aplikacji Stario dodaliśmy też asystenta AI, który przygotowuje sprawozdania oraz automatycznie umawia wizyty.&lt;/p&gt;



&lt;p&gt;Jesteśmy bardzo ciekawi Waszej opinii. Co o tym myślicie?&lt;/p&gt;



&lt;p&gt;Pozdrawiam serdecznie,&lt;/p&gt;



&lt;p&gt;Piotr Domański&lt;/p&gt;



&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;https://forum.pasja-informatyki.pl/?qa=blob&amp;amp;qa_blobid=3787914502640520279&quot; style=&quot;height:337px; width:600px&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://forum.pasja-informatyki.pl/?qa=blob&amp;amp;qa_blobid=5500982216849411230&quot; style=&quot;height:329px; width:600px&quot;&gt;&lt;/p&gt;</description>
<category>Nasze projekty</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599730/update-stario-i-ai</guid>
<pubDate>Thu, 26 Feb 2026 00:02:35 +0000</pubDate>
</item>
<item>
<title>Nowe gui dla linux</title>
<link>https://forum.pasja-informatyki.pl/599715/nowe-gui-dla-linux</link>
<description>Cześć wszystkim &lt;br /&gt;
&lt;br /&gt;
Chciałbym przedstawić projekt nad ktorym siedziałem cały rok. Ten projekt to własnoręcznie napisane gui dla linuxa, ramu zjada tylko 2 mb a obsługa banalna.&lt;br /&gt;
&lt;br /&gt;
Zachęcam do komentowania, testowania oraz raportowania problemów jeśli się pojawią&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://github.com/KamilMalicki/MicWM&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://github.com/KamilMalicki/MicWM&lt;/a&gt;</description>
<category>Nasze projekty</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599715/nowe-gui-dla-linux</guid>
<pubDate>Sat, 21 Feb 2026 18:06:15 +0000</pubDate>
</item>
<item>
<title>Mam prośbe ocenił by ktoś moją app na githubie lub zaproponował ulepszenia</title>
<link>https://forum.pasja-informatyki.pl/599711/mam-prosbe-ocenil-by-ktos-moja-app-na-githubie-lub-zaproponowal-ulepszenia</link>
<description>Oto link do mojej aplikacji github: &lt;a href=&quot;https://github.com/Krzyzyk33/CMDAI.git&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://github.com/Krzyzyk33/CMDAI.git&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Prosiłbym żebyście mi pomogli w ulepszaniu mojej aplikacji oraz o pomoc w testowaniu jej. Oczywiście żeby aplikacja zadziałała trzeba zainstalować model i dodać go do pliku models/ .&lt;br /&gt;
&lt;br /&gt;
Reszta informacji w README.md i FAQ.md.&lt;br /&gt;
&lt;br /&gt;
Dziękuje za pomoc</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599711/mam-prosbe-ocenil-by-ktos-moja-app-na-githubie-lub-zaproponowal-ulepszenia</guid>
<pubDate>Fri, 20 Feb 2026 18:08:40 +0000</pubDate>
</item>
<item>
<title>Kolejny skrypt w Bashu - backupy</title>
<link>https://forum.pasja-informatyki.pl/599700/kolejny-skrypt-w-bashu-backupy</link>
<description>

&lt;p&gt;Zerknie ktoś na mój kolejny skrypt w Bashu? Wprawdzie nie dokończony, zakładam wątek bo może ktoś mądrzejszy ode mnie w Bashu powie na co zwrócić uwagę i na co uważać przy pisaniu skryptów&lt;/p&gt;



&lt;pre class=&quot;brush:bash;&quot;&gt;
#!/bin/bash

# Constants
SCRIPT_NAME=&quot;${0##*/}&quot;
LOCKFILE=&quot;/tmp/restic-backup.lock&quot;
readonly SCRIPT_NAME
readonly LOCKFILE

# Options
RESTIC_REPOSITORY=&quot;&quot;
RESTIC_PASSWORD_COMMAND=&quot;&quot;
RESTIC_COMPRESSION=&quot;on&quot;
RESTIC_CACHE_DIR=&quot;/var/cache/restic&quot;
BACKUP_SOURCES=()
BACKUP_DESTINATION=&quot;&quot;
EXCLUDE_FILE=&quot;/etc/restic/exclude&quot;
CHECK_DATA_SUBSET=&quot;5%&quot;
RCLONE_PROGRAM=&quot;rclone&quot;
CONFIG_FILE=&quot;&quot;
RESTIC_INIT_ARGS=()
RESTIC_UNLOCK_ARGS=()
RESTIC_BACKUP_ARGS=(
  &quot;--exclude-file='${EXCLUDE_FILE}'&quot;
  &quot;--tag=scheduled&quot;
)
RESTIC_CHECK_ARGS=(
  &quot;--with-cache&quot;
  &quot;--read-data-subset='${CHECK_DATA_SUBSET}'&quot;
)

export RESTIC_REPOSITORY
export RESTIC_PASSWORD_COMMAND
export RESTIC_COMPRESSION
export RESTIC_CACHE_DIR

# Functions
shell_quote() {
  printf &quot;'%s'&quot; &quot;${1//\'/\'\\\'\'}&quot;
}

warn() {
  local -r script_name=&quot;${0##*/}&quot;
  local -ar msg=(&quot;$@&quot;)
  printf &quot;%s: %b\n&quot; &quot;${script_name}&quot; &quot;${msg[*]}&quot; &amp;gt;&amp;amp;2
}

die() {
  # some snippets in this function are copied from
  # https://mywiki.wooledge.org/BashFAQ/101
  local exit_code=$?
  if [[ &quot;$1&quot; != *[^0-9]* ]]; then
    exit_code=$1
    shift
  fi
  local -ar msg=(&quot;$@&quot;)
  warn &quot;${msg[@]}&quot;
  exit &quot;${exit_code}&quot;
}

check_deps() {
  if ! command -v restic &amp;gt;/dev/null 2&amp;gt;&amp;amp;1; then
    cat &amp;gt;&amp;amp;2 &amp;lt;&amp;lt;EOF
Error: 'restic' not found in PATH.

Restic is a tool used for doing backups. You can install it using the method
supported by your system, typically the distribution's package manager on Linux.

Example:
  Arch Linux:   pacman -S restic
  Debian:       apt install restic

For other systems, you can find in the Internet installation instructions
appropriate for them or compile restic from source.

Project: https://github.com/restic/restic
EOF
    exit 1
  fi
}

usage() {
  cat &amp;lt;&amp;lt;EOF
${SCRIPT_NAME} &amp;lt;command&amp;gt;

Commands:
  init     create repository
  unlock   remove stale locks
  backup   create backup
  check    verify repository
EOF
  local -ri exit_code=&quot;${1:-0}&quot;
  exit &quot;${exit_code}&quot;
}

get_config_path() {
  local -r override=&quot;$1&quot;
  [[ -n &quot;${override}&quot; ]] &amp;amp;&amp;amp; echo &quot;${override}&quot; &amp;amp;&amp;amp; return
  local -r xdg=&quot;${XDG_CONFIG_HOME:-&quot;${HOME}/.config&quot;}/restic-backup/config&quot;
  [[ -f &quot;${xdg}&quot; ]] &amp;amp;&amp;amp; echo &quot;${xdg}&quot; &amp;amp;&amp;amp; return
  echo &quot;/etc/restic/config&quot;
}

check_for_missing_config_file() {
  [[ -f &quot;${CONFIG_FILE}&quot; ]] || die &quot;Config file not found: '${CONFIG_FILE}'&quot;
  [[ -r &quot;${CONFIG_FILE}&quot; ]] || die &quot;Config file not readable: '${CONFIG_FILE}'&quot;
}

validate_config_values() {
  for var in RESTIC_PASSWORD_COMMAND BACKUP_DESTINATION; do
    [[ -z &quot;${!var}&quot; ]] &amp;amp;&amp;amp;
      die &quot;Missing required config variable: ${var} in '${CONFIG_FILE}'&quot;
  done
  [[ ${#BACKUP_SOURCES[@]} -eq 0 ]] &amp;amp;&amp;amp;
    die &quot;Missing required config variable: BACKUP_SOURCES in '${CONFIG_FILE}'&quot;
}

parse_global_args() {
  while (($# &amp;gt; 0)); do
    case &quot;$1&quot; in
    -c | --config)
      ( (($# &amp;lt; 2)) || [[ -z &quot;$2&quot; ]]) &amp;amp;&amp;amp; die 1 &quot;--config requires an argument&quot;
      CONFIG_FILE=&quot;$2&quot;
      shift 2
      ;;
    --)
      shift
      break
      ;;
    -*) die &quot;Unknown global option: $1&quot; ;;
    *) break ;;
    esac
  done
  REMAINING_ARGS=(&quot;$@&quot;)
}

ensure_cache_dir() {
  mkdir -p -- &quot;${RESTIC_CACHE_DIR}&quot; ||
    die &quot;Cannot create cache directory: '${RESTIC_CACHE_DIR}'&quot;
}

build_common_args() {
  [[ &quot;${BACKUP_DESTINATION}&quot; == rclone:* ]] &amp;amp;&amp;amp;
    BACKUP_CMD_ARGS+=(-o &quot;rclone.program='${RCLONE_PROGRAM}'&quot;)
}

restic_wrapper() {
  local -r subcmd=&quot;$1&quot;
  shift
  local -a -r args=(&quot;$@&quot;)
  build_common_args args
  restic &quot;${subcmd}&quot; &quot;${args[@]}&quot; &amp;amp;
  RESTIC_PID=&quot;$!&quot;
  wait &quot;${RESTIC_PID}&quot;
}

cmd_init() {
  restic_wrapper init &quot;${RESTIC_INIT_ARGS[@]}&quot;
}

cmd_unlock() {
  restic_wrapper unlock &quot;${RESTIC_UNLOCK_ARGS[@]}&quot;
}

cmd_backup() {
  restic_wrapper backup &quot;${RESTIC_BACKUP_ARGS[@]}&quot;
}

cmd_check() {
  restic_wrapper check &quot;${RESTIC_CHECK_ARGS[@]}&quot;
}

dispatch_subcommand() {
  local -r cmd=&quot;$1&quot;
  case ${cmd} in
  init) cmd_init ;;
  unlock) cmd_unlock ;;
  backup) cmd_backup ;;
  check) cmd_check ;;
  *) die &quot;Unknown subcommand: '${cmd}'&quot; ;;
  esac
}

cleanup() {
  flock -u 9
  rm -f &quot;${LOCKFILE}&quot;
}

handle_sigint() {
  echo &quot;Interrupted, stopping restic...&quot;

  if [[ -n &quot;${RESTIC_PID}&quot; ]]; then
    kill -INT &quot;${RESTIC_PID}&quot;
    wait &quot;${RESTIC_PID}&quot;
  fi

  exit 130
}

main() {
  pgrep -f &quot;restic&quot; &amp;gt;/dev/null &amp;amp;&amp;amp; die 1 &quot;restic already running, skipping&quot;
  exec 9&amp;gt;&quot;${LOCKFILE}&quot;
  flock -n 9 || die 1 &quot;Another script instance is already running&quot;
  trap cleanup EXIT
  trap handle_sigint INT TERM

  check_deps
  parse_global_args &quot;$@&quot;
  CONFIG_FILE=&quot;$(get_config_path &quot;${CONFIG_FILE}&quot;)&quot;
  check_for_missing_config_file &quot;${CONFIG_FILE}&quot;
  # shellcheck source=/dev/null
  . &quot;${CONFIG_FILE}&quot;
  validate_config_values &quot;${CONFIG_FILE}&quot;
  (($# &amp;gt; 0)) || die &quot;Missing subcommand&quot;
  ensure_cache_dir
  dispatch_subcommand &quot;${REMAINING_ARGS[@]}&quot;
}

# Run script
main &quot;$@&quot;&lt;/pre&gt;

</description>
<category>Inne języki</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599700/kolejny-skrypt-w-bashu-backupy</guid>
<pubDate>Wed, 18 Feb 2026 18:12:16 +0000</pubDate>
</item>
<item>
<title>Jak wspomagacie się AI w pracy programisty?</title>
<link>https://forum.pasja-informatyki.pl/599684/jak-wspomagacie-sie-ai-w-pracy-programisty</link>
<description>Siemka! Chciałbym dowiedzieć się jak pracujecie z AI w swoich firmach i gdzie waszym zdaniem się nie sprawdza. Mam obawę że w niektórych miejscach w mojej firmie ulegliśmy nadmiernie modzie na AI i chciałbym wiedzieć czy większość firm mierzy się z podobnymi problemami czy nie. Biorę też pod uwagę to że może ja nie potrafię z AI odpowiednio współpracować. &lt;br /&gt;
&lt;br /&gt;
Na pierwszy rzut idą AI dla managerów. Używają do tworzenia notatek z spotkania, tworzenia zadań w JIRA itp. Od rozpoczęcia tego procesu Zadania mają długie lanie wody w opisach. Mieliśmy też sytuacje że dostaliśmy w tasku architekturę rozpisana przez AI (Architektura nie miała sensu ale manager wygenerował i było zdziwienie kto tak do dupy to zaprojektował xD). Obecnie boje że mimo że w zadaniu pisze co mam zrobić to mam tego nie robić. Totalnie straciłem zaufanie do opisów zadań i przestałem je czytać. Czy wy też mieliście takie problemy? Jak je rozwiązaliście? Zastanawiam się czy może powinienem używać te lanie wody do jakiś swoich promptów i nie czytać tego nawet. &lt;br /&gt;
&lt;br /&gt;
Od strony kodu dość szybko zacząłem używać Github copilot do podpowiedzi inline i z tego jestem zadowolony. Podpowiadanie nazwy zmiennych przy rename też jest świetne. Oraz review zmian przed commitowaniem wydaje się sprawdzać (również w coderabbit) bo w tych miejscach dalej mam dużą kontrole. Ale innych rzeczy nie używałem i chyba jestem zbyt sceptyczny i nie wiem jak to zmienić. Słyszałem że są jakieś agenty jakieś sklile dla AI, jakieś pisanie ADRów dla AI. ale zupełnie wypadłem z tematu bo miałem przez ostatnie 2 lata trudniejszy projekt (który się teraz skończyć), a świat się jakoś bardzo pozmieniał i nie ogarniam tej nowej rzeczywistości. Macie jakieś materiały które polecacie aby to nadrobić? Co wy używanie i obecnie się wam sprawdza? &amp;nbsp;oraz do czego to używacie? &lt;br /&gt;
&lt;br /&gt;
Dodatkowo mam wrażenie że przynajmniej u mnie wymiana wiedzy w firmie padła. Nie wiem czy to kwestia pracy zdalnej czy ilości nowych rzeczy, ale mam poczucie że kazdy używa AI inaczej i zastanawiam się czy takie elastyczne podejście w obrębie jednego zespołu projektowego to plus czy minus? Jakie macie doświadczenia?</description>
<category>Inne języki</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599684/jak-wspomagacie-sie-ai-w-pracy-programisty</guid>
<pubDate>Tue, 17 Feb 2026 21:06:37 +0000</pubDate>
</item>
<item>
<title>export z SQL do XML nie potrafię zrobić subquery</title>
<link>https://forum.pasja-informatyki.pl/599678/export-z-sql-do-xml-nie-potrafie-zrobic-subquery</link>
<description>

&lt;p&gt;Cześć, to mój debiut więc bardzo proszę o wyrozumiałość. Na wstępie pozdrawiam wszystkich forumowiczów.&lt;/p&gt;



&lt;p&gt;Potrzebuje pomocy przy eksporcie bazy sql do XML.&lt;/p&gt;



&lt;p&gt;Mam dwie przykładowe tabele: klienci&lt;/p&gt;



&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;https://forum.pasja-informatyki.pl/?qa=blob&amp;amp;qa_blobid=1944583524895455264&quot; style=&quot;height:164px; width:284px&quot;&gt;&lt;/p&gt;



&lt;p&gt;i telefony:&amp;nbsp;&lt;/p&gt;



&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;https://forum.pasja-informatyki.pl/?qa=blob&amp;amp;qa_blobid=16262167574100423822&quot; style=&quot;height:337px; width:306px&quot;&gt;&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Tworzę zapytanie:&lt;/p&gt;



&lt;pre class=&quot;brush:sql;&quot;&gt;
select top (3)
'true' AS 'AKTYWNY',
	k.nazwisko  AS 'NAZWISKO',
	k.imie AS 'IMIE',
	tel.nazwa AS 'TELEFONY/TELEFON/@rodzaj',
	tel.numer AS 'TELEFONY/NUMER'

FROM test.dbo.klienci k LEFT JOIN test.dbo.telefony tel on k.klient_id = tel.klient_id

FOR XML PATH('KLIENT'), ROOT ('BAZA')&lt;/pre&gt;



&lt;p&gt;i w wyniku dostaję 3 osobne rekordy. W każdym po jednym numerze telefonu.&lt;/p&gt;



&lt;p&gt;Nie potrafię skonstruować subquery tak, aby otrzymać jeden rekord z trzema telefonami.&lt;/p&gt;



&lt;p&gt;Czyli coś takiego:&lt;/p&gt;



&lt;pre class=&quot;brush:xml;&quot;&gt;
&amp;lt;BAZA&amp;gt;
  &amp;lt;KLIENT&amp;gt;
    &amp;lt;AKTYWNY&amp;gt;true&amp;lt;/AKTYWNY&amp;gt;
    &amp;lt;NAZWISKO&amp;gt;Kowalski&amp;lt;/NAZWISKO&amp;gt;
    &amp;lt;IMIE&amp;gt;Jan&amp;lt;/IMIE&amp;gt;
    &amp;lt;TELEFONY&amp;gt;
            &amp;lt;TELEFON rodzaj=&quot;komórka&quot; /&amp;gt;
            &amp;lt;NUMER&amp;gt;1231234&amp;lt;/NUMER&amp;gt;
            &amp;lt;TELEFON rodzaj=&quot;VoIP&quot; /&amp;gt;
            &amp;lt;NUMER&amp;gt;4455667&amp;lt;/NUMER&amp;gt;
            &amp;lt;TELEFON rodzaj=&quot;fax&quot; /&amp;gt;
            &amp;lt;NUMER&amp;gt;55443355&amp;lt;/NUMER&amp;gt;
    &amp;lt;/TELEFONY&amp;gt;
  &amp;lt;/KLIENT&amp;gt;
&amp;lt;/BAZA&amp;gt;&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Będę wdzięczny za wszelką pomoc.&amp;nbsp;&lt;/p&gt;

</description>
<category>SQL, bazy danych</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599678/export-z-sql-do-xml-nie-potrafie-zrobic-subquery</guid>
<pubDate>Sun, 15 Feb 2026 13:53:56 +0000</pubDate>
</item>
<item>
<title>Gdy kopiuje pętle4 z folderu kurs_cpp_odc3 gdzie indziej - Unable to start debugging</title>
<link>https://forum.pasja-informatyki.pl/599676/gdy-kopiuje-petle4-folderu-kurs_cpp_odc3-gdzie-indziej-unable-to-start-debugging</link>
<description>Cześć Gdy kopiuje pętle4 z folderu kurs_cpp_odc3 gdzie indziej. Przy debugowanie pojawia się komunikat: Unable to start debugging. Unexpected GDB output from command&amp;quot;-environment-cd &amp;quot;C:\\Users\\...\imię&amp;quot; &amp;quot;C:Users\\...imię No such file or directory&lt;br /&gt;
&lt;br /&gt;
Gdy uruchamiam sam plik z folderu kurs_cpp_odc3 błąd nie występuje. Gdy podaję ścieżke do folderu program uruchamia się. Używam Visual Studio Code Windows 11 Home x64</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599676/gdy-kopiuje-petle4-folderu-kurs_cpp_odc3-gdzie-indziej-unable-to-start-debugging</guid>
<pubDate>Sun, 15 Feb 2026 12:10:24 +0000</pubDate>
</item>
<item>
<title>zmiana koloru po zaznaczeniu pola typu radio</title>
<link>https://forum.pasja-informatyki.pl/599590/zmiana-koloru-po-zaznaczeniu-pola-typu-radio</link>
<description>

&lt;p&gt;Witam&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Napisałem skrypt w php testu online. Chciałbym aby w momencie gdy użytkownik zaznaczy jakąś odpowiedz to cała zmieni kolor np na niebieski. Problem w tym , że nie mogę tego zrobić , każdy sposób jaki próbowałem kończył się tym , że nadal nie działało to tak jak bym chciał. Czy ktoś mógłby mi wytłumaczyć jak to zrobić za pomocą css. Poniżej dodaje kod i proszę o pomoc&lt;/p&gt;



&lt;pre class=&quot;brush:php;&quot;&gt;
&amp;lt;?php
    
    require_once('../function.php');

?&amp;gt;


&amp;lt;!doctype html&amp;gt;
&amp;lt;html lang=&quot;pl&quot;&amp;gt;

&amp;lt;head&amp;gt;
  &amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;
  &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&amp;gt;
  &amp;lt;title&amp;gt;testy&amp;lt;/title&amp;gt;
  &amp;lt;script id=&quot;MathJax-script&quot; async src=&quot;https://cdn.jsdelivr.net/npm/mathjax@4/tex-mml-chtml.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
  &amp;lt;link href=&quot;https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css&quot; rel=&quot;stylesheet&quot;
    integrity=&quot;sha384-sRIl4kxILFvY47J16cr9ZwB07vP4J8+LH7qKQnuqkuIAvNWLzeN8tE5YBujZqJLB&quot; crossorigin=&quot;anonymous&quot;&amp;gt;
  &amp;lt;style&amp;gt;
    body {
      background: #2F3237;
    }

    header h1 {
      color: #FA6C65;
      padding-top: 50px;
    }
    

    header span {
      color: #d2d3d6;
    }

    header p {
      color: #8E9198;
      font-weight: normal;
    }

    #zegar1 {
      ont-family: 'Open Sans', sans-serif;
      font-weight: 400;
      font-size: 20px;
      color: #D2D3D6;
      letter-spacing: 0.025em;
      word-wrap: break-word;
      margin-top: 15px;
      margin-bottom: 15px;
      text-align: center;
      line-height: 150%;
      min-height: 30px;
    }

    .pytania {
      color: #D2D3D6;
    }

    .tresc {
      font-family: 'Open Sans', sans-serif;
      font-weight: 400;
      letter-spacing: 0.025em;
      font-size: 18px;
      padding: 20px;
      line-height: 150%;
      background-color: #26282E;
      text-align: left;
      margin-bottom: 12px;
      margin-top: 50px;
    }

    .odp {
      font-family: 'Open Sans', sans-serif;
      font-weight: 400;
      letter-spacing: 0.025em;
      font-size: 18px;
      padding: 20px;
      line-height: 150%;
      background-color: #26282E;
      text-align: left;
      margin-bottom: 12px;
      margin-top: 20px;
    }
    .MathJax
    {
      display: inline-block !important;
    }

    input[type=submit] {
      background-color: #FA6C65;
      padding: 5px;
      margin-top: 25px;
      margin-bottom: 25px;
      width: 400px;
      text-align: center;
      font-size: x-large;
      color: white;
      font-weight: bold;
    }
   
  &amp;lt;/style&amp;gt;

&amp;lt;/head&amp;gt;

&amp;lt;body&amp;gt;
  &amp;lt;header&amp;gt;
    &amp;lt;div class=&quot;container text-center&quot;&amp;gt;
      &amp;lt;div class=&quot;row&quot;&amp;gt;
        &amp;lt;div class=&quot;col-12 &quot;&amp;gt;
          &amp;lt;h1&amp;gt;Arkusz Maturalny-&amp;lt;span&amp;gt;Test 34 pytań&amp;lt;/span&amp;gt; &amp;lt;/h1&amp;gt;
        &amp;lt;/div&amp;gt;
      &amp;lt;/div&amp;gt;
      &amp;lt;div class=&quot;row&quot;&amp;gt;
        &amp;lt;div class=&quot;col-12 &quot;&amp;gt;
          &amp;lt;p&amp;gt;Sprawdź się w dokładnie takim samym trybie, jaki obowiązuje podczas rzeczywistego egzaminu! Na rozwiązanie
            &amp;lt;br&amp;gt;
            trzydziestu czterech pytań otrzymujesz maksymalnie 170 minut Powodzenia

          &amp;lt;/p&amp;gt;
        &amp;lt;/div&amp;gt;
      &amp;lt;/div&amp;gt;
      &amp;lt;div class=&quot;row&quot;&amp;gt;
        &amp;lt;div class=&quot;col-md-12&quot; style=&quot;border-bottom:1px solid #FA6C65;border-top:1px solid #FA6C65;&quot; data-aos=&quot;fade-up&quot;&amp;gt;

          &amp;lt;div id=&quot;zegar1&quot;&amp;gt;Czas jaki pozostał do zakończenia egzaminu → 48 min 22 sek&amp;lt;/div&amp;gt;

        &amp;lt;/div&amp;gt;
      &amp;lt;/div&amp;gt;
  &amp;lt;/header&amp;gt;
  &amp;lt;section class=&quot;pytania&quot;&amp;gt;
    &amp;lt;div class=&quot;container&quot;&amp;gt;
      &amp;lt;div class=&quot;row &quot;&amp;gt;
        &amp;lt;div class=&quot;col-6 text-center offset-3&quot;&amp;gt;
            
        &amp;lt;form action=&quot;wynik.php?rok=&quot; method=&quot;post&quot;&amp;gt;
            &amp;lt;?php
                session_start();
                $rows = get_pytania($_GET['rok']);
                
                foreach($rows as $r)
                {
                  echo '&amp;lt;div class = &quot;tresc&quot;&amp;gt;'.$r['tresc']. '&amp;lt;/div&amp;gt;';
                  if ($r['img'] != NULL) {
                    echo '&amp;lt;div class = &quot;obrazek&quot;&amp;gt;'.'&amp;lt;img src=&quot;../jpg/'.$r['img'].'&quot;&amp;gt;'. '&amp;lt;/div&amp;gt;';
                  }
                  
                  echo '&amp;lt;div class=&quot;odp&quot;&amp;gt;'. '&amp;lt;input type=&quot;radio&quot; clase = &quot;odp&quot; name=&quot;'.$r['id'].'&quot; value=&quot;A&quot;&amp;gt;'.&quot; A. &quot;.$r['odpA'].'&amp;lt;/div&amp;gt;';
                  echo '&amp;lt;div class=&quot;odp&quot;&amp;gt;'. '&amp;lt;input type=&quot;radio&quot; name=&quot;'.$r['id'].'&quot; value=&quot;B&quot; required&amp;gt;'.&quot; B. &quot;.$r['odpB'].'&amp;lt;/div&amp;gt;';
                  echo '&amp;lt;div class=&quot;odp&quot;&amp;gt;'. '&amp;lt;input type=&quot;radio&quot; name=&quot;'.$r['id'].'&quot; value=&quot;C&quot;&amp;gt;'.&quot; C.  &quot;.$r['odpC'].'&amp;lt;/div&amp;gt;';
                  echo '&amp;lt;div class=&quot;odp&quot;&amp;gt;'. '&amp;lt;input type=&quot;radio&quot; name=&quot;'.$r['id'].'&quot; value=&quot;D&quot;&amp;gt;'.&quot; D. &quot;.$r['odpD'].'&amp;lt;/div&amp;gt;';
                 
              
                }
               
            ?&amp;gt;
            &amp;lt;div class=&quot;row&quot;&amp;gt;
              &amp;lt;div class=&quot;col-md-12&quot; style=&quot;border-bottom:1px solid #FA6C65;border-top:1px solid #FA6C65;&quot;
                data-aos=&quot;fade-up&quot;&amp;gt;

                &amp;lt;div id=&quot;zegar1&quot;&amp;gt;Czas jaki pozostał do zakończenia egzaminu → 48 min 22 sek&amp;lt;/div&amp;gt;

              &amp;lt;/div&amp;gt;
            &amp;lt;/div&amp;gt;
            &amp;lt;div class=&quot;row offset-2&quot;&amp;gt;
              &amp;lt;input type=&quot;submit&quot; value=&quot;Koniec testu. Sprawdz odpowiedzi&quot;&amp;gt;
            &amp;lt;/div&amp;gt;


          &amp;lt;/form&amp;gt;
  
        &amp;lt;/div&amp;gt;



      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/section&amp;gt;
  &amp;lt;script src=&quot;https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/js/bootstrap.bundle.min.js&quot;
    integrity=&quot;sha384-FKyoEForCGlyvwx9Hj09JcYn3nv7wiPVlz7YYwJrWVcXK/BmnVDxM+D2scQbITxI&quot;
    crossorigin=&quot;anonymous&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;

&amp;lt;/html&amp;gt;&lt;/pre&gt;

</description>
<category>PHP</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599590/zmiana-koloru-po-zaznaczeniu-pola-typu-radio</guid>
<pubDate>Sat, 24 Jan 2026 10:39:33 +0000</pubDate>
</item>
<item>
<title>PHP 7 jak utworzyć warunek uzależniony czy z bazy danych jest pobrany rekord lub nie.</title>
<link>https://forum.pasja-informatyki.pl/599555/php-7-jak-utworzyc-warunek-uzalezniony-czy-z-bazy-danych-jest-pobrany-rekord-lub-nie</link>
<description>

&lt;p&gt;PHP 7 jak utworzyć warunek uzależniony czy z bazy danych jest pobrany rekord lub nie. W PHP5działało w PHP7 nie.
&lt;br&gt;
&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:php;&quot;&gt;
$sql = 'SELECT * FROM ...
$zapytanie = $db_conn-&amp;gt;prepare($sql);
$abc= $zapytanie-&amp;gt;execute(array( &quot;teraz&quot; =&amp;gt; $teraz));
if ($abc){
while($row4 = $zapytanie-&amp;gt;fetch(PDO::FETCH_ASSOC))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/pre&gt;



&lt;p&gt;
&lt;br&gt;
W tym wypadku $abc ma wartość zawsze 1&lt;/p&gt;</description>
<category>PHP</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599555/php-7-jak-utworzyc-warunek-uzalezniony-czy-z-bazy-danych-jest-pobrany-rekord-lub-nie</guid>
<pubDate>Sun, 11 Jan 2026 12:38:31 +0000</pubDate>
</item>
<item>
<title>Jak zrobić system w lfs? Proszę o pomoc?</title>
<link>https://forum.pasja-informatyki.pl/599552/jak-zrobic-system-w-lfs-prosze-o-pomoc</link>
<description>Jak zrobić system w lfs? Proszę o odpowiedż&lt;br /&gt;
&lt;br /&gt;
Znam się na informatyce ale chciałbym zrobić system ale nie umiem!&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Zagłosujcie w ankiecie który system lubicie?</description>
<category>Systemy operacyjne, programy</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599552/jak-zrobic-system-w-lfs-prosze-o-pomoc</guid>
<pubDate>Sun, 11 Jan 2026 10:07:14 +0000</pubDate>
</item>
<item>
<title>Ocena strony internetowej i podpowiedzi</title>
<link>https://forum.pasja-informatyki.pl/599544/ocena-strony-internetowej-i-podpowiedzi</link>
<description>Cześć!! Zaczynam poważniejszą przygodę w tworzeniu stron po technikum i działam teraz aby stworzyć stronę dla znajomego. Stronę mam już praktycznie zrobioną. Czy chciałby ktoś z was zerknąć na kod i coś doradzić? I czy znalazła by się osoba która pomoże mi z hostingiem?&lt;br /&gt;
&lt;br /&gt;
kod na github: &lt;a href=&quot;https://github.com/MarcinKozanecki/GreenPao.git&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://github.com/MarcinKozanecki/GreenPao.git&lt;/a&gt;&lt;br /&gt;
Co do hostingu to nie wiem jaki wybrać i jak już się kupi to jak to wrzucić.</description>
<category>HTML i CSS</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599544/ocena-strony-internetowej-i-podpowiedzi</guid>
<pubDate>Fri, 09 Jan 2026 20:13:00 +0000</pubDate>
</item>
<item>
<title>Aplikacja do tworzenia map</title>
<link>https://forum.pasja-informatyki.pl/599489/aplikacja-do-tworzenia-map</link>
<description>

&lt;p&gt;Hej!&lt;/p&gt;



&lt;p&gt;Kilka dni temu stworzyłem program do tworzenia map w stylu fantasy.&lt;/p&gt;



&lt;p&gt;Całość została zrobiona w JS-ie z pomocą Electrona. Zachęcam do odwiedzenia strony projektu na itch.io:&lt;/p&gt;



&lt;p&gt;&lt;a href=&quot;https://codifypl.itch.io/codimap&quot; rel=&quot;nofollow&quot;&gt;https://codifypl.itch.io/codimap&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Dajcie znać co sądzicie&lt;/strong&gt;! Projekt będzie rozwijany, więc czekam na krytykę ;)&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;EDIT:
&lt;br&gt;
Aplikację można odpalić bezpośrednio w przeglądarce w itch.io. Wystarczy kliknąć &quot;&lt;strong&gt;Run Tool&lt;/strong&gt;&quot;&lt;/p&gt;</description>
<category>Nasze projekty</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599489/aplikacja-do-tworzenia-map</guid>
<pubDate>Sat, 20 Dec 2025 19:20:24 +0000</pubDate>
</item>
<item>
<title>Pomoc - Asus x53s</title>
<link>https://forum.pasja-informatyki.pl/599457/pomoc-asus-x53s</link>
<description>Witam,&lt;br /&gt;
&lt;br /&gt;
Dawni nie używałam mojego laptopa. Po włączeniu pojawia się komunikat widoczny w załączniku. Czy ktoś potrafi mi pomóc. &amp;quot;Reboot and Seleck proper Boot device or Insert Boot Media in selected Boot device and press a key&amp;quot;</description>
<category>Systemy operacyjne, programy</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599457/pomoc-asus-x53s</guid>
<pubDate>Sun, 07 Dec 2025 22:28:29 +0000</pubDate>
</item>
<item>
<title>Programowanie aplikacji , czego się uczyć ?</title>
<link>https://forum.pasja-informatyki.pl/599420/programowanie-aplikacji-czego-sie-uczyc</link>
<description>Chciałbym rozpocząć naukę programowania aplikacji mobilnych na Androida i iOS. Zastanawiam się od czego najlepiej zacząć i jakie technologie są obecnie najbardziej sensowne do nauki. Czy warto iść w Kotlin (Android), React Native, a może w Javę? Totalnie nie ogarniam , staram się odnaleźć co do czego, czat gpt różne rzeczy mi tu wypisuje.</description>
<category>Rozwój zawodowy, nauka, praca</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599420/programowanie-aplikacji-czego-sie-uczyc</guid>
<pubDate>Thu, 04 Dec 2025 09:27:37 +0000</pubDate>
</item>
<item>
<title>Test online zaznaczenie poprawnej odpowiedzi i odpowiedzi użytkownika</title>
<link>https://forum.pasja-informatyki.pl/599404/test-online-zaznaczenie-poprawnej-odpowiedzi-i-odpowiedzi-uzytkownika</link>
<description>

&lt;p&gt;Witam&amp;nbsp;&lt;/p&gt;



&lt;p&gt;W ramach ćwiczeń postanowiłem stworzyć sobie test online i napotkałem problem , którego nie mogę rozwiązać mianowicie gdy użytkownik skończy wypełniać test skrypt sprawdzi jego odpowiedzi i wyświetli wynik i to udało mi się zrobić ale chciałbym jeszcze , żeby zostały zaznaczone odpowiedzi użytkownika i poprawne odpowiedzi i w zależności czy odpowiedz jest dobra czy zła zostanie ona zaznaczona odpowiednim kolorem ( dobra zielony zła czerwony) i nie wiem jak mógłbym to zrobić. Czy ktoś mógłby mi w tym pomóc?. Z góry dziękuję i poniżej zamieszczam kod:&lt;/p&gt;



&lt;p&gt;skrypt z pytaniami:&lt;/p&gt;



&lt;pre class=&quot;brush:php;&quot;&gt;
&amp;lt;?php
    require_once('../function.php');

?&amp;gt;


&amp;lt;!doctype html&amp;gt;
&amp;lt;html lang=&quot;pl&quot;&amp;gt;

&amp;lt;head&amp;gt;
  &amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;
  &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&amp;gt;
  &amp;lt;title&amp;gt;testy&amp;lt;/title&amp;gt;
  &amp;lt;link href=&quot;https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css&quot; rel=&quot;stylesheet&quot;
    integrity=&quot;sha384-sRIl4kxILFvY47J16cr9ZwB07vP4J8+LH7qKQnuqkuIAvNWLzeN8tE5YBujZqJLB&quot; crossorigin=&quot;anonymous&quot;&amp;gt;
  &amp;lt;script id=&quot;MathJax-script&quot; async src=&quot;https://cdn.jsdelivr.net/npm/mathjax@4/tex-mml-chtml.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
  &amp;lt;style&amp;gt;
    body {
      background: #2F3237;
      ;
    }

    header h1 {
      color: #FA6C65;
      padding-top: 50px;
    }

    header span {
      color: #d2d3d6;
    }

    header p {
      color: #8E9198;
      font-weight: normal;
    }

    #zegar1 {
      ont-family: 'Open Sans', sans-serif;
      font-weight: 400;
      font-size: 20px;
      color: #D2D3D6;
      letter-spacing: 0.025em;
      word-wrap: break-word;
      margin-top: 15px;
      margin-bottom: 15px;
      text-align: center;
      line-height: 150%;
      min-height: 30px;
    }

    .pytania {
      color: #D2D3D6;
    }

    .tresc {
      font-family: 'Open Sans', sans-serif;
      font-weight: 400;
      letter-spacing: 0.025em;
      font-size: 18px;
      padding: 20px;
      line-height: 150%;
      background-color: #26282E;
      text-align: left;
      margin-bottom: 12px;
      margin-top: 50px;
    }

    .odp {
      font-family: 'Open Sans', sans-serif;
      font-weight: 400;
      letter-spacing: 0.025em;
      font-size: 18px;
      padding: 20px;
      line-height: 150%;
      background-color: #26282E;
      text-align: left;
      margin-bottom: 12px;
      margin-top: 20px;
    }

    .math {
      display: inline-block;
      padding: 0px;
      margin: 0px;
      text-align: center;

    }

    input[type=submit] {
      background-color: #FA6C65;
      padding: 5px;
      margin-top: 25px;
      margin-bottom: 25px;
      width: 400px;
      text-align: center;
      font-size: x-large;
      color: white;
      font-weight: bold;
    }
  &amp;lt;/style&amp;gt;

&amp;lt;/head&amp;gt;

&amp;lt;body&amp;gt;
  &amp;lt;header&amp;gt;
    &amp;lt;div class=&quot;container text-center&quot;&amp;gt;
      &amp;lt;div class=&quot;row&quot;&amp;gt;
        &amp;lt;div class=&quot;col-12 &quot;&amp;gt;
          &amp;lt;h1&amp;gt;Arkusz Maturalny-&amp;lt;span&amp;gt;Test 34 pytań&amp;lt;/span&amp;gt; &amp;lt;/h1&amp;gt;
        &amp;lt;/div&amp;gt;
      &amp;lt;/div&amp;gt;
      &amp;lt;div class=&quot;row&quot;&amp;gt;
        &amp;lt;div class=&quot;col-12 &quot;&amp;gt;
          &amp;lt;p&amp;gt;Sprawdź się w dokładnie takim samym trybie, jaki obowiązuje podczas rzeczywistego egzaminu! Na rozwiązanie
            &amp;lt;br&amp;gt;
            trzydziestu czterech pytań otrzymujesz maksymalnie 170 minut Powodzenia

          &amp;lt;/p&amp;gt;
        &amp;lt;/div&amp;gt;
      &amp;lt;/div&amp;gt;
      &amp;lt;div class=&quot;row&quot;&amp;gt;
        &amp;lt;div class=&quot;col-md-12&quot; style=&quot;border-bottom:1px solid #FA6C65;border-top:1px solid #FA6C65;&quot; data-aos=&quot;fade-up&quot;&amp;gt;

          &amp;lt;div id=&quot;zegar1&quot;&amp;gt;Czas jaki pozostał do zakończenia egzaminu → 48 min 22 sek&amp;lt;/div&amp;gt;

        &amp;lt;/div&amp;gt;
      &amp;lt;/div&amp;gt;
  &amp;lt;/header&amp;gt;
  &amp;lt;section class=&quot;pytania&quot;&amp;gt;
    &amp;lt;div class=&quot;container&quot;&amp;gt;
      &amp;lt;div class=&quot;row &quot;&amp;gt;
        &amp;lt;div class=&quot;col-6 text-center offset-3&quot;&amp;gt;
          &amp;lt;form action=&quot;wynik.php&quot; method=&quot;post&quot;&amp;gt;
            &amp;lt;?php
                $rows = get_pytania();
                
                foreach($rows as $r)
                {
                  echo '&amp;lt;div class = &quot;tresc&quot;&amp;gt;'.$r['tresc']. '&amp;lt;/div&amp;gt;';
                  if ($r['img'] != NULL) {
                    echo '&amp;lt;div class = &quot;obrazek&quot;&amp;gt;'.'&amp;lt;img src=&quot;../jpg/'.$r['img'].'&quot;&amp;gt;'. '&amp;lt;/div&amp;gt;';
                  }
                  echo '&amp;lt;div class=&quot;odp&quot;&amp;gt;'. '&amp;lt;input type=&quot;radio&quot; clase = &quot;odp&quot; name=&quot;'.$r['id'].'&quot; value=&quot;A&quot;&amp;gt;'.&quot; A. &quot;.$r['odpA'].'&amp;lt;/div&amp;gt;';
                  echo '&amp;lt;div class=&quot;odp&quot;&amp;gt;'. '&amp;lt;input type=&quot;radio&quot; name=&quot;'.$r['id'].'&quot; value=&quot;B&quot; required&amp;gt;'.&quot; B. &quot;.$r['odpB'].'&amp;lt;/div&amp;gt;';
                  echo '&amp;lt;div class=&quot;odp&quot;&amp;gt;'. '&amp;lt;input type=&quot;radio&quot; name=&quot;'.$r['id'].'&quot; value=&quot;C&quot;&amp;gt;'.&quot; C.  &quot;.$r['odpC'].'&amp;lt;/div&amp;gt;';
                  echo '&amp;lt;div class=&quot;odp&quot;&amp;gt;'. '&amp;lt;input type=&quot;radio&quot; name=&quot;'.$r['id'].'&quot; value=&quot;D&quot;&amp;gt;'.&quot; D. &quot;.$r['odpD'].'&amp;lt;/div&amp;gt;';

                 
                }
            ?&amp;gt;
            
            &amp;lt;div class=&quot;row&quot;&amp;gt;
              &amp;lt;div class=&quot;col-md-12&quot; style=&quot;border-bottom:1px solid #FA6C65;border-top:1px solid #FA6C65;&quot;
                data-aos=&quot;fade-up&quot;&amp;gt;

                &amp;lt;div id=&quot;zegar1&quot;&amp;gt;Czas jaki pozostał do zakończenia egzaminu → 48 min 22 sek&amp;lt;/div&amp;gt;

              &amp;lt;/div&amp;gt;
            &amp;lt;/div&amp;gt;
            &amp;lt;div class=&quot;row offset-2&quot;&amp;gt;
              &amp;lt;input type=&quot;submit&quot; value=&quot;Koniec testu. Sprawdz odpowiedzi&quot;&amp;gt;
            &amp;lt;/div&amp;gt;


          &amp;lt;/form&amp;gt;
        &amp;lt;/div&amp;gt;



      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/section&amp;gt;
  &amp;lt;script src=&quot;https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/js/bootstrap.bundle.min.js&quot;
    integrity=&quot;sha384-FKyoEForCGlyvwx9Hj09JcYn3nv7wiPVlz7YYwJrWVcXK/BmnVDxM+D2scQbITxI&quot;
    crossorigin=&quot;anonymous&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;

&amp;lt;/html&amp;gt;&lt;/pre&gt;



&lt;p&gt;skrypt , który oblicza wynik:&lt;/p&gt;



&lt;pre class=&quot;brush:php;&quot;&gt;
&amp;lt;?php
    require_once('../function.php');

  //Pobranie odpowiedzi użytkownika
      foreach ($_POST as $p)
      {
        $odpowiedzi[] = $p;
      }

 // PObranie z bazy danych poprawnych odpowiedzi 
  
 $row = get_pytania();

 foreach($row as $r)
 {
  $Poprawne_odp[] = $r['Poprawna']; 
 }

 //Sprawdzenie odpowiedzi i obliczenie wyniku 

 $pkt = 0;

 for ($i=0; $i &amp;lt;count($odpowiedzi) ; $i++) { 
     if ($odpowiedzi[$i] == $Poprawne_odp[$i]) {
         $pkt = $pkt + 1;
     }
 }
 $max_pkt = 25; // Maksymalna ilość punktów do uzyskania
 $procent = ($pkt / $max_pkt) * 100;

?&amp;gt;


&amp;lt;!doctype html&amp;gt;
&amp;lt;html lang=&quot;pl&quot;&amp;gt; 

&amp;lt;head&amp;gt;
  &amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;
  &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&amp;gt;
  &amp;lt;title&amp;gt;testy&amp;lt;/title&amp;gt;
  &amp;lt;link href=&quot;https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css&quot; rel=&quot;stylesheet&quot;
    integrity=&quot;sha384-sRIl4kxILFvY47J16cr9ZwB07vP4J8+LH7qKQnuqkuIAvNWLzeN8tE5YBujZqJLB&quot; crossorigin=&quot;anonymous&quot;&amp;gt;
  &amp;lt;script id=&quot;MathJax-script&quot; async src=&quot;https://cdn.jsdelivr.net/npm/mathjax@4/tex-mml-chtml.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
  &amp;lt;style&amp;gt;
    body {
      background: #2F3237;
      ;
    }

    header h1 {
      color: #FA6C65;
      padding-top: 50px;
    }

    header span {
      color: #d2d3d6;
    }

    header p {
      color: #8E9198;
      font-weight: normal;
    }

    #zegar1 {
      ont-family: 'Open Sans', sans-serif;
      font-weight: 400;
      font-size: 20px;
      color: #D2D3D6;
      letter-spacing: 0.025em;
      word-wrap: break-word;
      margin-top: 15px;
      margin-bottom: 15px;
      text-align: center;
      line-height: 150%;
      min-height: 30px;
    }

    .pytania {
      color: #D2D3D6;
    }

    .tresc {
      font-family: 'Open Sans', sans-serif;
      font-weight: 400;
      letter-spacing: 0.025em;
      font-size: 18px;
      padding: 20px;
      line-height: 150%;
      background-color: #26282E;
      text-align: left;
      margin-bottom: 12px;
      margin-top: 50px;
    }

    .odp {
      font-family: 'Open Sans', sans-serif;
      font-weight: 400;
      letter-spacing: 0.025em;
      font-size: 18px;
      padding: 20px;
      line-height: 150%;
      background-color: #26282E;
      text-align: left;
      margin-bottom: 12px;
      margin-top: 20px;
    }

    .math {
      display: inline-block;
      padding: 0px;
      margin: 0px;
      text-align: center;

    }

    input[type=submit] {
      background-color: #FA6C65;
      padding: 5px;
      margin-top: 25px;
      margin-bottom: 25px;
      width: 400px;
      text-align: center;
      font-size: x-large;
      color: white;
      font-weight: bold;
    }
  &amp;lt;/style&amp;gt;

&amp;lt;/head&amp;gt;

&amp;lt;body&amp;gt;
  &amp;lt;header&amp;gt;
    &amp;lt;div class=&quot;container text-center&quot;&amp;gt;
      &amp;lt;div class=&quot;row&quot;&amp;gt;
        &amp;lt;div class=&quot;col-12 &quot;&amp;gt;
          &amp;lt;h1&amp;gt;Arkusz Maturalny-&amp;lt;span&amp;gt;Wynik testu&amp;lt;/span&amp;gt; &amp;lt;/h1&amp;gt;
        &amp;lt;/div&amp;gt;
      &amp;lt;/div&amp;gt;
      &amp;lt;div class=&quot;row&quot;&amp;gt;
        &amp;lt;div class=&quot;col-12 &quot;&amp;gt;
          &amp;lt;p&amp;gt;Egzamin maturalny został zakonczony. Przeanalizuj popełnione błędy, sporządzaj notatki oraz popracuj nad rzeczmi , które sprawiają ci jeszcze problemy, to najlepszy sposób przygotowania się do prawdziwego egzaminu. Analiza odpowiedzi to etap ważniejszy nawet od samego rozwiązywania testu.
           

          &amp;lt;/p&amp;gt;
        &amp;lt;/div&amp;gt;
      &amp;lt;/div&amp;gt;
      &amp;lt;div class=&quot;row&quot;&amp;gt;
        &amp;lt;div class=&quot;col-md-12&quot; style=&quot;border-bottom:1px solid #FA6C65;border-top:1px solid #FA6C65;&quot; data-aos=&quot;fade-up&quot;&amp;gt;

          &amp;lt;div id=&quot;zegar1&quot;&amp;gt;Egzamin został 
            &amp;lt;?php
                if ($procent &amp;lt; 30) {
                  echo '&amp;lt;span style= &quot;color:red&quot;&amp;gt; Niezaliczony ';
                } else{
                  echo '&amp;lt;span style= &quot;color:green&quot;&amp;gt; Zaliczony ';
                }
                
                echo '&amp;lt;span style= &quot;color:#FA6C65&quot;&amp;gt;Uzyskany wynik:  '.$procent. '%   (' .$pkt. '/'.$max_pkt.')&amp;lt;/span&amp;gt;';
            ?&amp;gt; 
          &amp;lt;/div&amp;gt;
        &amp;lt;/div&amp;gt;
      &amp;lt;/div&amp;gt;
  &amp;lt;/header&amp;gt;
  &amp;lt;section class=&quot;pytania&quot;&amp;gt;
    &amp;lt;div class=&quot;container&quot;&amp;gt;
      &amp;lt;div class=&quot;row &quot;&amp;gt;
        &amp;lt;div class=&quot;col-6 text-center offset-3&quot;&amp;gt;
          &amp;lt;form action=&quot;testy.php&quot; method=&quot;post&quot;&amp;gt;
            &amp;lt;?php
                $rows = get_pytania();
                
                foreach($rows as $r)
                {
                  
                  echo '&amp;lt;div class = &quot;tresc&quot;&amp;gt;'.$r['tresc']. '&amp;lt;/div&amp;gt;';
                  if ($r['img'] != NULL) {
                    echo '&amp;lt;div class = &quot;obrazek&quot;&amp;gt;'.'&amp;lt;img src=&quot;../jpg/'.$r['img'].'&quot;&amp;gt;'. '&amp;lt;/div&amp;gt;';
                  }
                  echo '&amp;lt;div class=&quot;odp&quot;&amp;gt;'. '&amp;lt;input type=&quot;radio&quot; clase = &quot;odp&quot; name=&quot;'.$r['id'].'&quot; value=&quot;A&quot;&amp;gt;'.&quot; A. &quot;.$r['odpA'].'&amp;lt;/div&amp;gt;';
                  echo '&amp;lt;div class=&quot;odp&quot;&amp;gt;'. '&amp;lt;input type=&quot;radio&quot; name=&quot;'.$r['id'].'&quot; value=&quot;B&quot;&amp;gt;'.&quot; B. &quot;.$r['odpB'].'&amp;lt;/div&amp;gt;';
                  echo '&amp;lt;div class=&quot;odp&quot;&amp;gt;'. '&amp;lt;input type=&quot;radio&quot; name=&quot;'.$r['id'].'&quot; value=&quot;C&quot;&amp;gt;'.&quot; C.  &quot;.$r['odpC'].'&amp;lt;/div&amp;gt;';
                  echo '&amp;lt;div class=&quot;odp&quot;&amp;gt;'. '&amp;lt;input type=&quot;radio&quot; name=&quot;'.$r['id'].'&quot; value=&quot;D&quot;&amp;gt;'.&quot; D. &quot;.$r['odpD'].'&amp;lt;/div&amp;gt;';

                 
                }
            
            ?&amp;gt;
            
            &amp;lt;div class=&quot;row&quot;&amp;gt;
              &amp;lt;div class=&quot;col-md-12&quot; style=&quot;border-bottom:1px solid #FA6C65;border-top:1px solid #FA6C65;&quot;
                data-aos=&quot;fade-up&quot;&amp;gt;

                &amp;lt;div id=&quot;zegar1&quot;&amp;gt;Czas jaki pozostał do zakończenia egzaminu → 48 min 22 sek&amp;lt;/div&amp;gt;

              &amp;lt;/div&amp;gt;
            &amp;lt;/div&amp;gt;
            &amp;lt;div class=&quot;row offset-2&quot;&amp;gt;
              &amp;lt;input type=&quot;submit&quot; value=&quot;Nowy test&quot;&amp;gt;
            &amp;lt;/div&amp;gt;


          &amp;lt;/form&amp;gt;
        &amp;lt;/div&amp;gt;



      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/section&amp;gt;
  &amp;lt;script src=&quot;https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/js/bootstrap.bundle.min.js&quot;
    integrity=&quot;sha384-FKyoEForCGlyvwx9Hj09JcYn3nv7wiPVlz7YYwJrWVcXK/BmnVDxM+D2scQbITxI&quot;
    crossorigin=&quot;anonymous&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;

&amp;lt;/html&amp;gt;&lt;/pre&gt;

</description>
<category>PHP</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599404/test-online-zaznaczenie-poprawnej-odpowiedzi-i-odpowiedzi-uzytkownika</guid>
<pubDate>Sat, 29 Nov 2025 08:54:12 +0000</pubDate>
</item>
<item>
<title>[Python] Jakie bibloteki na start?</title>
<link>https://forum.pasja-informatyki.pl/599398/python-jakie-bibloteki-na-start</link>
<description>Cześć! Zaczynam z programowaniem postanowiłem zacząć z pythonem. Chciałbym się dowiedzieć jakie bibloteki do python'a powinienem poznać na początku.</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599398/python-jakie-bibloteki-na-start</guid>
<pubDate>Fri, 28 Nov 2025 14:01:10 +0000</pubDate>
</item>
<item>
<title>System rejestracji użytkownika w php - SQLSTATE[HY093]: Invalid parameter number</title>
<link>https://forum.pasja-informatyki.pl/599387/system-rejestracji-uzytkownika-w-php-sqlstate-hy093-invalid-parameter-number</link>
<description>

&lt;p&gt;Witam&amp;nbsp;&lt;/p&gt;



&lt;p&gt;W ramach ćwiczeń Próbuję stworzyć skrypt w php, który zarejestruje nowego użytkownika. Niestety utknąłem na etapie dodania danych do bazy danych. Gdy próbuję dodać dane do bazy wyskakuje mi błąd :&lt;/p&gt;



&lt;p&gt;Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number&amp;nbsp; i nie mogę sobie z nim poradzić. Poniżej zamieszczam kod:&lt;/p&gt;



&lt;pre class=&quot;brush:php;&quot;&gt;
&amp;lt;?php
session_start();
 if (isset($_POST['Login'])) {
     $login = $_POST['Login'];
     $email = $_POST['email'];
     $pass = $_POST['password'];
     $pass_2 = $_POST['password_2'];
  
     $wszystko_ok = true;

     //Sprawdzenie długości hasła
     if (strlen($login) &amp;lt;3 || strlen($login) &amp;gt; 20) {
        $wszystko_ok = false;
         $_SESSION['e_login'] = &quot;Podany login musi składać się od 3 do 20 znaków&quot;;
         header('Location: ../index.php');

     }
     
          $wzór = '/[A-Z]/';
        if(!preg_match($wzór, $pass)) {
          $wszystko_ok = false;
            $_SESSION['e_haslo'] = &quot;Hasło musi zawierać przynajmniej 1 dużą litere&quot;;
             header('Location: ../index.php');

        }
        if($pass != $pass_2) {
            $wszystko_ok = false;
            $_SESSION['e_haslo'] = &quot;Podane hasła nie są identyczne&quot;;
             header('Location: ../index.php');
             

        }
         $pass_hasz = password_hash($pass, PASSWORD_DEFAULT);

          if(!isset($_POST['Regulamin'])) {
            $udana_walidacja = false;
            $_SESSION['e_regulamin'] = &quot;Zaakceptuj regulamin&quot;;
            header('Location: ../index.php');

            
        }

        require_once('../sql/databases.php');

            $login_sql = $db-&amp;gt;prepare('SELECT id FROM users WHERE login = :login');
            $login_sql-&amp;gt;bindValue(':login', $login, PDO::PARAM_STR);
            $login_sql-&amp;gt;execute();
            
            if ($login_sql-&amp;gt;rowCount() &amp;gt; 0) {
              $wszystko_ok = false;
              $_SESSION['e_login'] = &quot;Podany login jest zajęty. Wybierz inny login&quot;;
              header('Location: ../index.php');
            }
             $email_sql = $db-&amp;gt;prepare('SELECT id FROM users WHERE email = :email');
              $email_sql-&amp;gt;bindValue(':email', $email, PDO::PARAM_STR);
              $email_sql-&amp;gt;execute();
            
            if ($email_sql-&amp;gt;rowCount() &amp;gt; 0) {
              $wszystko_ok = false;
               $_SESSION['e_email'] = &quot;Podany email jest zajęty. Wybierz inny email&quot;;
              header('Location: ../index.php');
            }

            if ($wszystko_ok == true) {
              $kod = md5(rand());
              $dodaj_do_bazy = $db-&amp;gt;prepare(&quot;INSERT INTO users VALUES (:NULL, :login, :email, :pass, :key, :status)&quot;);
              $dodaj_do_bazy-&amp;gt;bindValue(':login', $login, PDO::PARAM_STR);
              $dodaj_do_bazy-&amp;gt;bindValue(':email', $email, PDO::PARAM_STR);
              $dodaj_do_bazy-&amp;gt;bindValue(':pass', $pass_hasz, PDO::PARAM_STR);
              $dodaj_do_bazy-&amp;gt;bindValue(':key', $kod, PDO::PARAM_STR);
              $dodaj_do_bazy-&amp;gt;bindValue(':status', 0, PDO::PARAM_STR);
              $dodaj_do_bazy-&amp;gt;execute();
              
              

            }
 }

&lt;/pre&gt;



&lt;p&gt;Czy ktoś mógłby mi pomóc rozwiązać ten problem. Z góry dziękuje za pomoc&lt;/p&gt;</description>
<category>PHP</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599387/system-rejestracji-uzytkownika-w-php-sqlstate-hy093-invalid-parameter-number</guid>
<pubDate>Mon, 24 Nov 2025 15:29:28 +0000</pubDate>
</item>
<item>
<title>Problem Collatza - wątek do zabawy z aspektami słynnej hipotezy + nauka przetwarzania wielkich liczb</title>
<link>https://forum.pasja-informatyki.pl/599386/problem-collatza-watek-zabawy-aspektami-slynnej-hipotezy-przetwarzania-wielkich</link>
<description>

&lt;p&gt;To jest wątek dedykowany tutorialowi o fascynującym problemie Collatza:&lt;/p&gt;



&lt;ul&gt;
	

&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://youtu.be/DecVKJgQK8c&quot; target=&quot;_blank&quot;&gt;https://youtu.be/DecVKJgQK8c&lt;/a&gt;&lt;/li&gt;
	

&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://pl.wikipedia.org/wiki/Problem_Collatza&quot; target=&quot;_blank&quot;&gt;https://pl.wikipedia.org/wiki/Problem_Collatza&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;Zachęcam zainteresowanych matematyką do postowania swoich kodów źródłowych w ramach zabawy z hipotezą - materiały z odcinka (slajdy) można pobrać z wpisu blogowego:&lt;/p&gt;



&lt;ul&gt;
	

&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://miroslawzelent.pl/nauka/problem-collatza&quot; target=&quot;_blank&quot;&gt;https://miroslawzelent.pl/nauka/problem-collatza&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
<category>Nasze projekty</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599386/problem-collatza-watek-zabawy-aspektami-slynnej-hipotezy-przetwarzania-wielkich</guid>
<pubDate>Mon, 24 Nov 2025 14:59:35 +0000</pubDate>
</item>
<item>
<title>Ej wiecie co...</title>
<link>https://forum.pasja-informatyki.pl/599371/ej-wiecie-co</link>
<description>

&lt;p&gt;Witajcie, jako mist chciałbym się pochwalić, że udało mi się spełnić jedno marzenie – może nie jedno, a więcej, ale chcę przedstawić wam moją pracę. Wiem, że pewnie mi powiecie dużo o bezpieczeństwie kodu czy temu, że nie ma większej dokumentacji, jednak postanowiłem się tym w końcu pochwalić.&lt;/p&gt;



&lt;p&gt;Język ma jeszcze dużo błędów czy nieskończonych rzeczy.&lt;/p&gt;



&lt;p&gt;
&lt;br&gt;
&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/Etherex122/SNS&quot;&gt;Mój język programowania SNS&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Plik codf.sns zawiera przykładowy kod z użyciem wskaźników.&amp;nbsp;
&lt;br&gt;

&lt;br&gt;
Dziekuje.&lt;/p&gt;</description>
<category>Nasze projekty</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599371/ej-wiecie-co</guid>
<pubDate>Thu, 20 Nov 2025 17:47:03 +0000</pubDate>
</item>
<item>
<title>Dziwne obiekty jak to interpretować ?</title>
<link>https://forum.pasja-informatyki.pl/599339/dziwne-obiekty-jak-to-interpretowac</link>
<description>

&lt;p&gt;Siemanko&lt;/p&gt;



&lt;p&gt;Skanowałem dziś cały komp i pokazało mi takie 4 Malware w aplikacji której używam już X czasu i bardzo dużo osób z niej korzysta i mówią ze to fałszywe alarmy ale im cos nie wieże. Dlatego przyszedłem tutaj zapytać się wa ;]&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Mam 4 takie Malware&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;1.&amp;nbsp;Malware.AI.2534191007&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;2.&amp;nbsp;Malware.AI.2534191007&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;3.&amp;nbsp;Malware.Heuristic.2106&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;4.&amp;nbsp;Malware.AI.4180347201&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Jest się czego bać czy z lekceważyć to ? Dodam że z komputerem nic się nie dzieje po prostu dziś to wyszło bo postanowiłem zrobić pełny skan Malwarebytes wersja płatna.&lt;/strong&gt;&lt;/p&gt;</description>
<category>Systemy operacyjne, programy</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599339/dziwne-obiekty-jak-to-interpretowac</guid>
<pubDate>Sat, 08 Nov 2025 17:54:47 +0000</pubDate>
</item>
<item>
<title>[C++]Potrzebuje pomocy z wyswietlaniem wyniku na pionowe kolumny</title>
<link>https://forum.pasja-informatyki.pl/599295/c-potrzebuje-pomocy-z-wyswietlaniem-wyniku-na-pionowe-kolumny</link>
<description>#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;iomanip&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int n;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;char wybor;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;&amp;quot;Podaj liczbe n: &amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cin&amp;gt;&amp;gt;n;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;&amp;quot;Wybierz sposob oblizenia za pomoca skrotu(m-mnozenie/d-dzielenie): &amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cin&amp;gt;&amp;gt;wybor;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;switch(wybor){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case 'm':&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(n&amp;gt;0){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(int i=1;i&amp;lt;=n;i++){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(int j=1;j&amp;lt;=n;j++){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;i*j&amp;lt;&amp;lt;&amp;quot; |&amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;&amp;quot; &amp;quot;&amp;lt;&amp;lt;endl;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(int i=1;i&amp;gt;=n;i--){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(int j=-1;j&amp;gt;=n;j--){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;i*j&amp;lt;&amp;lt;&amp;quot; |&amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;&amp;quot; &amp;quot;&amp;lt;&amp;lt;endl;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case 'd':&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(n&amp;gt;0){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(int i=1;i&amp;lt;=n;i++){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(int j=1;j&amp;lt;=n;j++){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;i/j&amp;lt;&amp;lt;&amp;quot; | &amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;endl;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(int i=1;i&amp;gt;=n;i--){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(int j=-1;j&amp;gt;=n;j--){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;i/j&amp;lt;&amp;lt;&amp;quot; | &amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;endl;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;default:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout &amp;lt;&amp;lt; &amp;quot;Niepoprawny wybor. Wybierz 'm' lub 'd'.&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 0;&lt;br /&gt;
}</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599295/c-potrzebuje-pomocy-z-wyswietlaniem-wyniku-na-pionowe-kolumny</guid>
<pubDate>Mon, 20 Oct 2025 17:11:17 +0000</pubDate>
</item>
<item>
<title>Jak pozbyć się zmiennej statycznej?</title>
<link>https://forum.pasja-informatyki.pl/599257/jak-pozbyc-sie-zmiennej-statycznej</link>
<description>

&lt;p&gt;Wie ktoś jak pozbyć zmiennej statycznej Menu.nesting_level i przekazywać zaktualizowane informacje dotyczące poziomu zagnieżdżenia Menu dopiero w momencie wywoływania metody menu.add_item np menu.add_item('Podmenu', submenu.loop)&amp;nbsp;lub menu.add_submenu? Nie wszystkie obiekty Menu mają być podmenu powiązanymi z innymi menu w programie.&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
from __future__ import annotations

import gettext
import locale
import sys
from dataclasses import dataclass
from typing import Callable, Optional, TextIO

from .user_input import print_input_error, redirect_stdio, wait_for_enter

# mypy and pylint don't work well with gettext.install
lang, _enc = locale.getlocale()
lang = lang or 'en'
_ = gettext.translation('python_misc',
                        localedir='locale',
                        languages=[lang, lang.split('_')[0], 'en'],
                        fallback=True).gettext


@dataclass(frozen=True)
class MenuItem:
    name: str
    action: Callable[[], None]
    key: Optional[str] = None
    visible: bool = True
    enabled: bool = True

    def __str__(self):
        return self.name


class Menu:
    nesting_level = -1

    def __init__(self,
                 title: str,
                 items: list[MenuItem], *,
                 quit_key: Optional[str] = 'q',
                 stdin: TextIO = sys.stdin,
                 stdout: TextIO = sys.stdout):
        self.title = title
        self.items = list(items)
        quit_item = MenuItem('Quit', self._quit, quit_key)
        self._check_for_duplicates(quit_item)
        self.items.append(quit_item)
        self.active = False
        self.quit_key = quit_key
        self.stdin = stdin
        self.stdout = stdout

    @property
    def visible_items(self):
        return [item for item in self.items if item.visible]

    def add_item(self,
                 name: str,
                 action: Callable[[], None],
                 key: Optional[str] = None) -&amp;gt; None:
        item = MenuItem(name, action, key)
        self._check_for_duplicates(item)
        self.items.insert(-1, item)

    def remove_item(self, name: str) -&amp;gt; bool:
        for idx, item in enumerate(self.items):
            if item.name == name:
                del self.items[idx]
                return True
        return False

    def add_submenu(self,
                    name: str,
                    menu: Menu,
                    key: Optional[str] = None) -&amp;gt; None:
        item = MenuItem(name, menu.loop, key)
        self._check_for_duplicates(item)
        self.items.insert(-1, item)

    def loop(self) -&amp;gt; None:
        with redirect_stdio(self.stdin, self.stdout):
            Menu.nesting_level += 1
            if Menu.nesting_level &amp;gt; 0:
                quit_item_title = _('Back')
            else:
                quit_item_title = _('Quit')
            quit_item = MenuItem(quit_item_title, self._quit, self.quit_key)
            self.items[-1] = quit_item
            self.active = True
            while self.active:
                user_choice = self._read_choice()
                if user_choice.action == self._quit:  # pylint: disable=W0143
                    self._quit()
                else:
                    try:
                        user_choice.action()
                        wait_for_enter()
                    except (EOFError, KeyboardInterrupt):
                        pass

    def _check_for_duplicates(self, candidate: MenuItem) -&amp;gt; None:
        for item in self.items:
            if (candidate.key is not None and item.key is not None
                    and candidate.key.lower() == item.key.lower()):
                raise ValueError('duplicate key')

    def _print_title(self) -&amp;gt; None:
        longest_item = max(len(item.name) for item in self.visible_items)
        has_key = any(item.key is not None for item in self.visible_items)
        if has_key:
            longest_key = max(len(item.key) for item in self.visible_items
                              if item.key is not None)
        else:
            longest_key = 0
        field_width = max(len(self.title), longest_item) + 2
        if longest_key &amp;gt; 0:
            field_width += longest_key
        line = '-' * (field_width + 2)
        print(line, file=self.stdout)
        print(f'|{self.title:^{field_width}}|', file=self.stdout)
        print(line, file=self.stdout)

    def _display_menu(self) -&amp;gt; None:
        self._print_title()
        longest = max(len(item.name) for item in self.visible_items)
        for idx, item in enumerate(self.visible_items, start=1):
            label = f'{idx}) {item.name:&amp;lt;{longest}}'
            label += f' [{item.key}]' if item.key else ''
            print(label)

    def _read_choice(self) -&amp;gt; MenuItem:
        with redirect_stdio(self.stdin, self.stdout):
            while True:
                self._display_menu()
                try:
                    user_input = input(_('Your choice: ')).strip().lower()
                except (EOFError, KeyboardInterrupt):
                    print(_('\nExiting...'))
                    return self.items[-1]

                try:
                    if user_input.isdigit():
                        idx = int(user_input)
                        if not 1 &amp;lt;= idx &amp;lt;= len(self.visible_items):
                            raise ValueError
                        candidate = self.visible_items[idx - 1]
                    else:
                        for idx, item in enumerate(self.visible_items):
                            if user_input == item.key:
                                candidate = self.visible_items[idx]
                                break
                        else:
                            raise ValueError
                    if not candidate.enabled:
                        print_input_error(_('invalid operation'))
                        wait_for_enter()
                    else:
                        return candidate
                except ValueError:
                    print_input_error(_('invalid choice'))

    def _quit(self) -&amp;gt; None:
        self.active = False
        Menu.nesting_level -= 1
&lt;/pre&gt;</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599257/jak-pozbyc-sie-zmiennej-statycznej</guid>
<pubDate>Sun, 12 Oct 2025 19:59:50 +0000</pubDate>
</item>
<item>
<title>Biblioteka do projektowania interaktywnych menu</title>
<link>https://forum.pasja-informatyki.pl/599255/biblioteka-do-projektowania-interaktywnych-menu</link>
<description>

&lt;p&gt;Hejka, co myślicie o moim nowym programie testującym bibliotekę do projektowania interaktywnych menu w konsoli?&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;calc.py&lt;/strong&gt;&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
#!/usr/bin/env python3
import gettext
import os
from operator import add as op_add
from operator import mul, sub, truediv
from typing import Any, Callable

from ui.menu import Menu, MenuItem
from ui.user_input import read_number

# mypy and pylint don't work well with gettext.install
LOCALE = os.getenv('LANG', 'en')
_ = gettext.translation('python_misc',
                        localedir='locale',
                        languages=[LOCALE]).gettext


def make_binop(fn: Callable[[Any, Any], Any], name: str,
               nonzero_second=False) -&amp;gt; Callable[[], None]:
    def _op():
        a = read_number(_('Enter the first operand: '))
        b = read_number(_('Enter the second operand: '),
                        nonzero=nonzero_second)
        print(_('The result is {0}.').format(fn(a, b)))
    _op.__name__ = name
    return _op


if __name__ == '__main__':
    items = [MenuItem(_('Add'), make_binop(op_add, 'add'), _('a')),
             MenuItem(_('Subtract'), make_binop(sub, 'subtract'), _('s')),
             MenuItem(_('Multiply'), make_binop(mul, 'multiply'), _('m')),
             MenuItem(_('Divide'), make_binop(truediv, 'divide'), _('d'))]
    menu = Menu(_('Calculator'), items)
    menu.loop()
    print(_('Good bye!'))&lt;/pre&gt;



&lt;p&gt;&lt;strong&gt;ui/user_input.py&lt;/strong&gt;&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
import gettext
import os
import sys
from contextlib import contextmanager
from numbers import Number
from typing import IO, Any, Iterator, Optional, TextIO, overload

# mypy and pylint don't work well with gettext.install
LOCALE = os.getenv('LANG', 'en')
_ = gettext.translation('python_misc',
                        localedir='locale',
                        languages=[LOCALE]).gettext


@contextmanager
def redirect_stdio(stdin: IO[Any],
                   stdout: IO[Any],
                   stderr: IO[Any] = sys.stderr) -&amp;gt; Iterator[None]:
    old_stdin = sys.stdin
    old_stdout = sys.stdout
    old_stderr = sys.stderr
    sys.stdin = stdin
    sys.stdout = stdout
    sys.stderr = stderr

    yield

    sys.stdin = old_stdin
    sys.stdout = old_stdout
    sys.stderr = old_stderr


def read_str(prompt: str = '', *,
             stdin: TextIO = sys.stdin,
             stdout: TextIO = sys.stdout) -&amp;gt; str:
    stdout.write(prompt)
    stdout.flush()
    user_input = stdin.readline()
    if not user_input:
        raise EOFError
    return user_input


def wait_for_enter(*,
                   stdin: TextIO = sys.stdin,
                   stdout: TextIO = sys.stdout) -&amp;gt; None:
    read_str(_('\nPress ENTER to continue...\n'), stdin=stdin, stdout=stdout)


def print_input_error(message: str) -&amp;gt; None:
    print(_('Error: {0}. Try again...').format(message))


def _get_default_prompt(lower: Optional[Number], upper: Optional[Number],
                        nonzero: bool):
    prompt = _('Enter the number')
    if lower is not None or upper is not None or nonzero:
        prompt += ' ('
    if lower is not None:
        prompt += _('starting from {0}').format(lower)
    if upper is not None:
        prompt += _('up to {0}').format(upper)
    if nonzero:
        if lower is not None or upper is not None:
            prompt += ', '
        prompt += _('cannot be zero')
    if lower is not None or upper is not None or nonzero:
        prompt += ')'
    prompt += ': '
    return prompt


@overload
def read_number[T: Number](prompt: str = ..., *,
                           stdin: TextIO = ...,
                           stdout: TextIO = ...,
                           lower: Optional[T] = ...,
                           upper: Optional[T] = ...,
                           nonzero: bool = ...,
                           _type: type[T]) -&amp;gt; T: ...


@overload
def read_number[T: Number](prompt: str = ..., *,
                           stdin: TextIO = ...,
                           stdout: TextIO = ...,
                           lower: Optional[T] = ...,
                           upper: Optional[T] = ...,
                           nonzero: bool = ...) -&amp;gt; float: ...


def read_number[T: Number](prompt: str = '', *,
                           stdin: TextIO = sys.stdin,
                           stdout: TextIO = sys.stdout,
                           lower: Optional[T] = None,
                           upper: Optional[T] = None,
                           nonzero: bool = False,
                           _type: type = float):
    if not prompt:
        prompt = _get_default_prompt(lower, upper, nonzero)
    while True:
        try:
            number: Any = _type(read_str(prompt,
                                         stdin=stdin,
                                         stdout=stdout))
            if nonzero and number == 0:
                print_input_error(_('number is equal to zero'))
            if lower is not None and number &amp;lt; lower:
                print_input_error(_('number is too small'))
            if upper is not None and number &amp;gt; upper:
                print_input_error(_('number is too big'))
            return number
        except ValueError:
            print_input_error(_('not a number'))
        except (EOFError, KeyboardInterrupt):
            print(_('\nAborted by user.'))
            raise
&lt;/pre&gt;



&lt;p&gt;&lt;strong&gt;ui/menu.py&lt;/strong&gt;&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
from __future__ import annotations

import gettext
import os
import sys
from dataclasses import dataclass
from typing import Callable, Optional, TextIO

from .user_input import print_input_error, redirect_stdio, wait_for_enter

# mypy and pylint don't work well with gettext.install
LOCALE = os.getenv('LANG', 'en')
_ = gettext.translation('python_misc',
                        localedir='locale',
                        languages=[LOCALE]).gettext


@dataclass(frozen=True)
class MenuItem:
    name: str
    action: Callable[[], None]
    key: Optional[str] = None
    visible: bool = True
    enabled: bool = True

    def __str__(self):
        return self.name


class Menu:
    nesting_level = -1

    def __init__(self,
                 title: str,
                 items: list[MenuItem], *,
                 fin: TextIO = sys.stdin,
                 fout: TextIO = sys.stdout):
        self.title = title
        self.items = list(items)
        if Menu.nesting_level &amp;gt; 0:
            quit_item_title = _('Back')
        else:
            quit_item_title = _('Quit')
        quit_item = MenuItem(quit_item_title, self._quit, _('q'))
        self._check_for_duplicates(quit_item)
        self.items.append(quit_item)
        self.active = False
        self.stdin = fin
        self.stdout = fout

    @property
    def visible_items(self):
        return [item for item in self.items if item.visible]

    def add_item(self,
                 name: str,
                 action: Callable[[], None],
                 key: Optional[str] = None) -&amp;gt; None:
        item = MenuItem(name, action, key)
        self._check_for_duplicates(item)
        self.items.insert(-1, item)

    def remove_item(self, name: str) -&amp;gt; bool:
        for idx, item in enumerate(self.items):
            if item.name == name:
                del self.items[idx]
                return True
        return False

    def add_submenu(self,
                    name: str,
                    menu: Menu,
                    key: Optional[str] = None) -&amp;gt; None:
        item = MenuItem(name, menu.loop, key)
        self._check_for_duplicates(item)
        self.items.append(item)

    def loop(self) -&amp;gt; None:
        with redirect_stdio(self.stdin, self.stdout):
            Menu.nesting_level += 1
            self.active = True
            while self.active:
                user_choice = self._read_choice()
                if user_choice.action.__name__ == self._quit.__name__:
                    self._quit()
                else:
                    try:
                        user_choice.action()
                        wait_for_enter()
                    except (EOFError, KeyboardInterrupt):
                        pass

    def _check_for_duplicates(self, candidate: MenuItem) -&amp;gt; None:
        for item in self.items:
            if (candidate.name == item.name
                or candidate.action == item.action
                    or candidate.key == item.key):
                raise ValueError('duplicate menu item')

    def _print_title(self) -&amp;gt; None:
        line = '-' * (len(self.title) + 4)
        print(line, file=self.stdout)
        print(f'| {self.title} |', file=self.stdout)
        print(line, file=self.stdout)

    def _read_choice(self) -&amp;gt; MenuItem:
        with redirect_stdio(self.stdin, self.stdout):
            while True:
                self._print_title()
                for idx, item in enumerate(self.visible_items, start=1):
                    print(f'{idx}) {item}')
                try:
                    user_input = input(_('Your choice: ')).strip().lower()
                except (EOFError, KeyboardInterrupt):
                    print(_('\nExiting...'))
                    return self.items[-1]

                try:
                    if user_input.isdigit():
                        idx = int(user_input)
                        if not 1 &amp;lt;= idx &amp;lt;= len(self.visible_items):
                            raise ValueError
                        candidate = self.visible_items[idx - 1]
                    else:
                        for idx, item in enumerate(self.visible_items):
                            if user_input == item.key:
                                candidate = self.visible_items[idx]
                                break
                        else:
                            raise ValueError
                    if not candidate.enabled:
                        print_input_error(_('invalid operation'))
                        wait_for_enter()
                    else:
                        return candidate
                except ValueError:
                    print_input_error(_('invalid choice'))

    def _quit(self) -&amp;gt; None:
        self.active = False
        Menu.nesting_level -= 1&lt;/pre&gt;



&lt;p&gt;&lt;strong&gt;locale/en/LC_MESSAGES/python_misc.po&lt;/strong&gt;&lt;/p&gt;



&lt;pre class=&quot;brush:plain;&quot;&gt;
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR &amp;lt;EMAIL@ADDRESS&amp;gt;, YEAR.
#
msgid &quot;&quot;
msgstr &quot;&quot;
&quot;Project-Id-Version: PACKAGE VERSION\n&quot;
&quot;POT-Creation-Date: 2025-10-12 16:57+0200\n&quot;
&quot;PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n&quot;
&quot;Last-Translator: FULL NAME &amp;lt;EMAIL@ADDRESS&amp;gt;\n&quot;
&quot;Language-Team: LANGUAGE &amp;lt;LL@li.org&amp;gt;\n&quot;
&quot;MIME-Version: 1.0\n&quot;
&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
&quot;Content-Transfer-Encoding: 8bit\n&quot;
&quot;Generated-By: pygettext.py 1.5\n&quot;


#: calc.py:19
msgid &quot;Enter the first operand: &quot;
msgstr &quot;&quot;

#: calc.py:20
msgid &quot;Enter the second operand: &quot;
msgstr &quot;&quot;

#: calc.py:22
msgid &quot;The result is {0}.&quot;
msgstr &quot;&quot;

#: calc.py:28
msgid &quot;Add&quot;
msgstr &quot;&quot;

#: calc.py:28
msgid &quot;a&quot;
msgstr &quot;&quot;

#: calc.py:29
msgid &quot;Subtract&quot;
msgstr &quot;&quot;

#: calc.py:29
msgid &quot;s&quot;
msgstr &quot;&quot;

#: calc.py:30
msgid &quot;Multiply&quot;
msgstr &quot;&quot;

#: calc.py:30
msgid &quot;m&quot;
msgstr &quot;&quot;

#: calc.py:31
msgid &quot;Divide&quot;
msgstr &quot;&quot;

#: calc.py:31
msgid &quot;d&quot;
msgstr &quot;&quot;

#: calc.py:32
msgid &quot;Calculator&quot;
msgstr &quot;&quot;

#: calc.py:34
msgid &quot;Good bye!&quot;
msgstr &quot;&quot;

#: ui/menu.py:39
msgid &quot;Back&quot;
msgstr &quot;&quot;

#: ui/menu.py:41
msgid &quot;Quit&quot;
msgstr &quot;&quot;

#: ui/menu.py:42
msgid &quot;q&quot;
msgstr &quot;&quot;

#: ui/menu.py:73
msgid &quot;Your choice: &quot;
msgstr &quot;&quot;

#: ui/menu.py:75
msgid &quot;&quot;
&quot;\n&quot;
&quot;Exiting...&quot;
msgstr &quot;&quot;

#: ui/menu.py:92
msgid &quot;invalid operation&quot;
msgstr &quot;&quot;

#: ui/menu.py:97
msgid &quot;invalid choice&quot;
msgstr &quot;&quot;

#: ui/user_input.py:47
msgid &quot;&quot;
&quot;\n&quot;
&quot;Press ENTER to continue...\n&quot;
msgstr &quot;&quot;

#: ui/user_input.py:52
msgid &quot;Enter the number&quot;
msgstr &quot;&quot;

#: ui/user_input.py:56
msgid &quot;starting from {0}&quot;
msgstr &quot;&quot;

#: ui/user_input.py:58
msgid &quot;up to {0}&quot;
msgstr &quot;&quot;

#: ui/user_input.py:62
msgid &quot;cannot be zero&quot;
msgstr &quot;&quot;

#: ui/user_input.py:70
msgid &quot;Error: {0}. Try again...&quot;
msgstr &quot;&quot;

#: ui/user_input.py:107
msgid &quot;number is equal to zero&quot;
msgstr &quot;&quot;

#: ui/user_input.py:109
msgid &quot;number is too small&quot;
msgstr &quot;&quot;

#: ui/user_input.py:111
msgid &quot;number is too big&quot;
msgstr &quot;&quot;

#: ui/user_input.py:114
msgid &quot;not a number&quot;
msgstr &quot;&quot;

#: ui/user_input.py:116
msgid &quot;&quot;
&quot;\n&quot;
&quot;Aborted by user.&quot;
msgstr &quot;&quot;

&lt;/pre&gt;</description>
<category>Nasze projekty</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599255/biblioteka-do-projektowania-interaktywnych-menu</guid>
<pubDate>Sun, 12 Oct 2025 15:54:33 +0000</pubDate>
</item>
<item>
<title>mypy - typ zwracanej wartości przez funkcję taki sam jak typ argumentu funkcji</title>
<link>https://forum.pasja-informatyki.pl/599249/mypy-typ-zwracanej-wartosci-przez-funkcje-taki-sam-jak-typ-argumentu-funkcji</link>
<description>

&lt;p&gt;Hej, jak mogę powiedzieć mypy że typ zwracany powinien być taki sam jak ten przekazany w parametrze _type do funkcji read_number bez bawienia się w Any?&lt;/p&gt;



&lt;p&gt;Chodzi mi o takie coś&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
def read_number(prompt: str = 'Enter the number (cannot be zero): ', *,
                _type: type = float) -&amp;gt; _type (?) wywala błąd undefined name _type:
    while True:
        try:
            return _type(input(prompt))
        except ValueError:
            print('Error: not a number. Try again...')&lt;/pre&gt;



&lt;p&gt;Funkcja ma zwracać taki sam typ jak ten zdefiniowany w zmiennej _type.&lt;/p&gt;</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599249/mypy-typ-zwracanej-wartosci-przez-funkcje-taki-sam-jak-typ-argumentu-funkcji</guid>
<pubDate>Sat, 11 Oct 2025 11:55:54 +0000</pubDate>
</item>
<item>
<title>Aplikacja Lotto - sprawdzenie</title>
<link>https://forum.pasja-informatyki.pl/599194/aplikacja-lotto-sprawdzenie</link>
<description>Witam, proszę o sprawdzenie mojego kodu, co mogę ulepszyć, zmienić albo w jakim kierunku rozwinąć projekt?&lt;br /&gt;
link na GitHuba: &lt;a href=&quot;https://github.com/rafalwalasek/Lotto&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://github.com/rafalwalasek/Lotto&lt;/a&gt; no i czy nie ma błędów, proszę o podpowiedzi a nie gotowe rozwiązanie.&lt;br /&gt;
Pozdrawiam :)</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599194/aplikacja-lotto-sprawdzenie</guid>
<pubDate>Thu, 25 Sep 2025 11:52:54 +0000</pubDate>
</item>
<item>
<title>Rozwiązanie egzaminu Czerwiec 2022 INF03</title>
<link>https://forum.pasja-informatyki.pl/599193/rozwiazanie-egzaminu-czerwiec-2022-inf03</link>
<description>

&lt;p&gt;Udostępniam swoje materiały do zadania praktycznego:&lt;/p&gt;



&lt;p&gt;W katalogu PHP/Czerwiec 2022 znajdują się:&lt;/p&gt;



&lt;ul&gt;
	

&lt;li&gt;
	

&lt;p&gt;baza.sql – struktura bazy danych i tabele zgodne z treścią arkusza,&lt;/p&gt;
	&lt;/li&gt;
	

&lt;li&gt;
	

&lt;p&gt;kwerendy.txt – zapytania SQL wymagane w poleceniach,&lt;/p&gt;
	&lt;/li&gt;
	

&lt;li&gt;
	

&lt;p&gt;wedkuj.php – skrypt PHP realizujący logikę strony,&lt;/p&gt;
	&lt;/li&gt;
	

&lt;li&gt;
	

&lt;p&gt;styl_1.css – plik stylów CSS do formatowania,&lt;/p&gt;
	&lt;/li&gt;
	

&lt;li&gt;
	

&lt;p&gt;ryba1.jpg – plik graficzny użyty w projekcie,&lt;/p&gt;
	&lt;/li&gt;
	

&lt;li&gt;
	

&lt;p&gt;INF.03-01-22.06-SG.pdf – sam arkusz egzaminacyjny (dla odniesienia).&lt;/p&gt;
	&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;Całość odpowiada zadaniu egzaminacyjnemu &lt;strong&gt;INF.03 – Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych&lt;/strong&gt;, sesja &lt;strong&gt;czerwiec 2022&lt;/strong&gt;.&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/Jabloniaczek/E14-EE09-INF03/tree/main/INF03/PHP/Czerwiec%202022&quot; rel=&quot;nofollow&quot;&gt;E14-EE09-INF03/INF03/PHP/Czerwiec 2022 at main · Jabloniaczek/E14-EE09-INF03&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/Jabloniaczek/E14-EE09-INF03&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://github.com/Jabloniaczek/E14-EE09-INF03&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
<category>Egzaminy zawodowe</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599193/rozwiazanie-egzaminu-czerwiec-2022-inf03</guid>
<pubDate>Thu, 25 Sep 2025 11:12:43 +0000</pubDate>
</item>
<item>
<title>Wybór języka pod web dev - Ruby czy Python?</title>
<link>https://forum.pasja-informatyki.pl/599155/wybor-jezyka-pod-web-dev-ruby-czy-python</link>
<description>

&lt;p&gt;Chcę iść w kierunku web devu i zastanawia mnie, w którą stronę iść. Oprócz języka równie ważny jest dla mnie ekosystem, jakość narzędzi, liczba dostępnych bibliotek, społeczność. Ruby ma przyjemniejszą składnię ale Python wydaje się pod wieloma względami być bardziej rozbudowany, w sensie toole, więcej bibliotek. W którą stronę lepiej iść? Z informatyki najbardziej interesuje mnie sysadminka i web developerka od strony backendu.&lt;/p&gt;



&lt;p&gt;Co będzie uwzględniając moje potrzeby lepsze, Ruby czy Python?&lt;/p&gt;



&lt;p&gt;Chcę docelowo pracować jak już nauczę się programować jako backend dev. Język oprócz do web devu ma mi służyć także do pisania skryptów i mini-programów ułatwiających administrację serwerami.&lt;/p&gt;



&lt;p&gt;I chcę także mieć sensowne lsp które nie będzie mulić przy większych projektach. Do programowania uzywam neovima&lt;/p&gt;



&lt;p&gt;Do Pythona przekonuje mnie też to &lt;a href=&quot;https://peps.python.org/pep-0703/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://peps.python.org/pep-0703/&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;Zasadniczo pytanie jest czy jest sens sugerować się tym, że składnia Rubiego jest przyjemniejsza, bardziej elegancka czy iść jednak lepiej w Pythona&lt;/p&gt;</description>
<category>Rozwój zawodowy, nauka, praca</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599155/wybor-jezyka-pod-web-dev-ruby-czy-python</guid>
<pubDate>Fri, 19 Sep 2025 15:51:12 +0000</pubDate>
</item>
<item>
<title>Rozwiązanie INF03</title>
<link>https://forum.pasja-informatyki.pl/599146/rozwiazanie-inf03</link>
<description>Siemanko! po raz kolejny wrzucam rozwiązanie mojego kolejnego arkusza tym razem INF03 :D ze starych lat ale jednak :D kto chce niech komentuje , może komuś się przyda. &lt;br /&gt;
&lt;br /&gt;
Linki do gita i do projektu. &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://github.com/Jabloniaczek/E14-EE09-INF03/tree/main/INF03/PHP/Czerwiec%202021&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://github.com/Jabloniaczek/E14-EE09-INF03/tree/main/INF03/PHP/Czerwiec%202021&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://github.com/Jabloniaczek/E14-EE09-INF03&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://github.com/Jabloniaczek/E14-EE09-INF03&lt;/a&gt;</description>
<category>Egzaminy zawodowe</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599146/rozwiazanie-inf03</guid>
<pubDate>Wed, 17 Sep 2025 14:00:26 +0000</pubDate>
</item>
<item>
<title>rozwiązanie e14 w celach ćwiczeń / nauki</title>
<link>https://forum.pasja-informatyki.pl/599105/rozwiazanie-e14-w-celach-cwiczen-nauki</link>
<description>&lt;a href=&quot;https://github.com/Jabloniaczek/E14-EE09-INF03/tree/main/Arkusze%20egzaminacyjne%20E.14/Java-Script/2017%20Czerwiec&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://github.com/Jabloniaczek/E14-EE09-INF03/tree/main/Arkusze%20egzaminacyjne%20E.14/Java-Script/2017%20Czerwiec&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://github.com/Jabloniaczek/E14-EE09-INF03/tree/main/Arkusze%20egzaminacyjne%20E.14/Java-Script/2018%20Stycze%C5%84&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://github.com/Jabloniaczek/E14-EE09-INF03/tree/main/Arkusze%20egzaminacyjne%20E.14/Java-Script/2018%20Stycze%C5%84&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Wrzucam 2 gotowe egzaminy E14 z PHP z mojego rozwiązania. Może ktoś chce przejrzeć albo komuś się przyda. Może ktoś coś podpowie. Pozdrawiam. Wiem, że w folderze mam błąd jak chodzi o nazwę , w krótce to zmienię.</description>
<category>Egzaminy zawodowe</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599105/rozwiazanie-e14-w-celach-cwiczen-nauki</guid>
<pubDate>Mon, 08 Sep 2025 19:15:28 +0000</pubDate>
</item>
<item>
<title>Nie działa kompilacja, chciałbym abyście pomogli mi czy kod poprawnie jest napisany?</title>
<link>https://forum.pasja-informatyki.pl/599089/nie-dziala-kompilacja-chcialbym-abyscie-pomogli-mi-czy-kod-poprawnie-jest-napisany</link>
<description>

&lt;p&gt;Biblioteka-model&lt;/p&gt;



&lt;p&gt;Gra planszowa.java:&lt;/p&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;
package pl.com.biblioteka.biblioteka.model; 

public class GraPlanszowa extends Pozycja {
    private int maksymalnyWiek;

    public GraPlanszowa(String tytul, int minimalnyWiek, int maksymalnyWiek) {
        super(tytul, minimalnyWiek);
        this.maksymalnyWiek = maksymalnyWiek;
    }

    public int getMaksymalnyWiek() {
        return maksymalnyWiek;
    }

    @Override
    public String pobierzSzczegoloweInfo() {
        return &quot;Gra Planszowa -&amp;gt; &quot; + super.toString() + &quot;, maksymalny wiek: &quot; + maksymalnyWiek;
    }
    
    //SPRAWDŹ, CZY TA SEKCJA ISTNIEJE I JEST POPRAWNA

    @Override
    public String pobierzTypPozycji() {
        return &quot;Gra planszowa&quot;;
    }
    
    
}&lt;/pre&gt;



&lt;p&gt;Klient.java:&lt;/p&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;
package pl.com.biblioteka.biblioteka.model;

public class Klient {
    private String imie;
    private String nazwisko;
    private int wiek;

    public Klient(String imie, String nazwisko, int wiek) {
        this.imie = imie;
        this.nazwisko = nazwisko;
        this.wiek = wiek;
    }

    // Gettery
    public String getImie() { return imie; }
    public String getNazwisko() { return nazwisko; }
    public int getWiek() { return wiek; }

    @Override
    public String toString() {
        return imie + &quot; &quot; + nazwisko + &quot; (wiek: &quot; + wiek + &quot;)&quot;;
    }
}&lt;/pre&gt;



&lt;p&gt;Ksiazka.java:&lt;/p&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;
// Plik: biblioteka-model/src/main/java/pl/com/biblioteka/model/Ksiazka.java
package pl.com.biblioteka.biblioteka.model;

public class Ksiazka extends Pozycja {
    private String autor;

    public Ksiazka(String tytul, String autor, int minimalnyWiek) {
        super(tytul, minimalnyWiek);
        this.autor = autor;
    }

    public String getAutor() {
        return autor;
    }

    @Override
    public String pobierzSzczegoloweInfo() {
        return &quot;Książka -&amp;gt; &quot; + super.toString() + &quot;, Autor: '&quot; + autor + &quot;'&quot;;
    }
    
    //IMPLEMENTACJA METOD POLIMORFICZNYCH 

    @Override
    public String pobierzTypPozycji() {
        return &quot;Książka&quot;;
    }
    
    @Override
    public String pobierzSzczegolyDoRaportu() {
        // Zwracamy autora w odpowiednim formacie do raportu
        return &quot;, &quot; + getAutor();
    }
}&lt;/pre&gt;



&lt;p&gt;Pozycja.java:&lt;/p&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;
package pl.com.biblioteka.biblioteka.model; 

public abstract class Pozycja {
    private String tytul;
    private int minimalnyWiek;

    public Pozycja(String tytul, int minimalnyWiek) {
        this.tytul = tytul;
        this.minimalnyWiek = minimalnyWiek;
    }

    public String getTytul() { return tytul; }
    public int getMinimalnyWiek() { return minimalnyWiek; }

    public abstract String pobierzSzczegoloweInfo();

    @Override
    public String toString() {
        return &quot;Tytuł: '&quot; + tytul + &quot;', minimalny wiek: &quot; + minimalnyWiek;
    }

    //SPRAWDŹ, CZY TA SEKCJA ISTNIEJE I JEST POPRAWNA 

    /**
     * Zwraca typ pozycji jako tekst. Metoda abstrakcyjna.
     * @return String z typem pozycji
     */
    public abstract String pobierzTypPozycji(); 

    /**
     * Zwraca dodatkowe szczegóły do raportu, np. autora.
     * @return String z dodatkowymi informacjami
     */
    public String pobierzSzczegolyDoRaportu() {
        return &quot;&quot;; 
    }
}&lt;/pre&gt;



&lt;p&gt;Wypozyczenie.java:&lt;/p&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;
package pl.com.biblioteka.biblioteka.model;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class Wypozyczenie {
    private final Klient klient;
    private final Pozycja pozycja;
    private final LocalDateTime dataWypozyczenia;

    public Wypozyczenie(Klient klient, Pozycja pozycja) {
        this.klient = klient;
        this.pozycja = pozycja;
        this.dataWypozyczenia = LocalDateTime.now();
    }

        public Klient getKlient() {
        return klient;
    }

    public Pozycja getPozycja() {
        return pozycja;
    }
    
    
    @Override
    public String toString() {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(&quot;yyyy-MM-dd HH:mm&quot;);
        return &quot;Wypożyczono: &quot; + dataWypozyczenia.format(formatter) + &quot;\n&quot; +
               &quot; &amp;gt; Klient: &quot; + klient.toString() + &quot;\n&quot; +
               &quot; &amp;gt; Pozycja: &quot; + pozycja.pobierzSzczegoloweInfo();
    }
    
    
    


}&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Biblioteka-logic (logika)&lt;/p&gt;



&lt;p&gt;RaportZbiorczy.java (pl.com.biblioteka.biblioteka.logic):&lt;/p&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;
package pl.com.biblioteka.biblioteka.logic;

public class RaportZbiorczy {

    private final int iloscKsiazek;
    private final int iloscGier;
    private final int iloscWypozyczenDzieci;
    private final int iloscWypozyczenMlodziezy;
    private final int iloscWypozyczenDoroslych;

    public RaportZbiorczy(int iloscKsiazek, int iloscGier, int iloscWypozyczenDzieci, int iloscWypozyczenMlodziezy, int iloscWypozyczenDoroslych) {
        this.iloscKsiazek = iloscKsiazek;
        this.iloscGier = iloscGier;
        this.iloscWypozyczenDzieci = iloscWypozyczenDzieci;
        this.iloscWypozyczenMlodziezy = iloscWypozyczenMlodziezy;
        this.iloscWypozyczenDoroslych = iloscWypozyczenDoroslych;
    }

    // Można dodać publiczne gettery, jeśli będą potrzebne w innych miejscach
    // Na potrzeby wyświetlania wystarczy nam poniższa metoda toString()

    @Override
    public String toString() {
        return &quot;--- Podsumowanie Wypożyczeń ---\n&quot; +
               &quot;Ilość wypożyczonych książek: &quot; + iloscKsiazek + &quot;\n&quot; +
               &quot;Ilość wypożyczonych gier: &quot; + iloscGier + &quot;\n&quot; +
               &quot;\n&quot; +
               &quot;--- Podział na grupy wiekowe ---\n&quot; +
               &quot;Dzieci (do 10 lat): &quot; + iloscWypozyczenDzieci + &quot; wypożyczeń\n&quot; +
               &quot;Młodzież (11-17 lat): &quot; + iloscWypozyczenMlodziezy + &quot; wypożyczeń\n&quot; +
               &quot;Dorośli (18+ lat): &quot; + iloscWypozyczenDoroslych + &quot; wypożyczeń&quot;;
    }
}&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;SerwisWypozyczen.java:&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;
package pl.com.biblioteka.biblioteka.logic;

import pl.com.biblioteka.biblioteka.export.ExporterService; 
import pl.com.biblioteka.biblioteka.model.*;
import java.io.IOException; 
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;

public class SerwisWypozyczen {

    private final List&amp;lt;Wypozyczenie&amp;gt; wypozyczenia = new ArrayList&amp;lt;&amp;gt;();
    private final ExporterService exporterService; 

    private static final int WIEK_DZIECKO_MAX = 10;
    private static final int WIEK_MLODZIEZ_MAX = 17;

    // ZMIENIONY KONSTRUKTOR - teraz przyjmuje serwis do eksportu
    public SerwisWypozyczen(ExporterService exporterService) {
        this.exporterService = exporterService;
    }

    // Metoda dodająca wypożyczenie
    public void dodajWypozyczenie(Klient klient, Pozycja pozycja) {
        Wypozyczenie noweWypozyczenie = new Wypozyczenie(klient, pozycja);
        wypozyczenia.add(noweWypozyczenie);
    }

    // Metoda zwracająca listę wszystkich wypożyczeń
    public List&amp;lt;Wypozyczenie&amp;gt; pobierzWszystkieWypozyczenia() {
        return new ArrayList&amp;lt;&amp;gt;(wypozyczenia);
    }

    // Metoda sprawdzająca zgodność wieku i zwracająca ostrzeżenie
    public Optional&amp;lt;String&amp;gt; sprawdzZgodnoscWieku(Klient klient, Pozycja pozycja) {
        if (klient.getWiek() &amp;lt; pozycja.getMinimalnyWiek()) {
            return Optional.of(&quot;OSTRZEŻENIE: Klient (&quot; + klient.getWiek() + &quot; lat) jest za młody. Minimalny wiek to &quot; + pozycja.getMinimalnyWiek() + &quot; lat.&quot;);
        }
        if (pozycja instanceof GraPlanszowa) {
            GraPlanszowa gra = (GraPlanszowa) pozycja;
            if (klient.getWiek() &amp;gt; gra.getMaksymalnyWiek()) {
                return Optional.of(&quot;OSTRZEŻENIE: Klient (&quot; + klient.getWiek() + &quot; lat) jest za stary. Maksymalny wiek to &quot; + gra.getMaksymalnyWiek() + &quot; lat.&quot;);
            }
        }
        return Optional.empty();
    }

    /**
     * Analizuje listę wypożyczeń i generuje raport zbiorczy.
     * @return Obiekt RaportZbiorczy z podsumowaniem danych.
     */
    public RaportZbiorczy generujRaportZbiorczy() {
        int ksiazkiCounter = 0;
        int gryCounter = 0;
        int dzieciCounter = 0;
        int mlodziezCounter = 0;
        int dorosliCounter = 0;

        for (Wypozyczenie wypozyczenie : wypozyczenia) {
            Pozycja pozycja = wypozyczenie.getPozycja();
            if (pozycja instanceof Ksiazka) {
                ksiazkiCounter++;
            } else if (pozycja instanceof GraPlanszowa) {
                gryCounter++;
            }
            int wiekKlienta = wypozyczenie.getKlient().getWiek();
            if (wiekKlienta &amp;lt;= WIEK_DZIECKO_MAX) {
                dzieciCounter++;
            } else if (wiekKlienta &amp;lt;= WIEK_MLODZIEZ_MAX) {
                mlodziezCounter++;
            } else {
                dorosliCounter++;
            }
        }
        return new RaportZbiorczy(ksiazkiCounter, gryCounter, dzieciCounter, mlodziezCounter, dorosliCounter);
    }

    /**
     * NOWA METODA: Deleguje zadanie eksportu do zewnętrznego serwisu.
     * @param sciezkaPliku Ścieżka do pliku docelowego.
     * @throws IOException W przypadku problemów z zapisem.
     */
    public void eksportujWypozyczeniaDoPliku(String sciezkaPliku) throws IOException {
        exporterService.export(this.wypozyczenia, sciezkaPliku);
    }
}&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;CsvExporterService.java (pl.com.biblioteka.biblioteka.export):&lt;/p&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;
package pl.com.biblioteka.biblioteka.export;

import pl.com.biblioteka.biblioteka.model.Klient;
import pl.com.biblioteka.biblioteka.model.Pozycja;
import pl.com.biblioteka.biblioteka.model.Wypozyczenie;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

public class CsvExporterService implements ExporterService {

    private static final String CSV_SEPARATOR = &quot;;&quot;;
    private static final String CSV_HEADER = &quot;Lp.;Typ;Tytul;Szczegoly;Nazwisko Klienta;Wiek Klienta&quot;;

    @Override
    public void export(List&amp;lt;Wypozyczenie&amp;gt; wypozyczenia, String sciezkaPliku) throws IOException {
        // Używamy try-with-resources, aby zapewnić automatyczne zamknięcie strumieni
        try (FileWriter fileWriter = new FileWriter(sciezkaPliku);
             PrintWriter printWriter = new PrintWriter(fileWriter)) {
            
            printWriter.println(CSV_HEADER);

            int lp = 1;
            for (Wypozyczenie wypozyczenie : wypozyczenia) {
                printWriter.println(formatToCsvRow(lp++, wypozyczenie));
            }
        }
    }

    private String formatToCsvRow(int lp, Wypozyczenie wypozyczenie) {
        Pozycja pozycja = wypozyczenie.getPozycja();
        Klient klient = wypozyczenie.getKlient();

        // Usuwamy separator z danych, aby nie psuć formatu CSV
        String tytul = pozycja.getTytul().replace(CSV_SEPARATOR, &quot;&quot;);
        // W pobierzSzczegolyDoRaportu mamy wiodący przecinek, usuwamy go
        String szczegoly = pozycja.pobierzSzczegolyDoRaportu().replaceFirst(&quot;, &quot;, &quot;&quot;).replace(CSV_SEPARATOR, &quot;&quot;);

        return String.join(CSV_SEPARATOR,
                String.valueOf(lp),
                pozycja.pobierzTypPozycji(),
                tytul,
                szczegoly,
                klient.getNazwisko(),
                String.valueOf(klient.getWiek())
        );
    }
}&lt;/pre&gt;</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599089/nie-dziala-kompilacja-chcialbym-abyscie-pomogli-mi-czy-kod-poprawnie-jest-napisany</guid>
<pubDate>Thu, 04 Sep 2025 06:35:21 +0000</pubDate>
</item>
<item>
<title>Problem z nietypową numeracją wierszy w SQL</title>
<link>https://forum.pasja-informatyki.pl/599069/problem-z-nietypowa-numeracja-wierszy-w-sql</link>
<description>

&lt;p&gt;Hej. Dawno już pracowałem z bazami danych a teraz mam drobny problem z wymyśleniem odpowiedniego zapytania SQL. Być może istnieje&amp;nbsp;prostsze rozwiązanie, jednak w głowie pozostały same podstawy, dlatego mój problem wydaje mi się trochę nietypowy - w każdym bądź razie - może ktoś tutaj pomoże?&lt;/p&gt;



&lt;p&gt;Załóżmy, że mamy jedną prostą tabelę &quot;services&quot; z kilkoma różnymi rekordami:&lt;/p&gt;



&lt;pre class=&quot;brush:sql;&quot;&gt;
CREATE TABLE services (
  service_id INT AUTO_INCREMENT KEY,
  number_order INT,
  name VARCHAR(100)
);

INSERT INTO services(number_order, name) VALUES (3, 'Trzecia usługa');
INSERT INTO services(number_order, name) VALUES (1, 'Pierwsza usługa');
INSERT INTO services(number_order, name) VALUES (2, 'Druga usługa');
INSERT INTO services(number_order, name) VALUES (6, 'Szósta usługa');
INSERT INTO services(number_order, name) VALUES (7, 'Siódma usługa');
INSERT INTO services(number_order, name) VALUES (13, 'Trzynasta usługa');&lt;/pre&gt;



&lt;p&gt;Teraz możemy wyświetlić zawartość tej tabeli, ale warunkiem jest została uporządkowana według kolejności pola&amp;nbsp;&quot;number_order&quot; rosnąco oraz jego wartości do 10 włącznie:&lt;/p&gt;



&lt;pre class=&quot;brush:sql;&quot;&gt;
SELECT service_id, number_order, name
FROM services
WHERE number_order &amp;lt;= 10
ORDER BY number_order ASC;&lt;/pre&gt;



&lt;p&gt;Wynik jest oczywisty:&lt;/p&gt;



&lt;table border=&quot;1&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; style=&quot;width:500px&quot;&gt;
	

&lt;thead&gt;
		

&lt;tr&gt;
			

&lt;th scope=&quot;col&quot;&gt;service_id&lt;/th&gt;
			

&lt;th scope=&quot;col&quot;&gt;number_order&lt;/th&gt;
			

&lt;th scope=&quot;col&quot;&gt;name&lt;/th&gt;
		&lt;/tr&gt;
	&lt;/thead&gt;
	

&lt;tbody&gt;
		

&lt;tr&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;2&lt;/td&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;1&lt;/td&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;Pierwsza usługa&lt;/td&gt;
		&lt;/tr&gt;
		

&lt;tr&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;3&lt;/td&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;2&lt;/td&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;Druga usługa&lt;/td&gt;
		&lt;/tr&gt;
		

&lt;tr&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;1&lt;/td&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;3&lt;/td&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;Trzecia usługa&lt;/td&gt;
		&lt;/tr&gt;
		

&lt;tr&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;4&lt;/td&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;6&lt;/td&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;Szósta usługa&lt;/td&gt;
		&lt;/tr&gt;
		

&lt;tr&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;5&lt;/td&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;7&lt;/td&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;Siódma usługa&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;



&lt;p&gt;OK. Jednak chciałbym uzyskać wynikową tabelę zwracającą zawsze 10 rekordów. Czyli w przypadku powyższej bazy danych szukam odpowiedniej kwerendy zwracającej dokładnie poniższy wynik:&lt;/p&gt;



&lt;table border=&quot;1&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; style=&quot;width:500px&quot;&gt;
	

&lt;thead&gt;
		

&lt;tr&gt;
			

&lt;th scope=&quot;col&quot;&gt;number&lt;/th&gt;
			

&lt;th scope=&quot;col&quot;&gt;name&lt;/th&gt;
		&lt;/tr&gt;
	&lt;/thead&gt;
	

&lt;tbody&gt;
		

&lt;tr&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;1&lt;/td&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;Pierwsza usługa&lt;/td&gt;
		&lt;/tr&gt;
		

&lt;tr&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;2&lt;/td&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;Druga usługa&lt;/td&gt;
		&lt;/tr&gt;
		

&lt;tr&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;3&lt;/td&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;Trzecia usługa&lt;/td&gt;
		&lt;/tr&gt;
		

&lt;tr&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;4&lt;/td&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;&lt;em&gt;NULL&lt;/em&gt;&lt;/td&gt;
		&lt;/tr&gt;
		

&lt;tr&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;5&lt;/td&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;&lt;em&gt;NULL&lt;/em&gt;&lt;/td&gt;
		&lt;/tr&gt;
		

&lt;tr&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;6&lt;/td&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;Szósta usługa&lt;/td&gt;
		&lt;/tr&gt;
		

&lt;tr&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;7&lt;/td&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;Siódma usługa&lt;/td&gt;
		&lt;/tr&gt;
		

&lt;tr&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;8&lt;/td&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;&lt;em&gt;NULL&lt;/em&gt;&lt;/td&gt;
		&lt;/tr&gt;
		

&lt;tr&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;9&lt;/td&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;&lt;em&gt;NULL&lt;/em&gt;&lt;/td&gt;
		&lt;/tr&gt;
		

&lt;tr&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;10&lt;/td&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;&lt;em&gt;NULL&lt;/em&gt;&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;



&lt;p&gt;To tak jakby ta tabela &quot;sercives&quot; w bazie danych była połączona z abstrakcyjną tabelą z rekordami od 1 do 10. Znalazłem takie coś:&lt;/p&gt;



&lt;pre class=&quot;brush:sql;&quot;&gt;
WITH RECURSIVE cte (number)
AS (
SELECT 1
UNION ALL
SELECT number + 1
FROM cte
WHERE number &amp;lt; 10
)&lt;/pre&gt;



&lt;div id=&quot;ag-1756549295027&quot;&gt;To generuje wiersze od 1 do 10:&lt;/div&gt;



&lt;div&gt;


&lt;table border=&quot;1&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; style=&quot;width:500px&quot;&gt;
	

&lt;thead&gt;
		

&lt;tr&gt;
			

&lt;th scope=&quot;col&quot;&gt;number&lt;/th&gt;
		&lt;/tr&gt;
	&lt;/thead&gt;
	

&lt;tbody&gt;
		

&lt;tr&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;1&lt;/td&gt;
		&lt;/tr&gt;
		

&lt;tr&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;2&lt;/td&gt;
		&lt;/tr&gt;
		

&lt;tr&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;3&lt;/td&gt;
		&lt;/tr&gt;
		

&lt;tr&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;4&lt;/td&gt;
		&lt;/tr&gt;
		

&lt;tr&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;5&lt;/td&gt;
		&lt;/tr&gt;
		

&lt;tr&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;6&lt;/td&gt;
		&lt;/tr&gt;
		

&lt;tr&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;7&lt;/td&gt;
		&lt;/tr&gt;
		

&lt;tr&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;8&lt;/td&gt;
		&lt;/tr&gt;
		

&lt;tr&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;9&lt;/td&gt;
		&lt;/tr&gt;
		

&lt;tr&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;10&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;



&lt;p&gt;Może trzeba iść w tym kierunku, jak poniżej:&lt;/p&gt;



&lt;pre class=&quot;brush:sql;&quot;&gt;
SELECT * FROM cte;
WITH RECURSIVE cte AS (
  SELECT 1 AS number
  UNION ALL
  SELECT number + 1
  FROM cte, services
  WHERE cte.number = services.number_order
  AND number &amp;lt; 10
)
SELECT * FROM cte;&lt;/pre&gt;



&lt;p&gt;Tyle, że w tym przypadku dostanę jedną kolumnę i co dziwne -&amp;nbsp;tylko&amp;nbsp;4 rekordy:&lt;/p&gt;



&lt;table border=&quot;1&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; style=&quot;width:500px&quot;&gt;
	

&lt;thead&gt;
		

&lt;tr&gt;
			

&lt;th scope=&quot;col&quot;&gt;number&lt;/th&gt;
		&lt;/tr&gt;
	&lt;/thead&gt;
	

&lt;tbody&gt;
		

&lt;tr&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;1&lt;/td&gt;
		&lt;/tr&gt;
		

&lt;tr&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;2&lt;/td&gt;
		&lt;/tr&gt;
		

&lt;tr&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;3&lt;/td&gt;
		&lt;/tr&gt;
		

&lt;tr&gt;
			

&lt;td style=&quot;text-align: center;&quot;&gt;4&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;



&lt;p&gt;Ma ktoś jakieś pomysły? Dodam, że technologia musi być kompatybilna&amp;nbsp;z MySQL. Z góry dzięki. Pozdrawiam.&lt;/p&gt;



&lt;p&gt;Powyższy przykład jest dostępny na &lt;a rel=&quot;nofollow&quot; href=&quot;https://sqlfiddle.com/mysql/online-compiler?id=f727226f-b0fc-464c-b28b-893a0b7a0df3&quot;&gt;tym linku SQLFiddle&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;</description>
<category>SQL, bazy danych</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599069/problem-z-nietypowa-numeracja-wierszy-w-sql</guid>
<pubDate>Sat, 30 Aug 2025 11:10:32 +0000</pubDate>
</item>
<item>
<title>Rozwiązanie e14</title>
<link>https://forum.pasja-informatyki.pl/599033/rozwiazanie-e14</link>
<description>Wrzucam link do mojego rozwiązanego arkusza &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://github.com/Jabloniaczek/E14-EE09-INF03/upload/main/Arkusze%20egzaminacyjne%20E.14/Java-Script&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://github.com/Jabloniaczek/E14-EE09-INF03/upload/main/Arkusze%20egzaminacyjne%20E.14/Java-Script&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
może komuś się przyda, może jakieś uwagi? pozdro.</description>
<category>Egzaminy zawodowe</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599033/rozwiazanie-e14</guid>
<pubDate>Sun, 24 Aug 2025 14:59:06 +0000</pubDate>
</item>
<item>
<title>Sprawdzenie kodu</title>
<link>https://forum.pasja-informatyki.pl/598996/sprawdzenie-kodu</link>
<description>Siemanko. Lookniecie?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html lang=&amp;quot;pl&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;meta charset=&amp;quot;UTF-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;title&amp;gt;Szkoła Ponadgimnazjalna&amp;lt;/title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;styl.css&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$connect = mysqli_connect('localhost', 'root', '', 'szkola1');&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (!$connect) {&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;die(&amp;quot;Błąd połączenia: &amp;quot; . mysqli_connect_error());&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$zapytanie1 = &amp;quot;SELECT imie, nazwisko FROM uczen;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$zapytanie2 = &amp;quot;SELECT imie, nazwisko FROM uczen WHERE id = 2;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$zapytanie3 = &amp;quot;SELECT AVG(ocena) AS srednia FROM ocena WHERE przedmiot_id = 1;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;div id=&amp;quot;kontener&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;header id=&amp;quot;baner&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;h1&amp;gt;Oceny uczniów: język polski&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/header&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;main id=&amp;quot;glowny&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;section id=&amp;quot;lewy&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;h2&amp;gt;Lista uczniów&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$wynik1 = mysqli_query($connect, $zapytanie1);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (!$wynik1) {&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;die(&amp;quot;Błąd zapytania: &amp;quot; . mysqli_error($connect));&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo &amp;quot;&amp;lt;ol&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while ($wiersz = mysqli_fetch_assoc($wynik1)) {&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo &amp;quot;&amp;lt;li&amp;gt;&amp;quot; . $wiersz['imie'] . &amp;quot; &amp;quot; . $wiersz['nazwisko'] . &amp;quot;&amp;lt;/li&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo &amp;quot;&amp;lt;/ol&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/section&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;section id=&amp;quot;prawy&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$wynik2 = mysqli_query($connect, $zapytanie2);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (!$wynik2) {&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;die(&amp;quot;Błąd zapytania: &amp;quot; . mysqli_error($connect));&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$wiersz2 = mysqli_fetch_assoc($wynik2);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo &amp;quot;&amp;lt;h2&amp;gt;Uczeń: &amp;quot; . $wiersz2['imie'] . &amp;quot; &amp;quot; . $wiersz2['nazwisko'] . &amp;quot;&amp;lt;/h2&amp;gt;&amp;lt;br&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$wynik3 = mysqli_query($connect, $zapytanie3);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (!$wynik3) {&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;die(&amp;quot;Błąd zapytania: &amp;quot; . mysqli_error($connect));&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$wiersz3 = mysqli_fetch_assoc($wynik3);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo &amp;quot;Średnia ocen z języka polskiego: &amp;quot; . round($wiersz3['srednia'], 2) . &amp;quot;&amp;lt;br&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/section&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/main&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;footer id=&amp;quot;stopka&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;p&amp;gt;Zespół Szkół Ponadgimnazjalnych&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;p&amp;gt;Stronę wykonał:&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/footer&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mysqli_close($connect);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i CSS&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;margin: 0;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;padding: 0;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
#baner {&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;background-color: #3a7ad9;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;text-align: center;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
#glowny {&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;display: flex;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;gap: 10px;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
#lewy {&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;background-color: #5d93e2;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;height: 400px;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;width: 30%;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
#prawy {&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;background-color: #88b0ec;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;height: 400px;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;width: 70%;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
#stopka {&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;background-color: #3a7ad9;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;text-align: right;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
#kontener {&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;max-width: 1200px;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;margin: 0 auto;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
h1 {&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;margin: 0;&lt;br /&gt;
&lt;br /&gt;
}</description>
<category>Egzaminy zawodowe</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/598996/sprawdzenie-kodu</guid>
<pubDate>Sun, 10 Aug 2025 11:26:38 +0000</pubDate>
</item>
<item>
<title>Git / Feedback / Nauka programowania</title>
<link>https://forum.pasja-informatyki.pl/598975/git-feedback-nauka-programowania</link>
<description>Cześć wszystkim jeszcze raz, uporządkowałem trochę gita, wrzuciłem kilka pierdół. Dopiero się uczę, proszę o feedback i komentarze. Z góry dzięki. &lt;a href=&quot;https://github.com/Jabloniaczek/E14-EE09-INF03&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://github.com/Jabloniaczek/E14-EE09-INF03&lt;/a&gt;. Mój poziom pozostawia wiele do życzenia i do poprawy, proszę więc o wyrozumiałość :)</description>
<category>Egzaminy zawodowe</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/598975/git-feedback-nauka-programowania</guid>
<pubDate>Fri, 01 Aug 2025 15:01:25 +0000</pubDate>
</item>
<item>
<title>Czy nauka programowania w czasie ai ma sens?   + cyber red team</title>
<link>https://forum.pasja-informatyki.pl/598960/czy-nauka-programowania-w-czasie-ai-ma-sens-cyber-red-team</link>
<description>Słuchajcie temat prosty albo może nie prosty, &amp;nbsp;chciałbym wybrać pracę i na pewno będzie to praca przed komputerem, chciałbym programować ale czy w czasach sztucznej inteligencji warto sie tego uczyć czy nie? I jesli tak to jakiego języka? &amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Edit. Tak oglądam filmy o cyberbezpieczeństwie blue team red team, ciekawe. Tylko Czy praca w tym zawodzie po kilka godzin dziennie jest realna? Nie żyję dla pracy i to jest zasada nr 1 dla mnie. Jeśli ktoś tu pracuje w tej specjalizacji to proszę o informacje jak wygląda w rzeczywistości taka praca.</description>
<category>Offtop</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/598960/czy-nauka-programowania-w-czasie-ai-ma-sens-cyber-red-team</guid>
<pubDate>Sun, 27 Jul 2025 08:15:04 +0000</pubDate>
</item>
<item>
<title>Zadania INF03 - Proszę o opinię , co byście zmienili , dodali.</title>
<link>https://forum.pasja-informatyki.pl/598936/zadania-inf03-prosze-o-opinie-co-byscie-zmienili-dodali</link>
<description>

&lt;p&gt;Cześć wszystkim,
&lt;br&gt;
wrzuciłem rozwiązania zadań egzaminacyjnych INF.03 (HTML, CSS, PHP, MySQL). Zrobiłem to głównie dla siebie, żeby się uczyć programowania, kodu, logiki – krok po kroku.&lt;/p&gt;



&lt;p&gt;&amp;nbsp;Nie udaję eksperta. To nie poradnik z YouTube. To moje prawdziwe próby, błędy i nauka.
&lt;br&gt;
&amp;nbsp;Staram się wszystko rozpisywać – co robi dany kod, dlaczego coś działa albo nie działa.&lt;/p&gt;



&lt;p&gt;Po co to wrzucam?
&lt;br&gt;
&amp;nbsp;Chcę się uczyć szybciej, ale nie sam – szukam feedbacku, wskazówek, krytyki, podpowiedzi:
&lt;br&gt;
– Gdzie robię błędy?
&lt;br&gt;
– Co można poprawić?
&lt;br&gt;
– Jak lepiej pisać kod i się uczyć?
&lt;br&gt;
– Co jeszcze dodać do tych rozwiązań?&lt;/p&gt;



&lt;p&gt;Jak ktoś też się uczy – zapraszam, może Wam to coś da. Jak ktoś jest lepszy – to serio: pomóż mi ogarnąć ten temat jak człowiek.&lt;/p&gt;



&lt;p&gt;&amp;nbsp;Repozytorium z moimi rozwiązaniami:
&lt;br&gt;
&amp;nbsp;&lt;a href=&quot;https://github.com/Jabloniaczek/INF03&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://github.com/Jabloniaczek/INF03&lt;/a&gt;&lt;/p&gt;</description>
<category>Egzaminy zawodowe</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/598936/zadania-inf03-prosze-o-opinie-co-byscie-zmienili-dodali</guid>
<pubDate>Wed, 23 Jul 2025 13:17:53 +0000</pubDate>
</item>
<item>
<title>Wybór kierunków studiów</title>
<link>https://forum.pasja-informatyki.pl/598889/wybor-kierunkow-studiow</link>
<description>Hej. Wybieram się na studia i zastanawiam się nad dwoma kierunkami:&lt;br /&gt;
- Informatyka w Inżynierii Komputerowej na PK&lt;br /&gt;
lub&lt;br /&gt;
- Elektronika i Telekomunikacja na AGH&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;Nie wiem, który kierunek wybrać bo jednak bardziej interesujący dla mnie jest syllabus IwIK ze względu na więcej informatyki i programowania. Z drugiej strony jednak AGH jest uczelnią o zdecydowanie lepszej renomie od PK. Na EiT jest troche programowania i informatyki jednak jest tego o wiele mniej niż na IwIK. Może ktoś studiuje lub studiował na tych kierunkach i może coś o nich powiedzieć? Jakie są plus i minusy tych kierunków?</description>
<category>Rozwój zawodowy, nauka, praca</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/598889/wybor-kierunkow-studiow</guid>
<pubDate>Tue, 15 Jul 2025 17:16:20 +0000</pubDate>
</item>
<item>
<title>Portal randkowy na czym budować</title>
<link>https://forum.pasja-informatyki.pl/598883/portal-randkowy-na-czym-budowac</link>
<description>Chciałbym stworzyć portal randkowy, pytanie czy systemy CMS w ogóle wchodzą w grę aby takis serwis działał poprawnie, bezpiecznie. Domyslam się że zwykłe Wordpressy Drupale raczej sie do tego nie nadają i musiałbym korzystać z pomocy programistów i budować od podstaw?</description>
<category>Offtop</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/598883/portal-randkowy-na-czym-budowac</guid>
<pubDate>Mon, 14 Jul 2025 11:08:34 +0000</pubDate>
</item>
<item>
<title>Jak nauczyć się robić proste szablony WWW?</title>
<link>https://forum.pasja-informatyki.pl/598857/jak-nauczyc-sie-robic-proste-szablony-www</link>
<description>Jak mogę nauczyć się robić od zera proste czytelne szablony, bez frameworków, z minimalną ilością JavaScriptu niezbędną do zapewnienia użytkownikowi dobrego doświadczenia, działających na najważniejszych przeglądarkach internetowych? Nie chcę pchać niepotrzebnego bloatu w swoje strony internetowe&lt;br /&gt;
&lt;br /&gt;
Chcę, aby robione przeze mnie szablony były w podobnym stylu i klimacie co ten na stronie slackware.com</description>
<category>HTML i CSS</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/598857/jak-nauczyc-sie-robic-proste-szablony-www</guid>
<pubDate>Thu, 03 Jul 2025 12:07:59 +0000</pubDate>
</item>
<item>
<title>./configure - CBUILD vs CHOST</title>
<link>https://forum.pasja-informatyki.pl/598826/configure-cbuild-vs-chost</link>
<description>Skąd skrypt ./configure wie, gdzie ma szukać bibliotek i nagłówków dla hosta zdefiniowanego w --host, jeśli parametry --build i --host różnią się od siebie?</description>
<category>Systemy operacyjne, programy</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/598826/configure-cbuild-vs-chost</guid>
<pubDate>Tue, 17 Jun 2025 14:42:57 +0000</pubDate>
</item>
<item>
<title>Budowanie paczek ze źródeł</title>
<link>https://forum.pasja-informatyki.pl/598819/budowanie-paczek-ze-zrodel</link>
<description>Potrzebuję czasem zbudować parę rzeczy ze źródeł. Czy mogę śmiało po wywaleniu się skryptu ./bootstrap lub make'a odpalić jeszcze raz takiego make czy bootstrapa bezpośrednio po tym jak się wywalił czy muszę zaczynać cały proces kompilacji od nowa?</description>
<category>Systemy operacyjne, programy</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/598819/budowanie-paczek-ze-zrodel</guid>
<pubDate>Sun, 15 Jun 2025 17:36:42 +0000</pubDate>
</item>
<item>
<title>Żywotność customowej klawiatury</title>
<link>https://forum.pasja-informatyki.pl/598792/zywotnosc-customowej-klawiatury</link>
<description>Hej, myślę by zbudować sobie customową klawiaturę na switchach Kailh Box White lub podobnych (muszę poczytać które najlepiej) głównie do pisania dluższych tekstów i do programowania. Interesuje mnie czy taka klawiatura mechaniczna przetrwa spokojnie co najmniej ładne 5 lat, jak te moje stare PS/2? Części będę brał od firmy Keychron, może keycapy sobie sprowadzę z aliexpress oczywiście to nie problem dla mnie je wymienić. Dziękuję i pozdrawiam</description>
<category>Sprzęt komputerowy</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/598792/zywotnosc-customowej-klawiatury</guid>
<pubDate>Fri, 06 Jun 2025 00:36:49 +0000</pubDate>
</item>
<item>
<title>Mała grupa tech-pasjonatów szuka nowych członków</title>
<link>https://forum.pasja-informatyki.pl/598784/mala-grupa-tech-pasjonatow-szuka-nowych-czlonkow</link>
<description>

&lt;p&gt;Hej!&lt;/p&gt;



&lt;p&gt;Może to brzmi trochę dziwnie, ale organizuję grupę dla ludzi, którzy podobnie jak ja siedzą wieczorami i czytają papery o nowych architekturach neuronowych zamiast oglądać Netflix. Albo implementują jakiś ciekawy algorytm &quot;dla zabawy&quot; w weekendy.&lt;/p&gt;



&lt;p&gt;Chodzi mi o to, że często mam wrażenie, że jestem otoczony ludźmi, dla których programowanie to tylko praca od 9 do 17. A ja lubię gadać o tym, jak można wykorzystać machine learning w nietypowych zastosowaniach, albo jaki wpływ na pole walki i współczesną wojnę może mieć AI. Czasem mam pomysł na jakiś projekt, ale ciężko znaleźć kogoś, kto by się tym podjarał na podobnym poziomie.&lt;/p&gt;



&lt;p&gt;Dlatego stworzyłem taką małą grupę - nazywam to &quot;Towarzystwo Filomatyczne 2.0&quot; (tak, wiem, brzmi pretensjonalnie, ale historia jest fajna). To nie jest żadna korporacyjna impreza networkingowa z wizytówkami i forced small talkiem. Po prostu grupa ludzi, którzy lubią technologię, mają pomysły na startupy i chcą o tym pogadać z kimś, kto nie będzie patrzył na nich jak na dziwaka.&lt;/p&gt;



&lt;p&gt;Spotykamy się regularnie, dyskutujemy o różnych tematach - od konkretnych technologii po pomysły biznesowe. Niektórzy z nas już pracują nad własnymi projektami, inni dopiero szukają inspiracji. Atmosfera jest luźna, ale merytoryczna.&lt;/p&gt;



&lt;p&gt;Jestem ciekaw czy znajdę tu kogoś, kto ma podobne podejście. Jeśli czasem zastanawiasz się &quot;co by było gdybym spróbował zrobić X&quot;, albo masz w głowie pomysł na coś fajnego ale nie wiesz od czego zacząć, to może warto zagadać.&lt;/p&gt;



&lt;p&gt;Więcej info i formularz zgłoszeniowy są na stronie do której link znajduję się poniżej&lt;/p&gt;



&lt;p&gt;&lt;a href=&quot;https://tally.so/r/w4Keed&quot; rel=&quot;external nofollow&quot;&gt;https://tally.so/r/w4Keed&lt;/a&gt;&lt;/p&gt;</description>
<category>Rozwój zawodowy, nauka, praca</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/598784/mala-grupa-tech-pasjonatow-szuka-nowych-czlonkow</guid>
<pubDate>Thu, 05 Jun 2025 13:55:40 +0000</pubDate>
</item>
<item>
<title>Ocenka Portfolio i feedback</title>
<link>https://forum.pasja-informatyki.pl/598695/ocenka-portfolio-i-feedback</link>
<description>

&lt;p&gt;&lt;strong&gt;Cześć!&lt;/strong&gt;
&lt;br&gt;
Od kilku lat pasjonuję się programowaniem i web developmentem.&lt;/p&gt;



&lt;p&gt;Niedawno ukończyłem technikum i przygotowałem swoje portfolio – myślę, że to już odpowiedni moment, by zacząć szukać pierwszej stałej pracy w branży.&lt;/p&gt;



&lt;p&gt;Będę bardzo wdzięczny za wszelkie opinie na temat mojego portfolio – każda wskazówka jest na wagę złota!&lt;img alt=&quot;smiley&quot; src=&quot;https://forum.pasja-informatyki.pl/qa-plugin/ckeditor4/plugins/smiley/images/regular_smile.png&quot; style=&quot;height:23px; width:23px&quot; title=&quot;smiley&quot;&gt;
&lt;br&gt;
⬇️⬇️⬇️⬇️
&lt;br&gt;
&lt;a rel=&quot;nofollow&quot; href=&quot;https://filszu.vercel.app/&quot;&gt;filszu.vercel.app&lt;/a&gt;
&lt;br&gt;
oraz github repo:&amp;nbsp;
&lt;br&gt;
&lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/Filszu/portfolio&quot;&gt;https://github.com/Filszu/portfolio&lt;/a&gt;
&lt;br&gt;

&lt;br&gt;
&lt;img alt=&quot;&quot; src=&quot;https://forum.pasja-informatyki.pl/?qa=blob&amp;amp;qa_blobid=15850818601998817565&quot; style=&quot;height:339px; width:600px&quot;&gt;&lt;/p&gt;</description>
<category>Nasze projekty</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/598695/ocenka-portfolio-i-feedback</guid>
<pubDate>Mon, 19 May 2025 17:53:39 +0000</pubDate>
</item>
<item>
<title>Symfony PHP - tworzenie admin panelu do sklepu internetowego</title>
<link>https://forum.pasja-informatyki.pl/598679/symfony-php-tworzenie-admin-panelu-do-sklepu-internetowego</link>
<description>

&lt;p&gt;Witam,&lt;/p&gt;



&lt;p&gt;Tworzyłem już system admin panelu do obsługi zleceń firmy serwisującej elektronikę. Stworzyłem ją w czystym php bez frameworków. Pytanie moje jest następujące:&lt;/p&gt;



&lt;p&gt;Czy do tworzenia admin panelu do zarzadzania sklepem, stanem magazynowym, wysyłkami i towarem lepiej tworzyć w symfony taki admin panel czy też w czystym php ? W symfony nie używam easy admin tylko bym budował wszystko od zera.&lt;/p&gt;



&lt;pre class=&quot;brush:php;&quot;&gt;
PHP CZY SYMFONY&lt;/pre&gt;

</description>
<category>PHP</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/598679/symfony-php-tworzenie-admin-panelu-do-sklepu-internetowego</guid>
<pubDate>Wed, 14 May 2025 19:16:20 +0000</pubDate>
</item>
<item>
<title>Programista mobilny - aplikacja żeglarska, społecznie przydatna</title>
<link>https://forum.pasja-informatyki.pl/598642/programista-mobilny-aplikacja-zeglarska-spolecznie-przydatna</link>
<description>

&lt;p&gt;Cześć!
&lt;br&gt;
Przez ostatnie miesiące wymyśliłem i rozpisałem projekt aplikacji mobilnej. Klimat żeglarski, społeczny, z ekologią w tle.&lt;/p&gt;



&lt;p&gt;Poszukuję młodego ambitnego lub starego wypalonego lecz równie ambitnego, szukającego wyzwania programisty. MVP android na start, następnie multi-platform.&lt;/p&gt;



&lt;p&gt;Aplikacja zawierać będzie m.in: Profile użytkowników, budowę postaci (punkty, zniżki), prosty komunikator, mapy z warstwami / filtrami, wyznaczanie, porównywanie tras. Punkty na mapie – część informacyjna, część interaktywna z możliwościami aktualizacji. Pogoda, podstrony z informacjami. Ogłoszenia, reklamy, podstronę produktową. Mini-gry, logi, wersja darmowa / abonament / zakupy dodatków.&lt;/p&gt;



&lt;p&gt;W razie powodzenia projektu, będzie to ciekawa pozycja w portfolio! Istnieje możliwość kontynuacji przy tworzeniu drugiej aplikacji.&lt;/p&gt;



&lt;p&gt;Oryginalna forma wynagrodzenia.&lt;/p&gt;



&lt;p&gt;&lt;a href=&quot;http://zielono-rozowe.pl/Z-R_Ogloszenie_Programista.pdf&quot; rel=&quot;nofollow&quot;&gt;Programista mobilny - OFERTA PRACY&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;Z serdecznym pozdrowieniem,
&lt;br&gt;
Zielono-Różowe&lt;/p&gt;</description>
<category>Ogłoszenia, zlecenia</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/598642/programista-mobilny-aplikacja-zeglarska-spolecznie-przydatna</guid>
<pubDate>Tue, 06 May 2025 18:52:47 +0000</pubDate>
</item>
<item>
<title>ocenianie na maturze z informatyki</title>
<link>https://forum.pasja-informatyki.pl/598636/ocenianie-na-maturze-z-informatyki</link>
<description>

&lt;p&gt;Dobry wieczór,&lt;/p&gt;



&lt;p&gt;mam pytanie odnośnie maturalnego zadania 2.2 z kwietnia 2020 roku z informatyki. Polegało ono na tym żeby napisać w pseudokodzie lub wybranym języku programowania (z niczego nowymi restrykcjami) algorytm, który odszukiwałby modę (wartość w tablicy, która występuję najczęściej) z danymi wejściowymi:&lt;/p&gt;



&lt;p&gt;n - liczba całkowita większa od 2;&lt;/p&gt;



&lt;p&gt;T[1, 2, ..., n] - tablica z n liczb całkowitych&amp;nbsp;i dokładnie jedną modą.&lt;/p&gt;



&lt;p&gt;Napisałem kod ale nie jestem pewien, czy otrzymałbym 5 punktów, czy 3 punkty.&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
def moda(T, n):
    l = 1
    while l &amp;lt; n:
        for i in range(n):
            m = 0
            for j in range(n):
                if T[i] == T[j]:
                    m+=1
                    if m == l:
                        moda = T[i]
                        break
            
        l += 1
    return moda&lt;/pre&gt;



&lt;p&gt;Przyznaję, kod jest dość prymitywny. Nie myślałem o złożoności czasowej (tu tj. sześcienna), bo nie była ona narzucona przez zadanie, jednak w schemacie punktowania 5 punktów otrzymało się w sposób następujący:&lt;/p&gt;



&lt;p&gt;2p. - za zliczenie liczby wystąpień każdej liczby,&lt;/p&gt;



&lt;p&gt;2p. -&amp;nbsp;&lt;span style=&quot;text-decoration: underline;&quot;&gt;za znalezienie największej liczby wystąpień&lt;/span&gt;,&lt;/p&gt;



&lt;p&gt;1p. - za znalezienie mody&lt;/p&gt;



&lt;p&gt;Jak widać w załączonym kodzie, mój zlicza &lt;em&gt;wszystkie możliwe (+1, co zrozumiałem po chwili namysłu nad moim kodem)&lt;/em&gt;&amp;nbsp;liczby wystąpień, ale nie znajduje&amp;nbsp;największej, tylko liczbę z największą liczbą wystąpień, czyli modę.&lt;/p&gt;



&lt;p&gt;Chcę się dowiedzieć, czy dostałbym maks. liczbę punktów czy ucięliby mi te dwa punkty za to, że nie mój kod nie znajduje czegoś, o czym nie było mowy w zadaniu. Bardzo tego potrzebuję, ponieważ chcę wiedzieć, czy mam zwracać na to uwagę. Jeżeli mój kod w jakimś stopniu odbiega nawet od pozostałych kryteriów, proszę o tym powiedzieć, jeśli zajdzie Was ochota.&lt;/p&gt;



&lt;p&gt;Pozdrawiam,&lt;/p&gt;



&lt;p&gt;skalmarklarnet0291&lt;/p&gt;</description>
<category>Rozwój zawodowy, nauka, praca</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/598636/ocenianie-na-maturze-z-informatyki</guid>
<pubDate>Mon, 05 May 2025 21:30:41 +0000</pubDate>
</item>
<item>
<title>Nokia - C++ Developer Summer Trainee</title>
<link>https://forum.pasja-informatyki.pl/598608/nokia-c-developer-summer-trainee</link>
<description>Witam,&lt;br /&gt;
&lt;br /&gt;
Mam zapytanie odnośnie testów w rekrutacji na stanowiska stażowe jako C++ Developer w Nokii. &lt;br /&gt;
Czy podchodził ktoś do takiego testu? &lt;br /&gt;
Jak on mniej więcej wygląda? &lt;br /&gt;
Jakie zagadnienia najlepiej sobie przed takim testem przypomnieć?&lt;br /&gt;
&lt;br /&gt;
Pozdrawiam</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/598608/nokia-c-developer-summer-trainee</guid>
<pubDate>Tue, 29 Apr 2025 22:22:59 +0000</pubDate>
</item>
<item>
<title>Pomysł na stronę skupu</title>
<link>https://forum.pasja-informatyki.pl/598576/pomysl-na-strone-skupu</link>
<description>Cześć wszystkim,&lt;br /&gt;
&lt;br /&gt;
Mam stronę internetową opartą na Wordpress woocommerce na której sprzedaje podręczniki szkolne. Chce wprowadzić funkcję skupu podręczników na bazie arkusza Excel. Chce żeby użytkownik wpisał numer isbn podręcznika w wyszukiwarkę oraz przycisk stanu książki (bardzo dobry, dobry, średni ) a aplikacja wyciągnie cenę podręcznika z bazy. Aby zamówienie mogło zostać zrealizowane koszyk musi mieć wartość min. 40zl. Dodatkowo użytkownik musi zrobić zdjęcie każdej książki. Jeżeli wszystkie warunki są spełnione użytkownik dostaje na maila etykietę wysyłkową i wysyła paczkę. Kiedy do mnie dotrze zatwierdzam zamówienie i robię przelew. Czy ma ktoś pomysł jak to zrobić ?</description>
<category>Nasze projekty</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/598576/pomysl-na-strone-skupu</guid>
<pubDate>Sat, 26 Apr 2025 14:08:24 +0000</pubDate>
</item>
</channel>
</rss>