Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
4 / 4 / 3
Регистрация: 17.10.2011
Сообщений: 169
1

Строки. Напечатать те слова, которые отличны от последнего слова и удовлетворяют заданному свойству

19.05.2012, 00:12. Показов 2624. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных
латинских букв; между соседними словами - не менее одного пробела, за последним словом - точка.
Напечатать те слова последовательности, которые отличны от последнего слова и удовлетворяют
следующему свойству:
1) вторая буква слова входит в него еще раз;
2) последняя буква слова входит в него еще раз;
3) предпоследняя буква слова входит в него еще раз;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.05.2012, 00:12
Ответы с готовыми решениями:

Вывести те слова текста, которые отличны от последнего слова и удовлетворяют заданному свойству
Нужно решить задачу, просто тему пропустил, самому разобраться, что-то не получилось....и если...

Напечатать все слова, которые отличны от последнего слова, преобразовав каждое слово по заданному правилу
дана последовательност, содержащая от 2 до 30 слов, в каждом из которых от 2 до 10 строчных букв;...

Строки. Напечатать те слова последовательности, которые отличны от первого слова и удовлетворяют заданным свойствам
Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных...

Вывести слова строки, которые отличны от последнего слова, и определить, есть ли в данной строке одинаковые слова
Дана строка, состоящая из слов, разделённых пробелами. Вывести слова этой строки, которые отличны...

6
4 / 4 / 3
Регистрация: 17.10.2011
Сообщений: 169
20.05.2012, 22:25  [ТС] 2
предыдущие не актуальны

1) буквы слова упорядочены по алфавиту;
2) длина слова максимальна;
3) слово совпадает с начальным отрезком латинского алфавита (a, ab, abc и т.д.);
0
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
21.05.2012, 00:10 3
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
uses crt;
var s,sl,smax: string;                //переменные для строки, слова и максимального слова
    i,dmax,j,k: integer;                  //переменные для счетчика и длины максимального слова
    c: char;
    b: boolean;
begin
write('Введите строку ');             //запрос и считывание строки в память
repeat
c:=readkey;
write(c);
s:=s+c;
until c='.';
writeln;
s:=s+' ';                             //добавляю к строке пробел, чтобы при поиске учитывались все слова и последнее - тоже
sl:='';  dmax:=0;                               //изначально слово пусто  //изначально максимальная длина неизвестна, беру самую маленькую - 0
write('Слова, буквы которых упорядочены по алфавиту');
for i:=1 to length(s) do              //цикл перебора всех символов строки
    if not (s[i] in [' ',',','.']) then sl:=sl+s[i]     //если символ не пробел, прикрепляю его к слову
       else                           //иначе
       begin
       if length(sl)>dmax then        //если длина слова больше, чем ранее найденная максимальная, то
          begin
          dmax:=length(sl);           //в переменную записываю новую максимальную длину
          smax:=sl;                   //в паременную максимального слова записываю новое слово
          end;
       b:=true;
       for j:=1 to length(sl)-1 do
           if sl[j]>sl[j+1] then b:=false;
       if b then
          begin
          inc(k);
          if k=1 then writeln(':');
          writeln(sl);
          end;
       sl:='';                        //переменную для слова обнуляю, чтобы перейти к следующему слову
       end;
if k=0 then writeln(', отсутствуют');
k:=0;
writeln ('Самое длинное слово "',smax,'" длиной в ',dmax,' символов');   //вывод на экран
write('Слова, которые совпадают с начальным отрезком алфавита');
for i:=1 to length(s) do              //цикл перебора всех символов строки
    if not (s[i] in [' ',',','.']) then sl:=sl+s[i]     //если символ не пробел, прикрепляю его к слову
       else                           //иначе
       begin
       b:=true;
       for j:=1 to length(sl) do
           if ord(sl[j])<>96+j then b:=false;
       if b then
          begin
          inc(k);
          if k=1 then writeln(':');
          writeln(sl);
          end;
       sl:='';                        //переменную для слова обнуляю, чтобы перейти к следующему слову
       end;
if k=0 then writeln(', отсутствуют');
readln;
end.
1
4 / 4 / 3
Регистрация: 17.10.2011
Сообщений: 169
21.05.2012, 21:07  [ТС] 4
вот я немного по другому сделал
1)
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
program lab6;
uses crt;
var
a,t:string; {строка}
b:array[1..100]of string; {массив слов}
i,k,f,j:integer; {счётчики и флажок(f)}
begin
clrscr;
repeat
writeln('vvedite text');
readln(a);{ввели слово}
until (a[length(a)]='.') and (pos (' ', a)<>0);
a:=' '+a;{добавили пробел в начало, чтобы перед всеми словами был пробел (легче считать)}
for i:=1 to length(a) do  {перебираем все символы}
if (a[i]=' ')and(a[i+1]<>' ')then inc(k)else if a[i]<>' ' then b[k]:=b[k]+a[i];
{если встречаем последний пробел, на счётчике слов появляется следующая цифра,}
{если не пробел, добавляем к слову букву из строки}
for i:=1 to k-1 do   {перебираем все слова}
           begin
t:=b[i];      {снимаем с него копию}
f:=0;   {флажок возрастания сбрасываем}
for j:=2 to length(t) do {перебираем буквы в нём}
if t[j]<t[j-1] then f:=1; {если буквы не возрастают, флажок поднимаем}
 if f=0then writeln(b[i]);  {если слово не равно последнему и флажок возрастания опущен, то печатаем слово}
end;
readln;
end.
2)
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
uses crt;
var s,sl,smax: string;            
    i,dmax: integer;
begin
clrscr;
repeat
write('vvedite stroky ');
readln(s);
until (s[length(s)]='.') and (pos (' ', s)<>0);
s:=s+' ';
sl:='';
dmax:=0;
for i:=1 to length(s) do
    if s[i]<>' ' then sl:=sl+s[i]
       else
       begin
       if length(sl)>dmax then
          begin
          dmax:=length(sl);
          smax:=sl;
          end;
       sl:='';
       end;
writeln ('samoe dlinnoe slovo "',smax,'" dlinou v ',dmax,'simvolov');
 readln;
end.
мож подсказать как так же сделать третию
0
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
21.05.2012, 21:10 5
илья1995, третья как и все прочие, в той же программе...
или вот - кусочком =)
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
uses crt;
var s,sl: string;                //переменные для строки, слова и максимального слова
    i,j,k: integer;                  //переменные для счетчика и длины максимального слова
    c: char;
    b: boolean;
begin
write('Введите строку ');             //запрос и считывание строки в память
repeat
c:=readkey;
write(c);
s:=s+c;
until c='.';
writeln;
s:=s+' ';                             //добавляю к строке пробел, чтобы при поиске учитывались все слова и последнее - тоже
sl:='';                               //изначально слово пусто  //изначально максимальная длина неизвестна, беру самую маленькую - 0
write('Слова, которые совпадают с начальным отрезком алфавита');
for i:=1 to length(s) do              //цикл перебора всех символов строки
    if not (s[i] in [' ',',','.']) then sl:=sl+s[i]     //если символ не пробел, прикрепляю его к слову
       else                           //иначе
       begin
       b:=true;
       for j:=1 to length(sl) do
           if ord(sl[j])<>96+j then b:=false;
       if b then
          begin
          inc(k);
          if k=1 then writeln(':');
          writeln(sl);
          end;
       sl:='';                        //переменную для слова обнуляю, чтобы перейти к следующему слову
       end;
if k=0 then writeln(', отсутствуют');
readln;
end.
0
4 / 4 / 3
Регистрация: 17.10.2011
Сообщений: 169
21.05.2012, 21:17  [ТС] 6
вот
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
uses crt;
var s,sl,smax: string;            
    i,dmax,k: integer;
 b: boolean;
begin
clrscr;
repeat
write('vvedite stroky ');
readln(s);
until (s[length(s)]='.') and (pos (' ', s)<>0);
s:=s+' ';
sl:='';
dmax:=0;
for i:=1 to length(s) do
  if not (s[i] in [' ',',','.']) then sl:=sl+s[i]     
       else                          
       begin
       b:=true;
       for j:=1 to length(sl) do
           if ord(sl[j])<>96+j then b:=false;
       if b then
          begin
          inc(k);
          if k=1 then writeln(':');
          writeln(sl);
          end;
       sl:='';                       
       end;
if k=0 then writeln(', отсутствуют');
readln;
end.
работает но почемуто выводит тока первое слово где элемент совподает с алфавитом что не так?
а не се правильно
0
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
21.05.2012, 21:22 7
нормально работает твоя программа, только j добавь в описание переменных.
введи abc abcd ldkgj dklgj abcdef ab dkljg
получишь в результате
abc
abcd
abcdef
ab
0
21.05.2012, 21:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.05.2012, 21:22
Помогаю со студенческими работами здесь

Напечатать все слова послоедовательности, которые отличны от последнего слова
Помогите решить задачу Дана последовательность, содержащая от 2 до 30 слов, в каждом из которых...

Напечатать все слова последовательности, которые отличны от последнего слова
Помогите пожалуйста решить: Дана последовательность, содержащая от 2 до 30 слов, в каждом из...

Напечатать те слова текста, которые отличны от последнего слова и в которых буквы упорядочены по алфавиту
Дан текст, состоящий из латинских букв. Между соседними словами – не менее одного пробела; за...

Напечатать те слова последовательности, которые отличны от последнего слова
Дана последовательность слов. Напечатать те слова последовательности, которые отличны от последнего...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru