Đến nội dung

Hình ảnh

Thi tin học trẻ cấp THCS


  • Please log in to reply
Chủ đề này có 24 trả lời

#1
oailadoithi

oailadoithi

    Lính mới

  • Thành viên
  • 1 Bài viết

Bài 1: Dãy số hạnh phúc
Dãy số nguyên dương a1, a2, ..., an là dãy số hạnh phúc nếu:
+ Là dãy số giảm dần

+ Với mỗi a(i) với i>1 thì a(i) hoặc là số nguyên tố hoặc là ước của một trong các số từ a(1) đến a(i-1)

Lập trình nhập từ bàn phím số nguyên dương N<=1000 sau đó đưa ra màn hình dãy số hạnh phúc bắt đầu từ N
VD:
N=5 thì DSHP: 5 3 2 1
N=8 thi DSHP: 8 7 5 4 3 2 1
Bài 2
Số nguyên tố rút gọn của một số tự nhiên n chính là tổng các ước nguyên tố của n.
Ví dụ: n=252=2.2.3.3.7 (n có 3 ước nguyên tố là 2, 3 và 7)
Số nguyên tố rút gọn của n là 2+3+7=12
Yêu cầu:
a/ Nhập số tự nhiên n từ bàn phím, in ra số nguyên tố rút gọn của n. (1<n<1000000)
b/ Nhập 2 số nguyên a, b không vượt quá 10000 (a<b). In ra các số có cùng số nguyên tố rút gọn với n trong đoạn a đến b và số lượng các số tìm được.
Bài 3:
Cho xâu kí tự S bao gồm toàn các ký tự ‘a’ và ‘b’, không quá 255 ký tự. Dãy con đúng của dãy S là một dãy con liên tục bất kì của S bao gồm các ký tự giống nhau. Dãy con đúng bậc 1 của dãy S là một dãy con liên tục bất kỳ của dãy S bao gồm các ký tự giống nhau nhưng được thêm 1 ký tự khác (ví dụ ‘aaaabaaa’, baaaa, aaaab). Trường hợp đặc biệt, dãy S chỉ có 1 loại ký tự thì dãy con đúng cũng chính là dãy con đúng bậc 1.
Yêu cầu:
a/ Hãy tính độ dài lớn nhất dãy con đúng của dãy S.
b/ Hãy tính độ dài lớn nhất dãy con đúng bậc 1 của dãy S.
Ví dụ: ‘aaabaaabbaaaaa’
Độ dài lớn nhất của dãy con đúng: 5 (‘aaabaaabbaaaaa’)
Độ dài lớn nhất của dãy con đúng bậc 1: 7 (‘aaabaaabbaaaaa’)
Bài 4:
Cho trước tập tin văn bản INPUT.INP gồm nhiều dòng (không quá 1000 dòng), mỗi dòng chứa một chuỗi ký tự (gồm các chữ cái từ ‘A’ đến ‘Z’ viết dính liền với nhau), mỗi chuỗi dài không quá 255 ký tự. Trong tập tin này có duy nhất một chuỗi xuất hiện đúng một lần, các chuỗi còn lại đều xuất hiện đúng k lần. (Số k không cho trước, nhưng biết rằng k là một số chẵn và k≠0).
Yêu cầu:
Viết chương trình đọc tập tin INPUT.INP xử lý và tìm chuỗi duy nhất đó, ghi kết quả tìm được vào tập tin văn bản OUTPUT.OUT.
Kết quả: Tập tin OUTPUT.OUT có một dòng là chuỗi ký tự tìm được theo yêu cầu.
Bài 5:ĐỘ DẦY VÀ ĐỘ CAO
+ Định nghĩa: Một số tự nhiên N. Độ dầy số tự nhiên N là số chữ số của N, độ cao số tự nhiên N là tổng các chữ số của N.
Chẳng hạn: N = 232 thì N có độ dầy là 3, độ cao là 7.
+ Yêu cầu: Cho trước số tự nhiên N. Tính độ dầy và độ cao của số tự nhiên N.
+ Dữ liệu vào: Từ tệp văn bản SO.INP chỉ có 1 dòng chứa số tự nhiên N (1<=N<1016).
+ Kết quả: Ghi ra tệp văn bản SO.OUT có dạng:
- Dòng đầu tiên ghi độ dầy của số N.
- Dòng kế tiếp ghi độ cao của số N.
BÀI 6:CHUẨN HÓA VĂN BẢN
+ Định nghĩa: Một văn bản được gọi là văn bản chuẩn nếu:
- Hai từ liền nhau có duy nhất một dấu cách trống;
- Dấu ngắt câu (dấu chấm, dấu phẩy, dấu chấm phẩy, dấu chấm hỏi, dấu chấm than) được đặt sát vào từ ngay trước nó, sau đó mới đến dấu cách trống;
- Dấu mở ngoặc đơn đặt sát vào phía bên trái của từ bắt đầu mở ngoặc;
- Dấu đóng ngoặc đơn đặt sát bên phải từ cuối cùng được đóng ngoặc.
+ Yêu cầu: Cho trước một văn bản, kiểm tra và đưa đoạn văn bản về dạng văn bản chuẩn.
+ Dữ liệu vào: từ tệp văn bản VANBAN.INP, gồm nhiều dòng, mỗi dòng không quá 255 kí tự.
+ Kết quả: ghi ra tệp văn bản VANBAN.OUT lưu trữ đoạn văn bản đã được chuẩn hóa.
BÀI 7:TỔNG LỚN NHẤT
Cho một bảng A gồm N x N sốnguyên (N ≤ 100), các dòng được đánh số trên xuống dưới bắt đầu từ 1, các cột được đánh số từ trái qua phải cũng bắt đầu từ 1. Mỗi số trong bảng có giá trị tuyệt đối không vượt quá 10000. Đường chéo chính của bảng là
đường thẳng nối hai ô (1,1) và (N,N). Như vậy trên bảng có 2N-1 đuờng chéo song song với đường chéo chính.
+ Yêu cầu: Hãy tìm đường chéo song song với đường chéo chính có tổng các phần tử trên đường chéo đó là lớn nhất.
+ Dữ liệu vào: Cho từ tệp văn bản TONG.INPcó dạng:
- Dòng đầu chứa số N.
- Dòng thứ i trong N dòng tiếp theo chứa N số nguyên lần lượt ứng với các phần tử nằm trên dòng thứ i của bảng A.
+ Kết quả: Ghi ra tệp văn bản TONG.OUT có một dòng chứa duy nhất một số nguyên là tổng lớn nhất các phần tử trên đường chéo tìm được.
Bài 8: Tính khoảng cách 
Một trường THCS tổ cức cho giáo viên và học sinh của trường mình đi cắm trại, sinh hoạt ngoài trời ở vườn quốc gia Cúc Phương. Để lên lịch đến thăm khu trại các lớp, thầy hiệu trưởng cần biết khoảng cách từ trại của mình, ở vị trí có tọa độ (0,0) đến trại giáo viên chủ nhiệm đều có tọa độ nguyên (x,y) được ghi trong tệp văn bản TRAI.TXT chứa liên tiếp các cặp số nguyên, các số cách nhau bởi dấu cáh và không kết thúc bằng kí tự xuống dòng.
Lập trình để đọc các cặp tọa độ từ tệp TRAI.TXT, tính rồi đưa ra màn hình khoảng cách (với tọa độ chính xác hai chữ số sau dấu chấm thập phân) giữa trại của mỗi giáo viên chủ nhiệm và trại của thầy hiệu trưởng.
Bài 9:
Viết chương trình nhập từ bàn phím số nguyên dương N (N<<100) và dãy A gồm N số nguyên a1, a2, a3, …, an có giá trị tuyệt đói không lớn hơn 1000. Hãy đưa ra những thông tin sau:
Số lượng số chẵn và số lẻ trong dãy.
Số lượng số nguyên tố trong dãy.
Câu 10:
Nhập vào một số tự nhiên. Lập trình trả lời các câu hỏi sau:
- n có bao nhiêu chữ số?
- Tổng các chữ số của n bằng bao nhiêu?
- Tìm chữ số đầu tiên của n.
- Giả sử trong cách biểu hiện thập phân của n có dạng sau: akak-1 … a2a1a0.
Hãy tính tổng S = ak – ak-1 + ak-2 – … a0.
- Nhập vào số m(m ≤ số chữ số của n). Hãy tính tổng m chữ số cuối cùng của n.
Câu 11: 
Cho một bàn cờ vuông 8 x 8 trên đó cho trước một số quân cờ. Ví dụ hình vẽ sau đây là một bàn cờ như vậy:
* * * 
* * * *
* * * *
* * 

