Tải bản đầy đủ (.docx) (10 trang)

tai lieu pascal

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (146.13 KB, 10 trang )

BÀI TẬP TIN HỌC ÔN HSG
* Cách sử dụng biến file:
Nhập số nguyên n. Tính độ dày và độ cao của n. ĐỘ dày là s61 chữ
số của n. Độ cao tổng các chữ số của n.
Dữ liệu vào từ file so.inp
Dữ liệu ra: ghi ra màn hình kết quả:

Dữ liệu vào
234

Ghi ra màn hình
3
9

uses crt;
var s:string;
i,n,tong,so,code:integer;
fi:text;
begin
clrscr;
assign(fi,'d:\SO.INP');
reset(fi);
readln(fi,n);
str(n,s);
writeln('do day cua n la:',length(s));
tong:=0;
for i:=1 to length(s) do
begin
val(s[i],so,code); tong:=tong+so;
end;
writeln('do cao cua n la:',tong);


close(fi);
readln;
end.
Nhập số nguyên n. Tính độ dày và độ cao của n. ĐỘ dày là s61 chữ
số của n. Độ cao tổng các chữ số của n.
Tạo 2 file lưu dữ liệu vào và kết quả:
Dữ liệu vào từ file so.inp
Dữ liệu ra: ghi ra màn hình kết quả:

So.inp
234

Souot.inp
do day cua n la:3
do cao cua n la:9

uses crt;
var s:string;
i,n,tong,so,code:integer;
fi,fo:text;
begin
clrscr;
assign(fi,'d:\SO.INP');
rewrite(fi);


write('nhap n:');readln(n); writeln(fi,n);
assign(fo,'d:\SOOUT.INP');
rewrite(fo);
str(n,s);

writeln(fo,'do day cua n la:',length(s));
tong:=0;
for i:=1 to length(s) do
begin
val(s[i],so,code);
tong:=tong+so;
end;
writeln(fo,'do cao cua n la:',tong);
close(fi);
close(fo);
readln;
end.
Tìm và in ra các số nguyên tố trong dãy số và số lượng số nguyên
tố tìm được.
uses crt;
var x,n,i,dem:integer;
a:array[1..50]of integer;
function kt(x:integer):integer;
var i,dem:integer;
begin
dem:=0;
if x<2 then kt:=1
else
begin
for i:=2 to x-1 do
if x mod i=0 then inc(dem);
kt:=dem;
end;
end;
begin

clrscr;
write('nhap n:');readln(n);
for i:=1 to n do
begin
write('a[',i,']='); readln(a[i]);
end;
write('cac so nguyen to trong day la:');
dem:=0;
for i:=1 to n do
if kt(a[i])=0 then
begin
inc(dem); write(a[i]:5);
end;
writeln;


writeln('co ' ,dem, 'so nguyen to ');
readln;
end.
Tìm và in ra các số nguyên tố trong dãy số và số lượng số nguyên
tố tìm được.Dữ liệu vào từ file so.inp.
So.inp
Kết quả in ra màn hình
5
cac so nguyen to trong day la: 5 11 7
4 5 11 1 7
co 3 so nguyen to
uses crt;
var x,n,i,dem:integer;
a:array[1..50]of integer;

fi:text;
function kt(x:integer):integer;
var i,dem:integer;
begin
dem:=0;
if x<2 then kt:=1
else
begin
for i:=2 to x-1 do
if x mod i=0 then inc(dem);
kt:=dem;
end;
end;
begin
clrscr;
assign(fi,'d:\so.inp');
reset(fi);
readln(fi,n);
i:=1;
while not eof(fi) do
begin
read(fi,a[i]); inc(i);
end;
write('cac so nguyen to trong day la:');
dem:=0;
for i:=1 to n do
if kt(a[i])=0 then
begin
inc(dem); write(a[i]:5);
end;

writeln;
writeln('co ' ,dem, 'so nguyen to ');
close(fi);
readln;
end.


Tính tổng các con số trong chuỗi. VD: abc23h6nb12  tổng là 41 có 3 con số.
program vd;
uses crt;
var s,x:string ;
i,t,code,tong,dem:integer;
begin
clrscr;
write('Nhap xau s: ');
readln(s);
i:=1;dem:=0;tong:=0;
while i<=length(s) do
begin
x:='';
while s[i] in['0'..'9'] do
begin
x:=x+s[i]; inc(i);
end;
if length(x)<>0 then
begin
val(x,t,code); tong:=tong+t;
inc(dem);
end
else inc(i);

end;
writeln('Co ',dem,' con so trong chuoi');
writeln('Tong cac con so trong chuoi: ',tong);
readln;
end.

