Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_ОАиПрг_2курс_лабораторные.doc.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
663.33 Кб
Скачать

Лабораторная работа № 9.

ТЕМА: Разработка алгоритмов и программ обработки строк. Использование строк для решения задач.

ЦЕЛЬ РАБОТЫ:

  1. Получить практические навыки по составлению программ с использованием данных типа String.

  2. Изучить основные функции и процедуры для работы со строками.

Дополнительные сведения: Преобразование строчных латинских букв в прописные состоит в уменьшении кода буквы на 32.

Ход работы. Задание 1 ( 6 баллов):

  1. Дано целое число N (> 0) и символ C. Вывести строку длины N, состоящую из символов C.

  2. Дано четное число N (> 0) и символы C1 и C2. Вывести строку длины N, которая состоит из чередующихся символов C1 и C2, начиная с C1.

  3. Дана непустая строка S. Вывести четные символы строки.

  4. Дана непустая строка S. Подсчитать сколько гласных букв в строке.

  5. Дана строка. Вывести строку, содержащую те же символы, но в обратном порядке.

  6. Дана непустая строка S. Вывести строку, содержащую символы строки S, между которыми вставлено по одному пробелу.

  7. Дана строка. Преобразовать в ней все прописные буквы в строчные.

  8. Дана строка. Преобразовать в ней все строчные в прописные.

Задание 2 ( 9 баллов):

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

  2. Дана строка. Найти символ в строке, встречающийся наибольшее число раз.

  3. Дана строка, состоящая из слов, разделенных пробелами (одним или несколькими). Вывести строку, содержащую эти же слова, разделенные одним пробелом

  4. Преобразовать строку так, чтобы каждое слово начиналось с заглавной буквы.

  5. Проверить, является ли слово палиндромом.

  6. Посчитать число слов в предложении, заканчивающихся на заданную букву.

  7. Вычеркнуть из слова X те буквы, что используются при написании слова Y.

  8. Выяснить, все ли буквы слова Х, стоящие на нечетных местах, различны.

Дополнительное задание:

Дана строка, содержащая латинские буквы и круглые скобки. Если скобки расставлены правильно (то есть каждой открывающей соответствует одна закрывающая), то вывести число 0. В противном случае вывести или номер позиции, в которой расположена первая ошибочная закрывающая скобка, или, если закрывающих скобок не хватает, число -1.

Лабораторная работа № 10.

ТЕМА: Разработка алгоритмов и программ с использованием методов внутренней сортировки.

ЦЕЛЬ РАБОТЫ:

  1. Получить практические навыки по разработке программ с использованием методов внутренней сортировки.

  2. Развивать потребность в использовании методов внутренней сортировки при разработке программ обработки массивов данных, решении задач поиска информации, обработки массивов.

Задание:

Заполнить массив из N вещественных чисел случайным образом. Отсортировать его по возрастанию 2 способами (например, пузырьком и простыми вставками, либо иной сортировкой на ваш выбор).

Пузырьковая сортировка массива.

Реализация:

for i := 1 to m - 1 do

    for j := 1 to m - i do

      if mas[j] > mas[j + 1] then begin

        k := mas[j];

        mas[j] := mas [j + 1];

        mas[j + 1] := k

      end;

   Алгоритм сортировки простыми вставками.

1. Первый элемент записать "не раздумывая".

2 Пока не закончится последовательность вводимых данных, для каждого нового ее элемента выполнять следующие действия:

- начав с конца уже существующей упорядоченной последовательности, все ее элементы, которые больше, чем вновь вводимый элемент, сдвинуть на 1 шаг назад;

- записать новый элемент на освободившееся место.

При этом, разумеется, можно прочитать все вводимые элементы одновременно, записать их в массив, а потом "воображать", что каждый очередной элемент был введен только что. На суть и структуру алгоритма это не повлияет.

Реализация:

for i:= 2 to N do

if a[i-1]>a[i] then

begin x:= a[i];

j:= i-1;

while (j>0)and(a[j]>x) do begin

a[j+1]:= a[j];

j:= j-1; end;

a[j+1]:= x;

end;

Метод прямых вставок с барьером

Дополним сортируемый массив нулевой компонентой и будем записывать в нее поочередно каждый вставляемый элемент. В тех случаях, когда вставляемое значение окажется меньше, чем a[1], компонента a[0] будет работать как "барьер", не дающий индексу j выйти за нижнюю границу массива. Кроме того, компонента a[0] может заменить собою и дополнительную переменную х.

Реализация:

for i:= 2 to N do

if a[i-1]>a[i] then

begin a[0]:= a[i];

j:= i-1;

while a[j]>a[0] do

begin a[j+1]:= a[j];

j:= j-1; end;

a[j+1]:= a[0];

end;