Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ФАЙЛЫ, выписывание кратных чисел 
:(
    Опции темы
настюша
Дата 25.11.2006, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 30.10.2006

Репутация: нет
Всего: 2



 smile Плиз помогите сообразить: как надо сделать, чтобы правильно переписать в другой файл последовательного доступа те элементы, которые кратны K. Задача:
Записать в файл последовательного доступа N произвольных натуральных чисел. Переписать в другой файл последовательного доступа те элементы, которые кратны K. Вывести полученный файл на печать.
Я делаю так (заранее извиняюсь за наверное неимоверное количество ошибок):
Код

uses crt;
var
 f:file of word;
 ftext:text;
 n,k:word;
 i:integer;
 u:word;
 str:string;
begin
 clrscr;
 write('Введите количество действительных чисел N=');
 readln(n);
 write('Введите делитель К=');
 readln(u);
 randomize;
 assign(f,'f.dat');
 assign(ftext,'ftext.txt');
 rewrite(f);
 rewrite(ftext);
 i:=1;
 while i<=n do
  begin
  k:=(random(100)+1;
  write(f,k);
  write(ftext,k:4);
  write(k:4);
    if k mod u=0 then
    begin
    str[i]:=k;
    write(ftext, str[i]:4);
    write(str[i]:4);
    end;
   inc(i);
  end;

close(f);
close(ftext);
reset(f);
append(ftext);
writeln;
writeln(ftext);
writeln;

writeln(ftext, 'Числа кратные К:  ',str);
writeln('Числа кратные К:  ',str);
close(ftext);
readln;
end.

PM MAIL   Вверх
Zero
Дата 26.11.2006, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



Цитата(настюша @  25.11.2006,  23:20 Найти цитируемый пост)
Переписать в другой файл последовательного доступа те элементы, которые кратны K.

На сколько я понимаю переписать в другой файл, означает: сначало создать один файл, в него записать элементы, а потом переписать их в другой (в твойм примере ты пыталась их сразу сортировать насколько я понял smile )
И не обязательно файлы делать разных типов, последовательный имеелось ввиду, что ненужно изобретать велосипед.
Без оптимизации, немного переделаный пример будет выглядить так:
Код

uses crt;
var
 f,ftext:file of word;
 n,k:word;
 i:integer;
 u:word;
begin
 clrscr;
 write('Введите количество действительных чисел N=');
 readln(n);
 write('Введите делитель К=');
 readln(k);
 randomize;
 assign(f,'c:\f.dat');
 rewrite(f);
 writeln('Записываемые элементы:');
 for i:=1 to n do
   begin
     u:=random(100);
     write(f,u);
     write(u,' ');
  end;
 close(f);

  assign(ftext,'c:\ftext.txt');
  rewrite(ftext);
  reset(f);
  for i:=1 to n do
    begin
      read(f,u);
      if u mod k = 0 then
        write(ftext,u);
    end;
  close(f);
  close(ftext);

  writeln;
  writeln('Числа кратные К:');
  reset(ftext);
  While Not EOF(Ftext) Do
    Begin
      Read(Ftext, u);
      Write(u,' ');
    End;
  close(ftext);
  readkey;
end.

PM MAIL ICQ   Вверх
настюша
Дата 26.11.2006, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 30.10.2006

Репутация: нет
Всего: 2



 smile Огромное спасибо, но я весь день (почти) с этой задачей просидела  smile  и сама ее довела до ума (еле-еле) smile 
PM MAIL   Вверх
Zero
Дата 26.11.2006, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



Молодец!!! smile 
PM MAIL ICQ   Вверх
ДмитрийС
Дата 5.12.2006, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 5.12.2006
Где: Moscow

Репутация: нет
Всего: нет



Вопрос по работе с текстовыми файлами.
Как сравнить 2 текстовых файла и после этого соединить в один новый файл. (сначала всё из более "длинного", а за ним всё из более "короткого"). файлы сравниваются по строкам. Не могу понять алгоритм выполнения на Turbo Pascal.  smile 
PM MAIL WWW ICQ   Вверх
Zero
Дата 5.12.2006, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



Во первых ДмитрийС, прочитай правила форума
Для каждого вопроса, нужно создавать отдельную тему. Ну ладно, раз ты новичёк, то на первый раз прощаю.
Цитата(ДмитрийС @  5.12.2006,  22:56 Найти цитируемый пост)
Не могу понять алгоритм выполнения на Turbo Pascal.
 Ну вобщем-то алгоритмы они и в африке алгоритмы, с самим паскалем не как не связаны, ну доладно, вобщем это так:
1. с учётом что файлы сравниваются по строкам, то надо с начала, определить сколько строк в 1-ом файле, потом сколько во втором.
2. создать новый файл, и записать в него сначало те строки из того файла, где их больше, потом строки второго файла.

Вобщем-то и весь алгоритм. smile 
PM MAIL ICQ   Вверх
лиса
Дата 11.1.2007, 02:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 10.1.2007

Репутация: нет
Всего: нет



а можно вопрос,а как в заданной последовательности удалить члены, порядковые номера которых кратны пяти??

задача такая:"В текстовом файле содержится последовательность действительных чисел. В заданной последовательности удалить члены, порядковые номера которых кратны пяти. Измененную последовательность переписать в результирующий файл. Имена исходного и результирующего файлов вводятся с клавиатуры."

я непонимаю как указать порядковые номера?!

PM MAIL   Вверх
Fighter
Дата 11.1.2007, 05:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 810
Регистрация: 5.1.2005

Репутация: нет
Всего: 2



Цитата(лиса @  11.1.2007,  02:00 Найти цитируемый пост)
а можно вопрос,а как в заданной последовательности удалить члены, порядковые номера которых кратны пяти??


Уже выше говорили что 

Цитата(Zero @  5.12.2006,  22:11 Найти цитируемый пост)
Для каждого вопроса, нужно создавать отдельную тему.



Ну ладно, будешь знать на будущее, а так, вот посмотри:

Код

uses crt;

var
  i: integer;
  f,f2: text;
  filename: string;
  filename2: string;
  number: integer;
  strNum: string;
  code: integer;

begin
  clrscr;
  write('Vvedite imya faila dlya zapisi posledovatelinosti: ');
  readln(filename);
  i := 0;
  assign(f, filename);
  rewrite(f);
    while not (UpCase(strNum[1]) = 'S') do
    begin
      write('Enter number. S - to stop entering: ');
      readln(strNum);
      if (UpCase(strNum[1]) <> 'S') then
        writeln(f, strNum);
    end;
  close(f);
  write('Vvedite imya faila dlya resultiryushei posledovatelinosti: ');
  readln(filename2);
  assign(f, filename);
  assign(f2, filename2);
  reset(f);
  rewrite(f2);
  i := 0;
  while not eof(f) do
  begin
    inc(i);
    readln(f, strNum);
    if i mod 5 <> 0 then
      writeln(f2, strNum);
  end;
  close(f);
  close(f2);
  write('Now look at the result...');
  assign(f, filename2);
  reset(f);
  while not eof(f) do
  begin
    readln(f, strNum);
    writeln(strNum);
  end;
  readkey;
end.

PM MAIL   Вверх
лиса
Дата 11.1.2007, 06:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 10.1.2007

Репутация: нет
Всего: нет



простите лисенка smile я больше не буду,обещаю


спасибо  большое!!!!!!!!!!!!
прям спасибище!!!!!!!!!!!!!!!!
муррр
PM MAIL   Вверх
Magister Y0da
Дата 11.1.2007, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зелёненький
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 30.11.2004

Репутация: нет
Всего: 2



Я конечно не админ smile , НО название темы должно отображать её смысл smile 
--------------------
PM MAIL ICQ   Вверх
Zero
Дата 11.1.2007, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



Цитата(Magister Y0da @  11.1.2007,  13:21 Найти цитируемый пост)
Я конечно не админ  , НО название темы должно отображать её смысл
 Она отражает её смысл... А вот с ответом ты опоздал немного... Эта тема была создана, ещё в ноябре 2006. smile 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0898 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.