Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.12.2010, 20:12   #1
Skazz
Новичок
Джуниор
 
Регистрация: 29.12.2010
Сообщений: 2
По умолчанию Типизированые файлы.

Мне осталась последняя лаба по програмированию... не получаеться доделать. Программа не записует числа в фаел. Подскажите ошибку пожалуйста.
Код:
Program lab8;
Procedure CreateFile;
var
f1:file of integer;
i,n:integer;
A:array[1..100] of integer;

Begin

    Assign(f1, 'D:\numbers.txt'); 
    Rewrite(f1);  
   begin
        write(f1,A[i]); 
    end;
    close(f1); 
end;

Procedure Sort;
 var A:array[1..100] of integer;
 n,i,m,k,x : integer;

begin
 write('Количество елементов массива: ');
 read(N);
 for i:=1 to n do read(A[i]);
 for k:=n downto 2 do 
   begin
    m:=1; 
    for i:=2 to k do if A[i]>A[m] then m:=i;
    x:=A[m]; A[m]:=A[k]; A[k]:=x;
   end;
 writeln('Отсортированные числа:');
 for i:=1 to n do write(A[i],' '); 
 readln;
 readln;
end;
Begin
Sort;
CreateFile;
end.
Вобщем прога написана неправельно... но по другому я не умею... задание звучит вот так:
Создать фаел целых чисел, отсортировать их по возростанию. Переписать в новый файл квадраты етих чисел.
Зарание спасибо за помощь.
Skazz вне форума Ответить с цитированием
Старый 01.01.2011, 13:25   #2
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

не знаю на счет процедуры сортировки, но процедура записи массива в файл должна выглядеть примерно так:
Код:
var
  A: array [1..100] of integer;

...

Procedure CreateFile;
var
f1:file of integer;
i:integer;
Begin
    Assign(f1, 'D:\numbers.txt'); 
    Rewrite(f1);  
    for i:=1 to 100 do
      write(f1,A[i]); 
    close(f1); 
end;
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Старый 01.01.2011, 13:37   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Код:
for i:=1 to 100 do
не, не правильно.
должно быть:
Код:
for i:=1 to n do...


Цитата:
Код:
Procedure CreateFile;
var
f1:file of integer;
i,n:integer;
A:array[1..100] of integer;

Begin

....


Procedure Sort;
 var A:array[1..100] of integer;
 n, i,m,k,x : integer;
begin
 write('Количество елементов массива: ');
 read(N);
выделенное красным УДАЛИТЬ напрочь!

и добавить глобальное определение массива A и N

И учить, что такое локальные переменные и глобальные переменные! и чем они отличаются!

по хорошему, конечно, в процедуры Sort и CreateFile (кстати, название не очень хорошее...) нужно передавать массив и размер массива в качестве параметров.
Но, для простоты, можно и глобальные использовать (правда, это не очень приветствуется).


вот решение с использованием глобальных переменных:
Код:
program lab8;

var
  A : array[1..100] of integer;
  n : integer;


procedure InputData;
var  i  : integer;
begin
  repeat
    write('Количество элементов массива: ');
    read(N);
    if (N<1) or (N>100) then 
       WriteLn('Недопустимое число, должно быть от 1 до 100.');
  until (N>=1) and (N<=100);
  for i := 1 to n do begin
     Write('Введите A[',i,']');
     readln(A[i]);
  end;
end;

procedure Sort;
var  i, m, k, x: integer;
begin
  for k := n downto 2 do
  begin
    m := 1;
    for i := 2 to k do if A[i] > A[m] then m := i;
    x := A[m]; A[m] := A[k]; A[k] := x;
  end;
  writeln('Отсортированные числа:');
  for i := 1 to n do write(A[i], ' ');
  readln;
end;

procedure CreateIntegerFile;
var
  f1 : file of integer;
  i  : integer;
begin
  Assign(f1, 'D:\numbers.txt'); 
  Rewrite(f1);  
  for i:=1 to n do
      write(f1,A[i]); 
  close(f1); 
end;


begin
  InputData;
  Sort;
  CreateIntegerFile;
end.

Последний раз редактировалось Serge_Bliznykov; 01.01.2011 в 13:48.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.01.2011, 04:23   #4
Skazz
Новичок
Джуниор
 
Регистрация: 29.12.2010
Сообщений: 2
По умолчанию

Спасиба большое. А можно зделать так чтоб программа сначалла создавала фаел с неотсортироваными числами, а потом считывала ети числа и отсортированными переносила в другой фаел?
Skazz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Типизированые файлы целых чисел Neyrone Помощь студентам 8 19.02.2010 12:29
типизированые файлы паскаль -Spirit- Помощь студентам 1 14.01.2010 10:51
Типизированые файлы DELPHI 08ekhiv1 Помощь студентам 8 10.03.2009 16:38
Записи/типизированые файлы innaa639 Паскаль, Turbo Pascal, PascalABC.NET 3 08.12.2008 09:08
2 вопроса по делфи на тему типизированые файлы. ЭД4-0014 Помощь студентам 5 06.06.2008 12:48