Manuálna prevodovka: zariadenie, typy, vlastnosti. Hádanky súvisiace s fyzikálnymi javmi v prírode

Ktoré som našiel na stránke DataGenetics. Všetky chyby v tomto článku posielajte do súkromných správ.

V tomto probléme je vo väznici 100 väzňov, každý očíslovaný od 1 do 100. Väzeň sa rozhodne dať väzňom šancu na prepustenie, povie im podmienky testu a ak všetci väzni testom prejdú, potom budú prepustení. Ak aspoň jeden z nich neprejde testom, potom všetci väzni zomrú.

Úloha

Žalárnik ide do tajná miestnosť a pripraví 100 škatúľ s vrchnákom. Na každej škatuľke označí čísla od 1 do 100. Potom prinesie 100 papierových tabliet podľa počtu väzňov a tieto očísluje od 1 do 100. Potom 100 tabliet zamieša a do každej škatuľky vloží jednu tabletu, zatváranie veka. Väzni nevidia, ako žalárnik všetky tieto úkony vykonáva.

Začína sa súťaž, žalárnik odvedie každého väzňa po jednom do miestnosti s krabicami a povie väzňom, že musia nájsť krabicu, ktorá bude obsahovať štítok s číslom väzňa. Otváraním škatúľ sa väzni snažia nájsť štítok s ich číslom. Každý môže otvoriť až 50 boxov; ak každý z väzňov nájde svoje číslo, potom budú väzni prepustení, ak aspoň jeden z nich nenájde svoje číslo v 50 pokusoch, tak všetci väzni zomrú.

Aby boli väzni prepustení, VŠETCI väzni musia úspešne prejsť testom.

Aká je teda šanca, že väzni dostanú milosť?

  • Keď väzeň škatuľu otvorí a skontroluje tanier, vloží sa späť do škatule a veko sa opäť zatvorí;
  • Miesta dosiek sa nedajú zmeniť;
  • Väzni si po začatí súdneho procesu nemôžu navzájom zanechávať stopy alebo sa navzájom akýmkoľvek spôsobom vzájomne ovplyvňovať;
  • Väzni môžu pred začatím procesu diskutovať o stratégii.

Aká je najlepšia stratégia pre väzňov?

Doplňujúca otázka:

Ak sa priateľovi väzňov (nie je účastníkom testu) podarí vstúpiť do tajnej miestnosti pred začiatkom testu, preskúmajte všetky tablety vo všetkých škatuliach a (voliteľne, ale nie je to povinné) vymeňte dva tablety z dvoch škatúľ (v tomto prípade súdruh nebude mať možnosť oboch informovať väzňov o výsledku svojho konania), akú stratégiu má teda zvoliť, aby zvýšil šance väzňov na útek?

Riešenie nepravdepodobné?

Na prvý pohľad sa táto úloha zdá takmer beznádejná. Zdá sa, že šanca pre každého z väzňov nájsť svoj tablet je mikroskopicky malá. Okrem toho si väzni počas procesu nemôžu navzájom vymieňať informácie.

Pravdepodobnosť jedného väzňa je 50:50. Celkovo je tam 100 škatúľ a môže otvoriť až 50 škatúľ pri hľadaní svojho znamenia. Ak náhodne otvorí škatule a otvorí polovicu všetkých škatúľ, nájde svoj tablet v otvorenej polovici škatúľ, alebo jeho tablet zostane v zatvorených 50 škatuliach. Jeho šance na úspech sú ½.

Zoberme si dvoch väzňov. Ak si obaja náhodne vyberú políčka, šanca pre každú z nich bude ½ a pre dve ½x½=¼.
(pre dvoch väzňov bude úspech v jednom prípade zo štyroch).

Pre troch väzňov je pravdepodobnosť ½ × ½ × ½ = ⅛.

Pre 100 väzňov je pravdepodobnosť: ½ × ½ × … ½ × ½ (vynásobte 100-krát).


Toto sa rovná

Pr ≈ 0,00000000000000000000000000008

Je to teda veľmi malá šanca. V tomto scenári budú s najväčšou pravdepodobnosťou všetci väzni mŕtvi.

Neuveriteľná odpoveď

Ak každý väzeň otvorí škatule náhodne, je nepravdepodobné, že by v teste prešiel. Existuje stratégia, kde väzni môžu očakávať, že budú úspešní vo viac ako 30 % prípadov. Toto je úžasne neuveriteľný výsledok (ak ste o tom ešte nepočuli matematický problém predtým).

Viac ako 30 % pre všetkých 100 väzňov! Áno, to je ešte viac ako šance pre dvoch väzňov, za predpokladu, že boxy otvoria náhodne. Ale ako je to možné?

Je jasné, že jedna pre každého väzňa, šanca nemôže byť vyššia ako 50 % (v konečnom dôsledku neexistuje spôsob komunikácie medzi väzňami). Nezabudnite však, že informácie sú uložené v umiestnení dosiek vo vnútri škatúľ. Medzi návštevami jednotlivých väzňov v miestnosti nikto nemieša tablety, takže tieto informácie môžeme použiť.

Riešenie

Najprv vám poviem riešenie a potom vysvetlím, prečo to funguje.

Stratégia je mimoriadne jednoduchá. Prvý z väzňov otvára krabicu s číslom, ktoré má napísané na oblečení. Napríklad väzeň číslo 78 otvorí krabicu s číslom 78. Ak nájde svoje číslo na štítku vnútri krabice, je to skvelé! Ak nie, pozrie sa na číslo na štítku v „svojom“ boxe a potom otvorí ďalší box s týmto číslom. Po otvorení druhého boxu sa pozrie na číslo tabletu v tomto boxe a otvorí tretí box s týmto číslom. Potom túto stratégiu jednoducho prenesieme do zvyšných políčok. Pre prehľadnosť sa pozrite na obrázok:


Nakoniec väzeň buď nájde svoje číslo, alebo dosiahne limit 50 políčok. Na prvý pohľad to vyzerá nezmyselne v porovnaní s jednoduchým náhodným výberom škatule (a pre jedného jednotlivého väzňa áno), ale keďže všetkých 100 väzňov použije rovnakú sadu škatúľ, dáva to zmysel.

Krása tohto matematický problém- nielen poznať výsledok, ale aj pochopiť prečo táto stratégia funguje.

Prečo teda stratégia funguje?

Každá krabica obsahuje jeden tanier - a tento tanier je jedinečný. To znamená, že tanier je v krabici s rovnakým číslom, alebo ukazuje na inú krabicu. Keďže všetky platne sú jedinečné, pre každú škatuľu je len jedna platňa, ktorá na ňu ukazuje (a len jeden spôsob, ako sa k nej dostať).


Ak sa nad tým zamyslíte, krabice tvoria uzavretú kruhovú reťaz. Jeden box môže byť súčasťou iba jedného reťazca, pretože vo vnútri boxu je len jeden ukazovateľ na ďalší, a teda v predchádzajúcom boxe je iba jeden ukazovateľ na tento box (programátori vidia analógiu s prepojenými zoznamami).

Ak škatuľa neukazuje na seba (číslo škatule sa rovná ŠPZ v nej), bude v reťazci. Niektoré reťaze môžu pozostávať z dvoch krabičiek, niektoré sú dlhšie.


Keďže všetci väzni začínajú škatuľkou s rovnakým číslom na oblečení, sú podľa definície umiestnení na retiazke, ktorá obsahuje ich menovku (na túto škatuľu ukazuje len jedna menovka).

Pri skúmaní škatúľ pozdĺž tejto reťaze v kruhu je zaručené, že nakoniec nájdu svoje znamenie.

Otázkou ostáva len to, či svoj tablet nájdu za 50 ťahov.


Dĺžka reťaze

Aby všetci väzni prešli testom, maximálna dĺžka reťaze musí byť menšia ako 50 škatúľ. Ak je reťaz dlhšia ako 50 škatúľ, väzni s číslami z týchto reťazí v teste neuspejú - a všetci väzni budú mŕtvi.

Ak je maximálna dĺžka najdlhšej reťaze menšia ako 50 krabíc, testom prejdú všetci väzni!

Premýšľajte o tom na chvíľu. Ukazuje sa, že v akomkoľvek rozložení tanierov môže byť len jedna reťaz dlhšia ako 50 políčok (my máme len 100 políčok, takže ak je jedna reťaz dlhšia ako 50, zvyšok bude celkovo kratší ako 50).


Šance na ruku s dlhým reťazcom

Keď sa presvedčíte, že maximálna dĺžka reťaze musí byť menšia alebo rovná 50, aby ste uspeli, a v každej sade môže byť iba jedna dlhá reťaz, môžeme vypočítať pravdepodobnosť úspešného zvládnutia výzvy:

Ešte trochu matematiky

Čo teda potrebujeme, aby sme zistili pravdepodobnosť dlhého reťazca?

Pre reťazec dĺžky l je pravdepodobnosť, že krabice budú mimo tohto reťazca:

V tejto zbierke čísel je (l-1)! spôsoby usporiadania značiek.

