Neprihlásený používateľ |

Špecifikácia zadania

Napíšte program v jazyku C, ktorý bude simulovať proces pristávania sondy na zvolenom vesmírnom objekte (napr. Mesiac). Budeme používať zjednodušený fyzikálny model a kvôli jednoduchosti/prehľadnosti budeme zámerne viaceré fyzikálne zákonistosti zanedbávať. Váš program bude fungovať ako konzolová/terminálová aplikácia.

Cieľom zadania je formátovaný výpis informácií do konzoly, ktoré popisujú simuláciu pristávania sondy pri dodaných vstupných parametroch. Váš program vypisuje údaje na štandardný výstup v presnom formáte podľa pokynov zadania. Hlavná inšpirácia pri tvorbe zadania bola čerpaná z dokumentu Simulating a Lunar Landing od autorov z Australian Space Academy. Odporúčame si túto literatúru preštudovať, nakoľko vám určite pomôže pochopiť problémy a vyriešiť otázky súvisiace so zadaním.

Pristávanie sondy

Najprv trochu teórie potrebnej na vyriešenie hlavného problému. Na proces pristávania sondy na zvolenom vesmírnom objekte (napr. Mesiac) sa môžeme pozerať ako na proces, ktorý pozostáva z 2 hlavných fáz:

  1. Fáza voľného pádu (free fall)
  2. Fáza riadeného pristávania (assisted landing)
Fáza voľného pádu

Na začiatku simulácie máme sondu, ktorej cieľom je pristátie na povrchu vesmírneho objektu. Sonda sa na začiatku simulácie nachádza vo výške $ H $ nad povrchom a padá voľným pádom na povrch.

Na začiatku tejto fázy má sonda počiatočnú rýchlosť $ v_0 $ (v zadaní budeme počítať s hodnotou $ v_0 $ = 0 m/s). Zrýchlenie voľného pádu sondy je vyjadrené pomocou parametra $ g $ (je to gravitačné zrýchlenie vesmírneho objektu, na ktorý sonda pristáva). V tejto fáze sa bude zvyšovať rýchlosť padajúcej sondy v zápornom smere (ak by sa sonda vzďaľovala od povrchu, jej rýchlosť by bola kladná) a výška sondy nad povrchom sa bude postupne zmenšovať.

Počas voľného pádu sondy nastane moment, kedy sonda musí zapnúť svoj motor, aby dokázala jeho ťahom vykompenzovať svoj voľný pád a bezpečne tak pristáť. Tento moment prichádza v čase, keď sonda prekročí kritickú výšku $ d_e $ nad povrchom. Dĺžka trajektórie voľného pádu sondy od počiatočnej výšky $ H $ až do úrovne $ d_e $ nad povrchom sa bude označovať ako $ d_f $.

Pre bezpečné pristátie je kľúčové vypočítať optimálnu hodnotu $ d_f $. Urobíme tak pomocou vzťahu (1).

\begin{equation} d_f = \frac{(A-g) \cdot H}{A} \end{equation}

Parameter $ A $ vo vzťahu (1) predstavuje zrýchlenie sondy po zapnutí jej motora a vypočítame ho vzťahom (2). Zrýchlenie $ A $ má opačný smer ako zrýchlenie $ g $. Parameter $ T $ (z angl. thrust) je ťah motora (v N) a $ m $ je hmotnosť sondy (v kg). Budeme predpokladať, že $ T $ je počas celej simulácie konštantné.

\begin{equation} A = \frac{T}{m} \end{equation}

Celková dráha, ktorú sonda prejde od začiatku simulácie až po pristátie sa teda skladá z dvoch častí, čo je vyjadrené vzťahom (3).

\begin{equation} d_f + d_e = H \end{equation}

Od momentu kedy sonda svojim klesaním prekoná kritickú výšku $ d_e $ začína 2. fáza - riadené pristávanie.



Obrázok 1: Ilustrácia situácie vo fáze voľného pádu
Fáza riadeného pristávania

Pri dosiahnutí kritickej výšky $ d_e $ nad povrchom, musí sonda zapnúť svoj motor a zabrzdiť tak strmý pád. Túto fázu označujeme ako motorom riadený pristávací manéver. Je dôležité si uvedomiť, že ak by sonda nezapla svoj motor v momente prekonania výšky $ d_e $, nestihne spomaliť na bezpečnú rýchlosť a havaruje.

Sonda drží svoj motor zapnutý až do momentu, kedy jej aktuálna zostupová rýchlosť nebude v intervale $ [v_{soft},0) $, čo považujeme za bezpečnú rýchlosť klesania, ktorá zaručí bezpečné pristátie. V realite by parameter $ v_{soft} $ mal byť dostatočne malé záporné číslo, aby kontakt sondy s povrchom nebol príliš silný a nespôsobil jej haváriu. Avšak $ v_{soft} $ vstúpi do vášho programu ako parameter zadávaný z klávesnice.

Od momentu dosiahnutia bezpečnej rýchlosti, jemne riadime pristávanie pomocou vhodného zapínania/vypínania motora tak, aby sme stále udržovali bezpečnú rýchlosť v intervale $ [v_{soft},0) $ (vyhneme sa tak havárii alebo nechcenému vzďaľovaniu sa sondy od povrchu). Toto jemné riadenie zostupu vykonávame až po kontakt s povrchom. Simulácia končí v momente pristátia.



Obrázok 2: Ilustrácia situácie vo fáze riadeného pristávania

Na obrázku 3 vidíme časový vývoj niektorých sledovaných veličín počas pristávania sondy. Môžeme si všimnúť ako sa rýchlosť sondy (fialová krivka), ktorá vo fáze voľného pádu nadobudla výrazne zápornú hodnotu, vplyvom riadeného pristávania pomaly približuje k hodnote 0. Rovnako vidíme ako sa v čase zmenšuje výška sondy nad povrchom (zelená krivka) a ako sa vo fáze tesne pred pristátím striedavo zapína/vypína motor, aby reguloval bezpečnú zostupovú rýchlosť (červená krivka).



Obrázok 3: Graf vývoja sledovaných veličín počas pristávania sondy. (Zdroj: Simulating a Lunar Landing)

Vstup

Zoznam vstupných parametrov programu, ktoré sú zadané z klávesnice:

$ m $  hmotnosť sondy (kg)
$ T $  ťah motora (N)
$ H $  počiatočná výška sondy nad povrchom vesmírneho objektu/planéty (m)
$ g $  gravitačné zrýchlenie vesmírneho objektu/planéty (m/$ s^2 $)
$ v_{soft} $  maximálna povolená rýchlosť sondy v okamihu pristávania potrebná na bezpečné pristátie (m/s)
$ \Delta t $  časový krok simulácie, v každom kroku sa vypočíta a zobrazí stav simulácie (s)

Pre každú simuláciu platí $v_{0}=0$. Pre všetky parametre použite dátový typ double, aby ste mohli pracovať s desatinnou presnosťou vyžadovanou vo výpisoch simulácie. Všetky vstupné parametre sa musia načítať zo štandardného vstupu (z klávesnice) v rovnakom poradí ako sú uvedené v zozname vyššie.

Výstup

