ITK35Zone
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.
ITK35Zone


 
Trang ChínhTrang Chính  Latest imagesLatest images  Đăng kýĐăng ký  Đăng Nhập  
Chào mừng các bạn đã đến với diễn đàn ITK35Zone - Lớp CNTT K35 Trường Đại học Sư phạm TP.HCM
Hiện diễn đàn đang bị lỗi kĩ thuật, mong mọi người thông cảm. BQT sẽ cố gắng khắc phục trong thời gian sớm nhất...

Share | 

 

 Bài tập về loại tam giác (Pascal)

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Bài tập về loại tam giác (Pascal) EmptyThu Dec 10, 2009 10:56 pm

Regulus™
UserRegulus™ Người này hiện đang:
Level: Tổng điều hành
Danh vọng:758


Tổng điều hành

Regulus™

Tổng điều hành

http://itk35.tk
Giới tính : Nam
Đến từ : ...
Join : 06/11/2009
Bài gửi : 758
HUMOR : Nghe nhạc.. Computer

Thú cưng
.:

Bài gửiTiêu đề: Bài tập về loại tam giác (Pascal)

 
Code:
uses crt;
var a,b,c:real;
    ketqua:string;
function Nhap(ghichu:string):real;
var ketqua:real;
begin
    write(ghichu);
    readln(ketqua);
    Nhap:=ketqua;
end;
function Tamgiac(a,b,c:real):boolean;
var ketqua:boolean;
begin
    ketqua:=false;
    if (a+b>c) and (b+c>a) and (c+a>b) then
        ketqua:=true;
    Tamgiac:=ketqua;
end;
function TamgiacDeu(a,b,c:real):boolean;
var ketqua:boolean;
begin
    ketqua:=false;
    if (a=b) and (b=c) then
        ketqua:=true;
    TamgiacDeu:=ketqua;
end;
function TamgiacCan(a,b,c:real):boolean;
var ketqua:boolean;
begin
    ketqua:=false;
    if (a=b) or (b=c) or (c=a) then
        ketqua:=true;
    TamgiacCan:=ketqua;
end;
function TamgiacVuong(a,b,c:real):boolean;
var ketqua:boolean;
begin
    ketqua:=false;
    if (sqr(a)+sqr(b)=sqr(c)) or (sqr(b)+sqr(c)=sqr(a)) or (sqr(c)+sqr(a)=sqr(b)) then
        ketqua:=true;
    TamgiacVuong:=ketqua;
end;
function DangTamGiac(a,b,c:real):string;
var ketqua:string;
begin
    if Tamgiac(a,b,c) then
        begin
          if TamgiacDeu(a,b,c) then
              ketqua:='Day la tam giac deu!'
          else {Khong deu}
              begin
                  if TamgiacCan(a,b,c) then
                    begin
                        if TamgiacVuong(a,b,c) then
                            ketqua:='Day la tam giac Vuong Can!'
                        else {Khong vuong}
                            ketqua:='Day la tam giac Can!';
                    end
                  else {Khong can}
                      begin
                        if TamgiacVuong(a,b,c) then
                            ketqua:='Day la tam giac Vuong!'
                        else {Khong vuong}
                            ketqua:='Day la tam giac Thuong!';
                      end;
              end;
        end
    else
        ketqua:='Ba so nay khong phai la ba canh cua tam giac!';
    DangTamGiac:=ketqua;
end;
procedure XuLy;
begin
    repeat
        clrscr;
        writeln('Chuong trinh kiem tra dang cua tam giac!');
        a:=Nhap('Nhap vao a: ');
        b:=Nhap('Nhap vao b: ');
        c:=Nhap('Nhap vao c: ');
        ketqua:=DangTamGiac(a,b,c);
        writeln(ketqua);
        writeln('Nhan esc de thoat!');
    until(ord(readkey)=27);
end;
begin
    XuLy;
end.


Sưu tầm của thầy Hoàng Smile Smile



Bài tập về loại tam giác (Pascal) EmptyFri Dec 11, 2009 1:03 am

hecator
Userhecator Người này hiện đang:
Level: Thành Viên Danh Dự
Danh vọng:513


Thành Viên Danh Dự

hecator

Thành Viên Danh Dự

Giới tính : Nam
Join : 07/11/2009
Bài gửi : 513

Thú cưng
.:

Bài gửiTiêu đề: Re: Bài tập về loại tam giác (Pascal)

 
Sao lại rắc rối vậy, còn đây là bài của mình rất nhẹ nhàng và đơn giản đã test chương trình Bài tập về loại tam giác (Pascal) 830844
Trích dẫn :
uses Crt;
Var a, b, c, p, s : Real;
Begin
clrscr;
Write( ' Nhap ba so a, b, c : ' );
Readln(a, b, c);
If (a>0) and (b>0) and (c>0) and (a+b>c) and (a+c>b) and (b+c>a) then
Begin
Writeln( ' Ba canh tren tao thanh mot tam giac ');
if (a=b) and (b=c) then write( ' Day la tam giac deu. ' );
if (a=b) or (a=c) or (b=c) then write(' Day la tam giac can ' );
If (sqr(a)+sqr(b)=sqr(c)) or (sqr(b)+sqr(c)=sqr(a)) or (sqr(a)+sqr(c)=sqr(b)) then write(' Day la tam giac vuong ' );
End
Else
Write( ' Ba so nay khong tao thanh duoc mot tam giac. ' );
Readln;
End.

chú ý khi nhap lieu a b c thì chỉ cần cách khoảng trống giữa các số thôi thôi vd : 6 8 7



Bài tập về loại tam giác (Pascal) EmptyFri Dec 11, 2009 8:19 am

—» Ñärµ «—
User—» Ñärµ «— Người này hiện đang:
Level: Thành Viên Chuẩn
Danh vọng:47


Thành Viên Chuẩn

—» Ñärµ «—

Thành Viên Chuẩn

Join : 11/11/2009
Bài gửi : 47

Bài gửiTiêu đề: Re: Bài tập về loại tam giác (Pascal)

 
Smile ng ta làm đúng mà kiu rắc rối!
nhìn kĩ đi, cách của pạn pị sai về giải thuật rùi kìa....

code dài hok có nghĩ là rắc rối.
viết code như thầy thì sau này mới phát triển thành ct lớn đc......



Bài tập về loại tam giác (Pascal) EmptyFri Dec 11, 2009 8:45 am

Regulus™
UserRegulus™ Người này hiện đang:
Level: Tổng điều hành
Danh vọng:758


Tổng điều hành

Regulus™

Tổng điều hành

http://itk35.tk
Giới tính : Nam
Đến từ : ...
Join : 06/11/2009
Bài gửi : 758
HUMOR : Nghe nhạc.. Computer

Thú cưng
.:

Bài gửiTiêu đề: Re: Bài tập về loại tam giác (Pascal)

 
Thực ra bài của thầy khá hay...
Chương trình chính chỉ có
Code:
begin
    XuLy;
end.
Tiếp theo dùng thủ tục xử lý

Code:
procedure XuLy;
begin
    repeat
        clrscr;
        writeln('Chuong trinh kiem tra dang cua tam giac!');
        a:=Nhap('Nhap vao a: ');
        b:=Nhap('Nhap vao b: ');
        c:=Nhap('Nhap vao c: ');
        ketqua:=DangTamGiac(a,b,c);
        writeln(ketqua);
        writeln('Nhan esc de thoat!');
    until(ord(readkey)=27);
end;

Thực ra 2 cái trên có thể ghép lại thành 1 cũng được ..

Tiếp tục dùng hàm dangtamgiac

Code:
function DangTamGiac(a,b,c:real):string;
var ketqua:string;
begin
    if Tamgiac(a,b,c) then
        begin
          if TamgiacDeu(a,b,c) then
              ketqua:='Day la tam giac deu!'
          else {Khong deu}
              begin
                  if TamgiacCan(a,b,c) then
                    begin
                        if TamgiacVuong(a,b,c) then
                            ketqua:='Day la tam giac Vuong Can!'
                        else {Khong vuong}
                            ketqua:='Day la tam giac Can!';
                    end
                  else {Khong can}
                      begin
                        if TamgiacVuong(a,b,c) then
                            ketqua:='Day la tam giac Vuong!'
                        else {Khong vuong}
                            ketqua:='Day la tam giac Thuong!';
                      end;
              end;
        end
    else
        ketqua:='Ba so nay khong phai la ba canh cua tam giac!';
    DangTamGiac:=ketqua;
end;

Thực ra đây chính là thủ tục quan trong nhất của chương trình, kiểm tra xem thử đó là dạng tam giác gì..
Bắt đầu kiểm tra giá trị các cạnh bằng các chương trình con khác (dạng hàm) như tamgiacdeu, tamgiaccan,.... ( Kiểu Boolean True - False)
Nếu nó ko phải tam giác đều, ko phải tam giác cân, vuông cân, tam giác thường ==> nó ko phải là tam giác


Bài của thầy tuy dài nhưng khá rõ ràng, dễ hiểu..có thể thấy nét khác biệt của việc sử dụng chương trình con rồi đó
Chỉ có thủ tục "Xu ly", mình nghĩ nên đem nó ra làm chương trình chính luôn, ko cần rườm ra thêm thủ tục Very Happy Very Happy



