Tin học Một chương trình máy tính cơ bản viết bằng pascal.

TruongDinhQuang1

Học sinh mới
31 Tháng ba 2023
2
0
1
14
Đồng Nai
[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

Đoạn mã bạn cung cấp là một chương trình máy tính đơn giản viết bằng Pascal. Nó có các tính năng sau:

• Có thể thực hiện các phép tính số học cơ bản (+, -, *, /) trên các số thực.

• Có thể xử lý tối đa 50 biểu thức.
Lưu trữ các số và toán tử trong hai mảng, a và b tương ứng.

• Sử dụng ngăn xếp để theo dõi thứ tự ưu tiên của các phép toán.

• In kết quả của phép tính ra màn hình.

Đoạn code
program calculator_v2;

uses
crt;


var
// mảng lưu trữ các số
a: array [1..100] of real;
// mảng lưu trữ các phép toán
b, c: array [1..100] of string;
dem, ad, w2, a1: integer;
e: string;


begin
clrscr;
// Vòng lại chính
while true do
begin
// Xử lý đầu vào
dem := dem + 1;
if dem = 1 then
begin
writeln('Calculator');
readln(a[1]);
end ;
if dem > 1 then
begin
ad := ad + 1;
readln(a[dem + ad]);
end ;
if dem < 50 then
readln(b[dem * 2]) ;

// Xử lý phép tính
if (b[dem * 2] = '=') or (dem = 50) then
begin
dem := dem * 2 - 2;

// Xử lý các phép toán nhân và chia
for w2 := 1 to dem do
begin
a1 := 0;
if b[w2] = '×' then
begin
if c[w2 - 1] = '*' then
a1 := w2 - 3
else
a1 := w2 - 1;
while true do
begin
if c[a1] = '*' then
a1 := a1 - 2
else
break ;
end;
a[a1] := a[a1] * a[w2 + 1];
c[w2 + 1] := '*';
end ;
if b[w2] = '÷' then
begin
if c[w2 - 1] = '*' then
a1 := w2 - 3
else
a1 := w2 - 1;
while true do
begin
if c[a1] = '*' then
a1 := a1 - 2
else
break ;
end;
a[a1] := a[a1] / a[w2 + 1];
c[w2 + 1] := '*';
end ;
end;

// Xử lý các phép toán cộng và trừ
for w2 := 1 to dem do
begin
a1 := 0;
if b[w2] = '+' then
begin
if c[w2 - 1] = '*' then
a1 := w2 - 3
else
a1 := w2 - 1;
while true do
begin
if c[a1] = '*' then
a1 := a1 - 2
else
break ;
end;
a[a1] := a[a1] + a[w2 + 1];
c[w2 + 1] := '*';
end ;
if b[w2] = '-' then
begin
if c[w2 - 1] = '*' then
a1 := w2 - 3
else
a1 := w2 - 1;
while true do
begin
if c[a1] = '*' then
a1 := a1 - 2
else
break ;
end;
a[a1] := a[a1] - a[w2 + 1];
c[w2 + 1] := '*';
end ;
end;

// Xuất kết quả
writeln(a[1]);
readln(e);
dem := 0;
ad := 0;
for w2 := 1 to 100 do

c[w2] := '';
if e = 'off' then
break ;
clrscr;
end ;
end;
end.
 

Attachments

  • calculator_v2.zip
    967 bytes · Đọc: 1
Last edited:
Top Bottom