Viết chương trình pascal nhập 1 dãy gồm N(0<N<=100) số nguyên a1,a2,a3,...an và 1 số nguyên k, mỗi số có giá trị không quá 10000
yêu cầu:-Xếp lại dãy đó theo thứ tự giảm dần
-chèn số nguyên k vào dãy sao cho dãy vẫn giữ đc thứ tự giảm dần(không đc sắp xếp lại)
Quảng cáo
2 câu trả lời 359
program SapXepVaChen;
const
MAX = 100;
var
a: array[1..MAX] of Integer;
n, k, i, j: Integer;
procedure SapXepGiamDan;
var
temp: Integer;
begin
for i := 1 to n - 1 do
for j := i + 1 to n do
if a[i] < a[j] then
begin
temp := a[i];
a[i] := a[j];
a[j] := temp;
end;
end;
procedure ChenPhanTuK;
begin
i := n;
while (i > 0) and (a[i] < k) do
begin
a[i + 1] := a[i];
Dec(i);
end;
a[i + 1] := k;
end;
begin
write('Nhap so phan tu (0 < N <= 100): ');
readln(n);
// Nhập dãy số
for i := 1 to n do
begin
write('Nhap a[', i, ']: ');
readln(a[i]);
end;
write('Nhap so nguyen k: ');
readln(k);
SapXepGiamDan; // Sắp xếp giảm dần
ChenPhanTuK; // Chèn số nguyên k
// Hiển thị dãy mới
writeln('Day moi sau khi sap xep va chen:');
for i := 1 to n + 1 do
write(a[i], ' ');
readln; // Để chương trình không đóng ngay khi thực hiện xong
end.
Dưới đây là một chương trình Pascal để nhập dãy số và chèn một số nguyên k vào dãy sao cho thứ tự giảm dần được duy trì:
`pascal
program InsertAndSort;
const
MAX_N = 100;
var
arr: array[1..MAX_N] of integer;
n, k, i, j: integer;
procedure InsertAndSortArray(var arr: array of integer; n, k: integer);
var
i, j: integer;
begin
// Chèn số k vào dãy sao cho dãy vẫn giữ thứ tự giảm dần
i := n;
while (i > 0) and (arr[i] < k) do
begin
arr[i + 1] := arr[i];
i := i - 1;
end;
arr[i + 1] := k;
// Xếp lại dãy theo thứ tự giảm dần
for i := 1 to n do
begin
for j := i + 1 to n do
begin
if arr[i] < arr[j] then
begin
// Hoán đổi giá trị
arr[i] := arr[i] + arr[j];
arr[j] := arr[i] - arr[j];
arr[i] := arr[i] - arr[j];
end;
end;
end;
end;
begin
// Nhập số phần tử của dãy và số nguyên k
write('Nhap so phan tu cua day (0 < N <= 100): ');
readln(n);
write('Nhap day so nguyen: ');
for i := 1 to n do
read(arr[i]);
write('Nhap so nguyen k: ');
readln(k);
// Gọi hàm để chèn và sắp xếp dãy
InsertAndSortArray(arr, n, k);
// Hiển thị dãy sau khi chèn và sắp xếp
writeln('Day sau khi chen va sap xep: ');
for i := 1 to n + 1 do
write(arr[i], ' ');
readln;
end.
`
Lưu ý rằng đoạn mã trên là một chương trình Pascal đơn giản. Bạn có thể nhập dãy số và số nguyên k theo yêu cầu của đề bài để kiểm tra chương trình.
Quảng cáo
Câu hỏi hot cùng chủ đề
-
4157