IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача на строки., Сортировка по алфавиту.
кзои
сообщение 4.01.2006 8:14
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


Приветствую всех. Есть проблемма с задачей. В общем дан текст, и нужно распечатать слова,
в которых буквы упорядочены по алфавиту, различие заглавных и строчных не учитывать. Вот, что я наработал по этому поводу:

program lex;
var
    v, s: string;
   b, mas: array[1..50] of string;       {*Массив, куда будут записываться слова*}
    pp: array[1..50] of string;
    u, x, i,j, z: integer;
    slv, ds, pro: integer;                {*Счётчик слов, длинна предложения
				счётчик пробелов*}
    f: char;
begin
readln(s);
ds:=length(s);

for i:=1 to ds do s[i]:=upcase(s[i]);


pro:=0;
for i:=1 to ds do if s[i]='.' then
    begin
    delete(s,pos('.',s),1);
    s:=s+' ';
    end;


for i:=1 to ds do if s[i]=' ' then inc(pro);
j:=1;
     slv:=0;
     repeat
     begin
     x:=pos(' ',s);
     v:=copy(s,1,x-1);
     delete(s,1,x);
     mas[j]:=v;
     v:=' ';
     inc(j);
     inc(slv);
     end;
     until j=pro+1;

u:=1;

i:=0;
 while (j<>slv) do
 begin
 j:=0;
 inc(j);
 v:=mas[j];
            repeat
            begin
            inc(v[i]);
            if v[i]<v[i+1] then
                            begin
                             mas[j]:='';
                             delete(v,1,length(v));
                             for j:=1 to slv do
                                 begin
                                 b[j]:=mas[j+1];
                                 mas[j+1]:='';
                                 mas[j]:=b[j];
                                 b[j]:='';
                                slv:=slv-1;
                                 end;
                            end;

                                          end;

               until (v[i]<v[i+1]) or (i<length(v))
end;



for j:=1 to slv do
 write(mas[j],' ');

   end.




За ранее спасибо.

Сообщение отредактировано: volvo - 6.11.2006 17:35
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 22.07.2025 21:08
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"