-----------------------------------------------------------
@Naru: xem lại đi, cách của Big cũng đúng rồi mà....
Có điều mình edit lại xíu phần nhập các số a,b,c và thiếu tam giác vuông cân

Code:
uses Crt;
Var a, b, c, p, s : Real;
Begin
clrscr;
repeat
Write( ' Nhap ba so a, b, c : ' );
Readln(a, b, c);
until      (a>0) and (b>0) and (c>0);

If (a>0) and (b>0) and (c>0) and (a+b>c) and (a+c>b) and (b+c>a) then
Begin
Writeln( ' Ba canh tren tao thanh mot tam giac ');
if (a=b) and (b=c) then write( ' Day la tam giac deu. ' );
if (a=b) or (a=c) or (b=c) then write(' Day la tam giac can ' );
If (sqr(a)+sqr(b)=sqr(c)) or (sqr(b)+sqr(c)=sqr(a)) or (sqr(a)+sqr(c)=sqr(b)) then
  if (a=b) or (b=c) or (a=c) then write('Tam giac nay vuong can')
  else write('Day la tam giac vuong');
End
Else
Write( ' Ba so nay khong tao thanh duoc mot tam giac. ' );
Readln;
End.



Bài tập về loại tam giác (Pascal) EmptyFri Dec 11, 2009 10:53 am

—» Ñärµ «—
User—» Ñärµ «— Người này hiện đang:
Level: Thành Viên Chuẩn
Danh vọng:47


Thành Viên Chuẩn

—» Ñärµ «—

Thành Viên Chuẩn

Join : 11/11/2009
Bài gửi : 47

Bài gửiTiêu đề: Re: Bài tập về loại tam giác (Pascal)

 
chán thiệt!
sao tự nhiên tui lại đi pàn cãi zề mấy cái pài tạp nhạp này trơi!
sr mây pạn nhé. .....Smile
@regulus: test hết chưa mà nói thế hả?
nhập tam giác có 3 cạnh pằng nhau đi.Kết quả sẽ là:
tam giác đều
tam giác cân
....Smile suy nghĩ kĩ trc khi nói nhák.



Số lần được cảm ơn : Message reputation : 0% (1 vote)


Bài tập về loại tam giác (Pascal) EmptyFri Dec 11, 2009 11:07 am

Regulus™
UserRegulus™ Người này hiện đang:
Level: Tổng điều hành
Danh vọng:758


Tổng điều hành

Regulus™

Tổng điều hành

http://itk35.tk
Giới tính : Nam
Đến từ : ...
Join : 06/11/2009
Bài gửi : 758
HUMOR : Nghe nhạc.. Computer

Thú cưng
.:

Bài gửiTiêu đề: Re: Bài tập về loại tam giác (Pascal)

 
ax...Đó chỉ là lỗi sơ đẳng trình bày thôi...
1 tam giác đều cũng là 1 tam giác cân mà Smile Smile

Quên xét trường hợp đó

Chỉ cần thay đoạn Tam giác đều, tam giác cân = đoạn này là ok hết



Code:
 if (a=b) or (b=c) or (a=c) then
      if (a=b) and (b=c) then write('Tam giac deu')
      else write('Tam giac can');
Smile Smile Smile Smile Smile Very Happy



Bài tập về loại tam giác (Pascal) EmptyFri Dec 11, 2009 11:37 am

hecator
Userhecator Người này hiện đang:
Level: Thành Viên Danh Dự
Danh vọng:513


Thành Viên Danh Dự

hecator

Thành Viên Danh Dự

Giới tính : Nam
Join : 07/11/2009
Bài gửi : 513

Thú cưng
.:

Bài gửiTiêu đề: Re: Bài tập về loại tam giác (Pascal)

 
@ Naru
mình không hiểu sai về giải thuật là sao ? Chỉ rõ ra đi , test được rồi mà . Code mà có hàm con vô thì thầy dạy thì mình chưa hiểu rõ nên ứng dụng chưa được nên thấy nó rắc rối và rườm rà , ! Bạn Đừng nghĩ biết rùi thì lên mặt với người khác ,
Trích dẫn :
chán thiệt!
sao tự nhiên tui lại đi pàn cãi zề mấy cái pài tạp nhạp này trơi!
" tạp nhạp" đối với bạn nhưng với một số người mới biết như mình là lớn đó
@ regulus cảm ơn nhe ! Lỗi tam giác cân và tam giác đều hôm qua chưa nghĩ ra ! Ráp vô thấy được rồi ! Cái này chắc phải học hỏi thêm ông giúp giùm nha !
Chữ P, và s là ban đầu định xét định dạng t theo chu vi và diện tích nhưng thấy nó khá rắc rối nên mình bỏ rồi, ai ngờ dòng đầu chưa xoá hết SR mọi người nha!



