HomeĐề Thi học sinh giỏi

Đề luyện thi HSG tin học lớp 9 – Pascal – Đề số 3

Like Tweet Pin it Share Share Email
Like và share giúp mình phát triển website nhé.
  •  
  •  

Đề 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

Comments (0)

Trả lời

Your email address will not be published. Required fields are marked *