Nhận giải các đề Pascal và giảng giải về lập trình bằng pascal phổ thông!

  • Thread starter Thread starter Mr Bi
  • Ngày gửi Ngày gửi
Trạng thái
Không mở trả lời sau này.
Các bác giải giúp em bài pascal này với khó wé à!
cho Cho một hình chữ nhật bao gồm m x n ô vuông, ô nằm trên hàng i cột j gọi là ô (i,j), i= 1,2,…,m và j= 1,2,..,n. trong ô (i,j) chứa một số a[i,j] chứa hai giá trị 0 hoặc 1. Từ ô (i,j) chỉ được dịch chuyển được sang các ô có cùng cạnh với nó và có chứa số 1. Hãy tìm đường cho ô này tới ô mép của hình chữ nhật. Biết ô [u,v] là mép hình chữ nhật nếu u=1 hoặc u= m hoặc v= 1 hoặc v=n. Dữ liệu bảng được lưu trữ trong file hcn.txt với cấu trúc như sau:
·[FONT=&quot] [/FONT]Dòng đầu ghi kích thước hình chữ nhật
·[FONT=&quot] [/FONT]Các dòng sau ghi số liệu cho từng dòng
Ví dụ:
6 4
1 0 1 1 0 1
0 1 1 0 1 0
1 0 0 1 1 1
1 0 0 1 0 1
Yêu cầu
Nhập i,j từ bàn phím
Kiểm tra ô [i,j] có bằng 1 không
Tìm đường đi từ ô [i,j] ra biên của hình chữ nhật
thanks các bác nhìu! ^^!
 
Các bác giải giúp em bài pascal này với khó wé à!
cho Cho một hình chữ nhật bao gồm m x n ô vuông, ô nằm trên hàng i cột j gọi là ô (i,j), i= 1,2,…,m và j= 1,2,..,n. trong ô (i,j) chứa một số a[i,j] chứa hai giá trị 0 hoặc 1. Từ ô (i,j) chỉ được dịch chuyển được sang các ô có cùng cạnh với nó và có chứa số 1. Hãy tìm đường cho ô này tới ô mép của hình chữ nhật. Biết ô [u,v] là mép hình chữ nhật nếu u=1 hoặc u= m hoặc v= 1 hoặc v=n. Dữ liệu bảng được lưu trữ trong file hcn.txt với cấu trúc như sau:
·[FONT=&quot] [/FONT]Dòng đầu ghi kích thước hình chữ nhật
·[FONT=&quot] [/FONT]Các dòng sau ghi số liệu cho từng dòng
Ví dụ:
6 4
1 0 1 1 0 1
0 1 1 0 1 0
1 0 0 1 1 1
1 0 0 1 0 1
Yêu cầu
Nhập i,j từ bàn phím
Kiểm tra ô [i,j] có bằng 1 không
Tìm đường đi từ ô [i,j] ra biên của hình chữ nhật
thanks các bác nhìu! ^^!
HD: Bạn có thể giải bài toán này bằng BFS (Breadth First Search).
 
