Đề luyện thi HSG tin học lớp 9 – Pascal – Đề số 3
Bài làm của Minh:
Câu 1: Bội số của 11
Viết chương trình nhập vào số tự nhiên N (2<=N<10) và xuất ra tất cả các bội số của 11 mà có số chữ số nhỏ hơn hoặc bằng N.
Dữ liệu nhập: Số N nhập từ bàn phím, có kiểm tra giá trị nhập.
Dữ liệu xuất : Các bội số của 11 lưu vào tập tin BL1.OUT: dòng đầu ghi N, dòng thứ hai ghi các bội số của 11, mỗi số cách nhau 1 khoảng trắng.
VD: N=2
Dữ liệu ra
2
11 22 33 44 55 66 77 88 99
PROGRAM boi_cua_11; USES crt; VAR s:STRING[10]; f:TEXT; n:BYTE; j,i:LONGINT; BEGIN clrscr; n:=0; WHILE (n<2) OR (n>10) DO BEGIN write('Nhap so N = '); readln(n); IF (n<2) OR (n>10) THEN writeln('Gia tri khong hop le'); END; assign(f,'BL1_OUT.txt'); rewrite(f); writeln(f,n); s:=''; i:=1; j:=11; WHILE length(s)<=n DO BEGIN write(f,j,' '); writeln(j); i:=i+1; j:=11*i; str(j,s); END; close(f); END.
Nhận xét bài 1: Bài này chạy được với n=9 nhưng file xuất ra lớn quá không thể đọc nổi -> OK, có lẽ vì vậy mà em để dòng lệnh xuất ra màn hình. Đi thi nhớ xóa đi nhé.
Câu 2: (3,5 điểm) Mật khẩu MK.PAS
Cu Tí thường xuyên tham gia thi lập trình trên mạng. Vì đạt được thành tích cao nên Tí được gửi tặng một phần mềm diệt virus. Nhà sản xuất phần mềm cung cấp cho Tí một mã số là một số nguyên dương N có không quá 255 chữ số. Để cài đặt được phần mềm, Tí phải nhập vào mật khẩu của phần mềm. Mật khẩu là một số nguyên dương M được tạo ra bằng cách tính tổng giá trị các chữ số của N.
Yêu cầu: Hãy tìm số nguyên dương M.
Dữ liệu vào: Cho trong file văn bản MK.INP có cấu trúc như sau:
– Dòng 1: Ghi số nguyên dương N.
Dữ liệu ra: Ghi ra file văn bản MK.OUT theo cấu trúc như sau:
– Dòng 1: Ghi số nguyên dương M tìm được.
Ví dụ:
MK.INP | MK.OUT |
84915388247 | 59 |
PROGRAM mat_khau; VAR f:TEXT; s:STRING; mk:WORD; code,i,n:BYTE; BEGIN assign(f,'MK_INP.txt'); reset(f); read(f,s); close(f); assign(f,'MK_OUT.txt'); rewrite(f); mk:=0; FOR i:=1 TO length(s) DO BEGIN val(s[i],n,code); mk:=mk+n; END; write(f,mk); close(f); END.
Nhận xét bài 2: Em làm tốt
Câu 3: Ma phương
Viết chương trình nhập vào số tự nhiên N (N lẻ) từ bàn phím, sau đó điền các số từ 1 đến n2 vào trong một bảng vuông sao cho tổng các hàng ngang, hàng dọc và 2 đường chéo đều bằng nhau (bảng này được gọi là Ma phương). Xuất dữ liệu ra file ‘MAPHUONG.OUT’
PROGRAM ma_phuong; USES crt; VAR n,i:INTEGER; mp:ARRAY[1..1000,1..1000] OF INTEGER; x,y:BYTE; f:TEXT; BEGIN clrscr; n:=0; WHILE n MOD 2 = 0 DO BEGIN write('Nhap so N = '); readln(n); END; assign(f,'MAPHUONG_OUT.txt'); rewrite(f); x:=1; y:=(n DIV 2)+1; FOR i:=1 TO n*n DO BEGIN mp[x,y]:=i; IF i MOD n = 0 THEN x:=x+1 ELSE BEGIN x:=x-1; y:=y+1; END; IF x<1 THEN x:=n; IF y>n THEN y:=1; END; FOR x:=1 TO n DO BEGIN FOR y:=1 TO n DO write(f,mp[x,y]:3); writeln(f); END; close(f); END.
Nhận xét bài 3: Em làm rất tốt