Ôn tập
Dạng 1:
Bài 1: KiỂm tra xem số nguyên n có là số nguyên tố hay khơng?
Bài 2: KiỂm tra xem số ngun n có là số hồn thiện hay khơng? Số hồn thiện là số có tổng
các ước của nó (ko kể chính nó) bằng chính nó.
Bài 3: Tính luỹ thừa xn?
Bài 4: Độ dày và độ cao của n.
Bài 5: Nhập số tự nhiên n,n có là số hồn thiện hay khơng? Số hồn thiện là số có tổng các ước
của nó (ko kể chính nó) bằng chính nó. In ra tất cả các số hoàn thiện nhỏ hơn hoặc bằng n.
Bài 6: Nhập số tự nhiên n, cho biết n có là số nguyên tố hay không?
In ra tất cả các số nguyên tố nhỏ hơn hoặc bằng n.

Dạng 2:
Bài 1: Nhập vào 1 xâu s. Kiềm tra xem s có bao nhiêu chữ số. Tổng các chữ số?
VD: s= ‘ab27e9’ tổng là 2+7+9=18 có 3 chữ số.
Bài 2: Nhập vào 1 xâu s. Kiềm tra xem s có bao nhiêu chữ cái?
VD: s= ‘ab27ed>9’  có 4 chữ cái.
Bài 3: Nhập vào 1 xâu s. In ra màn hình các chữ số là số nguyên tố trong xâu.
VD: s= ‘ab27e98’ có 2 chữ số nguyên tố là 2 và 7.
Bài 4: Xoá các kí tự trắng thừa trong xâu.


Dạng 3:
Bài 1: Nhập vào danh sách lớp học gồm họ tên, tuoi, diachi, diem toan, diem ly.

Tính điểm TB và xếp loại học sinh trong lớp. In ra danh sách học sinh. Sắp xếp và in ra danh
sách học sinh theo thứ tự tăng dần. In ra màn hình danh sách các học sinh có điểm TB >5.
Dạng 4:
Nhập vào dãy số gồm n số nguyên.
a. Tính tổng các phần tử trong dãy số.
b. Tìm số lớn nhất, nhỏ nhất và vị trí của nó.
c. Tìm số lớn nhất, nhỏ nhất.
d. Sắp xếp dãy số theo thứ tự tăng dần.
e. Sắp xếp dãy số theo thứ tự giảm dần.
f. Tìm xem số X có xuất hiện trong dãy số hay khơng?tại vị trí nào?
g. Chèn phần tử X tại vị trí thứ k.
***************
Nhập vào dãy số nguyên gồm n phần tử ( 0<=k<=100). TÌm và in ra số lớn nhất, số bé
nhất và vị trí của nó.
uses crt;
var i,n,vtmin,vtmax,min,max:integer;
a:array[1..50]of integer;
begin
clrscr;
repeat
write('nhap day so nguyen:');readln(n);
until (0<=n)and(n<=100);
for i:=1 to n do
begin
write('a[',i,']=');readln(a[i]);
end;
min:=a[1]; vtmin:=1;
for i:=2 to n do
if min>a[i] then
begin

min:=a[i]; vtmin:=i;
end;
write('so nho nhat la:',min,'vi tri la:',vtmin);
max:=a[1]; vtmax:=1;
for i:=2 to n do
if maxbegin
max:=a[i]; vtmax:=i;
end;
write('so lon nhat la:',max,'vi tri la:',vtmax);
readln;
end.
In ra các chữ số là số nguyên tố trong xâu: VD:ad23gfgf789 có 2,3,7 là số nguyên tố.
uses crt;


var s:string;
i,j,n,dem,so,code,d:integer;
begin
clrscr;
repeat
write('nhap xau ki tu:');readln(s);
until length(s)<=255;
d:=0;
for i:=1 to length(s) do
if s[i] in ['0'..'9'] then
begin
val(s[i],so,code); dem:=0;
for j:=2 to so-1 do
if so mod j=0 then inc(dem);

if dem=0 then
begin
writeln(so, ' la so nguyen to ');
d:=d+1;
end;
end;
writeln('Co',d, 'so nguyen to trong xau');
readln;
end.
Bài 1: Nhập dãy số nguyên gồm n số. Tìm số nhỏ nhất trong dãy số.
uses crt;
var a:array[1..50]of integer;
n,i,min:integer;
begin
clrscr;
write('nhap n:');readln(n);
 nhập số phần tử
for i:=1 to n do
begin
write('a[' ,i ,']='); readln(a[i]);
 nhập từng phần tử
end;
writeln('day so sau khi nhap:');
for i:=1 to n do write(a[i]:5);
 xuất các phần tử dãy số
writeln;
min:=a[1];
for i:=2 to n do
if min >a[i] then min:=a[i];
 tìm số nhỏ nhất

writeln('so nho nhat la:', min);
readln;
end.
Bài 2: Nhập dãy số nguyên gồm n số. Tìm số lớn nhất trong dãy số.
uses crt;
var a:array[1..50]of integer;
n,i,max:integer;
begin
clrscr;
write('nhap n:');readln(n);
 nhập số phần tử


for i:=1 to n do
begin
write('a[' ,i ,']='); readln(a[i]);
 nhập từng phần tử
end;
writeln('day so sau khi nhap:');
for i:=1 to n do write(a[i]:5);
 xuất các phần tử dãy số
