1. Trang chủ
  2. » Luận Văn - Báo Cáo

Chuyên đề học sinh giỏi Tin 8 câu lệnh if … then … else21828

20 6 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 128,51 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài 6 :Viết chương trình nhập hai số thực.. Bài 8:Viết chương trình nhập hai số tự nhiên N, M và thông báo ‘Dung‘ nếu N , M cùng tính chẵn lẽ , trong trường hợp ngược lại thì thông báo ‘

Trang 1

CHUYÊN ĐỀ HỌC SINH GIỎI TIN 8

CÂU LỆNH IF … THEN … ELSE

Bài 1:Nhập 3 số a , b , c bất kì Hãy kiểm tra xem ba số đó có thể là độ dài ba cạnh của một tam giác hay không ? Thông báo lên màn hình ‘ Thỏa mãn ‘, ‘ Không thỏa mãn trong từng trường hợp tương ứng

1) Var

a , b , c : Real ;

BEGIN

Writeln (' Nhap do dai 3 canh cua tam giac : ') ;

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

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

Write (' c = ') ; Readln ( c ) ;

If ( a + b > c ) and ( b + c > a ) and ( c + a > b ) and ( a > 0 ) and ( b > 0 ) and ( c > 0 ) Then

Writeln (' Thoa man : Day la 3 canh cua mot tam giac ')

Else

Writeln (' Khong thoa man ! ') ;

Readln ;

END

Bài 2:Nhập N số bất kì

Đếm các số lớn hơn 10 và nhỏ hơn 20 và tính tổng của chúng Sau đó , đưa ra màn hình :

So cac so >10 và <20 la : ( gia tri )

Tong cua chung la : ( gia tri )

2) Var

Trang 2

Tong , So : Real ; I , N , Dem : Integer ;

BEGIN

Write (' Bao nhieu so : ') ; Readln ( N ) ;

Tong := 0 ; Dem := 0 ;

For I := 1 To N Do

Begin

Write (' So = ') ; Readln ( So ) ;

If ( So > 10 ) and ( So < 20 ) Then

Begin

Tong := Tong + So ; Dem := Dem + 1 ;

End ;

End ;

Writeln (' So cac so >10 va <20 la : ', Dem ) ; Writeln (' Tong cua chung la :', Tong )

;

Readln ;

END

Bài 3:Nhập bốn số a , b , c , d Hãy tìm giá trị lớn nhất của chúng và gán giá trị lớn nhất

đó cho biến Max

3) Var

Max , a , b , c , d : Real ;

BEGIN

Writeln (' Nhap gia tri cua 4 so : ') ;

Write (' a = ') ; Readln ( a ) ; Write (' b = ') ; Readln ( b ) ; Write (' c = ') ; Readln ( c ) ; Write (' d = ') ; Readln ( d ) ;

Max := a ;

Trang 3

If Max < b Then Max := b ; If Max < c Then Max := c ; If Max < d Then Max := d

;

Writeln (' Gia tri lon nhat la : ', Max ) ;

Readln ;

END

Bài 4:Đọc ngày tháng năm , sau đó viết ra màn hình đó là ngày thứ mấy trong tuần

4) Var

Thu , Ngay , Thang : Byte ; Nam : Integer ;

BEGIN

Write (' Doc Ngay Thang Nam : ') ; Readln ( Ngay , Thang , Nam ) ;

Nam := 1900 + ( Nam mod 1900 ) ;

If Thang < 3 Then

Begin

Thang := Thang + 12 ; Nam := Nam - 1 ;

End ;

Thu := Abs ( Ngay + Thang * 2 + ( Thang + 1 ) * 3div 5 + Nam + Nam div 4 ) mod 7 ; Case Thu Of

0 : Writeln (' Chu Nhat ') ; 1 : Writeln (' Thu Hai ') ; 2 : Writeln (' Thu Ba ')

; 3 : Writeln (' Thu Tu ') ;

4 : Writeln (' Thu Nam ') ; 5 : Writeln (' Thu Sau ') ; 6 : Writeln (' Thu Bay ') ;

End ;

Readln ;

END

Trang 4

Bài 5:Viết chương trình :

Nhâp số báo danh

Nhập điểm văn , toán , ngoại ngữ

In ra màn hình dưới dạng :

_ Phiếu điểm :

_ Số báo danh :

_ Điểm văn :

_ Điểm toán :

_ Điểm ngoại ngữ :

_ Tổng số điểm :

Bạn đã trúng tuyển ( hoặc Bạn đã không trúng tuyển ) với điều kiện Tổng số điểm >= 15 hay ngược lại

5) Uses Crt ;

Var SBD : Integer;

Van , Toan , Ngoaingu , Tongdiem : Real ;

BEGIN

Clrscr ;

Write (' So bao danh : ') ; Readln( SBD ) ; Write (' Diem toan : ') ; Readln( Toan ) ;

Write (' Diem ngoai ngu : ') ; Readln( Ngoaingu ) ; Write (' Diem van : ') ; Readln ( Van ) ;

Tongdiem := Toan + Van + Ngoaingu ;

Clrscr ;

Writeln (' Phieu Bao Diem ') ;

Writeln (' So bao danh : ', SBD ) ; Writeln (' Diem van : ', Van ) ;

Writeln (' Diem toan : ', Toan ) ; Writeln (' Diem ngoai ngu : ', Ngoaingu) ; Writeln (' Tong diem : ', Tongdiem) ;

If Tongdiem >= 15 Then

Writeln(' Ban da trung tuyen ') Else Writeln(' Ban khong trung tuyen ') ;

Readln ;

Trang 5

END

Bài 6 :Viết chương trình nhập hai số thực Sau đó hỏi phép tính cần thực hiện và in kết quả của phép tính đó

Nếu là “+” , in kết quả của tổng lên màn hình

Nếu là “-” , in kết quả của hiệu lên màn hình

Nếu là “/” , in kết quả của thương lên màn hình

Nếu là “*” , in kết quả của tích lên màn hình Nếu là “+” , in kết quả của tổng lên màn hình

Nếu là “+” , in kết quả của tổng lên màn hình

6) Uses Crt ;

Var

a , b , T : Real ; Pt : Char ;

BEGIN

Clrscr ;

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

Write (' Phep tinh thuc hien la (+ - * /) : ') ;

Readln( Pt ) ;

If Pt = '+’ Then T := a + b ; If Pt = '-’ Then T := a - b ;

If Pt = '*’ Then T := a * b ; If Pt = '/’ Then T := a / b ;

Write ( a , pt , b , ' = ', T ) ;

Readln ;

END

Trang 6

Bài 7:Giải và biện luận phương trình : x2 + ( m – 2 ) x + 1 = 0 ở đây m là tham số thực tuỳ ý

7) Uses Crt;

Var m , Delta : Real ;

BEGIN

Clrscr;

Write (' m = ') ; Readln( m ) ;

Delta := sqr( m-2 ) - 4 ;

If Delta < 0 Then Writeln(' Phuong trinh vo nghiem ')

Else

Begin

If Delta = 0 Then Writeln(' Phuong trinh co nghiem kep X= ', -( m - 2 ) / 2 )

Else

Begin

Writeln(' Phuong trinh co 2 nghiem : ') ;

Writeln (' X1 = ', ( -(m-2) + sqrt(delta) ) / 2 ) ; Writeln (' X2 = ', ( -(m-2) - sqrt(Delta) ) / 2 ) ;

End ;

End ;

Readln ;

END

Bài 8:Viết chương trình nhập hai số tự nhiên N, M và thông báo ‘Dung‘ nếu N , M cùng tính chẵn lẽ , trong trường hợp ngược lại thì thông báo ‘Sai‘

8) Uses Crt ;

Var

Trang 7

N , M : Integer ;

Begin

Clrscr ;

Write(' N , M = ') ; Readln( N , M ) ;

If ( (N + M) mod 2 = 0 ) Then Writeln(' Dung ! ') Else Writeln(' Sai ! ') ;

Readln ;

END

Sử dụng lệnh For

Bài 1 :Lập trình tính tích các số tự nhiên từ 1 tới 10