Zvyšné značky sa dajú nájsť (100-l)! spôsobmi (nezabudnite, že dĺžka reťaze nepresahuje 50).

Vzhľadom na to je počet permutácií, ktoré obsahujú reťazec presná dĺžka l: (>50)


Ukazuje sa, že existuje 100(!) spôsobov usporiadania dosiek, takže pravdepodobnosť existencie reťazca dĺžky l sa rovná 1/l. Mimochodom, tento výsledok nezávisí od počtu políčok.

Ako už vieme, môže existovať iba jeden prípad, v ktorom je reťazec s dĺžkou > 50, takže pravdepodobnosť úspechu sa vypočíta podľa tohto vzorca:

Výsledok

31,18 % - pravdepodobnosť, že veľkosť najdlhšej reťaze bude menšia ako 50 a každý z väzňov nájde svoj tablet, vzhľadom na limit 50 pokusov.

Pravdepodobnosť, že všetci väzni nájdu svoje taniere a prejdú testom, je 31,18 %

Nižšie je uvedený graf znázorňujúci pravdepodobnosti (na osi y) pre všetky reťazce dĺžky l (na osi x). Červená znamená všetky "poruchy" (daná krivka je tu len 1/l graf). Zelená farba znamená „úspech“ (výpočet je pre túto časť grafu trochu komplikovanejší, pretože existuje niekoľko spôsobov, ako určiť maximálna dĺžka <50). Общая вероятность складывается из зеленых столбцов в 31.18% шанс на спасение.


Harmonické číslo (táto časť článku je pre geekov)

V matematike je n-té harmonické číslo súčtom prevrátených hodnôt prvých n po sebe idúcich čísel prirodzeného radu.


Vypočítajme limit, ak namiesto 100a boxov máme ľubovoľný veľké množstvo boxov (predpokladajme, že máme celkovo 2n boxov).


Euler-Mascheroniho konštanta je konštanta definovaná ako hranica rozdielu medzi čiastočným súčtom harmonického radu a prirodzeným logaritmom čísla.

Keď sa počet väzňov zvyšuje, ak dozorca dovolí väzňom otvoriť polovicu všetkých škatúľ, šanca na záchranu má tendenciu 30,685 %.

(Ak ste urobili rozhodnutie, v ktorom väzni náhodne uhádnu krabice, potom ako sa počet väzňov zvyšuje, pravdepodobnosť, že budú zachránení, má tendenciu k nule!)

Doplňujúca otázka

Pamätá si ešte niekto dodatočnú otázku? Čo môže náš užitočný súdruh urobiť, aby zvýšil naše šance na prežitie?

Teraz už poznáme riešenie, takže stratégia je jednoduchá: musí preskúmať všetky znaky a nájsť najdlhšiu reťaz krabíc. Ak je najdlhšia reťaz menšia ako 50, potom nemusí tablety vymieňať vôbec, alebo ich meniť tak, aby najdlhšia reťaz nebola dlhšia ako 50. Ak však nájde reťaz dlhšiu ako 50 krabíc, stačí vymeniť obsah dvoch krabíc z tejto reťaze, aby sa táto reťaz rozbila na dve kratšie reťaze.

Výsledkom tejto stratégie nebudú žiadne dlhé reťaze a všetci väzni zaručene nájdu svoje znamenie a spásu. Takže zámenou dvoch znamení znížime pravdepodobnosť spasenia na 100%!


Pamätajte, že objem kvádra (alebo obyčajnej krabice) sa rovná súčinu jeho dĺžky, šírky a výšky. Ak je vaša krabica obdĺžniková alebo štvorcová, všetko, čo potrebujete vedieť, je jej dĺžka, šírka a výška. Na získanie objemu je potrebné vynásobiť výsledky meraní. Výpočtový vzorec v skrátenej forme sa často uvádza takto: V \u003d D x Š x V.
Príklad problému: "Ak je dĺžka škatule 10 cm, šírka 4 cm a výška 5 cm, aký je jej objem?"
V = D x Š x V
V = 10 cm x 4 cm x 5 cm
V \u003d 200 cm 3
"Výška" škatule môže byť označovaná ako "hĺbka". Úloha môže obsahovať napríklad tieto informácie: "Dĺžka krabice je 10 cm, šírka je 4 cm a hĺbka je 5 cm."

2
Zmerajte dĺžku krabice. Ak sa na krabicu pozriete zhora, objaví sa vám pred očami vo forme obdĺžnika. Dĺžka škatule bude najdlhšou stranou tohto obdĺžnika. Zaznamenajte výsledok merania tejto strany ako hodnotu parametra "dĺžka".
Pri meraní nezabudnite použiť rovnakú mernú jednotku. Ak ste merali jednu stranu v centimetroch, potom aj ostatné strany musia byť merané v centimetroch.

3
Zmerajte šírku krabice. Šírka poľa bude reprezentovaná druhou, kratšou stranou obdĺžnika viditeľnou zhora. Ak vizuálne spojíte strany škatule merané na dĺžku a šírku, zobrazia sa vo forme písmena "G". Zaznamenajte hodnotu posledného merania ako "šírku".
Šírka je vždy kratšia strana krabice.

4
Zmerajte výšku krabice. Toto je posledný parameter, ktorý ste ešte nemerali. Predstavuje vzdialenosť od horného okraja škatule po spodok. Zaznamenajte hodnotu tohto merania ako "výšku".
V závislosti od toho, na ktorú stranu ste krabicu položili, sa konkrétne strany, ktoré označíte ako „dĺžka“, „šírka“ alebo „výška“, môžu líšiť. To však nevadí, stačí vám miery z troch rôznych strán.

5
Vynásobte výsledky troch meraní spolu. Ako už bolo uvedené, vzorec na výpočet objemu je nasledovný: V = Dĺžka x Šírka x Výška; preto, aby ste získali objem, jednoducho musíte vynásobiť všetky tri strany. Nezabudnite uviesť jednotky, ktoré ste použili pri výpočte, aby ste nezabudli, čo presne hodnoty znamenajú.

6
Pri uvádzaní jednotiek objemu nezabudnite uviesť tretiu mocninu " 3 ". Vypočítaný objem má číselné vyjadrenie, no bez správneho uvedenia merných jednotiek budú vaše výpočty bezvýznamné. Aby správne odrážali jednotky objemu, musia byť uvedené v kocke. Ak by sa napríklad všetky strany merali v centimetroch, jednotky objemu by boli špecifikované ako "cm3".
Príklad problému: "Ak má krabica dĺžku 2 m, šírku 1 m a výšku 3 m, aký je jej objem?"
V = D x Š x V
V = 2m x 1m x 4m
V \u003d 8 m 3
Poznámka: Zadanie kubických jednotiek objemu vám umožní pochopiť, koľko takýchto kociek je možné umiestniť do krabice. Ak sa odvoláme na predchádzajúci príklad, znamená to, že v krabici je umiestnených osem metrov kubických.

Výpočet objemu krabíc iných tvarov

Určte objem valca. Valec je okrúhla trubica s kruhmi na oboch koncoch. Na určenie objemu valca sa používa vzorec: V = π x r 2 x h, kde π = 3,14, r je polomer okrúhlej strany valca a h je jeho výška.
Na určenie objemu kužeľa alebo pyramídy s okrúhlou základňou sa používa rovnaký vzorec, ale vynásobený 1/3. To znamená, že objem kužeľa sa vypočíta podľa vzorca: V = 1/3 (π x r 2 x h)

2
Určte objem pyramídy. Pyramída je postava, ktorá má plochú základňu a strany sa zbiehajú hore do jedného bodu. Na určenie objemu pyramídy musíte vziať 1/3 súčinu plochy základne a výšky. To znamená, že vzorec výpočtu je nasledujúci: Objem pyramídy = 1/3 (plocha základne x výška).
Vo väčšine prípadov majú pyramídy štvorcovú alebo obdĺžnikovú základňu. V takejto situácii sa plocha základne vypočíta vynásobením dĺžky základne šírkou.

