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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2010, 09:24   #1
SEKTOR
 
Регистрация: 12.04.2010
Сообщений: 6
По умолчанию Файл на паскале

Сформировать файл F1 целого типа. Найти сумму последних четырех компонент файла F1 и записать значение суммы на место 1-й компоненты. Из компонент файла F1 сформировать матрицу А(N,M) (N≤10, M≤20) , читая файл с начала. Если матрицу создать невозможно, сделать сообщение
SEKTOR вне форума Ответить с цитированием
Старый 13.04.2010, 09:32   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Наработки в студию )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.04.2010, 09:34   #3
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

А может лучше во "ФРИЛАНС" переместить???
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 13.04.2010, 10:15   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Пусть автор ответит, там видно будет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.04.2010, 23:15   #5
SEKTOR
 
Регистрация: 12.04.2010
Сообщений: 6
По умолчанию

наработок нет(я не шарю , и поэтому прошу помоч...
нашел решение только первой половины
SEKTOR вне форума Ответить с цитированием
Старый 26.04.2010, 23:20   #6
SEKTOR
 
Регистрация: 12.04.2010
Сообщений: 6
По умолчанию Вот,теперь надо доделать вторую половину,соеденить это всё в одну программу так чтоб это всё работало

program
forum;
uses
crt;
var
F1:file of integer;
temp:integer;
sum:integer;
len:integer;
i:integer;
begin

randomize;
clrscr;
assign(f1,'infile.dat');

{Открываем файл для перезаписи, записываем 10 случайных чисел}
rewrite(f1);
for i:=1 to 10 do
begin
temp:=random(10);
write(f1,temp);
end;
close(f1);
{Собственно задание}
{Открываем файл, считаем количество чисел}
reset(f1);
len:=0;
while not eof(f1) do
begin
read(f1,temp);
inc(len);
end;
writeln('File length: ',len);
close(f1);
sum:=0;
{Счтиаем сумму последних четырех чмсел}
reset(f1);
for i:=1 to 10 do
begin
read(f1,temp);
write(temp,' ');
if i>6 then sum:=sum+temp;
end;
writeln;
writeln('sum= ',sum);
close(f1);

{Записываем сумму на 1-ю позицию}

reset(f1);
write(f1,sum);
close(f1);
writeln('Result: ');
{Выводим результат}
reset(f1);
for i:=1 to 10 do
begin
read(f1,temp);
write(temp,' ');
end;
writeln;
readkey
end.
SEKTOR вне форума Ответить с цитированием
Старый 27.04.2010, 10:09   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

чем хороши типизированные файлы, так тем, что можно одной командой перейти на любую запись. Кроме того, FileSize() для этих файлов возвращает КОЛИЧЕСТВО элементов в файле!
Код:
{Считаем сумму последних четырех чмсел}
reset(f1);
fs := Filesize(f1);
if fs<4 then begin
   WriteLn('Ошибка. В файле меньше 4-х элементов! нечего считать!');
end
else begin
  sum:=0;
  {ставим позицию в файле на 4-ю от конца запись}
  seek(f1, fs-4);
  for i:=1 to 4 do begin
     read(f1,temp);
     sum := sum + temp;
  end;

  {Записываем сумму на 1-ю позицию}
  seek(f1,0);
  Write(f1, sum);
end;
close(f1); {закрыли файл}
p.s. для решения второй части
Код:
объявляйте массив:
var MyIntArray : array[1..10,1..20] of integer;

переменные для ввода размерности от пользователя
  N,M : integer;

 WriteLn('Введите размерность N,M');
 readln(N,M);
 if (N<1) or (N>10) or (M<1) or (M>20) then begin
   WriteLn('Такие размеры вводить нельзя!');
   halt;
 end;  

 Reset(f1);
 if FileSize(f1)<(N*M) then begin
   WriteLn('Не получится заполнить массив, в файле недостаточно элементов!');
 end
 else begin
    {чтение из файла в массив}
    for i:=1 to N do
      for j:=1 to M do 
         Read(f1,MyIntArray[i,j]);

   {вывод массива на экран}
    for i:=1 to N do
      begin
        for j:=1 to M do 
           Write(MyIntArray[i,j]:5,' ');
        WriteLn;
      end;
 end;
 Close(f1);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.04.2010, 19:23   #8
SEKTOR
 
Регистрация: 12.04.2010
Сообщений: 6
По умолчанию

что то не работает((((соедините пожалуйста в целый код,чтобы всё работало...а то я что то не догоняю(((
SEKTOR вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись в файл в Паскале Cookson Помощь студентам 3 18.03.2010 17:51
Задача на файл в Паскале tatu_cat_69 Помощь студентам 2 04.06.2009 15:08
Задача на файл в паскале Юрии Александрович Паскаль, Turbo Pascal, PascalABC.NET 3 26.12.2007 17:08