Давненько ничего не было о Паскале. Напишем программу, которая выполняет над двумя числами следующие операции:
+
-
*
/
^ (возведение в степень)
Программа Калькулятор на языке Паскаль
var a, b, r: real;
p,mes,s1,s2:string;
begin
mes:='1'; s1:=''; s2:='';
print('==Программа калькулятор=='+NewLine+' Допустимые операции:'+NewLine+' +'+NewLine+' -'+NewLine+' *'+NewLine+' /'+NewLine+' ^'+NewLine);
print('Введите первое число:');
readln(a);
print(' Введите операцию:');
readln(p);
print(' Введите второе число:');
readln(b);
if p.length=1 then
case p of
'+': r:=a+b;
'-': r:=a-b;
'*': r:=a*b;
'/': r:=a/b;
'^': r:=a**b;
else mes:='Введена незнакомая операция';
end
else mes:='Введена незнакомая операция';
if b<0 then begin s1:='('; s2:=')';end;
if mes='1' then print(' ',a,p,s1,b,s2,'=',r)
else print(mes);
end.
Результат запуска программы
В этой программе применили оператор NewLine для многострочного вывода, также применили оператор выбора case и приемы работы со строками (склеивание операцией + и функцию length для вычисления длины строки).
Ставим среду PascalАВС.NЕТ для того, чтобы потом писать на Turbo/Borland/Free Pascal. M-да...
ОтветитьУдалитьАлександр, поясните свое М-да
УдалитьЗанесите свой код в IDE и кликните иконку "Здоровье кода". Выдаст значение 75% и объяснит, почему. Писать в комментариях громоздко, а в почту мне пришло письмо от пользователя Аноним.
Удалить75 % достаточно неплохо)) но ради 100 % здоровья, сделаем так:
Удалитьbegin
var mes:='1 ';
var s1:='';
var s2:='';
print('==Программа калькулятор=='+NewLine+' Допустимые операции:'+NewLine+' +'+NewLine+' -'+NewLine+' *'+NewLine+' /'+NewLine+' ^'+NewLine);
print('Введите первое число:');
var a:=readlnReal;
print(' Введите операцию:');
var p:=readlnString;
print(' Введите второе число:');
var b:=readlnReal;
var r:real;
if p.length=1 then
case p[1] of
'+': r:=a+b;
'-': r:=a-b;
'*': r:=a*b;
'/': r:=a/b;
'^': r:=a**b;
else mes:='Введена незнакомая операция';
end
else mes:='Введена незнакомая операция';
if b<0 then begin s1:='('; s2:=')';end;
if mes='1 ' then print(' ',a,p,s1,b,s2,'=',r)
else print(mes);
end.