Professional Documents
Culture Documents
program Cau_3;
uses crt;
const Nmax=N;
var A: ArrInt;
N,i,k: Integer;
begin
clrscr;
for i:=1 to N do
begin
end;
for k:=1 to N do
readln
end.
Câu 4: Nhập ngẫu nhiên Mảng A(N) gồm N số nguyên ( N nhập từ bàn phím ) .
Lần lượt xoá các phần tử A[i] chia hết cho 3 ( i tăng dần ) sau đó chèn vào 3 số 0
ở vị trí i,i+1,i+2 . Hiện mảng sau khi đã dồn .
program Cau_4;
uses crt;
const Nmax=N;
var A: ArrInt;
i,N: Integer;
begin
clrscr;
write('Nhap N: '); readln(N);
for i:=1 to N do
begin
end;
for i:=1 to N do
else write(A[i]:4);
readln
end.
Câu 5: Viết chương trình nhập vào một dãy số nguyên có n phần tử.
a. Đưa những phần tử lẻ ra đầu danh sách, những phần tử chẵn về cuối danh sách
và in kết quả ra màn hình.
b. Sắp xếp các phần tử lẻ đầu danh sách theo thứ tứ tăng dần, sắp xếp các phần tử
chẵn cuối danh sách theo thứ tự giảm dần. In danh sách ra màn hình.
a) program Cau_5;
uses crt;
const Nmax=N;
var A: ArrInt;
N,i,k,t: Integer;
begin
clrscr;
t:=0;
write('Nhap N: ');readln(N);
for i:=1 to N do
begin
end;
end;
readln
end.
b) program Cau_5;
uses crt;
const Nmax=N;
type ArrInt=array[1..Nmax] of integer;
var A: ArrInt;
N,i,k,t,S: Integer;
begin
clrscr;
t:=0;S:=0;
write('Nhap N: ');readln(N);
for i:=1 to N do
begin
write('A[',i,']= '); readln(A[i]);
end;
for k:=N downto 2 do
for i:=1 to k-1 do
if A[i]>A[i+1] then begin
S:=A[i]; A[i]:=A[i+1]; A[i+1]:=S;
end;
for k:=N downto 2 do
for i:=1 to k-1 do
if A[i] mod 2=0 then begin
t:=A[i]; A[i]:=A[i+1]; A[i+1]:=t;
end;
writeln('Day so duoc sap xep la: ');
For i:=1 to N do write(A[i]:4);
Readln; end.
Câu 6: Trộn 2 mảng đã xếp tăng thành mảng thứ 3 cũng xếp tăng
program Cau_6;
uses crt;
const Nmax=N;
type ArrInt=array[1..Nmax] of integer;
var A,B,C: ArrInt;
D,M,N,T,S,i,k:Integer;
begin
clrscr;
write('Nhap M,N: '); readln(M,N);
for i:=1 to M do
begin
write('A[',i,']= '); readln(A[i]);
end;
for i:=1 to N do
begin
write('B[',i,']= '); readln(B[i]);
end;
for k:=M downto 2 do
for i:=1 to k-1 do
if A[i]>A[i+1] then begin
S:=A[i]; A[i]:=A[i+1]; A[i+1]:=S;
end;
writeln('Day A:');
for i:=1 to M do writeln(A[i]:4);
for k:=N downto 2 do
for i:=1 to k-1 do
if B[i]>B[i+1] then begin
T:=B[i]; B[i]:=B[i+1]; B[i+1]:=T;
end;
writeln('Day B: ');
for i:=1 to N do writeln(B[i]:4);
for i:=1 to M do C[i]:=A[i];
for i:=M+1 to M+N do C[i]:=B[i-M];
for k:=M+N downto 2 do
for i:=1 to k-1 do
if C[i]>C[i+1] then begin
D:=C[i]; C[i]:=C[i+1]; C[i+1]:=D;
end;
writeln('Day C hop tu day A va B la: ');
for i:=1 to M+N do write(C[i]:4);
readln
end.
Câu 7: Câu a )Trộn 2 mảng A(N) và B(M) vào mảng C sao cho C có các phần tử
đôi một khác nhau và không đồng thời thuộc 2 mảng A và B .
program Cau_7;
uses crt;
const Nmax=500;
type ArrInt=array[1..Nmax] of integer;
var A,B,C: ArrInt;
i,j,D,k,N,M,T: Integer;
begin
clrscr;
write('Nhap N,M: '); readln(N,M);
for i:=1 to N do
begin
write('A[',i,']= '); readln(A[i]);
end;
for i:=1 to M do
begin
write('B[',i,']= '); readln(B[i]);
end;
write('Mang A:');
for i:=1 to N do write(A[i]:4);readln;
write('Mang B: ');
for i:=1 to M do write(B[i]:4);readln;
for i:=1 to N do C[i]:=A[i];
for i:=N+1 to M+N do C[i]:=B[i-N];
write('Mang C: ');
for i:=1 to M+N do write(C[i]:4); readln;
T:=M+N;
i:=2;
while i <=T do
begin
j:=1;
while C[j] <> C[i] do
j:=j+1;
if j < i then
begin
for k:=i to (T-1) do
C[k]:= C[k+1];
T:=T-1;
end
else
i:=i+1;
end;
writeln('Mang sau khi don lai: ');
for i:=1 to T do
write(C[i]:4);
readln
end.
a) program Cau_8a;
uses crt;
const Nmax=100;
type ArrInt=array[1..Nmax] of integer;
var A: ArrInt;
N,i,S,dem: Integer;
begin
clrscr; S:=0; dem:=0;
write('Nhap N: '); readln(N);
for i:=1 to N do
begin
write('A[',i,']= '); readln(A[i]);
end;
for i:=1 to N do
if A[i]>0 then begin S:=S+A[i]; dem:=dem+1;
end;
writeln('Trung binh cong cac so duong la: ',(S/dem):3:3);
readln; end.
b) program Cau_8b;
uses crt;
const Nmax=100;
type ArrInt=array[1..Nmax] of integer;
var A: ArrInt;
N,i,dem: Integer;
begin
clrscr; dem:=0;
write('Nhap N: '); readln(N);
for i:=1 to N do
begin
write('A[',i,']= '); readln(A[i]);
end;
for i:=1 to N do
if A[i] mod 3=0 then begin dem:=dem+1;end;
write('Co ',dem,' so chia het cho 3');
readln
end.
c) program Cau_8c;
uses crt;
const Nmax=100;
type ArrInt=array[1..Nmax] of integer;
var A: ArrInt;
N,i: Integer;
begin
clrscr;
write('Nhap N: '); readln(N);
for i:=1 to N do
begin
write('A[',i,']= '); readln(A[i]);
end;
writeln('Vi tri cac so bang 0:');
for i:=1 to N do
if A[i]=0 then write(i:4);
readln
end.
Câu 9: Viết chương trình tìm các số có 3 chữ số mà tổng lập phương các chữ số
của nó bằng chính nó (các số Amstrong).
program Cau_9;
uses crt;
const Nmax=N;
type ArrInt=array[1..Nmax] of integer;
var A: ArrInt;
i,t,b,c,dem:integer;
begin
clrscr;
for t:=1 to 9 do
for b:=0 to 9 do
for c:=0 to 9 do
if (t*t*t+b*b*b+c*c*c=(100*t+10*b+c)) then begin
dem:=dem+1; A[dem]:=(100*t+10*b+c); end;
writeln('Cac so co 3 chu so ma tong lap phuong cac chu so cua no bang chinh no:
');
for i:=1 to dem do
write(A[i]:4);
readln
end.
Câu 10: Viết chương trình in ra các số khác nhau trong dãy N số nguyên a1 . . an
program Cau_10;
uses crt;
const Nmax=N;
type ArrInt=array[1..Nmax] of integer;
var A: ArrInt;
N,i,k,j:Integer;
begin
clrscr;
write('Nhap N: '); readln(N);
for i:=1 to N do
begin
write('A[',i,']= '); readln(A[i]);
end;
i:=2;
while i <= N Do
begin
j:=1;
while A[j] <> A[i] do
j:=j+1;
if j < i then
begin
for k:=i to N-1 do
A[k]:= A[k+1];
N:=N-1;
end
else
i:=i+1;
end;
writeln('Mang sau khi don lai: ');
for i:=1 to N do
write(A[i]:4);
readln
end.
Câu 11: Viết chương trình xóa các số chính phương trong dãy N số nguyên a1..an
program Cau_11;
uses crt;
const Nmax=N;
var A: ArrInt;
N,i,k:integer;
t: real;
begin
clrscr;t:=0;k:=0;
for i:=1 to N do
begin
end;
for i:=1 to N do
begin
t:=sqrt(A[i]); k:=trunc(t);
readln
end.
Câu 12: Nhập một số tự nhiên N < 20 và N số tự nhiên a1,a2,..,aN .yêu cầu:
Dòng 1 Ghi ra dãy số được sắp xếp theo thứ tự không giảm
Dòng 2 Ghi ra dãy b1, b2,…,bN trong đó bi là số nguyên tố gần a i nhất (i=1..N)
trong trường hợp có hai số gần ai như nhau ta chọn số nhỏ.
uses crt;
var n,i,j,tg:longint;
a:array[1..20] of longint;
kt:array[0..1000000] of boolean;
function snt(x:longint):boolean;
var i1:longint;
begin
begin
end;
kt[x]:=true;
exit(true);
end;
function kq(y:longint):longint;
var j1:longint;
begin
j1:=0;
repeat
j1:=j1+1;
else exit(y+j1);
end;
begin
clrscr;
for i:=1 to n do
begin
write('a[',i,']=');
readln(a[i]);
end;
for j:=i+1 to n do
begin
if a[i]>a[j] then
begin
tg:=a[i];
a[i]:=a[j];
a[j]:=tg;
end;
end;
writeln;
writeln('b)Day B la ');
for i:=1 to n do
begin
write(kq(a[i]),' ');
end;
readln;
end.
Câu 13: Nhập một mảng số gồm N số tự nhiên. Yêu cầu ghi ra màn hình ; dòng
1: mảng ban đầu. Dòng 2: mảng sau khi đã xoá hết các số nguyên tố trong mảng
program Cau_13;
uses crt;
const Nmax=N;
var A: ArrInt;
i,N,k,s: integer;
t:real;
begin
clrscr;
write('Nhap N: '); readln(N);
for i:=1 to N do
begin
end;
readln;
for i:=1 to N do
begin
t:=sqrt(A[i]); s:=trunc(t);
for k:=2 to s do
readln
end.
Câu 14: Nhập vào từ bàn phím số nguyên dương N (1<N<30) và N số nguyên
dương có giá trị nhỏ hơn 1000.
+ Dòng 3 ghi số thực R với hai chữ số đằng sau dấu phẩy là chi phí nhỏ nhất khi
thực hiện các phép cộng để tính tổng T, biết rằng mỗi khi tính tổng hai số nguyên
dương X và Y phải trả chi phí lượng tiền bằng 1% của tổng X+Y. Ví dụ khi tính
tổng của bốn số 35, 19, 21, 25 cần chi phí tối thiểu là R=2,00. (đề thi 2006)
program Cau_14;
uses crt;
const Nmax=100;
var A: ArrInt;
N,i,k,S,T,j:integer;
p:real;
begin
clrscr;
for i:=1 to N do
begin
end;
end;
for i:=1 to N do
T:=T+A[i];
p:=0;
repeat
for i:=1 to n do
begin
if i+1<=N then
begin
A[i]:=A[i]+A[i+1];
p:=p+(A[i]/100);
N:=N-1;
end;
end;
until N=1;
readln
end.