Семинар_2_Обработка_символьной_информации_Файлы_Программирование_2_семестр (Семинар)
Описание файла
Файл "Семинар_2_Обработка_символьной_информации_Файлы_Программирование_2_семестр" внутри архива находится в папке "Семинар". Документ из архива "Семинар", который расположен в категории "". Всё это находится в предмете "программирование" из 2 семестр, которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. .
Онлайн просмотр документа "Семинар_2_Обработка_символьной_информации_Файлы_Программирование_2_семестр"
Текст из документа "Семинар_2_Обработка_символьной_информации_Файлы_Программирование_2_семестр"
Семинар 2. Обработка символьной информации
Цель семинара: Овладение навыками обработки символьных данных.
1. Задание
-
Проработайте (еще раз) примеры 1 и 2 §2.1.3 лекции 2 «Обработка символьной информации и документов сложной структуры». Попробуйте решить эти задачи самостоятельно, не заглядывая в лекцию. Если Ваше решение отличается от лекционного, проанализируйте отличия. Как они повлияют на работу программы?
-
Отладьте программы примеров 1 и 2 лекции 2.
-
Выполните свой вариант задания (с Вашим номером по списку группы) из раздела 2. Отчет по выполнению задания делайте по образцу примера 1 §2.1.3 лекции 2. Обратите внимание, что отчет должен содержать условие задачи, состав данных, блок-схему алгоритма и код программы.
-
Выполните свой вариант задания (с Вашим номером по списку группы) из раздела 3. Обратите внимание, что это задание надо выполнять, самостоятельно разработав подпрограмму (функцию СИ) обработки строк и вызвав ее для каждой строки, указанной в условии, – см. пример 2 §2.1.3 лекции 2.
-
Выполните свой вариант задания (с Вашим номером по списку группы) из раздела 4. Разработайте и отладьте два варианта программы:
-
каждая строка входного файла считывается в переменную-строку (см. пример 2 §2.3.3);
-
каждая строка текстового файла считывается в переменную-структуру (см. пример 3 §2.3.3).
-
Вывод результатов должен осуществляться в текстовый файл.
Отчет по выполнению каждого задания должен состоять из условия задачи, отлаженной программы и примеров входных и выходных файлов.
Жду отчетов по индивидуальному заданию!
2. Обработка последовательности символов
Дан текст – однострочная последовательность символов. В некоторых задачах предполагается, что текст разбит на слова. Под словом понимается группа символов, не содержащая пробелов и отделенная пробелами от других слов. При решении этих задач не рекомендуется использовать библиотечные функции работы со строками, за исключением, быть может, функции определения длины строки.
-
Определить, содержит ли текст символы, отличные от букв и пробелов.
-
Все символы, предшествующие первому вхождению символа *, заменить на *.
-
Все символы, стоящие после последней точки, заменить пробелами.
-
Выяснить, является ли текст десятичной записью целого числа.
-
Удалить из текста все символы, стоящие после первого вхождения символа a.
-
Изменить текст так, чтобы вместо строчных букв стояли соответствующие прописные буквы, а вместо прописных — строчные. Определить общее число произведенных замен.
-
Если текст содержит только малые латинские буквы, определить, упорядочен ли он по алфавиту.
-
Определить, есть ли в тексте слова, начинающиеся с заданного символа.
-
Определить, содержит ли букву А первое слово заданного текста.
-
Проверить, имеет ли место соответствие открывающихся и закрывающихся круглых скобок.
-
Выяснить, является ли текст идентификатором. Пояснение: идентификатор — это последовательность букв, цифр и символов подчеркивания, на первом месте может стоять только буква и символ подчеркивания.
-
Удалить из текста все цифры.
-
Определить число символов, отличных от букв и пробелов, встретившихся в тексте до первой точки.
-
Вывести на экран первое слово текста, начинающееся с буквы А.
-
Определить, сколько раз входит в последнее слово текста заданный символ.
-
Определить, сколько слов оканчивается на заданный символ.
-
Вывести на экран первое слово текста, оканчивающееся на заданный символ.
-
Вывести на экран первое слово текста, начинающееся с сочетания ph.
-
Определить число символов первого слова.
-
Определить число символов последнего слова.
-
Вычислить, сколько слов встречается в тексте до первой точки.
-
Каждое слово one заменить на two.
-
Первое вхождение слова one заменить на two.
-
Последнее вхождение слова one заменить на two.
-
Определить, сколько раз в тексте встречается сочетание символов one.
-
Определить, есть ли в тексте слова, начинающиеся с сочетания ph.
-
Определить, есть ли в тексте слова, заканчивающиеся на сочетание ed.
-
Если в тексте встречаются подряд две точки, то последнюю точку пары заменить пробелом.
-
Удалить из текста все пробелы, стоящие в конце слова (до первого символа с конца, не являющегося пробелом).
-
Удалить из текста все пробелы, стоящие в начале слова (до первого символа, не являющегося пробелом).
3. Индивидуальное задание на разработку подпрограмм, обрабатывающих строки
Разработать программу, выполняющую однотипные действия с одной или несколькими однострочными последовательностями символов (они обозначены А, В, С), самостоятельно выделив одну или несколько подпрограмм.
Требования к подпрограммам:
-
каждая подпрограмма является функционально завершенной и должна вызываться более одного раза с разными фактическими параметрами;
-
подпрограмма обработки не должна содержать ввод (вывод) данных;
-
в подпрограммах не рекомендуется использовать глобальные переменные.
-
Определить, сколько раз в последовательности А встречается буква N и сколько раз в последовательности В встречается цифра 9.
-
Заменить в последовательности А все символы * на пробелы, а в последовательности В ― все точки на запятые.
-
Определить, содержит ли последовательность А строчные латинские буквы, а последовательность В ― прописные.
-
Определить, сколько раз в последовательности А символ : встречается до первой точки, и сколько раз в последовательности В символ ; встречается до первой запятой.
-
Для заданной последовательности А проверить, встречается ли среди ее первых 10 символов буква s, а для последовательности В проверить, встречается ли среди ее первых 20 символов буква q.
-
Определить номер первого вхождения заданного символа в каждую из последовательностей А, В, С.
-
Определить, сколько слов в последовательности А оканчивается на букву N и сколько слов в последовательности В оканчивается на букву Y.
-
Проверить, является ли каждая из последовательностей А, В, С десятичной записью целого числа.
-
Проверить, является ли последовательность А правильным скобочным выражением. Учесть расстановку круглых, квадратных и фигурных скобок.
-
В последовательности А все символы, стоящие после последней точки, заменить на пробелы, а в последовательности В все символы, стоящие после последней запятой, заменить на символ *.
-
Исключить из каждой последовательности А, В, С все символы, отличные от малых латинских букв.
-
Определить, сколько раз в последовательность А входит слово one, а в последовательность В ― слово two.
-
Проверить, входит ли в последовательность А слово one, а в последовательность В ― слово two.
-
Определить, сколько слов в последовательности А начинается с буквы N и сколько слов в последовательности В начинается с буквы Y.
-
Проверить, есть ли в последовательности А слова, начинающиеся с буквы N, и есть ли в последовательности В слова, начинающиеся с буквы Y.
-
Определить число слов, встречающихся в последовательности А до первой точки, и число слов, встречающихся в последовательности В до первой запятой.
-
Для каждой из последовательностей А, В, С выяснить, имеется ли в них пара соседних одинаковых символов.
-
Из последовательности А удалить все символы, стоящие после последней точки, а из последовательности В удалить все символы, стоящие после последнего восклицательного знака.
-
Для каждой из последовательностей А, В, С вычислить, сколько символов расположено от последней точки до конца этих последовательностей.
-
Определить, в какой из двух последовательностей, А или В, последнее слово имеет наибольшую длину.
-
Для каждой последовательности, А и В, выяснить, какое из слов –первое или последнее – имеет большую длину.
-
В каждой из последовательностей А, В, С заменить круглые скобки на соответствующие (открывающие или закрывающие) квадратные.
-
В каждой из последовательностей А, В, С заменить малые латинские буквы одноименными большими.
-
Выделить первое слово в каждой из последовательностей А, В, С.
-
Для последовательности А определить частоту вхождения каждой из русских гласных букв (а, е, и, о, у, э, ю, я), а для последовательности В определить частоту вхождения символов запятая и точка.
-
В каждой из последовательностей А, В, С переставить символы таким образом, чтобы первый символ стал последним, второй предпоследним, и т. д.
-
Выяснить, является ли каждая из последовательностей А, В, С идентификатором. Пояснение: идентификатор — это последовательность букв, цифр и символов подчеркивания, на первом месте может стоять только буква и символ подчеркивания
-
Вычислить число слов в каждой из последовательностей А, В, С.
-
Из последовательностей А, В, С удалить все пробелы.
-
Проверить, входит ли в последовательность А группа символов one, а в последовательность В ― группа символов two.
4. Обработка данных сложной структуры, хранящихся в файлах
-
Расписание экзаменов содержит следующие данные: номер студенческой группы, дату и время экзамена, номер аудитории, название предмета и фамилию преподавателя. Найти число дней занятости некоторого преподавателя.
-
Сведения об автомобиле состоят из его марки, номера, фамилии владельца и отметки о прохождении технического осмотра. Вывести сведения об автомобилях некоторого автовладельца.
-
В расписании поездов указано: номер поезда, пункты отправления и назначения, время отправления, время в пути. Вывести сведения о поездах, следующих из Москвы в Санкт-Петербург.
-
В анкетах сотрудников учреждения имеются следующие сведения: фамилия, имя, отчество, должность (мастер, инженер, рабочий и т.п.), стаж, образование. Вывести сведения об инженерах.
-
В сведениях об игрушках указываются название (мяч, конструктор и т. п.), цена, рекомендуемый возраст ребенка (например, от двух до пяти лет). Вывести сведения об игрушках-конструкторах.
-
Имеются следующие сведения о книгах: фамилия и инициалы автора, название, год издания, цена. Вывести сведения о всех книгах, в названии которых содержится слово "информатика", а также число таких книг.
-
Сведения состоят из фамилий сотрудников и их телефонов. Вывести фамилии сотрудников, номера телефонов которых начинаются с цифр 361, 362 или 273.
-
Имеются сведения о химических веществах: название, удельная масса, проводимость (проводник, полупроводник, изолятор). Вывести названия полупроводников.
-
Сведения о компьютерах некоторого учреждения состоят из марки компьютера, даты приобретения, номера комнаты, где находится компьютер, и фамилии ответственного лица. Вывести сведения о компьютерах заданной марки.
-
Сведения о заказе состоят из адреса (улица, дом, квартира) и даты (число, месяц, год) исполнения. Вывести сведения о заказах, которые должны быть выполнены на Московской улице, и их количество.
-
Багаж авиапассажира описывается фамилией пассажира, номером рейса, датой вылета, количеством и общей массой вещей. Вывести фамилии пассажиров, багаж которых состоит из одной вещи массой более 30 кг, и найти среднюю массу багажа всех пассажиров.
-
Сведения об изделиях, хранящихся на складе, состоят из порядкового номера, наименования и количества. Сделан заказ на некоторые изделия с указанием их наименования и количества. Вывести сведения об изделиях, по которым невозможно выполнение заказа (изделие отсутствует или заказанное количество больше имеющегося на складе).
-
Имеются сведения об экспортируемых товарах: наименование, страна, куда производится экспорт, срок поставки, количество и стоимость товара. Вывести страны, в которые должен быть поставлен данный товар до 1 мая, и общую стоимость указанных поставок.
-
Сведения о заказах некоторого предприятия бытового обслуживания состоят из номера заказа, даты (число, месяц, год) его исполнения и стоимости. Вывести все весенние заказы и их суммарную стоимость.
-
Некоторое обслуживающее предприятие хранит сведения о заказах: наименование заказа и время (часы, минуты, секунды) его поступления. Вывести заказы, которые произошли с 15 ч 10 мин 35 с до 18 ч 50 мин 10 с, и их число.
-
Сведения о горных вершинах состоят из следующих данных: название, координаты (широта, долгота), высота (в метрах над уровнем моря). Вывести сведения о вершинах с высотой более 3000 м, расположенных в Южном полушарии, и их максимальную высоту.
-
По некоторой группе людей собраны следующие медицинские данные: возраст, пол, рост, вес, температура, артериальное давление (два числа: верхнее и нижнее давление). Вывести сведения о мужчинах моложе 25 лет, имеющих верхнее артериальное давление выше 140, и их минимальный возраст.
-
О детях, поступающих в спортивную секцию, собраны следующие данные: фамилия, имя, год рождения, вес, рост. Вывести сведения о детях от 10 до 12 лет, рост которых не менее 155 см, а также их минимальный и максимальный вес.
-
Автоматизированная записная книжка содержит следующую информацию: фамилия, имя, отчество, адрес (город, улица, дом, квартира), телефон (если есть). Вывести фамилии и телефоны всех лиц, проживающих в г. Саратове на улице Солнечной. Определить их число.
-
Имеются сведения о районных библиотеках города: номер, тип (детская, взрослая), район, адрес, часы работы. Вывести адреса и часы работы всех детских библиотек данного района. Определить их количество.
-
Сведения о магазинах города состоят из названия, района, адреса, часов работы. Вывести сведения о книжных магазинах данного района, работающих после 18 ч, и количество таких магазинов.
-
Имеются следующие данные о товарах обувного магазина: наименование (ботинки, сапоги, босоножки и т. п.), тип (мужская, женская или детская обувь), сезон, цвет, размеры, стоимость. Вывести сведения о летней детской обуви и ее среднюю стоимость.
-
Имеются сведения о кошках, участвующих в конкурсе: порода, кличка, окрас, возраст, родители, фамилия хозяина, место в конкурсе. Вывести сведения о кошках сиамской породы, вошедших в призовую десятку. Вычислить средний возраст этих кошек.
-
Сведения о маршрутах городских автобусов содержат: номер маршрута, начальный пункт, конечный пункт, описание маршрута (промежуточные остановки), среднее время движения по маршруту, интервал в часы пик. Вывести номера маршрутов с заданным конечным пунктом и интервалом в часы пик, меньшим 10 мин. Также определить количество таких маршрутов.
-
Имеются сведения о пациентах поликлиники: фамилия, имя, отчество, год рождения, адрес, основное заболевание, дата последнего посещения лечащего врача. Определить количество больных диабетом и вывести сведения о больных диабетом, не посещавших лечащего врача более трех месяцев.
-
Имеются сведения о прохождении детьми прививок: фамилия, имя, год рождения, отметки о прививках против туберкулеза, полиомиелита, кори, коклюша, столбняка. Вывести сведения о детях семи лет, у которых отсутствует хотя бы одна прививка. Определить их число.
-
Сведения о товарах магазина одежды: наименование (костюм, пальто и т. п.), размер, рост, цвет, номер модели, цена. Вывести сведения о костюмах больших размеров (начиная с 52-го) и определить их минимальную и максимальную цену.
-
Имеются сведения о выпускниках учебного заведения: фамилия, имя, отчество, год поступления, год окончания, специальность, отметка о работе по специальности. Определить число лиц, окончивших учебное заведение в течение последних трех лет и не работающих по специальности. Вывести сведения о них.
-
Имеются сведения о программных продуктах: наименование, автор (или коллектив авторов), версия, год создания, модель ЭВМ. Вывести сведения об автоматизированных обучающих системах для заданной модели ЭВМ. Определить, сколько их.
-
О каждой книге имеются следующие сведения: фамилия и инициалы автора, название, год издания и число запросов за последние три года. Вывести фамилии авторов и названия книг, изданных до 2010 г., по которым нет запросов. Определить число таких книг.
8