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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.11.2012, 23:17   #1
CheD
Новичок
Джуниор
 
Регистрация: 11.11.2012
Сообщений: 2
По умолчанию Обработка символьных и строковых данных [Pascal]

Задан текст (20 слов). Преобразовать его так, чтобы слова располагались по возрастанию количества входящих в них гласных.
Вот, что то пытался делать, но зашел в тупик... Заранее спасибо.
Цитата:
Program Lab_7;
const g: set of char=['ё','у','е','ы','а','о','э','я','и' ,'ю',
'Ё','У','Е','Ы','А','О','Э','Я','И' ,'Ю',
'e','y','u','i','o','a',
'E','Y','U','I','O','A'];
var s,sl: string;
i,j,k: byte;
begin
write('s=');
readln(s);
s:=s+',';
sl:='';
for i:=1 to length(s) do
if (s[i]<>',') and (s[i]<>' ') then sl:=sl+s[i] else
if length(sl)>0 then
begin
k:=0;
for j:=1 to length(sl) do
if sl[j] in g then inc(k);
CheD вне форума Ответить с цитированием
Старый 12.11.2012, 00:33   #2
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Малость увлекся в процессе, но тем не менее:
Код:
const
  g:set of char=['ё','у','е','ы','а','о','э','я','и' ,'ю',
                 'Ё','У','Е','Ы','А','О','Э','Я','И' ,'Ю',
                 'e','y','u','i','o','a',
                 'E','Y','U','I','O','A'];
type
  slovo=record
    str:string;
    gl:byte;
  end;
  slv=array of slovo;
var
  s:string;
  tmp:slovo;
  sl:slv;
  i,j,k: byte;
begin
  write('s=');
  readln(s);
 // s:=s+',';
  setlength(sl,1);
  k:=0;
  sl[0].str:='';
  for i:=1 to length(s) do
  begin
    if (s[i]<>' ') then
      if not (s[i] in [',','.',';']){etc} then
        sl[k].str:=sl[k].str+s[i];
    if (s[i]=' ') then
      begin
        inc(k);
        setlength(sl, length(sl)+1);
        sl[high(sl)].str:='';
      end;
  end;

  for i:=0 to high(sl) do
    begin
      sl[i].gl:=0;
      for j:=1 to length(sl[i].str) do
        if sl[i].str[j] in g then
          inc(sl[i].gl);
    end;

  for i:=1 to high(sl) do
    for j:=0 to high(sl) do
    if sl[j].gl>sl[i].gl then
      begin
        tmp:=sl[j];
        sl[j]:=sl[i];
        sl[i]:=tmp;
      end;

  for i:=0 to high(sl) do
    write(sl[i].str,', ');
  writeln;
  readln
end.
Все тривиальное просто
whatever вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка символьных и строковых данных [Pascal] CheD Помощь студентам 0 11.11.2012 22:54
обработка строковых и символьных величин Георгий Златов Помощь студентам 6 19.03.2012 15:44
обработка строковых и символьных величин паскаль Георгий Златов Помощь студентам 1 14.03.2012 00:11
Абстракция. Обработка символьных и строковых переменных. articoli Помощь студентам 0 05.12.2010 22:35
Pascal. Обработка символьных данных. NitriNKa Помощь студентам 3 25.04.2009 15:15