Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Практическая работа по "Основам алгоритмизации и программирования"

Автор:   •  Февраль 24, 2020  •  Практическая работа  •  2,248 Слов (9 Страниц)  •  437 Просмотры

Страница 1 из 9

Индивидуальная практическая работа № 2

по дисциплине «Основы алгоритмизации и программирования»

часть 1

Вариант № 24

1). Задание

        Дана строка символов S, состоящая из латинских букв. Группы символов, разделенные пробелами и не содержащие пробелов внутри себя, будем называть словами. Преобразовать исходную строку в строки S1 и S2 в соответствии с пунктами:

п.1. – Напечатать все слова, отличные от последнего слова, которые состоят из букв, не входящих ни в одно слово.

п.2. – Напечатать все слова, отличные от последнего слова, удаляя все слова, которые уже встречались раньше.

Если какая-либо из строк окажется пустой, выводить соответствующее сообщение.

        2). Схема алгоритма.

        На рис. 1 представлена схема алгоритма методом Насси-Шнейдермана.

        3). Текст программы.

Program IPW2;

  Var

    words: array[1..100] of string;

    S, S1, S2, last, word, symbol, lowCaseWord: String;

    len, i1, i2, i3, i4, i5, i6, j, q, single, wordPos, wordLen: Integer; {Вспомогательные переменные}

  Begin

    Write(‘S: ‘);

    Read(S);                                 {Введенная строка S}

    len:=length(S);                        {Длина строки S}

        {Находим последнее слово в строке}

    i1:=len;

    While (i1 >= 1) Do          {Посимвольно просматриваем строку, начиная с конца, пока не встретится пробел}

    Begin

      If (UpCase(S[i1]) >= ‘A’) And (UpCase(S[i1]) <= ‘Z’) Then

      Begin

        While (UpCase(S[i1]) >= ‘A’) And (UpCase(S[i1]) <= ‘Z’) Do {Проверяем, является ли символ символом буквы}

        Begin

          last:=S[i1]+last;                         {Добавляем символ в переменную}

          i1:=i1-1;

        End;

        Break;

      End;

      i1:=i1-1;

    End;

        {Находим все слова, отличные от последнего, удаляя все слова, которые уже встречались раньше}

    i2:=1;

    q:=1;

    While (i2 <= len) Do                         {Проверяем каждый символ, пока счетчик не покажет конец строки S}

    Begin

       If (UpCase(S[i2]) >= ‘A’) And (UpCase(S[i2]) <= ‘Z’) Then         {Проверяем, является ли символ символом буквы}

       Begin

         word:=S[i2];                         {Добавляем символ в переменную}

         i2:=i2+1;

         While (i2 <= len) And (UpCase(S[i2]) >= ‘A’) And

         (UpCase(S[i2]) <= ‘Z’) Do         {Проверяем каждый последующий символ, пока счетчик не покажет конец строки S или символ окажется не буквой}

         Begin

           word:= word+S[i2];                 {Добавляем символ в переменную}

           i2:=i2+1;

         End;

         j:=1;

         While (j <= q) And (word <> words[j]) And

         (word <> last) Do                         {Проверяем, нет ли только что сформированного слова в массиве и проверяем, не равно ли оно последнему слову строки S}

         Begin

           j:=j+1;

         End;

         If (j > q) Then

         Begin

           words[q]:=word;                         {Добавляем слово в массив}

           S2:=S2+word+’ ‘;                 {Добавляем слово в строку S2}

           q:=q+1;

         End;

       End

       Else

       Begin

         i2:=i2+1;

       End;

     End;

        {Находим все слова, отличные от последнего слова, которые состоят из букв, не входящих ни в одно слово}

     

     For i3:=1 To q Do         {Просматриваем каждое слово в массиве}

...

Скачать:   txt (9.5 Kb)   pdf (141.2 Kb)   docx (23.1 Kb)  
Продолжить читать еще 8 страниц(ы) »
Доступно только на Essays.club