Đăng nhập
Diễn đàn » Diễn đàn học sinh giỏi Tin học 9 » Bồi dưỡng học sinh giỏi Tin 9
Email
 Đăng ký Quên mật khẩu
Mật khẩu
Nhớ mật khẩu
Người gửi Nội dung

Thầy Quân
Gửi lúc:

I. Các hàm số học sử dụng cho kiểu số nguyên và số thực:

            SQR(x):                                 Trả về x2

            SQRT(x):                              Trả về căn bậc hai của x (x³0)

            ABS(x):                                  Trả về |x|

            SIN(x):                                   Trả về sin(x) theo radian

            COS(x):                                 Trả về cos(x) theo radian

            ARCTAN(x):            Trả về arctang(x) theo radian

            LN(x):                                   Trả về ln(x)

            EXP(x):                                 Trả về ex

            TRUNC(x):               Trả về số nguyên gần với x nhất nhưng bé hơn x.

            INT(x):                                              Trả về phần nguyên của x

            FRAC(x):                              Trả về phần thập phân của x

            ROUND(x):              Làm tròn số nguyên x

            PRED(n):                              Trả về giá trị đứng trước n

            SUCC(n):                              Trả về giá trị đứng sau n

            ODD(n):                                Cho giá trị TRUE nếu n là số lẻ.

            INC(n):                                  Tăng n thêm 1 đơn vị (n:=n+1).

            DEC(n):                                 Giảm n đi 1 đơn vị (n:=n-1).

 

II. Kiểu ký tự

            - Từ khoá: CHAR.

            - Kích thước: 1 byte.

            - Để biểu diễn một ký tự, ta có thể sử dụng một trong số các cách sau đây:

  • Đặt ký tự trong cặp dấu nháy đơn. Ví dụ 'A', '0'.
  • Dùng hàm CHR(n) (trong đó n là mã ASCII của ký tự cần biểu diễn). Ví dụ CHR(65) biễu diễn ký tự 'A'.
  • Dùng ký hiệu #n (trong đó n là mã ASCII của ký tự cần biểu diễn). Ví dụ #65.

            - Các phép toán: =, >, >=, <, <=,<>.

 

* Các hàm trên kiểu ký tự:

- UPCASE(ch): Trả về ký tự in hoa tương ứng với ký tự ch. Ví dụ: UPCASE('a') = 'A'.

- ORD(ch): Trả về số thứ tự trong bảng mã ASCII của ký tự ch. Ví dụ ORD('A')=65.

- CHR(n): Trả về ký tự tương ứng trong bảng mã ASCII có số thứ tự là n. Ví dụ: CHR(65)='A'.

- PRED(ch): cho ký tự đứng trước ký tự ch. Ví dụ: PRED('B')='A'.

- SUCC(ch): cho ký tự đứng sau ký tự ch. Ví dụ: SUCC('A')='B'.

Trích dẫn

Thầy Quân
Gửi lúc:

BÀI TẬP MẪU

Bài tập 2.1: Viết chương trình nhập vào độ dài hai cạnh của tam giác và góc giữa hai cạnh đó, sau đó tính và in ra màn hình diện tích của tam giác.

Ý tưởng:

Công thức tính diện tích tam giác: S = 1/2*a*b *sin(θ) với a,b là độ dài 2 cạnh và θ là góc kẹp giữa 2 cạnh a và b.

Program Tinh_dien_tich_tam_giac;

Var a,b,goc,dientich: Real;

Begin

          Write('Nhap vao do dai canh thu nhat: '); Readln(a);

          Write('Nhap vao do dai canh thu hai: '); Readln(b);

  Write('Nhap vao goc giua hai canh: '); Readln(goc);

          Dientich:=a*b*sin(goc)/2;

          Writeln('Dien tich cua tam giac la: ',Dientich:0:2);

          Readln;

End.

 

Bài tập 2.2: Viết chương trình tính , x>0.

Ý tưởng:

            Ta có:  

 Program Tinh_can_bac_n_cua_x;

Var    x,S: Real;

                   n: Word;

Begin

          Write('Nhap vao n= '); Readln(n);

          Write('Nhap vao x= '); Readln(x);

          S:=EXP(1/n*LN(x));

          Writeln('S = ',S:0:2);

          Readln;

End.

Bài tập 2.3:    Viết chương trình nhập vào 2 số a, b. Sau đó hoán đổi giá trị của 2 số đó:

a/ Cho phép dùng biến trung gian.

Program Swap;

Var    a,b,tam: Integer;

Begin

          Write('Nhap vao a= '); Readln(a);

          Write('Nhap vao b= '); Readln(b);

          tam:=a;        {tam lấy giá trị của a}

          a:=b;            {a lấy giá trị của b}

          b:=tam;        {b lấy lại giá trị của tam}

          Writeln('a = ',a,’ b = ‘,b);

          Readln;

End.

 

b/ Không được phép dùng biến trung gian.

Program Swap;

Var    a,b: Integer;

Begin

          Write('Nhap vao a= '); Readln(a);

          Write('Nhap vao b= '); Readln(b);

          a:=a+b;        {a lấy tổng giá trị của a+b}

          b:=a-b;         {b lấy giá trị của a}

          a:=a-b;                  {a lấy lại giá trị của b}

          Writeln('a = ',a,’ b = ‘,b);

          Readln;

End.

Trích dẫn

Thầy Quân
Gửi lúc:

III. CÂU LỆNH RẼ NHÁNH

3.1. Lệnh IF

            Cú pháp:

                        (1)       IF  B THEN  S;

                        (2)       IF  B  THEN  S1  ELSE  S2;                     

Lưu ý: Khi sử dụng câu lệnh IF thì đứng trước từ khoá ELSE không được có dấu chấm phẩy (;).

 IV. CÂU LỆNH LẶP

4.1. Vòng lặp xác định

            Có hai dạng sau:

            Œ        Dạng tiến      

                        FOR <biến đếm>:=<giá trị Min> TO <giá trị Max> DO       S;

                    Dạng lùi

                        FOR <biến đếm>:=<giá trị Max> DOWNTO <giá trị Min> DO     S;

  4.2. Vòng lặp không xác định

Dạng REPEAT

Dạng WHILE

Repeat

S;

Until B;

While B Do S;

Ý nghĩa:

  • Dạng REPEAT: Lặp lại công việc S cho đến khi biểu thức B=TRUE thì dừng.
  • Dạng WHILE: Trong khi biểu thức B=TRUE thì tiếp tục thực hiện công việc S.

BÀI TẬP MẪU

Bài tập 3.1: Viết chương trình nhập vào một số nguyên và  kiểm tra xem số vừa nhập là số chẵn hay số lẻ.

Uses crt;

Var  x:integer;

Begin

  Write('Nhap vao mot so nguyen : ');  Readln(x);

     If x MOD 2=0 Then

          Writeln('So vua nhap vao la so chan')

     Else

          Writeln('So vua nhap vao la so le');

     Readln;

End.

 

Bài tập 3.2:  Viết chương trình giải phương trình bậc nhất ax+b=0

Uses Crt;

Var  a,b,x : real;

Begin

     Write('a = '); Readln(a);

     Write('b = '); Readln(b);

     If a = 0 Then      { Nếu a bằng 0 }

          If b = 0 Then  { Trường hợp a = 0 và b = 0 }

              Writeln('Phuong trinh co vo so nghiem')

          Else   { Trường hợp a=0 và b ¹ 0 }

              Writeln('Phuong trinh vo nghiem')

     Else  { Trường hợp a ¹ 0 }

          Begin

              x:= -b/a;

              Writeln('Phuong trinh co nghiem la :',x:0:2);

          End;

     Readln;

End.

 

Bài tập 3.3: Viết chương trình nhập vào tuổi của một người và cho biết người đó là thiếu niên, thanh niên, trung niên hay lão niên. Biết rằng: nếu tuổi nhỏ hơn 18 là thiếu niên, từ 18 đến 39 là thanh niên, từ 40 đến 60 là trung niên và lớn hơn 60 là lão niên.

Uses crt;

Var tuoi:Byte;

Begin

     Write(Nhap vao tuoi cua mot nguoi:'); Readln(tuoi);

     Case tuoi Of

          1..17:    Writeln(Nguoi nay la thieu nien');

          18..39:   Writeln(Nguoi nay la thanh nien');

          40..60:   Writeln(Nguoi nay la trung nien');

          Else      Writeln(Nguoi nay la lao nien');

     End;

     Readln;

End.

 

Bài tập 3.4: Viết chương trình tính tổng S = 1+2+...+N

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    

Cách 1: Dùng vòng lặp FOR.

Program TinhTong;

Uses crt;

Var N,i,S:integer;

Begin

          Clrscr;

          Write('Nhap vao gia tri cua N :'); Readln(N);

          S:=0;

          For i:=1 to N do S:=S+i;

          Writeln('Ket qua la :',S);

          Readln;

End.

 

 

 

Cách 2: Dùng vòng lặp REPEAT.

Program TinhTong;

Uses crt;

Var N,i,S:integer;

Begin

          Clrscr;

          Write('Nhap vao gia tri cua N :'); Readln(N);

          S:=0; i:=1;

          Repeat

                   S:=S+i;

                   i:=i+1;

          Until i>N;

          Writeln('Ket qua la :',S);

          Readln;

End.

 

Cách 3: Dùng vòng lặp WHILE.

Program TinhTong;

Uses crt;

Var N,i,S:integer;

Begin

          Clrscr;

          Write('Nhap vao gia tri cua N :'); Readln(N);

          S:=0; i:=1;

          While i<=N Do

                   Begin

                             S:=S+i;

                             i:=i+1;

                   End;

          Writeln('Ket qua la :',S);

          Readln;

End.

 

Bài tập 3.5: Viết chương trình nhập vào N số nguyên từ bàn phím. Hãy tính và in ra màn hình tổng của các số vừa được nhập vào.

Ý tưởng:

            Dùng phương pháp cộng dồn. Cho vòng lặp FOR chạy từ 1 tới N, ứng với lần lặp thứ i, ta nhập vào số nguyên X và đồng thời cộng dồn X vào biến S.

 

Program  Tong;

Uses crt;

Var N,S,i,X : Integer;

Begin

          Clrscr; S:=0;

          For i:=1 To n Do

                   Begin

                             Write('Nhap so nguyen X= '); Readln(X);

                             S:=S+X;

                   End;

          Writeln(‘Tong cac so duoc nhap vao la: ‘,S);

          Readln;

End.

 

Bài tập 3.6: Viết chương trình nhập vào các số nguyên cho đến khi nào gặp số 0 thì kết thúc. Hãy đếm xem có bao nhiêu số chẵn vừa được nhập vào.

Ý tưởng:

            Bài toán này không biết chính xác số lần lặp nên ta không thể dùng vòng lặp FOR. Vì phải nhập vào số nguyên N trước, sau đó mới kiểm tra xem N=0? Do đó ta nên dùng vòng lặp REPEAT.

 

Program  Nhapso;

Uses crt;

Var N,dem : Integer;

Begin

          Clrscr; dem:=0;

          Repeat

                   Write('Nhap vao mot so nguyen N= '); Readln(N);

                   If N MOD 2 = 0 Then dem:=dem+1;

          Until N=0;

          Writeln(‘Cac so chan duoc nhap vao la: ‘,dem);

          Readln;

End.

 

Bài tập 3.7: Viết chương trình tính số Pi với độ chính xác Epsilon, biết:

                                                Pi/4 = 1-1/3+1/5-1/7+...

Ý tưởng:

            Ta thấy rằng, mẫu số là các số lẻ có qui luật: 2*i+1 với i=1,...,n. Do đó ta dùng i làm biến chạy.

            Vì tính số Pi với độ chính xác Epsilon nên không biết trước được cụ thể số lần lặp, do đó ta phải dùng vòng lặp WHILE hoặc REPEAT. Có nghĩa là phải lặp cho tới khi t=4/(2*i+1) £ Epsilon thì dừng.

 

Uses Crt;

Const Epsilon=1E-4;

Var Pi,t:real;

    i,s:Integer;

Begin

          Pi:=4;  i:=1; s:=-1;

          t:=4/(2*i+1);

          While t>Epsilon Do

                   Begin

                             Pi:=Pi+s*t;

                             s:=-s; i:=i+1;

                             t:=4/(2*i+1);

                   End;

          Writeln('So Pi = ',Pi:0:4);

          Readln;

End.

 

Bài tập 3.8:    Viết chương trình nhập vào số nguyên N. In ra màn hình tất cả các ước số của N.

Ý tưởng:

            Cho biến i chạy từ 1 tới N. Nếu N MOD i=0 thì viết i ra màn hình.

 

Uses Crt;

Var N,i : Integer;

Begin

          Clrscr;

          Write('Nhap so nguyen N= '); Readln(N);

          For i:=1 To N Do

                   If N MOD i=0 Then Write(i:5);

          Readln;

End.

 

Bài tập 3.9:    Viết chương trình tìm USCLN và BSCNN của 2 số a, b được nhập vào từ bàn phím.

Ý tưởng:

- Tìm USCLN: Lấy số lớn trừ số nhỏ cho đến khi a=b thì dừng. Lúc đó: USCLN=a.

- BSCNN(a,b) = a*b DIV USCLN(a,b).

 

Uses crt;

Var a,b,aa,bb:integer;

Begin

          Write('Nhap a : '); Readln(a);

          Write('Nhap b : '); Readln(b);

          aa:=a; bb:=b;

          While aa<>bb Do

                   Begin

                             If aa>bb Then aa:=aa-bb Else    bb:=bb-aa;

                   End;

          Writeln('USCLN= ',aa);

          Writeln('BSCNN= ',a*b DIV aa);

          Readln;

End.

 

Bài tập 3.10: Viết chương trình tìm các số có 3 chữ số  sao cho:  = a3 + b3 + c3.

Ý tưởng:

            Dùng phương pháp vét cạn. Ta biết rằng: a có thể có giá trị từ 1®9 (vì a là số hàng trăm), b,c có thể có giá trị từ 0®9. Ta sẽ dùng 3 vòng lặp FOR lồng nhau để duyệt qua tất cả các trường hợp của a,b,c.

            Ứng với mỗi bộ abc, ta sẽ kiểm tra: Nếu 100.a + 10.b + c = a3 + b3 + c3 thì in ra bộ abc đó.

 

Uses crt;

Var a,b,c : Word;

Begin

          For a:=1 To 9 Do

                   For b:=0 To 9 Do

                             For c:=0 To 9 Do

                                      If (100*a + 10*b + c)=(a*a*a + b*b*b + c*c*c) Then Writeln(a,b,c);

          Readln;

End.

 

Bài tập 3.11: Viết chương trình nhập vào số tự nhiên N rồi thông báo lên màn hình số đó có phải là số nguyên tố hay không.

Ý tưởng:

            N là số nguyên tố nếu N không có ước số nào từ 2 ® N div 2. Từ định nghĩa này ta đưa ra giải thuật:

            - Đếm số ước số của N từ 2 ® N div 2 lưu vào biến d.

            - Nếu d=0 thì N là số nguyên tố.

 

Uses crt;

Var N,i,d : Word;

Begin

          If N<2 Then Writeln(N,’ khong phai la so nguyen to’)

          Else

          Begin

                   {Đếm số ước số}

                   d:=0;

                   For i:=2 To N div 2 Do

                             If N MOD i=0 Then d:=d+1;

                   {Kiểm tra}

                   If d=0 Then Writeln(N,’ la so nguyen to’)

                   Else Writeln(N,’ khong phai la so nguyen to’);

          End;

          Readln;

End.

Trích dẫn

Ngô Văn Nghĩa
Gửi lúc:

khó wa thầy ơi

Trích dẫn

Ngô Văn Nghĩa
Gửi lúc:

Cry

Trích dẫn

Thầy Quân
Gửi lúc:

May bai nay de ma, co gang hoc di thay cho 10 diem, thu 5 di hoc phai lam dc nhe

Trích dẫn

Ngô Văn Minh Tuấn 9/3
Gửi lúc:

Thầy ơi khó quá , em không hiểu đề được Cry

Trích dẫn

Nguyễn Thị Anh Thư 9/4
Gửi lúc:

:))

 

Trích dẫn

Nguyễn Thị Anh Thư 9/4
Gửi lúc:

pascal là reg hèoquên hết lun

Trích dẫn

Nguyễn Thị Anh Thư 9/4
Gửi lúc:

Innocent

Trích dẫn

Nguyễn Thị Anh Thư 9/4
Gửi lúc:

thầy

bài số 3.3  bị j ơ

hắn chạy k được

Trích dẫn

Ngô Văn Nghĩa
Gửi lúc:

do mi bờm chứ ko phải máy đâu

Trích dẫn

Ngô Văn Nghĩa
Gửi lúc:

hjhj

Trích dẫn

Vui lòng đăng nhập để gửi phản hồi

Làm Sao Để Nhận Biết Vé Số XSMN Chủ Nhật Hợp Lệ? XSMN Chủ Nhật gửi lúc 18-11-2024 15:45:54

XSMN Chủ Nhật XSMN Chủ Nhật gửi lúc 18-11-2024 10:26:55

XSMT Thứ 5 - Thông tin về các đài xổ số Miền Trung thứ 5 XSMT Thứ 5 gửi lúc 13-11-2024 09:52:12

Những lưu ý khi nhận tiền thưởng từ giải XSMN Thứ 5 XSMN Thứ 5 gửi lúc 11-11-2024 14:39:51

XSMN Thứ 5 XSMN Thứ 5 gửi lúc 08-11-2024 15:31:36

XSMN Thứ 4 Đài Cần Thơ: Quy Trình Đổi Thưởng Chi Tiết Cho Người Mới XSMN Thứ 4 gửi lúc 08-11-2024 09:02:30

XSMN Thu 4 XSMN Thứ 4 gửi lúc 07-11-2024 09:18:44

Soi Cau Ngay Mai Soi Cầu Ngày Mai gửi lúc 29-10-2024 09:51:05

Đăng nhập Sbobet Và Nhận Khuyến Mãi Hấp Dẫn Nhất Mai Ngọc Julie gửi lúc 24-10-2024 23:17:05

Web Đá Gà Online Uy Tín: Tiêu Chí Lựa Chọn Và Đánh Giá thomosv388vn gửi lúc 24-10-2024 09:21:26

SV388 thomosv388vn gửi lúc 23-10-2024 15:16:16

Top Game Slot Machine Đỉnh Cao Tại Bwing bwingslot gửi lúc 22-10-2024 12:08:38

The Power of Asian Handicap: How Smart Bets Lead to Big Wins! nguyencuong070421 gửi lúc 22-10-2024 11:05:41

Cách Đăng Ký Tài Khoản Sbobet Nhận Khuyến Mãi Hấp Dẫn Mai Ngọc Julie gửi lúc 16-10-2024 16:00:44

Top 5 Chu De Game Slot Sang Tao Duoc Yeu Thich Nhat bong88vvn gửi lúc 14-10-2024 10:47:04

Fun88 App fun88appdownload gửi lúc 14-10-2024 10:16:49

Bong88 bong88vvn gửi lúc 14-10-2024 08:21:18

Thanh Tilo Blogger - Chia Sẻ Kiến Thức Từ Bóng Đá Đến Game Thanh Tilo gửi lúc 05-10-2024 11:16:41

How to Create an Engaging Quest System in Games Lucas OTD gửi lúc 30-09-2024 10:28:47

First Steps to Successful Indie Game Marketing Lucas OTD gửi lúc 22-09-2024 08:45:03

Trường THCS Thủy Dương

Địa chỉ: 02 An Thường Công Chúa - Thị xã Hương Thủy- Thừa Thiên Huế.

Admin: Phùng Hữu Kim Quân. Email: phkquan@gmail.com

Tự tạo website với Webmienphi.vn