From c57c78754b95e54c48e24c15f360062697040088 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Kl=C3=A9ger?= Date: Sun, 12 Oct 2025 10:36:26 +0200 Subject: [PATCH] hw-01: Assignment description --- homework-01-two-circles/README.md | 98 +++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 homework-01-two-circles/README.md diff --git a/homework-01-two-circles/README.md b/homework-01-two-circles/README.md new file mode 100644 index 0000000..7814b09 --- /dev/null +++ b/homework-01-two-circles/README.md @@ -0,0 +1,98 @@ +Úkolem je napsat program, který rozhodne vzájemnou polohu 2 kružnic. + +Vstupem programu je zadání dvou kružnic. Každá kružnice je zadaná svým středem (x a y souřadnice) a poloměrem. Čísla jsou zadaná v pořadí x y r, jedná se o desetinná čísla. + +Výstupem programu je rozhodnutí o vzájemné poloze kružnic. Celkem může nastat 6 variant vzájemné polohy: + +- kružnice splývají, +- jedna kružnice leží zcela uvnitř druhé, +- jedna kružnice se zevnitř dotýká druhé, +- kružnice se protínají, +- kružnice se dotýkají zvenku, +- kružnice leží zcela mimo sebe. + +Program rozhodne o poloze a vypíše ji. Dále, pokud je to relevantní, program vypíše plochu překryvu kružnic. Formát výstupu pro všech 6 variant je uveden v ukázkovém běhu níže. Pozor, za výstupem je odřádkování (\n). + +Program musí být schopen detekovat nesprávný vstup. Pokud je na vstupu nesmyslné zadání, program to zjistí, vypíše chybové hlášení a ukončí se. Formát chybového hlášení je uveden v ukázce níže. Pozor, za případným chybovým hlášením je odřádkování (\n). Chybové hlášení zasílejte na standardní výstup (printf), nezasílejte jej na chybový výstup. Za chybu je považováno: + +- nečíselná hodnota nějaké souřadnice, +- nečíselná hodnota poloměru, +- poloměr nulový nebo záporný. + +**Ukázka práce programu:** + +``` +Zadejte parametry kruznice #1: +0 0 5 +Zadejte parametry kruznice #2: +0 10 5 +Vnejsi dotyk, zadny prekryv. +``` + +--- + +``` +Zadejte parametry kruznice #1: +0 0 3 +Zadejte parametry kruznice #2: +1.5 1.5 0.8 +Kruznice #2 lezi uvnitr kruznice #1, prekryv: 2.010619 +``` + +--- + +``` +Zadejte parametry kruznice #1: +0 0 4 +Zadejte parametry kruznice #2: +2 0 2 +Vnitrni dotyk, kruznice #2 lezi uvnitr kruznice #1, prekryv: 12.566371 +``` + +--- + +``` +Zadejte parametry kruznice #1: +0 0 5 +Zadejte parametry kruznice #2: +100 100 10 +Kruznice lezi vne sebe, zadny prekryv. +``` + +--- + +``` +Zadejte parametry kruznice #1: +0 0 4.5 +Zadejte parametry kruznice #2: +10 10 15 +Kruznice se protinaji, prekryv: 37.475800 +``` + +--- + +``` +Zadejte parametry kruznice #1: +-10.25 -20.5 4 +Zadejte parametry kruznice #2: +-10.25 -20.5 4 +Kruznice splyvaji, prekryv: 50.265482 +``` + +--- + +``` +Zadejte parametry kruznice #1: +0 0 -2 +Nespravny vstup. +``` + +--- + +``` +Zadejte parametry kruznice #1: +0 12 5 +Zadejte parametry kruznice #2: +3 7 abc +Nespravny vstup. +```