Cieľom zadania je formátovaný výpis požadovaných údajov, ktoré sa týkajú procesu pristávania sondy. Váš program vypisuje údaje v 4 krokoch.

1. Výpis všetkých vstupných parametrov
Ako prvé sa vypíšu všetky parametre, ktoré boli do programu načítané (viď zoznam vstupných parametrov vyššie).


Formát výpisu:

m=17110.000
T=90000.000
H=126.000
g=4.000
vsoft=-5.000
dt=0.040

Musíte dodržať stanovený formát. Poradie parametrov sa nesmie vo výpise meniť. Parametre sú oddelené novým riadkom. Každé číslo je vypísané na 3 desatinné miesta. Výpis neobsahuje žiadne medzery. Parametre sú udané a vypísané v ich základných jednotkách. Výpis dt predstavuje parameter $ \Delta t $.


2. Výpis hodnoty kritickej výšky $ d_e $


Formát výpisu:

de=95.816

Musíte dodržať stanovený formát. Hodnotu $ d_e $ musíte najprv vypočítať zo vstupných parametrov. Výpis neobsahuje medzery a je ukončený novým riadkom. Hodnota je zobrazená na 3 desatinné miesta.


3. Výpis simulácie pristávania sondy s časovým krokom $ \Delta t$

Toto je najdôležitejšia časť zadania, ohodnotená najväčším počtom bodov. Výpis simulácie prebieha od počiatočnej výšky $ H $ až po kontakt sondy s povrchom. Časový krok pre výpis simulácie je daný parametrom $ \Delta t $. Motor sondy je na začiatku simulácie vypnutý (aj v prípade, keď by sonda začínala v počiatočnej výške, pre ktorú platí $H < d_e$, pretože počiatočná rýchlosť sondy je 0 m/s).

V každej iterácii simulácie sa vykonajú kroky v tomto poradí:

1. Výpočet stavu motora (môže byť 0/1). Tento stav bude platný počas celého trvania časového úseku $ \Delta t $. Stav motora sa určí podľa aktuálnej výšky sondy a pri zohľadnení $ v_{soft}$, t.j. ak pre aktuálnu výšku sondy platí $ h \leq d_e $, tak sonda zapne svoj motor ak platí $ v \lt v_{soft}$.

2. Vypíše sa štvorica $ \{s,h,t,v\} $ podľa stanoveného formátu.

  • $ s $ - stav motora (0 - vypnutý, 1 - zapnutý)
  • $ h $ - aktuálna výška sondy nad povrchom (na začiatku časového úseku $ \Delta t $)
  • $ t $ - uplynutý čas simulácie (na začiatku časového úseku $ \Delta t $)
  • $ v $ - aktuálna rýchlosť sondy (na začiatku časového úseku $ \Delta t $)

3. Výpočet novej výšky $ h $ , t.j. výšky na konci časového úseku $ \Delta t $, podľa vzorca (4). Parameter $ a $ predstavuje zrýchlenie sondy.

\begin{equation} h_{new} = h + v \cdot \Delta t + \frac{a \cdot \Delta t^2}{2} \end{equation}

4. Výpočet novej rýchlosti $ v $ , t.j. rýchlosti na konci časového úseku $ \Delta t $, podľa vzorca (5). Parameter $ a $ predstavuje zrýchlenie sondy.

\begin{equation} v_{new} = v + a \cdot \Delta t \end{equation}

5. Aktualizácia uplynutého času simulácie o časový úsek $ \Delta t $.

Pre uvedené vzťahy (4) a (5) je potrebné zaviesť nasledovnú substitúciu:

  • ak je motor sondy vypnutý, tak $ a = -g $
  • ak je motor sondy zapnutý, tak $ a = A - g $


Formát výpisu:

