- Tham gia
- 30/1/2012
- Bài viết
- 340
chưa. đành chịu mất điểm bài đó vậy. hĩ. cũng không ai làm được ma. biet thế này mình không học tin học rồi
hả??Bt tin đó hả?
hả??????Bt tin đó hả?
uhm.nhìn là biết ngay màBt tin đó hả?
cảm ơn bạn nhiều nhé.hihiBài giải luôn câu 1 luôn nè: https://www.mediafire.com/?sw1nkhlw69hajph
Tại vì là file văn bản nên file "sn.dat" mình lưu thế này: 2 2 1 3 3 (có khoảng trắng).
Mình ghi ra file cũng có khoảng trắng mỗi số.
Câu 2: https://www.mediafire.com/?3mecbm0hswb0ijb
P/s: mò lại cấu trúc Pascal đúng mệt thiệt.
program merge_algorithm;
uses crt;
var a: array[1..100] of integer;
b: array[1..100] of integer;
na,nb: integer; {na: length of array A, nb: length of array B}
c: array[1..200] of integer;
nc: integer; {nc: length of array C}
input_file: text;
output_file: text;
i, j, k: integer;
begin
{Initialization}
assign(input_file, 'sn.dat');
reset(input_file);
assign(output_file, 'snc.dat');
rewrite(output_file);
{copy data into array A}
na := 0;
while not eoln(input_file) do
begin
na := na + 1;
read(input_file, a[na]);
end;
{copy data into array B}
nb := 0;
readln(input_file);
while not eoln(input_file) do
begin
nb := nb + 1;
read(input_file, b[nb]);
end;
close(input_file);
{merge algorithm}
i := 1; {Index of array A}
j := 1; {Index of array B}
k := 1; {Index of array C}
nc := na + nb; {length of array C is sum of length of array A and array B}
while (i <= na) and (j <= nb) do
begin
if a[i] <= b[j] then
begin
c[k] := a[i];
i := i + 1;
end
else
begin
c[k] := b[j];
j := j + 1;
end;
k := k + 1;
end;
if i <= na then
for i := i to na do
begin
c[k] := a[i];
k := k + 1;
end;
if j <= nb then
for j := j to nb do
begin
c[k] := b[j];
k := k + 1;
end;
{copy array C into file "snc.dat"}
for i := 1 to nc do
write(output_file, c[i], ' ');
close(output_file);
end.
-2 -1 0 1 3 5 7 9
2 4 6 8 10
-2 -1 0 1 2 3 4 5 6 7 8 9 10
Chào bạn sauthienthu. Mình dọc bài của bạn hơi trễ nên không biết có kịp giúp bạn không, mặc dù vậy mình vẫn trả lời thắc mắc của bạn. Trước khi trả lời mình có 2 điều cần nói :đề bài:
1,cho dãy số nguyên lấy từ tệp 'sn.dat' gồm các số 1,2,3. hãy sắp xếp dãy đó thành dãy sao cho phần đầu là các chữ số 1, tiêp theo là các chữ số 3 cuối cung là số 2 với số lần trao đổi ít nhất và lưu vào têp 'snsx.dat'.
2, cho dãy số nguyên lấy ra từ tệp 'songuyen.dat'. hãy sắp xếp dãy đó thành dãy không tăng và lưu vào tệp 'snsapxep.dat'