
22.05.2009, 20:15
|
|
Участник форума
Регистрация: 13.08.2008
Сообщений: 146
Провел на форуме: 1445936
Репутация:
159
|
|
паскаль
Задали нам вот такую програмку.
Условие:
В текстовом файле D1.DAT записано 2520 вещественных чисел. Записать числа из этого файла в файл D2.DAT по N чисел в строке,рассортировав их предварительно в порядке возрастания в пределах одной строки. Число N задается пользователем (0<N<11)
Требования:
Программа должна содержать следующие подпрограммы: - Подпрограмма чтения данных из файлов.
- Подпрограмма сортировки заданного фрагмента.
- Подпрограмма записи данных в файл.
В тексте программы не должно быть меток. Подпрограммы не должны использовать глобальные переменные.
Начал писать, получилось это:
Код:
program сссс;
uses
crt;
type
arr1 = array[0..2519] of integer;
arr2 = array[0..10, 0..300] of integer;
procedure readfromfile(a: arr1);
var
f: text;
i, j: integer;
begin
assign(f, 'c:\d1.dat');
reset(f);
for i := 0 to 2519 do
begin
readln(f, j);
a[i] := j;
end;
end;
procedure entern(n: integer);
begin
write('vvedite n = ');
readln(n);
end;
procedure sorting(n: integer; a: arr1);
var
i, j, k, start, finish: integer;
begin
entern(n);
readfromfile(a);
for i := 0 to 2519 do
begin
if 2519 div n = 0 then
begin
start := i;
finish := start + n -1;
i := finish;
end;
for j := start to finish do
for k := finish downto start do
if a[j] < a[k] then
begin
a[j] := a[j] + a[k];
a[k] := a[j] - a[k];
a[j] := a[j] - a[k];
end;
end;
end;
procedure writetofile;
var
a: arr1;
f: text;
n, i: integer;
begin
sorting(n, a);
assign(f, 'c:\d2.dat');
rewrite(f);
for i := 0 to 2519 do
begin
if n = i then
writeln(f);
write(f, a[i]);
end;
end;
begin
clrscr;
writetofile;
readkey;
end.
Программа отказывается работать(
Подозреваю, что ошибся в процедуре сортировки.
Помогите plz. 
|
|
|