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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.09.2012, 16:54   #1
ssovec
 
Регистрация: 19.01.2011
Сообщений: 3
По умолчанию Pascal работа с текстовым файлом поиск предложений

Добрый день, помогите решить задачу: прочитать первые три предложения в текстовом файлу и вывести их в обратном порядке на экран. Задачка легкая но как то туплю, спасибо заранее.
ssovec вне форума Ответить с цитированием
Старый 17.09.2012, 17:57   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
но как то туплю
Ну а сам то что сделал уже?
Ато ведь ща такое покажем - любой препод расколет на раз )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.09.2012, 19:42   #3
domovou
Пользователь
 
Аватар для domovou
 
Регистрация: 01.09.2012
Сообщений: 88
По умолчанию

Код:
uses Wincrt;
type fil=text;
var f1:fil;
    z:array[1..3] of string;
    a:string;
    i,w,n,y:integer;
procedure wwod;
begin
assign(f1,'t1.dat');
rewrite(f1);
writeln('Введите кол-во строк в файле:');
readln(y);
for i:= 1 to y do
    begin
    writeln('Введите ',i,' строку');  {}
    readln(a);
    writeln(f1,a);
    end;
close(f1);
end;

procedure prosm;
begin
assign(f1,'t1.dat');
reset(f1);
writeln('Содержание текстового файла:');
while not eof(f1) do
      begin
      a:='';
      readln(f1,a);
      writeln(a)
      end;
close(f1);
end;

procedure naxod;
begin
assign(f1,'t1.dat');
reset(f1);
n:=3;
for i:=1 to n do
    readln(f1,z[i]);
for i:=n downto 1 do
    writeln(z[i]:2);

close(f1);
end;

begin
w:=0;
while w<>4 do
      begin
      writeln('           Меню программы');
      writeln('1-Создание текстового файла');
      writeln('2-Просмотр текстового файла');
      writeln('3-');
      writeln('4-Выход из программы');
      write('             Ваш выбор -> ');
      readln(w);
      case w of
           1:wwod;
           2:prosm;
           3:naxod;
           end;
      writeln
      end;
end.
Программист - это не тот, кто пишет программы, а тот, чьи программы работают.

Последний раз редактировалось domovou; 17.09.2012 в 21:18.
domovou вне форума Ответить с цитированием
Старый 17.09.2012, 20:59   #4
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Домовой, пожалуйста используйте форматирование! НЕмУЧаЙтЕнАшИгЛаЗа!
Poma][a вне форума Ответить с цитированием
Старый 18.09.2012, 01:53   #5
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от ssovec Посмотреть сообщение
Задачка легкая но как то туплю
Меня такие слова всегда удивляют. "задачка легкая", ага. ссовец - давай, ты будешь называть легкими задачи, которые МОЖЕШЬ решить. Ваще уже..

домовой, а почему ты решил, что одна_строка=одно_предложение? Я полагаю (из первого класса), что предложения делятся специальными знаками препинания, как-то: точка, вопросительный знак, восклицательный знак, многоточие.

Читать построчно тут не стОит (если, конечно, оставаться в рамках обычных turbo-строк). Можно, думаю, предположить, что длина предложения не превышает 255 символов, и расфасовывать их в строки. Но читать файл все же лучше посимвольно.
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 18.09.2012, 07:44   #6
domovou
Пользователь
 
Аватар для domovou
 
Регистрация: 01.09.2012
Сообщений: 88
По умолчанию

Цитата:
Сообщение от TinMan Посмотреть сообщение
домовой, а почему ты решил, что одна_строка=одно_предложение? Я полагаю (из первого класса), что предложения делятся специальными знаками препинания, как-то: точка, вопросительный знак, восклицательный знак, многоточие.
В условие задачи про это не указано), вот и решил.
Программист - это не тот, кто пишет программы, а тот, чьи программы работают.
domovou вне форума Ответить с цитированием
Старый 18.09.2012, 08:02   #7
Paster Fob
Форумчанин
 
Аватар для Paster Fob
 
Регистрация: 06.02.2011
Сообщений: 105
По умолчанию

Код:
var s:string;ch:char;
    i,n:integer;
    a:array [1..3] of string;
    f:text;

begin
  assign(f,'C:\Files for Program Pascal\input.txt');
  reset(f);
  s:='';n:=0;
  while n<3 do begin
    read(f,ch);
    s:=s+ch;
    if ch='.' then begin
      inc(n);
      a[n]:=s;
      s:='';
    end;
  end;
  close(f);
  for i:=n downto 1 do
    writeln(a[i]);
  readln
end.

Последний раз редактировалось Paster Fob; 18.09.2012 в 08:12.
Paster Fob вне форума Ответить с цитированием
Старый 18.09.2012, 09:42   #8
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
Код:
while n<3 do begin
    read(f,ch);
    s:=s+ch;
    if ch='.' then begin
      inc(n);
      a[n]:=s;
      s:='';
    end;
  end;
хм... интересно что же будет, если в файле точек меньше 3? ...
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 18.09.2012, 15:33   #9
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Код:
const 
        EX  = ['.', '...', '!', '?']; // да кстати ... это один символ.

var s:string;ch:char;
    i,n:integer;
    a:array [1..3] of string;
    f:text;

begin
  assign(f,'C:\Files for Program Pascal\input.txt');
  reset(f);
  s:='';n:=0;
  while n<3 do begin
    read(f,ch);
    s:=s+ch;
    if ch in EX then begin
      inc(n);
      a[n]:=s;
      s:='';
    end;
  end;
  close(f);
  for i:=n downto 1 do // меня учили что если кол-во итераций меньше 10, то правилом хорошего тона считается не использовать цикл. (и кто знает вдруг глюк и n <> 3, лучше уж писать точное значение)
    writeln(a[i]);
  readln
end.
Слегка исправил, суть не смотрел...

Последний раз редактировалось Poma][a; 18.09.2012 в 15:39.
Poma][a вне форума Ответить с цитированием
Старый 18.09.2012, 18:14   #10
Paster Fob
Форумчанин
 
Аватар для Paster Fob
 
Регистрация: 06.02.2011
Сообщений: 105
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
[CODE]
const
EX = ['.', '...', '!', '?']; // да кстати ... это один символ.
В PascalABCnet такой вариант проходит.Во FPC нет.
Paster Fob вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с текстовым файлом в Си Eovin Помощь студентам 0 19.05.2010 13:47
Работа с текстовым файлом Smartbass Паскаль, Turbo Pascal, PascalABC.NET 3 22.05.2009 20:40
работа с текстовым файлом(pascal) -COREY- Помощь студентам 1 19.04.2009 16:56
Работа с текстовым файлом simka007 Помощь студентам 7 06.02.2009 14:21
Работа с текстовым файлом GazimagomedovM Помощь студентам 12 17.07.2008 18:24