
- •Сборник задач по структурному программированию
- •Оглавление
- •Аннотация
- •Введение
- •Раздел 1
- •Работа с простыми типами данных
- •I a b c результат (можно/ нельзя)
- •Пример 1.1.1
- •Var hour,minute,n:longint;
- •Пример 1.1.2.
- •Var X,s,p:real;
- •I,n:integer;
- •Работа с символами, строками и текстом.
- •3 Слова длины 8 букв и т. Д.
- •Пример 1.2.1
- •Var s:string[80];
- •I,k:integer;
- •Разработка структурированных программ с использованием процедур и функций.
- •Пример 1.3.
- •Var I:word;
- •Var I:word;
- •X:integer;
- •I,m:word;
- •Работа с файлами разных типов.
- •Пример 1.4.
- •I: word;
- •Var X:integer;
- •Var I:word;
- •Var X:integer;
- •Inc(X);{Количество слов будет на 1 меньше!!}
- •Var p:boolean;
- •If p then
- •Var j:integer;
- •Var k,l:byte;
- •Динамические структуры данных. Списки.
- •Пример 1.5.
- •Var lp,pList,pStart : pEl_list;
- •I,oi,kol: integer; {переменные для работы с меню}
- •Insert_list(li);
- •Var I:integer;
- •Var I:integer;p:boolean;
- •Var k:char;
- •1: Begin dialog;
- •2: Begin dialog;
- •3: Begin dialog;
- •4: Begin
- •If noswap then begin
- •5: Begin
- •Var I:integer;
- •Vivod(2,2,25);
- •Решение графических задач
- •Пример 1_6.
- •Var dr,md:integer;
- •X,y,x1,y1,x2,x3,y2,y3,r:integer;
- •Var a:real;
- •Раздел 2
- •Работа с графическими объектами
- •Пример 2.1
- •X,y: real;
- •Var f1,f2:real;
- •Var gd,gm:integer;
- •Xb,xe,I,j:integer;
- •Работа с объектами- векторами
- •Пример 2.2
- •Var t:tPerson;
- •Interface
- •Implementation
- •I:integer;
- •I:integer;
- •I,j:integer;
- •Var m:integer;
- •Init(m);
- •Insert;
- •Работа с объектами - списками.
- •Пример 2.3
- •Interface
- •Implementation
- •Var Pcur1:t_el;
- •Var fname:ss;
- •Var s1:ss; p:byte; I:byte;
- •Var I:integer;
- •Interface
- •Implementation
- •Var Mylt:my_list;
- •Разработка объектов- таблиц.
- •Работа со структурами данных типа дерево.
- •Inf: integer;
- •Пример 2.5.
- •Interface
- •Implementation
- •Var newnode:pnode;
- •X,nl,nr:integer;
- •Var I: word;
- •Var q:pnode;
- •Разработка многомодульных задач.
- •Приложение.
- •Interface
- •Ik:word;{количество записей}
- •IEl:elmnt;
- •Var init_Ok:boolean;
- •Implementation
- •Var I:word;
- •Var m:word;
- •Var I:word;
- •If n then begin
- •Var I:word;
- •Var I: word;
- •Var I:word;{при выходе уничтожаем все списки}
- •Interface
- •Implementation
- •1: Begin
- •2: Begin
- •3: Begin
- •1: Begin
- •2: Begin
- •I:byte;
- •1: Begin
- •2: Begin
- •3: Begin
- •4: Begin
- •Var stop:boolean;
Работа с файлами разных типов.
В этом разделе предлагаются для решения задачи, использующие простые типы данных: числа, строки, а также структурированные данные типа массивов и записей. Для хранения каждого типа данных предлагается использовать указанный тип файла.
Багаж каждого пассажира характеризуется количеством вещей и их общим весом. В файл занести сведения о всех пассажирах некоторого рейса. Определить, есть ли пассажиры, багажи которых совпадают по весу и пассажиры, вес багажа которых отличается не более, чем на 0.5 кг. Создать упорядоченные последовательности всех категорий пассажиров. Признак упорядоченности выбирайте сами.
Создать файл, содержащий сведения об учащихся в формате: фамилия, имя, отчество, номер. Прочитать все сведения из файла, упорядочив по фамилиям. Переписать все сведения в новый файл, изменив формат записи: номер, фамилия, имя, отчество.
Разработать файловую систему для обработки сведений о количестве произведенных деталей. Компонентами файла должны быть: название детали, количество произведенных деталей, стоимость одной детали. Создать файл сведений о деталях. По запросу пользователя из файла надо прочитать сведения о требуемой детали и стоимость каждого комплекта деталей.
Сформировать файл из произвольного количества случайных чисел. Случайные числа получать по следующему алгоритму:
Ввести некоторое целое число N и два числа I и J.
Выполнить действие I = MOD(I*J/32).
Повторить п.1 N раз.
Сохранить в файле числа, прочитать по запросу их из файла и определить наличие периодичности в последовательности случайных чисел.
Числовая матрица задается в файле в следующем формате: I и J, номера столбца и строки ненулевого элемента матрицы, и само значение элемента А(I,J). Количество нулевых элементов неизвестно. Вывести матрицу на экран в обычной форме в виде последовательностей строк и столбцов. Обеспечить преобразование матрицы перестановкой P и Q строк матрицы. Переписать преобразованную матрицу в файл. Размерность матрицы M * N.
Создать файл F, содержащий M слов. Переписать всю последовательность слов в обратном порядке и записать ее в файл Q. Обеспечить вывод двух вариантов последовательностей слов.
Создать файл из целых чисел. Количество чисел должно быть кратно 10. Переписать компоненты исходного файла в другой файл следующим образом: в каждой десятке чисел сначала должны стоять отрицательные числа, а затем положительные. Обеспечить вывод на экран исходной и преобразованной последовательностей чисел.
В файл записать произвольный текст, оканчивающийся точкой. Слова в тексте разделены произвольным количеством пробелов. Преобразовать текст, исключив все лишние пробелы (более одного). Подсчитать количество слов в файле. Обеспечить вывод исходного текста и преобразованного теста и количества слов.
В файл записать некоторый текст, заканчивающийся знаком “;”. Все слова текста упорядочить по количеству букв в словах в порядке возрастания длины слов. Вывести полученную последовательность слов. Для сравнения результатов обработки текста обязательно присутствие исходного текста на экране.
Дана последовательность действительных чисел. Последовательность сохранить в файле. Последовательность упорядочить по убыванию значений. Удалить из упорядоченной последовательности все отрицательные числа. Вывести на экран исходную и все варианты преобразованных последовательностей.
В файл записать последовательность действительных чисел. Прочитать из файла последовательность. Упорядочить ее по возрастанию и обеспечить вставку некоторого P количества чисел, не нарушая упорядоченности последовательности. Сохранить полученную последовательность в другом файле. Вывести на экран все варианты последовательностей.
Создать файл из целых чисел. Количество компонент должно быть кратно 10. Прочитать последовательность из файла и поделить ее на подпоследовательности по 10 элементов. В каждой подпоследовательности вначале поставить все элементы, кратные 10, а затем все остальные. Преобразованную последовательность сохранить в новом файле. Вывести исходную последовательность и результат ее преобразования.
Создать два файла из произвольного количества чисел. Из каждого файла удалить числа большие 100 и сформировать один файл из оставшихся чисел. Все сравнения и преобразования выполнить в памяти. Результаты преобразования и исходные последовательности вывести на экран.
В N файлах создать сведения о студентах N групп. Формат сведений: N группы, порядковый номер, фамилия, имя, отчество. Выбрать всех однофамильцев из всех групп и сформировать из них последовательность. Обеспечить вывод сведений каждой группы и результата поисков.
В двух файлах записать последовательности чисел A и B. Создать новый файл, в котором содержатся только те числа, которые не содержатся одновременно в этих последовательностях. Вывести на экран исходные последовательности и результат преобразования.
Создать файл, содержащий сведения о расписании рейсов самолетов в формате: город вылета, город назначения, время вылета из аэропорта вылета и время полета. Выбрать из файла и напечатать все рейсы любого города назначения. Обеспечить вывод также всего файла расписания.
Прямая на плоскости задается уравнением ax+ by + c=0, где a и b не равны нулю. Все коэффициенты - целые числа. В файле задается произвольное количество наборов коэффициентов прямых. Определить количество наборов коэффициентов, записанных в файле. Выбрать из файла коэффициенты тех прямых, которые параллельны первой или последней из заданных в файле прямых. Результаты обработки файла и исходные данные представить на экране.
Создать файл, содержащий сведения о товарах в формате : наименование товара, страна - производитель товара, количество в наличии, цена единицы товара. Создать последовательность товаров одного наименования из всех стран. определить их количество и среднюю стоимость. Вывести на экран результат обработки файла и обеспечить просмотр всего содержимого файла.
Создать два файла, в каждом из которых содержится некоторый текст. Определить сколько раз каждое слово из первого файла содержится во втором файле. Вывести результаты обработки и исходное содержимое файлов на экран.
В файле задать последовательность точек с координатами X иY. Количество наборов - любое. Вводится произвольная точка . Найти из заданного набора точек самую ближайшую точку к введенной. Обеспечить вывод на экран координат исходных точек и результат выбора.
Создать текстовый файл, в котором содержится некоторое количество строк. Переформатировать текст таким образом, чтобы каждая строка содержала не более 30 литер и заканчивалась точкой. Обеспечить вывод исходного текста и результата преобразования. Слова в файле должны сохранить первоначальный порядок следования и в них не должно быть знаков переноса.
Создать текстовый файл произвольной длины. Текст разбит на строки. Каждая строка заканчивается знаком “;”. В каждой строке между словами произвольное количество пробелов. Вывести на экран только те строки, в которых содержится не менее 30 символов, отличных от пробелов. Обеспечить также вывод на экран исходного варианта файла.
Создать текстовый файл, в котором текст записан с разделителем между строками в виде точки с запятой. Обработать текст таким образом, чтобы каждая строка начиналась с первой позиции строки и первая буква каждой строки была заменена с прописной на строчную. Результаты преобразования текста и его исходный вид вывести на экран.
Создать числовой файл из произвольного количества элементов. Из числового файла переписать исходную последовательность в новый файл, выбрав из нее только нечетные числа и расположив их в порядке неубывания. Обеспечить вывод исходной и результирующей последовательностей.
Создать файл, в котором компоненты файла - слова, произвольной длины и неупорядоченные по алфавиту. Выполнить упорядочивание слов по длине и по алфавиту. Обеспечить вывод всех вариантов преобразований последовательности слов и для сравнения обязательно выводить на экран исходную последовательность.
Задается файл сведений об учащихся по следующему формату: фамилия, имя, отчество, номер группы. Переписать все эти сведения в новый файл, обеспечив преобразование формата сведений следующим образом: группа, фамилия, имя, отчество. Вывод преобразованных сведений должен быть упорядочен по номерам групп. Исходную последовательность также выводить на экран.
Создать файл, содержащий сведения о книгах в библиотеке. Формат сведений: фамилия автора, название книги, год издания. Обеспечить выбор сведений из файла о запрашиваемом авторе. Последовательность только авторов должна присутствовать на экране. Сведения должны выводиться упорядоченными по годам издания. Предусмотреть вывод исходных неупорядоченных сведений.
В файл заносятся неупорядоченные сведения о владельцах автомобилей одного гаража. Формат сведений: фамилия владельца, марка автомобиля, регистрационный номер автомобиля и номер места в гараже. Перечень имеющихся в гараже марок автомобилей должен выводиться на экран при запуске программы. Обеспечить формирование последовательности сведений о владельцах запрашиваемой марки автомобиля.
Создать текстовый файл из строк произвольной длины. Каждая строка заканчивается любым знаком-разделителем. Переформатировать файл таким образом, чтобы каждая строка содержала не более 40 литер, заканчивалась обязательно точкой и среди 40 литер не было бы ни одной точки. Записать новую версию текста в новый файл, вывести новую и старую версии записи текста.
Создать файл из сведений об абонентах телефонного узла. Формат сведений: фамилия, имя, отчество, адрес, номер счета. Обеспечить вывод из файла только последовательностей абонентов на запрашиваемую букву. После выбора конкретной фамилии должны выводиться все сведения об абоненте. Необходимо обеспечить редактирование , удаление, дополнение сведений . Все изменения должны заноситься в файл.