writeln;
max:=a[1];
for i:=2 to n do
if max  tìm số lớn nhất
writeln('so lon nhat la:', max);
readln;
end.
Bài 3: Nhập dãy số nguyên gồm n số. Sắp xếp dãy số theo chiều tăng dần.

uses crt;
var a:array[1..50]of integer;
n,i,j,tam:integer;
begin
clrscr;
write('nhap n:');readln(n);
 nhập số phần tử
for i:=1 to n do
begin
write('a[' ,i ,']='); readln(a[i]);
 nhập từng phần tử
end;
writeln('day so sau khi nhap:');
for i:=1 to n do write(a[i]:5);
 xuất các phần tử dãy số
writeln;
for i:= 1 to n-1 do
for j:=i to n do
if a[i]>a[j] then
begin
 sắp xếp
tam:=a[i];
a[i]:=a[j];
a[j]:=tam;
end;
writeln('day so sau sap xep tang dan:');
for i:=1 to n do write(a[i]:5);
readln;
end.
Bài 4: Nhập dãy số nguyên gồm n số. Sắp xếp dãy số theo chiều giảm dần.

uses crt;
var a:array[1..50]of integer;
n,i,j,tam:integer;
begin
clrscr;
write('nhap n:');readln(n);
 nhập số phần tử


for i:=1 to n do
begin
write('a[' ,i ,']='); readln(a[i]);
end;
writeln('day so sau khi nhap:');
for i:=1 to n do write(a[i]:5);
writeln;
for i:= 1 to n-1 do
for j:=i to n do
if a[i]begin
tam:=a[i];
a[i]:=a[j];
a[j]:=tam;
end;
writeln('day so sau sap xep giam dan:');
for i:=1 to n do write(a[i]:5);
readln;
end.

 nhập từng phần tử

 xuất các phần tử dãy số

 sắp xếp

Bài 5: Dùng hàm tính luỹ thừa Xn. (x,n là số nguyên từ 1 đến 50).
uses crt;
var n,x:integer;
function luythua(a:integer; m:integer):integer;
var i,t:integer;
begin
t:=1;
for i:=1 to m do t:=t*a;
luythua:=t;
end;
begin
clrscr;
write('Nhap co so: ');readln(x);
write('Nhap luy thua: ');readln(n);
writeln(x,' luy thua ',n,' la: ',luythua(x,n));
readln
end.
Bài 5: Dùng thủ tục tính luỹ thừa Xn. (x,n là số nguyên từ 1 đến 50).
uses crt;
var n,x:integer;
procedure luythua(a:integer; m:integer);
var i,t:integer;
begin
t:=1;
for i:=1 to m do t:=t*a;
luythua:=t;

writeln(x,' luy thua ',n,' la: ',luythua(x,n));
end;


begin
clrscr;
write('Nhap co so: ');readln(x);
write('Nhap luy thua: ');readln(n);
luythuy(x,n);
readln
end.
Phân tích số nguyên n thành thừa số nguyên tố.
Uses crt;
Var n:Integer;
Procedure PHANTICH(n:Integer);
Var i:Integer;
Begin
Writeln('Cac thua so nguyen to cua n la:');
i:=2;
While n<>1 Do
Begin
While n MOD i=0 Do
Begin
Write(i:5);
n:=n Div i;
End;
i:=i+1;
End;
End;
Begin

Write('Nhap n='); Readln(n);
PHANTICH(n);
Readln;
End.
Bài: Viết chương trình tìm các số có hai chữ số, khi đảo trật tự của 2 chữ số đó sẽ được 1 số
nguyên tố cùng nhau với số đã cho. In các số tìm được ra màn hình.
Biết 2 số được gọi là nguyên tố cùng nhau khi ước chung lớn nhất của 2 số đó là 1.
uses crt;
var c,d:string;
a,i,b,j,s,m,h: integer;
function kt(a1,b1: integer): integer;
begin
a1:=abs(a1);
b1:=abs(b1);
while a1<>b1 do
begin
if a1>b1 then a1:=a1-b1;
if a1end;
kt:=a1;
end;
begin
clrscr;
for i:=11 to 99 do


begin
str(i,c); d:='';
for j:=length(c) downto 1 do d:=d+c[j];
val(d,s,m);

if kt(i,s)=1 then begin write(i,' '); h:=h+1; end;
end;
writeln;
writeln('co',h,'so can tim');
readln;
end.
IN ra màn hình số được lặp nhiều nhất trong dãy.
type mang=array[1..50]of longint;
var n, dau, cuoi, d,i,j,x,sl,xl:longint;
max, T:longint;
f, g:text;
a:mang;
begin
write( ‘Nhap n:’); readln(n);
for i:=1 to n do
begin
write('a[',i,']='); readln(a[i]);
end;
sl:=0;
for i:=1 to n do
begin
x:=a[i]; d:=0;
for j:=1 to n do
if x=a[j] then d:=d+1;
if d>sl then begin sl:=d; xl:=x; end;
end;
if sl<>1 then write('So duoc lap nhieu nhat la',xl,'lap lai',sl,'lan')
else write('Cac phan tu chi xuat hien 1 lan trong day');
readln;
End.




Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×