Ch−¬ng III: ChØ thÞ lùa chän A. Bµi tËp gi¶i mÉu: Bµi 1. ViÕt ch−¬ng tr×nh nhËp mét sè nguyªn tõ bµn phÝm. §−a th«ng b¸o ra mµn h×nh xem sè võa nhËp lµ sè ch½n hay sè lÎ. H−íng dÉn: §Ó kiÓm tra mét sè nguyªn lµ ch½n hay lÎ cã thÓ sö dông hai c¸ch sau: C¸ch 1: Sö dông hµm odd ®Ó kiÓm tra sè nguyªn võa nhËp lµ ch½n hay lÎ. Hµm nµy tr¶ vÒ gi¸ trÞ TRUE nÕu sè cÇn kiÓm tra lµ lÎ. Hµm tr¶ vÒ gi¸ trÞ FALSE nÕu sè cÇn kiÓm tra lµ ch½n. C¸ch 2: Sö dông phÐp chia lÊy phÇn d− (MOD). LÊy sè cÇn kiÓm tra chia cho 2 lÊy phÇn d−. NÕu phÇn d− b»ng kh«ng th× sè cÇn kiÓm tra lµ sè ch½n. NÕu phÇn d− b»ng 1 th× sè cÇn kiÓm tra lµ sè lÎ. (Bµi gi¶i) (Gi¶i theo c¸ch 1) Program B1C1; Uses crt; Var I:integer; Begin Clrscr; Write(Moi ban nhap mot so nguyen can kiem tra: i = ); Readln(i); If odd(i)=True Then Writeln( So ,i, la so le) Else Writeln( So ,i, la so chan); Readln; End. (Gi¶i theo c¸ch 2) Program B1C2; Uses crt; Var I:integer; Begin Clrscr; Write(Moi ban nhap mot so nguyen can kiem tra: i = ); Readln(i); If i Mod 2 = 0 Then Writeln( So ,i, la so chan) Else Writeln( So ,i, la so le); Readln; End
Tài liệu ôn tập Nhập môn tin học CĐ ĐT K12 Chơng III: Chỉ thị lựa chọn A Bài tập giải mẫu: Bài Viết chơng trình nhập số nguyên từ bàn phím Đa thông báo hình xem số vừa nhập số chẵn hay số lẻ Hớng dẫn: Để kiểm tra số nguyên chẵn hay lẻ sử dụng hai cách sau: - Cách 1: Sử dụng hàm odd để kiểm tra số nguyên vừa nhập chẵn hay lẻ Hàm trả giá trị TRUE số cần kiểm tra lẻ Hàm trả giá trị FALSE số cần kiểm tra chẵn - Cách 2: Sử dụng phép chia lấy phần d (MOD) Lấy số cần kiểm tra chia cho lấy phần d Nếu phần d không số cần kiểm tra số chẵn Nếu phần d số cần kiểm tra số lẻ (*********Bài giải***********) (*********Giải theo cách 1***********) Program B1C1; Uses crt; Var I:integer; Begin Clrscr; Write('Moi ban nhap mot so nguyen can kiem tra: i = '); Readln(i); If odd(i)=True Then Writeln(' So ',i,' la so le') Else Writeln(' So ',i,' la so chan'); Readln; End (**********Giải theo cách 2************) Program B1C2; Uses crt; Var I:integer; Begin Clrscr; Write('Moi ban nhap mot so nguyen can kiem tra: i = '); Readln(i); If i Mod = Then Writeln(' So ',i,' la so chan') Else Writeln(' So ',i,' la so le'); Readln; End Bài Viết chơng trình giải phơng trình bậc ẩn: ax + b = Trong a, b hệ số thực nhập từ bàn phím Đa kết giải đợc hình Hớng dẫn: Để giải phơng trình bậc phải xét hệ số a Nếu hệ số a khác phơng trình có nghiệm x = -b/a Nếu a = phải xét tiếp hệ số b Nếu b = phơng trình có vô số nghiệm Nếu b khác phơng trình vô nghiệm Có hai cách giải: Cách Dùng cấu trúc IF lồng Cách không dùng IF lồng (*******Giải*******) Program B2C1; Uses crt; Var a,b,x:Real; Begin clrscr; Write(' Moi ban nhap he so a = '); Readln(a); Write(' Moi ban nhap he so b = '); Readln(b); if a = then if b = then Writeln(' Phuong trinh da cho vo so nghiem') Else Writeln(' Phuong trinh da cho vo nghiem') Else Begin x:=-b/a; Writeln(' phuong trinh co nghiem la: x = ',x:8:2); End; Readln; End (********Giải theo cách 2**********) Program B2C2; Uses crt; Var a,b,x:Real; Begin Clrscr; Write(' Moi ban nhap he so a = '); Readln(a); Write(' Moi ban nhap he so b = '); Readln(b); If a0 then Begin x:=-b/a; Writeln(' phuong trinh co nghiem la: x = ',x:8:2); End; If (a=0) And (b = 0) then Writeln(' Phuong trinh da cho vo so nghiem'); If (a=0) And (b 0) then Writeln(' Phuong trinh da cho vo nghiem'); Readln; End Bài Viết chơng trình nhập vào số thực a, b, c từ bàn phím Đa số vừa nhập hình Sắp xếp số vừa nhập theo chiều tăng dần Đa số sau xếp hình Hớng dẫn: Để xếp số theo chiều tăng dần ta làm nh sau: Lấy số thứ so sánh với số thứ hai, số thứ hai lớn số thứ tiến hành đổi chỗ số thứ cho số thứ hai, số thứ hai không lớn số thứ không làm Tiếp theo lấy số thứ so sánh với số thứ ba, số thứ ba lớn số thứ tiến hành đổi chỗ số thứ ba cho số thứ nhất, trái lại không làm Cuối lấy số thứ hai so sánh với số thứ ba, số thứ hai lớn số thứ ba tiến hành đổi chỗ thứ ba cho số thứ hai, không không làm (*******Giải*******) Program BT3; Uses Crt; Var a,b,c,tg:Real; Begin Clrscr; Write(' Moi nhap so thu nhat: a = '); Readln(a); Write(' Moi nhap so thu hai: b = '); Readln(b); Write(' Moi nhap so thu ba: c = '); Readln(c); Writeln(' Ba so vua nhap la:',a:8:2,b:8:2,c:8:2); if b>a then Begin tg:=a; a:=b; b:=tg; End; if c>a then Begin tg:=a; a:=c; c:=tg; End; if c>b then Begin tg:=c; c:=b; b:=tg; End; Write(' Ba so sau sap xep la: ',a:8:2,b:8:2,c:8:2); Readln; End Bài Viết chơng trình nhập số thực a, b, c từ bàn phím Hãy tìm giá trị lớn nhỏ số vừa nhập lần lợt gán cho biến Max Min Đa số vừa nhập giá trị Max Min hình Hớng dẫn: Để tìm giá trị Max ta gán Max a, lấy Max so sánh với b Nếu b > Max gán giá trị Max b Cuối lấy Max so sánh với c Nếu c > Max gán Max c Để tìm Min gán Min a, lấy Min so sánh với b Nếu b < Min gán giá trị Min b Cuối lấy Min so sánh với c Nếu c < Min gán Min c (*******Giải********) Program BT4; Uses Crt; Var a,b,c,Min,Max:Real; Begin clrscr; Write(' Moi ban nhap so thu nhat: a = '); Readln(a); Write(' Moi ban nhap so thu hai: b = '); Readln(b); Write(' Moi ban nhap so thu ba: c = '); Readln(c); Min:=a; if Min > b then Min:=b; If Min > c then Min:=c; Max:=a; if Max a + b > c a + c > b b + c > a Nửa chu vi tam giác tính theo công thức: p = (a+b+c)/2; Chu vi tam giác tính theo công thức: cv = 2*p; Diện tích tam giác tính theo công thức: S = p * ( p a ) * ( p b) * ( p c ) Tam giác vuông nếu: a2 = b2 + c2 b2 = a2 + c2 c2 = a2 + b2 Tam giác a = b = c Tam giác cân (a = b) (bc) (a=c) (cb) (b = c) và(ca) (*********Giải**********) Program BT6; Uses crt; Var a,b,c,p,s:real; Begin clrscr; Write(' Moi nhap so thu nhat: a = '); Readln(a); Write(' Moi nhap so thu hai: b = '); Readln(b); Write(' Moi nhap so thu ba: c = '); Readln(c); if(a>0)And(b>0)And(c>0)And(a+b>c)And(a+c>b)And(b+c>a) then Begin p:=(a+b+c)/2; S:=sqrt(p*(p-a)*(p-b)*(p-c)); Writeln('Dien tich cua tam giac la:',S:8:2); Writeln('Chu vi cua tam giac la:',2*p:8:2); if(a=b)and(b=c) then Writeln('Day la tam giac deu') else if (a*a=b*b+c*c)or(b*b=c*c+a*a)or(c*c=a*a+b*b) then Writeln('Day la tam giac vuong') else if((a=b)and(bc))or((a=c)and(cb))or((b=c)and(ca))then Writeln('Day la tam giac can') else Write('Day la tam giac thuong'); End else Write('Day khong phai la ba canh cua tam giac'); Readln; End Bài Lập trình đọc vào hai số a b tính y = 15x2 + x + 72, a+b x = 15,172 a-b a2 b2 + Nếu a < b Nếu a = b Nếu a > b (*******Giải*******) Program BT7; Uses Crt; Var a,b,x,y:real; Begin clrscr; Write('Moi nhap so a = '); Readln(a); Write('Moi nhap so b = '); Readln(b); if a=điểm>=0) Sau đa hình điểm chữ sinh viên đo Biết điểm F từ đến 3,9; điểm D từ đến 5,4; điểm C từ 5.5 đến 6,9; điểm B từ đến 8.4; điểm A từ 8.5 đến 10 Bi Viết chơng trình giải phơng trình bậc ẩn: ax2 + bx+x = Trong a, b,c hệ số thực nhập từ bàn phím Đa kết giải đợc hình Bi Viết chơng trình giải phơng trình bậc ẩn: ax + b = Trong a, b hệ số thực nhập từ bàn phím Đa kết giải đợc hình Chơng IV: Cấu trúc lặp A Bài tập giải mẫu Bài Viết chơng trình tính tổng sau: S = + + + + + n Với n nguyên dơng nhập từ bàn phím Đa kết tính đợc hình Hớng dẫn: Đây toán kiểu tính tổng tích luỹ, tức giá trị tổng sinh giá trị tổng cũ cộng thêm giá trị Đối với toán bên tổng tổg cũ lần lợt cộng với 1, 2, 3, 4, , n Với giá trị tổng ban đầu đợc gán (*********Giải*********) Program BT1; Uses Crt; Var i,n,S:Integer; Begin clrscr; Write(' Moi ban nhap gia tri cua n: '); Readln(n); S:=0; for i:=1 to n S:=S+i; Write('Gia tri cua tong ',n,' so nguyen duong dau tien la: ',s); Readln; End Bài Viết chơng trình nhập số nguyên không âm từ bàn phím Nếu ngời sử dụng nhập số âm chơng trình phải yêu cầu ngời sử dụng nhập lại nhập đợc số nguyên không âm Sau tính giai thừa n Đa kết tính đợc hình Readln; End Bài Một xâu đợc gọi xâu chuẩn, đầu cuối xâu dấu cách đồng thời xâu hai dấu cách kề nhau.Lập trình đọc vào xâu đa hai xâu dạng chuẩn.Đa hai xâu hình Program BT2; Uses crt; Var cau:string; i:byte; Begin clrscr; Write('Cho vao mot cau khong qua 250 ky tu:'); Readln(cau); Clrscr; Writeln('Cau ban dau:',cau); {Chuẩn hoá câu} {Xoá dấu cách đầu câu} While cau[1]=' ' delete(cau,1,1); {Xoá dấu cách cuối câu} While cau[length(cau)]=' ' delete(cau,length(cau),1); {Xoá dấu cách cạch câu} i:=1; While (i[...]... phím.Sau đó thực hiện công việc sau: - Đa dãy va nhập ra màn hình - Nhập thêm một số nguyên x từ bàn phím Kiểm tra xem số x vừa nhập có trong dãy hay không Nếu không có thì đa ra thông báo số vừa nhập không có trong dãy Chơng VI : Dữ liệu kiểu xâu A Bài tập giải mẫu Bài 1: Lập trình đọc vào một câu(ít hơn 30 ký tự)từ bàn phím rồi đếm xem trong câu có mấy từ.Từ đợc hiểu là xâu khác rỗng không chứa dấu cách... thông tin của mỗi thí sinh vừa nhập ra màn hình} clrscr; gotoxy(20,2); Write('THONG TIN VE CAC THI SINH VUA NHAP'); gotoxy(1,5); Writeln('STT':5,' Ho va ten sinh':10,'DT':6,'DL':6,'DH':6,'TD':8); ':30,'Nam for i:=1 to n do With TS[i] do Writeln(i:4,ht:25,ns:15,dt:8:2,dl:6:2,dh:6:2,td:8:2); writeln; writeln; Write('Moi ban bam phim bat ki de xem thong tin thi sinh trung tuyen'); Readln; {Đa thông tin. .. điểm = điểm toán + điểm lý + điểm hoá) Sau đó thực hiện các công việc sau - Tính tổng điểm cho các thí sinh - Đa danh sách thí sinh vừa nhập ra màn hình ra màn hình với yêu cầu thông tin của mỗi thí sinh trên một dòng - Đa ra màn hình những thí sinh trúng tuyển Biết rằng thí sinh trúng tuyển là các thí sinh có tổng điểm không nhỏ hơn 15 và không có điểm nào trong 3 điểm = 0 (**********Giải**********)... Write('Moi ban nhap so thi sinh: n = '); Readln(n); {Nhập thông tin cho các sinh viên} For i:=1 to n do With SV[i] do Begin Write('Moi nhap ho ten cho sinh vien thu ',i,' :'); Readln(ht); Write('Moi nhap nam sinh cho sinh vien thu ',i,' :'); Readln(ns); End; clrscr; {đa thông tin các thí sinh vừa nhập ra màn hình} gotoxy(20,2); Write('THONG TIN VE CAC SINH VIEN VUA NHAP'); gotoxy(1,5); Writeln('STT':20,'... phim bat ki de xem thong tin SV nhieu tuoi nhat'); Readln; {Đa ra màn hình thông tin các sinh viên lớn tuổi nhất} clrscr; gotoxy(20,2); Write('HO TEN CUA CAC THI SINH NHIEU TUOI NHAT'); Writeln; Writeln; for i:=1 to n do With SV[i] do if ns=min then Writeln(ht); Writeln; Writeln; Write('Moi ban bam Enter de tiep tuc'); Readln; End B Bài tập tự giải Chơng VIII Chơng trình con A Bài tập giải mẫu Bài 1 Cho... B Bài tập tự giải Bài 1 Đọc vào k số nguyên từ bàn phím (10 ... crt; Cau: String; l,i:byte; Begin clrscr; Write('Moi ban nhap vao mot cau: cau='); Readln (cau) ; cau: =cau+ ' '; Writeln('Moi tu cua cau vua nhap tren dong la:'); L:=length (cau) ; For i:=1 to l-1 if (cau[ i]'... crt; cau: String; i,l,d:byte; ch:char; Begin clrscr; Write('Moi nhap mot cau tu ban phim:'); Readln (cau) ; Writeln( 'Cau vau nhap la:' ,cau) ; {Đếm số từ câu} cau: =cau+ ' '; d:=0; l:=length (cau) ;... Var cau: String; l,i:byte; Begin clrscr; Write('Moi ban nhap vao mot cau: cau='); Readln (cau) ; l:=length (cau) ; for i:=1 to l if cau[ i]' ' then Write (cau[ i]) else Writeln; Writeln; Writeln('Moi nhap