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

Edward Đặng - Founder & CEO tại Đá Gà Trực Tiếp 999 Edward Đặng gửi lúc 05-06-2024 12:14:48

David Ma - Founder & CEO of AZcoin company David Ma gửi lúc 05-06-2024 10:40:37

MCW AFF agents receive an additional 5% commission every week MCW Affiliate gửi lúc 17-05-2024 10:05:49

SV388Funx | Join cockfighting betting and receive many interesting offers SV388FUNXX gửi lúc 27-03-2024 15:12:41

SV388Funx | The safest bookmaker for betting participation currently SV388FUNXX gửi lúc 27-03-2024 15:09:54

Đá Gà SV388 đặt cược đá gà trực tuyến hàng đầu Việt Nam dagasv388a gửi lúc 25-03-2024 15:56:55

Đăng ký Đá Gà SV388 dagasv388a gửi lúc 21-03-2024 14:57:07

Đăng ký Đá Gà SV388FUNX SV388FUNX gửi lúc 20-03-2024 15:36:02

5 Phương Pháp Kiếm Tiền Từ Casino Trực Tuyến Cho Những Người Chơi Kinh Nghiệm gửi lúc 12-09-2023 15:16:46

Soi Cầu Quốc Tế dự đoán kết quả xổ số chính xác 100% gửi lúc 01-06-2023 08:29:19

Soi Cầu Quốc Tế - Dự đoán KQXS Miền Bắc cực chuẩn đến 100% gửi lúc 26-05-2023 08:29:58

About Me gửi lúc 29-12-2022 22:37:26

Hợp đồng bảo hiểm FWD là gì? Cách tra cứu hợp đồng bảo hiểm FWD gửi lúc 26-11-2022 09:46:01

Bổ sung kiến thức đời sống tại VuiUp.com gửi lúc 23-11-2022 14:54:45

Điều kiện mở thẻ tín dụng ngân hàng VIB mới nhất gửi lúc 21-11-2022 09:34:10

SV388fun.com trang cá cược đá gà mạng tốt nhất cho cược thủ Việt gửi lúc 16-11-2022 09:26:38

Tham gia khóa học online tại VuiUp.com gửi lúc 15-11-2022 15:56:43

Cập nhập xu hướng công nghệ tại VuiUp.com gửi lúc 08-11-2022 15:08:54

VuiUp.com - Website chia sẻ cách chăm sóc da đơn giản dễ làm gửi lúc 04-11-2022 11:40:53

Săn mã giảm giá tại VuiUp.com gửi lúc 31-10-2022 16:15:39

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