//
you're reading...
Giáo trình Tin học cơ bản

Chương 3: 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

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.

Advertisements

About pascalteacher

Trang thông tin Toán học và Tin học

Thảo luận

Không có bình luận

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s

Các tác giả

Danh mục

Tháng Mười 2016
H B T N S B C
« Th9   Th11 »
 12
3456789
10111213141516
17181920212223
24252627282930
31  

NCT Computer

Flickr Photos

surge

Edge of the Sun

JWL0043 Eagle..

More Photos

Thống kê

  • 137,017 lượt xem

pascalteacher.nct@gmail.com


Trang huấn luyện học sinh giỏi Tin học

%d bloggers like this: