Другие языки программирования и технологии

кто-нибудь знает алгоритм калькулятора в паскале??? если знаете поделитесь

Дима Зотин
Дима Зотин
833
var a, b, sum, raz, pro, c, n: integer; // Задаём переменные, их типы
del: real;

begin
writeln (' Введите требуемое действие: ' ); // Диалог с пользователем
writeln (' 1 - сложение, 2 - вычитание, 3 - умножение, 4 - простое деление, 5 - деление с остатком, 6 - квадрат, 7 - кв. корень');
readln (n); // считывание действия
writeln ('Введите числа для операции, если корень или квадрат, то второе число - любое');
readln (a, b); // считываем два числа
if n = 1 then begin // Если n = 1 (сложение) , то начало д.
sum:=a+b; // складываем числа
writeln ('сумма - ', sum); // выводим сумму
end; //конец д.
if n = 2 then begin // Если n = 2 ( вычитание) , то начало д.
raz:= a-b; //вычитаем
writeln ('разность - ', raz); // выводим разность
end; // конец д.
if n = 3 then begin // Если n = 3 (умножение) , то начало д.
pro:=a*b; // умножаем
writeln ('произведение - ', pro); // выводим произведение
end; // конец действия.
{Дальше комментарии к оператору if отсутствуют, т. к. они почти теже}
if n = 4 then begin
del:=a/b; // выполняем простое деление
writeln ('простое деление - ', del); // выводим обычное деление
end;
if n = 5 then begin
c:=a div b; //делаем целочисленное деление
a:= a mod b; // находим остаток, при этом меняем значение a
writeln ('целочисленное деление - ', c); // выводим результат целочисленного деления
writeln ('остаток - ', a); // выводим остаток
end;
if n = 6 then begin
pro:= sqr (a); // находим квадрат первого числа
writeln ('Квадрат a равен ', pro); // выводим квадрат перового числа
end;
if n = 7 then begin
del:= sqrt (a); // Находим квадратный корень первого числа
writeln ('Кв. корень равен ',del); // Выводим кв. корень
end; //

end. //конец программы
Dmitri Hincota
Dmitri Hincota
14 683
Лучший ответ
Смотря что ты имеешь в виду:
-- Если ввести первое число, затем операцию, затем второе, то проще не куда:

Write('1-е число = '); ReadLn(A);
Write('Операция + -* / = '); ReadLn(C);
Write('2-е число = '); ReadLn(B);
case C of
'+' : R := A + B;
'-' : R := A-B;
'*' : R := A*B;
'/' : R := A/B;
end;
WriteLn('Результат: ', R);

-- Если ввести сразу формулу типа:

15*sin(Pi/2)/(1*2*3)

то копай в сторону "обратной польской нотации"
Максим Довгань
Максим Довгань
58 332
Это же элементарно. Это первая прога, которую я написал на паскале. Могу посоветовать только очень хороший учебник - "Турбо Паскаль 7.0" 9-издание. Издательство BHV