For Pascal
#1
Đã gửi 17-03-2006 - 10:04
Mọi người đều có lợi
(Trong phạm vi lớp 10 )
----------------------------------------
"Ba trăm năm lẻ về sau
Ai người hiểu được chân tình của ta?"
#2
Đã gửi 25-03-2006 - 22:04
Cho n là 1 số tự nhiên <=500, viết chương trình in ra tam giác pascal
Vi dụ:
+n =3 tam giác là
1
2
1
+n =5 tam giác là:
1
4
6
4
1
+n =20 tam giác là:
1
19
171
969
3876
11628
27132
50388
75582
93278
93278
75582
50388
27132
11628
3876
969
171
19
1
Input
dòng đầu n số tự nhiên (n <=500)
output
xuất ra tam giác pascal
#3
Đã gửi 25-03-2006 - 22:47
Cần khiêng một chiếc bàn tròn abns kính m để đầy thức ăn qua một hành lang dài.Trên hành lang có n chiếc cột p1(x1,y1)(tức là có tọa độ (x1,y1)).....pn(xn,yn).Mỗi chiếc cột đều có bán kính k.Hai bên hành lang có hai bức tường song song trục oy có hoành độ là L,R (0<L<R<1000).Hãy lập chương trình tinh xem có thể khiêng chiếc bàn đó qua hành lang được không
#4
Đã gửi 25-03-2006 - 23:30
Cho dãy số A[1..m] gồm các biến kiểu byte. Hãy đếm xem trong dãy trên có bao nhiêu phần tử đôi một khác nhau. Bạn hãy làm với số m lớn nhất có thể.
Nếu dãy A gồm các biến kiểu integer, word, longint thì sao ?
#5
Đã gửi 26-03-2006 - 09:00
Cho một số N ( trong khoảng 1 đến 200 ) . Hãy viết chương trình tính 2^{n}
Input
-N
Outut
- Kết quả .
Bài này theo mình nhớ ko lầm là đề thi olympic 30/4 nhưng năm đầu tiên .
Mấy bác có post đề mấ bài Toán Tin lên nhớ cho luôn cách xuất Input và Output để ng giải biết cách cho KQ
#6
Đã gửi 26-03-2006 - 11:34
Còn bài của bạn tkthanh thì em không biết lệnh gì để đưa lên ^n. Đối với bài này ta sẽ có biến N là 1 biến Integer, dùng lệnh If để kẹp nó từ 1 - 200 sau đó cho nó ^n là biến N ta vừa nhập.
1 loạt bài này về nhà nghiên cứu chắc đã luôn. Thank mấy anh!
Thân!
----------------------------------------
"Ba trăm năm lẻ về sau
Ai người hiểu được chân tình của ta?"
#7
Đã gửi 27-03-2006 - 09:53
Var
a:real;
t:integer;
Begin
write('Nhap va so mu cua 2:');readln(t);
If (t<1) and (t>200) then write('So mu phai nam trong khu vuc 1 den 200')
Else
Begin
a:=(exp(t*ln(2));
write('2^',t,' la:',a);
End;
readln;
End.
Mở rộng bài toán:
Var
a,giatri:real;
t:integer;
Begin
write('Nhap vao so a:');readln(a);
write('Nhap vao so mu t:');readln(t);
giatri:=1;
For t:=1 to t do
Begin
giatri:=giatri*a;
t:=t+1;
End.
write(a,'^',t,'=',giatri);
readln;
End.
Bài viết đã được chỉnh sửa nội dung bởi Gabriel: 27-03-2006 - 09:55
----------------------------------------
"Ba trăm năm lẻ về sau
Ai người hiểu được chân tình của ta?"
#8
Đã gửi 27-03-2006 - 19:29
#9
Đã gửi 28-03-2006 - 00:15
Bài viết đã được chỉnh sửa nội dung bởi smalteagle: 28-03-2006 - 00:17
#10
Đã gửi 28-03-2006 - 06:32
#11
Đã gửi 28-03-2006 - 13:26
#12
Đã gửi 28-03-2006 - 16:34
Còn bài của manocanh thì có thể như sau:
For i:=1 to i do
kq:=kq+1/i;
Em rất thích môn Pascal này, càng nghiên cứu càng thấy hay, em cũng định làm 1 diễn đàn về Pascal hy vọng sau này tkhanh, smal, HaiDang có thể giúp đỡ thêm cho em.
Thân!
----------------------------------------
"Ba trăm năm lẻ về sau
Ai người hiểu được chân tình của ta?"
#13
Đã gửi 28-03-2006 - 20:53
#14
Đã gửi 29-03-2006 - 11:30
Ví dụ : nhập vào 23454 -> xuất ra 45432
#15
Đã gửi 29-03-2006 - 15:22
for i := 1 to n do
kq := kq + 1/i;
Nhưng trước khi làm bạn cũng cần khai báo kq := 0
Bài của Smal có phải ta cứ lấy số đó chia cho 10 hay 13 phải ko . Mình không nhớ rõ , để về nhà lấy sách xem lại .
Bài 2^{N} thì bạn Gariel nhận thấy rằng chúng ta chỉ cần lấy kết quả nhân với 2 n lần phải ko . Bạn khai báo 1 mảng array cỡ byte là đủ rồi . Mỗi vị trí cùa mảng là một số có 1 chữ số thôi . Khi số đó mà nhân với 2 > 10 bạn lấy phần chục chuyển qua ô bên cạnh .
Cứ như thế bạn có 1 mảng rồi in ra thôi .
Diễn đàn về Pascal thì mình ủng hộ bạn , mình rất thích Toán-Tin học .Còn muốn biết cao hơn bạn có thể vào ioicamp.net , trên đó cao thủ ko . Đó là diễn đàn chỉ thảo luận về Toán-Tin học , pascal .
Nếu Gariel thích thì mình sẽ gửi bạn 1 số bài tập hồi đó của mình .
Smal học ở đâu vậy . mình năm nay 12 sắp ra trường rồi ( THPT Võ Thị Sáu , TPHCM ) .
#16
Đã gửi 29-03-2006 - 18:52
Hy vọng các anh giúp đỡ em nhiều hơn, anh tkhanh có thể cho em nick Yahoo! được không? Có gì anh cho em vài đề và vài bài tập luôn.
Thân!
----------------------------------------
"Ba trăm năm lẻ về sau
Ai người hiểu được chân tình của ta?"
#17
Đã gửi 29-03-2006 - 23:45
Trang web ioicamp.net cũng được đấy, nhưng mình thấy nó giống như cái lò luyện thi học sinh giỏi quốc gia và ioi nhiều hơn, không thích hợp lắm với những người vừa bắt đầu học về lập trình.
Nếu các bạn muốn kiếm thêm bài tập làm chơi để nâng cao khả năng lập trình và thuật toán thì lên đó tìm bài tập làm cũng được, nhưng theo mình thấy thì mấy bài trên đó đa số là khó, và hầu như chỉ gặp khi đi thi học sinh giỏi thôi. Hồi trước mình cũng có làm mấy bài như vậy, nhưng bây giờ hầu như không gặp nữa.
#18
Đã gửi 30-03-2006 - 14:04
Em làm thử 2 bài này xem :
Trong mặt phẳng tọa độ cho trước N điểm , hãy tìm 2 điểm có khoảng cách xa nhau nhất . Mỗi điểm được xác định bằng 2 số nguyên là hoành độ và tung độ của nó .
Input
- N
- N dòng : mỗi dòng là hoành độ và tung độ của điểm đó .
Output
- Số hiệu của 2 điểm xa nhau nhất
( đề thi HSG Thành Phố HCM lớp 9 , năm 2001 )
Bài 2 : CODE ( Olympic 30.4 năm 2005 lớp 11 )
Công Ty X vừa thay đổi giám đốc . Giám đốc mới là 1 người rất cẩn thận và kỹ lưỡng . Công ty hiện có N người , mỗi người có 1 số hiệu là 1 số nguyên từ 1 đến 2 000 000 và số hiệu của họ là tùy ý và không có ai bị trùng số hiệu . Vì vậy giám đốc muốn biết con số nhỏ nhất mà chưa ai có để có thể gán cho 1 nhân viên mới .
Bạn hãy giúp giám đốc làm công việc trên .
Giới hạn : N 30 000 .
Input
- N
- N dòng , mỗi dòng là 1 số hiệu
Output
- Kết quả là số nhỏ nhất chưa có ai có .
2 bài này anh nghĩ vừa sức em .
#19
Đã gửi 30-03-2006 - 14:13
Hồi đó có học VTS ko vậy Smal ? Nhà gần vậy nếu anh còn hứng thú thì anh em mình gặp nhau đi .
#20
Đã gửi 30-03-2006 - 20:14
Bài viết đã được chỉnh sửa nội dung bởi smalteagle: 30-03-2006 - 20:16
1 người đang xem chủ đề
0 thành viên, 1 khách, 0 thành viên ẩn danh