13 июля, 13:21

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

1) Все слова, которые встречаются в последовательность по одному разу

+1
Ответы (1)
  1. 13 июля, 15:15
    0
    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]
    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
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «Дана последовательность, содержащая от 2 до 30 слов, в каждом из от 1 до 8 символов строчных латинских букв между соседними словами-не ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы
Новые вопросы по информатике
Сделать дату в pascal ABC 02 03 2005
Ответы (1)
Помогите создать ник Отображаемое имя может содержать буквенно-цифровые символы. Пробелы, подчеркивания, дефисы и специальные символы не допускаются.
Ответы (1)
Вычислить сумму 0+1+2+3+4+5 ... + 99 и определить сколько чисел просуммировано Паскаль Нужен текст проги со всеми var begin end итд
Ответы (2)
Помогите составить программу на языке С! С клавиатуры вводится целое число. Определить кол-во цифр в нем, сумму его цифр, произведение его цифр, среднее арифметическое его цифр, сумму квадратов его цифр, сумму кубов его цифр.
Ответы (1)
Введите с клавиатуры n целых чисел. Найти среди этих чисел последнее нечетное число и его порядковый номер. Если нечетных чисел нет, то вывести NO. паскаль!
Ответы (1)
Архитектура хранения информации в Интернете соответствует 1. распределенной и централизованной информационным системам 2. централизованной информационной 3. системе распределенной информационной системе
Ответы (1)
Разработать модуль, позволяющий вычислить: a. Площадь прямоугольника по значениям длины и ширины; b. Объем прямоугольного параллелепипеда по значениям длины, ширины и высоты. Pascal ABC
Ответы (1)
Переведите десятичное число 657 в 15-ичную систему счисления
Ответы (2)
Сколько операторов можно записать после служебных слов then и else?
Ответы (1)
Сколько действий выполняется после оператора then?
Ответы (1)