Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 9 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Podmienky

Registrovaný: 01.05.14
Prihlásený: 07.11.19
Príspevky: 152
Témy: 52
Bydlisko: Dubovce
Príspevok NapísalOffline : 22.11.2016 16:32

Zdravím, Potreboval by som pomôcť ohľadom podmienok IF.
Zadanie bolo: Užívateľ zadá poradové číslo mesiaca (1..12) a program vypíše či je ten mesiac letný, jarný, jesenný alebo zimný.
Kód:
Kód:
program mesiace;
uses Classes;
type
        mesiac 
= 1..12;
var
        m: mesiac;
begin
        write
('Zadajte aktualny mesiac (1..12): ');
        readln(m);
        if (1<=m) and (2<=m) then
                writeln
('Aktualne je zimne obdobie.');
        if (3<=m) and (m<=5) then
                writeln
('Aktualne je jarne obdobie.');
        if (6<=m) and (m<=8) then
                writeln
('Aktualne je letne obdobie.');
        if (9<=m) and (m<=11) then
                writeln
('Aktualne je jesenne obdobie.');
        if m=12 then
                writeln
('Aktualne je zimne obdobie.');
readln;
end.

Problém je v tom že keď zadám napr. 3 tak program vypíše že to je zároveň zimné a jarné obdobie mesiaca.


Offline

Správca fóra
Správca fóra
Podmienky

Registrovaný: 08.08.09
Príspevky: 12449
Témy: 39
Príspevok NapísalOffline : 22.11.2016 16:53

Máš zmätok v tých porovnávaniach.
Čo znamená toto: [c]2 <= m[/c], matematicky? A toto: [c]3 <= m[/c]?
Raz dávaš konštanty z pravej strany, raz z ľavej, nedivím sa že si si chybu nenašiel hneď, je to neprehľadné. Čísla daj na jednu stranu, premennú na druhú a otáčaj iba znamienko nerovnosti.
A napokon, to m = 12 skús zaradiť na začiatok ku 1 a 2, pomôže ti OR ;)







_________________
always is always wrong
Offline

Užívateľ
Užívateľ
Podmienky

Registrovaný: 01.05.14
Prihlásený: 07.11.19
Príspevky: 152
Témy: 52
Bydlisko: Dubovce
Príspevok Napísal autor témyOffline : 22.11.2016 17:06

teraz to vypadá takto ale nefunguje to.
Kód:
program obdobia;
uses Classes;
type
        mesiac 
= 1..12;
var
        m: mesiac;
begin
        write
('Zadajte aktualny mesiac (1..12): ');
        readln(m);
        if (m=>1) and (m<=2) or (m=12) then
                writeln
('Aktualne je zimne obdobie.');
        if (m=>3) and (m<=5) then
                writeln
('Aktualne je jarne obdobie.');
        if (m=>6) and (m<=8) then
                writeln
('Aktualne je letne obdobie.');
        if (m=>7) and (m<=11) then
                writeln
('Aktualne je jesenne obdobie.');
readln;
end

ERROR:
Kód:
Compile Project, Target: obdobia.exe: Exit code 1, Errors: 2
obdobia.lpr(10,15) Error: Illegal expression
obdobia.lpr(10,16) Fatal: Syntax error, ")" expected but "ordinal const" found


Offline

Skúsený užívateľ
Skúsený užívateľ
Podmienky

Registrovaný: 19.03.07
Prihlásený: 14.04.24
Príspevky: 7076
Témy: 85
Bydlisko: BA
Príspevok NapísalOffline : 22.11.2016 17:19

trochu ma to rozculuje, ze nechapes tieto zaklade veci... ale tiez som bol niekedy podobne nenauceny....

jednak to nemas rozumne ozatvorkovane, nehovoriac o tom ze m=12 je podla jazyka vzdy pravda, ked sa podari priradit, alebo sprostost. Nechcel si "=="?

druhak nauc sa pouziva >, <, >=, <=, je medzi nimi rozdiel. Netusim ale co je =>, okrem teda metody objektu v php.

if ((m == 12) or ((m>=1) and (m<3)) toto je 12,1,2 ale UZ NIE 3 lebo 3 nie je mensie ako 3

if((m>=3) and (m<6)) 3,4,5 ale zase uz nie 6

... profit

BTW. Nemajú metódy objektov v PHP len šípku ("->")? Toto je v asociatívnych poliach rozdeľovač indexu a hodnoty... Hihihi ~k







_________________
Desktop: CPU AMD R7 1700x @ 3.85GHz | Cooling be quiet! Dark Rock Pro 4 | MB ASRock X470 Taichi Ult. | RAM 4x8GB DDR4 G-SKILL TridentZ RGB 3000 CL16-16-16-36 | VGA Powercolor VEGA56 + Raijintek Morpheus II | SSD Crucial MX300 525GB | HDD Seagate Ironwolf 3TB 5900rpm | PSU CORSAIR RM750X | MONITOR AOC Q3279VWFD8 | MOUSE HyperX Pulsefire FPS + Razer eXactMat | HyperX Alloy FPS Brown | HyperX Cloud | ARCH x64 &
Notebook: DELL inspiron 7537 i7 4500U, 16GB RAM, nv750, FHD IPS,Crucial M4 128GB | ARCH x64 & Surface Go 8/128 &
Mobil: LG v40 ThinQ (2018) & SBC: Raspberry pi 0 | 3B+ & Headphones: Senheiser HD58X | AKG K551 + detachable cable mod | Linsoul TIN T2 | KZ SZN
Offline

Správca fóra
Správca fóra
Podmienky

Registrovaný: 08.08.09
Príspevky: 12449
Témy: 39
Príspevok NapísalOffline : 22.11.2016 17:28

@GamerSK
Ako už napísal void, nepoznáš operátory nerovnosti? >= a <=, rovná sa musí byť vždy vpravo.
Čo sa stane, ak na vstup pošleš 7? :rolleyes: Niečo opravíš a ďalšie nepochopiteľne rozbiješ.

@void
V pascale nie je ==, ale správne = pre porovnanie, sprostý jazyk ja viem, neučil by som sa ho a už vôbec nie ako prvý







_________________
always is always wrong
Offline

Skúsený užívateľ
Skúsený užívateľ
Podmienky

Registrovaný: 19.03.07
Prihlásený: 14.04.24
Príspevky: 7076
Témy: 85
Bydlisko: BA
Príspevok NapísalOffline : 22.11.2016 17:33

Hah, celkom hanba... pascal som sa aj ja ucil ako prvy...







_________________
Desktop: CPU AMD R7 1700x @ 3.85GHz | Cooling be quiet! Dark Rock Pro 4 | MB ASRock X470 Taichi Ult. | RAM 4x8GB DDR4 G-SKILL TridentZ RGB 3000 CL16-16-16-36 | VGA Powercolor VEGA56 + Raijintek Morpheus II | SSD Crucial MX300 525GB | HDD Seagate Ironwolf 3TB 5900rpm | PSU CORSAIR RM750X | MONITOR AOC Q3279VWFD8 | MOUSE HyperX Pulsefire FPS + Razer eXactMat | HyperX Alloy FPS Brown | HyperX Cloud | ARCH x64 &
Notebook: DELL inspiron 7537 i7 4500U, 16GB RAM, nv750, FHD IPS,Crucial M4 128GB | ARCH x64 & Surface Go 8/128 &
Mobil: LG v40 ThinQ (2018) & SBC: Raspberry pi 0 | 3B+ & Headphones: Senheiser HD58X | AKG K551 + detachable cable mod | Linsoul TIN T2 | KZ SZN
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 05.08.16
Prihlásený: 03.02.17
Príspevky: 6
Témy: 3
Bydlisko: Žilina
Príspevok NapísalOffline : 22.11.2016 20:52

Pozri si ako funguje
if a else
neviem ci ma pascal aj else if ale to je jedno
teraz sa ti kontroluje kazdy jeden IF tak si predstav ze tam posles 7
1. IF nevypise
2. IF nevypise
3. IF vypise
4. IF vypise


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 23.11.2016 9:25

Tak ešte raz od základov:

Operátory porovnania poznáme nasledujúce
Kód:
= rovný
< menší
> väčší
<= menší alebo rovný
>= väčší alebo rovný

žiadne => neexistuje, pozor na to! Píš to v poradí, v akom to vyslovuješ.
Premennú vždy píš vľavo. Je to tak zaužívané a lebo sa to dobre číta a je to prehľadné. To máš ako rozdiel medzi
Kód:
if (obloha = modra) { ak obloha je modra tak... }

a
Kód:
if (modra = obloha) { ak modra je obloha tak... }

to druhé sa proste číta blbo.

Else ti netreba, pretože ide o disjunktné množiny (tzn. neexistuje mesiac, ktorý je zároveň taký aj onaký). Ak si dáš pozor na rozsahy, nemajú sa prečo spustiť až dve podmienky. (alebo máš pre marec vypísať, že je na prelome? No to je vlastne jedno, len upravíš rozsahy)
Môžeš to napísať tak ako to máš - čiže 1-2, 3-5, 6-8, 9-11 a 12,
alebo jednoducho cez OR (tých možností nie je zas tak veľa, tu sa určite nepomýliš), čiže: 12 alebo 1 alebo 2, 3 alebo 4 alebo 5 atď...

Ďalšia vec pri tom AND a OR v jednom - pozor na prioritu!
toto
Kód:
(A and B) or C

má úplne iný význam ako toto
Kód:
A and (B or C)







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Podmienky

Registrovaný: 27.06.09
Prihlásený: 04.03.23
Príspevky: 332
Témy: 3
Bydlisko: Košice - ok...
Príspevok NapísalOffline : 23.11.2016 21:39

@Leo3033
else if je pomerne zaujímavá záležitosť :D niektoré jazyky ho majú ako syntaktickú konštrukciu (python a ruby) a potom iné to interpretujú jak if vnorené do else (Céčkové), ale vyzerá to, že funguje aj v packale:
Kvadratická rovnica s if-else if-else







_________________
GitHub: mfocko | mfocko.xyz
OSs: archLinux + fedora (+ Windows 10 Pro Insider Preview, only if needed)
Server: archLinux [nginx + Docker (GitLab) + SSH/SFTP + local mirror (FTP/rsync - archLinux, Fedora) + samba + transmission]
Odpovedať na tému [ Príspevkov: 9 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. podmienky

v PHP, ASP

16

827

26.02.2008 20:25

emer Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Licencne podmienky

v Ostatné

1

587

03.06.2011 21:17

emer Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. podmienky tlaciarne

v Grafické programy

0

717

01.04.2008 18:06

Kamahl Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. jQuery a podmienky

v JavaScript, VBScript, Ajax

2

612

09.04.2009 22:33

Flety Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Excel 2 podmienky

v Ostatné programy

2

346

13.12.2013 19:02

bizmos Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Podmienky pouzivania Youtube.

v Služby a webstránky

7

676

21.02.2012 12:44

walther Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. google maps podmienky

v Ostatné

2

1170

22.07.2011 16:32

jablko05 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. MYSQL vypis podmienky

v Databázy

6

786

07.09.2010 20:15

camo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. if empty - podmienky

v PHP, ASP

2

450

27.01.2010 13:09

davider137 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PHP a podmienky

v PHP, ASP

5

640

13.11.2007 10:01

mondzo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Podmienky používania (programy)

v Krčma

5

441

29.07.2012 22:52

eMp Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Alza a záručné podmienky

v Obchody, reklamácie a právo

4

451

10.04.2014 22:26

winyx Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Vnorenie podmienky - neviem kam

v PHP, ASP

4

346

31.05.2016 7:25

BX Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. vloženie podmienky do phpmailer

v PHP, ASP

5

416

05.08.2014 10:22

chrono Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. podmienky pre kupu zdroja

v PC skrinky, zdroje a všetky druhy chladenia

1

405

08.02.2009 19:28

OmeGa Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Podmienky reklamacie na slovensku

v Obchody, reklamácie a právo

16

797

10.12.2013 18:13

Daron Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra