ĐỀ CƯƠNG NHẬP MÔN TIN HỌC Câu 1 Viết chương trình thực hiện các công việc sau: 1.. Câu 4 Viết chương trình thực hiện các công việc sau: 1.. Câu 5 Viết chương trình thực hiện các công v
Trang 1ĐỀ CƯƠNG NHẬP MÔN TIN HỌC
Câu 1
Viết chương trình thực hiện các công việc sau:
1 Nhập một số nguyên dương n.
2 Đổi số n ra số nhị phân tương ứng.
3 Hiển thị kết quả.
*****Giải*****
Program cau1;
Uses crt;
Var st,st1:string;
n,i:integer;
Begin
clrscr;
write(‘nhap so nguyen duong n=’);
readln(n);
st:=’’;
while n>0 do
begin
str(n mod 2,st1);
st:=st+st1;
n:=n div 2;
end;
for i:=length(st) downto 1 do write(st[i]);
readln;
End.
Câu 2
Cho dãy Fibonaci xác định như sau:
F 0 =0, F 1 =1, F n = F n-1 + F n-2 , với n >= 2
Viết chương trình thực hiện các công việc sau:
1 Nhập n nguyên > 0.
2 Tính S = F 0 + F 1 + F 2 + + F n
3 In kết quả S ra màn hình.
*****Giải*****
Program cau2;
Uses crt;
Var n,i,s:integer;
x:array[0 100] of integer;
Begin
Trang 2clrscr;
write(‘nhap so nguyen duong n=’);
readln(n);
x[0]:=0;
x[1]:=1;
s:=x[0]+x[1];
for i:=2 to n do
x[i]:=x[i-1]+x[i-2];
i:=i+1;
for i:=2 to n do
if x[i]=x[i-1]+x[i-2] then s:=s+x[i];
writeln(‘tong s=’,s);
readln;
Câu 3
Viết chương trình thực hiện các công việc sau:
1 Nhập n nguyên > 0.
2 Tính S là tổng của N số nguyên tố đầu tiên.
3 In kết quả S ra màn hình.
*****Giải*****
Program cau3;
Var n,i,dem,s:integer;
Function kt(j:integer):boolean;
var i:integer;
begin
kt:=false;
for i:=2 to trunc(sqrt(j)) do
if j mod i =0 then exit;
kt:=true;
end;
Begin
write(‘nhap n=’);
readln(n);
s:=0;
dem:=0;
i:=2
while dem<n do
begin
if kt(i) then
begin
inc(dem);
s:=s+i;
end;
Trang 3inc(i);
end;
writeln(‘tong ‘,n,’ so nguyen to dau tien la:’,s);
readln;
End.
Câu 4
Viết chương trình thực hiện các công việc sau:
1 Nhập một chuỗi St
Đếm xem trong St có bao nhiêu:
- Chữ cái A, B, C, , Z (không phân biệt chữ hoa, thường).
- Chữ số 0, 1, , 9.
- Kí tự trắng.
- Các kí tự khác.
Trong bốn loại trên loại nào nhiều nhất?
*****Giải*****
Program cau4;
Uses crt;
Var i,a,b,c,d : integer;
st:string;
Begin
clrcsr;
write(‘nhap chuoi st:’);
readln(st);
a:=0;
b:=0;
c:=0;
d:=0;
for i:=1 to length(st) do
Case st[i] of
‘A’ ’Z’ : a:=a+1;
‘a’ ’z’ : a:=a+1;
‘0’ ’9’ : b:=b+1;
‘ ’ : c:=c+1
Else d:=d+1;
End;
Writeln(‘so luong chu cai la:’,a);
Writeln(‘so luong chu so la:’,b);
Writeln(‘so luong ki tu trang la:’,c);
Writeln(‘so luong ki tu khac:’,d);
If (a>b) and (a>c) and (a>d) then write(‘chu cai nhieu nhat’);
If (b>a) and (b>c) and (b>d) then write(‘chu so nhieu nhat’);
If (c>a) and (c>b) and (c>d) then write(‘ki tu trang nhieu nhat’);
If (d>a) and (d>b) and (d>c) then write(‘ki tu khac nhieu nhat’);
Readln;
Trang 4Câu 5
Viết chương trình thực hiện các công việc sau:
1 Nhập một danh sách gồm n tên sinh viên (n nhập từ bàn phím).
2 Đổi các tên sang chữ hoa.
3 Sắp xếp và in ra màn hình theo thứ tự A, B, C,
Ví dụ nhập năm tên: lan, an, anh, thanh, bich, in ra : AN, ANH, BICH, LAN, THANH
*****Giải*****
Program cau5;
Uses crt;
Var n, i, j : integer;
st, tg : string;
Begin
clrscr;
write(‘nhap so sinh vien:’);
readln(n);
for i:=1 to n do
begin
write(‘nhap ten sinh vien thu ‘,i,’:’);
readln(st[i]);
end;
for i:=1 to n-1 do
for j:=i+1 to n do
if st[i]>st[j] then
begin
tg:=st[i];
st[i]:=st[j];
st[j]:=tg;
end;
writeln(‘danh sach sinh vien la:’);
for i:=1 to n do
begin
for j:=1 to length(st[i]) do st[i][j]:=upcase(st[i][j]);
write(st[i]:8);
end;
readln;
End.
Câu 6
Viết chương trình thực hiện các công việc sau:
1 Nhập một số nguyên dương n và một dãy số nguyên dương x 1 , x 2 , , x n
2 Xây dựng dãy A là các số chẵn của dãy x.
3 Hiển thị hai dãy x, A ra màn hình, mỗi dãy trên một dòng.
Trang 5*****Giải****
Program cau6;
Uses crt;
Var n,i:integer;
x:array[1 100] of integer;
Begin
clrcsr;
write(‘nhap so nguyen duong n=’);
readln(n);
for i:=1 to n do
begin
write(‘x[‘,i,’]=’);
readln(x[i]);
end;
write(‘day x la:’);
for i:=1 to n do write(x[i]:4);
writeln;
write(‘day A gom cac so chan la:’);
for i:=1 to n do
if x[i] mod 2 =0 then write(x[i]:4);
readln;
End.
Câu 7
Viết chương trình thực hiện các công việc sau:
1 Nhập một số nguyên dương n và một dãy số nguyên dương x 1 , x 2 , , x n
2 Xây dựng dãy A là các số lẻ của dãy x.
3 Hiển thị hai dãy x, A ra màn hình, mỗi dãy trên một dòng.
*****Giải****
Program cau7;
Uses crt;
Var n,i:integer;
x:array[1 100] of integer;
Begin
clrscr;
write(‘nhap so nguyen duong n=’);
readln(n);
for i:=1 to n do
begin
write(‘x[‘,i,’]=’);
readln(x[i]);
end;
wite(‘day x la:’);
for i:=1 to n do write(x[i]:4);
writeln;
Trang 6write(‘day A gom cac so le la:’);
for i:=1 to n do
if x[i] mod 2<>0 then write(x[i]:4);
readln;
End.
Câu 8
Viết chương trình thực hiện các công việc sau:
1 Nhập một chuỗi St
2 Xây dựng chuỗi St1 là các ký tự của chuỗi St nhưng đảo ngược thứ tự
3 Đổi chuỗi St thành chữ hoa.
4 Đổi chuỗi St1 thành chữ thường.
Ví dụ cho St=‘AbcD12’, thì St1=‘21DcbA’, sau khi đổi ta được St= ‘ABCD12’ và St1=‘21dcba’.
*****Giải****
Program cau8;
Uses crt;
Var st,st1:string;
i:integer;
Begin
clrscr;
write(‘nhap chuoi st:’);
readln(st);
st1:=’’;
for i:=length(st) downto 1 do st1:=st1+st[i];
writeln(‘chuoi st1 la:’,st1);
for i:=1 to length(st) do st[i]:=upcase(st[i]);
write(‘chuoi st chu hoa la:’);
for i:=1 to length(st[i]) do writeln(st);
for i:=1 to length(st1) do
if (st1[i]>=’A’) and (st1[i]<=’Z’) then
st1[i]:=chr(ord(st1[i])+32);
write(‘chuoi st1 chu thuong la:’);
for i:=1 to length(st1[i]) do write(st1);
readln;
End.
Câu 9
Viết chương trình thực hiện các công việc sau:
1 Nhập một chuỗi St.
2 Xóa bỏ các kí tự trắng thừa ở đầu chuỗi St.
3 Xóa bỏ các kí tự trắng thừa ở cuối chuỗi St.
4 Xóa bỏ các kí tự trắng của chuỗi St sao cho giữa hai từ chỉ có một đúng một kí tự trắng.
5.Đổi chuỗi St thành chữ thường,riêng các chữ đầu từ thành chữ hoa.
Trang 7Các câu lệnh
while st[1]=' ' do delete(st,1,1); {dùng để xoá kí tự trắng ở đầu chuỗi}
while st[length(st)]=' ' do delete(st,length(st),1) {dùng để
xoá kí tự trắng ở cuối chuỗi}
while pos(#32#32,st)<>0 do delete(st,pos(#32#32,st),1);
{ #32 là dấu cách, tìm các vị trị có 2 dấu cách liên tiếp và xoá đ
i 1 cái }
for i:=1 to length(st) do if s[i]=#32 then s[i+1]:=upcase(s[i+1]); {dùng để đổi các chữ đầu thành chữ hoa}
*****Giải****
Program cau9;
Uses crt;
Var st:string;
i,k:integer;
Begin
clrscr;
write(‘nhap chuoi st:’);
readln(st);
while st[1]=#32 do delete(st,1,1);
while st[length(st)]=#32 do delete(st,length(st),1);
k:=pos(‘ ‘,st); {(‘ ‘,st) la (‘2dau cach’,st)}
while k>0 do
begin
delete(st,k,1);
k:=pos(‘ ‘,st);
end;
for i:=1 to length(st) do
if (st[i]>=’A’) and (st[i]<=’Z’) then st[i]:=chr(ord(st[i])+32);
write(‘chuoi st sau khi doi la:’);
for i:=1 to length(st) do
if st[i]=#32 then st[i+1]:=upcase(st[i+1]);
st[1]:=upcase(st[1]);
write(st);
readln;
End.
Câu 10
Viết chương trình thực hiện các công việc sau:
1 Nhập một chuỗi St.
Trang 82 Kiểm tra tính đối xứng của chuỗi In kết quả ra màn hình.
Ví dụ: các chuỗi ‘BCD1DCB’ và ‘ABCCBA’ là đối xứng, còn ‘ABCDBA’ là không đối xứng.
*****Giải****
Program cau10;
Uses crt;
Var st:string;
i:integer;
kt:Boolean;
Begin
clrscr;
write(‘nhap chuoi st:’);
readln(st);
kt:=true;
for i:=1 to length(st) do
if st[i]<>st[length(st)-i+1] then kt:=false;
if kt=false then write(‘chuoi st khong doi xung’)
else write(‘chuoi st doi xung’);
readln;
End.
Câu 11
Viết chương trình thực hiện các công việc sau:
1 Nhập một chuỗi St.
2 Đếm xem trong chuỗi có bao nhiêu chữ a không phân biệt viết hoa hay viết thường.
3 In ra màn hình các vị trí xuất hiện chữ a đó.
Ví dụ St=‘Anh van la quan trong’ có 4 chữ a tại các vị trí 1, 6, 10, 14.
*****Giải****
Program cau11;
Uses crt;
Var st:string;
i,dem:integer;
Begin
Clrscr;
write(‘nhap chuoi st:’);
readln(st);
dem:=0;
for i:=1 to length(st) do
if (copy(st,i,1)=’a’) or (copy(st,i,1)=’A’) then dem:=dem+1;
if dem=0 then writeln(‘chuoi khong co chu a’)
Trang 9else
begin
writeln(‘chuoi st co ‘,dem,’ chu a’);
write(‘xuat hien tai vi tri:’);
for i:=1 to length(st) do
if (copy(st,i,1)=’a’) or (copy(st,i,1)=’A’) then write(i:5);
end;
readln;
End.
Câu 12
Viết chương trình thực hiện các công việc sau:
1 Nhập hai chuỗi St và St1.
2 Đếm xem chuỗi St1 xuất hiện mấy lần trong chuỗi St.
3 In ra màn hình các vị trí xuất hiện chuỗi St1 trong chuỗi St.
Ví dụ St=‘pas12pas34’, chuỗi St1 =‘pas’ xuất hiện 2 lần tại các vị trí 1, 6.
*****Giải****
Program cau12;
Uses crt;
Var st,st1:string;
i,dem:integer;
Begin
Clrscr;
write(‘nhap chuoi st:’);
readln(st);
write(‘nhap chuoi st1:’);
readln(st1);
dem:=0;
for i:=1 to length(st) do
if (copy(st,i,length(st1))=st1 then dem:=dem+1;
if dem=0 then writeln(‘chuoi st1 khong xuat hien trong chuoi st’)
else
begin
writeln(‘chuoi ‘,st1 ,’ xuat hien ‘,dem,’ lan trng chuoi st’);
write(‘xuat hien tai vi tri:’);
for i:=1 to length(st) do
if (copy(st,i,length(st1))=st1) then write(i:5);
end;
readln;
End.
Câu 13
Trang 10Viết chương trình thực hiện các công việc sau:
1 Nhập ba chuỗi St, St1, St2.
2 Tìm xem chuỗi St có chứa chuỗi St1 không? In thông báo ra màn hình.
3 Nếu chuỗi St có chứa chuỗi St1 thì thay thế chuỗi St1 trong St bằng chuỗi St2.
Ví dụ: cho St=‘ABC1234E’, St1=‘1234’ và St2 =‘*’ Sau khi thay thế ta được St=‘ABC*E’.
*****Giải****
Program cau13;
Uses crt;
Var st,st1,st2:string;
i:integer;
Begin
Clrscr;
write(‘nhap chuoi st:’);
readln(st);
write(‘nhap chuoi st1:’);
readln(st1);
write(‘nhap chuoi st2:’);
readln(st2);
i:=pos(st1,st);
if i>0 then
begin
writeln(‘chuoi st chua chuoi st1’);
delete(st,i,length(st1));
insert(st2,st,i);
writeln(‘chuoi st moi la:’,st);
end
else write(‘chuoi st khong chua chuoi st1’);
readln;
End.
Câu 14
Viết chương trình thực hiện các công việc sau:
1 Viết một hàm tính k! với k nguyên dương bất kì.
2 Nhập 2 số nguyên dương n, k từ bàn phím (có kiểm tra điều kiện n k 0)
3 Sử dụng hàm tính k! (câu 1) để tính số tổ hợp chập k của n theo công thức:
4 In kết quả C n k ra màn hình.
*****Giải****
Program cau14;
Var n,k:integer;
Trang 11tohop:real;
Function gt(k:integer):longint;
var i,g:integer;
begin
g:=1;
for i:=1 to k do g:=g*i;
gt:=g;
end;
Begin
write(‘nhap n=’);
readln(n);
repeat
write(‘nhap k=’);
readln(k);
until (k>=0) and (k<=n);
tohop:=gt(n)/(gt(k)*gt(n-k));
write(‘to hop chap ‘,k,’ cua ‘,n,’ la:’,tohop:6:0);
readln;
End.
Câu 15
Viết chương trình thực hiện các công việc sau:
1 Viết một hàm LT(x, k) để tính lũy thừa x k của số thực x bất kì với k nguyên dương.
2 Viết một hàm GT(k) để tính k! với k nguyên dương.
3 Nhập số thực x và số n nguyên dương Sử dụng hàm LT(x, k) và hàm GT(k) để tính gần đúng:
4 In kết quả S ra màn hình.
*****Giải****
Program cau15;
Var n,i:integer;
S,x:real;
Function Lt(x:real;k:byte):real;
var i:integer ; L:real;
begin
L:=1;
for i:=1 to k do L:=L*i;
Lt:=L;
end;
Function gt(k:byte):real;
var i,g:integer ; g:real;
begin
g:=1;
for i:=1 to k do g:=g*i;
Trang 12gt:=g;
end;
Begin
write(‘nhap n=’);
readln(n);
write(‘nhap x=’);
readln(x);
s:=1;
for i:=1 to n do
s:=s+Lt(x,i)/gt(i);
write(‘EXP^x=’,s:0:3);
readln;
End
Câu 16
Viết chương trình thực hiện các công việc sau:
1 Nhập số tự nhiên n và một dãy số thực x 1 , x 2 , , x n
2 Tìm số lớn nhất trong dãy số x i (với i = 1 n).
3 Tìm số nhỏ nhất trong dãy số x i (với i = 1 n).
*****Giải****
Program cau16;
Uses crt;
Var n,i,max,min:integer;
x:array[1 100] of integer;
Begin
clrscr;
write(‘nhap so tu nhien n=’);
readln(n);
for i:=1 to n do
begin
write(‘x[‘,i,’]=’);
readln(x[i]);
end;
write(‘day x la:’);
for i:=1 to n do write(x[i]:4);
writeln;
max:=x[1];
min:=x[1];
for i:=1 to n do
begin
if max<x[i] then max:=x[i];
if min>x[i] then min:=x[i];
end;
Trang 13writeln(‘so lon nhat day la:’,max);
writeln(‘so nho nhat day la:’,min);
readln;
End.
Câu 17
Viết chương trình thực hiện các công việc sau:
1 Nhập số tự nhiên n và một dãy số thực x 1 , x 2 , , x n
2 Ðếm xem trong dãy số x i (với i = 1 n) có:Bao nhiêu số dương?Bao nhiêu số âm? Bao nhiêu số 0 ? Số lượng loại nào nhiều nhất ?
*****Giải****
Program cau17;
Uses crt;
Var n,i,a,b,c:integer;
x:array[1 100] of integer;
Begin
clrscr;
write(‘nhap so tu nhien n=’);
readln(n);
write(‘nhap day x:’);
for i:=1 to n do
begin
write(‘x[‘,i,’]=’);
readln(x[i]);
end;
write(‘day x la:’);
for i:=1 to n do write(x[i]:4);
writeln;
a:=0;
b:=0;
c:=0;
for i:=1 to n do
begin
if x[i]>0 then a:=a+1;
if x[i]<0 then b:=b+1;
if x[i]=0 then c:=c+1;
end;
writeln(‘co ‘,a,’ so duong’);
writeln(‘co ‘,b,’ so am’);
writeln(‘co ‘,c,’ so 0’);
if (a>b) and (a>c) then write(‘so duong nhieu nhat’);
if (b>a) and (b>c) then write(‘so am nhieu nhat’);
if (c>a) and (c>b) then write(‘so 0 nhieu nhat’);
readln;
Trang 14Câu 18
Viết chương trình thực hiện các công việc sau:
1,Nhập một số nguyên dương n và một dãy số nguyên x 1 , x 2 , , x n
2, Hiển thị kết quả trên màn hình:
- Các số chẵn trong dãy số x i (với i = 1 n)
- Các số lẻ trong dãy số x i (với i = 1 n).yêu cầu mỗi loại trên một dòng
*****Giải****
Program cau18;
Uses crt;
Var n,i:integer;
x:array[1 100] of integer;
Begin
clrscr;
write(‘nhap so nguyen duong n=’);
readln(n);
write(‘nhap day x:’);
for i:=1 to n do
begin
write(‘x[‘,i,’]=’);
readln(x[i]);
end;
write(‘day x la:’);
for i:=1 to n do write(x[i]:4);
writeln;
write(‘cac so chan cua day la:’);
for i:=1 to n do
if x[i] mod 2 = 0 then write(x[i]:4);
writeln;
write(‘cac so le cua day la:’);
for i:=1 to n do
if x[i] mod 2<>0 then write(x[i]:4);
readln;
End.
Câu 19
Viết chương trình thực hiện các công việc sau:
1 Nhập một số nguyên dương n
2 Xây dựng dãy số xi (với i = 0 n) là dãy Fibonaci trong đó x0=1, x1=1 và xi được tính theo công thức xi =xi-1 + xi-2 (với i = 2 n)
3 Hiển thị dãy số xi (với i = 0 n) ra màn hình
*****Giải****
Program cau19;