* * *
* * * 
* * * 
Dữ liệu ghi trên tệp văn bản BANCO.TXT bao gồm 8 dòng, mỗi dòng là một sâu nhị phân độ dài 8. Vị trí các quân cờ ứng với số 1, các ô trống ứng với số 0. Ví dụ tệp BANCO.TXT ứng với bàn cờ trên:
01010100
10011001
10100011 
00010100 
00100000
01010001
10011000
01000110
Hãy viết chương trình PASCAL tính số quân cờ liên tục lớn nhất nằm trên một đườc thẳng trên bàn cờ. Đường thẳng ở đây có thể là đường thẳng đứng, đường nằm ngang hoặc đường chéo. Kết quả thể hiện trên màn hình.
Với ví dụ trên chương trình phải in trên màn hình kết quả là 4.
Câu 12:
Nhập vào 1 số tự nhiên N với (0 < N ≤ 65535), phân tích số vừa nhập thành các thừa số nguyên tố, nếu số vừa nhập là số nguyên tố thì chỉ thông báo ra màn hình đây là số nguyên tố.
Ví dụ: 
- Nếu số vừa nhập là 300, thì in ra màn hình 300 = 2. 2. 3. 5. 5
- Nếu số vừa nhập là 307, thì in ra màn hình “307 là số nguyên tố”.

:luoi:  :luoi:  :luoi:



#2
souldarkhell

souldarkhell

    Lính mới

  • Thành viên
  • 2 Bài viết

 

Bài 1: Dãy số hạnh phúc
Dãy số nguyên dương a1, a2, ..., an là dãy số hạnh phúc nếu:
+ Là dãy số giảm dần

+ Với mỗi a(i) với i>1 thì a(i) hoặc là số nguyên tố hoặc là ước của một trong các số từ a(1) đến a(i-1)

Lập trình nhập từ bàn phím số nguyên dương N<=1000 sau đó đưa ra màn hình dãy số hạnh phúc bắt đầu từ N
VD:
N=5 thì DSHP: 5 3 2 1
N=8 thi DSHP: 8 7 5 4 3 2 1
Bài 2
Số nguyên tố rút gọn của một số tự nhiên n chính là tổng các ước nguyên tố của n.
Ví dụ: n=252=2.2.3.3.7 (n có 3 ước nguyên tố là 2, 3 và 7)
Số nguyên tố rút gọn của n là 2+3+7=12
Yêu cầu:
a/ Nhập số tự nhiên n từ bàn phím, in ra số nguyên tố rút gọn của n. (1<n<1000000)
b/ Nhập 2 số nguyên a, b không vượt quá 10000 (a<b). In ra các số có cùng số nguyên tố rút gọn với n trong đoạn a đến b và số lượng các số tìm được.
Bài 3:
Cho xâu kí tự S bao gồm toàn các ký tự ‘a’ và ‘b’, không quá 255 ký tự. Dãy con đúng của dãy S là một dãy con liên tục bất kì của S bao gồm các ký tự giống nhau. Dãy con đúng bậc 1 của dãy S là một dãy con liên tục bất kỳ của dãy S bao gồm các ký tự giống nhau nhưng được thêm 1 ký tự khác (ví dụ ‘aaaabaaa’, baaaa, aaaab). Trường hợp đặc biệt, dãy S chỉ có 1 loại ký tự thì dãy con đúng cũng chính là dãy con đúng bậc 1.
Yêu cầu:
a/ Hãy tính độ dài lớn nhất dãy con đúng của dãy S.
b/ Hãy tính độ dài lớn nhất dãy con đúng bậc 1 của dãy S.
Ví dụ: ‘aaabaaabbaaaaa’
Độ dài lớn nhất của dãy con đúng: 5 (‘aaabaaabbaaaaa’)
Độ dài lớn nhất của dãy con đúng bậc 1: 7 (‘aaabaaabbaaaaa’)
Bài 4:
Cho trước tập tin văn bản INPUT.INP gồm nhiều dòng (không quá 1000 dòng), mỗi dòng chứa một chuỗi ký tự (gồm các chữ cái từ ‘A’ đến ‘Z’ viết dính liền với nhau), mỗi chuỗi dài không quá 255 ký tự. Trong tập tin này có duy nhất một chuỗi xuất hiện đúng một lần, các chuỗi còn lại đều xuất hiện đúng k lần. (Số k không cho trước, nhưng biết rằng k là một số chẵn và k≠0).
Yêu cầu:
Viết chương trình đọc tập tin INPUT.INP xử lý và tìm chuỗi duy nhất đó, ghi kết quả tìm được vào tập tin văn bản OUTPUT.OUT.
Kết quả: Tập tin OUTPUT.OUT có một dòng là chuỗi ký tự tìm được theo yêu cầu.
Bài 5:ĐỘ DẦY VÀ ĐỘ CAO
+ Định nghĩa: Một số tự nhiên N. Độ dầy số tự nhiên N là số chữ số của N, độ cao số tự nhiên N là tổng các chữ số của N.
Chẳng hạn: N = 232 thì N có độ dầy là 3, độ cao là 7.
+ Yêu cầu: Cho trước số tự nhiên N. Tính độ dầy và độ cao của số tự nhiên N.
+ Dữ liệu vào: Từ tệp văn bản SO.INP chỉ có 1 dòng chứa số tự nhiên N (1<=N<1016).
+ Kết quả: Ghi ra tệp văn bản SO.OUT có dạng:
- Dòng đầu tiên ghi độ dầy của số N.
- Dòng kế tiếp ghi độ cao của số N.
BÀI 6:CHUẨN HÓA VĂN BẢN
+ Định nghĩa: Một văn bản được gọi là văn bản chuẩn nếu:
- Hai từ liền nhau có duy nhất một dấu cách trống;
- Dấu ngắt câu (dấu chấm, dấu phẩy, dấu chấm phẩy, dấu chấm hỏi, dấu chấm than) được đặt sát vào từ ngay trước nó, sau đó mới đến dấu cách trống;
- Dấu mở ngoặc đơn đặt sát vào phía bên trái của từ bắt đầu mở ngoặc;
- Dấu đóng ngoặc đơn đặt sát bên phải từ cuối cùng được đóng ngoặc.
+ Yêu cầu: Cho trước một văn bản, kiểm tra và đưa đoạn văn bản về dạng văn bản chuẩn.
+ Dữ liệu vào: từ tệp văn bản VANBAN.INP, gồm nhiều dòng, mỗi dòng không quá 255 kí tự.
+ Kết quả: ghi ra tệp văn bản VANBAN.OUT lưu trữ đoạn văn bản đã được chuẩn hóa.
BÀI 7:TỔNG LỚN NHẤT
Cho một bảng A gồm N x N sốnguyên (N ≤ 100), các dòng được đánh số trên xuống dưới bắt đầu từ 1, các cột được đánh số từ trái qua phải cũng bắt đầu từ 1. Mỗi số trong bảng có giá trị tuyệt đối không vượt quá 10000. Đường chéo chính của bảng là
đường thẳng nối hai ô (1,1) và (N,N). Như vậy trên bảng có 2N-1 đuờng chéo song song với đường chéo chính.
+ Yêu cầu: Hãy tìm đường chéo song song với đường chéo chính có tổng các phần tử trên đường chéo đó là lớn nhất.
+ Dữ liệu vào: Cho từ tệp văn bản TONG.INPcó dạng:
- Dòng đầu chứa số N.
- Dòng thứ i trong N dòng tiếp theo chứa N số nguyên lần lượt ứng với các phần tử nằm trên dòng thứ i của bảng A.
+ Kết quả: Ghi ra tệp văn bản TONG.OUT có một dòng chứa duy nhất một số nguyên là tổng lớn nhất các phần tử trên đường chéo tìm được.
Bài 8: Tính khoảng cách 
Một trường THCS tổ cức cho giáo viên và học sinh của trường mình đi cắm trại, sinh hoạt ngoài trời ở vườn quốc gia Cúc Phương. Để lên lịch đến thăm khu trại các lớp, thầy hiệu trưởng cần biết khoảng cách từ trại của mình, ở vị trí có tọa độ (0,0) đến trại giáo viên chủ nhiệm đều có tọa độ nguyên (x,y) được ghi trong tệp văn bản TRAI.TXT chứa liên tiếp các cặp số nguyên, các số cách nhau bởi dấu cáh và không kết thúc bằng kí tự xuống dòng.
Lập trình để đọc các cặp tọa độ từ tệp TRAI.TXT, tính rồi đưa ra màn hình khoảng cách (với tọa độ chính xác hai chữ số sau dấu chấm thập phân) giữa trại của mỗi giáo viên chủ nhiệm và trại của thầy hiệu trưởng.
Bài 9:
Viết chương trình nhập từ bàn phím số nguyên dương N (N<<100) và dãy A gồm N số nguyên a1, a2, a3, …, an có giá trị tuyệt đói không lớn hơn 1000. Hãy đưa ra những thông tin sau:
Số lượng số chẵn và số lẻ trong dãy.
Số lượng số nguyên tố trong dãy.
Câu 10:
Nhập vào một số tự nhiên. Lập trình trả lời các câu hỏi sau:
- n có bao nhiêu chữ số?
- Tổng các chữ số của n bằng bao nhiêu?
- Tìm chữ số đầu tiên của n.
- Giả sử trong cách biểu hiện thập phân của n có dạng sau: akak-1 … a2a1a0.
Hãy tính tổng S = ak – ak-1 + ak-2 – … a0.
- Nhập vào số m(m ≤ số chữ số của n). Hãy tính tổng m chữ số cuối cùng của n.
Câu 11: 
Cho một bàn cờ vuông 8 x 8 trên đó cho trước một số quân cờ. Ví dụ hình vẽ sau đây là một bàn cờ như vậy:
* * * 
* * * *
* * * *
* * 

