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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2009, 08:05   #1
hohol90
Пользователь
 
Регистрация: 10.10.2009
Сообщений: 34
Сообщение Строки в Паскале.

помогите вывести самое длинное слово с буквы "а" в обратном порядке

Вот уже ищет слово, но как я не пытался выводить в обратном порядке не получается.
Код:
uses
  crt;
const
  dividers=[' ',',','.',';',':','-','=','+'];{дописать нужные}
var
  s,temp,max:string;
  i,c:integer;
begin
  clrscr;
  writeln('Введите строку:');
  readln(s);
  temp:='';
  max:='';
  c:=0;
  {пробегаем всю строку посимвольно}
  for i:=1 to length(s) do
  begin
    if not (s[i] in dividers) then
      temp:=temp+s[i];
    if (s[i] in dividers) or (i=length(s)) then
    begin
      if (temp<>'') and (temp[1] in ['a','A','а','А']) then
      begin
        if length(temp)>length(max) then
          max:=temp;
        inc(c)
      end;
      temp:=''
    end;
  end;
  writeln('Самое длинное слово на "а": ',max,'. Всего таких слов: ',c)
end.
hohol90 вне форума Ответить с цитированием
Старый 10.12.2009, 08:20   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Итак самое длинное слово у тебя есть?
Определи его длину и в убывающем цикле посимвольно составь его задом наперед.
Код:
for i:=Length(slovo) downto 1 do
begin 
     x:=x+slovo[i];
end;
Это основа, адаптируешь под себя.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 10.12.2009, 08:30   #3
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию

Код:
var
  s, slovo, max:string;
  i:integer;
begin
  writeln('Введите строку:');
  readln(s);
  s:=s+'.';
    i:=1;  slovo:='';  max:='';
    while i<>length(s)+1 do
    begin
      if s[i] in ['a'..'z','A'..'Z','1'..'9'] then slovo:=slovo+s[i]
      else begin
        if ((slovo[1]='a')or(slovo[1]='A'))and(Length(slovo)>Length(max))then
         max:=slovo;
        slovo:='';
      end;
      inc(i);
    end;

    for i:=length(max) downto 1 do
      write(max[i]);
  readln;
end.
dr.Chas вне форума Ответить с цитированием
Старый 10.12.2009, 12:50   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Ты выводишь посимвольно, в моем случае после цикла х содержит все слово.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 10.12.2009, 15:09   #5
hohol90
Пользователь
 
Регистрация: 10.10.2009
Сообщений: 34
По умолчанию

большое спасибо ВАМ)
hohol90 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Строки в паскале! vlad1991 Помощь студентам 3 11.11.2010 22:18
Строки с паскале Dog Помощь студентам 2 11.10.2009 19:49
строки в паскале Странница Паскаль, Turbo Pascal, PascalABC.NET 0 03.06.2009 20:49
строки в паскале Sarumjan Помощь студентам 3 03.12.2008 16:32
Строки в паскале Exact Паскаль, Turbo Pascal, PascalABC.NET 8 08.02.2008 20:45