155GIT1 / 4. cvičení / Příklady

Z GeoWikiCZ

Výpočet směrníku

K dispozici je textový soubor seznamu souřadnic body.txt ve formátu:

cislo_bodu Y X

Vypočítejte směrníky všech bodů ze stanoviska o souřadnicích (730288.89, 1054582.63). Směrníky udejte v grádové míře. Postup výpočtu zapište do souboru smernik.m.

  • Směrníky převeďte do intervalu <0; 400> gon.
  • Do výstupního souboru body_vystup.txt zapište na každý řádek:
cislo_bodu Y X smernik


Hvězdy 1

K dispozici je textový soubor stars1.txt ve formátu:

cislo_jevu  zenitova_vzdalenost[gon]  cas_jevu[hod min]

Soubor obsahuje v řádcích zenitové vzdálenosti poloh hvězd a časy, kdy tyto pozice hvězd v daný den nastanou (např. se může jednat o polohu, kdy je hvězda v daný den nejvýše nad obzorem apod.). Data ze souboru načtěte a určete:

  • které z jevů nastanou v noci;
  • které z jevů nastanou ve dne;
  • které z jevů budou pozorovatelné (pozorovatelné jevy hvězd jsou takové, které jsou nad obzorem a nastanou v noci).

Uvažujte, že den začíná v 6 hodin a končí v 18 hodin.

Jevy, které vyhovují zadané podmínce, vždy vypište na standardní výstup (Command Window).


Hvězdy 2

K dispozici je textový soubor stars2.txt ve formátu:

cislo_jevu  zenitova_vzdalenost[gon]  cas_jevu[hod min]  zacatek_dne[hod min]  konec_dne[hod min]

Soubor obsahuje v řádcích zenitové vzdálenosti poloh hvězd, časy, kdy tyto pozice hvězd v daný den nastanou (např. se může jednat o polohu, kdy je hvězda v daný den nejvýše nad obzorem apod.) a časy začátku dne [hod min] a konce dne [hod min] pro datum příslušného jevu. Data ze souboru načtěte a určete:

  • které z jevů nastanou v noci;
  • které z jevů nastanou ve dne;
  • které z jevů budou pozorovatelné (pozorovatelné jevy hvězd jsou takové, které jsou nad obzorem a nastanou v noci).

Jevy, které vyhovují zadané podmínce, vždy vypište na standardní výstup (Command Window). Ukázka formátu výstupu:

jevy v noci:        2 4 (atd.)
jevy ve dne:        1 3 (atd.)
pozorovatelne jevy: 4 5 (atd.)

Pozn.: Každý jev je uvažován pro jiné datum, proto jsou v datech ke každému jevu uvedeny jiné začátky a konce dne pro příslušné datum.


Úhly 1

Zadán je textový soubor uhly1.txt obsahující hodnoty úhlů v následujícím formátu:

cislo_uhlu  hodnota_uhlu[°]

Data ze souboru načtěte a proveďte následující úpravy:

  • Převeďte všechny hodnoty úhlů do základního intervalu <0°,360°). Uvažte, že tento proces je někdy nutno opakovat i vícekrát.
  • Zjistěte, o kolik period se původní hodnota daného úhlu lišila od základního intervalu (tj. kolikrát bylo potřeba úhel periodicky do základního intervalu převést). Počet period uložte do nového sloupce původní datové matice v následujícím smyslu:
    • byl-li původní úhel již v základním intervalu, počet period je roven 0;
    • byl-li původní úhel větší, než je rozsah základního intervalu, počet period bude kladné číslo;
    • byl-li původní úhel menší, než je rozsah základního intervalu, počet period bude záporné číslo.
  • Do výstupního souboru zakladniperioda1.txt zapište výsledky ve formátu:
cislo_uhlu  prevedena_hodnota_uhlu[°]  pocet_period

Vypsané hodnoty budou zarovnány do sloupců, úhly budou uvedeny ve stupních na 4 desetinná místa.


Úhly 2

Zadán je textový soubor uhly2.txt obsahující hodnoty úhlů ve formátu:

cislo_uhlu  hodnota_uhlu  kod_jednotek

kde kód jednotek má následující význam:

  • kod_jednotek = 1 pro úhel ve stupních;
  • kod_jednotek = 2 pro úhel v grádech.

Data ze souboru načtěte a proveďte následující úpravy:

  • Převeďte všechny hodnoty úhlů do základního intervalu <0°,360°) nebo <0,400)gon podle toho, ve které úhlové míře je daný úhel vyjádřen. Uvažte, že tento proces je někdy nutno opakovat i vícekrát.
  • Ke každému úhlu zjistěte, ve kterém je kvadrantu (1, 2, 3 nebo 4).
  • Do výstupního souboru zakladniperioda2.txt vypište setříděně nejprve všechny úhly, které byly zadány ve stupňové míře, následně zbylé úhly, které byly zadány v grádech; výsledky uveďte ve formátu:
cislo_uhlu  prevedena_hodnota_uhlu[° nebo gon]  kod_jednotek  kvadrant

Vypsané hodnoty budou zarovnány do sloupců, úhly budou uvedeny v příslušných jednotkách na 3 desetinná místa.


Výpočet výměr

K dispozici je textový soubor seznamu souřadnic body.txt ve formátu:

cislo_bodu y x

Vypočítejte výměru parcely ohraničené body seznamu. Postup výpočtu zapište do souboru vymera.m.

Pozn.: Pro výpočet lze použít L´Huillierovy vzorce, viz Výpočet plochy pomocí L´Huillierových vzorců

nebo:

kde je počet vrcholů plochy (pro je a pro je ; analogicky pro ).

Pozn.: Pro výpočet výměry musejí být lomové body parcely seřazeny za sebou po obvodu parcely (jinak vyjde výměra špatně), a to správným směrem (jinak vyjde výměra záporně). V podkladových souborech body.txt a body2.txt jsou body seřazeny správně.

Dále proveďte:

  1. Vypočtenou výměru ve skriptu zaokrouhlete na celé metry čtvereční a vypište na obrazovku.
  2. Ověřte správnost postupu výpočtu výměr - vytvořte nový datový soubor s několika málo body, které budou ohraničovat oblast, jejíž výměra je evidentní (např. čtverec: 0 0, 0 1, 1 1, 1 0).
  3. Doplňte do skriptu test na nedostatečný počet vstupních bodů (pokud počet bodů bude menší než 3, skript vypíše příslušné upozornění a skončí).

Jako rozšíření úlohy lze volitelně provést další výpočet (postup uložte do souboru vymery.m).

K dispozici je textový soubor body2.txt, který obsahuje parcelní čísla a souřadnice lomových bodů několika parcel.

Formát souboru je následující:

čp1       % parcelní číslo
čb1 y1 x1 % číslo bodu, souřadnice y, x 1.bodu
čb2 y2 x2
...
čbN yN xN
prázdný řádek
další parcela, nebo konec souboru

Pro představu je k dispozici náčrt (ve formátu pdf, orientace os S-JTSK).

Vypočítejte výměry všech parcel a zapište je do textového souboru vymery.txt ve formátu:

čp1 výměra1
čp2 výměra2
...
celková výměra

Pozn.: Výměry zapište do souboru zaokrouhlené na celé metry čtvereční.

Pro kontrolu výpočtu je k dispozici protokol o hromadném výpočtu výměr vytvořený v programu Kokeš: vymeryKokes.txt.