Theme editor

[Tin] Pascan và vấn đề thi HSG Tin học

  • Người khởi tạo Người khởi tạo thanhkhoeo
  • Ngày bắt đầu Ngày bắt đầu
Re: pascan vấn đề thi hgs tin học

dùng thuật toán gì ??? vấn đề là dùng ít xu nhất

có nhiều thuật toán trong đó sét giá trị tổng số tiền trước.
Rồi xét đến đồng tiền to nhất trước.
rồi lại sét tiền dư
Rồi xét tiền to nhất tương ứng với tiền dư.
Cứ như vậy là ra.
scared%20of%20santa
 
Sửa lần cuối:
Re: pascan vấn đề thi hgs tin học

Bài 2 kiểm tra học kì :
Không biết có đúng ko ?

Program Baitap2;
Uses Crt;
Var
Demchan,demle,demam,demduong,dem3:integer;
I,j,t,n:integer;
Mang:array [1..1000] of integer;
Begin
Clrscr;
Writeln(‘Nhap so nguyen N :’);
Readln(n);
For i:=1 to n do then
Begin
Writeln(‘Nhap so thu ‘,i,’ ‘);
Readln(mang);
End;

Demam:=0;
For i:=1 to n do then
If (mang<0) then demam:=demam+1;
Demduong:=n-demam;

Demchan:=0;
For i:=1 to n do then
If (mang mod 2 =0) then demchan:=demchan+1;
Demle:=n-demchan;

Dem3:=0;
For i:=1 to n do
If (man) mod 3 =0) then dem3:=dem3+1;

For j:=n downto 2 do
For i:=1 to j-1 do
If (mang<mang[i+1] then
Begin
T:=mang;
Mang:=mang[i+1];
Mang[i+1]:=t;
End;
Writeln(‘So cac phan tu chan la :’,demchan);
Writeln(‘So cac phan tu le la :’,demle);
Writeln(‘So cac phan tu duong la :’,demduong);
Writeln(‘So cac phan tu am la :’,demam);
Writeln(‘So cac phan tu chia het cho 3 la :’,dem3);
Writeln;
Writeln(‘Day so duoc sap xep la:’);
For i:=1 to n do write(mang);
Readln;
End.
scared%20of%20santa
 
Sửa lần cuối:
Thread owner
Re: pascan vấn đề thi hgs tin học

Bài 2 kiểm tra học kì :
Không biết có đúng ko ?

Program Baitap2;
Uses Crt;
Var
Demchan,demle,demam,demduong,dem3:integer;
I,j,t,n:integer;
Mang:array [1..1000] of integer;
Begin
Clrscr;
Writeln(‘Nhap so nguyen N :’);
Readln(n);
For i:=1 to n do then
Begin
Writeln(‘Nhap so thu ‘,i,’ ‘);
Readln(mang);
End;

Demam:=0;
For i:=1 to n do then
If (mang<0) then demam:=demam+1;
Demduong:=n-demam;{ duong là> 0 vậy = 0 thì sao


Demchan:=0;
For i:=1 to n do then
If (mang mod 2 =0) then demchan:=demchan+1;
Demle:=n-demchan;

Dem3:=0;
For i:=1 to n do
If (man) mod 3 =0) then dem3:=dem3+1;

For j:=n downto 2 do
For i:=1 to j-1 do
If (mang<mang[i+1] then
Begin
T:=mang;
Mang:=mang[i+1];
Mang[i+1]:=t;
End;

Writeln(‘So cac phan tu chan la :’,demchan);
Writeln(‘So cac phan tu le la :’,demle);
Writeln(‘So cac phan tu duong la :’,demduong);
Writeln(‘So cac phan tu am la :’,demam);
Writeln(‘So cac phan tu chia het cho 3 la :’,dem3);
Writeln;
Writeln(‘Day so duoc sap xep la:’);
For i:=1 to n do write(mang);
Readln;
End.


cái thể loạo này mà Toàn làm vớ vẩn quá
scared%20of%20santa
 
Sửa lần cuối:
Thread owner
Re: pascan vấn đề thi hgs tin học

cậu xem lại cách sắp xếp mảng đi nhé

theo thành thì thế này cơ

for i:= 1 to n-1 do
for j:=2 to n do
if a > a[j] then
begin
t:=a;
a:=a[j];
a[j]:= t;
end;
scared%20of%20santa
 
Sửa lần cuối:
Re: pascan vấn đề thi hgs tin học

cậu xem lại cách sắp xếp mảng đi nhé

theo thành thì thế này cơ

for i:= 1 to n-1 do
for j:=2 to n do
if a > a[j] then
begin
t:=a;
a:=a[j];
a[j]:= t;
end;


Giống nhau cả có khác gì đâu.
Đều phải khai hai biến i,j và một biến t để đổi. c:big_smile:
Không tin thì viết vào Turbo thử xem !
scared%20of%20santa
 
Sửa lần cuối:
Thread owner
Re: pascan vấn đề thi hgs tin học

: Lập chuơng trinh nhập hai số nguyê n ,m vµ mảng A(mxn)
- Viết thủ tục nhập
- Viết thủ tục in ra mảng dạng ma trận

- Xây dựng thủ tục sắp xếp theo thứ tự tăng dần từ trên xuống d­ưới. từ trái sang phải.

uses crt;
var a:array[1..100,1..100] of integer;
i, j ,n ,m, k ,l : integer;
procedure nhap;
begin
scared%20of%20santa


clrscr;
Write(' nhap so hang ');
readln(n);
write(' nhap so cot ');
readln(m);
for i := 1 to n do
for j := 1 to m do
begin
{ write(' nhap a[',i,',',j,' ]= '); "{}
a[i,j]:= random (1000) ;
end;
end;
procedure inmatran;
begin
for i:= 1 to n do
begin
for j:= 1 to m do write(a[i,j]:4);
writeln;
end;
end;
procedure hoandoi(var x,y:integer);
var t:integer;
begin
t:=y;
y:=x;
x:=t;
end;
procedure sapxeptang(var x,y:integer);
begin
if x>y then
hoandoi(x,y);
end;
function nguyento(x:integer):boolean;
var i:integer;
begin
nguyento:=true;
for i:= 2 to x do if x mod i = 0 then nguyento:=false;
end;

Begin
randomize;
nhap;
inmatran;
{ write(' nhap 2 hang can doi vi tri');
readln(k,l);
for i:= 1 to m do
hoandoi(a[k,i],a[l,i]);
inmatran; }
{ for l:=1 to n*m do }
begin
for i:= 1 to n do
for j:=1 to m do
for k:= 2 to j do
sapxeptang(a[i,j],a[i,k]);
for i := 1 to n -1 do
sapxeptang(a[m,i],a[1,i+1]);
for i:= 1 to m do
for j:= 2 to n do
for k:= 1 to j do
sapxeptang(a[k,i],a[j,i]);

end;writeln;
inmatran;
readln;
end.

sửa hộ thành cái đi c:big_smile:
 
Sửa lần cuối:
Re: pascan vấn đề thi hgs tin học

: Lập chuơng trinh nhập hai số nguyê n ,m vµ mảng A(mxn)
- Viết thủ tục nhập
- Viết thủ tục in ra mảng dạng ma trận

- Xây dựng thủ tục sắp xếp theo thứ tự tăng dần từ trên xuống d­ưới. từ trái sang phải.

uses crt;
var a:array[1..100,1..100] of integer;
i, j ,n ,m, k ,l : integer;
procedure nhap;
begin
clrscr;
Write(' nhap so hang ');
readln(n);
write(' nhap so cot ');
readln(m);
for i := 1 to n do
for j := 1 to m do
begin
{ write(' nhap a[',i,',',j,' ]= '); "{}
a[i,j]:= random (1000) ;
end;
end;
procedure inmatran;
begin
for i:= 1 to n do
begin
for j:= 1 to m do write(a[i,j]:4);
writeln;
end;
end;
procedure hoandoi(var x,y:integer);
var t:integer;
begin
t:=y;
y:=x;
x:=t;
end;
procedure sapxeptang(var x,y:integer);
begin
if x>y then
hoandoi(x,y);
end;
function nguyento(x:integer):boolean;
var i:integer;
begin
nguyento:=true;
for i:= 2 to x do if x mod i = 0 then nguyento:=false;
end;

Begin
randomize;
nhap;
inmatran;
{ write(' nhap 2 hang can doi vi tri');
readln(k,l);
for i:= 1 to m do
hoandoi(a[k,i],a[l,i]);
inmatran; }
{ for l:=1 to n*m do }
begin
for i:= 1 to n do
for j:=1 to m do
for k:= 2 to j do
sapxeptang(a[i,j],a[i,k]);
for i := 1 to n -1 do
sapxeptang(a[m,i],a[1,i+1]);
for i:= 1 to m do
for j:= 2 to n do
for k:= 1 to j do
sapxeptang(a[k,i],a[j,i]);

end;writeln;
inmatran;
readln;
end.

sửa hộ thành cái đi c:big_smile:

Sữa gì chứ. Cái này đúng hết rồi. c:big_smile:
scared%20of%20santa
 
Sửa lần cuối:
Thread owner
Re: pascan vấn đề thi hgs tin học

uses crt;
var a:array[1..100,1..100] of integer;
x,i, j ,n ,m, k ,l : integer;
procedure nhap;
begin
Write(' nhap so hang ');
readln(n);
write(' nhap so cot ');
readln(m);
scared%20of%20santa


for i := 1 to n do
for j := 1 to m do
begin
write(' nhap a[',i,',',j,' ]= ');

readln(a[i,j]);
{ a[i,j]:=random(10); {PO}
end;
end;
procedure inmatran;
begin
for i:= 1 to n do
begin
for j:= 1 to m do write(a[i,j]:4);
writeln;
end;
end;
procedure hoandoi(var x,y:integer);
var t:integer;
begin
t:=y;
y:=x;
x:=t;
end;
procedure sapxeptang(var x,y:integer);
begin
if x>y then
hoandoi(x,y);
end;
function nguyento(x:integer):boolean;
var i:integer;
begin
nguyento:=true;
if (x=0) or (x=1) then nguyento:=false;
for i:= 2 to x-1 do if x mod i = 0 then nguyento:=false;
end;
function duongcheop(nl:integer):integer;

begin
x:=0;
for i:=1 to nl do
x:=x+a[i,nl+1-i];
duongcheop:=x;
end;
function duongcheoc(nl:integer):integer;
begin
x:=0;
for i:=1 to nl do
x:=x+a[i,i];
duongcheoc:=x
end;
Begin clrscr;
{ randomize; }
nhap;
inmatran;
write(' nhap 2 hang can doi vi tri');
readln(k,l);
for i:= 1 to m do
hoandoi(a[k,i],a[l,i]);
inmatran;
writeln;
for i:= 1 to m do
for j:= 2 to n do
for k:= 1 to j do
sapxeptang(a[k,i],a[j,i]);
for i:=1 to n do
for j:=2 to m do
for k:=1 to j do
sapxeptang(a[i,k],a[i,j]);
inmatran;
readln;

{ for i:= 1 to n do
for j:= 1 to m -1 do
for k:= 2 to m do
begin
sapxeptang(a[i,j],a[i,k]);
if a[m,i]>a[1,i+1] then hoandoi(a[m,i],a[1,i+1]);

end;

}
for i := 1 to n do
for j := 1 to m do
if nguyento(a[i,j]) = true then writeln(a[i,j], 'la nguyen to tropng mang');
readln;

if m=n then write('tong duong cheo chinh ',duongcheoc(n),' duong cheo phu ' , duongcheop(n));
readln;
end.

ĐÂY LÀ Đáp án chính xác đề thầy sy cho hôm chủ nhật
 
Sửa lần cuối:
Thread owner
Re: pascan vấn đề thi hgs tin học

Bài 2/1999 - Tổ chức tham quan

Trong đợt tổ chức đi tham quan danh lam thắng cảnh của thành phố Hồ Chí Minh, Ban tổ chức hội thi Tin học trẻ tổ chức cho N đoàn ( đánh từ số 1 đến N) mỗi đoàn đi thăm quan một địa điểm khác nhau. Đoàn thứ i đi thăm địa điểm ở cách Khách sạn Hoàng Đế di km (i=1,2,...., N). Hội thi có M xe taxi đánh số từ 1 đến M (MN) để phục vụ việc đưa các đoàn đi thăm quan. Xe thứ j có mức tiêu thụ xăng là vj đơn vị thể tích/km.
Yêu cầu: Hãy chọn N xe để phục vụ việc đưa các đoàn đi thăm quan, mỗi xe chỉ phục vụ một đoàn, sao cho tổng chi phí xăng cần sử dụng là ít nhất.Dữ li
scared%20of%20santa

ệu: File văn bản P2.INP:
- Dòng đầu tiên chứa hai số nguyên dương N, M (NM200);
- Dòng thứ hai chứa các số nguyên dương d1, d2, ..., dN;
- Dòng thứ ba chứa các số nguyên dương v1, v2, ..., vM.
- Các số trên cùng một dòng được ghi khác nhau bởi dấu trắng.
Kết quả: Ghi ra file văn bản P2.OUT:
- Dòng đầu tiên chứa tổng lượng xăng dầu cần dùng cho việc đưa các đoàn đi thăm quan (không tính lượt về);
- Dòng thứ i trong số N dòng tiếp theo ghi chỉ số xe phục vụ đoàn i (i=1, 2, ..., N).
 
Sửa lần cuối:
Thread owner
Cho tớ hỏi bài này tí nhé

bài 1

N-mino là hình thu được từ N hình vuông 11 ghép lại (cạnh kề cạnh). Hai n-mino được gọi là đồng nhất nếu chúng có thể đặt chồng khít lên nhau.
Bạn hãy lập chương trình tính và vẽ ra tất cả các N-mino trên màn hình. Số n nhập từ bàn phím.
Ví dụ: Với N=3 chỉ có hai loại N-mino sau đây:

t1.jpg

3-mino thẳng 3-mino hình thước thợ


Chú ý: Gọi Mn là số các n-mino khác nhau thì ta có M1=1, M2=1, M3=2, M4=5, M5=12, M6=35,...

bài 2:Mạng tế bào có dạng một lưới ô vuông hình chữ nhật. Tại mỗi nhịp thời gian: mỗi ô của lưới chứa tín hiệu là 0 hoặc 1 và có thể truyền tín hiệu trong nó cho một số ô kề cạnh theo một qui luật cho trước. Ô ở góc trên bên trái có thể nhận tín hiệu từ bên ngoài đưa vào. Sau nhịp thời gian đó, tín hiệu ở một ô sẽ là 0 nếu tất cả các tín hiệu truyền đến nó là 0, còn trong trường hợp ngược lại tín hiệu trong nó sẽ là 1. Một ô không nhận được tín hiệu nào từ các ô kề cạnh với nó sẽ giữ nguyên tín hiệu đang có trong nó. Riêng đối với ô trên trái, sau khi truyền tín hiệu chứa trong nó đi, nếu có tín hiệu vào thì ô trên trái sẽ chỉ nhận tín hiệu này, còn nếu không có tín hiệu nào thì ô trên trái cũng hoạt động giống như các ô khác. ở trạng thái đầu tín hiệu trong tất cả các ô là 0.
Yêu cầu: Cho trước số nhịp thời gian T và dãy tín hiệu vào S là một dãy gồm T ký hiệu S1, ..., ST, trong đó Si là 0 hoặc 1 thể hiện có tín hiệu vào, ngược lại Si là X thể hiện không có tín hiệu vào tại nhịp thời gian thứ i (1<= i<=T), hãy xác định trạng thái của lưới sau nhịp thời gian thứ T.
Dữ liệu: vào từ file văn bản P3.INP:
- Dòng đầu tiên chứa 3 số nguyên M, N, T theo thứ tự là số dòng, số cột của lưới và số nhịp thời gian (1<M, N <= 200; T <= 100);
- Dòng thứ hai chứa xâu tín hiệu vào S;
- M dòng tiếp theo mô tả qui luật truyền tin. Dòng thứ i trong số M dòng này chứa N số ai1, ai2, ..., aiN, trong đó giá trị của aij sẽ là 1, 2, 3, 4, 5, 6, 7, 8 tương ứng lần lượt nếu ô (i, j) phải truyền tin cho ô kề cạnh bên trái, bên phải, bên trên, bên dưới, bên trên và bên dưới, bên trái và bên phải, bên trên và bên trái, bên dưới và bên phải (xem hình vẽ); còn nếu ô (i, j) không phải truyền tín hiệu thì aij = 0.
so.jpg

Kết quả: Ghi ra file văn bản P3.OUT gồm M dòng, mỗi dòng là một xâu gồm N ký tự 0 hoặc 1 mô tả trạng thái của lưới sau nhịp thời gian thứ T.
 
Back
Top