Hacker1602
Gà con
Xin mọi người giúp mình viết code về chương trình nhập vào 2 cạnh và góc ở giữa 2 cạnh ấy của một tam giác rồi in ra tam giác ấy (dùng đồ họa). Xin ad duyệt ạ
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.
Please add vn-z.vn to your ad blocking whitelist or disable your adblocking software.
All the knowledge we share is completely free. If you are willing, please support us here.
Cho mình xin thuật toán được không ạ?bài này cũng dễ nhưng mà tui quên hết pascal rồi, up lên cho bạn nào biết vô trả lời vậy
cái này là toán thôi hông có thuật gì ghê gớm đâu, trước hết vẽ ra 1 tam giác như vầy điCho mình xin thuật toán được không ạ?
a = read()
b = read()
alpha = read()
c = sqrt(a*a + b*b - 2*a*b*cos(alpha))
xK = 0;
yK = 0;
xL = xK + a;
yL = yK;
xM = xK + b*cos(alpha)
yM = yK - b*tan(alpha)
xmin = min(xK, xL, xM)
ymin = min(yK, yM)
tịnh tiến
xK = xK - xmin
yK = yK - ymin
xL = xL - xmin
yL = yL - ymin
xM = xM - xmin
yM = yM - ymin
xong, vẽ
thanks bạn nhiềucái này là toán thôi hông có thuật gì ghê gớm đâu, trước hết vẽ ra 1 tam giác như vầy đi
nhập a, b, α từ bàn phím, tính c bằng công thức
bài này không yêu cầu phương hướng của tam giác nên tui vẽ 1 cạnh nằm ngang cho dễ, ở đây tui chọn đại cạnh a đi
điểm K: bạn cho tọa độ xK, yK bất kì, bao nhiêu cũng được
điểm L: cạnh a nằm ngang nên xL = xK + a, yL = yK
điểm M hơi khó hơn chút:
xM = xK + KH = xK + b.cos(α)
yM = yK - HM = yK - b.tan(α)
có tọa độ 3 điểm K, L, M xong rồi vẽ ra thôi
<<----------<<> o0o <>>---------->>
cải tiến hơn chút, ở trên tọa độ điểm K là bạn cho đại, mỗi lần nhập tam giác là có khi bạn phải chỉnh lại tọa độ K nếu không có thể vẽ bị hụt khỏi màn hình, ở đây tui cho K mặc định là 0, 0 xong mình chơi phép tịnh tiến, bảo đảm tam giác luôn luôn nằm trong màn hình (trừ khi bạn cho cạnh quá dài)
cũng như trên, nhập a, b từ bàn phím, tính c, cho K(0, 0), tính tọa độ L, M cũng như trên luôn
tìm xmin = giá trị nhỏ nhất trong 3 số xK, xL, xM
tìm ymin = giá trị nhỏ nhất trong yK, yM
tịnh tiến điểm:
xK = xK - xmin, yK = yK - ymin
xL = xL - xmin, yL = yL - ymin
xM = xM - xmin, yM = yM - ymin
xong, vẽ ra thôi
viết thử mã giả nè
Mã:a = read() b = read() alpha = read() c = sqrt(a*a + b*b - 2*a*b*cos(alpha)) xK = 0; yK = 0; xL = xK + a; yL = yK; xM = xK + b*cos(alpha) yM = yK - b*tan(alpha) xmin = min(xK, xL, xM) ymin = min(yK, yM) tịnh tiến xK = xK - xmin yK = yK - ymin xL = xL - xmin yL = yL - ymin xM = xM - xmin yM = yM - ymin xong, vẽ
Cho mình hỏi chút, làm sao để xác định điểm H ở phần chưa tịnh tiến vậy bạn?cái này là toán thôi hông có thuật gì ghê gớm đâu, trước hết vẽ ra 1 tam giác như vầy đi
nhập a, b, α từ bàn phím, tính c bằng công thức
bài này không yêu cầu phương hướng của tam giác nên tui vẽ 1 cạnh nằm ngang cho dễ, ở đây tui chọn đại cạnh a đi
điểm K: bạn cho tọa độ xK, yK bất kì, bao nhiêu cũng được
điểm L: cạnh a nằm ngang nên xL = xK + a, yL = yK
điểm M hơi khó hơn chút:
xM = xK + KH = xK + b.cos(α)
yM = yK - HM = yK - b.tan(α)
có tọa độ 3 điểm K, L, M xong rồi vẽ ra thôi
<<----------<<> o0o <>>---------->>
cải tiến hơn chút, ở trên tọa độ điểm K là bạn cho đại, mỗi lần nhập tam giác là có khi bạn phải chỉnh lại tọa độ K nếu không có thể vẽ bị hụt khỏi màn hình, ở đây tui cho K mặc định là 0, 0 xong mình chơi phép tịnh tiến, bảo đảm tam giác luôn luôn nằm trong màn hình (trừ khi bạn cho cạnh quá dài)
cũng như trên, nhập a, b từ bàn phím, tính c, cho K(0, 0), tính tọa độ L, M cũng như trên luôn
tìm xmin = giá trị nhỏ nhất trong 3 số xK, xL, xM
tìm ymin = giá trị nhỏ nhất trong yK, yM
tịnh tiến điểm:
xK = xK - xmin, yK = yK - ymin
xL = xL - xmin, yL = yL - ymin
xM = xM - xmin, yM = yM - ymin
xong, vẽ ra thôi
viết thử mã giả nè
Mã:a = read() b = read() alpha = read() c = sqrt(a*a + b*b - 2*a*b*cos(alpha)) xK = 0; yK = 0; xL = xK + a; yL = yK; xM = xK + b*cos(alpha) yM = yK - b*tan(alpha) xmin = min(xK, xL, xM) ymin = min(yK, yM) tịnh tiến xK = xK - xmin yK = yK - ymin xL = xL - xmin yL = yL - ymin xM = xM - xmin yM = yM - ymin xong, vẽ
tọa độ điểm H hông quan trọng, quan trọng là độ dài KH và MH thôi, mấy cái này xài công thức lượng giác tính dễ dàng, còn nếu bạn muốn tính luôn tọa độ H như trong hình thì cũng dễ thôiCho mình hỏi chút, làm sao để xác định điểm H ở phần chưa tịnh tiến vậy bạn?
Nhưng làm sao để tính KH hả bạn? Nãy giờ bạn chưa đề cập, mình mới học lớp 8 nên chưa biếttọa độ điểm H hông quan trọng, quan trọng là độ dài KH và MH thôi, mấy cái này xài công thức lượng giác tính dễ dàng, còn nếu bạn muốn tính luôn tọa độ H như trong hình thì cũng dễ thôi
xH = xK + KH = xK + b.cos(α)
yH = yK
mình hiểu rồi bạn, cám ơn bạn nhiềutọa độ điểm H hông quan trọng, quan trọng là độ dài KH và MH thôi, mấy cái này xài công thức lượng giác tính dễ dàng, còn nếu bạn muốn tính luôn tọa độ H như trong hình thì cũng dễ thôi
xH = xK + KH = xK + b.cos(α)
yH = yK
lớp 8, nhỏ vậy đã học lập trình rồi à, tuổi trẻ tài cao vậyNhưng làm sao để tính KH hả bạn? Nãy giờ bạn chưa đề cập, mình mới học lớp 8 nên chưa biết
xin công thức tính h được không bạn? Viết nhưng tính sailớp 8, nhỏ vậy đã học lập trình rồi à, tuổi trẻ tài cao vậy
cám ơn bạn, nhưng bài này còn dễ mà mình còn chưa làm được thì sao giỏilớp 8, nhỏ vậy đã học lập trình rồi à, tuổi trẻ tài cao vậy
à sorry, coi kỹ lại hình như sai, sin = đối chia huyền mới đúng, như vậy h = b.sin αxin công thức tính h được không bạn? Viết nhưng tính sai
công thức rồi bạn (
Vẫn sai bạn ơi, bạn xem giúp code mình với:à sorry, coi kỹ lại hình như sai, sin = đối chia huyền mới đúng, như vậy h = b.sin α
xM = xK + KH = xK + b.cos α
yM = yK - MH = yK - b.sin α
bạn bỏ trong tag code cho dễ đọc nè, nhìn 2 dòng này hình như thấy sai rồi nèVẫn sai bạn ơi, bạn xem giúp code mình với:
Mã:Uses crt,graph; label dc1,dc2,dc3; var gm,gd,xA,yA,xB,yB,xC,yC,AB,BC,code,b,AC: integer; ACt2,ACt,AHt: real; bt,ABt,BCt: string; BEGIN dc1: clrscr; Writeln(' Ve tam giac voi hai canh va goc tao boi hai canh ay duoc nhap vao boi ban phim'); writeln(' 1 don vi = 1 cham'); writeln('________________________________________________________________________________________________________________________'); write('Nhap vao do dai canh thu nhat: '); readln(ABt); Val(ABt,AB,code); If AB>1360 then Begin WRiteln('Do dai canh vuot qua do dai man hinh (<=1360)!'); readln; goto dc1; End; If (code<>0) or (AB<1) then Begin Writeln('Do dai canh phai la mot so tu nhien lon hon 0!'); readln; goto dc1; End; dc2: clrscr; Writeln(' Ve tam giac voi hai canh va goc tao boi hai canh ay duoc nhap vao boi ban phim'); writeln(' 1 don vi = 1 cham'); writeln('________________________________________________________________________________________________________________________'); writeln('Nhap vao do dai canh thu nhat: ',AB); write('Nhap vao do dai canh thu hai: '); readln(BCt); Val(BCt,BC,code); If BC>30000 then Begin Writeln('Do dai canh vuot qua do dai man hinh (<=30000)!'); readln; goto dc2; End; If (code<>0) or (BC<1) then Begin Writeln('Do dai canh phai la mot so tu nhien lon hon 0!'); readln; goto dc2; End; dc3: clrscr; Writeln(' Ve tam giac voi hai canh va goc tao boi hai canh ay duoc nhap vao boi ban phim'); writeln(' 1 don vi = 1 cham'); writeln('________________________________________________________________________________________________________________________'); writeln('Nhap vao do dai canh thu nhat: ',AB); writeln('Nhap vao do dai canh thu hai: ',BC); Write('Nhap vao so do cua goc: '); readln(bt); Val(bt,b,code); If (code<>0) or (b<1) then Begin Writeln('So do goc phai lon hon 1'); readln; goto dc3; End; If b>178 then Begin Writeln('So do goc phai be hon 179'); readln; goto dc3; End; ACt:=AB*AB+BC*BC-2*AB*AC*cos(b); ACt2:=Sqrt(ACt); AC:=round(ACt2); xB:=10; yB:=704; xC:=xB+BC; yC:=yB; xA:=round(xB+Ab*cos(b)); yA:=round(yB-AB*sin(B)); writeln(xA,'.',yA,'.',AC); Writeln(AHt:0:0); initgraph(gd,gm,''); moveto(xB,yB); lineto(xC,yC); delay(500); moveto(xC,yC); lineto(xA,yA); delay(500); moveto(xA,yA); lineto(xB,yB); readkey; readln; End.
không phân biệt chữ hoa thường bạn ơi, cám ơn bạn nha, mình thấy lỗi code rồi.bạn bỏ trong tag code cho dễ đọc nè, nhìn 2 dòng này hình như thấy sai rồi nè
xA:=round(xB+Ab*cos(b));
yA:=round(yB-AB*sin(B));
mấy hàm lượng giác trong pascal hình như là tính bằng radian mà, bạn phải đổi góc ra radian rồi mới gọi hàm sin cos chứ
hông nhớ pascal có phân biệt hoa thường hay không, nếu có thì chỗ sin(B) phải là sin(b) chứ
cám ơn bạn nhiều nhé!cái của tui đúng rồi đó, test thử bằng c nè
a = b, góc 60, vẽ ra được tam giác đều
b = a * căn 2, góc 45 ra được tam giác vuông cân
cho thử góc lớn hơn 90 ra được tam giác này nè
code c nhưng mà chắc cũng dễ nhìn ha bạn, chỗ alpha = 60 * (3.1415926 / 180) là đổi từ 60 độ qua radian đó