s=0 h=0126.000 t=0.000 v=0.000
s=0 h=0125.997 t=0.040 v=-0.160
s=0 h=0125.987 t=0.080 v=-0.320
s=0 h=0125.971 t=0.120 v=-0.480
s=0 h=0125.949 t=0.160 v=-0.640
s=0 h=0125.920 t=0.200 v=-0.800
s=0 h=0125.885 t=0.240 v=-0.960
s=0 h=0125.843 t=0.280 v=-1.120
s=0 h=0125.795 t=0.320 v=-1.280
s=0 h=0125.741 t=0.360 v=-1.440
s=0 h=0125.680 t=0.400 v=-1.600
s=0 h=0125.613 t=0.440 v=-1.760
s=0 h=0125.539 t=0.480 v=-1.920
s=0 h=0125.459 t=0.520 v=-2.080
s=0 h=0125.373 t=0.560 v=-2.240
s=0 h=0125.280 t=0.600 v=-2.400
s=0 h=0125.181 t=0.640 v=-2.560
s=0 h=0125.075 t=0.680 v=-2.720
s=0 h=0124.963 t=0.720 v=-2.880
s=0 h=0124.845 t=0.760 v=-3.040
s=0 h=0124.720 t=0.800 v=-3.200
s=0 h=0124.589 t=0.840 v=-3.360
s=0 h=0124.451 t=0.880 v=-3.520
s=0 h=0124.307 t=0.920 v=-3.680
s=0 h=0124.157 t=0.960 v=-3.840
s=0 h=0124.000 t=1.000 v=-4.000
s=0 h=0123.837 t=1.040 v=-4.160
s=0 h=0123.667 t=1.080 v=-4.320
s=0 h=0123.491 t=1.120 v=-4.480
s=0 h=0123.309 t=1.160 v=-4.640
s=0 h=0123.120 t=1.200 v=-4.800
s=0 h=0122.925 t=1.240 v=-4.960
s=0 h=0122.723 t=1.280 v=-5.120
s=0 h=0122.515 t=1.320 v=-5.280
s=0 h=0122.301 t=1.360 v=-5.440
s=0 h=0122.080 t=1.400 v=-5.600
s=0 h=0121.853 t=1.440 v=-5.760
s=0 h=0121.619 t=1.480 v=-5.920
s=0 h=0121.379 t=1.520 v=-6.080
s=0 h=0121.133 t=1.560 v=-6.240
s=0 h=0120.880 t=1.600 v=-6.400
s=0 h=0120.621 t=1.640 v=-6.560
s=0 h=0120.355 t=1.680 v=-6.720
s=0 h=0120.083 t=1.720 v=-6.880
s=0 h=0119.805 t=1.760 v=-7.040
s=0 h=0119.520 t=1.800 v=-7.200
s=0 h=0119.229 t=1.840 v=-7.360
s=0 h=0118.931 t=1.880 v=-7.520
s=0 h=0118.627 t=1.920 v=-7.680
s=0 h=0118.317 t=1.960 v=-7.840
s=0 h=0118.000 t=2.000 v=-8.000
s=0 h=0117.677 t=2.040 v=-8.160
s=0 h=0117.347 t=2.080 v=-8.320
s=0 h=0117.011 t=2.120 v=-8.480
s=0 h=0116.669 t=2.160 v=-8.640
s=0 h=0116.320 t=2.200 v=-8.800
s=0 h=0115.965 t=2.240 v=-8.960
s=0 h=0115.603 t=2.280 v=-9.120
s=0 h=0115.235 t=2.320 v=-9.280
s=0 h=0114.861 t=2.360 v=-9.440
s=0 h=0114.480 t=2.400 v=-9.600
s=0 h=0114.093 t=2.440 v=-9.760
s=0 h=0113.699 t=2.480 v=-9.920
s=0 h=0113.299 t=2.520 v=-10.080
s=0 h=0112.893 t=2.560 v=-10.240
s=0 h=0112.480 t=2.600 v=-10.400
s=0 h=0112.061 t=2.640 v=-10.560
s=0 h=0111.635 t=2.680 v=-10.720
s=0 h=0111.203 t=2.720 v=-10.880
s=0 h=0110.765 t=2.760 v=-11.040
s=0 h=0110.320 t=2.800 v=-11.200
s=0 h=0109.869 t=2.840 v=-11.360
s=0 h=0109.411 t=2.880 v=-11.520
s=0 h=0108.947 t=2.920 v=-11.680
s=0 h=0108.477 t=2.960 v=-11.840
s=0 h=0108.000 t=3.000 v=-12.000
s=0 h=0107.517 t=3.040 v=-12.160
s=0 h=0107.027 t=3.080 v=-12.320
s=0 h=0106.531 t=3.120 v=-12.480
s=0 h=0106.029 t=3.160 v=-12.640
s=0 h=0105.520 t=3.200 v=-12.800
s=0 h=0105.005 t=3.240 v=-12.960
s=0 h=0104.483 t=3.280 v=-13.120
s=0 h=0103.955 t=3.320 v=-13.280
s=0 h=0103.421 t=3.360 v=-13.440
s=0 h=0102.880 t=3.400 v=-13.600
s=0 h=0102.333 t=3.440 v=-13.760
s=0 h=0101.779 t=3.480 v=-13.920
s=0 h=0101.219 t=3.520 v=-14.080
s=0 h=0100.653 t=3.560 v=-14.240
s=0 h=0100.080 t=3.600 v=-14.400
s=0 h=0099.501 t=3.640 v=-14.560
s=0 h=0098.915 t=3.680 v=-14.720
s=0 h=0098.323 t=3.720 v=-14.880
s=0 h=0097.725 t=3.760 v=-15.040
s=0 h=0097.120 t=3.800 v=-15.200
s=0 h=0096.509 t=3.840 v=-15.360
s=0 h=0095.891 t=3.880 v=-15.520
s=1 h=0095.267 t=3.920 v=-15.680
s=1 h=0094.641 t=3.960 v=-15.630
s=1 h=0094.017 t=4.000 v=-15.579
s=1 h=0093.395 t=4.040 v=-15.529
s=1 h=0092.775 t=4.080 v=-15.478
s=1 h=0092.156 t=4.120 v=-15.428
s=1 h=0091.540 t=4.160 v=-15.378
s=1 h=0090.926 t=4.200 v=-15.327
s=1 h=0090.314 t=4.240 v=-15.277
s=1 h=0089.704 t=4.280 v=-15.226
s=1 h=0089.096 t=4.320 v=-15.176
s=1 h=0088.490 t=4.360 v=-15.126
s=1 h=0087.886 t=4.400 v=-15.075
s=1 h=0087.284 t=4.440 v=-15.025
s=1 h=0086.684 t=4.480 v=-14.974
s=1 h=0086.086 t=4.520 v=-14.924
s=1 h=0085.490 t=4.560 v=-14.874
s=1 h=0084.896 t=4.600 v=-14.823
s=1 h=0084.304 t=4.640 v=-14.773
s=1 h=0083.714 t=4.680 v=-14.722
s=1 h=0083.126 t=4.720 v=-14.672
s=1 h=0082.541 t=4.760 v=-14.622
s=1 h=0081.957 t=4.800 v=-14.571
s=1 h=0081.375 t=4.840 v=-14.521
s=1 h=0080.795 t=4.880 v=-14.470
s=1 h=0080.217 t=4.920 v=-14.420
s=1 h=0079.641 t=4.960 v=-14.370
s=1 h=0079.068 t=5.000 v=-14.319
s=1 h=0078.496 t=5.040 v=-14.269
s=1 h=0077.926 t=5.080 v=-14.218
s=1 h=0077.358 t=5.120 v=-14.168
s=1 h=0076.793 t=5.160 v=-14.117
s=1 h=0076.229 t=5.200 v=-14.067
s=1 h=0075.667 t=5.240 v=-14.017
s=1 h=0075.108 t=5.280 v=-13.966
s=1 h=0074.550 t=5.320 v=-13.916
s=1 h=0073.994 t=5.360 v=-13.865
s=1 h=0073.441 t=5.400 v=-13.815
s=1 h=0072.889 t=5.440 v=-13.765
s=1 h=0072.340 t=5.480 v=-13.714
s=1 h=0071.792 t=5.520 v=-13.664
s=1 h=0071.247 t=5.560 v=-13.613
s=1 h=0070.703 t=5.600 v=-13.563
s=1 h=0070.162 t=5.640 v=-13.513
s=1 h=0069.622 t=5.680 v=-13.462
s=1 h=0069.085 t=5.720 v=-13.412
s=1 h=0068.549 t=5.760 v=-13.361
s=1 h=0068.016 t=5.800 v=-13.311
s=1 h=0067.484 t=5.840 v=-13.261
s=1 h=0066.955 t=5.880 v=-13.210
s=1 h=0066.427 t=5.920 v=-13.160
s=1 h=0065.902 t=5.960 v=-13.109
s=1 h=0065.379 t=6.000 v=-13.059
s=1 h=0064.857 t=6.040 v=-13.009
s=1 h=0064.338 t=6.080 v=-12.958
s=1 h=0063.821 t=6.120 v=-12.908
s=1 h=0063.305 t=6.160 v=-12.857
s=1 h=0062.792 t=6.200 v=-12.807
s=1 h=0062.281 t=6.240 v=-12.757
s=1 h=0061.771 t=6.280 v=-12.706
s=1 h=0061.264 t=6.320 v=-12.656
s=1 h=0060.759 t=6.360 v=-12.605
s=1 h=0060.256 t=6.400 v=-12.555
s=1 h=0059.755 t=6.440 v=-12.505
s=1 h=0059.255 t=6.480 v=-12.454
s=1 h=0058.758 t=6.520 v=-12.404
s=1 h=0058.263 t=6.560 v=-12.353
s=1 h=0057.770 t=6.600 v=-12.303
s=1 h=0057.279 t=6.640 v=-12.253
s=1 h=0056.790 t=6.680 v=-12.202
s=1 h=0056.303 t=6.720 v=-12.152
s=1 h=0055.818 t=6.760 v=-12.101
s=1 h=0055.335 t=6.800 v=-12.051
s=1 h=0054.854 t=6.840 v=-12.001
s=1 h=0054.375 t=6.880 v=-11.950
s=1 h=0053.898 t=6.920 v=-11.900
s=1 h=0053.423 t=6.960 v=-11.849
s=1 h=0052.950 t=7.000 v=-11.799
s=1 h=0052.479 t=7.040 v=-11.749
s=1 h=0052.010 t=7.080 v=-11.698
s=1 h=0051.543 t=7.120 v=-11.648
s=1 h=0051.078 t=7.160 v=-11.597
s=1 h=0050.615 t=7.200 v=-11.547
s=1 h=0050.154 t=7.240 v=-11.497
s=1 h=0049.695 t=7.280 v=-11.446
s=1 h=0049.238 t=7.320 v=-11.396
s=1 h=0048.784 t=7.360 v=-11.345
s=1 h=0048.331 t=7.400 v=-11.295
s=1 h=0047.880 t=7.440 v=-11.245
s=1 h=0047.431 t=7.480 v=-11.194
s=1 h=0046.985 t=7.520 v=-11.144
s=1 h=0046.540 t=7.560 v=-11.093
s=1 h=0046.097 t=7.600 v=-11.043
s=1 h=0045.656 t=7.640 v=-10.992
s=1 h=0045.218 t=7.680 v=-10.942
s=1 h=0044.781 t=7.720 v=-10.892
s=1 h=0044.346 t=7.760 v=-10.841
s=1 h=0043.914 t=7.800 v=-10.791
s=1 h=0043.483 t=7.840 v=-10.740
s=1 h=0043.054 t=7.880 v=-10.690
s=1 h=0042.628 t=7.920 v=-10.640
s=1 h=0042.203 t=7.960 v=-10.589
s=1 h=0041.781 t=8.000 v=-10.539
s=1 h=0041.360 t=8.040 v=-10.488
s=1 h=0040.942 t=8.080 v=-10.438
s=1 h=0040.525 t=8.120 v=-10.388
s=1 h=0040.111 t=8.160 v=-10.337
s=1 h=0039.698 t=8.200 v=-10.287
s=1 h=0039.288 t=8.240 v=-10.236
s=1 h=0038.879 t=8.280 v=-10.186
s=1 h=0038.473 t=8.320 v=-10.136
s=1 h=0038.068 t=8.360 v=-10.085
s=1 h=0037.666 t=8.400 v=-10.035
s=1 h=0037.266 t=8.440 v=-9.984
s=1 h=0036.867 t=8.480 v=-9.934
s=1 h=0036.471 t=8.520 v=-9.884
s=1 h=0036.077 t=8.560 v=-9.833
s=1 h=0035.684 t=8.600 v=-9.783
s=1 h=0035.294 t=8.640 v=-9.732
s=1 h=0034.906 t=8.680 v=-9.682
s=1 h=0034.519 t=8.720 v=-9.632
s=1 h=0034.135 t=8.760 v=-9.581
s=1 h=0033.753 t=8.800 v=-9.531
s=1 h=0033.373 t=8.840 v=-9.480
s=1 h=0032.994 t=8.880 v=-9.430
s=1 h=0032.618 t=8.920 v=-9.380
s=1 h=0032.244 t=8.960 v=-9.329
s=1 h=0031.872 t=9.000 v=-9.279
s=1 h=0031.502 t=9.040 v=-9.228
s=1 h=0031.134 t=9.080 v=-9.178
s=1 h=0030.768 t=9.120 v=-9.128
s=1 h=0030.403 t=9.160 v=-9.077
s=1 h=0030.041 t=9.200 v=-9.027
s=1 h=0029.681 t=9.240 v=-8.976
s=1 h=0029.323 t=9.280 v=-8.926
s=1 h=0028.967 t=9.320 v=-8.876
s=1 h=0028.613 t=9.360 v=-8.825
s=1 h=0028.261 t=9.400 v=-8.775
s=1 h=0027.911 t=9.440 v=-8.724
s=1 h=0027.563 t=9.480 v=-8.674
s=1 h=0027.217 t=9.520 v=-8.624
s=1 h=0026.873 t=9.560 v=-8.573
s=1 h=0026.531 t=9.600 v=-8.523
s=1 h=0026.192 t=9.640 v=-8.472
s=1 h=0025.854 t=9.680 v=-8.422
s=1 h=0025.518 t=9.720 v=-8.372
s=1 h=0025.184 t=9.760 v=-8.321
s=1 h=0024.852 t=9.800 v=-8.271
s=1 h=0024.522 t=9.840 v=-8.220
s=1 h=0024.194 t=9.880 v=-8.170
s=1 h=0023.869 t=9.920 v=-8.120
s=1 h=0023.545 t=9.960 v=-8.069
s=1 h=0023.223 t=10.000 v=-8.019
s=1 h=0022.903 t=10.040 v=-7.968
s=1 h=0022.586 t=10.080 v=-7.918
s=1 h=0022.270 t=10.120 v=-7.867
s=1 h=0021.956 t=10.160 v=-7.817
s=1 h=0021.645 t=10.200 v=-7.767
s=1 h=0021.335 t=10.240 v=-7.716
s=1 h=0021.027 t=10.280 v=-7.666
s=1 h=0020.722 t=10.320 v=-7.615
s=1 h=0020.418 t=10.360 v=-7.565
s=1 h=0020.116 t=10.400 v=-7.515
s=1 h=0019.817 t=10.440 v=-7.464
s=1 h=0019.519 t=10.480 v=-7.414
s=1 h=0019.224 t=10.520 v=-7.363
s=1 h=0018.930 t=10.560 v=-7.313
s=1 h=0018.639 t=10.600 v=-7.263
s=1 h=0018.349 t=10.640 v=-7.212
s=1 h=0018.062 t=10.680 v=-7.162
s=1 h=0017.776 t=10.720 v=-7.111
s=1 h=0017.493 t=10.760 v=-7.061
s=1 h=0017.211 t=10.800 v=-7.011
s=1 h=0016.932 t=10.840 v=-6.960
s=1 h=0016.655 t=10.880 v=-6.910
s=1 h=0016.379 t=10.920 v=-6.859
s=1 h=0016.106 t=10.960 v=-6.809
s=1 h=0015.834 t=11.000 v=-6.759
s=1 h=0015.565 t=11.040 v=-6.708
s=1 h=0015.298 t=11.080 v=-6.658
s=1 h=0015.033 t=11.120 v=-6.607
s=1 h=0014.769 t=11.160 v=-6.557
s=1 h=0014.508 t=11.200 v=-6.507
s=1 h=0014.249 t=11.240 v=-6.456
s=1 h=0013.991 t=11.280 v=-6.406
s=1 h=0013.736 t=11.320 v=-6.355
s=1 h=0013.483 t=11.360 v=-6.305
s=1 h=0013.232 t=11.400 v=-6.255
s=1 h=0012.983 t=11.440 v=-6.204
s=1 h=0012.736 t=11.480 v=-6.154
s=1 h=0012.490 t=11.520 v=-6.103
s=1 h=0012.247 t=11.560 v=-6.053
s=1 h=0012.006 t=11.600 v=-6.003
s=1 h=0011.767 t=11.640 v=-5.952
s=1 h=0011.530 t=11.680 v=-5.902
s=1 h=0011.295 t=11.720 v=-5.851
s=1 h=0011.062 t=11.760 v=-5.801
s=1 h=0010.831 t=11.800 v=-5.751
s=1 h=0010.602 t=11.840 v=-5.700
s=1 h=0010.375 t=11.880 v=-5.650
s=1 h=0010.150 t=11.920 v=-5.599
s=1 h=0009.927 t=11.960 v=-5.549
s=1 h=0009.706 t=12.000 v=-5.499
s=1 h=0009.487 t=12.040 v=-5.448
s=1 h=0009.270 t=12.080 v=-5.398
s=1 h=0009.055 t=12.120 v=-5.347
s=1 h=0008.842 t=12.160 v=-5.297
s=1 h=0008.631 t=12.200 v=-5.247
s=1 h=0008.423 t=12.240 v=-5.196
s=1 h=0008.216 t=12.280 v=-5.146
s=1 h=0008.011 t=12.320 v=-5.095
s=1 h=0007.808 t=12.360 v=-5.045
s=0 h=0007.607 t=12.400 v=-4.995
s=1 h=0007.404 t=12.440 v=-5.155
s=1 h=0007.199 t=12.480 v=-5.104
s=1 h=0006.996 t=12.520 v=-5.054
s=1 h=0006.795 t=12.560 v=-5.003
s=0 h=0006.596 t=12.600 v=-4.953
s=1 h=0006.394 t=12.640 v=-5.113
s=1 h=0006.191 t=12.680 v=-5.062
s=1 h=0005.989 t=12.720 v=-5.012
s=0 h=0005.790 t=12.760 v=-4.962
s=1 h=0005.588 t=12.800 v=-5.122
s=1 h=0005.384 t=12.840 v=-5.071
s=1 h=0005.183 t=12.880 v=-5.021
s=0 h=0004.983 t=12.920 v=-4.970
s=1 h=0004.781 t=12.960 v=-5.130
s=1 h=0004.577 t=13.000 v=-5.080
s=1 h=0004.374 t=13.040 v=-5.030
s=0 h=0004.174 t=13.080 v=-4.979
s=1 h=0003.972 t=13.120 v=-5.139
s=1 h=0003.767 t=13.160 v=-5.089
s=1 h=0003.565 t=13.200 v=-5.038
s=0 h=0003.364 t=13.240 v=-4.988
s=1 h=0003.161 t=13.280 v=-5.148
s=1 h=0002.956 t=13.320 v=-5.098
s=1 h=0002.754 t=13.360 v=-5.047
s=0 h=0002.553 t=13.400 v=-4.997
s=1 h=0002.350 t=13.440 v=-5.157
s=1 h=0002.144 t=13.480 v=-5.106
s=1 h=0001.941 t=13.520 v=-5.056
s=1 h=0001.740 t=13.560 v=-5.006
s=0 h=0001.541 t=13.600 v=-4.955
s=1 h=0001.339 t=13.640 v=-5.115
s=1 h=0001.136 t=13.680 v=-5.065
s=1 h=0000.934 t=13.720 v=-5.014
s=0 h=0000.735 t=13.760 v=-4.964
s=1 h=0000.533 t=13.800 v=-5.124
s=1 h=0000.329 t=13.840 v=-5.074
s=1 h=0000.127 t=13.880 v=-5.023

