Простейший калькулятор
Написать программу, в которой вводятся два числа-операнда x и y и знак арифметической операции (+, –, /, *). Вычислить результат z в зависимости от знака.
Предусмотреть реакции на возможный неверный знак операции, а также на ввод y =0 при делении.
Организовать возможность многократных вычислений без перезагрузки программы (то есть построить цикл). В качестве символа прекращения вычислений принять ‘0’.
Алгоритм решения задачи:
- Вводим знак. Если он является символом ‘0’, то прерываем цикл.
- Если введенный символ — арифметическая операция, запрашиваем два числа и выполняем вычисления в зависимости от введенного знака.
- Иначе сообщаем о некорректном вводе знака.
Программа на языке Паскаль:
var x, y, z: real; sign: char; begin while True do begin write('sign: '); readln(sign); if sign = '0' then break; if sign in ['+','-','*','/'] then begin write('x = '); readln(x); write('y = '); readln(y); case sign of '+': begin z := x + y; writeln(z:5:2) end; '-': begin z := x - y; writeln(z:5:2); end; '*': begin z := x * y; writeln(z:5:2); end; '/': if y <> 0 then begin z := x / y; writeln(z:5:2) end else writeln('Division by zero!'); end; end else writeln('Bad sign!'); writeln; end; end.
Пример работы программы:
sign: + x = 8.123 y = -3.5 4.62 sign: / x = 3.4 y = 2.75 1.24 sign: / x = 3 y = 0 Division by zero! sign: $ Bad sign! sign: 0
Простой калькулятор в Pascal
Ниже приведён пример программы простого калькулятора. Программа получает от пользователя 2 произвольных числа, знак математической операции (+ — * / %) и выполняет соответствующую операцию. Затем выводит ответ. После программа спрашивает повторить ли операцию.
Использованы типы переменных real (дробные числа) и string (для ввода знаков)
Условный операторif
Цикл while
Пример программы написаной на языке Pascal в среде Pascal ABC.Net
var
a, b, c: real;//Дробный тип переменных
d, e: string;//символьный тип переменных
begin
e := ‘да’;//Объявляем начальное значение переменной, отвечающей за цикл
while e = ‘да’ do //начало цикла
begin
writeln(‘Введите первое число’);//вывод на экран сообщения
readln(a);//чтение с клавиатуры переменной
writeln(‘Введите второе число’);//вывод на экран сообщения
readln(b);//чтение с клавиатуры переменной
writeln(‘Введите знак математической операции’);//вывод на экран сообщения
readln(d);//чтение с клавиатуры переменной символьной(знак математической операции)
if d = ‘+’ then//условие если d имеет значение «+», тогда
c := a + b;//c примет значение а+b
if d = ‘-‘ then
c := a — b;
if d = ‘*’ then
c := a * b;
if d = ‘/’ then
c := a / b;
if d = ‘%’ then
c := a / 100 * b;
writeln(‘= ‘, c);//Вывод на экран переменной с
writeln(‘Повторить? да/нет’);//Выводим на экран сообщение
readln(e);//считываем переменную, отвечающую за цикл
end;//конец цикла
readln;//чтобы программа не закрывалась сама
end.
Исходник программы можно скачать ниже.
Калькултор.pas
Статью и программу подготовил
МБОУ «Школа №7» г. Богородск
Лосев Антон Владимирович
КАК сделать калькулятор в ПАСКАЛе
VAR a, b, p, z :REAL;
BEGIN
WriteLn (‘Первое число’);
Read (a);
WriteLn (‘Знак’);
Read (z);
WriteLn (‘Второе число’);
Read (b);
If z=»+» THEN c:=a+b; WriteLn (p);
if z=»-» THEN c:=a-b; WriteLn (p);
if z=»*» THEN c:=a*b; WriteLn (p);
if z=»/» THEN c:=a/b; WriteLn (p)
END.
Остальные ответы
Если тебе нужен такой калькулятор, как стандартный виндосовский, то тебе нужен Delphi.
Там просто ставишь кнопки, один Edit (окно ввода и вывода) . И создаешь функции для каждой кнопки.
А если ты хочешь именно на Pascal’е сделать (Turbo,Free,ABC), то считываешь строку, проходишься по ней, разделяешь все на числа и знаки, а потом считаешь.
В Коплекте Borland Pascal 7.0 есть исходник калькулятор. смотри учись разбирайся
/EXAMPLES/WIN
привет вот держи простейший калькулятор!
Program Test;
var
a,b,rez:real;
begin
write(‘Добро пожаловать в данную программу -Считавод-‘);
writeln(‘Введите любое число; ‘);
readln(a);
writeln(‘Введите повторно любое число; ‘);
readln(b);
rez:=a*b;
writeln(‘Вот ваш ответ; ‘,rez,’.’);
end.
Самый простейший калькулятор на +, -*, /. (Запускать через Shift+F9)
program name
uses crt;
var a,b,c:integer;
d:string;
begin
write(‘Введите первое число: ‘);
readln(a);
write(‘Введите символ операции:’);
readln(d);
write(‘Введите второе число: ‘);
readln(c);
if d=(‘-‘) then b:= a-b;
if d=(‘+’) then b:= a+b;
if d=(‘/’) then b:= a div b;
if d=(‘*’) then b:= a*b;
writeln(‘Ответ: ‘, b);
readln;
end.
name можешь на своё поменять
Наверное, уже не нужно, но вот программа калькулятора со степенью:
var
a, b, c: double;
d: char;
i: integer;
writeln(‘Калькулятор’);
writeln();
writeln(‘Введите первое число:’);
readln(a);
writeln(‘Введите знак:’);
readln(d);
writeln(‘Введите второе число:’);
readln(b);
writeln();
case d of
(‘+’): writeln(a, ‘+’, b, ‘ = ‘, a + b);
(‘-‘): writeln(a, ‘-‘, b, ‘ = ‘, a — b);
(‘*’): writeln(a, ‘*’, b, ‘ = ‘, a * b);
(‘:’): writeln(a, ‘:’, b, ‘ = ‘, a / b);
(‘/’): writeln(a, ‘/’, b, ‘ = ‘, a / b);
(‘^’):
begin
if b = 0 then
writeln(a, ‘^0 = 1’)
else
if b = 0.5 then
writeln(‘koren iz ‘, a, ‘ = ‘, sqrt(a))
else
if b = 1 then
writeln(a, ‘^1 = ‘, a)
else
if b begin
c := a;
i := -1;
while i <> b do
begin
c := c * a;
i := i — 1;
end;
c := 1 / c;
writeln(a, ‘^(‘, b, ‘) = ‘, c);
end
else
if b >= 1 then
begin
c := a;
i := 1;
while i <> b do
begin
c := c * a;
i := i + 1;
end;
writeln(a, ‘^’, b, ‘ = ‘, c);
end
uses crt;
const
ASCII=[48..57];
var
s,temp:string;
i,f,l,code:integer;
res:integer;
d:byte;
begin
write(‘Введите выражение —>’);
readln(s);
temp:=»;
for i:=1 to length(s) do
begin
if (ord(s[i]) in ASCII) then temp:=temp+s[i];
if not(ord(s[i]) in ASCII) or (i=length(s)) then
begin
if (i
case s[i] of
‘+’:d:=1;
‘-‘:d:=2;
‘*’:d:=3;
‘/’:d:=4;
end;
val(temp,f,code);
temp:=»;
end else
val(temp,l,code);
end;
end;
case d of
1: res:=f+l;
2: res:=f-l;
3: res:=f*l;
4: res:=f div l;
end;
writeln(res);
readln
end.
Pascal: Занятие №2. Часть 2: Оператор выбора в паскале
![]()
Рассмотрим использование оператора выбора в языке Паскаль на конкретном примере.
Пример: Программа, спрашивающая у ученика его отметку по информатике и реагирующая на нее подходящим текстом
Особенность: Выбор не из двух, а из нескольких вариантов в зависимости от отметки.
Результат выполнения с использованием условного оператора if:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
var otmetka:integer; begin writeln('Отметка?'); readln(otmetka); if (otmetka=1) or (otmetka=2) then writeln ('кошмар!') else if otmetka=3 then writeln('плохо') else if otmetka=4 then writeln('неплохо') else if otmetka=5 then writeln('отлично!') else writeln('таких отметок не бывает'); end.
var otmetka:integer; begin writeln(‘Отметка?’); readln(otmetka); if (otmetka=1) or (otmetka=2) then writeln (‘кошмар!’) else if otmetka=3 then writeln(‘плохо’) else if otmetka=4 then writeln(‘неплохо’) else if otmetka=5 then writeln(‘отлично!’) else writeln(‘таких отметок не бывает’); end.
Данный пример демонстрирует нерациональную работу программиста и слишком запутанный код. Гораздо лаконичнее выглядит код при использовании оператора выбора.
Результат выполнения с использованием оператора выбора case:
1 2 3 4 5 6 7 8 9 10 11 12
var otmetka:integer; begin writeln('отметка?'); readln(otmetka); case otmetka of 1,2 : writeln ('кошмар!'); 3: writeln('плохо'); 4: writeln('неплохо'); 5: writeln('отлично!'); else writeln('таких отметок не бывает'); end end.
var otmetka:integer; begin writeln(‘отметка?’); readln(otmetka); case otmetka of 1,2 : writeln (‘кошмар!’); 3: writeln(‘плохо’); 4: writeln(‘неплохо’); 5: writeln(‘отлично!’); else writeln(‘таких отметок не бывает’); end end.

Блок-схема, соответствующая оператору выбора:
Задача 9. В программе необходимо запросить время дня в часах. В зависимости от введенного времени, выводить сообщение с указанием на то, к какому времени суток относится введенный час (полночь, ночь, утро, день, вечер)
[Название файла: L2task9.pas ]
-
Чтобы задать диапазон значений, используется один из двух вариантов:
-
Перечисление через запятую:
. case x of: 1,2,3,4,5: writeln('от одного до пяти'); .
. case x of: 1..5: writeln('от одного до пяти'); .

Перечисление или диапазон
- После служебного слова case может стоять имя переменной или арифметическое выражение целого типа:

Задача 10. Case7:
Единицы массы пронумерованы следующим образом: 1 — килограмм, 2 — миллиграмм, 3 — грамм, 4 — тонна, 5 — центнер. Дан номер единицы массы (целое число в диапазоне 1–5) и масса тела в этих единицах (вещественное число). Найти массу тела в килограммах.
[Название файла: L2task10.pas ]
Детально разобраться в том, как работает оператор выбора Case в Паскале, можно просмотрев видеоурок:
Символьный тип char в Паскале
Для решения следующей задачи пригодится тип char — символьный.
Переменная данного типа объявляется так:
c: char;
и присваивает значения следующим образом:
c:=’a’;
Задача 11. Калькулятор на Паскале. Ученик вводит с клавиатуры число, символ арифметического действия (+, -, *, /) и еще одно число. Компьютер должен напечатать результат. Указание: Для чисел и арифметического действия используйте оператор ReadLn в Паскаль
[Название файла: L2task11.pas ]