Ak chcete určiť objem krabice zložitých tvarov, pridajte objemy jej jednotlivých častí. Napríklad možno budete musieť zmerať objem škatule v tvare písmena „L“. V tomto prípade bude mať krabica viac strán na meranie. Ak toto pole rozdelíte na dve časti, môžete štandardným spôsobom zmerať objem týchto dvoch častí a výsledné hodnoty potom sčítať. V prípade škatule v tvare L možno dlhšiu časť považovať za samostatnú dlhú obdĺžnikovú škatuľu a kratšiu časť za štvorcovú (alebo takmer štvorcovú) škatuľku, ktorá je k nej pripevnená.
Ak má vaša krabica veľmi zložité tvary, potom vedzte, že existuje mnoho spôsobov, ako určiť objem predmetov akéhokoľvek tvaru.

    Napíšte program, ktorý porovná dve celé čísla zadané z klávesnice. Program musí uviesť, ktoré číslo je väčšie, alebo ak sú čísla rovnaké, zobrazí príslušnú správu.

    Napíšte dve celé čísla a stlačte Enter.
    -> 34 67
    34 menej ako 67

    s Ada.Text_IO; použite Ada.Text_IO; s Ada.Integer_Text_IO; použite Ada.Integer_Text_IO; procedura main je A, B: Integer; begin Put_Line("Zadajte dve celé čísla na jeden riadok a stlačte Enter."); dať("->"); Dostať); Get(B); --Zadajte 2 čísla, ak A > B, potom Put(Položka =>; A, Šírka =>; 1); put("väčšie ako"); Put(Položka => B, Šírka => 1); elsif A< B then Put(Item =>A, šírka => 1); put("menej ako"); Put(Položka => B, Šírka => 1); else Put("Zadané čísla sa rovnajú!"); koniec Ak; koniec hlavného;

    Zadané sú tri celé čísla. Nájdite najväčšiu z nich (program by mal vypísať presne jedno celé číslo). Najväčší v tomto probléme sa chápe ako číslo, ktoré nie je menšie ako ktorékoľvek iné.


  • -> 1 2 3
    Maximálne tri čísla: 3
  • s Ada.Text_IO ; použite Ada.Text_IO ; s Ada.Integer_Text_IO ; použite Ada.Integer_Text_IO ; procedura main je A, B, C: Integer; max: celé číslo; begin Put_Line( "Zadajte tri celé čísla na jeden riadok a stlačte Enter."); Put("-> "); Dostať); Get(B) ; Get(C); --Zadajte tri celé čísla max:=A; --predvolené usudzujeme, že číslo A je maximum ak B > max --Ak je B väčšie ako maximum, potom max:=B; --maximálny počet je B koniec Ak ; ak C > max potom --Ak je C väčšie ako maximum, potom max:=C; --maximálny počet je C koniec Ak ; Vložte ( "Maximálne tri čísla:"& Integer"image(max) ); end main;

    s Ada.Text_IO; použite Ada.Text_IO; s Ada.Integer_Text_IO; použite Ada.Integer_Text_IO; procedura main je A, B, C: Integer; max: celé číslo; begin Put_Line("Zadajte tri celé čísla na jeden riadok a stlačte Enter."); dať("->"); Dostať); Get(B); Get(C); --Zadajte maximálne tri celé čísla:= A; --v predvolenom nastavení predpokladáme, že číslo A je maximum, ak B > max, potom --Ak je B väčšie ako maximum, potom max:= B; --maximálny počet je B end if; ak C > max potom --Ak je C väčšie ako max, potom max:= C; --maximálny počet sa rovná C end if; Put("Maximum troch čísel:" & Integer"image(max)); end main;

    Dané tri prirodzené čísla A, B, C. Určte, či existuje trojuholník s týmito stranami. Ak trojuholník existuje, vytlačte správu, že trojuholník s takými stranami existuje, v opačnom prípade vytlačte, že trojuholník neexistuje.

  • Zadajte tri strany trojuholníka a stlačte kláves Enter.
    -> 3 4 5
    Existuje trojuholník so stranami 3, 4, 5.
  • Trojuholník sú tri body, ktoré neležia na tej istej priamke. Trojuholník existuje iba vtedy, ak súčet akýchkoľvek dvoch jeho strán je väčší ako tretia.

  • s Ada.Integer_Text_IO ; použite Ada.Integer_Text_IO ; --Na čítanie celých čísel s Ada.Text_IO ; použite Ada.Text_IO ; --Na zobrazenie reťazcov procedura main je a, b, c: Integer; begin Put_Line( "Zadajte tri strany trojuholníka a stlačte Enter.Enter."); Put("-> "); Dostať); Get(b) ; Get(c); -- Prečítajte si strany trojuholníka ak a + b > c a potom b + c > a a potom c + a > b potom --Skontrolujte všetky podmienky v jednom riadku Vložte ( "Trojuholník so stranami"& Integer"image(a) & "," & Integer"image(b) & "," & Integer"image(c) & "existuje" ) ; else Put( "Trojuholník so stranami"& Integer"image(a) & "," & Integer"image(b) & "," & Integer"image(c) & "neexistuje" ); end if ; end main;

    s Ada.Integer_Text_IO; použite Ada.Integer_Text_IO; --Na čítanie celých čísel pomocou Ada.Text_IO; použite Ada.Text_IO; --Na tlač reťazcov je procedúra main a, b, c: Integer; begin Put_Line("Zadajte tri strany trojuholníka a stlačte Enter.Enter."); dať("->"); dostať); dostať (b); dostať (c); --Prečítajte strany trojuholníka, ak a + b > c a potom b + c > a a potom c + a > b potom --Skontrolujte všetky podmienky v jednom riadku Put("Trojuholník so stranami" & Celé číslo"obrázok(a) & " ," & Integer"image(b) & "," & Integer"image(c) & "existuje"); else Put("Trojuholnik so stranami" & Integer"image(a) & "," & Integer"image( b) & "," & Integer"obrázok (c) & "neexistuje"); koniec Ak; koniec hlavného;

    Zadané sú tri celé čísla. Určte, koľko z nich sa zhoduje. Program by mal vypísať jedno z čísel: 3 (ak sú všetky rovnaké), 2 (ak sú dve rovnaké) alebo 0 (ak sú všetky odlišné).

  • Napíšte tri celé čísla a stlačte Enter.
    -> 1 2 3
    0
  • s Ada.Text_IO ; použite Ada.Text_IO ; s Ada.Integer_Text_IO ; použite Ada.Integer_Text_IO ; postup Main is A, B, C: Integer; begin Put_Line( "Zadajte tri celé čísla a stlačte Enter."); Put("-> "); Dostať); Get(B) ; Get(C); ak A = B a potom A = C, potom --Ak sa všetky tri čísla zhodujú Put(Položka => 3 , Šírka => 1 ) ; elsif A = B alebo A = C alebo B = C potom --Ak sa zhodujú dve čísla Put(Položka => 2 , Šírka => 1 ) ; inak --Ak rovnaké čísla Nie Put(Položka => 0 , Šírka => 1 ) ; koniec Ak ; endMain;

    s Ada.Text_IO; použite Ada.Text_IO; s Ada.Integer_Text_IO; použite Ada.Integer_Text_IO; postup Main is A, B, C: Integer; begin Put_Line("Zadajte tri celé čísla a stlačte Enter."); dať("->"); Dostať); Get(B); Get(C); ak A = B a potom A = C potom --Ak sa všetky tri čísla zhodujú Put(Položka => 3, Šírka => 1); elsif A = B alebo A = C alebo B = C potom --Ak sa dve čísla zhodujú Put(Položka => 2, Šírka => 1); else --Ak neexistujú identické čísla Put(Item => 0, Width => 1); koniec Ak; endMain;

    Šachová veža sa pohybuje horizontálne alebo vertikálne. Dané dve rôzne bunky šachovnica, určiť, či sa veža môže presunúť z prvej bunky do druhej v jednom ťahu. Program dostane ako vstup štyri čísla od 1 do 8, každé s uvedením čísla stĺpca a čísla riadku, najprv pre prvú bunku, potom pre druhú bunku. Program by mal vypísať "ÁNO", ak je možné dostať sa do druhej z prvej bunky pohybom veže, alebo "NIE" inak.


  • 4 4
    5 5
    NIE
  • ); Put() ; Dostať); Get(B) ; Put() ; Get(C); Get(D); ak A = C alebo B = D, potom Put("ÁNO" ); else Put("NIE" ) ; koniec Ak ; endMain;

    s Ada.Integer_Text_IO; použite Ada.Integer_Text_IO; s Ada.Text_IO; použite Ada.Text_IO; procedure Main je podtyp checkBoard je Integer rozsah 1..8; A, B, C, D: kontrolná doska; begin Put_Line("Zadajte čísla stĺpcov a riadkov pre dve bunky:"); Put("Zadajte čísla stĺpcov a riadkov pre prvú bunku a stlačte: "); Dostať); Get(B); Put("Zadajte čísla stĺpcov a riadkov pre druhú bunku a stlačte: "); Get(C); Get(D); ak A = C alebo B = D, potom Put("ÁNO"); else Put("NIE"); koniec Ak; endMain;

    Šachový kráľ sa pohybuje horizontálne, vertikálne a diagonálne, ale len o 1 pole. Vzhľadom na dve rôzne bunky na šachovnici určite, či sa kráľ dokáže dostať z prvej bunky do druhej v jednom ťahu. Program dostane ako vstup štyri čísla od 1 do 8, každé s uvedením čísla stĺpca a čísla riadku, najprv pre prvú bunku, potom pre druhú bunku. Program by mal vypísať "ÁNO", ak je možné dostať sa do druhej z prvej bunky ťahom kráľa, alebo "NIE" inak.

  • Zadajte čísla stĺpcov a riadkov pre dve bunky:
    Zadajte čísla stĺpcov a riadkov pre prvú bunku a stlačte: 4 4
    Zadajte čísla stĺpcov a riadkov pre druhú bunku a stlačte: 5 5
    ÁNO
  • "Zadajte čísla stĺpcov a riadkov pre dve bunky:"); Vložte ( "Zadajte čísla stĺpcov a riadkov pre prvú bunku a stlačte: "); Dostať); Get(B) ; Vložte ( "Zadajte čísla stĺpcov a riadkov pre druhú bunku a stlačte: "); Get(C); Get(D); ak abs (A - C)<= 1 and then abs (B - D) <= 1 then -- príkaz abs() vráti absolútnu hodnotu -- hodnota (modul) čísla Vložte("ÁNO"); else Put("NIE" ) ; koniec Ak ; koniec hlavného;

    s Ada.Integer_Text_IO; použite Ada.Integer_Text_IO; s Ada.Text_IO; použite Ada.Text_IO; procedure main je podtyp checkBoard is Integer range 1..8; A, B, C, D: kontrolná doska; begin Put_Line("Zadajte čísla stĺpcov a riadkov pre dve bunky:"); Put("Zadajte čísla stĺpcov a riadkov pre prvú bunku a stlačte: "); Dostať); Get(B); Put("Zadajte čísla stĺpcov a riadkov pre druhú bunku a stlačte: "); Get(C); Get(D); ak abs(A - C)<= 1 and then abs(B - D) <= 1 then -- команда abs() возвращает абсолютное --значение (модуль) числа Put("ДА"); else Put("НЕТ"); end if; end main;

    Šachový strelec sa pohybuje diagonálne. Vzhľadom na dve rôzne bunky na šachovnici určite, či sa strelec môže dostať z prvej bunky do druhej v jednom ťahu. Program dostane ako vstup štyri čísla od 1 do 8, každé s uvedením čísla stĺpca a čísla riadku, najprv pre prvú bunku, potom pre druhú bunku. Program by mal vydať "ÁNO", ak je možné dostať sa do druhej z prvej bunky pohybom strelca, alebo "Nie" inak.

  • Zadajte čísla stĺpcov a riadkov pre dve bunky:
    Zadajte čísla stĺpcov a riadkov pre prvú bunku a stlačte: 4 4
    Zadajte čísla stĺpcov a riadkov pre druhú bunku a stlačte: 5 5
    ÁNO
  • s Ada.Integer_Text_IO ; použite Ada.Integer_Text_IO ; s Ada.Text_IO ; použite Ada.Text_IO ; procedure main je podtyp checkBoard is Integer range 1 ..8 ; A, B, C, D: kontrolná doska; begin Put_Line( "Zadajte čísla stĺpcov a riadkov pre dve bunky:"); Vložte ( "Zadajte čísla stĺpcov a riadkov pre prvú bunku a stlačte: "); Dostať); Get(B) ; Vložte ( "Zadajte čísla stĺpcov a riadkov pre druhú bunku a stlačte: "); Get(C); Get(D); if abs (a - c) = abs (b - d) then Put("YES" ) ; else Put("NIE" ) ; koniec Ak ; koniec hlavného;

    s Ada.Integer_Text_IO; použite Ada.Integer_Text_IO; s Ada.Text_IO; použite Ada.Text_IO; procedure main je podtyp checkBoard is Integer range 1..8; A, B, C, D: kontrolná doska; begin Put_Line("Zadajte čísla stĺpcov a riadkov pre dve bunky:"); Put("Zadajte čísla stĺpcov a riadkov pre prvú bunku a stlačte: "); Dostať); Get(B); Put("Zadajte čísla stĺpcov a riadkov pre druhú bunku a stlačte: "); Get(C); Get(D); ak abs(a - c) = abs(b - d) potom Put("ÁNO"); else Put("NIE"); koniec Ak; koniec hlavného;

    Šachová dáma sa pohybuje diagonálne, horizontálne alebo vertikálne. Vzhľadom na dve rôzne bunky na šachovnici určite, či sa dáma dokáže dostať z prvej bunky do druhej v jednom ťahu.

    Formát vstupných údajov:
    Program dostane ako vstup štyri čísla od 1 do 8, každé s uvedením čísla stĺpca a čísla riadku, najprv pre prvú bunku, potom pre druhú bunku.
    Výstupný formát:
    Program by mal vydať ÁNO, ak je možné dostať sa z prvej bunky do druhej ťahom dámy, alebo NIE v opačnom prípade.

    Príklad 1:
    Zadajte čísla stĺpcov a riadkov pre dve bunky:
    Zadajte čísla stĺpcov a riadkov pre prvú bunku a stlačte: 1 1
    Zadajte čísla stĺpcov a riadkov pre druhú bunku a stlačte: 2 2
    ÁNO

    Príklad 2:
    Zadajte čísla stĺpcov a riadkov pre dve bunky:
    Zadajte čísla stĺpcov a riadkov pre prvú bunku a stlačte: 1 1
    Zadajte čísla stĺpcov a riadkov pre druhú bunku a stlačte: 2 3
    NIE

  • s Ada.Integer_Text_IO ; použite Ada.Integer_Text_IO ; s Ada.Text_IO ; použite Ada.Text_IO ; procedure Main je podtyp checkBoard is Integer range 1 ..8 ; A, B, C, D: kontrolná doska; begin Put_Line( "Zadajte čísla stĺpcov a riadkov pre dve bunky:"); Vložte ( "Zadajte čísla stĺpcov a riadkov pre prvú bunku a stlačte: "); Dostať); Get(B) ; Vložte ( "Zadajte čísla stĺpcov a riadkov pre druhú bunku a stlačte: "); Get(C); Get(D); ak abs (A - C) = abs (B - D) alebo A = D alebo B = C, potom Put("ÁNO" ); else Put("NIE" ) ; koniec Ak ; endMain;

    s Ada.Integer_Text_IO; použite Ada.Integer_Text_IO; s Ada.Text_IO; použite Ada.Text_IO; procedure Main je podtyp checkBoard je Integer rozsah 1..8; A, B, C, D: kontrolná doska; begin Put_Line("Zadajte čísla stĺpcov a riadkov pre dve bunky:"); Put("Zadajte čísla stĺpcov a riadkov pre prvú bunku a stlačte: "); Dostať); Get(B); Put("Zadajte čísla stĺpcov a riadkov pre druhú bunku a stlačte: "); Get(C); Get(D); ak abs(A - C) = abs(B - D) alebo A = D alebo B = C, potom Put("ÁNO"); else Put("NIE"); koniec Ak; endMain;

    Šachový kôň sa pohybuje v písmene „G“ - dve políčka vertikálne v ľubovoľnom smere a jedno políčko horizontálne alebo naopak. Vzhľadom na dve rôzne bunky na šachovnici určite, či sa rytier dokáže dostať z prvej bunky do druhej v jednom ťahu. Program dostane ako vstup štyri čísla od 1 do 8, každé s uvedením čísla stĺpca a čísla riadku, najprv pre prvú bunku, potom pre druhú bunku. Program by mal vydať ÁNO, ak sa rytier môže presunúť z prvej bunky do druhej, alebo inak NIE.

    Príklad 1:
    Zadajte čísla stĺpcov a riadkov pre dve bunky:
    Zadajte čísla stĺpcov a riadkov pre prvú bunku a stlačte: 1 1
    Zadajte čísla stĺpcov a riadkov pre druhú bunku a stlačte: 1 4
    NIE

    Príklad 2:
    Zadajte čísla stĺpcov a riadkov pre dve bunky:
    Zadajte čísla stĺpcov a riadkov pre prvú bunku a stlačte: 1 1
    Zadajte čísla stĺpcov a riadkov pre druhú bunku a stlačte: 8 8
    NIE

  • s Ada.Text_IO ; použite Ada.Text_IO ; s Ada.Integer_Text_IO ; použite Ada.Integer_Text_IO ; procedure main je podtyp checkBoard is Integer range 1 ..8 ; A, B, C, D: celé číslo; begin Put_Line( "Zadajte čísla stĺpcov a riadkov pre dve bunky:"); Vložte ( "Zadajte čísla stĺpcov a riadkov pre prvú bunku a stlačte: "); Dostať); Get(B) ; Vložte ( "Zadajte čísla stĺpcov a riadkov pre druhú bunku a stlačte: "); Get(C); Get(D); ak abs (A - C) = 2 a potom abs (B - D) = 1, potom Put("ÁNO" ); elsif abs (A - C) = 1 a potom abs (B - D) = 2 potom Put("YES" ) ; else Put("NIE" ) ; koniec Ak ; koniec hlavného;

    s Ada.Text_IO; použite Ada.Text_IO; s Ada.Integer_Text_IO; použite Ada.Integer_Text_IO; procedure main je podtyp checkBoard is Integer range 1..8; A, B, C, D: celé číslo; begin Put_Line("Zadajte čísla stĺpcov a riadkov pre dve bunky:"); Put("Zadajte čísla stĺpcov a riadkov pre prvú bunku a stlačte: "); Dostať); Get(B); Put("Zadajte čísla stĺpcov a riadkov pre druhú bunku a stlačte: "); Get(C); Get(D); ak abs(A - C) = 2 a potom abs(B - D) = 1, potom Put("ÁNO"); elsif abs(A - C) = 1 a potom abs(B - D) = 2, potom Put("ÁNO"); else Put("NIE"); koniec Ak; koniec hlavného;

    Čokoláda má tvar obdĺžnika rozdeleného na N×M plátkov. Čokoláda môže byť rozdelená raz v priamke na dve časti. Určte, či sa takto dá z čokoládovej tyčinky odlomiť presne K plátkov. Program dostane ako vstup tri čísla: N, M, K. Program musí vydať jedno z dvoch slov: „ÁNO“ alebo „Nie“.

    Príklad 1:
    4
    2
    6
    ÁNO

    Príklad 2:
    Počet rezov vodorovne: 2
    Počet rezov vertikálne: 10
    Koľko plátkov oddeliť: 7
    NIE

  • s Ada.Text_IO ; použite Ada.Text_IO ; s Ada.Integer_Text_IO ; použite Ada.Integer_Text_IO ; postup Main je N, M, K: Integer; začať Put( "Počet rezov vodorovne:"); Get(N) ; Vložte ( "Počet rezov vertikálne:"); Get(M) ; Vložte ( "Koľko plátkov oddeliť:"); Get(K) ; ak K > M * N potom --Ak sa od čokoládovej tyčinky požaduje, aby sa odlomila viac ako samotná čokoládová tyčinka dať("NIE"); elsif K rem N = 0 a potom K >= N potom - Odlamujte vodorovne Vložte("ÁNO"); elsif K rem M = 0 a potom K >= M potom - Vertikálne odlomiť Vložte("ÁNO"); else Put("NIE" ) ; koniec Ak ; endMain;

    s Ada.Text_IO; použite Ada.Text_IO; s Ada.Integer_Text_IO; použite Ada.Integer_Text_IO; postup Main je N, M, K: Integer; begin Put("Počet rezov vodorovne: "); Get(N); Put("Počet rezov vertikálne: "); Get(M); Put("Koľko rezov oddeliť: "); Get(K); if K > M * N then --Ak sa požaduje, aby sa čokoládová tyčinka odlomila viac ako samotná čokoládová tyčinka Put("NO"); elsif K rem N = 0 a potom K >= N potom -- Odlomiť vodorovne Put("ÁNO"); elsif K rem M = 0 a potom K >= M potom -- Zvisle odlomit Put("YES"); else Put("NIE"); koniec Ak; endMain;

    Yasha plávala v bazéne s rozmermi N × M metrov a unavila sa. V tomto bode sa ocitol X metrov od jednej z dlhých ríms (nie nevyhnutne najbližšej) a Y metrov od jednej z krátkych ríms. Aká je minimálna vzdialenosť, ktorú musí Yasha preplávať, aby sa dostala z bazéna nabok? Program dostane ako vstup čísla N, M, X, Y. Program musí vydať počet metrov, ktoré Yasha potrebuje preplávať do strany.

  • Šírka bazéna: 23
    Dĺžka bazéna: 52
    Vzdialenosť od Yasha k dlhej strane: 8
    Vzdialenosť od Yasha na krátku stranu: 43
    Aby ste sa dostali z bazéna, musíte plávať aspoň: 8
  • Je možné, že na vyriešenie problému budete musieť vymeniť 2 premenné. Tento algoritmus vyzerá asi takto:

    a, b, tmp: celé číslo; -- Deklarovanie premenných. Dve hlavné a jedna pomocná a:= 3; --Inicializácia premennej a b:= 5; --Inicializácia premennej b --Samotný algoritmus: tmp:= a; --Teraz tmp = 3 a a = 3 a:= b; --Teraz a = 5 a b = 5; b:=tmp; --Teraz b = 3

  • s Ada.Text_IO ; použite Ada.Text_IO ; s Ada.Integer_Text_IO ; použite Ada.Integer_Text_IO ; postup Main je N, M, X, Y: celé číslo; -- N - krátky okraj, M - dlhý okraj: -- X - Vzdialenosť k jednej z dlhých strán -- Y - Vzdialenosť k jednej z krátkych strán Tmp: celé číslo; začať Put( "Šírka bazéna: "); Get(N) ; Vložte ( "Dĺžka bazéna: "); Get(M) ; Vložte ( "Vzdialenosť od Yasha k dlhej strane:"); Get(X) ; Vložte ( "Vzdialenosť od Yasha na krátku stranu:"); Get(Y) ; ak N > M tak --Ak sa strany počas zadávania pomiešajú, zmeníme ich miesta: Teplota topenia: = M; --Uložte dĺžku M do dočasnej premennej M:=N; --Priraďte premennej M novú hodnotu N: = Tmp; --Obnovte dĺžku M v premennej N koniec Ak ; Tmp:=X; --Predpokladajme, že minimálna vzdialenosť je X ak abs(N-X)< X then --Ak je vzdialenosť k druhej dlhej hrane menšia ako X, potom Teplota topenia: = N-X; -- minimálna vzdialenosť rovná vzdialenosti k druhej dlhej strane koniec Ak ; ak Y< Tmp then --Ak je vzdialenosť ku krátkej hrane menšia ako vzdialenosť uvedená vyššie -- teda minimum Tt:=Y; --Minimálna vzdialenosť je Y koniec Ak ; ak abs (M - Y)< Tmp then --Ak budete plávať bližšie k druhej krátkej strane, potom Tmp:= abs (M - Y); --minimálna vzdialenosť sa rovná vzdialenosti k druhej krátkej rímse koniec Ak ; Vložte ( "Musíš plávať aspoň aby ​​si sa dostal z bazéna."); Put(Položka => Tmp, Width => 1 ) ; endMain;

    s Ada.Text_IO; použite Ada.Text_IO; s Ada.Integer_Text_IO; použite Ada.Integer_Text_IO; postup Main je N, M, X, Y: celé číslo; -- N - krátka rímsa, M - dlhá rímsa: -- X - Vzdialenosť k jednej z dlhých ríms -- Y - Vzdialenosť k jednej z krátkych ríms Tmp: Celé číslo; begin Put("Šírka bazénu: "); Get(N); Put("Dĺžka bazénu: "); Get(M); Put("Vzdialenosť od Yasha k dlhej strane: "); Get(X); Put("Vzdialenosť od Yasha po krátky okraj: "); Get(Y); ak N > M then --Ak sa hrany pri zadávaní pomiešajú, potom ich miesta zmeníme: Tmp:= M; --Uložte dĺžku M do dočasnej premennej M:= N; --Priraďte novú hodnotu premennej M N:= Tmp; --Obnovte dĺžku M v premennej N end if; Tmp:=X; --Predpokladajme, že minimálna vzdialenosť je X, ak abs(N - X)< X then --Если до второго длинного бортика расстояние меньше X, то Tmp:= N - X; --минимальное расстояние равно расстоянию до второго длинного бортика end if; if Y < Tmp then --Если до короткого бортика расстояние меньше найденного выше --минимального, то Tmp:= Y; --Минимальное расстояние равно Y end if; if abs(M - Y) < Tmp then --Если до второго короткого бортика плыть ближе, то Tmp:= abs(M - Y); --минимальное расстояние равно расстоянию до второго короткого бортика end if; Put("Нужно проплыть минимум, чтобы выбраться из бассейна: "); Put(Item =>Tmp, šírka => 1); endMain;

    Elektronické hodiny ukazujú čas vo formáte h:mm:ss (od 0:00:00 do 23:59:59), teda najprv sa zaznamená počet hodín, potom je povinný dvojciferný počet minút , potom je dvojciferný počet sekúnd povinný. V prípade potreby sa doplní počet minút a sekúnd dvojciferné číslo nuly. Od začiatku dňa uplynulo N sekúnd. Uveďte, čo ukazujú hodiny. Vstupom je prirodzené číslo N nepresahujúce 10 7 (10000000). Vypíšte odpoveď na problém.

    Príklad vstupu 1:
    3602
    Príklad výstupu 1:
    1:00:02

    Príklad vstupu 2:
    129700
    Príklad výstupu 2:
    12:01:40

  • s Ada.Long_Integer_Text_IO ; použite Ada.Long_Integer_Text_IO ; s Ada.Text_IO ; použite Ada.Text_IO ; procedure Main je podtyp Sub_LI je Long_Integer rozsah 1 ..10000000 ; N: Sub_LI; h, m, s: Long_Integer; begin Get(N) ; h:= N/3600; - Dostali sme hodiny. Zvyšok divízie sa zahodí N:= N-h* 3600; --Získajte zostávajúce sekundy (mínus hodiny) ak h > 24, potom --Keďže hodiny neukazujú > 24, dali sme všetko do čitateľnej formy h:= h rem 24; --Zvyšok po delení 24 poskytne presný počet hodín elsif h = 24 potom h:= 0 ; koniec Ak ; m:= N/60; -- Získajte minúty s:= N rem60; -- Získajte sekundy Put(Položka => h, Šírka => 1 ) ; Put(":"); --Výstupné hodiny a ":" ak m< 10 then --Ak je počet minút menší ako 10, uveďte úvodnú 0 Put(Položka => 0 , Šírka => 1 ) ; koniec Ak ; Put(Položka => m, Šírka => 1 ) ; Put(":"); --Výstupné minúty a ":" ak s< 10 then --Ak je počet sekúnd menší ako 10, vypíšte úvodnú 0 Put(Položka => 0 , Šírka => 1 ) ; koniec Ak ; Put(Položka => s, Šírka => 1 ) ; --Výstupné sekundy koniec Main;

    s Ada.Long_Integer_Text_IO; použite Ada.Long_Integer_Text_IO; s Ada.Text_IO; použite Ada.Text_IO; procedure Main je podtyp Sub_LI je Long_Integer rozsah 1..10000000; N: Sub_LI; h, m, s: Long_Integer; begin Get(N); h:= N/3600; - Dostali sme hodiny. Zvyšok delenia sa zahodí N:= N - h * 3600; --Získajte zostávajúce sekundy (mínus hodiny), ak h > 24, potom --Keďže hodiny nedokážu čítať > 24, uveďte všetko v ľudsky čitateľnej forme h:= h rem 24; --Zvyšok delenia 24 poskytne presný počet hodín elsif h = 24 potom h:= 0; koniec Ak; m:= N/60; --Získajte minúty s:= N rem 60; --Získať sekundy Put(Položka => h, šírka => 1); Put(":"); --Výstupné hodiny a ":", ak m< 10 then --Если количество минут меньше 10, выводим ведущий 0 Put(Item =>0, šírka => 1); koniec Ak; Put(Položka => m, Šírka => 1); Put(":"); --Výstup minút a ":", ak s< 10 then --Если количество секунд меньше 10, выводим ведущий 0 Put(Item =>0, šírka => 1); koniec Ak; Put(Položka => s, Šírka => 1); --Výstupné sekundy koniec Main;

  • Uvádzajú sa tri čísla. Usporiadajte ich vo vzostupnom poradí.
  • Príklad vstupu:
    1 2 1
    Ukážkový výstup:
    1 1 2
  • s Ada.Integer_Text_IO ; použite Ada.Integer_Text_IO ; s Ada.Text_IO ; použite Ada.Text_IO ; postup Main is A, B, C: Integer; min, stred, max: celé číslo; begin Get(A) ; Get(B) ; Get(C); --Hľadajú minimálna hodnota min:=A; ak B< min then min:= B; end if ; if C < min then min:= C; end if ; --Hľadajú maximálna hodnota max:=A; ak B > max, potom max:= B; koniec Ak ; ak C > max, potom max:= C; koniec Ak ; --Hľadá priemernú hodnotu stred:=A; ak B > min a B< max then mid:= B; end if ; if C >min a C< max then mid:= C; end if ; Put(Item =>min, šírka => 1); dať(" "); Put(Položka => stred, šírka => 1 ) ; dať(" "); Put(Položka => max, Šírka => 1 ) ; endMain;

    s Ada.Integer_Text_IO; použite Ada.Integer_Text_IO; s Ada.Text_IO; použite Ada.Text_IO; postup Main is A, B, C: Integer; min, stred, max: celé číslo; begin Get(A); Get(B); Get(C); --Hľadá minimálnu hodnotu min:= A; ak B< min then min:= B; end if; if C < min then min:= C; end if; --Ищем максимальное значение max:= A; if B >max potom max:= B; koniec Ak; ak C > max, potom max:= C; koniec Ak; --Hľadá priemernú hodnotu mid:= A; ak B > min a B< max then mid:= B; end if; if C >min a C< max then mid:= C; end if; Put(Item =>min, šírka => 1); dať(" "); Put(Položka => stred, šírka => 1); dať(" "); Put(Položka => max, Šírka => 1); endMain;

    Sú dve krabice, prvá je A1×B1×C1, druhá je A2×B2×C2. Zistite, či je možné jednu z týchto škatúľ umiestniť do druhej za predpokladu, že škatule možno otočiť len o 90 stupňov okolo okrajov. Program dostane ako vstup čísla A1, B1, C1, A2, B2, C2. Program by mal vypísať jeden z nasledujúcich riadkov:
    - "Pole sú rovnaké", ak sú políčka rovnaké,
    -"Prvá krabica menej ako sekundu"ak je možné prvú krabicu umiestniť do druhej,
    -"Prvá krabica viac ako sekundu" ak je možné umiestniť druhú krabicu do prvej.

    Príklad 1:
    Rozmery prvej krabice: 1 2 3
    Rozmery druhého boxu: 3 2 1
    Krabice sú rovnaké

    Príklad 2:
    Rozmery prvej krabice: 2 2 3
    Rozmery druhého boxu: 3 2 1
    Prvý box je väčší ako druhý

  • s Ada.Integer_Text_IO ; použite Ada.Integer_Text_IO ; s Ada.Text_IO ; použite Ada.Text_IO ; procedura main je A1, B1, C1, A2, B2, C2: Integer; min, max, stred, tmp: celé číslo; begin Get(A1) ; Get(B1) ; Get(C1) ; Get(A2) ; Get(B2) ; Get(C2) ; --Zarovnajte plochy s dĺžkami A1 => A2, B1 => B2, C1 => C2: --A1 a A2 sú najdlhšie, C1 a C2 sú najkratšie -- "Roztočte" prvé políčko: min:=A1; stred:=B1; max:=Cl; ak B1< min then mid:= min; min:= B1; end if ; if C1 < min then max:= min; min:= C1; end if ; if mid >max potom tmp:= mid; stred:=max; max:=tmp; koniec Ak ; Al: = min; B1:=stredný; C1:=max; -- "Roztočte" druhé políčko: min:=A2; stred:=B2; max:=C2; ak B2< min then mid:= min; min:= B2; end if ; if C2 < min then max:= min; min:= C2; end if ; if mid >max potom tmp:= mid; stred:=max; max:=tmp; koniec Ak ; A2: = min; B2: = stred; C2:=max; --Kontrola zhody políčok a zobrazenie výsledku: ak A1 = A2 a potom B1 = B2 a potom C1 = C2, potom Put_Line("Pole sú rovnaké" ); elsif A1 >= A2 a potom B1 >= B2 a potom C1 >= C2 potom Put_Line( "Prvé políčko je väčšie ako druhé"); Elsif A1<= A2 and then B1 <= B2 and then C1 <= C2 then Put_Line("Prvé políčko je menšie ako druhé"); koniec Ak ; koniec hlavného;

    s Ada.Integer_Text_IO; použite Ada.Integer_Text_IO; s Ada.Text_IO; použite Ada.Text_IO; procedura main je A1, B1, C1, A2, B2, C2: Integer; min, max, stred, tmp: celé číslo; begin Get(A1); Get(B1); Get(C1); Get(A2); Get(B2); Get(C2); --Zarovnajte okraje s dĺžkami A1 => A2, B1 => B2, C1 => C2: --A1 a A2 - najdlhšia, C1 a C2 - najkratšia -- "Otočte" prvé políčko: min := Al; stred:=B1; max:=Cl; ak B1< min then mid:= min; min:= B1; end if; if C1 < min then max:= min; min:= C1; end if; if mid >max potom tmp:= mid; stred:=max; max:=tmp; koniec Ak; Al: = min; B1:=stredný; C1:=max; -- "Roztočte" druhé políčko: min:= A2; stred:=B2; max:=C2; ak B2< min then mid:= min; min:= B2; end if; if C2 < min then max:= min; min:= C2; end if; if mid >max potom tmp:= mid; stred:=max; max:=tmp; koniec Ak; A2: = min; B2: = stred; C2:=max; --Skontrolujte, či sa políčka zhodujú, a vypíšte výsledok: ak A1 = A2 a potom B1 = B2 a potom C1 = C2, potom Put_Line("Pole sú rovnaké"); elsif A1 >= A2 a potom B1 >= B2 a potom C1 >= C2 potom Put_Line("Prvé políčko je väčšie ako druhé"); Elsif A1<= A2 and then B1 <= B2 and then C1 <= C2 then Put_Line("Первая коробка меньше второй"); end if; end main;

    Napíšte program, ktorý vypočíta náklady na diaľkový telefonický rozhovor (cena jednej minúty je určená vzdialenosťou do mesta, kde sa účastník nachádza). Počiatočnými údajmi pre program sú kód oblasti a trvanie hovoru. Nižšie sú uvedené kódy niektorých miest a odporúčané zobrazenie obrazovky počas spustenia programu:

  • Vypočítajte si cenu telefonického rozhovoru.
    Zadajte počiatočné údaje:
    Kód mesta -> 423
    Trvanie (celé minúty) -> 3
    mesto Vladivostok
    Cena za minútu: 4 ruble.
    Cena hovoru: 12 rubľov.
  • s Ada.Integer_Text_IO ; použite Ada.Integer_Text_IO ; s Ada.Text_IO ; použite Ada.Text_IO ; postup Hlavný je Kód, dĺžka: celé číslo; začať Put_Line ("Výpočet ceny telefonického rozhovoru.") ; Put_Line ("Zadajte počiatočné údaje:") ; Dajte ("Kód mesta ->") ; Získajte ( kód ) ; Dajte ("Trvanie (celé minúty) -> ") ; Získajte ( len ) ; prípad kód je kedy 423 => Put_Line ("mesto Vladivostok") ; Put_Line ("Cena za minútu: 4 ruble.") ; Dajte ("Cena hovoru: ") ; Dajte ( Položka => len * 4 , Šírka=> 1 ) ; Put_Line ("drhnúť.") ; kedy 095 => Put_Line ("mesto Moskva") ; Put_Line ("Cena za minútu: 2 ruble.") ; Dajte ("Cena hovoru: ") ; Dajte ( Položka => len * 2 , Šírka=> 1 ) ; Put_Line ("drhnúť.") ; kedy 815 => Put_Line ("Mesto: Murmansk") ; Put_Line ("Cena za minútu: 3 ruble.") ; Dajte ("Cena hovoru: ") ; Dajte ( Položka => len * 3 , Šírka=> 1 ) ; Put_Line ("drhnúť.") ; kedy 846 => Put_Line ("mesto Samara") ; Put_Line ("Cena za minútu: 1 rub.") ; Dajte ("Cena hovoru: ") ; Dajte ( Položka => dĺžka, šírka => 1 ) ; Put_Line ("drhnúť.") ; kedy iní=> Dajte ("V databáze nie je žiadne mesto s týmto kódom! Skúste to znova.") ; koniec prípad; koniec hlavné;

    s Ada.Integer_Text_IO; použite Ada.Integer_Text_IO; s Ada.Text_IO; použite Ada.Text_IO; postup Main is Code, Len: Integer; begin Put_Line("Výpočet ceny telefonického hovoru."); Put_Line("Zadajte počiatočné údaje:"); Put("Kód mesta -> "); získať kód); Put("Trvanie (celé číslo minúty) -> "); dostať (len); case Code is when 423 => Put_Line("Mesto: Vladivostok"); Put_Line("Cena za minútu: 4 ruble."); Put("Cena hovoru: "); Put(Položka => dĺžka * 4, šírka => 1); Put_Line(" rub."); keď 095 => Put_Line("Mesto: Moskva"); Put_Line("Cena za minútu: 2 ruble."); Put("Cena hovoru: "); Put(Položka => dĺžka * 2, šírka => 1); Put_Line(" rub."); keď 815 => Put_Line("Mesto: Murmansk"); Put_Line("Cena za minútu: 3 ruble."); Put("Cena hovoru: "); Put(Položka => dĺžka * 3, šírka => 1); Put_Line(" rub."); when 846 => Put_Line("Mesto: Samara"); Put_Line("Cena za minútu: 1 rub."); Put("Cena hovoru: "); Put(Položka => dĺžka, šírka => 1); Put_Line(" rub."); keď ostatní => Put("V databáze nie je žiadne mesto s týmto kódom! Skúste to znova."); koncový prípad; endMain;

Táto časť stručne popisuje operátorov ak a prípad, funkcia abs() a algoritmus na výmenu premenných.

Definícia.

Toto je šesťuholník, ktorého základne sú dve rovnaký štvorec a bočné strany sú rovnaké obdĺžniky

Bočné rebro- toto je spoločná strana dve susedné bočné steny

Výška hranola- toto je rez kolmo na základne hranoly

Uhlopriečka hranola- úsečka spájajúca dva vrcholy podstav, ktoré nepatria k tej istej ploche

Diagonálna rovina je rovina, ktorá prechádza uhlopriečkou hranola a jeho bočné rebrá

Diagonálny rez - hranice priesečníka hranola a diagonálnej roviny. Diagonálny rez pravidelného štvoruholníkového hranolu je obdĺžnik

Kolmý rez (ortogonálny rez)- je to priesečník hranola a roviny vedenej kolmo na jeho bočné hrany

Prvky pravidelného štvoruholníkového hranola

Na obrázku sú dva pravidelné štvoruholníkové hranoly, ktoré sú označené príslušnými písmenami:

  • Bázy ABCD a A 1 B 1 C 1 D 1 sú rovnaké a navzájom rovnobežné
  • Bočné plochy AA 1 D 1 D, AA 1 B 1 B, BB 1 C 1 C a CC 1 D 1 D, z ktorých každý je obdĺžnik
  • Bočný povrch- súčet plôch všetkých bočných plôch hranola
  • Celková plocha - súčet plôch všetkých základní a bočných plôch (súčet plochy bočnej plochy a základní)
  • Bočné rebrá AA 1 , BB 1 , CC 1 a DD 1 .
  • Uhlopriečka B 1 D
  • Základná uhlopriečka BD
  • Diagonálny rez BB 1 D 1 D
  • Kolmý rez A 2 B 2 C 2 D 2.

Vlastnosti pravidelného štvoruholníkového hranolu

  • Základy sú dva rovnaké štvorce
  • Základy sú navzájom rovnobežné
  • Strany sú obdĺžniky.
  • Bočné plochy sú si navzájom rovné
  • Bočné plochy sú kolmé na základne
  • Bočné rebrá sú navzájom rovnobežné a rovnaké
  • Kolmý rez kolmý na všetky bočné rebrá a rovnobežný so základňami
  • rohy kolmý rez- rovný
  • Diagonálny rez pravidelného štvoruholníkového hranolu je obdĺžnik
  • Kolmý (ortogonálny rez) rovnobežný so základňami

Vzorce pre pravidelný štvoruholníkový hranol

Pokyny na riešenie problémov

Pri riešení problémov na tému " správne štvoruholníkový hranol “ znamená, že:

Správny hranol- hranol, na ktorého základni leží pravidelný mnohouholník a bočné okraje sú kolmé na základné roviny. To znamená, že pravidelný štvoruholníkový hranol obsahuje na svojej základni námestie. (pozri vyššie vlastnosti pravidelného štvoruholníkového hranola) Poznámka. Toto je časť hodiny s úlohami z geometrie (časť telesá geometria - hranol). Tu sú úlohy, ktoré spôsobujú ťažkosti pri riešení. Ak potrebujete vyriešiť problém v geometrii, ktorý tu nie je, napíšte o ňom do fóra. Na označenie akcie extrakcie odmocnina symbol sa používa pri riešení problémov√ .

Úloha.

V pravidelnom štvorhrannom hranole je základná plocha 144 cm 2 a výška 14 cm Nájdite uhlopriečku hranola a plochu celoplošný.

Riešenie.
Pravidelný štvoruholník je štvorec.
V súlade s tým bude strana základne rovná

144 = 12 cm.
Odkiaľ pochádza uhlopriečka základne? pravouhlý hranol sa bude rovnať
√(12 2 + 12 2 ) = √288 = 12√2

Uhlopriečka pravý hranol tvorí s uhlopriečkou podstavy a výškou hranola správny trojuholník. Podľa Pytagorovej vety sa teda uhlopriečka daného pravidelného štvoruholníkového hranola bude rovnať:
√((12√2) 2 + 14 2 ) = 22 cm

Odpoveď: 22 cm

Úloha

Nájdite celkovú plochu pravidelného štvoruholníkového hranola, ak je jeho uhlopriečka 5 cm a uhlopriečka bočnej steny je 4 cm.

Riešenie.
Keďže základňa pravidelného štvoruholníkového hranola je štvorec, potom stranu základne (označenú ako a) nájdeme podľa Pytagorovej vety:

A2 + a2 = 5 2
2a 2 = 25
a = √12,5

Výška bočnej plochy (označená ako h) sa potom bude rovnať:

H2 + 12,5 \u003d 4 2
h2 + 12,5 = 16
h 2 \u003d 3.5
h = √3,5

Celková plocha povrchu sa bude rovnať súčtu plochy bočného povrchu a dvojnásobku základnej plochy

S = 2a2 + 4ah
S = 25 + 4√12,5 * √3,5
S = 25 + 4√43,75
S = 25 + 4√ (175/4)
S = 25 + 4√ (7*25/4)
S \u003d 25 + 10√7 ≈ 51,46 cm 2.

Odpoveď: 25 + 10√7 ≈ 51,46 cm 2.

Automobilov s manuálnou prevodovkou, ktorá sa označuje skratkou manuálna prevodovka, donedávna predstavovala až absolútna väčšina medzi inými vozidlami s rôznymi .

Navyše mechanická (manuálna) skrinka zostáva dnes pomerne bežným zariadením na zmenu a prenos krútiaceho momentu motora. Ďalej si povieme, ako je usporiadaná a funguje „mechanika“, ako vyzerá schéma prevodovky tohto typu a tiež aké výhody a nevýhody má toto riešenie.

Prečítajte si v tomto článku

Schéma a funkcie manuálnej prevodovky

Na začiatok sa tento typ prevodovky nazýva mechanická, pretože takáto jednotka zahŕňa manuálne radenie prevodových stupňov. Inými slovami, na autách s manuálnou prevodovkou preraďuje prevodový stupeň sám vodič.

Ideme ďalej. Krabica "mechanika" je stupňovitá, to znamená, že krútiaci moment sa mení v krokoch. Mnoho motoristov vie, že prevodovka má v skutočnosti ozubené kolesá a hriadele, ale nie každý chápe, ako jednotka funguje.

Stupeň (je to tiež prevodovka) je teda dvojica ozubených kolies (hnacie a hnané ozubené koleso), ktoré spolu interagujú. Každý takýto stupeň poskytuje rotáciu s jednou alebo inou uhlovou rýchlosťou, to znamená, že má svoj vlastný prevodový pomer.

Pod prevodovým pomerom treba rozumieť pomer počtu zubov hnaného kolesa k počtu zubov hnacieho kolesa. V tomto prípade dostávajú rôzne stupne skrinky rôzne prevodové pomery. Najnižší prevodový stupeň (low gear) má najväčší prevodový pomer, a to najviac vysoký krok(preradenie nahor) má najmenší prevodový pomer.

Je zrejmé, že počet stupňov sa rovná počtu prevodových stupňov na konkrétnej skrini (štvorstupňová prevodovka, päťstupňová atď.), predtým 4-stupňová mechanické boxy výstroj postupne ustupovala do pozadia.

Zariadenie s manuálnou prevodovkou

Takže aj keď môže existovať veľa dizajnov takejto krabice s určitými vlastnosťami, počiatočná fáza možno rozlíšiť dva hlavné typy:

  • trojhriadeľové prevodovky;
  • dvojhriadeľové boxy;

Trojhriadeľová manuálna prevodovka je zvyčajne inštalovaná na vozidlách s pohonom zadných kolies, zatiaľ čo dvojhriadeľová prevodovka je umiestnená na osobných automobiloch s pohonom predných kolies. Súčasne sa zariadenie mechanických prevodoviek prvého aj druhého typu môže výrazne líšiť.

Začnime s trojhriadeľovou mechanickou skriňou. Tento box obsahuje:

  • hnací hriadeľ, ktorý sa tiež nazýva primárny;
  • medzihriadeľová prevodovka;
  • poháňaný hriadeľ (sekundárny);

Ozubené kolesá so synchronizátormi sú inštalované na hriadeľoch. Mechanizmus radenia je tiež súčasťou prevodovky. Špecifikované základné prvky umiestnený v skrini prevodovky, ktorá sa tiež nazýva skriňa prevodovky.

Úlohou hnacieho hriadeľa je vytvoriť spojenie so spojkou. Hnací hriadeľ má drážky pre kotúč spojky. Čo sa týka krútiaceho momentu, určený krútiaci moment zo vstupného hriadeľa sa prenáša cez ozubené koleso, ktoré je s ním v tuhom zábere.

Tento hriadeľ, ktorý ovplyvňuje prácu medziľahlého hriadeľa, je umiestnený rovnobežne so vstupným hriadeľom prevodovky, je na ňom nainštalovaná skupina ozubených kolies, ktorá je v tuhom zábere. Na druhej strane je hnaný hriadeľ namontovaný na rovnakej osi ako hnací hriadeľ.

Takáto inštalácia sa realizuje pomocou koncového ložiska na hnacom hriadeli. Toto ložisko obsahuje hnaný hriadeľ. Skupina ozubených kolies (blok prevodovky) na hnanom hriadeli nemá pevný záber so samotným hriadeľom a preto sa na ňom voľne otáča. V tomto prípade je skupina ozubených kolies medzihriadeľa, hnaného hriadeľa a ozubeného kolesa hnacieho hriadeľa v stálom zábere.

Synchronizátory (synchronizačné spojky) sú inštalované medzi ozubenými kolesami hnaného hriadeľa. Ich úlohou je zosúladiť uhlové rýchlosti ozubených kolies hnaného hriadeľa s uhlovou rýchlosťou samotného hriadeľa prostredníctvom sily trenia.

Synchronizátory sú v pevnom zábere s hnaným hriadeľom a majú tiež schopnosť pohybovať sa pozdĺž hriadeľa v pozdĺžnom smere vďaka drážkovanému spojeniu. Moderné prevodovky majú synchronizačné spojky na všetkých prevodových stupňoch.

Ak vezmeme do úvahy mechanizmus radenia na trojhriadeľových prevodovkách, často je tento mechanizmus inštalovaný na tele jednotky. Konštrukcia obsahuje riadiacu páku, posúvače a vidlice.

Teleso skrine (kľuková skriňa) je vyrobené z hliníka alebo zliatin horčíka, je potrebné na inštaláciu hriadeľov s prevodmi a mechanizmami, ako aj mnohých ďalších častí. V skrini prevodovky je tiež prevodový olej (prevodový olej).

  • Aby sme pochopili, ako funguje mechanická (manuálna) prevodovka s tromi hriadeľmi, poďme všeobecne Poďme sa pozrieť, ako to funguje. Keď je radiaca páka v neutrálnej polohe, nedochádza k prenosu krútiaceho momentu z motora na hnacie kolesá vozidla.

Keď vodič pohne pákou, vidlica posunie synchronizačnú spojku jedného alebo druhého prevodového stupňa. Synchronizátor sa potom zarovná uhlové rýchlosti požadovaný prevod a hnaný hriadeľ. Potom sa ozubený krúžok spojky zapojí s podobným ozubeným krúžkom, ktorý zabezpečí zablokovanie prevodu na hnanom hriadeli.

Ešte dodávame, že spiatočku auta zabezpečuje spiatočka prevodovky. V tomto prípade voľnobežný prevod spiatočky namontovaný na samostatnej náprave umožňuje zmenu smeru otáčania.

Dvojhriadeľová manuálna prevodovka: zariadenie a princíp činnosti

Keď sme sa zaoberali tým, z čoho pozostáva trojhriadeľová prevodovka, prejdime k dvojhriadeľovým prevodovkám. Tento typ Prevodovka má vo svojom zariadení dva hriadele: primárny a sekundárny. Vstupný hriadeľ je hnací, sekundárny je hnaný. Ozubené kolesá a synchronizátory sú upevnené na hriadeľoch. Aj v kľukovej skrini skrinky je hlavný prevod a diferenciál.

Hnací hriadeľ je zodpovedný za spojenie so spojkou a na hriadeli je tiež prevodový blok v tuhom zábere s hriadeľom. Hnaný hriadeľ je umiestnený rovnobežne s hnacím hriadeľom, pričom ozubené kolesá hnaného hriadeľa sú v neustálom zábere s ozubenými kolesami hnacieho hriadeľa a tiež sa voľne otáčajú na samotnom hriadeli.

Hnacie koleso hlavného kolesa je tiež pevne pripevnené na hnanom hriadeli a medzi ozubenými kolesami hnaného hriadeľa sú umiestnené synchronizačné spojky. Pridávame, aby sa zmenšila veľkosť prevodovky, ako aj zvýšil počet prevodových stupňov, v moderných prevodovkách môžu byť často inštalované 2 alebo dokonca 3 hriadele namiesto jedného hnaného hriadeľa.

Na každom takomto hriadeli je ozubené koleso hlavného ozubeného kolesa pevne pripevnené, pričom takéto ozubené koleso má pevný záber s hnaným ozubeným kolesom. Ukazuje sa, že dizajn v skutočnosti implementuje 3 hlavné prevody.

Samotný hlavný prevod, ako aj diferenciál v prevodovom zariadení, prenášajú krútiaci moment zo sekundárneho hriadeľa na hnacie kolesá. V tomto prípade môže diferenciál zabezpečiť aj také otáčanie kolies, keď sa hnacie kolesá otáčajú rôznymi uhlovými rýchlosťami.

Pokiaľ ide o mechanizmus radenia, na dvojhriadeľových prevodovkách sa vyberá samostatne, to znamená mimo karosérie. Krabica je spojená so spínacím mechanizmom pomocou káblov alebo špeciálnych tyčí. Najbežnejšie pripojenie je pomocou káblov.

Samotný mechanizmus radenia 2-hriadeľovej skrine má páku, ktorá je lankami prepojená s voliacou pákou a radiacou pákou. Tieto páky sú spojené s centrálnou tyčou radenia, ktorá má tiež vidlice.

  • Ak hovoríme o princípe fungovania dvojhriadeľovej manuálnej prevodovky, je podobný princípu trojhriadeľovej prevodovky. Rozdiely sú v tom, ako funguje mechanizmus radenia. Stručne povedané, páka môže vykonávať pozdĺžne aj priečne pohyby vzhľadom na os vozidla. Počas priečny pohyb k voľbe prevodového stupňa dochádza pri pôsobení sily na lanko voliča prevodovky, ktoré pôsobí na radiacu páku.

Ďalej sa páka pohybuje pozdĺžne a sila prechádza na kábel radenia. Príslušná páka horizontálne posúva predstavec s vidlicami, vidlica na predstavci posúva synchronizátor, čo vedie k zablokovaniu prevodu hnaného hriadeľa.

Nakoniec si všimneme, že aj mechanické boxy odlišné typy majú prídavné blokovacie zariadenia, ktoré zabraňujú súčasnému zaradeniu dvoch prevodových stupňov alebo neočakávanému vyradeniu prevodového stupňa.

Prečítajte si tiež

Stláčanie spojky pred naštartovaním motora: kedy stlačiť spojku a v akých prípadoch sa to neodporúča. Užitočné rady a odporúčania.

  • Príčiny ťažkého radenia na bežiacom motore. Prevodový olej a hladina v prevodovke, opotrebovanie synchronizátorov a prevodov skrine, spojka.