PDA

View Full Version : Ai giúp em mấy bài pascal với



sevlyorum
27-09-2009, 13:15
Em có mấy bài pascal tương đối dễ . Nhưng tại em gà quá nên chẳng biết làm
1.nhập 3 số nguyên a,b,c từ bàn phím . Lập trình sao cho các số nguyên sắp xếp theo thứ tự giảm dần .
2.Lập trình kiểm tra xem 2 số thực a,b,c có là cạnh của tam giác hay không ? nếu là cạnh thì là cạnh của tam giác vuông hay tam giác thường.
3.Nhập vào bàn phím số có 4 chữ số . Tính tổng chữ số chẵn trong số đó.
4.Trên 1 bàn cờ vua (8*8)kiểm tra xem quân mã có chiếu quân tướng không?
5.Trên 1 bàn cờ vua (8*8)kiểm tra xem quân tịnh có chiếu quân tướng không?
6.cho 4 điểm A(x1;y1),B(x2;y2),C(x3;y3)và D(x4;y4).kiểm tra xem điểm D có thuộc tam giác ABC hay không?
7.cho 3 điểm A(x1;y1),B(x2;y2),C(x3;y3)lập trình kiểm tra xem 3 điểm có thẳng hàng hay không?
8.Cho 2 điểm D(x1;y1),E(x2;y2)kiểm tra xem Dvà E nằm cùng phía hay khác phía với đường thẳng Ax + By + C=0(d)?

Ai biết thì giúp em với ạ vì mai em phải nộp bài cho thầy giáo rồi ?

lehang_gb1
01-10-2009, 09:05
Program Bai2;
Var a,b,c:real;
Begin
Write('Nhap vao 3 so a,b,c:');
Readln(a,b,c);
If (a+b>c) and (b+c>a) and (c+a>b) then
Begin
write('3 so a,b,c la 3 canh cua tam giac');
if (a*a+b*b=c*c) or (a*a+c*c=b*b) or (b*b+c*c=a*a) then
writeln ('Tam giac vuong' else writeln('Tam giac thuong');
end;
else writeln('3 so a,b,c khong phai la 3 canh cua tam giac');
Readln
End.


[=========> Bổ sung bài viết <=========]


Ý tưởng của bài toán3là tách lấy từng chứ số của N từ bên phải bằng các phép toán chia lấy phần nguyên (DIV) và chia lấy phần dư (MOD). Và kiểm tra từng chữ số của N nếu chẵn thì cộng vào tổng S. Thế thôi



program bai3;
var N:word;
a,b,c,d:Byte;
Begin
write('Nhap vao so N:');
Readln(N);
a: = n mod 10;
if a mod 2 =0 then S:=S+a;
N:=N div 10;
b:=N mod 10;
if b mod 2 =0 then S:=S+b;
N:=N div 10;
c:=N mod 10;
if c mod 2 =0 then S:=S+c;
N:=N div 10;
d:=N mod 10;
if d mod 2 =0 then S:=S+d;
writeln('Tong cac chu so chan cua N la:',S):
Readln
End.


[=========> Bổ sung bài viết <=========]



program Bai1;
uses crt;
var a,b,c,tg:Integer;
Begin
clrscr;
write('vao 3 so a,b,c:'); Readln(a,b,c);
if b<a then
begin tg:=a; a:=b; b:=tg; end;
if c<b then begin tg:=b; b:=c; c:=tg;end;
if b<a then begin tg:=a; a:=b; b:=tg; end;
write(a:9; b:9; c:9);
Readln
End.

manhhung022193
01-10-2009, 22:23
mấy bài này dễ thế mà cũng hỏi àh

duykhuong-it
03-10-2009, 16:35
Em thấy bài 4 và bài 5 hơi khó, nếu vua không nằm ở vị trí ban đầu thì mình phải làm sao nhỉ?

hang_vt
03-10-2009, 21:12
cờ vua mà đòi chiếu tướng :((


const tdi:array[1..8] of shortint = (-2,-2,-1,-1,1,1,2,2);
tdj:array[1..8] of shortint = (-1,1,-2,2,-2,2,-1,1);
var x1,y1,x,y,i:longint;
begin
writeln('TOA DO QUAN MA LA : ');
readln(x1,y1);
writeln('TOA DO CUA QUAN VUA LA : ');
readln(x,y);
for i:=1 to 8 do
if (x1+tdi[i]=x) and (y1+tdj[i]=y) then
begin
writeln('QUAN MA DANG CHIEU VUA');
readln;
halt;
end;
writeln('QUAN MA KO CHIEU VUA');
readln
end.


tượng thì tương tự thôi

[=========> Bổ sung bài viết <=========]

tượng đứng ô ( x1,y1 ) ; vua đứng ô ( x2 , y2 )
Tượng đang chiếu vua <=> x1-x2=y1-y2

xe dứng ô ( x1,y1) ; vua dứng ô ( x2,y2 )
xe đang chiếu vua <=> x1 = x2 hoặc y1 = y2

hậu = xe + tượng

( hơi khó hỉu , mang bàn cờ ra để kiểm chứng :) )