Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 04.03.2009
Сообщений: 3

Напечатать те слова, перед которыми в последовательности находятся только меньшие (по алфавиту) слова, а за ними - только большие

04.03.2009, 22:34. Показов 1531. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана последовательность, содержащая до 30 слов, в каждом из которых от 1 до 5 букв. между соседними словами - запятая, за последним словом - точка. Напечатать те слова, перед которыми в последовательности находятся только меньшие (по алфавиту) слова, а за ними - только большие.

Заранее спасибо)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.03.2009, 22:34
Ответы с готовыми решениями:

Напечатать те слова, перед которыми в последовательности находятся только меньшие (по алфавиту) слова, а за ними - только большие
Помогите плиз, кто может... Дана последовательность, содержащая от 1 до 10 слов, в каждом из...

Напечатать те слова, перед которыми в последовательности находятся только меньшие ( по алфавиту) слова, а за ними - только большие
. Дан текст. Группы символов, разделенные пробелами и не содержащие пробелы внутри себя, будем...

Напечатать слова, перед которыми в строке стоят только меньшие (по алфавиту) слова, а за ними только большие
Помогите пожалуйста решить задачу.Очень плохо понимаю строки. дана строка содержащая от 1 до 10...

5
 Аватар для Arriba
257 / 173 / 27
Регистрация: 17.10.2008
Сообщений: 770
05.03.2009, 01:16
Цитата Сообщение от Raine Посмотреть сообщение
Дана последовательность, содержащая до 30 слов, в каждом из которых от 1 до 5 букв. между соседними словами - запятая, за последним словом - точка. Напечатать те слова, перед которыми в последовательности находятся только меньшие (по алфавиту) слова, а за ними - только большие.
Вот твоя рещённая задачка, думаю разберёшся, я мелкие комментарии сделал, но все все все варианты работы я не проверял, возможно где и вылезет чего...
Но на примере :
Code
1
dfrt,fgswd,drtt,sadfg,gh,abc,dfrt,fgswd,h,sg,zxc,egtws,cvfxa,fkher,cdff.
работает правильно, правда всего там используется 15 слов...над просто 30 подставить вместо 15 и всё...
Класная задачка...

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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
program Arriba;
 
type mass=array[1..30] of string;
 
var
     sl,vrem:string;
     mas:mass;
     i,j:integer;
 
procedure Search(m:mass);
var
     k,r:integer;
     sl1,sl2,sl3:string;{3 слова с которые сравниваем}
     bool:boolean;
begin
   for k:=1 to 15 do  {пока до 15 слов если нуно то пиши 30}
    begin
   {начало 2}{проверка первого элемента массива, сравнивается с конечным и со вторым элементами}
      if k=1 then
        begin
           sl1:=m[15];{если нуно то 30}
           sl2:=m[k];
           sl3:=m[k+1];
             if Length(sl1)<5 then  {если длинна меньше пяти букв}
               for r:=1 to 5-Length(sl1) do {добавляем ещё}
                 sl1:=sl1+char(0);{так легче сравнивать слова}
             if Length(sl2)<5 then
               for r:=1 to 5-Length(sl2) do
                 sl2:=sl2+char(0);
             if Length(sl3)<5 then
               for r:=1 to 5-Length(sl3) do
                 sl3:=sl3+char(0);
        end;
      {конец 2}
      {начало 3}{проверка конечного элемента массива, сравнивается с предпоследним и с первым элементами}
      if k=15 then {если нуно то 30}
        begin
           sl1:=m[k-1];
           sl2:=m[k];
           sl3:=m[1];
             if Length(sl1)<5 then
               for r:=1 to 5-Length(sl1) do
                 sl1:=sl1+char(0);
             if Length(sl2)<5 then
               for r:=1 to 5-Length(sl2) do
                 sl2:=sl2+char(0);
             if Length(sl3)<5 then
               for r:=1 to 5-Length(sl3) do
                 sl3:=sl3+char(0);
        end;
      {конец 3}
      {начало 4}{проверка со 2 элемента массива по предпоследний}
      if (k<>1) and (k<>15) then {если нуно то 30}
        begin
           sl1:=m[k-1];
           sl2:=m[k];
           sl3:=m[k+1];
             if Length(sl1)<5 then
               for r:=1 to 5-Length(sl1) do
                 sl1:=sl1+char(0);
             if Length(sl2)<5 then
               for r:=1 to 5-Length(sl2) do
                 sl2:=sl2+char(0);
             if Length(sl3)<5 then
               for r:=1 to 5-Length(sl3) do
                 sl3:=sl3+char(0);
        end;
       {конец 4}
      {начало 5} {проверка вначале первого слова со вторым
      а потом если нет исключения второго с третьим--тем
      самым проверка на очерёдность слов}
      bool:=true;
       for r:=1 to 5 do
        begin
           if (ord(sl1[r])>ord(sl2[r])) then
            begin
              bool:=false;
            end;
        end;
           if bool=true then
             for r:=1 to 5 do
               begin
                  if (ord(sl2[r])>ord(sl3[r])) then
                     begin
                        bool:=false;
                     end;
               end;
       {конец 5}
      {начало 6}{вывод слов удовлетворяющих условию}
      if bool=true then
       begin
        WriteLn(m[k]);
       end
      else
       begin
        WriteLn('------');
       end;
      {конец 6}
    end;
end;
 
 
begin
    Write('slova=');
    ReadLn(sl);
    j:=1;
    vrem:='';
      {начало 1}{разбиваю строчку на части и записываю в массив}
      for i:=1 to Length(sl) do
        begin
           if (sl[i]=',') or (sl[i]='.') then
             begin
                 mas[j]:=vrem;
                 j:=j+1;
                 vrem:='';
             end
          else
             vrem:=vrem+sl[i];
        end;
      {конец 1}
    Search(mas);
    ReadLn;
end.
1
0 / 0 / 0
Регистрация: 04.03.2009
Сообщений: 3
06.03.2009, 01:37  [ТС]
спасибо)))
немного не то.. но очень хорошо подтолкнули к решению))
0
 Аватар для Arriba
257 / 173 / 27
Регистрация: 17.10.2008
Сообщений: 770
06.03.2009, 02:35
А что нето конкретно, разъясни? Если колличество--просто вводить 30 лень было, я пометил где поменять нуно числа.
Напиши что не так, исправлю, интересно же...
0
0 / 0 / 0
Регистрация: 04.03.2009
Сообщений: 3
07.03.2009, 00:26  [ТС]
с кодом я все поняла)
ввод 30 слов - это не обязательно: захотел - 5..захотел 10)
окончанием ввода должна служить точка - это как обязательное условие, а программа иногда выводит результат,когда в конце запятая..
на некоторых наборах - не срабатывала, и выводила неверный результат))
0
 Аватар для Arriba
257 / 173 / 27
Регистрация: 17.10.2008
Сообщений: 770
07.03.2009, 20:13
тут ограничение на латинские буквы, и кстати ты ничего не говорила об ограничении количества...в моей программе нужно завести тогда ещё одну переменную и с помошью неё передавать колличество слов...Скажи с какими массивами слов выдавалас ошибка, потому что тяжело найти то что нуно, я прогу перепишу чтоб она колличество слов брала то, которое нуно

Добавлено через 9 часов 30 минут 8 секунд
Вот я чуток исправил программу, там практически ничего не поменялось, называется найди отличия...
Только теперь укажи при каких последовательностях ошибки, я ещё потестил, пока не нашёл...
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
program Project2;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
type mass=array[1..30] of string;
 
var
     sl,vrem:string;
     mas:mass;
     i,j:integer;
 
procedure Search(m:mass; NumElem:integer);
var
     k,r:integer;
     sl1,sl2,sl3:string;
     bool:boolean;
begin
   for k:=1 to NumElem do
    begin
   {начало 2}{проверка первого элемента массива, сравнивается с конечным и со вторым элементами}
      if k=1 then
        begin
           sl1:=m[NumElem];
           sl2:=m[k];
           sl3:=m[k+1];
             if Length(sl1)<5 then  {если длинна меньше пяти букв}
               for r:=1 to 5-Length(sl1) do {добавляем ещё}
                 sl1:=sl1+char(0);{так легче сравнивать слова}
             if Length(sl2)<5 then
               for r:=1 to 5-Length(sl2) do
                 sl2:=sl2+char(0);
             if Length(sl3)<5 then
               for r:=1 to 5-Length(sl3) do
                 sl3:=sl3+char(0);
        end;
      {конец 2}
      {начало 3}{проверка конечного элемента массива, сравнивается с предпоследним и с первым элементами}
      if k=NumElem then
        begin
           sl1:=m[k-1];
           sl2:=m[k];
           sl3:=m[1];
             if Length(sl1)<5 then
               for r:=1 to 5-Length(sl1) do
                 sl1:=sl1+char(0);
             if Length(sl2)<5 then
               for r:=1 to 5-Length(sl2) do
                 sl2:=sl2+char(0);
             if Length(sl3)<5 then
               for r:=1 to 5-Length(sl3) do
                 sl3:=sl3+char(0);
        end;
      {конец 3}
      {начало 4}{проверка со 2 элемента массива по предпоследний}
      if (k<>1) and (k<>NumElem) then
        begin
           sl1:=m[k-1];
           sl2:=m[k];
           sl3:=m[k+1];
             if Length(sl1)<5 then
               for r:=1 to 5-Length(sl1) do
                 sl1:=sl1+char(0);
             if Length(sl2)<5 then
               for r:=1 to 5-Length(sl2) do
                 sl2:=sl2+char(0);
             if Length(sl3)<5 then
               for r:=1 to 5-Length(sl3) do
                 sl3:=sl3+char(0);
        end;
       {конец 4}
      {начало 5} {проверка вначале первого слова со вторым
      а потом если нет исключения второго с третьим--тем
      самым проверка на очерёдность слов}
      bool:=true;
       for r:=1 to 5 do
        begin
           if (ord(sl1[r])>ord(sl2[r])) then
            begin
              bool:=false;
            end;
        end;
           if bool=true then
             for r:=1 to 5 do
               begin
                  if (ord(sl2[r])>ord(sl3[r])) then
                     begin
                        bool:=false;
                     end;
               end;
       {конец 5}
      {начало 6}{вывод слов удовлетворяющих условию}
      if bool=true then
       begin
        WriteLn(m[k]);
       end
      else
       begin
        WriteLn('------');
       end;
      {конец 6}
    end;
end;
 
 
begin
    Write('slova=');
    ReadLn(sl);
    j:=1;
    vrem:='';
      {начало 1}{разбиваю строчку на части и записываю в массив}
     if sl[Length(sl)]='.' then
       begin
         for i:=1 to Length(sl) do
            begin
               if (sl[i]=',') or (sl[i]='.') then
                 begin
                     mas[j]:=vrem;
                     j:=j+1;
                     vrem:='';
                 end
               else
                 vrem:=vrem+sl[i];
            end;
      {конец 1}
        Search(mas,j-1);
       end
      else
          WriteLn('In the end needs a DOT');{хи вроде так}
    ReadLn;
end.
Кстати теперь не нужно вводить колличество слов, программа сама определяет, нуно только точку в конце ставить...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.03.2009, 20:13
Помогаю со студенческими работами здесь

Напечатать те слова, перед которыми в тексте находятся только меньшие (по алфавиту), а после - только большие
Помогите пожалуйста. Дана последовательность, содержащая от 1 до 30 слов, в каждом из которых от 1...

Выведите: те слова, перед которыми в последовательности находятся только меньшие (по алфавиту)
Пусть дана последовательность, содержащая от 1 до 30 слов, в каждом из которых от 1 до 5 строчных...

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

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

Выведите те слова, перед которыми в последовательности находятся только меньшие слова
Задание : пусть дана последовательность , содержащая от 1 до 30 слов , в каждом из которых от 1 до...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru