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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2010, 18:02   #1
Екатерина55555
Новичок
Джуниор
 
Регистрация: 28.11.2010
Сообщений: 1
По умолчанию Файлы

Помогите пожалуйста доделать программу....по заданию их нужно сделать как минимум две.
"Составить программы, с помощью которых:
- сформировать файл, элементами которого являются массивы вещественных чисел, введенных с клавиатуры;
- во всех компонентах файла исключить максимальные элементы. "
Первую сделать получилось
Код:
uses crt;
const n=5;
type mass=array[1..n] of real;
var    f: file of mass;
        a:mass;
        i,j,k:integer;
begin clrscr;
assign (f,'fileMASS.dat');
rewrite (f);
write('kol-vo elementov faila- '); readln(k);
for i:=1 to k do
        begin for j:=1 to n do readln(a[j]); writeln; write(f,a) end;
close(f);
readkey
end.
А вот со второй (во всех компонентах файла исключить максимальные элементы) проблема.....
может кто-то знает как сделать?

Последний раз редактировалось Stilet; 29.11.2010 в 20:10.
Екатерина55555 вне форума Ответить с цитированием
Старый 29.11.2010, 20:33   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Неплохо тебя преподаватель подловил... Передавай ему привет, я давно задач с хитрецой не видел.
Вот тебе от меня лекарство, надеюсь поможет:
Код:
type
 tmass=record
  a:array[1..100] of integer;
  Len,max:integer;
 end;
var
 mas:tmass;
 f,f2:file of tmass;
 i,k:integer;
begin

{Заводим файл}
 assign(f,'file');rewrite(f);
 for i:=1 to 10 do begin  mas.max:=-9999;
  for k:=1 to 5 do begin
   mas.a[k]:=5-random(10);  write(mas.a[k]:5);
   if mas.max<mas.a[k] then mas.max:=mas.a[k];
  end; writeln;
  mas.Len:=5;
  write(f,mas);
 end;
 writeln;

{Сжимаем без максимумов}
 reset(f);
 assign(f2,'file2');rewrite(f2);
 while not eof(f) do begin
  read(f,mas);k:=1;
  for i:=1 to mas.Len do begin
   mas.a[k]:=mas.a[i];
   if mas.a[i]<>mas.max then
    inc(k);
  end;
  mas.Len:=k-1;
  write(f2,mas);
 end;
 close(f); writeln;  reset(f2);

{Выводим второй массив из сжатого файла}
 while not eof(f2) do begin
  read(f2,mas);
  for i:=1 to mas.Len do begin
   write(mas.a[i]:5);
  end; writeln;
 end;
 Close(f2);
  { TODO -oUser -cConsole Main : Insert code here }
 readln;
end.
Удачи.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файлы куколка Паскаль, Turbo Pascal, PascalABC.NET 0 23.05.2010 17:04
Файлы данных.Типизированные файлы. вылка Помощь студентам 6 17.05.2010 15:42
Файлы ZeroQl Помощь студентам 1 19.05.2009 20:11
два вредных вопроса:про асю и прикриплёные файлы файлы steck Свободное общение 3 17.06.2007 14:53