Font size
WorksheetsC++ pagrindai: sąlygos sakiniai IF ir SWITCH
Total questions: 15
Worksheet time: 2hrs 32mins
Vairavimo draudimo bendrovė siūlo 15 % nuolaidą, jei tenkinamos abi sąlygos: vairuotojas yra jaunesnis nei 25 metai ir neturi jokių eismo pažeidimų (taškai lygūs 0).
Parašykite IF sąlygą, kuri patikrintų, ar vairuotojas gauna nuolaidą. Naudokite kintamuosius amzius ir baudos_taskai.
Įmonės darbuotojas gali prisijungti prie kritinių sistemos resursų, jei tenkinama bent viena iš šių sąlygų: jis yra administratorius arba jo darbo valandos patenka į laikotarpį nuo 9:00 iki 17:00.
Parašykite IF sąlygą. Naudokite kintamuosius administratorius ir dabartine_valanda.
Asmuo turi teisę balsuoti, jei jis NĖRA įtrauktas į draudžiamųjų sąrašą ir yra pilnametis arba turi specialų leidimą.
Sudėliokite teisingą sąlygą. Naudokite kintamuosius: ar_draudziamas (bool), amzius (int), leidimas_yra (bool).
if ( (a) (b) ( (c) (d) leidimas_yra (e)
Parašykite if / else if / else struktūrą, kuri, atsižvelgdama į kintamojo sviesoforo_spalva (string) reikšmę, išvestų tinkamą veiksmą:
"Žalia" → "Važiuoti"
"Geltona" → "Pasiruošti sustoti"
Visais kitais atvejais → "Stoti"
Interneto parduotuvė taiko automatinę nuolaidą tik tuo atveju, jei Pirkinių krepšelio suma viršija 50 € ir vartotojas yra prisijungęs (prisijunges - kintamasis).
Užduotis: Sudėliokite teisingą sąlygą. Naudokite kintamuosius: suma (double), prisijunges (bool), savaitgalis (bool).
(a) (b) (c) (d) (e)
Filmas yra priskiriamas Šeimos kategorijai, jei jis nėra R-klasės (suaugusiųjų) ir jo trukmė yra trumpesnė nei 150 minučių.
Parašykite if sąlygą, kuri patikrintų, ar filmas atitinka Šeimos kategoriją. Naudokite kintamuosius ar_R_klases ir trukme_minutemis.
Metodinis nurodymas: Jūs žinote loginę sumą (OR), loginę sandaugą (AND), dabar įvedame dar vieną sąvoką - loginis neigimas (NOT). Jo sintaksė:
Operatorius ! (NOT) apverčia loginę reikšmę:
Jei kintamasis ar_R_klases yra true (Tiesa, t. y., filmas YRA R-klasės), tai sąlyga !ar_R_klases tampa false (Melas).
Jei kintamasis ar_R_klases yra false (Melas, t. y., filmas NĖRA R-klasės), tai sąlyga !ar_R_klases tampa true (Tiesa).
Sistema turi perspėti apie pavojų, jei nebus giedra ir temperatūra bus žemesnė nei 0 °C.
Sudėliokite teisingą sąlygą. Naudokite kintamuosius: giedra (bool), temperatura (int).
if ( (a) (b) temperatura (c) )
Banko paskola patvirtinama remiantis šiais kriterijais:
Jei metinės pajamos yra didesnės nei 30 000 eurų ir kredito balas yra bent 700, paskola Patvirtinama.
Jei metinės pajamos yra didesnės nei 30 000 eurų, bet kredito balas yra žemesnis nei 700, paskola Reikalauja papildomos peržiūros.
Visais kitais atvejais, paskola Atmetama.
Parašykite šią logiką naudodami if struktūrą su tinkamais loginiais operatoriais. Naudokite kintamuosius pajamos ir kredito_balas.
Saugos sistema turi įspėti vartotoją: Aukštos rizikos įspėjimas išvedamas, jei temperatūra viršija 80°C arba temperatūra yra žemesnė nei -5°C. Visais kitais atvejais išvedamas pranešimas "Normali temperatūra".
Parašykite tai if sąlygą. Naudokite kintamąjį temperatura.
Vartotojas gali pasiekti paskyros nustatymus, jei tenkinama bent viena iš šių sąlygų: jis yra administratorius arba vartotojas yra pilnametis (amzius >= 18) ir yra patvirtinęs savo el. paštą (el_pastas_patvirtintas).
Sudėliokite teisingą sąlygą. Naudokite kintamuosius: administratorius (bool), amzius (int), el_pastas_patvirtintas (bool).
if (administratorius (a) (amzius >= 18 (b) el_pastas_patvirtintas (c)
Kompiuteris laikomas Pilnai veikiančiu, jei RAM atmintis yra didesnė nei 8 GB ir procesoriaus greitis didesnis nei 3.0 GHz. Visais kitais atvejais išvedama "Reikalinga diagnostika".
Parašykite if sąlygą. Naudokite kintamuosius ram_gb ir cpu_ghz.
Naudodami switch sakinį, apskaičiuokite siuntinio pristatymo kainą (int) pagal pasirinktą regioną (regionas, int):
1 (Lietuva) → 5 €
2 (Europa) → 15 €
3 (Pasaulis) → 30 €
Visais kitais atvejais → 0 € (Neaptarnaujama)
Parašykite switch sakinį, kuris, priklausomai nuo kintamojo naudotojo_tipas (int) reikšmės, išvestų naudotojo privilegijas.
1 → "Gali skaityti ir rašyti"
2 → "Gali tik skaityti"
Visais kitais atvejais → "Neturi privilegijų"
Duota switch kodo ištrauka. Ką ji išves? Paaiškinkite, kodėl.
Metodinė pastaba: Mes mažai pakalbėjome apie BREAK svarbą switch sakinyje, todėl noriu, kad atkreiptumėte dėmesį, nes veikia ji ne pagal įprastą logiką. Kai programa suranda atitinkamą case (atvejį), ji pradeda vykdyti kodą nuo tos vietos ir tęsia vykdymą visuose paskesniuose case blokuose, kol pasiekia bloko pabaigą. Tai vadinama srauto pratęsimu (angl. fall-through).
Štai kodėl break yra būtinas:
break sakinys nurodo programai išeiti iš switch bloko.
Jei praleidžiate break, bus vykdomas ne tik tas case blokas, kurį pasirinkote, bet ir visi žemiau esantys case blokai, net jei jie ir neatitinka pradinės reikšmės. Tai dažniausiai sukelia loginę klaidą.
Trumpai: break; yra jūsų kontrolės punktas, užtikrinantis, kad būtų vykdomas tik vienas atitinkamas kodo segmentas, o ne visi likę.
Sistema turi atlikti veiksmą, jei dabar yra darbo diena (nuo Pirmadienio iki Penktadienio). Savaitės dienos koduojamos skaičiais (1 = Pirmadienis, 5 = Penktadienis, 6 = Šeštadienis, 7 = Sekmadienis).
Sudėliokite switch struktūros dalį, kuri leistų vykdyti tą patį kodą, jei dienos_nr yra nuo 1 iki 5.
switch (dienos_nr) {
(a) // Darbo dienos veiksmas (b) // ... (c)
