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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2008, 20:01   #1
Aleo13
Пользователь
 
Регистрация: 01.10.2008
Сообщений: 14
По умолчанию Задача по теме "файлы"

Помогите с программой, очень сильно прошу.
Создайте файл f целых чисел (значения вводятся с клавиатуры). Проанализировав в программе созданный файл, создайте файл содержащий суммы первого и (k div 2)-го числа, второго и (k div 2+1)-го числа, третьего и (k div 2+2)-го числа и так далее. Выведите на экран содержимое файлов. Предусмотрите в программе вывод соответствующего сообщения, если элементов в файле не оказалось.
Помогите, пожалуйста. Я даже не понимаю толком условия. Заранее благодарен.
Aleo13 вне форума Ответить с цитированием
Старый 07.11.2008, 20:09   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А что тут не понятного?
Создаем файл (File of integer)
В цикле его наполняем цифрами (write(f,число))
Далее становимся на начало (Seek(f,0)).
В цикле проходим записи, перескакивая по ним тем же Seek(f,k div 2+i)где i-счетчик цикла, ну и не забываем про выход за пределы файла.
ДЕлаем подсчеты и наполняем ими другой файл.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.11.2008, 20:42   #3
Aleo13
Пользователь
 
Регистрация: 01.10.2008
Сообщений: 14
По умолчанию

А как мне сложить элементы?
Aleo13 вне форума Ответить с цитированием
Старый 07.11.2008, 21:00   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Считывать элементы в переменку умеешь? через read
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.11.2008, 21:27   #5
Aleo13
Пользователь
 
Регистрация: 01.10.2008
Сообщений: 14
По умолчанию

Неа...я в этом плане немного тупой..
Aleo13 вне форума Ответить с цитированием
Старый 07.11.2008, 22:50   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вот потому почитай учебники про эти операторы )
И кста тут куча на форуме примеров было про файлы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.11.2008, 23:32   #7
Aleo13
Пользователь
 
Регистрация: 01.10.2008
Сообщений: 14
По умолчанию

Я смотрел примеры и пытался на основе их что-то написать...только ничего не выходит. Я не знаю что писать там где точки)
Код:
Program primer;
Var f1,f2: file of integer;
    i,n: integer;
    S: integer;
Begin

    Assign(f1, ‘file1’); 
    Rewrite(f1); 
    Readln(n);
    for i:=1 to n do
    begin
        readln(s);
        writeln(f1,s); 
    end;
   Reset(f1); 
    Assign(f2, ‘file2’); 
    Rewrite(f2); 
 
    Begin
        Readln(f1,s);
       for i:=1 to n do
..................................
        Writeln(f2,s);
    End;
    Close(f1,f2);

    Reset(f2); 
    While not eof(f2) do 
    Begin
        Readln(f2,s);
        Writeln(s); 
    End;
End.

Последний раз редактировалось Aleo13; 08.11.2008 в 00:50.
Aleo13 вне форума Ответить с цитированием
Старый 08.11.2008, 11:23   #8
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Вот написал, как тебе сказал Виталий, разбирайся, вникай и больше такое не спрашивай, сам делай. Книги + немного сообразительности.
Код:
uses crt;
var f,g:file of integer;
    k,i,a,b,s:integer;
begin
clrscr;
randomize;
{Создаем файл (File of integer)}
assign(f,'file1');
rewrite(f);
assign(g,'file2');{файл для выводп результата}
rewrite(g);
{В цикле его наполняем цифрами (write(f,число))}
write('Vvedite kolichestvo chisel k=');
readln(k);
for i:=0 to k-1 do
   begin
    a:=random(50);
    write(f,a);
   end;
reset(f); {откроем для чтения}
Writeln('Ishodnyj fail F:');
if Filesize(f)=0 then writeln('Zapisej v faile net!'){если элементов нет}
else
while not eof(f) do
  begin
   read(f,a);{читаем}
   write(a,' '); {выводим на экпан}
  end;
writeln;
{Далее становимся на начало (Seek(f,0)).}
i:=0;
{В цикле проходим записи, перескакивая по ним тем же Seek(f,k div 2+i)где i-счетчик цикла }
while i<=k div 2 -1 do {поскольку i не более половины размера файла,k div 2 + i не боле длины файла}
  begin
     Seek(f,i); {указатель в позицию i (0,1,2...)}
     read(f,a); {читаем}
     Seek(f,k div 2 + i ); {указатель в нужную позицию}
     read(f,b);{читаем}
     s:=a+b; {складываем}
     write(g,s); {записываем в выходнй файл}
     inc(i); {переходим к следующей паре}
   end;
reset(g);{открываем для чтения}
if Filesize(g)=0 then writeln('Zapisej v faile net!')
else
Writeln('Fail rezultta G:');
while not eof(g) do
  begin
    read(g,s);
    write(s,' ');
  end;
close(f);
close(g);
readln
end.
puporev вне форума Ответить с цитированием
Старый 08.11.2008, 12:49   #9
Aleo13
Пользователь
 
Регистрация: 01.10.2008
Сообщений: 14
По умолчанию

Огромное спасибо)))
Aleo13 вне форума Ответить с цитированием
Старый 10.11.2008, 14:29   #10
Aleo13
Пользователь
 
Регистрация: 01.10.2008
Сообщений: 14
По умолчанию

Эту же задачу сказали записать с помощью текстового файла. Я 3 часа колупался так ничего нормального и не получилось. Посмотрите, пожалуйста, где ошибка
Код:
uses crt;
var f,g:text;
    k,i,s:integer;
    c: array[1..100] of integer;
begin
clrscr;
assign(f,'file1');
rewrite(f);
assign(g,'file2');
rewrite(g);
write('Vvedite kolichestvo chisel k=');
readln(k);
for i:=0 to k-1 do
begin
readln(a);
  write(f,a);
end;
close(f);

reset(f);
i:=1;
Writeln('Fail rezultta G:');
while (not eof(f)) and (i<=k) do
   read(f,c[i]);
   i:=i+1;
   close(f);

reset(f);
for i:=1 to k-1 do
  begin
     s:=c[i]+ k div (1+c[i]);
     write(g,s);
     end;

reset(g);
Writeln('Fail rezultta G:');
while not eof(g) do
  begin
    read(g,s);
    write(s,' ');
  end;
close(f);
close(g);
readln
end.

Последний раз редактировалось Aleo13; 10.11.2008 в 14:32.
Aleo13 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужна небольшая курсовая по теме "Графика в Паскале". Win't Фриланс 2 18.12.2007 07:53
"Транспортная задача", "Поиск решения" Perroman Microsoft Office Excel 3 12.12.2007 17:12
"Текстовые файлы" и "Графика и подпрограммы" Nata!!!@ Помощь студентам 5 05.12.2007 18:17