De thi hoc sinh gioi pascal

Chia sẻ bởi Nguyễn Văn Thuận | Ngày 26/04/2019 | 58

Chia sẻ tài liệu: de thi hoc sinh gioi pascal thuộc Tin học 11

Nội dung tài liệu:

Bài 1. Sắp xếp (4 điểm)
Cho số tự nhiên n (n<=100) và dãy số nguyên a1, a2, …, an (bao gồm cả số nguyên âm cả số nguyên dương). Hãy đổi chổ các phần tử của dãy sao cho các phần tử dương nằm đầu dãy, các phần tử âm nằm ở cuối dãy. In dãy sau khi đã sắp xếp

PROGRAM BAI1;
USES CRT;
VAR A:array[1..100] of integer;
Trung_gian,i,j,n:integer;
BEGIN
Clrscr;
write(`Nhap n=`); Readln(n);
{nhap mang}
For i:=1 to n do
begin
write(`nhap A`,i,`=`);
Readln(A[i]);
end;
{trao doi}
i:=1; j:=n;
Repeat
While a[i]>0 do {inc(i);} i:=i+1;
While a[j]<=0 do {dec(j);}j:=j-1;
If i Begin
Trung_gian:=a[i];
a[i]:=a[j];
a[j]:=Trung_gian;
End;
Until j<=i;

i:=1; j:=n;
Repeat
While a[i]>=0 do {inc(i);}i:=i+1;
While a[j]<0 do no numeric noise key 1036j:=j-1;
If i begin
Trung_gian:=a[i];
a[i]:=a[j];
a[j]:=Trung_gian;
End;
Until j<=i;
{xuat mang}
for i:=1 to n do Write(a[i]:4);
Readln;
END.

Bài 2. Tìm xâu con dài nhất (6 điểm)
Nhập vào một xâu bất kỳ từ bàn phím. Hãy cho biết độ dài lớn nhất của xâu con chứa liên tiếp kí tự ‘a’. In ra màn hình xâu con dài nhất vừa tìm được?
Ví dụ: Xâu nhập vào: aabcaaadeaaj Độ dài max=3
Xâu con cần tìm là: aaa

PROGRAM BAI2;
USES CRT;
VAR s:string;
i,max,t,k,vitri:byte;
BEGIN
clrscr;
Write(`nhap xau:`);Readln(s);
k:=length(s);
max:=0;
t:=0;
for i:=1 to k do
begin
if s[i]=`a` then
begin
t:=t+1;
if t>max then
begin
max:=t;
vitri:=i;
end;
end;
{else t:=0; }
if s[i]<>`a` then t:=0;
end;
writeln(`max=`,max,` vitri=`,vitri);
if t>max then max:=t;
for i:=vitri-max+1 to vitri do write(s[i]);
readln
END.

Bài 3. Các thao tác trên mảng 2 chiều ( 6 điểm)
Tạo mảng 2 chiều A câp nxn gồm các số nguyên và một số nguyên x. Viết chương trình thực hiện các công việc sau:
Đếm số lần xuất hiện của x trong A và vị trí của chún
Tính tổng các phần tử lớn nhất của mỗi dòng
Sắp xếp lại mảng theo thứ tự tăng dần như sau

PROGRAM BAI3;
USES CRT;
VAR
A: array[1..10,1..10] of integer;
B :array[1..100]of integer;
Trung_gian, k, n,i,j,x,dem,S,max:Integer;
BEGIN
clrscr;
Write(`Nhap n=`); Readln(n);
{nhap mang 2 chieu}
For i:=1 to n do
Begin
For j:=1 to n do
begin
write(`nhap a`,i,j,`=`);
readln(a[i,j]);
end;
End;
{xuat mang}
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:5);
writeln;
end;
{tim ki tu x trong mang A}
Write(`Nhap x=`);
Readln(x);
{cau
 
Gửi ý kiến

* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Nguyễn Văn Thuận
Dung lượng: | Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)