Posledný riadok simulácie pristávania, predstavuje riadok, pre ktorý ako posledný platí $ h > 0$.

Musíte dodržať stanovený formát. Parametre sú od seba oddelené 1 medzerou (okrem toho vo výpise nie sú iné medzery). Všetky parametre sú vyjadrené v základných jednotkách.

  • Parameter $ s $ predstavuje stav motora a nadobúda len hodnotu 0/1.
  • Parameter $ h $ predstavuje aktuálnu výšku sondy nad povrchom a jeho hodnota má fixnú šírku 8 miest (z toho 4 miesta pre celú časť, 1 miesto vyhradené pre znak . a 3 miesta pre desatinnú časť). Celá časť je zarovnaná doprava a prázdne miesta v nej sú doplnené znakom 0.
  • Parameter $ t $ predstavuje uplynutý čas simulácie vypísaný s presnosťou 3 desatinných miest (nemá stanovenú šírku).
  • Parameter $ v $ predstavuje aktuálnu rýchlosť sondy vypísanú s presnosťou 3 desatinných miest (nemá stanovenú šírku).

4. Záverečný výpis
---Landed---
h    =-000.073
t    =  13.920
v    =  -4.973
total= 241
max  = 212

Skladá sa zo 4 častí:

  • Nadpis.
    ---Landed---
  • Výpis posledného kroku simulácie (platí $h \leq 0$), ktorý predstavuje stav po kontakte sondy s povrchom. V tomto kroku sa vypíše trojica $ \{h,t,v\} $ (stav motora ignorujeme) v nasledovnom formáte.

    Pred znakom = je rezervované miesto s fixnou šírkou 5 znakov a text je zarovnaný doľava. Číselná hodnota nasledujúca po znaku = má šírku 8 miest, z toho 4 miesta sú vyhradené pre celú časť (vrátane znamienka -), 1 miesto pre desatinnú bodku a 3 miesta pre desatinnú časť. Číselná hodnota je zarovnaná doprava. Hodnota $h$ má celú časť doplnenú znakom 0.
    h    =-000.073
    t    =  13.920
    v    =  -4.973
  • Výpis celkového počtu riadkov simulácie, kedy bol motor sondy zapnutý. Tento údaj zistíte spočítaním tých riadkov simulácie, kedy bol motor v stave 1 (t.j. zapnutý). Nezapočítava sa sem stav motora od momentu kontaktu sondy s povrchom, t.j. keď už platí $h \leq 0$.

    Pred znakom = je rezervované miesto s fixnou šírkou 5 znakov a text je zarovnaný doľava. Číselná hodnota nasledujúca po znaku = má šírku 4 miesta a je zarovnaná doprava.
    total= 241
  • Výpis najdlhšieho časového úseku, kedy bol motor zapnutý. Motor sondy je počas zostupu podľa potreby vypínaný/zapínaný. Úlohou v tomto prípade je odhaliť najdlhší časový úsek v celej simulácii, kedy bol motor nepretržite v stave 1 (zapnutý). Vypíše sa počet riadkov simulácie, ktoré zodpovedajú tomuto najdlhšiemu časovému úseku. Stav motora po kontakte sondy s povrchom ($h \leq 0$) už neberieme do úvahy.

    Pred znakom = je rezervované miesto s fixnou šírkou 5 znakov a text je zarovnaný doľava. Číselná hodnota nasledujúca po znaku = má šírku 4 miesta a je zarovnaná doprava.
    max  = 212


Obrázok 4: Vizualizácia formátu záverečného výpisu

Odporúčaná kostra implementácie

Na funkčnú implementáciu celej simulácie vám postačí zopár riadkov kódu. To samozrejme platí, v prípade, že si váš zdrojový kód dobre navrhnete. Implementácia zadania je kompletne vo vašej réžii. Avšak rovnako ako sonda, aj vy potrebujete navigáciu a zopár rád, ktoré vám pomôžu začať s implementáciou a dobre si rozdeliť zdrojový kód do logických celkov. Odporúčame držať sa dole uvedenej kostry riešenia, aby ste získali výstupy totožné so správnymi výstupmi.

// KOSTRA RIESENIA

// Priestor pre definicie vasich pomocnych funkcii.

int main() {

  // [1]  Nacitanie a vypis vstupnych parametrov
  //      v stanovenom formate.

  // [2]  Vypocet a vypis kritickej vysky 'de'
  //      v stanovenom formate.

  // [3]  Cyklus pre simulaciu pristavania sondy,
  //      v ktorom sa budu vypisovat riadky v
  //      stanovenom formate a s casovym krokom 'dt'.

  while( /*...pokial je sonda nad povrchom ...*/ ){

      // Jedna iteracia cyklu predstavuje casovy usek 'dt'.
      // Na zaciatku useku 'dt' sa zapne alebo vypne motor sondy
      // a ten je pocas trvania celeho useku 'dt' v tomto stave
      // az do dalsej aktualizacie, ktora sa odohra v dalsej
      // iteracii simulacneho cyklu.

      // POSTUPNOST KROKOV, ktore treba vykonat v iteracii cyklu:

      // [3.a]  Vypocet stavu motora 's' na zaciatku casoveho useku 'dt'.
      //        Stav motora moze byt 0/1 (vypnuty/zapnuty).
      //        Vypocet 's' zavisi od aktualnej 'h' a treba zohladnit bezpecnu
      //        pristavaciu rychlost 'vsoft'.

      // [3.b]  Formatovany vypis stvorice {'s','h','t','v'} (vid pokyny vyssie).
      //          's' - stav motora, ktory bol vypocitany v kroku [3.a].
      //          'h' - aktualna vyska sondy (na zaciatku casoveho useku 'dt')
      //          't' - uplynuty cas simulacie (na zaciatku casoveho useku 'dt')
      //          'v' - aktualna rychlost sondy (na zaciatku casoveho useku 'dt')


      // [3.c]  Vypocet novej vysky 'h' (t.j. vysky na konci casoveho useku 'dt')
      //        podla vzorca (4).

      // [3.d]  Vypocet novej rychlosti 'v' (t.j. rychlosti na konci casoveho useku 'dt')
      //        podla vzorca (5).

      // [3.e]  Aktualizacia uplynuteho casu simulacie o casovy usek 'dt'.

      // HINT:  Na vypocet 's', 'h' a 'v' si napiste a zavolajte vlastne funkcie.
  }

  // [4]  Zaverecny vypis.


  return 0;
}

