![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Лабораторная работа № 11. Цель работы: освоение приемов объявления и обработки строк при решении задач.
Тема: СТРОКИ Цель работы: освоение приемов объявления и обработки строк при решении задач. Образцы решения задач. Задача № 1. Подсчитать количество букв «м» в последнем слове данного текста. Постановка задачи. Для того чтобы подсчитать количество букв «м» в последнем слове, необходимо рассмотреть текст с конца и до пробела, сравнивая каждый символ с символом «м» и, в случае, совпадения увеличивать счетчик. Задача будет содержать два модуля: модуль 1 - описания используемые, как в основной программе, так и в других модулях; модуль 2 - функции обработки данных. Входные данные. < Строка> символов – stt (тип – string). Выходные данные. < Количество> букв «м» в последнем слове текста – col (тип – word). Алгоритм. 1. Ввод исходной < Строки>. 2. Подсчет < Количества> букв «м» в последнем слове данного текста. 3. Вывод результата. Функциональная структура алгоритма
Текст программы Модуль 1. unit op; Interface
Type tStr= string [150]; Implementation End. Модуль 2. unit obrabotka; Interface uses op;
function kol(st: tStr): integer; Implementation function kol; Var i, col: integer; Begin i: =Length(st); col: =0; while st[i]< > ’ ’ do begin {Цикл - пока не найден пробел} if (st[i]=’м’) or (st[i]=’М’) then // если это буква ’м’ или ’М’ col: =col+1; // увеличили количество найденных букв на 1 i: =i-1 // перешли к предыдущему символу end; kol: =col // указали возвращаемое значение End; End.
Примечание: Условие в команде ветвления можно записать используюя ктнструктор множества. Например, вместо условия (st[i]=’м’) or (st[i]=’М’) записать st[i] in [’м’, ’М’].
Основная программа. Uses op, obrabotka; Var stt: str; col: byte; Begin writeln(’Введите текст’); readln(stt); col: = kol(stt); // нашли количество букв writeln(’Количество букв «м» в последнем слове данного текста ’, col) End. Задача № 2. Дана последовательность, содержащая от 2 до 30 слов, в каждом из которых от 2 до 10 строчных русских или латинских букв; между соседними словами – запятая, за последним словом – точка. Напечатать все слова последовательности, которые отличны от первого слова, предварительно преобразовав каждое из них по следующему правилу: удалить первую букву. Постановка задачи. Получение результата, в соответствии с условием задачи, требует предварительной обработки текста, т.е. сначала требуется выделить слова из текста. Далее удалим из каждого слова первую букву, а затем выведем все слова текста, отличные от первого слова. Входные данные. Максимальное < Количество> слов в тексте – n (постоянное целое). < Строка> текста – st (тип – string). Промежуточные данные. < Список> слов – LstSlovo (тип – массив строк) Выходные данные. Преобразованный < Список> слов неравных первому слову. Алгоритм. 1. Ввести < Строку> текста. 2. Сформировать < Список> слов из заданной < Строки> текста. 3. Удалить первую букву у каждого слова из < Списка>. 4. Вывести слова из < Списка> неравные первому слову.
Текст программы.
|