* * *
* * * 
* * * 
Dữ liệu ghi trên tệp văn bản BANCO.TXT bao gồm 8 dòng, mỗi dòng là một sâu nhị phân độ dài 8. Vị trí các quân cờ ứng với số 1, các ô trống ứng với số 0. Ví dụ tệp BANCO.TXT ứng với bàn cờ trên:
01010100
10011001
10100011 
00010100 
00100000
01010001
10011000
01000110
Hãy viết chương trình PASCAL tính số quân cờ liên tục lớn nhất nằm trên một đườc thẳng trên bàn cờ. Đường thẳng ở đây có thể là đường thẳng đứng, đường nằm ngang hoặc đường chéo. Kết quả thể hiện trên màn hình.
Với ví dụ trên chương trình phải in trên màn hình kết quả là 4.
Câu 12:
Nhập vào 1 số tự nhiên N với (0 < N ≤ 65535), phân tích số vừa nhập thành các thừa số nguyên tố, nếu số vừa nhập là số nguyên tố thì chỉ thông báo ra màn hình đây là số nguyên tố.
Ví dụ: 
- Nếu số vừa nhập là 300, thì in ra màn hình 300 = 2. 2. 3. 5. 5
- Nếu số vừa nhập là 307, thì in ra màn hình “307 là số nguyên tố”.

:luoi:  :luoi:  :luoi:

 

 

Bài 1:

Đầu tiên xây dựng mảng số nguyên tố: prime[i] để kiểm tra xem i có phải là số nguyên tố? Có thể cài Eratosthene hoặc trâu đều được, với N<=1000 đây không phải vấn đề.

Lập mảng b[i] chứa các số nguyên tố từ 1 đến N. Mảng c[i] là mảng chứa các số là ước của N. Nhận thấy dãy số kết quả chính là tổng hợp lại của 2 mảng này.

Mảng b[i] thì dễ cài đặt rồi.

Mảng c[i], để ý tất cả các số trong mảng này đều phải là ước của N. Chỉ cần liệt kê tất cả các ước của N là xong mảng c.

2 mảng b,c nên được cài khéo léo sao cho chúng có thứ tự tăng dần

Cuối cùng ta trộn hai mảng lại, thuật toán tương tự MergeSort (Cho biến i chạy dọc mảng b, biến j chạy dọc mảng c. Nếu a[i]<b[j] thì tăng i thêm 1. Nếu a[i]>b[j] thì tăng j lên 1. Nếu a[i]=b[j] thì tăng cả i và j lên 1. Lưu lại vào mảng kết quả.

Viết lại mảng kết quả theo chỉ số giảm dần -> done!

 

Độ phức tạp: O(N).



#3
nguyenminhquanduongvexaxoi

nguyenminhquanduongvexaxoi

    Hạ sĩ

  • Thành viên
  • 55 Bài viết

mấy bài này lên cấp 3  rồi mà vẫn còn chẳng hiểu cái gì? trừ mấy bạn ở khối chuyên tin học sâu hơn



#4
Duongdz2k7

Duongdz2k7

    Binh nhất

  • Thành viên mới
  • 25 Bài viết

 

Bài 1: Dãy số hạnh phúc
Dãy số nguyên dương a1, a2, ..., an là dãy số hạnh phúc nếu:
+ Là dãy số giảm dần

+ Với mỗi a(i) với i>1 thì a(i) hoặc là số nguyên tố hoặc là ước của một trong các số từ a(1) đến a(i-1)

Lập trình nhập từ bàn phím số nguyên dương N<=1000 sau đó đưa ra màn hình dãy số hạnh phúc bắt đầu từ N
VD:
N=5 thì DSHP: 5 3 2 1
N=8 thi DSHP: 8 7 5 4 3 2 1
Bài 2
Số nguyên tố rút gọn của một số tự nhiên n chính là tổng các ước nguyên tố của n.
Ví dụ: n=252=2.2.3.3.7 (n có 3 ước nguyên tố là 2, 3 và 7)
Số nguyên tố rút gọn của n là 2+3+7=12
Yêu cầu:
a/ Nhập số tự nhiên n từ bàn phím, in ra số nguyên tố rút gọn của n. (1<n<1000000)
b/ Nhập 2 số nguyên a, b không vượt quá 10000 (a<b). In ra các số có cùng số nguyên tố rút gọn với n trong đoạn a đến b và số lượng các số tìm được.
Bài 3:
Cho xâu kí tự S bao gồm toàn các ký tự ‘a’ và ‘b’, không quá 255 ký tự. Dãy con đúng của dãy S là một dãy con liên tục bất kì của S bao gồm các ký tự giống nhau. Dãy con đúng bậc 1 của dãy S là một dãy con liên tục bất kỳ của dãy S bao gồm các ký tự giống nhau nhưng được thêm 1 ký tự khác (ví dụ ‘aaaabaaa’, baaaa, aaaab). Trường hợp đặc biệt, dãy S chỉ có 1 loại ký tự thì dãy con đúng cũng chính là dãy con đúng bậc 1.
Yêu cầu:
a/ Hãy tính độ dài lớn nhất dãy con đúng của dãy S.
b/ Hãy tính độ dài lớn nhất dãy con đúng bậc 1 của dãy S.
Ví dụ: ‘aaabaaabbaaaaa’
Độ dài lớn nhất của dãy con đúng: 5 (‘aaabaaabbaaaaa’)
Độ dài lớn nhất của dãy con đúng bậc 1: 7 (‘aaabaaabbaaaaa’)
Bài 4:
Cho trước tập tin văn bản INPUT.INP gồm nhiều dòng (không quá 1000 dòng), mỗi dòng chứa một chuỗi ký tự (gồm các chữ cái từ ‘A’ đến ‘Z’ viết dính liền với nhau), mỗi chuỗi dài không quá 255 ký tự. Trong tập tin này có duy nhất một chuỗi xuất hiện đúng một lần, các chuỗi còn lại đều xuất hiện đúng k lần. (Số k không cho trước, nhưng biết rằng k là một số chẵn và k≠0).
Yêu cầu:
Viết chương trình đọc tập tin INPUT.INP xử lý và tìm chuỗi duy nhất đó, ghi kết quả tìm được vào tập tin văn bản OUTPUT.OUT.
Kết quả: Tập tin OUTPUT.OUT có một dòng là chuỗi ký tự tìm được theo yêu cầu.
Bài 5:ĐỘ DẦY VÀ ĐỘ CAO
+ Định nghĩa: Một số tự nhiên N. Độ dầy số tự nhiên N là số chữ số của N, độ cao số tự nhiên N là tổng các chữ số của N.
Chẳng hạn: N = 232 thì N có độ dầy là 3, độ cao là 7.
+ Yêu cầu: Cho trước số tự nhiên N. Tính độ dầy và độ cao của số tự nhiên N.
+ Dữ liệu vào: Từ tệp văn bản SO.INP chỉ có 1 dòng chứa số tự nhiên N (1<=N<1016).
+ Kết quả: Ghi ra tệp văn bản SO.OUT có dạng:
- Dòng đầu tiên ghi độ dầy của số N.
- Dòng kế tiếp ghi độ cao của số N.
BÀI 6:CHUẨN HÓA VĂN BẢN
+ Định nghĩa: Một văn bản được gọi là văn bản chuẩn nếu:
- Hai từ liền nhau có duy nhất một dấu cách trống;
- Dấu ngắt câu (dấu chấm, dấu phẩy, dấu chấm phẩy, dấu chấm hỏi, dấu chấm than) được đặt sát vào từ ngay trước nó, sau đó mới đến dấu cách trống;
- Dấu mở ngoặc đơn đặt sát vào phía bên trái của từ bắt đầu mở ngoặc;
- Dấu đóng ngoặc đơn đặt sát bên phải từ cuối cùng được đóng ngoặc.
+ Yêu cầu: Cho trước một văn bản, kiểm tra và đưa đoạn văn bản về dạng văn bản chuẩn.
+ Dữ liệu vào: từ tệp văn bản VANBAN.INP, gồm nhiều dòng, mỗi dòng không quá 255 kí tự.
+ Kết quả: ghi ra tệp văn bản VANBAN.OUT lưu trữ đoạn văn bản đã được chuẩn hóa.
BÀI 7:TỔNG LỚN NHẤT
Cho một bảng A gồm N x N sốnguyên (N ≤ 100), các dòng được đánh số trên xuống dưới bắt đầu từ 1, các cột được đánh số từ trái qua phải cũng bắt đầu từ 1. Mỗi số trong bảng có giá trị tuyệt đối không vượt quá 10000. Đường chéo chính của bảng là
đường thẳng nối hai ô (1,1) và (N,N). Như vậy trên bảng có 2N-1 đuờng chéo song song với đường chéo chính.
+ Yêu cầu: Hãy tìm đường chéo song song với đường chéo chính có tổng các phần tử trên đường chéo đó là lớn nhất.
+ Dữ liệu vào: Cho từ tệp văn bản TONG.INPcó dạng:
- Dòng đầu chứa số N.
- Dòng thứ i trong N dòng tiếp theo chứa N số nguyên lần lượt ứng với các phần tử nằm trên dòng thứ i của bảng A.
+ Kết quả: Ghi ra tệp văn bản TONG.OUT có một dòng chứa duy nhất một số nguyên là tổng lớn nhất các phần tử trên đường chéo tìm được.
Bài 8: Tính khoảng cách 
Một trường THCS tổ cức cho giáo viên và học sinh của trường mình đi cắm trại, sinh hoạt ngoài trời ở vườn quốc gia Cúc Phương. Để lên lịch đến thăm khu trại các lớp, thầy hiệu trưởng cần biết khoảng cách từ trại của mình, ở vị trí có tọa độ (0,0) đến trại giáo viên chủ nhiệm đều có tọa độ nguyên (x,y) được ghi trong tệp văn bản TRAI.TXT chứa liên tiếp các cặp số nguyên, các số cách nhau bởi dấu cáh và không kết thúc bằng kí tự xuống dòng.
Lập trình để đọc các cặp tọa độ từ tệp TRAI.TXT, tính rồi đưa ra màn hình khoảng cách (với tọa độ chính xác hai chữ số sau dấu chấm thập phân) giữa trại của mỗi giáo viên chủ nhiệm và trại của thầy hiệu trưởng.
Bài 9:
Viết chương trình nhập từ bàn phím số nguyên dương N (N<<100) và dãy A gồm N số nguyên a1, a2, a3, …, an có giá trị tuyệt đói không lớn hơn 1000. Hãy đưa ra những thông tin sau:
Số lượng số chẵn và số lẻ trong dãy.
Số lượng số nguyên tố trong dãy.
Câu 10:
Nhập vào một số tự nhiên. Lập trình trả lời các câu hỏi sau:
- n có bao nhiêu chữ số?
- Tổng các chữ số của n bằng bao nhiêu?
- Tìm chữ số đầu tiên của n.
- Giả sử trong cách biểu hiện thập phân của n có dạng sau: akak-1 … a2a1a0.
Hãy tính tổng S = ak – ak-1 + ak-2 – … a0.
- Nhập vào số m(m ≤ số chữ số của n). Hãy tính tổng m chữ số cuối cùng của n.
Câu 11: 
Cho một bàn cờ vuông 8 x 8 trên đó cho trước một số quân cờ. Ví dụ hình vẽ sau đây là một bàn cờ như vậy:
* * * 
* * * *
* * * *
* * 

* * *
* * * 
* * * 
Dữ liệu ghi trên tệp văn bản BANCO.TXT bao gồm 8 dòng, mỗi dòng là một sâu nhị phân độ dài 8. Vị trí các quân cờ ứng với số 1, các ô trống ứng với số 0. Ví dụ tệp BANCO.TXT ứng với bàn cờ trên:
01010100
10011001
10100011 
00010100 
00100000
01010001
10011000
01000110
Hãy viết chương trình PASCAL tính số quân cờ liên tục lớn nhất nằm trên một đườc thẳng trên bàn cờ. Đường thẳng ở đây có thể là đường thẳng đứng, đường nằm ngang hoặc đường chéo. Kết quả thể hiện trên màn hình.
Với ví dụ trên chương trình phải in trên màn hình kết quả là 4.
Câu 12:
Nhập vào 1 số tự nhiên N với (0 < N ≤ 65535), phân tích số vừa nhập thành các thừa số nguyên tố, nếu số vừa nhập là số nguyên tố thì chỉ thông báo ra màn hình đây là số nguyên tố.
Ví dụ: 
- Nếu số vừa nhập là 300, thì in ra màn hình 300 = 2. 2. 3. 5. 5
- Nếu số vừa nhập là 307, thì in ra màn hình “307 là số nguyên tố”.

:luoi:  :luoi:  :luoi:

Bài 1 : :closedeyes:

Hướng dẫn :Thực ra (nếu để ý kĩ) đây là dãy số bao gồm những số nguyên tố nhỏ hơn hoặc bằng n và ước của n .

code:

program bt1;
uses crt;
function kt(n:integer):boolean;
var i:integer;
a:boolean;
begin
a:=true;
for i:=2 to n-1 do
if n mod i=0 then
a:=a and false;
if n<2 then
kt:=false
else
kt:=a;
end;
var n,i:integer;
begin
clrscr;
write('nhap n:');
readln(n);
for i:=n downto 1 do
if (kt(i)) or (n mod i=0)  then
write(i:4);
readln;
end.

                   Học , học nữa , học mãi  :closedeyes:

Luôn không ngừng cố gắng để đạt thành quả :D  :like


#5
Duongdz2k7

Duongdz2k7

    Binh nhất

  • Thành viên mới
  • 25 Bài viết

Bài 2 nha : :D

Bài này cứ cho chạy từ 1-n rồi kiểm tra xem nó có vừa là số nguyên tố vừa là ước của n ko la đc  :like  

program bt1;
uses crt;
var a,i,b,j,d,n:longint;
    c:array[1..10000]of longint;
function kt(n:longint):boolean;
var i:longint;
a:boolean;
begin
     a:=true;
  for i:=2 to n-1 do
if n mod i =0 then
a:=a and false;
if n<2 then
kt:=false
else
kt:=a;
end;
function t(n:longint):longint;
var i:longint;
begin
     t:=0;
     if (kt(n)) then t:=n
     else
       for i:=2 to n do
         if ((n mod i=0)and(kt(i))) then t:=t+i;
end;
begin
clrscr;
writeln('a)');
write('   Nhap n= ');
readln(n);
writeln('   So nguyen to rut gon cua ',n,' la ',t(n));
writeln('b)');
write('nhap a:');
readln(a);
write('nhap b:');
readln(b);
j:=0;
d:=0;
for i:= a to b do
if t(n)=t(i) then
begin
inc(d);
inc(j);
c[j]:=i;
end;
writeln('co ',d,' so co cung sntrg la:');
for i:=1 to d do
write(c[i]:6);
readln;
end.

                   Học , học nữa , học mãi  :closedeyes:

Luôn không ngừng cố gắng để đạt thành quả :D  :like


#6
Duongdz2k7

Duongdz2k7

    Binh nhất

  • Thành viên mới
  • 25 Bài viết

Bài 3:

Code: 

program bt1;
uses crt;
var st:string;
v,i,t,s,p,w:integer;
begin
clrscr;
write('nhap vao xau:');
readln(st);
t:=0;
s:=1;
for i:=1 to length(st) do
begin
v:=i+1;
while st[v]=st[i] do
begin
inc(v);
inc(s);
end;
if t<s then
t:=s;
s:=1;
end;
write(t:10);
s:=0;
p:=0;
for i:=1 to length(st) do
begin
w:=0;
v:=i+1;
while (w<=1) or (st[v]=st[i]) do
begin
inc(s);
inc(v);
if st[v]<>st[i] then
w:=w+1;
end;
if p<s then
p:=s;
s:=0;
w:=0;
end;
write(p:10);
readln;
end.

                   Học , học nữa , học mãi  :closedeyes:

Luôn không ngừng cố gắng để đạt thành quả :D  :like


#7
Duongdz2k7

Duongdz2k7

    Binh nhất

  • Thành viên mới
  • 25 Bài viết
Bài 4 mk chưa học tệp nên làm mảng xâu nha  :D
program bt1;
uses crt;
var a:array[1..10000] of string;
d,i,n,j:integer;
begin
clrscr;
write('nhap vao so luong xau:');
readln(n);
for i:=1 to n do
begin
write('nhap xau thu ',i,' :');
readln(a[i]);
end;
for i:=1 to n do
begin
d:=0;
for j:=1 to n do
if a[i]=a[j] then
d:=d+1;
if d=1 then
writeln(a[i]);
end;
readln;
end.

                   Học , học nữa , học mãi  :closedeyes:

Luôn không ngừng cố gắng để đạt thành quả :D  :like


#8
Duongdz2k7

Duongdz2k7

    Binh nhất

  • Thành viên mới
  • 25 Bài viết

cau 12 :

code:

program bt1;
uses crt;
var n,i:integer;
function kt(n:integer):boolean;
var a:boolean;
i:integer;
begin
a:=true;
for i:=2 to n-1 do
if n mod i=0 then
a:=a and false;
if n<2 then
kt:=false
else;
kt:=a;
end;
begin
clrscr;
write('nhap n:');
readln(n);
if kt(n) then
write(n,' la so nguyen to')
else
begin
write(n,' = ');
i:=2;
while n>1 do
if n mod i=0 then
begin
write(i);
n:=n div i;
if n>1 then
write(' . ');
end
else
i:=i+1;
end;
readln;
end.

                   Học , học nữa , học mãi  :closedeyes:

Luôn không ngừng cố gắng để đạt thành quả :D  :like


#9
Duongdz2k7

Duongdz2k7

    Binh nhất

  • Thành viên mới
  • 25 Bài viết

Mấy bài tệp để mk nghiên cứu đã

chưa học


                   Học , học nữa , học mãi  :closedeyes:

Luôn không ngừng cố gắng để đạt thành quả :D  :like


#10
Duongdz2k7

Duongdz2k7

    Binh nhất

  • Thành viên mới
  • 25 Bài viết

b9: code:

program bt1;
uses crt;
var a:array[1..50] of integer;
i,n,d1,d2,d3:integer;
function kt(n:integer):boolean;
var a:boolean;
i:integer;
begin
a:=true;
for i:=2 to n-1 do
if n mod i=0 then
a:=a and false;
if n<2 then
kt:=false
else
kt:=a;
end;
begin
clrscr;
write('nhap vao so phan tu cua mang:');
readln(n);
for i:=1 to n do
begin
write('nhap a[',i,']:');
readln(a[i]);
end;
d1:=0;
d2:=0;
d3:=0;
for i:=1 to n do
begin
if a[i] mod 2=0 then
d1:=d1+1
else
d2:=d2+1;
if kt(a[i]) then
d3:=d3+1;
end;
write(d1:4,d2:4,d3:4);
readln;
end.

                   Học , học nữa , học mãi  :closedeyes:

Luôn không ngừng cố gắng để đạt thành quả :D  :like


#11
Lykan 11

Lykan 11

    Binh nhì

  • Thành viên mới
  • 17 Bài viết


 

b9: code:

program bt1;
uses crt;
var a:array[1..50] of integer;
i,n,d1,d2,d3:integer;
function kt(n:integer):boolean;
var a:boolean;
i:integer;
begin
a:=true;
for i:=2 to n-1 do
if n mod i=0 then
a:=a and false;
if n<2 then
kt:=false
else
kt:=a;
end;
begin
clrscr;
write('nhap vao so phan tu cua mang:');
readln(n);
for i:=1 to n do
begin
write('nhap a[',i,']:');
readln(a[i]);
end;
d1:=0;
d2:=0;
d3:=0;
for i:=1 to n do
begin
if a[i] mod 2=0 then
d1:=d1+1
else
d2:=d2+1;
if kt(a[i]) then
d3:=d3+1;
end;
write(d1:4,d2:4,d3:4);
readln;
end.

 

Xử lí tại đầu vào sẽ tối ưu hơn

>>tiết kiệm biến mảng a 



#12
Duongdz2k7

Duongdz2k7

    Binh nhất

  • Thành viên mới
  • 25 Bài viết

Xử lí tại đầu vào sẽ tối ưu hơn

>>tiết kiệm biến mảng a 

Thk bạn góp ý (mặc dù mình cx ko hiểu lắm) :D  :like

Mà sao bạn theo dõi mình à sao trích cả hai bài rồi :closedeyes:  :D


                   Học , học nữa , học mãi  :closedeyes:

Luôn không ngừng cố gắng để đạt thành quả :D  :like


#13
Lykan 11

Lykan 11

    Binh nhì

  • Thành viên mới
  • 17 Bài viết

Thk bạn góp ý (mặc dù mình cx ko hiểu lắm) :D  :like

Mà sao bạn theo dõi mình à sao trích cả hai bài rồi :closedeyes:  :D

sửa lại :
program bt1;
uses crt;
var a:integer;
i,n,d1,d2,d3:integer;
function kt(n:integer):boolean;
var a:boolean;
i:integer;
begin
a:=true;
for i:=2 to n-1 do
if n mod i=0 then
a:=a and false;
if n<2 then
kt:=false
else
kt:=a;
end;
begin
clrscr;
write('nhap vao so phan tu cua mang:');
readln(n);
d1:=0;
d2:=0;
d3:=0;
for i:=1 to n do
begin
write('nhap a[',i,']:');
readln(a);
if a mod 2=0 then
d1:=d1+1
else
d2:=d2+1;
if kt(a) then
d3:=d3+1;
end;
write(d1:4,d2:4,d3:4);
readln;
end.
>>Thấy trong phần 'có gì mới ' 
>>là hs chuyên tin chơi theo hệ tối ưu (2k4)

Bài viết đã được chỉnh sửa nội dung bởi Lykan 11: 27-06-2021 - 21:48


#14
Duongdz2k7

Duongdz2k7

    Binh nhất

  • Thành viên mới
  • 25 Bài viết

 

sửa lại :
program bt1;
uses crt;
var a:integer;
i,n,d1,d2,d3:integer;
function kt(n:integer):boolean;
var a:boolean;
i:integer;
begin
a:=true;
for i:=2 to n-1 do
if n mod i=0 then
a:=a and false;
if n<2 then
kt:=false
else
kt:=a;
end;
begin
clrscr;
write('nhap vao so phan tu cua mang:');
readln(n);
d1:=0;
d2:=0;
d3:=0;
for i:=1 to n do
begin
write('nhap a[',i,']:');
readln(a);
if a mod 2=0 then
d1:=d1+1
else
d2:=d2+1;
if kt(a) then
d3:=d3+1;
end;
write(d1:4,d2:4,d3:4);
readln;
end.
>>Thấy trong phần 'có gì mới ' 
>>là hs chuyên tin chơi theo hệ tối ưu (2k4)

 

hello a nha (anh bằng tuổi chị em haha) ! :D

em 2k7(Lớp 8->9)!

em cx sắp thi tin!

em hiểu rồi !

anh ko sử dụng mảng mà dùng biến thường rồi kiểm tra luôn !

Thk a nha ! :like


Bài viết đã được chỉnh sửa nội dung bởi Duongdz2k7: 28-06-2021 - 16:17

                   Học , học nữa , học mãi  :closedeyes:

Luôn không ngừng cố gắng để đạt thành quả :D  :like


#15
Lykan 11

Lykan 11

    Binh nhì

  • Thành viên mới
  • 17 Bài viết

hello a nha (anh bằng tuổi chị em haha) ! :D

em 2k7(Lớp 8->9)!

em cx sắp thi tin tỉnh !

em hiểu rồi !

anh ko sử dụng mảng mà dùng biến thường rồi kiểm tra luôn !

Thk a nha ! :like

em chuẩn bị thi tin học trẻ à 



#16
Duongdz2k7

Duongdz2k7

    Binh nhất

  • Thành viên mới
  • 25 Bài viết

em chuẩn bị thi tin học trẻ à 

Vâng ạ ! Năm nay dịch nó cho thi muộn ! Vẫn chưa thi  :(

Mà nó thông báo chọn em đi thi trước có 1 tuần nên mới ôn được chút ! :(


                   Học , học nữa , học mãi  :closedeyes:

Luôn không ngừng cố gắng để đạt thành quả :D  :like


#17
Duongdz2k7

Duongdz2k7

    Binh nhất

  • Thành viên mới
  • 25 Bài viết

Anh ơi trong free pascal có cho con trỏ file xuống dòng được ko ạ !

em làm thế này : writeln(f,sv) nó báo không đc dùng writeln !


                   Học , học nữa , học mãi  :closedeyes:

Luôn không ngừng cố gắng để đạt thành quả :D  :like


#18
Lykan 11

Lykan 11

    Binh nhì

  • Thành viên mới
  • 17 Bài viết

Anh ơi trong free pascal có cho con trỏ file xuống dòng được ko ạ !

em làm thế này : writeln(f,sv) nó báo không đc dùng writeln !

xuống dòng bt a 

gửi ảnh đi, anh xem



#19
Duongdz2k7

Duongdz2k7

    Binh nhất

  • Thành viên mới
  • 25 Bài viết

xuống dòng bt a 

gửi ảnh đi, anh xem

 

Em không gửi được ảnh , nó bảo định dạng file hình ảnh không sử dụng được .

Tại em mới học file nên không hiểu

Em xem trên mạng nó bảo  :

3.2.3. Thủ tục Writeln

            Cú pháp: Writeln(F, x);

            Chức năng: Ghi giá trị x vào file ở vị trí con trỏ file. Kết thúc thủ tục, con trỏ file sẽ chuyển về đầu dòng sau.

Nhưng em làm nó báo lỗi là 

Error : Can't use readln or writeln on typed file

Là sao ạ !

Em xuất kết quả ra file ở ổ C:\

Hay là phải xuất kết quả ra file trong free pascal hả anh ? 


Bài viết đã được chỉnh sửa nội dung bởi Duongdz2k7: 28-06-2021 - 22:32

                   Học , học nữa , học mãi  :closedeyes:

Luôn không ngừng cố gắng để đạt thành quả :D  :like


#20
Duongdz2k7

Duongdz2k7

    Binh nhất

  • Thành viên mới
  • 25 Bài viết

Đây là bài của em ! :closedeyes:

program bt1;
uses crt;
type
st20=string[20];
st10=string[10];
sinhvien=record
ht:st20;
ns,qq:st10;
dtb:real;
xl:char;
end;
var
f:file of sinhvien;
fn:string;
sv:sinhvien;
bht:st20;
i:word;
begin
clrscr;
write('nhap vao ten file muon luu :');
readln(fn);
assign(f,fn);
rewrite(f);
i:=1;
writeln('nhap thong tin ca nhan cua cac sinh vien :');
repeat
write('ho va ten cua sinh vien thu ',i,' :');
readln(bht);
if bht<>'' then
begin
sv.ht:=bht;
write('nhap ngay thg (dd/yy/www) :');
readln(sv.ns);
write('nhap vao que quan :');
readln(sv.qq);
write('diem trung binh :');
readln(sv.dtb);
if sv.dtb<5 then
sv.xl:='D'
else
if sv.dtb<6.5 then
sv.xl:='C'
else
if sv.dtb<8 then
sv.xl:='B'
else
sv.xl:='A';
write(f,sv);  <==== chỗ này em chuyển thành writeln(f,sv);  nó báo lỗi là:Error:Can't use readln or writeln on typed file  :angry: (Tại khi in ra kết quả nó cứ in trên 1 dòng nên không đẹp :D )
end;
inc(i);
until bht='';
close(f);
readln;
end.
>>Mà anh ơi thi tin THCS có cần học phần file không ạ ! Tại còn ít thời gian nên em chỉ ôn những mảng thi cho hiệu quả thôi ạ! :D

Bài viết đã được chỉnh sửa nội dung bởi Duongdz2k7: 28-06-2021 - 23:06

                   Học , học nữa , học mãi  :closedeyes:

Luôn không ngừng cố gắng để đạt thành quả :D  :like





0 người đang xem chủ đề

0 thành viên, 0 khách, 0 thành viên ẩn danh