Pascal.Строки

Блондиночка
Сообщения: 9
Зарегистрирован: 22 май 2009, 22:47

Уважаемые программисты!! нужна ваша помощь, решите пожалуйста одну задачку:
Дана последовательность символов латинского алфавита и пробелов. Группу символов, разделенную с одной или обеих сторон пробелами и не содержащую внутри себя пробелов, назовем словом. Поменять порядок следования букв на обратный в тех словах, которые имеют наибольшую длину. Подсчитать количество таких слов.
Аватара пользователя
Sheka
Сообщения: 246
Зарегистрирован: 17 май 2009, 15:48
Контактная информация:

Код: Выделить всё

program maxl;

var
  fin,fout:text;
  c:char;
  s:string;
  i,lenmax:integer;
  kol:longint;

procedure fromin;
begin
read(fin,c);
if c=' ' then begin
  if s<>'' then begin
    if lenmax=length(s) then inc(kol);
    if lenmax<length(s) then begin
      lenmax:=length(s);
      kol:=1;
      end;
    s:='';
    end;
  fromin;
  end
else s:=s+c;
end;

procedure intoout;
begin
read(fin,c);
if c=' ' then begin
  if s<>'' then begin
    if length(s)=lenmax then begin
      for i:=lenmax downto 1 do write(fout,s[i]);
      write(fout,' ');
      end
    else write(fout,s,' ');
    s:='';
    end
  else if (c=#32)or(c=#13)then write(fout,c);
  intoout;
  end
else s:=s+c;
end;



BEGIN

s:='';
assign(fin,'in.txt');
reset(fin);
while not eof(fin) do fromin;
close(fin);

assign(fin,'in.txt');
reset(fin);
assign(fout,'out.txt');
rewrite(fout);
s:='';
while not eof(fin) do intoout;

writeln(fout);writeln(fout);
writeln(fout,kol);
close(fin);
close(fout);

END.
Блондиночка
Сообщения: 9
Зарегистрирован: 22 май 2009, 22:47

большое спасибо!!!!!
Аватара пользователя
Oleg_Rus
Сообщения: 335
Зарегистрирован: 16 окт 2006, 09:56
Откуда: г.Улан-Удэ, респ.Бурятия, Российская Федерация
Контактная информация:

Граждане, не забывайте про раздел "алгоритмы" - там я разъяснял решение подобных задач
e-mail: garmayev@yandex.ru
---------------------------------------------------------------------------
<a href="http://nick-name.ru/sertificates/711965/"><img src="http://nick-name.ru/img.php?nick=Garmay ... =2&text=t5" alt="Никнейм Garmayev зарегистрирован!" /></a>
Блондиночка
Сообщения: 9
Зарегистрирован: 22 май 2009, 22:47

Sheka большое спасибо что решил, но препод сказал что задача не должна обращаться к файлам или что то вроде того :confused:

fin,fout:text; и всё что с этим связано лишнее :(

если не затруднит не мог бы ты убрать это самое "лишнее" пожалуйста....
Аватара пользователя
Sheka
Сообщения: 246
Зарегистрирован: 17 май 2009, 15:48
Контактная информация:

Блондиночка писал(а): задача не должна обращаться к файлам
откуда тогда берется эта строка? :confused:
Блондиночка
Сообщения: 9
Зарегистрирован: 22 май 2009, 22:47

может с клавиатуры вводится?
Аватара пользователя
Sheka
Сообщения: 246
Зарегистрирован: 17 май 2009, 15:48
Контактная информация:

Блондиночка писал(а):может с клавиатуры вводится?
тогда я думаю надо использвать массив строк.
Блондиночка
Сообщения: 9
Зарегистрирован: 22 май 2009, 22:47

может быть можно ввести с клавиатуры, например
jgdfjghdf dkjghdfjghdk djghjfgh fjghfjghfjg. это и будут слова, разделённые пробелами. А которые длиннее,скажем,6 символов - в тех и меня порядок букв?
так нельзя сделать?
Аватара пользователя
Sheka
Сообщения: 246
Зарегистрирован: 17 май 2009, 15:48
Контактная информация:

тебе же надо самые длинные, а не те которые >6
Ответить