# Trung tâm xử lý sự cố > Hỏi-Đáp về Lập trình >  câu lệnh điều kiện và trường hợp dùng

## shakira

câu lệnh điều kiện thì dùng trong trường hợp nào vậy ạ?
nhiều khi em cho khai báo 1 biến là kí tự và sử dụng câu lệnh if then để so sánh với trường hợp khác nhau
vd
em khai báo kẹo mút là hằng và viết câu lệnh if then như sau
"if tensanpham<>keomut then writeln('khong tinh duoc'); else 
begin 
write('soluong:');readln(soluong);
writeln('so tien phai tra la',ten san pham*soluong);
end;
readln
end."
tại câu lệnh if then nó thông báo lỗi sai kiểu, kiểu không thích hợp thì em sai ở chỗ nào ạ
và chương trình tính giá tiền của cá đồ ăn minh lựa chọn kèm theo số lượng và tính ra tiền như thế nào ạ?

----------


## Thietbigiadinh

sai là vì lý do trước else không bao giờ có dấu ";" ....vs lại chỗ readln cũng thiếu dấu ";" kìa.......

----------


## tranbaokieu

p/s
kiểu kí tự ở đây là kiểu char phải không? nếu vậy thì thì 1 biến chỉ là 1 kí tự trong mã ascii thôi. còn vd như 'tensanpham' hay 'keomut' phải khai báo kiểu string.
đối với chương trình tính giá tiền của các đồ ăn mình lựa chọn kèm theo số lượng và tính ra tiền:
bạn có thể viết ra màn hình 1 bảng tương tự như manu:
vd:
1.gà rán 20 000d
2.khoai tây chiên 10 000d
3.súp 15 oood
sau đó cho 1 biến kiểu char (nếu dưới 10 món ăn) hoặc kiểu số nguyên để lựa chọn món ăn rồi tính.
bạn nên post lên 1 bài cụ thể.*

*

----------


## benjamin239

> chỗ readln cũng thiếu dấu ";" kìa.......


 chắc cái này anh chưa biết
trong pascal thì câu lệnh readln ngay cạnh từ khóa end thì không cần phải có dấu ";"[img]data:image/png;base64,ivborw0kggoaaaansuheugaaaaeaaaabaqmaaaa  l21bkaaaaa1bmvexh5pjm+ykvaaaaaxrstlmaqobyzgaaaapjr  efucndjyaaaaaiaaeihvdmaaaaasuvork5cyii=[/img]

----------


## vietshiro

nhưng cho em hoi làm thế nào để gán luôn giá trị của kẹo mút là 1000 đồng để khi thục hiện chương trình sẽ in ra :
ten san pham:
---------------
sau đó em nhập keomtu vao và nó tính cho mình
vì khi em thực hiện chạy chương trình thìn nó bảo em nhập tên sản phẩm vào do em cài đặt như thế. nhưng khi em nhập "keomut" thì nó thông báo lỗi
---------------
à!
không biết ra sao mà em có 13 tuổi mà diễn đàn lại in vào là 18
cho nên em mới học lớp 8 thôi, mong các anh chị giúp đỡ

----------


## sonhp

sam phát anh em nhé
lớp 8 học lập trình khá hơn anh nhiều rồi đó chú, nhớ ngày đó mình còn không biết cái máy tính nó hình chi chi [img]data:image/png;base64,ivborw0kggoaaaansuheugaaaaeaaaabaqmaaaa  l21bkaaaaa1bmvexh5pjm+ykvaaaaaxrstlmaqobyzgaaaapjr  efucndjyaaaaaiaaeihvdmaaaaasuvork5cyii=[/img] 
nói chi đến lập trình
thực ra những gì em hỏi trong sách vở viết rất nhiều bởi đấy đều là những cái rất cơ bản
muốn học lập trình tốt trước hết em phải học cách tự trả lời cho mình câu hỏi tại sao? trước một vấn đề đã và hỏi xem mình đã tìm chưa và tìm ở những đâu rồi

----------


## htkkplus

> chắc cái này anh chưa biết
> trong pascal thì câu lệnh readln ngay cạnh từ khóa end thì không cần phải có dấu ";"[img]data:image/png;base64,ivborw0kggoaaaansuheugaaaaeaaaabaqmaaaa  l21bkaaaaa1bmvexh5pjm+ykvaaaaaxrstlmaqobyzgaaaapjr  efucndjyaaaaaiaaeihvdmaaaaasuvork5cyii=[/img]


chắc có nhầm lẫn gì rồi, trong turbo or free pascal chi có trước else mới ko cần ";" thôi.
còn readln cuối ct phải có ";" theo sau. (ko có ct sẽ báo lỗi mà).
còn như bạn nói là ở borland pascal.(vừa lấy tài liệu ra xem lại).

------------------
nếu muốn nhập trực tiếp vậy thì khai báo biến kiểu string.
để tiết kiệm và dễ nhìn thì nên tạo 1 bảng ra màn hình như chị nói ở trên e nhé!
sau đó mình sẽ dùng 1 biến chọn và lệnh case...(biến chọn)...of để tiện việc tính toán.

vd thế này nhé! copy về chạy ct sẽ hiểu. 



> uses crt;
> var ch,sl,gia:integer;
> tongtien:longint;
> begin
> clrscr;
> writeln('manu');
> writeln('1.keo mut 1000d');
> writeln('2.kem 2000d');
> writeln('3.tra sua 6000d');
> ...


thân

----------


## haminhjob

em lập trình cả turbo pascal và free pascal thì chữ readln ở ngay trước end đều không cần có dấu ";"
mà thôi có vấn đề này không nên làm mất đoàn kết
nghĩ đến admin nhé!!!

----------


## aukid412

à
em hiểu rồi 
nhưng cứ phải viết ra như thế hả chị, có cách nào như thế này được không chị, tạm thời gồm có kẹo mút 1000, sữa 5000, kem 3000 nhé:

dưới là những gì chương trình in còn nghiêng là em viết nhé
_____________
nhan "0" de ket thuc lua chon
ten san pham:keo mut
so luong:5
ten san pham :kem
so luong:2
0
nhu vay ban da ket thuc lua chon (chị có thể bỏ đi)
tong so tien phai tra la :11000
mang hang ve nha(có thể bỏ)

----------


## SongwolVina

mọi người nếu ai có nick yahoo thì viết vào nhé
thế này hơi khó giao tiếp[img]data:image/png;base64,ivborw0kggoaaaansuheugaaaaeaaaabaqmaaaa  l21bkaaaaa1bmvexh5pjm+ykvaaaaaxrstlmaqobyzgaaaapjr  efucndjyaaaaaiaaeihvdmaaaaasuvork5cyii=[/img]

----------


## bumchiu.lost

> mọi người nếu ai có nick yahoo thì viết vào nhé
> thế này hơi khó giao tiếp[img]data:image/png;base64,ivborw0kggoaaaansuheugaaaaeaaaabaqmaaaa  l21bkaaaaa1bmvexh5pjm+ykvaaaaaxrstlmaqobyzgaaaapjr  efucndjyaaaaaiaaeihvdmaaaaasuvork5cyii=[/img]


 nếu bạn cần mà mình giúp gì được mình sẽ giúp, phần pascal này thôi nhá [img]data:image/png;base64,ivborw0kggoaaaansuheugaaaaeaaaabaqmaaaa  l21bkaaaaa1bmvexh5pjm+ykvaaaaaxrstlmaqobyzgaaaapjr  efucndjyaaaaaiaaeihvdmaaaaasuvork5cyii=[/img] 
ym!: isukeshiro

----------