Komentovaný príklad výstupu programu

Uvedený príklad vám poslúži na porovnanie si vašich výstupov so správnym výstupom. Predpokladáme, že máme správne vypracované zadanie uložené v súbore z1.c.

Postup overenia funkčnosti programu v termináli:

  1. Kompilácia vášho zdrojového súboru. Výsledkom kompilácie je binárny spustiteľný súbor s názvom z1.
    gcc z1.c -o z1 -Wall
  2. Spustenie programu a zadanie nasledovných vstupných parametrov na štandardný vstup:
    ./z1
    • $ m = 10000 $
    • $ T = 50000 $
    • $ H = 254 $
    • $ g = 4.1 $
    • $ v_{soft} = -3.9 $
    • $ \Delta t = 0.11 $
  3. Ukážka výstupu vášho programu po zadaní parametrov. V Linuxe si pomocou príkazu diff file1.txt file2.txt si viete overiť, či sú obsahy dvoch zvolených súborov identické, resp. kde sa líšia. Môžete to využiť pri overovaní výstupov vašich programov, ak si dáte v termináli presmerovať štandardný výstup do textového súboru pomocou operátora >.
  4. m=10000.000
    T=50000.000
    H=254.000
    g=4.100
    vsoft=-3.900
    dt=0.110
    de=208.280
    s=0 h=0254.000 t=0.000 v=0.000
    s=0 h=0253.975 t=0.110 v=-0.451
    s=0 h=0253.901 t=0.220 v=-0.902
    s=0 h=0253.777 t=0.330 v=-1.353
    s=0 h=0253.603 t=0.440 v=-1.804
    s=0 h=0253.380 t=0.550 v=-2.255
    s=0 h=0253.107 t=0.660 v=-2.706
    s=0 h=0252.785 t=0.770 v=-3.157
    s=0 h=0252.412 t=0.880 v=-3.608
    s=0 h=0251.991 t=0.990 v=-4.059
    s=0 h=0251.520 t=1.100 v=-4.510
    s=0 h=0250.999 t=1.210 v=-4.961
    s=0 h=0250.428 t=1.320 v=-5.412
    s=0 h=0249.808 t=1.430 v=-5.863
    s=0 h=0249.138 t=1.540 v=-6.314
    s=0 h=0248.419 t=1.650 v=-6.765
    s=0 h=0247.650 t=1.760 v=-7.216
    s=0 h=0246.831 t=1.870 v=-7.667
    s=0 h=0245.963 t=1.980 v=-8.118
    s=0 h=0245.045 t=2.090 v=-8.569
    s=0 h=0244.078 t=2.200 v=-9.020
    s=0 h=0243.061 t=2.310 v=-9.471
    s=0 h=0241.994 t=2.420 v=-9.922
    s=0 h=0240.878 t=2.530 v=-10.373
    s=0 h=0239.712 t=2.640 v=-10.824
    s=0 h=0238.497 t=2.750 v=-11.275
    s=0 h=0237.232 t=2.860 v=-11.726
    s=0 h=0235.917 t=2.970 v=-12.177
    s=0 h=0234.553 t=3.080 v=-12.628
    s=0 h=0233.139 t=3.190 v=-13.079
    s=0 h=0231.676 t=3.300 v=-13.530
    s=0 h=0230.162 t=3.410 v=-13.981
    s=0 h=0228.600 t=3.520 v=-14.432
    s=0 h=0226.987 t=3.630 v=-14.883
    s=0 h=0225.325 t=3.740 v=-15.334
    s=0 h=0223.614 t=3.850 v=-15.785
    s=0 h=0221.853 t=3.960 v=-16.236
    s=0 h=0220.042 t=4.070 v=-16.687
    s=0 h=0218.182 t=4.180 v=-17.138
    s=0 h=0216.272 t=4.290 v=-17.589
    s=0 h=0214.312 t=4.400 v=-18.040
    s=0 h=0212.303 t=4.510 v=-18.491
    s=0 h=0210.244 t=4.620 v=-18.942
    s=1 h=0208.136 t=4.730 v=-19.393
    s=1 h=0206.008 t=4.840 v=-19.294
    s=1 h=0203.891 t=4.950 v=-19.195
    s=1 h=0201.785 t=5.060 v=-19.096
    s=1 h=0199.690 t=5.170 v=-18.997
    s=1 h=0197.606 t=5.280 v=-18.898
    s=1 h=0195.532 t=5.390 v=-18.799
    s=1 h=0193.470 t=5.500 v=-18.700
    s=1 h=0191.418 t=5.610 v=-18.601
    s=1 h=0189.378 t=5.720 v=-18.502
    s=1 h=0187.348 t=5.830 v=-18.403
    s=1 h=0185.329 t=5.940 v=-18.304
    s=1 h=0183.321 t=6.050 v=-18.205
    s=1 h=0181.324 t=6.160 v=-18.106
    s=1 h=0179.338 t=6.270 v=-18.007
    s=1 h=0177.362 t=6.380 v=-17.908
    s=1 h=0175.398 t=6.490 v=-17.809
    s=1 h=0173.444 t=6.600 v=-17.710
    s=1 h=0171.502 t=6.710 v=-17.611
    s=1 h=0169.570 t=6.820 v=-17.512
    s=1 h=0167.649 t=6.930 v=-17.413
    s=1 h=0165.739 t=7.040 v=-17.314
    s=1 h=0163.840 t=7.150 v=-17.215
    s=1 h=0161.952 t=7.260 v=-17.116
    s=1 h=0160.074 t=7.370 v=-17.017
    s=1 h=0158.208 t=7.480 v=-16.918
    s=1 h=0156.352 t=7.590 v=-16.819
    s=1 h=0154.508 t=7.700 v=-16.720
    s=1 h=0152.674 t=7.810 v=-16.621
    s=1 h=0150.851 t=7.920 v=-16.522
    s=1 h=0149.039 t=8.030 v=-16.423
    s=1 h=0147.238 t=8.140 v=-16.324
    s=1 h=0145.448 t=8.250 v=-16.225
    s=1 h=0143.669 t=8.360 v=-16.126
    s=1 h=0141.900 t=8.470 v=-16.027
    s=1 h=0140.143 t=8.580 v=-15.928
    s=1 h=0138.396 t=8.690 v=-15.829
    s=1 h=0136.660 t=8.800 v=-15.730
    s=1 h=0134.935 t=8.910 v=-15.631
    s=1 h=0133.221 t=9.020 v=-15.532
    s=1 h=0131.518 t=9.130 v=-15.433
    s=1 h=0129.826 t=9.240 v=-15.334
    s=1 h=0128.145 t=9.350 v=-15.235
    s=1 h=0126.474 t=9.460 v=-15.136
    s=1 h=0124.815 t=9.570 v=-15.037
    s=1 h=0123.166 t=9.680 v=-14.938
    s=1 h=0121.529 t=9.790 v=-14.839
    s=1 h=0119.902 t=9.900 v=-14.740
    s=1 h=0118.286 t=10.010 v=-14.641
    s=1 h=0116.681 t=10.120 v=-14.542
    s=1 h=0115.087 t=10.230 v=-14.443
    s=1 h=0113.503 t=10.340 v=-14.344
    s=1 h=0111.931 t=10.450 v=-14.245
    s=1 h=0110.369 t=10.560 v=-14.146
    s=1 h=0108.819 t=10.670 v=-14.047
    s=1 h=0107.279 t=10.780 v=-13.948
    s=1 h=0105.750 t=10.890 v=-13.849
    s=1 h=0104.232 t=11.000 v=-13.750
    s=1 h=0102.725 t=11.110 v=-13.651
    s=1 h=0101.229 t=11.220 v=-13.552
    s=1 h=0099.744 t=11.330 v=-13.453
    s=1 h=0098.269 t=11.440 v=-13.354
    s=1 h=0096.806 t=11.550 v=-13.255
    s=1 h=0095.353 t=11.660 v=-13.156
    s=1 h=0093.912 t=11.770 v=-13.057
    s=1 h=0092.481 t=11.880 v=-12.958
    s=1 h=0091.061 t=11.990 v=-12.859
    s=1 h=0089.652 t=12.100 v=-12.760
    s=1 h=0088.254 t=12.210 v=-12.661
    s=1 h=0086.866 t=12.320 v=-12.562
    s=1 h=0085.490 t=12.430 v=-12.463
    s=1 h=0084.124 t=12.540 v=-12.364
    s=1 h=0082.770 t=12.650 v=-12.265
    s=1 h=0081.426 t=12.760 v=-12.166
    s=1 h=0080.093 t=12.870 v=-12.067
    s=1 h=0078.771 t=12.980 v=-11.968
    s=1 h=0077.460 t=13.090 v=-11.869
    s=1 h=0076.160 t=13.200 v=-11.770
    s=1 h=0074.871 t=13.310 v=-11.671
    s=1 h=0073.593 t=13.420 v=-11.572
    s=1 h=0072.325 t=13.530 v=-11.473
    s=1 h=0071.069 t=13.640 v=-11.374
    s=1 h=0069.823 t=13.750 v=-11.275
    s=1 h=0068.588 t=13.860 v=-11.176
    s=1 h=0067.364 t=13.970 v=-11.077
    s=1 h=0066.151 t=14.080 v=-10.978
    s=1 h=0064.949 t=14.190 v=-10.879
    s=1 h=0063.758 t=14.300 v=-10.780
    s=1 h=0062.577 t=14.410 v=-10.681
    s=1 h=0061.408 t=14.520 v=-10.582
    s=1 h=0060.249 t=14.630 v=-10.483
    s=1 h=0059.102 t=14.740 v=-10.384
    s=1 h=0057.965 t=14.850 v=-10.285
    s=1 h=0056.839 t=14.960 v=-10.186
    s=1 h=0055.724 t=15.070 v=-10.087
    s=1 h=0054.620 t=15.180 v=-9.988
    s=1 h=0053.527 t=15.290 v=-9.889
    s=1 h=0052.444 t=15.400 v=-9.790
    s=1 h=0051.373 t=15.510 v=-9.691
    s=1 h=0050.312 t=15.620 v=-9.592
    s=1 h=0049.263 t=15.730 v=-9.493
    s=1 h=0048.224 t=15.840 v=-9.394
    s=1 h=0047.196 t=15.950 v=-9.295
    s=1 h=0046.179 t=16.060 v=-9.196
    s=1 h=0045.173 t=16.170 v=-9.097
    s=1 h=0044.178 t=16.280 v=-8.998
    s=1 h=0043.193 t=16.390 v=-8.899
    s=1 h=0042.220 t=16.500 v=-8.800
    s=1 h=0041.257 t=16.610 v=-8.701
    s=1 h=0040.306 t=16.720 v=-8.602
    s=1 h=0039.365 t=16.830 v=-8.503
    s=1 h=0038.435 t=16.940 v=-8.404
    s=1 h=0037.516 t=17.050 v=-8.305
    s=1 h=0036.608 t=17.160 v=-8.206
    s=1 h=0035.711 t=17.270 v=-8.107
    s=1 h=0034.824 t=17.380 v=-8.008
    s=1 h=0033.949 t=17.490 v=-7.909
    s=1 h=0033.084 t=17.600 v=-7.810
    s=1 h=0032.231 t=17.710 v=-7.711
    s=1 h=0031.388 t=17.820 v=-7.612
    s=1 h=0030.556 t=17.930 v=-7.513
    s=1 h=0029.735 t=18.040 v=-7.414
    s=1 h=0028.925 t=18.150 v=-7.315
    s=1 h=0028.126 t=18.260 v=-7.216
    s=1 h=0027.337 t=18.370 v=-7.117
    s=1 h=0026.560 t=18.480 v=-7.018
    s=1 h=0025.793 t=18.590 v=-6.919
    s=1 h=0025.038 t=18.700 v=-6.820
    s=1 h=0024.293 t=18.810 v=-6.721
    s=1 h=0023.559 t=18.920 v=-6.622
    s=1 h=0022.836 t=19.030 v=-6.523
    s=1 h=0022.124 t=19.140 v=-6.424
    s=1 h=0021.423 t=19.250 v=-6.325
    s=1 h=0020.733 t=19.360 v=-6.226
    s=1 h=0020.053 t=19.470 v=-6.127
    s=1 h=0019.385 t=19.580 v=-6.028
    s=1 h=0018.727 t=19.690 v=-5.929
    s=1 h=0018.080 t=19.800 v=-5.830
    s=1 h=0017.444 t=19.910 v=-5.731
    s=1 h=0016.819 t=20.020 v=-5.632
    s=1 h=0016.205 t=20.130 v=-5.533
    s=1 h=0015.602 t=20.240 v=-5.434
    s=1 h=0015.010 t=20.350 v=-5.335
    s=1 h=0014.428 t=20.460 v=-5.236
    s=1 h=0013.858 t=20.570 v=-5.137
    s=1 h=0013.298 t=20.680 v=-5.038
    s=1 h=0012.750 t=20.790 v=-4.939
    s=1 h=0012.212 t=20.900 v=-4.840
    s=1 h=0011.685 t=21.010 v=-4.741
    s=1 h=0011.169 t=21.120 v=-4.642
    s=1 h=0010.664 t=21.230 v=-4.543
    s=1 h=0010.169 t=21.340 v=-4.444
    s=1 h=0009.686 t=21.450 v=-4.345
    s=1 h=0009.213 t=21.560 v=-4.246
    s=1 h=0008.752 t=21.670 v=-4.147
    s=1 h=0008.301 t=21.780 v=-4.048
    s=1 h=0007.861 t=21.890 v=-3.949
    s=0 h=0007.432 t=22.000 v=-3.850
    s=1 h=0006.984 t=22.110 v=-4.301
    s=1 h=0006.516 t=22.220 v=-4.202
    s=1 h=0006.060 t=22.330 v=-4.103
    s=1 h=0005.614 t=22.440 v=-4.004
    s=1 h=0005.179 t=22.550 v=-3.905
    s=0 h=0004.755 t=22.660 v=-3.806
    s=1 h=0004.311 t=22.770 v=-4.257
    s=1 h=0003.848 t=22.880 v=-4.158
    s=1 h=0003.396 t=22.990 v=-4.059
    s=1 h=0002.955 t=23.100 v=-3.960
    s=0 h=0002.525 t=23.210 v=-3.861
    s=1 h=0002.076 t=23.320 v=-4.312
    s=1 h=0001.607 t=23.430 v=-4.213
    s=1 h=0001.149 t=23.540 v=-4.114
    s=1 h=0000.702 t=23.650 v=-4.015
    s=1 h=0000.265 t=23.760 v=-3.916
    ---Landed---
    h    =-000.160
    t    =  23.870
    v    =  -3.817
    total= 171
    max  = 157
  5. Program skončí štandardne s návratovým kódom 0 (funkcia main vráti hodnotu 0).