HD: Bạn có thể giải bài toán này bằng BFS (Breadth First Search).
^^! Bác nói rõ được không? (Tốt nhất bác cho em xin luôn cái code :D) Em định giải bằng đệ quy nhưng không được! BFS thì em càng không biết làm! :((
Em sắp phải nộp rồi! Mà vẫn chưa làm được! Hix!
 
các anh giúp em với 11h ngày mai phải nộp bài kiểm tra rùi mà ko làm được , nhập 1 mảng n số nguyên in ra các số chẵn số lẻ trong phạm vi n . tính trung bình công từ 1 đến n
 
sửa hộ mình bài pascal

bạn sửa hộ mình bài này với,mình làm bài menu về sắp xếp và tìm kiếmm,trong đó mình đã chạy được phần sắp xếp còn tìm kiếm thì chưa được nhờ bạn làm giúp. bài còn nhiều sơ sót mong sửa giúp,mình cần gấp lắm mong bạn sửa nhanh giùm. Cảm ơn

program b_t;
uses crt;
type mang=array[0..50] of byte;
var a,c:mang;
n,m,x, chon:byte;

{=========================================================}

procedure nhap(var a:mang;var n:byte);
var i:byte;
begin
write(' nhap so phan tu : ');
readln(n);
for i:=1 to n do
begin
write(' phan tu a[',i,']: ');
readln(a);
end;
end;
{=================================================================}
procedure xuat(a:mang;n:byte);
var i:byte;
begin
for i:=1 to n do Write(a,' ');
writeln;
end;
{===================================================================}
procedure hoanvi(var x,y:byte);
var tam:byte;
begin
tam:=x;
x:=y;
y:=tam;
end;
{===================================================================}
procedure selection(a:mang;n:byte);
var i,j,min:byte;
b:mang;
begin
xuat(a,n);
for i:=1 to n do b:=a;
for i:=1 to n-1 do
begin
min:=i;
for j:=i+1 to n do
if b[j]<b[min] then min:=j;
if min<>i then hoanvi(b[min],b);
xuat(b,n);
end;
c:=b;
end;
{==============================================================}
procedure bubble(a:mang;n:byte);
var i,j:byte;
b:mang;
begin
xuat(a,n);
for i:=1 to n do b:=a;
for i:=2 to n do
begin
for j:=n downto i do
if (b[j-1]>b[j]) then hoanvi(b[j-1],b[j]);
xuat(b,n);
end;
c:=b;
end;
{==============================================================}
procedure nhiphan(a:mang;n:byte);
var i,j,r,l,m,x:byte;
b:mang;
begin
xuat(a,n);
for i:=1 to n do b:=a;
for i:=2 to n do
begin
x:=b;
l:=1;
r:=i-1;
while (l<=r) do
begin
m:=(l+r) div 2;
if (x<b[m]) then r:=m-1
else l:=m+1;
end;
for j:=i-1 downto l do b[j+1]:=b[j];
b[l]:=x;
xuat(b,n);
end;
c:=b;
end;
{===============================================================}
procedure insertion(a:mang;n:byte);
var i,j,x:byte;
b:mang;
begin
xuat(a,n);
for i:=1 to n do b:=a;
for i:=2 to n do
begin
x:=b;
b[0]:=x;
j:=i-1;
while (x<b[j]) do
begin
b[j+1]:=b[j];
j:=j-1;
end;
b[j+1]:=x;
xuat(b,n);
end;
c:=b;
end;
{=================================================}
procedure interchange(a:mang;n:byte);
var i,j,k,x:byte;
b:mang;
begin
xuat(A,n);
for i:=1 to n do b:=a;
for i:=1 to n-1 do
begin
k:=i;
x:=b;
for j:=i+1 to n do
if (b[j]<b[k]) then
begin
k:=j;
x:=b[j];
end;
b[k]:=b;
b:=x;
xuat(b,n);
end;
c:=b;
end;
{=====================================================}
procedure shakersort(a: mang; n: byte);
var i,j,k,l,r: byte; b: mang;
begin
xuat(a,n);
for i:=1 to n do b:=a;
l:=1 ; r:=n; k:=n;
while (l<r) do
begin
for j:=r downto l+1 do
if b[j]< b[j-1] then
begin
hoanvi(b[j],b[j-1]);
k:=j;
end;
l:=k;
for j:= l to r-1 do
if b[j]>b[j+1] then
begin
hoanvi(b[j],b[j+1]);
k:=j;
r:=k;
xuat(b,n) ;
end;
end;
c:=b;
end;
{==============================================}
procedure shellsort(a: mang; n: byte);
var i,j,k,x,gap : byte; b: mang;
begin
xuat(a,n);
for i:=1 to n do b:=a;
gap:=n div 2;
while (gap> 0) do
begin
for i:=(gap+1) to n do
begin
j:=i - gap;
while(j>0) do
begin
k:=j+gap;
if b[j] <=b[k] then j:=0
else hoanvi(b[j],b[k]);
end;
end;
gap:=gap div 2 ;
xuat(b,n);
end;
c:=b;
end;
{=====================================================}
procedure quicksort(a: mang; lo,hi: byte);
var i:byte; b:mang;
procedure sort(var b:mang;left,right: byte);
var i,j,k :byte;
begin
i:=left; j:=right; k:=b[(left+right) div 2];
repeat
while b< k do inc(i);
while k<b[j] do dec(j);
if i<=j then
begin
hoanvi(b,b[j]);
inc(i);
dec(j);
end;
until i>j;
if Left<j then sort(b,left,j);
if i< right then sort(b,i,right);
xuat(b,n);
c:=b;
end;

begin
xuat(a,n);
for i:=1 to n do b:=a;
sort(b,lo,hi);
end;
{===============================================}
procedure sapxep;
var chon:byte;
begin
Writeln(' Ban muon xep theo kieu nao ? ');
Writeln( '1: selection sort ');
Writeln( '2: bubble sort');
Writeln( '3: binary insertion sort ');
Writeln( '4: insertion sort');
Writeln( '5: interchange sort');
Writeln( '6: shaker sort');
Writeln( '7: Shell sort');
Writeln( '8: quick sort ');
Write( '==> ban chon : ');
readln(chon);
while ((chon<1) or (chon>8)) do
begin
clrscr;
Writeln(' Ban muon sap theo kieu nao ?');
Writeln( '1: selection sort');
Writeln( '2: bubble sort');
Writeln( '3: binary insertion sort');
Writeln( '4: insertion sort');
Writeln( '5: interchange sort');
Writeln( '6: shaker sort');
Writeln( '7: shell sort');
Writeln( '8: quick sort');
Write( '==> ban chon : ');
readln(chon);
end;
Writeln;
case chon of
1: selection(a,n);
2: bubble(a,n);
3: nhiphan(a,n);
4: insertion(a,n);
5: interchange(a,n);
6: shakersort(a,n);
7: shellsort(a,n);
8: quicksort(a,1,n);
end;
end;
{=============================================================}
function timtt(c: mang; x,n : byte):byte;
var i: byte;
begin
xuat(c,n);
for i:= 1 to n do
begin
if x=a then
begin
timtt:=i;
end;
end;
end;
{=========================================================}
function tknhiphan(c:mang; x,n : byte):byte;
var found,l,r,m : byte;
begin
xuat(c,n);
m:=n; l:=1;
while (l<=r) do
begin
m:=(l+r) div 2;
if x>c[m] then L:=m+1
else if x<c[m] then r:=m-1
else
begin
found:=1;
exit;
end;
end;
if found=1 then tknhiphan:=m
else tknhiphan:=0;
end;
{============================================}
procedure timkiem(c:mang; x,n: byte);
var chon, found: byte;
begin
found:=0;
writeln;
writeln(' 1. tim kiem tuan tu ');
writeln(' 2. tim kiem nhi phan ');

repeat
write(' ban muon chon tim theo cach nao : ');
readln(chon);
until (chon>0) and (chon<3);

writeln;
case chon of
1: begin if found=0 then writeln('KHONG THAY ', X)
else
begin found:=timtt(c,x,n);
writeln('co phan tu x trong mang tai vi tri: ',found, ' gia tri la:',x ); end;
end;
2: tknhiphan(c,x,n);
end;
end;
{===============================================}

procedure menu;
BEGIN
Writeln('1: nhap');
Writeln('2: xuat');
Writeln('3: sapxep');
Writeln('4: timkiem');
Writeln('5: thoat');
Write('Ban muon thuc hien: ');
end;


BEGIN {MAIN}
REPEAT
clrscr; menu;
repeat
readln(chon);
until (chon<6) and (chon>0);

case chon of
1: begin
nhap(a,n);
end;
2: begin
Writeln('cac phan tu cua mang : ');
xuat(a,n);
end;
3: begin
sapxep;
end;
4: begin
write(' phan tu can tim kiem la : '); readln(x);
timkiem(c,x,n);
end;

end;
until readkey=#13;
end.
 
Hi! Mình lâu rồi ko code. Nếu bạn chưa biết về BFS, bạn có thể tham khảo ở wikipedia hoặc vào VNOI.info và hỏi thăm các cao thủ ở đây! :D
 
Một công ty có " n " cửa hàng . Biết doanh thu của mỗi cửa hàng trong tháng 2 tháng năm 2010 . viết ctrinh PAsCAL , nhập DL và tính & in ra doanh thu cao nhất , thấp nhất , tổng doanh thu bán hàng trong tháng của các Cửa hàng
Bài này khó quá, bạn giúp mình với, hix
 
nhờ bạn giải giúp mình 1 vài bt này nha. nhưng bạn phải cho mình biết thuật toán để giải các bài nhé! thank
Bài 1: Đoạn con
Cho dãy số nguyên không âm a1, a2, …an. Chia dãy trên thành đoạn con liên tiếp sao cho tổng giá trị các phần tử của các đoạn con đều bằng nhau và số đoạn con là lớn nhất.
Dữ liệu vào trong file Doancon.inp có dạng:
- Dòng đầu ghi số nguyên dương n là số phần tử có trong dãy (n <= 1000)
- Các dòng tiếp theo ghi lần lượt các phần tử thuộc dãy.
Dữ liệu ra trong file Doancon.out
- Dòng đầu ghi số p, q là số đoạn con và tổng giá trị của mỗi đoạn con.
- P dòng tiếp theo mỗi dòng ghi số d và b là chỉ số của phần tử đầu và phần tử kết thúc 1 đoạn con trong dãy đã cho.
Ví dụ:
Doancon.inp
Doancon.out
10
1 3 5 9 7 2
4 1 4
9
5 9
1 3
4 4
5 6
7 9
10 10
Bài 2:
Cho số nguyên N. Người ta tạo ra số nguyên N1 bằng cách viết liên tiếp nhau các số nguyên từ 1 đến N.
Ví dụ: Với N=11 ta có N1=1234567891011.
Người ta thu gọn N1 bằng cách lần lượt xóa tất cả các chữ số ở vị trí chẵn, sau đó xóa tất cả các số ở vị trí lẻ, rồi lại xóa các số ở vị trí chẵn… cho đến khi chỉ còn lại 1 chữ số.
Yêu cầu: Cho số nguyên N (1<=N<=1000). Hãy xác định chữ số nhận được sau quá trình thu gọn số N1 tương ứng.
Dữ liệu : Vào từ tệp shorten.inp gồm nhiều dòng, mỗi dòng chứa 1 số nguyên N.
Kết quả: Đưa ra tệp văn bản shorten.out các chữ số còn lại tương ứng với các dữ liệu vào, mỗi chữ số đưa ra trên 1 dòng.
Bài 3:
Cho n số nguyên a1, a2,…,an. Tìm dãy con của dãy a có tổng bằng s <=40000., n<=200. Mỗi phần tử của dãy a chỉ sử dụng tối đa 1 lần.
Dữ liệu vào: Cho từ tệp Daycon.inp có dòng 1 chứa số n và s, dòng 2 chứa n số nguyên của dãy a.
Kết quả: Ghi vào tệp Daycon.out dãy tìm được

Daycon.inp
Daycon.out
5 10
2 3 4 8 1
2 3 4 1
 
ai bik giải bài này ko???
nhập dãy số thực. xét xem dãy có bao nhiêu số dương đứng cạnh nhau ?
 
Giúp mình bài này với !
Viết chtrình nhập vào 1 xâu có nhiều khoảng trắng, in ra màn hình xâu chỉ có 1 khoảng trắng giữa 2 từ.
Ví dụ: nhập vào xâu:" ____tin___hoc___"
in ra xâu:"tin_hoc"
Dấu _ chỉ khoảng cách >.<
 
Bài 1: Viết chương trình phần mềm cho máy ATM "Trong máy có sẵn các loại tiền 50, 100, 200, 500 tự nhận biết số tiền gửi là chẵn hay lẽ và tự chọn số tiền đưa ra sau cho giấy tiền đưa ra ít nhất"

Bài2
Bài 2: Viết chương trình có các cột sau:
Cột 1: số tt
Cột 2 Họ và tên
Cột 3: Môn
Cột 4 điểm KTra miệng
Cột 5:KT 15'
Cột 6: KT 1 tiết
Cột 7:Điểm trung bình
Cột 8: rút ra nhận xét (nếu như trên 8 giỏi, 6,5<x<8 khá, x<6.5 Trung bình)
Sau đó thống kê lại điểm môn nào cao nhất
 
Cứ download bài giải có khi lại hay

thanks các bạn nhiều

Có ai tổng hợp câu hỏi lại và bài giải thành 1 cuốn sách ko nhỉ
 
Bài tập: Viết Phương Trình mảng 20 dòng 20 cột. Tính tích các phần tử ở đường chéo phụ?
 
Bài tập: Viết Phương Trình mảng 20 dòng 20 cột. Tính tích các phần tử ở đường chéo phụ?

Bài này chạy 2 vòng for là đc mà.
Đường chéo phụ thì cứ tìm các phần tử trên đó mà tính thôi
1 mảng 2 chiều có các chỉ số i, j. Tìm i, j phù hợp rồi tính
Bạn có thể tham khảo:
var
a: array[1..100, 1..100] of integer;
i, j, s: integer;
begin
read(n);
for i := 1 to n do
for j := 1 to n do
read(a[i, j]);
s := 0;
for i := 1 to n do
s := s + a[i, n - i + 1];
writeln(s);
end.
 
Cho mình hỏi: Thế nào là "bẻ mảng" và ví dụ?
"bẻ mảng" mới nghe lần đầu..;))
với mảng thì chỉ có kiểu tràn mảng (bể mảng)
ví dụ:
_cho 1 mảng có 10 phần tử, muốn lưu 11 phần tử vào mảng đó -> sẽ bị tràn = bể mảng
 
Trạng thái
Không mở trả lời sau này.

VnKienthuc lúc này

Không có thành viên trực tuyến.

Định hướng

Diễn đàn VnKienthuc.com là nơi thảo luận và chia sẻ về mọi kiến thức hữu ích trong học tập và cuộc sống, khởi nghiệp, kinh doanh,...
Top