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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2011, 19:47   #1
clasterit
Пользователь
 
Регистрация: 23.10.2011
Сообщений: 17
По умолчанию Чтение из файла

Дело вот в чём:
Цитата:
Задача 1.
Нужно написать задачу, которая для заданных двух целых чисел будет выводить их положительную разницу.

Формат входных данных:
Каждая строка имеет два целых числа, которые по модулю не превышают 2^32. Количество строк текста не больше 10.

Формат исходных данных:
Для каждой строки вывести положительную разницу целых чисел.
Задачу-то решил, точнее сам алгоритм. Но вот не смог приписать диапазон чисел(2 в 32 степени как-то муторна записывать, ведь оно превышает longint) и само считывание строк с файла. Вроде и с файлами работать умею, но еще не практиковал в считывании более 1 строки. Поможете?

Вот мое решение:
Код:
program rizniza;

var a, b, c: longint;

begin
  writeLn('введите два числа');
  readLn(a, b);
  c:=a-b
  if c = 0 then writeLn('rizniza: 0');
  if c > 0 then writeLn('rizniza: ', c);
  if c < 0 then begin
    c:= c*(-1);
    writeLn('rizniza: ', c);
    end;
  readLn;
 {writeLn('output.txt', c); - здесь оператор записи числа в файл, чтобы записывало само число, без слов}
end.
Можете помочь прикрутить сюда чтение множества строк с файла? И запись, желательно. А то у меня только первую строку читает
clasterit вне форума Ответить с цитированием
Старый 02.11.2011, 20:23   #2
iCaesy
In progress...
Форумчанин
 
Регистрация: 25.09.2011
Сообщений: 161
По умолчанию

Код:
while not eof(f) do
Пока не конец файла, делать....
Код:
...
f:file of integer/text....;
...
begin
...
write (f,тут то что записуем);
close (f);
end.
Rewrite, assign, и т.д. не писал, думаю и так ясно.
iCaesy вне форума Ответить с цитированием
Старый 03.11.2011, 10:49   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а я почти уверен, что это задание на длинную арифметику.
ведь достаточно завести тип данных, где все цифры числа хранятся в массиве (тут хватит 11 знаков), написать две процедуры: сложения чисел и вычитания. и всё.
задача, считай, решена!

p.s. в условии как-то невнятно сказано, могут ли быть исходные числа ОТРИЦАТЕЛЬНЫМИ числа (раз не сказано, не не могу, значит могут, имхо!).
Если могут - то программа должна это учитывать!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.11.2011, 23:54   #4
clasterit
Пользователь
 
Регистрация: 23.10.2011
Сообщений: 17
По умолчанию

Serge_Bliznykov, могут. программка их учитывает и решение правильное. но у меня только одна проблема - считывание до 10 строчек текста и такое же вписывание их в выходной файл

Код:
program rizniza;

var a, b, c: longint;
    I, O: text;
begin
  assign(I, 'C:\1\input.txt');
  reset(I);
  assign(O, 'C:\1\output.txt');
  rewrite(O);
  {writeLn('vvedite dva chisla');}
  while not EOF(I) do
  begin
  readLn(a, b);
  c:=a-b;
  if c = 0 then writeLn('rizniza 0');
  if c > 0 then writeLn('rizniza ', c);
  if c < 0 then begin
    c:= c*(-1);
    writeLn('rizniza ', c);
    end;
  readLn;
 writeLn(O, c);
 end;
 close(i);
 close(o);
end.
все-равно не пашет. ни считывания, ни записывания не происходит(( два числа писать вручную. выход через команду end. а надо было бы, чтобы программа все считала и записала сама

о, так я допустил ошибку! я в операторе чтения не вписал входной файл.
Код:
readLn(I, a, b);
вот чо надо было сделать))

Последний раз редактировалось clasterit; 04.11.2011 в 10:34.
clasterit вне форума Ответить с цитированием
Старый 04.11.2011, 12:19   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну и где у Вас ЧТЕНИЕ из файла?!?!
должно быть так:
Код:
readLn(I, a, b);
да и вообще, я бы так предложил написать основной цикл:
Код:
  while not EOF(I) do
  begin
    readLn(I, a, b);
    c:=abs(a-b);
    Writeln(O, c);
  end;
  Close(I);
  Close(O);
end.


теперь про типы данных...
Цитата:
программка их учитывает и решение правильное.
мне бы Вашу уверенность
дело в том, что
Цитата:
Но вот не смог приписать диапазон чисел(2 в 32 степени как-то муторна записывать, ведь оно превышает longint)
Вы правы. число 2^32 - это 4294967296
попробуйте в программу забить числа 4200000001 и число 1 (Вы согласны, что они не превышает 2^32) и расскажите, что Вам программка скажет, какой результат выдаст...
я уже не говорю про пару чисел 4294967200 и -4294967200.. чему там будет равна их положительная разница?!...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.11.2011, 17:09   #6
Lubawa
Пользователь
 
Регистрация: 04.11.2011
Сообщений: 21
По умолчанию

Здравствуйте. Мне необходимо чтоб из текстового файла данные занеслись в переменную типа рекорд с 3 полями, а потом в таком же виде записались в другой файл. Помогите пожалуйста.
Lubawa вне форума Ответить с цитированием
Старый 04.11.2011, 17:46   #7
clasterit
Пользователь
 
Регистрация: 23.10.2011
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
ну и где у Вас ЧТЕНИЕ из файла?!?!
должно быть так:
Код:
readLn(I, a, b);
как бы я уже решил эту проблему и написал в предыдущем посте)

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
теперь про типы данных...
мне бы Вашу уверенность
дело в том, что Вы правы. число 2^32 - это 4294967296
вот. гуглом пользоваться умею. из-за этого я тип данных поставил longint. большинство тестов программа пройдёт, этого достаточно. я хотел сначала массивом прописать, но что больше longint - не знаю)) да и без интернета узнавать сколько 2^32 как-то не очень...

Да, и можно на ты. А то неудобно как-то
clasterit вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
чтение из файла Nika2610 JavaScript, Ajax 3 29.03.2011 08:12
Чтение из файла spamersd Помощь студентам 1 26.03.2011 19:03
С++ Чтение из файла sir.andrey Помощь студентам 9 15.10.2010 16:00
Чтение из файла! balamut Общие вопросы C/C++ 8 17.05.2010 02:39
Чтение из файла Amen БД в Delphi 2 09.12.2008 10:40