Bài 2:Viết chương trình đếm số lần xuất hiện của các kí tự thuộc bảng chữ cái trong 50 lần gõ kí tự bằng bàn phím (không phân biệt a với A, b với B …, dùng hàm Upcase để chuyển đổi chữ thường với chữ hoa)

Bài 3 :Cho số tự nhiên n , hãy lập trình để tính các tổng sau :

a 1 + 1/22 + 1/32 + … + 1/n2 b 1 + 1/2! + 1/3! + … + 1/n!

Bài 4 :Tính giá trị của biểu thức sau :

( 1 + 1/12 ) ( 1 + 1/22 ) … ( 1 + 1/n2 )

Sử dụng lệnh While

Bài 5:Lập trình tính tổng :

A = 1 + 1/2 + 1/3 + … + 1/n

ở đây n là số tự nhiên được nhập vào từ bàn phím

Bài 6 :Tính hàm lũy thừa an , ở đây a thực và n tự nhiên được nhập vào từ bàn phím

Bài 7:Viết chương trình nhập một dãy số tối đa 100 số , sau đó in ra màn hình các số khác nhau

Trang 8

Bài 8:Viết chương trình nhập một dãy số tối đa 100 số , sau đó sắp xếp lại theo thứ tự

tăng dần

Sử dụng lệnh Repeat

Bài 9 :Cho một dãy số được nhập từ bàn phím Hãy viết chương trình nhập một số a rồi

liệt kê tất cả các phần tử trong dãy lớn hơn a

Bài 10:Viết chương trình nhập một dãy số tối đa 50 số rồi in ra màn hình các số trùng nhau của dãy

Bài 11:Bạn có 1000 đ đem gửi ngân hàng với lãi suất 8%/tháng Sau mỗi tháng tiền lãi được nhập vào để tính lãi suất tháng sau Bạn muốn để dành cho đến khi số tiền tăng lên

là x Vậy phải để trong bao lâu

Bài 12 :Viết chương trình tìm ƯSCLN của N số được nhập từ bàn phím

1)Var i : Byte ; (* chỉ số chạy *)

p : word ; (* tích số *)

BEGIN

p := 1; (* cho giá trị ban đầu của tích *)

For i := 1 to 10 Do (* cho i chạy từ 1 tới 10 *)

p := p * i ; (* lần lượt nhân i với p *)

Write (' 1 * 2 * * 10 = ', p ) ;

Readln ;

END

2)

Uses Crt ;

Var a : Array[ 'A' 'Z' ] of integer; (* mảng bộ đếm *)

ch : char ; (* biến nhập kí tự *)

Trang 9

i : byte ; (* chỉ số của lần gõ phím *)

BEGIN

Clrscr ;

For ch :='A' to 'Z' Do a[ch] := 0 ; (* xả bộ đếm *)

Writeln (' Go phim 50 lan ') ;

For i := 1 To 50 Do (* thực hiện 100 lần *)

Begin

ch :=Readkey ; (* nhập kí tự vào Ch không cần gõ Enter *)

ch := Upcase(ch) ; (* Đỗi chữ thường thành chữ hoa *) a[ch] := a[ch] + 1 ;

End;

Writeln (' So lan xuat hien cac ki tu la :') ;

For ch :='A' to 'Z' do (* Kiểm tra bộ đếm từ 'A' tới 'Z' *)

If a[ch] > 0 Then (* Nếu Ch có xuất hiện *)

Writeln (ch , a[ch] : 4 , ' lan ') ; (* Viết ra màn hình kí tự và

số lần xuất hiện *)

Readln ;

END

3)a) Var n , i : Word ;

S : Real ;

BEGIN

Trang 10

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

S := 0 ;

For i := 1 To n Do

S := S + 1 / sqr(i) ;

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

Readln ;

END

b) Var n , i , j , p : Word ;

S : Real ;

BEGIN

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

p := 1 ;

s := 0 ;

For i :=1 To n Do

Begin

p := p * i ; (* tính i *)

S := S + 1 / p ;

End ;

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

Readln ;

END

4)Var i , n : Byte ;

p : Real ;

Trang 11

Begin

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

p := 1 ;

For i := 1 To n Do p := p * ( 1 + 1/sqr(i) ) ;

Writeln(' p = ', p:10:5 ) ;

Readln ;

End

5) Uses Crt ;

Var i , n : Integer ;

tong: Real ;

BEGIN

Clrscr ;

Write (' Cho so tu nhien n : ') ; Readln (n) ;

tong :=0 ;

i :=1 ;

While i <= n Do

Begin

tong := tong + 1/i ;

i := i + 1 ;

End ;

Writeln (' Tong can tim la : ', tong:12:6 ) ;

Readln ;

END

Trang 12

6) Uses Crt ;

Var i , n : Integer ;

a , giatri : Real ;

BEGIN

Clrscr ;

Write (' Cho so a : ') ; Readln(a) ;

Write (' Cho so mu n : ') ; Readln(n) ;

i := 1 ;

giatri := 1 ;

While i <= n Do

Begin

giatri := giatri * a ;

i:= i+1 ;

End ;

Writeln(' a mu n bang : ', giatri ) ;

Readln ;

END

7) Uses Crt;

Var A : Array [1 100] Of Integer;

i , j , n : Integer ;

BEGIN

Trang 13

Clrscr ;

Write(' Do dai cua day so N = ') ; Readln (N) ; For I := 1 To N Do

Begin

Write ('A[', i , ']= ') ; Readln ( A[i] ) ;

End ;

Writeln (' Cac so khac nhau la : ') ; Writeln ( A[1] ) ;

i := 2 ;

While i <= N Do

Begin

j := 1 ;

While ( j < i ) and ( A[j] <> A[i] ) Do inc(j) ;

If j = i Then Writeln( A[i] ) ;

i :=i + 1 ;

End ;

Readln ;

END

8) Uses Crt;

Var A : Array [1 100] Of Integer ;

i , j , n , T : Integer ;

BEGIN

Clrscr ;

Trang 14

Write(' Do dai cua day so N = ') ; Readln (N) ; Writeln (' Nhap day so : ') ;

For i := 1 To N Do

Begin

Write('A[', i ,'] = ') ; Readln ( A[i] ) ;

End ;

i := 1 ;

While (i <= n-1) Do

Begin

j := i+1;

While j<=n do

Begin

If A[j] < A[i] then

Begin

T := A[j];

A[j ] := A[i];

A[i] := T ;

End ;

j := j + 1;

End ;

i := i + 1;

End ;

Writeln(' Day sau khi sap xep : ') ;

Trang 15

For i := 1 To N Do Write(A[i] : 4) ;

Readln ;

END

9) Uses Crt ;

Var b : Array[1 100] Of Real;

a : Real ;

n , i : Byte ;

BEGIN

Clrscr ;

Write ('Nhap do dai cua day so : ') ; Readln(n) ; Writeln (' Nhap cac phan tu cua day : ') ;

For i := 1 To n Do

Begin

Write (' b[', i ,'] = ') ; Readln( b[i] ) ;

End ;

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

Writeln (' Cac phan tu lon hon a cua day : ') ;

i:=1;

Repeat

If ( b[i] > a ) Then Writeln (' b[', i ,'] = ', b[i]:8:2 ) ; inc(i) ;

Until i > n ;

Trang 16

Readln ;

END

10) Uses crt ;

Var a , b : Array[1 50] Of Integer ;

n , m , i , j , k : Byte ;

trung : Boolean ;

BEGIN

Clrscr ;

Write (' Nhap do dai cua day so nguyen : ') ; Readln(n) ;

Writeln (' Nhap cac phan tu cua day : ') ;

For i := 1 To N do

Begin

Write (' a[', i ,'] = ') ; Readln( a[i] ) ;

End ;

i := 1 ; m := 0 ;

Repeat

trung := false ;

j := i + 1;

Repeat

If ( j <= n ) and ( a[i] = a[j] ) Then trung := true ; inc (j) ; Until trung or ( j > n ) ;

If trung Then

Trang 17

Begin

m := m + 1;

b[m] := a[i] ; writeln ( b[m] : 4 ) ;

End ;

inc(i) ;

Until i > n ;

If m > 1 Then

Begin

i := 1 ;

Repeat

j := i + 1 ;

Repeat

trung := false ;

If b[i] = b[j] Then trung := true ;

If trung Then

Begin

If j < m Then

For k := j To m - 1 Do b[k] := b[k + 1] ;

m := m - 1 ;

dec ( j ) ;

End ;

inc ( j ) ;

Until j > m ;

Trang 18

inc ( i ) ;

Until i > m ;

End ;

If m > 0 Then

For k := 1 To m Do Write ( b[k] : 4 ) ;

Readln ;

END

11) uses crt ;

var

thang : Byte ;

tien , lai , x : Real ;

BEGIN

clrscr ;

writeln (' Chuong trinh tinh thoi gian rut tien lai ') ; write (' So tien lai muon rut ra : ') ; readln(x) ; tien := 1000 ;

thang :=1 ;

repeat

lai := tien * 8 / 100 ;

tien := tien + lai ;

thang := thang + 1 ;

until tien >= x ;

Trang 19

writeln (' Ban phai gui tien trong ', thang div 12 , ' nam ',

thang mod 12 ,' thang ') ;

writeln (' Khi do so tien ban rut ra duoc la ', tien:12:2 ,' dong ') ; readln ;

END

12) Uses crt ;

Var a : Array [1 100] Of Integer ;

n , i : Byte ;

d : integer ;

BEGIN

Clrscr ;

Writeln (' Tim USCLN cua N so :') ;

Write (' Nhap so N : ') ; Readln(n) ;

Writeln ('Nhap ', N ,' so : ') ;

For i := 1 To n Do

Begin

Write(' So thu ', i ,' = ') ; Readln( a[i] ) ;

End ;

For i := 1 To n-1 Do

Repeat

d := a[i] ;

a[i] := a[ i+1 ] mod a[i] ;

a[i+1] := d ;

Trang 20

Until a[i] = 0 ;

Writeln (' USCLN cua ', N ,' so la : ', a[n] ) ;

Readln ;

END

CHƯƠNG TRÌNH CON

Bài 1 :Dùng thủ tục chuyển một số tự nhiên n cho trước sang hệ cơ số 2

Bài 2 :Dùng thủ tục giải phương trình bậc hai ax2 + bx + c = 0

Bài 3 :Hãy viết lại thủ tục Insert đối với một chuỗi kí tự cho trước tùy ý

Bài 4:Viết chương trình thực hiện lần lượt các công việc sau :

_ Lập thủ tục nhập ba số thực dương a , b , c từ bàn phím

_ Lập thủ tục kiểm tra xem ba số trên có lập thành ba cạnh của tam giác hay không ? _ Viết thủ tục tính diện tích của tam giác

_ Viết thủ tục tính các trung tuyến của tam giác

_ Viết hoàn thiện chương trình chính

Bài 5:Giải phương trình x + y + z = 12 trong phạm vi số nguyên không âm với điều kiện

x < 4

Bài 6 :Cho trước các số N , a , b , c tự nhiên Giải phương trình sau trong phạm vi số nguyên không âm x + y + z = N với điều kiện x < a , y < b , z < c

Bài 7:Viết thủ tục Compare ( S1 , S2 : String ; Var Kq : String ) thực hiện công việc sau : so sánh hai xâu S1 và S2 , tìm tất cả các kí tự có trong cả hai xâu trên Xâu Kq sẽ chứa

tất cả các kí tự đó , mỗi kí tự chỉ được nhớ một lần

Bài 8:Viết hàm tính D (St1 , St2) , với U, V là hai xâu kí tự bất kì , là tổng số các kí tự không giống nhau trong hai xâu trên , mỗi loại kí tự chỉ được nhớ một lần Ví dụ D (‘aabba’ , ‘bcdd’) = 2 vì chỉ có hai kí tự a và d là không giống nhau trong các xâu trên

Bài 9:Viết chương trình hoàn chỉnh thực hiện các công việc của thực đơn sau :

Ngày đăng: 28/03/2022, 15:05

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w