Задача по информатике. Нужно написать программу(язык Pascal) Ввести с клавиатуры строку символов. Выяснить: есть ли в строке цифры? Вывести отдельно на экран в обратном порядке эти цифры и подсчитать их сумму.
ответ:var a, b: real; s: string; begin readln(a); readln(b); readln(s); if s = '+' then write(a + b); if s = '-' then write(a - b); if s = '/' then if b <> 0 then write(a / b) else write('Деление на 0!'); if s = '*' then write(a * b); if s = 'mod' then if b <> 0 then write(Round(a) mod Round(b)) else write('Деление на 0!'); if s = 'pow' then write(power(a, b)); if s = 'div' then if b <> 0 then write(Round(a) div Round(b)) else write('Деление на 0!'); end.Пояснение:
В pascal операции mod и div к вещественным типам недоступны, поэтому округляем их через Round. Можно поменять на Trunc - он возвратит только целую часть.
Однако правильнее будет делать через case:var a, b: real; s: string; begin readln(a); readln(b); readln(s); case s of char.ToString('+'): write(a + b); char.ToString('-'): write(a - b); char.ToString('/'): if b <> 0 then write(a / b) else write('Деление на 0!'); char.ToString('*'): write(a * b); 'mod': if b <> 0 then write(Round(a) mod Round(b)) else write('Деление на 0!'); 'pow': write(power(a, b)); 'div': if b <> 0 then write(Round(a) div Round(b)) else write('Деление на 0!'); end; end.Пояснение:
В case '+', '-', '/', '*' воспринимаются как char, поэтому переводим их в string через стандартный метод класса char: char.ToString( )
1)
var n:integer;
begin
writeln('Введите номер месяца: ');
readln(n);
if (n = 1) or (n = 2) or (n = 12) then
writeln('Зима');
if (n = 3) or (n = 4) or (n = 5) then
writeln('Весна');
if (n = 6) or (n = 7) or (n = 8) then
writeln('Лето');
if (n = 9) or (n = 10) or (n = 11) then
writeln('Осень');
end.
2)
var n:real;
begin
writeln('Введите температуру: ');
readln(n);
if (34.1 <= n) and (n <= 36.4) then
writeln('Пониженная');
if (36.5 <= n) and (n<= 36.6) then
writeln('Нормальная');
if (36.7 <= n) and (n <= 41) then
writeln('Повышенная');
if (n <= 34) or (n > 41) then
writeln('Не может быть!');
end.
В pascal операции mod и div к вещественным типам недоступны, поэтому округляем их через Round. Можно поменять на Trunc - он возвратит только целую часть.
Однако правильнее будет делать через case:var a, b: real; s: string; begin readln(a); readln(b); readln(s); case s of char.ToString('+'): write(a + b); char.ToString('-'): write(a - b); char.ToString('/'): if b <> 0 then write(a / b) else write('Деление на 0!'); char.ToString('*'): write(a * b); 'mod': if b <> 0 then write(Round(a) mod Round(b)) else write('Деление на 0!'); 'pow': write(power(a, b)); 'div': if b <> 0 then write(Round(a) div Round(b)) else write('Деление на 0!'); end; end.Пояснение:В case '+', '-', '/', '*' воспринимаются как char, поэтому переводим их в string через стандартный метод класса char: char.ToString( )
Примеры работ: