Дана последовательность, содержащая от 2 до 30 слов, в каждом из от 1 до 8 символов строчных латинских букв между соседними словами-не менее одного пробела, за последним словом-точка. составить программу на языке паскаль 1) все слова, которые встречаются в последовательность по одному разу
125
309
Ответы на вопрос:
Var ast: array[1..30] of string; procedure getword(s: string; var ib: integer; var pword: string; var l: integer); // возвращает слово pword, которое является подстрокой s // разделителем слов являются один и более пробелов. // ib при вызове процедуры указывает на позицию в строке s, // начиная с которой ведется поиск слова. // при выходе из процедуры ib - позиция начала найденного слова, // l- длина найденного слова, l=0 если слово не найдено. var i, n: integer; w: string; begin n : = length(s); l : = 0; w : = ''; if ib > = n then begin ib : = n; pword : = '' end else begin i : = ib; while (s[i] = ' ') and (i < n) do i : = i + 1; ib : = i; w : = ''; while (s[i] < > ' ') and (i < n) do begin w : = w + s[i]; i : = i + 1 end; if i < n then begin l : = i - ib; pword : = w end else begin l : = i - ib + 1; pword : = w + s[n] end; if pword[l]='.' then pword: =copy(pword,1,l-1) end end; procedure sortwords(n: integer); // сортировка первых n элементов массива ast var i,j: integer; s: string; begin for i: =1 to n-1 do begin if ast[i]> ast[i+1] then begin s: =ast[i]; ast[i]: =ast[i+1]; ast[i+1]: =s; j: =i; while j> 1 do if ast[j]< ast[j-1] then begin s: =ast[j]; ast[j]: =ast[j-1]; ast[j-1]: =s; j: =j-1 end else j: =0 end end end; var s,st: string; p,n,i,len: integer; flag: boolean; begin st: =' aquila non captat muscas '; st: =st+'dolus an virtus quis in hoste requirat '; st: =st+'de mortuis aut bene aut nihil '; st: =st+'esse oportet ut vivas non vivere ut edas.'; p: =1; i: =1; len: =1; n: =0; while len> 0 do begin getword(st,p,ast[i],len); if len> 0 then begin p: =p+len; n: =n+1; i: =i+1 end end; for i: =1 to n do write(ast[i],' '); sortwords(n); writeln; writeln; s: =ast[1]; flag: =true; for i: =2 to n do if ast[i]< > s then begin if flag then write(s,' ') else flag: =true; s: =ast[i]; end else flag: =false; if flag then write(ast[n],' '); writeln end. тестовое решение: aquila non captat muscas dolus an virtus quis in hoste requirat de mortuis aut bene aut nihil esse oportet ut vivas non vivere ut edas an aquila bene captat de dolus edas esse hoste in mortuis muscas nihil oportet quis requirat virtus vivas vivere
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Dav13406.01.2022 00:00
-
sherilblo08.06.2021 00:07
-
Lbailieva30.09.2020 03:02
-
Nizam12319.06.2023 03:34
-
Danyabaidak02.09.2020 12:31
-
ляятоп23.12.2020 20:14
-
красав4ик00730.11.2020 09:04
-
Amirhan00325.03.2023 05:10
-
филик203.06.2021 13:23
-
semik123211.05.2022 10:13
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.