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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2008, 09:18   #1
JiLiYa
Пользователь
 
Регистрация: 23.09.2008
Сообщений: 16
Вопрос Строки.....

Есть такая вот задачка...Дана последовательность слов. Напечатать те слова последовательности,которые отличны от последнего слова и удовлетворяют свойству:слово совпадает с начальным отрезком латинского алфавита (aab,abc,abcd,...)

Вот примерно что-то должно быть,наверно так....

program ex1;
var str,abc:string;
mastr:array[1..20] of string;
i,k,j,n:integer;
begin
writeln('napechatat slova otlitchnie ot poslednix i sovpadautchie s pervimi bukvami alphavita');
write('vvedite kolitchestvo slov ');
readln(k);
abc:='abcdefghijklmnopqrstuvwxyz';
for i:=1 to k do
begin
write('vvedite ',i,' slovo ');
readln(mastr[i]);
end;
for i:=1 to k-1 do
if mastr[i]<>mastr[k] then
begin
n:=1;
str:=mastr[i];
for j:=1 to length(str) do
if str[i]=abc[i] then
begin
n:=n+1;
if n=length(str) then writeln(str);
end;
end;
readln;
end.


Не могу понять,как реализовать это правило,по которому сравниваются слова....(aab,abc,abcd,...) вот это,честно говоря,не допонимаю как-то...Помогите кто может? Заранее благодарю)
JiLiYa вне форума Ответить с цитированием
Старый 03.12.2008, 09:59   #2
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Код:
uses crt;
var s,s1,sub:string;
    i,j,m,n:integer;
    a:array[1..100] of string;
    flag:boolean;
begin
clrscr;
writeln('Input str');
readln(s);
i:=0;n:=0;
repeat
inc(i);
if (s[i]=' ')or(s[i]=',') then begin
                   inc(n);
                   a[n]:=sub;
                   sub:='';
                   end
else sub:=sub+s[i];
until i=length(s);
inc(n);
a[n]:=sub;
writeln;
for i:=1 to n-1 do
 if a[i]<>a[n] then
  begin
   flag:=true;
   for j:=1 to length(a[i]) do
     if a[i][j]<>chr(96+j) then flag:=false;
   if flag then write(a[i],' ');
  end;
writeln;
end.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 03.12.2008, 12:10   #3
JiLiYa
Пользователь
 
Регистрация: 23.09.2008
Сообщений: 16
По умолчанию

Большое спасибо,поняла)))
JiLiYa вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
строки Limon34 Общие вопросы Delphi 5 29.10.2008 14:36
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27
Строки Zenit10 Помощь студентам 10 18.01.2008 15:49
Строки. Mr.User Помощь студентам 11 08.12.2007 07:00
как вывести строку поочередно сначала первая буква первой строки потом первая буква второй строки и т.д. vitalik007 Помощь студентам 1 25.09.2007 20:45