Zeptuz är nöjd med hjälpen
Zeptuz 197
Postad: 7 sep 2022 21:41

If statement i en while loop Ada programmering

Hej, håller på med en uppgift där jag försöker sätta gränser för vilka flyttal jag får använda. Jag försöker sätta gränserna mellan 0.0 och 100.0 och testade att göra så här 

loop
Put("Momsprocent: ");
Get(Fm);
if(Fm > 0.0) and(Fm = 0.0) and(Fm= 100) and(Fm < 100.0) then exit;
end if;
Put("Felaktigt värde!");
New_Line;

end loop;

Men det funkar inte och jag förstår inte riktigt varför. När jag lägger gränserna så här:
loop
Put("Momsprocent: ");
Get(Fm);
if(Fm > 0.0) and(Fm < 100.0) then exit;
end if;
Put("Felaktigt värde!");
New_Line;

end loop;

så kan jag skriva in alla tal mellan 0.0 och 100.0 men inte själva 0.0 och 100.0. Jag vet inte riktigt vad jag ska göra här. 

farfarMats 1092
Postad: 7 sep 2022 22:17

if satsen testar om Fm samtidigt är >0 och =0 och  =100 och <100

det lär ju aldrig hända.    Finns det inte en operator >=  (alltså större än eller lika med) i Ada?

Förslag (om det finns en not-operator) if not(Fm <0 or Fm >100)  then exit

eller  ännu hellre

if (Fm<0 or Fm>100) then put("Fel...

jag kan inte Ada så det är bäst att du sätter dit syntax-krafset själv så jag inte lurar dig

Zeptuz 197
Postad: 7 sep 2022 22:21
matsC skrev:

if satsen testar om Fm samtidigt är >0 och =0 och  =100 och <100

det lär ju aldrig hända.    Finns det inte en operator >=  (alltså större än eller lika med) i Ada?

Förslag (om det finns en not-operator) if not(Fm <0 or Fm >100)  then exit

eller  ännu hellre

if (Fm<0 or Fm>100) then put("Fel...

jag kan inte Ada så det är bäst att du sätter dit syntax-krafset själv så jag inte lurar dig

Jag insåg att jag va lite dum, löste det genom att sätta If(Fm>=0.0) and(Fm<=100.0)

Jag testade if(Fm=>0.0) and(Fm<=100.0) som inte fungerade, men tänkte inte på att ändra ordningen på symbolerna haha. 

Svara Avbryt
Close