
- •Лабораторная работа №1 Разработка и отладка алгоритмов и программ.
- •Лабораторная работа № 2.
- •Лабораторная работа №3
- •Лабораторная работа № 4.
- •Лабораторная работа № 5. Разработка и отладка программ обработки массивов.
- •Лабораторная работа № 6.
- •Лабораторная работа № 7.
- •Лабораторная работа №8. Создание и подключение пользовательских модулей
- •Лабораторная работа № 9.
- •Лабораторная работа № 10.
- •Лабораторная работа № 11.
- •Лабораторная работа № 13
- •Лабораторная работа № 14.
- •Лабораторная работа № 15
- •Лабораторная работа № 16.
- •Лабораторная работа № 17.
- •Лабораторная работа № 18-19 Разработка программ с использованием алгоритмов на графах
- •Лабораторная работа № 21 Разработка приложений с использованием объектно-ориентированного программирования
- •Лабораторная работа № 21 (часть 2) Разработка приложений с использованием объектно-ориентированного программирования. Применение наследования
- •Лабораторная работа №22 «Интегрированная среда программирования Delphi. Стандартные компоненты»
- •Лабораторная работа № 23
- •Лабораторная работа №24 Разработка приложений с использованием дополнительных компонентов.
- •Лабораторная работа № 25
- •Лабораторная работа №26 Использование компонент вкладок Win32 и System
- •Лабораторная работа № 27 Обработка текстовых файлов с помощью изученных компонентов
- •Лабораторная работа № 28 Обработка графической информации
- •Лабораторная работа №29 Мультимедийные возможности Delphi
- •Лабораторная работа № 30 Создание и обработка таблиц базы данных
- •Лабораторная работа № 31
- •Лабораторная работа № 32
Лабораторная работа № 9.
ТЕМА: Разработка алгоритмов и программ обработки строк. Использование строк для решения задач.
ЦЕЛЬ РАБОТЫ:
Получить практические навыки по составлению программ с использованием данных типа String.
Изучить основные функции и процедуры для работы со строками.
Дополнительные сведения: Преобразование строчных латинских букв в прописные состоит в уменьшении кода буквы на 32.
Ход работы. Задание 1 ( 6 баллов):
Дано целое число N (> 0) и символ C. Вывести строку длины N, состоящую из символов C.
Дано четное число N (> 0) и символы C1 и C2. Вывести строку длины N, которая состоит из чередующихся символов C1 и C2, начиная с C1.
Дана непустая строка S. Вывести четные символы строки.
Дана непустая строка S. Подсчитать сколько гласных букв в строке.
Дана строка. Вывести строку, содержащую те же символы, но в обратном порядке.
Дана непустая строка S. Вывести строку, содержащую символы строки S, между которыми вставлено по одному пробелу.
Дана строка. Преобразовать в ней все прописные буквы в строчные.
Дана строка. Преобразовать в ней все строчные в прописные.
Задание 2 ( 9 баллов):
Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Найти длину самого длинного слова.
Дана строка. Найти символ в строке, встречающийся наибольшее число раз.
Дана строка, состоящая из слов, разделенных пробелами (одним или несколькими). Вывести строку, содержащую эти же слова, разделенные одним пробелом
Преобразовать строку так, чтобы каждое слово начиналось с заглавной буквы.
Проверить, является ли слово палиндромом.
Посчитать число слов в предложении, заканчивающихся на заданную букву.
Вычеркнуть из слова X те буквы, что используются при написании слова Y.
Выяснить, все ли буквы слова Х, стоящие на нечетных местах, различны.
Дополнительное задание:
Дана строка, содержащая латинские буквы и круглые скобки. Если скобки расставлены правильно (то есть каждой открывающей соответствует одна закрывающая), то вывести число 0. В противном случае вывести или номер позиции, в которой расположена первая ошибочная закрывающая скобка, или, если закрывающих скобок не хватает, число -1.
Лабораторная работа № 10.
ТЕМА: Разработка алгоритмов и программ с использованием методов внутренней сортировки.
ЦЕЛЬ РАБОТЫ:
Получить практические навыки по разработке программ с использованием методов внутренней сортировки.
Развивать потребность в использовании методов внутренней сортировки при разработке программ обработки массивов данных, решении задач поиска информации, обработки массивов.
Задание:
Заполнить массив из 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;