№ 1
Var a,b,c,d:integer;
begin
writeln('Введите трехзначное число: ');readln(a);
b:= a div 100;
c:= a mod 100 div 10;
d:= a mod 10;
if (b mod 2 = 0)and(c mod 2 = 0)and(d mod 2 = 0)
then writeln('yes')
else writeln('no');
End.
№ 2
var a,b,x:real;
begin
readln(a,b,x) ;
if a = 0 then if b = 0 then write ('любое число');
else write ('нет решений');
elseif b = 0 then write ('x= 0');
else write('x =' ,b/a,' или x =' ,-b/a) ;
end.
№ 3 и 4
Если ввести X или Y значительно больше чем Z то программа на втором или тертьем условии выдаст false и закончит свою работу ничего не написав. Например: если указать X = 10 , Y = 2, Z = 3; то на первом условии будет true, потому что 10 +2 > 3 , но на третьем условии выдаст false потому что 2+3 < 10 но так как ничего не прописано на этот случай программа просто закончит свою работу.
Что бы исправить этот баг необходимо все условия свести в одно:
if ((x + y > z)and (x + z > y) and (y + z > x) ) then
writeln('треугольник построить можно')
else
writeln('треугольник построить нельзя');
end.
© ООО «Знанио»
С вами с 2009 года.