Nhờ tư vấn - Xin code chương trình Pascal? | VN-Zoom | Cộng đồng Chia Sẻ Kiến Thức Công Nghệ và Phần Mềm Máy Tính

Adblocker detected! Please consider reading this notice.

We've detected that you are using AdBlock Plus or some other adblocking software which is preventing the page from fully loading.

We need money to operate the site, and almost all of it comes from our online advertising.

If possible, please support us by clicking on the advertisements.

Please add vn-z.vn to your ad blocking whitelist or disable your adblocking software.

×

Nhờ tư vấn Xin code chương trình Pascal?

Hacker Is Real

Hãy like thay vì post thanks ❤❤❤!
Em đang lên một ý tưởng để viết một code máy tính bỏ túi (cộng, trừ, nhân, chia) theo đúng quy tắc mà nghĩ không ra chỗ quy tắc {sweat}{sweat}{sweat}, xin các bác giúp em với {please}
 

ToBaQuyen

Búa Gỗ
Đọc bài của bạn thì không hiểu chính xác là bạn muốn cái gì.
Có phải ý bạn là quy tắc cộng trừ nhân chia không ?
Quy tắc toán học là: trong ngoặc trước, nhân chia ưu tiên như nhau và thực hiện trước cộng và trừ. Nếu có hai phép tính có thứ tự ưu tiên như nhau (nhân ưu tiên ngang với chia, cộng ưu tiên ngang với trừ) thì các phép tính sẽ được ưu tiên từ trái qua phải.
 

malemkhoang

Rìu Chiến
Biết đến đâu thì làm đến đó bạn nhé.
Ban đầu, với phép cộng, ta viết lệnh:
Mã:
write("Nhap so thu nhat: ");
readln(a);
để nhập số thứ nhất.
tiếp theo viết lệnh:
Mã:
write("Nhap so thu hai: ");
readln(b);
để nhập số thứ hai.
rồi viết lệnh:
Mã:
writeln("Ket qua: a + b = :", a + b);
để trả ra kết quả.

Hoàn thiện chương trình này còn cần:
- Kiểm tra dữ liệu nhập vào có đúng là số hay không?
- Phạm vi của dữ liệu số mà chương trình xử lý được (byte, Integer, word...)
- Lựa chọn phép toán để thực hiện (+, -, x, :).
- Xử lý lỗi toán học (chia cho 0)...
- Môi trường đồ họa.
 

Hacker Is Real

Hãy like thay vì post thanks ❤❤❤!
d
Đọc bài của bạn thì không hiểu chính xác là bạn muốn cái gì.
Có phải ý bạn là quy tắc cộng trừ nhân chia không ?
Quy tắc toán học là: trong ngoặc trước, nhân chia ưu tiên như nhau và thực hiện trước cộng và trừ. Nếu có hai phép tính có thứ tự ưu tiên như nhau (nhân ưu tiên ngang với chia, cộng ưu tiên ngang với trừ) thì các phép tính sẽ được ưu tiên từ trái qua phải.
đúng rồi bạn ơi
 

Hacker Is Real

Hãy like thay vì post thanks ❤❤❤!
Biết đến đâu thì làm đến đó bạn nhé.
Ban đầu, với phép cộng, ta viết lệnh:
Mã:
write("Nhap so thu nhat: ");
readln(a);
để nhập số thứ nhất.
tiếp theo viết lệnh:
Mã:
write("Nhap so thu hai: ");
readln(b);
để nhập số thứ hai.
rồi viết lệnh:
Mã:
writeln("Ket qua: a + b = :", a + b);
để trả ra kết quả.

Hoàn thiện chương trình này còn cần:
- Kiểm tra dữ liệu nhập vào có đúng là số hay không?
- Phạm vi của dữ liệu số mà chương trình xử lý được (byte, Integer, word...)
- Lựa chọn phép toán để thực hiện (+, -, x, :).
- Xử lý lỗi toán học (chia cho 0)...
- Môi trường đồ họa.
Thanks bạn nhiều, nhưng mình đã viết được phần mềm tính như vầy (tuy nhiên chỉ tính được phép tính một dấu) {cry}{cry}
Uses crt;
Label dau;
Const S=['1','2','3','4','5','6','7','8','9','0'];
D=['*','+','-','/','^'];
Ddb=['*','^','/'];
dt=['-','+'];
dau1=['1','2','3','4','5','6','7','8','9','0','*','/','+','-','^'];
Var bt,so1,so2,vt,tl:string;
l,lt,i,m,code,k: integer;
s1,s2,kqdb: qword;
kq: currency;
Begin
repeat
dau: clrscr;
bt:='';
Writeln('Nhap bieu thuc mot dau (nhan, chia, cong, tru, luy thua), neu thoat thi nhap exit: ');
readln(bt);
If bt='exit' then exit;
l:=length(bt);
i:=0;
m:=0;
kq:=0;
s1:=0;
s2:=0;
so1:='';
so2:='';
Repeat
i:=i+1;
If (m=1) and (bt in ddb) then
Begin
Writeln('Xin loi ban, chuong trinh chi thuc hien phep tinh mot dau!');
readln;
goto dau;
End;
If bt in d then m:=m+1;
If (bt in d) and (bt[i+1] in d) then
Begin
Writeln('Xin loi ban, chuong trinh chi thuc hien phep tinh so duong!');
readln;
goto dau;
End;
If (bt[1]='*') or (bt[1]='/') or (bt[1]='^') then
Begin
writeln('Bieu thuc sai!');
delay(1000);
goto dau;
End;
If (bt in dau1) then read else
Begin
Writeln('Bieu thuc sai!');
delay(1000);
goto dau;
End;
If (bt[l] in d) then
Begin
Writeln('Bieu thuc sai!');
delay(1000);
Goto dau;
End;
If (bt[l] in ddb) and (bt[l+1] in ddb) then
Begin
Writeln('Bieu thuc sai!');
delay(1000);
goto dau;
End;
Until i=l;
for k:=1 to l do
Begin
If bt[k] in d then
begin
lt:=k;
for i:=1 to k-1 do
so1:=so1+bt;
read;
end;
Val(so1,s1,code);
End;
For i:=lt+1 to l do
Begin
so2:=so2+bt;
read;
End;
Val(so2,s2,code);
Case bt[lt] of
'+':
Begin
kq:=s1+s2;
Writeln('= ',kq:0:0);
End;
'-':
Begin
kq:=s1-s2;
writeln('= ',kq:0:0);
End;
'*':
Begin
kq:=s1*s2;
Writeln('= ',kq:0:0);
End;
'/':
Begin
kq:=s1/s2;
Writeln('= ',kq:0:2);
End;
'^':
Begin
If s2=1 then writeln('= ',s1) else
If s2=0 then writeln('= 1') else
Begin
If s2<0 then s2:=-s2;
kq:=1;
i:=0;
repeat
i:=i+1;
kq:=kq*s1;
Until i=s2;
If s2<0 then writeln('= ',1/kq:0:0);
If s2>0 then Writeln('= ',kq:0:0);
End;
End;
End;
If m=0 then writeln('= ',bt);
Writeln('Nhap e de thoat.');
tl:=readkey;
If tl='e' then exit;
Until m=10203;
End.
 

Hacker Is Real

Hãy like thay vì post thanks ❤❤❤!
Đọc cuốn giải thuật và lập trình. Mình đã post nhé.
bạn có thể cho mình xin đường link được không?
 

NgoHungCuong


Junior Moderator
Thành viên BQT
Bạn đã hiểu code hoạt động như thế nào chưa?
Hay là copy dịch xong chạy nó báo lỗi mà ko hiểu lỗi như thế nào?
Biểu thức cần tính ở đâu?
File inp với out ở đâu?
Đã có file input chưa?
Cái gì nó cũng cần thời gian, chí ít bạn phải đọc xem code người ta nó như thế nào đã.
 


Top