Bài tập về loại tam giác (Pascal) EmptyFri Dec 11, 2009 11:45 am

—» Ñärµ «—
User—» Ñärµ «— Người này hiện đang:
Level: Thành Viên Chuẩn
Danh vọng:47


Thành Viên Chuẩn

—» Ñärµ «—

Thành Viên Chuẩn

Join : 11/11/2009
Bài gửi : 47

Bài gửiTiêu đề: Re: Bài tập về loại tam giác (Pascal)

 
hecator đã viết:
@ Naru
mình không hiểu sai về giải thuật là sao ? Chỉ rõ ra đi , test được rồi mà . Code mà có hàm con vô thì thầy dạy thì mình chưa hiểu rõ nên ứng dụng chưa được nên thấy nó rắc rối và rườm rà , ! Bạn Đừng nghĩ biết rùi thì lên mặt với người khác ,
Trích dẫn :
chán thiệt!
sao tự nhiên tui lại đi pàn cãi zề mấy cái pài tạp nhạp này trơi!
" tạp nhạp" đối với bạn nhưng với một số người mới biết như mình là lớn đó
@ regulus cảm ơn nhe ! Lỗi tam giác cân và tam giác đều hôm qua chưa nghĩ ra ! Ráp vô thấy được rồi ! Cái này chắc phải học hỏi thêm ông giúp giùm nha !
Chữ P, và s là ban đầu định xét định dạng t theo chu vi và diện tích nhưng thấy nó khá rắc rối nên mình bỏ rồi, ai ngờ dòng đầu chưa xoá hết SR mọi người nha!

pó đao. khái niệm cơ pãn cũng hok cóa!hoy em thua mấy anh, sợ tự ái mấy anh nổi lên quá........Smile



Số lần được cảm ơn : Message reputation : 0% (1 vote)


Bài tập về loại tam giác (Pascal) EmptySat Dec 12, 2009 3:02 pm

nvcuongsp
Usernvcuongsp Người này hiện đang:
Level: Ma Mới
Danh vọng:4


Ma Mới

nvcuongsp

Ma Mới

Giới tính : Nam
Đến từ : daklak
Join : 12/12/2009
Bài gửi : 4
HUMOR : Yêu là chính

Bài gửiTiêu đề: Re: Bài tập về loại tam giác (Pascal)

 
đọc tới đây mà thấy chán rồi. diễn đàn gì mà cắn xé nhau không thế?



Bài tập về loại tam giác (Pascal) EmptySat Dec 12, 2009 6:42 pm

kim_o
Userkim_o Người này hiện đang:
Level: Thành Viên Xây Dựng
Danh vọng:148


Thành Viên Xây Dựng

kim_o

Thành Viên Xây Dựng

Giới tính : Nam
Đến từ : An Giang
Join : 12/11/2009
Bài gửi : 148

Bài gửiTiêu đề: Re: Bài tập về loại tam giác (Pascal)

 
mệt mấy "pa pa" wa', không khiêm tốn hơn được chút hả???? giũa con và người khác nhau cũng chính là người có ý thức văn hóa đó các bạn,...
Người ta cũng nói,"có tài mà không có đức là kẻ vô dụng, có đức mà không có tài thì không làm được việc gì cả"... hj vọng ITK35 chúng ta đều là người tài đức. Shocked



Bài tập về loại tam giác (Pascal) EmptySat Dec 12, 2009 6:54 pm

nvcuongsp
Usernvcuongsp Người này hiện đang:
Level: Ma Mới
Danh vọng:4


Ma Mới

nvcuongsp

Ma Mới

Giới tính : Nam
Đến từ : daklak
Join : 12/12/2009
Bài gửi : 4
HUMOR : Yêu là chính

Bài gửiTiêu đề: Re: Bài tập về loại tam giác (Pascal)

 
Tôi thấy qua trình hoạt động của các bạn như sau:
Post====> mổ xẻ=====>Chia Phần=====>Dành nhau =====>die
HiHi. ki 1 này hôk được bàn luận mấy cái Pascal cũng buồn thật. sang kì 2 C++ rồi mình than gia bàn luận nhen



Bài tập về loại tam giác (Pascal) Empty

UserSponsored content Người này hiện đang:
Level:
Danh vọng:



Sponsored content

Bài gửiTiêu đề: Re: Bài tập về loại tam giác (Pascal)

 


 

Bài tập về loại tam giác (Pascal)

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
ITK35Zone :: Học tập :: Lưu trữ (năm 1) :: Tin học đại cương-
 
Create a forum on Forumotion | ©phpBB | Free forum support | Báo cáo lạm dụng | Thảo luận mới nhất