Написать программу, которая вводит с клавиатуры номер месяца и определяет, сколько дней в этом месяце. При вводе неверных данных должно быть выведено сообщение об ошибке. язык Python
begin clrscr; writeln('Что вы хотите сделать?'); writeln('1-сложить 2-отнять 3-разделить 4-умножить'); readln(c); if c = 1 then begin read(a, b); writeln(a + b) end else if c = 2 then begin read(a, b); writeln(a - b) end else if c = 3 then begin read(a, b); writeln(a / b) end else if c = 4 then begin read(a, b); writeln(a * b); end else write('Так, стоп, че за фигня? Где то тут меня надурили...'); readkey end.
Но короче и понятнее это написать так: uses crt;
var a, b, c: integer;
begin ClrScr; Writeln('Что вы хотите сделать?'); Write('1-сложить 2-отнять 3-разделить 4-умножить'); Readln(c); if (c >= 1) and (c <= 4) then begin Write('Введите через пробел два натуральных числа: '); Read(a, b); case c of 1: Writeln(a + b); 2: Writeln(a - b); 3: Writeln(a / b); 4: Writeln(a * b) end; end else Write('Так, стоп, че за фигня? Где то тут меня надурили...'); ReadKey end.
1) Независимо от условия будет выполнен оператор присваивания. a:=b 2) Условие ложное, значит будет выполнен оператор после else write('b') 3) Условие истинное, значит будет выполнен оператор после then write('a') 4) Функции операторов присваивания одинаковы, значит не зависят от условия (a + b - 14 = b - 14 + a) a := a + b - 14 5) Оператор a := a практически ничего не изменяет, значит можно избавится от него if a<b then a:=b 6) То же самое, что и в пункте 5, только нужно поменять истину на ложь if not(a>b) then a:=b 7) Остаток деления на 2 не может быть равен трем, значит условие всегда ложно. Else нет, значит условный оператор можно смело откинуть 8) Остаток от деления на может быть равен или 0 или 1, значит в любом случае условие истинно. Первый условный оператор можно смело откинуть, но вложеннный остается! if a<0 then a:=-a 9) Если a отрицательное, тогда b = a, то есть тоже отрицательно. Если a неотрицательное, тогда b = -a, то есть b отрицательное. Можно записать как модуль числа a, умноженный на -1 b := -abs(a)
crt;
var
a, b, c: integer;
begin
clrscr;
writeln('Что вы хотите сделать?');
writeln('1-сложить 2-отнять 3-разделить 4-умножить');
readln(c);
if c = 1 then begin
read(a, b);
writeln(a + b)
end
else
if c = 2 then begin
read(a, b);
writeln(a - b)
end
else
if c = 3 then begin
read(a, b);
writeln(a / b)
end
else
if c = 4 then begin
read(a, b);
writeln(a * b);
end
else
write('Так, стоп, че за фигня? Где то тут меня надурили...');
readkey
end.
Но короче и понятнее это написать так:
uses
crt;
var
a, b, c: integer;
begin
ClrScr;
Writeln('Что вы хотите сделать?');
Write('1-сложить 2-отнять 3-разделить 4-умножить'); Readln(c);
if (c >= 1) and (c <= 4) then begin
Write('Введите через пробел два натуральных числа: '); Read(a, b);
case c of
1: Writeln(a + b);
2: Writeln(a - b);
3: Writeln(a / b);
4: Writeln(a * b)
end;
end
else Write('Так, стоп, че за фигня? Где то тут меня надурили...');
ReadKey
end.