Hodnotenie zadania

Odovzdávací systém otestuje a ohodnotí nasledovné oblasti funkcionality vášho programu. Na získanie bodov z konkrétneho testovacieho scenára je nutné, aby testom prešli všetky testovacie prípady v danom scenári.

Testovacie scenáre
Scenár 1
Kontrola výpisu vstupných parametrov.
1 b
Scenár 2
Kontrola výpisu kritickej výšky $ d_e $.
2 b
Scenár 3
Kontrola výpisu riadkov simulácie.
4 b
Scenár 4
Kontrola záverečného výpisu - trojica $\{h,t,v\}$.
1 b
Scenár 5
Kontrola záverečného výpisu - počet riadkov simulácie, kedy bol motor sondy počas letu zapnutý.
1 b
Scenár 6
Kontrola záverečného výpisu - najdlhší časový úseku, kedy bol motor zapnutý.
1 b
Súčet 10 b

Aby váš program prešiel automatizovaným testovaním, jeho výstup musí mať nasledovnú štruktúru a výpisy sa musia zobrazovať na očakávaných pozíciách.



Obrázok 5: Očakávaná štruktúra vášho výstupu.

Video

Záznam zo seminára č. 2 (22. február 2022)

Testovacie príklady


Príklad 1

Vstupné parametre:

$ m = 10000 $
$ T = 82000 $
$ H = 6000 $
$ g = 3.711 $
$ v_{soft} = -5.0 $
$ \Delta t = 0.02 $

Výstup programu.

Príklad 2

Vstupné parametre:

$ m = 10000 $
$ T = 50000 $
$ H = 254 $
$ g = 4.4 $
$ v_{soft} = -3.9 $
$ \Delta t = 0.03 $

Výstup programu.

Príklad 3

Vstupné parametre:

$ m = 800 $
$ T = 8000 $
$ H = 8000 $
$ g = 0.1 $
$ v_{soft} = -2.0 $
$ \Delta t = 1 $

Výstup programu.

Príklad 4

Vstupné parametre:

$ m = 17110 $
$ T = 290000 $
$ H = 107 $
$ g = 4.0 $
$ v_{soft} = -5.0 $
$ \Delta t = 0.02 $

Výstup programu.

Príklad 5

Vstupné parametre:

$ m = 5000 $
$ T = 74000 $
$ H = 99 $
$ g = 2.0 $
$ v_{soft} = -7.0 $
$ \Delta t = 0.3 $

Výstup programu.

Príklad 6

Vstupné parametre:

$ m = 2000 $
$ T = 8000 $
$ H = 209 $
$ g = 3.94 $
$ v_{soft} = -4.3 $
$ \Delta t = 0.16 $

Výstup programu.

Výstup vášho programu si viete porovnať s očakávaným výstupom pomocou Diff nástroja.

Zdroje

Nasledujúce zdroje vám môžu pomôcť pri riešení zadania. Odporúčame si tieto zdroje pozrieť/preštudovať. Na prístup k niektorým zdrojom potrebujete byť prihlásení vo vašom Google G-Suite STU konte.

Prednášky
  1. Prednáška 2: Základné dátové typy
Jazyk C
  1. Neoficiálna príručka jazyka C. Veľmi dobré na vyhľadávanie knižničných funkcíí, obsahuje popis parametrov funkcíí, návratových hodnôt a príklady.
  2. Oficiálna príručka jazyka C (kompatibilná so štandardom). Veľmi dobré na vyhľadávanie knižničných funkcíí, obsahuje popis parametrov funkcíí, návratových hodnôt a príklady. Je to najspoľahlivejší zdroj informácií, avšak prezentovaný veľmi technicky a pre začiatočníkov miestami náročne na pochopenie.
  3. C Keywords and Identifiers
  4. C Variables, Constants and Literals
  5. C Data Types
  6. C Input Output (I/O)
  7. C Operators
  8. C if...else Statement
  9. C for Loop
  10. C while and do...while Loop
  11. C break and continue
  12. C functions
Ostatné
  1. Simulating a Lunar Landing. Od autorov z Australian Space Academy.
  2. Freepik.com. Použité obrázky v ilustrácii.
Copyright © 2022, Pavol Marák, ÚIM FEI STU.
Vyrobené pomocou Django a Spectre.css.
Videá prehrávame pomocou Plyr prehrávača.
Responzívny dizajn testujeme pomocou Responsive Viewer.