ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

паскаль
  #11  
Старый 22.05.2009, 20:15
Аватар для ViP-K1LLeR
ViP-K1LLeR
Участник форума
Регистрация: 13.08.2008
Сообщений: 146
Провел на форуме:
1445936

Репутация: 159
По умолчанию паскаль

Задали нам вот такую програмку.

Условие:
В текстовом файле D1.DAT записано 2520 вещественных чисел. Записать числа из этого файла в файл D2.DAT по N чисел в строке,рассортировав их предварительно в порядке возрастания в пределах одной строки. Число N задается пользователем (0<N<11)


Требования:
Программа должна содержать следующие подпрограммы:
  1. Подпрограмма чтения данных из файлов.
  2. Подпрограмма сортировки заданного фрагмента.
  3. Подпрограмма записи данных в файл.
В тексте программы не должно быть меток. Подпрограммы не должны использовать глобальные переменные.



Начал писать, получилось это:
Код:
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.
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сюда выкладываем все проги для фрикринга мобильников, которых знаем! nigger Сотовый фрикинг 5 11.04.2009 11:15
Американским студентам запретили пользоваться Skype KPOT_f!nd Мировые новости 1 28.09.2006 03:47
Любителям квестов сюда!! FoX's Болталка 10 25.01.2005 20:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