Изменим предыдущую программу таким образом, чтобы пользователь мог вводить сначала первое число, далее знак (+, -, *, / ), потом второе число, и в ответе получался бы результат применения соответствующего арифметического действия к введенным числам:

var                             {в разделе var определяются переменные:}
s: Char;                     {переменная s имеет тип "char" т.е."символ"}
x,y,z: real;                 {переменные x, y, z -тип "real", т.е. "вещественный"}
begin                          {начало программы}
Write(' x=');               {выводится на экран подсказка " x= "}
readln(x);                   {считывается с экрана вводимое пользователем значение x}
Write(' Znak=');         {выводится на экран подсказка " Znak= "}
readln(s);                    {считывается вводимое пользователем значение s (знак)}
Write(' y=');                {выводится на экран подсказка " y= "}
readln(y);                     {считывается с экрана вводимое пользователем значение y}
if s='+' then z:=x+y;     {если s='+' (введенный знак -"плюс"), то z присваивается X+Y }
if s='-' then z:=x-y;       {если s='-' (введенный знак -"минус"), то z присваивается X-Y }
if s='*' then z:=x*y;     {если s='*' (введенный знак -"умножить"), то z присваивается X*Y }
if s='/' then z:=x/y;        {если s='/' (введенный знак -"делить"), то z присваивается X/Y }
write(x,s,y,'=',z);           {пишем на экран значения X, s, Y, символ "=" и значение Z}
end.                              {конец программы}

В этой программе определены переменные x, y, z -типа "real", т.е. "вещественный". Теперь эти переменные могут принимать дробные значения. Также определена переменная s, которая имеет тип "char" т.е."символ". В ней будем хранить вводимое пользователем значение знака арифметического действия.
После того, как пользователь, в ответ на подсказки программы, вводит значения x, s и y, выполняется сравнение знака (s) с допустимыми арифметическими действиями (+, -, *, / ): 
if s='+' then z:=x+y;     {если s='+' (введенный знак -"плюс"), то z присваивается X+Y }
if s='-' then z:=x-y;       {если s='-' (введенный знак -"минус"), то z присваивается X-Y }
if s='*' then z:=x*y;      {если s='*' (введенный знак -"умножить"), то z присваивается X*Y }
if s='/' then z:=x/y;        {если s='/' (введенный знак -"делить"), то z присваивается X/Y }
В этих строках применена конструкция " if <условие> then <действие> ", где в данном случае <условие> - это сравнение s со знаками арифметического действия, а <действие> - присвоение переменной z соответствующего значения.
Следующая строка
write(x,s,y,'=',z);
выводит на экран значения x, s, y, символ "=" и значение z, однако, поскольку x,y,z в этом случае - переменные вещественного ("real") типа, то их значения выводятся в стандартизованном для этого типа виде: если пользователь ввел, к примеру:
x=33
Znak=*
у=100
то ответ будет выглядеть так:
3.3000000000E+01* 1.0000000000E+02= 3.3000000000E+03
Конечно, программист должен понимать такую запись. А понимать ее надо следующим образом: первое число (3.3000000000E+01) равно три целых три десятых (3.300..) умножить на десять в степени, следующей за буквой "E" (+01), то есть три и три умножить на десять в первой степени, что равно тридцать три (как и вводил пользователь). Далее следует знак умножения ( * ), введенный пользователем. Далее - второе число (1.0000000000E+02), равное единице (1.00....), умноженной на десять в степени, следующей за буквой "E" (+02), то есть один умножить на десять во второй, что равно сто (как и вводил пользователь). Далее - знак равенства и подсчитанное компьютером значение переменной z (3.3000000000E+03), равное 3.3 умножить на десять в степени 3, то есть 3300.
В понимании такой формы записи чисел, которую иногда называют "scientific notation" (научная форма представления чисел), обычно не возникает трудностей даже у людей, знакомых с программой средней школы, однако, дабы не пугать пользователя, в Паскале существует возможность задать формат вывода данных. Сделаем это, в нашем случае, следующим образом. Строку, которой выводим ответ ( write(x,s,y,'=',z); ), перепишем так: 
write(x:1:2,s,y:1:2,'=',z:1:2);
Значения, стоящие через двоеточия после переменных, указывают компьютеру, сколько знакомест при выводе отводится под целую и дробную части числа соответственно (задается формат вывода :1:2). При этом, если фактическое количество цифр целой части числа превосходит отведенное форматом, то целая часть числа все равно выводится полностью. И ответ для 
x=33
Znak=*
у=100
будет выглядеть удобочитаемо:
33.00*100.00=3300.00

                                << ранее            к оглавлению            далее>>

                      то же на С                        то же на Basic                 то же на Fortran

                аналог на JavaScript
Используются технологии uCoz