25.10.2024

Программа Калькулятор на Паскале

Давненько ничего не было о Паскале. Напишем программу, которая выполняет над двумя числами следующие операции:

*

 / 

^  (возведение в степень)

Программа Калькулятор на языке Паскаль

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 для вычисления длины строки).

4 комментария:

  1. Ставим среду PascalАВС.NЕТ для того, чтобы потом писать на Turbo/Borland/Free Pascal. M-да...

    ОтветитьУдалить
    Ответы
    1. Александр, поясните свое М-да

      Удалить
    2. Занесите свой код в IDE и кликните иконку "Здоровье кода". Выдаст значение 75% и объяснит, почему. Писать в комментариях громоздко, а в почту мне пришло письмо от пользователя Аноним.

      Удалить
    3. 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.

      Удалить