Комментарии к программе
Исходные данные к программе расположены в типизированном файле input.dat, который подготовлен с помощью вспомогательной программы. Результат записывается в текстовый файл output.dat. Исходный файл считывается по одной записи, из которых формируется линейный список с одной связью. Ссылка на начало списка сохраняется в переменной Head.
При размещении элемента списка значение его поля Pay сравнивается с соответствующими значениями полей элементов, уже находящихся в списке. Очередной элемент вставляется в список так, чтобы полученная последовательность была упорядочена по значению поля Pay. Если список пуст или значение поля Pay очередного элемента превышает значение этого поля для первого элемента списка, то выполняется вставка в голову списка. В противном случае происходит поиск соответствующего места для вставки элемента. Во время поиска вспомогательная переменная R сохраняет ссылку на элемент списка, за которым размещается вставляемый элемент. Отсортированный список формируется в процедуре
InsertAndSort.
Таким образом, после считывания всего исходного файла формируется линейный список, отсортированный по убыванию значения поля Pay входящих в него элементов. Полученный список выводится поэлементно в текстовый файл output.dat. Одновременно с выводом элементов вычисляется сумма заработных плат сотрудников, которая заносится в файл в качестве последней записи. Запись отсортированного списка в текстовый файл выполняется в процедуре WriteList.
Варианты заданий
Вариант № 1
В исходном файле расположена последовательность целых чисел. Определить, имеются ли среди этих чисел совпадающие. Найденные совпадающие числа записать в новый файл.
Вариант № 2
В исходном файле расположена последовательность целых чисел, содержащая, по крайней мере, два отрицательных числа. Вывести в новый файл часть этой последовательности, заключенную между первым отрицательным числом и последним отрицательным числом, начиная с первого отрицательного числа. Числа должны выводиться в том же порядке, в котором они были расположены в исходном файле.
Вариант № 3
В исходном файле расположена последовательность целых чисел. Вывести в новый файл вначале все положительные числа, а затем все отрицательные с сохранением порядка следования среди положительных и среди отрицательных чисел.
Вариант № 4
В исходном файле расположены две последовательности натуральных чисел, упорядоченные по возрастанию. Между ними расположено число ноль. Вывести в новый файл все находящиеся в файле натуральные числа, расположив их в порядке возрастания.
Вариант № 5
Компонентами исходного файла являются записи, каждая из которых содержит следующие сведения: название игрушки, ее цена и диапазон возрастов детей, для которых игрушка предназначена. Вывести в новый файл названия игрушек, которые подходят детям заданного возраста. Содержимое выходного файла должно быть упорядочено по возрастанию цен.
Вариант № 6
В исходном файле расположена последовательность целых чисел. Вывести в новый файл те числа, которые встречаются в этой последовательности только один раз. Числа должны быть расположены в порядке возрастания.
Вариант № 7
В исходном файле расположена последовательность символов, определить частоту встречаемости каждого символа последовательности и записать в новый файл значение символов и частоту встречаемости в следующем виде:
символ <количество символов> символ <количество символов и т. д.
При решении задачи следует предполагать, что общее число различных символов неограниченно.
Вариант № 8
В исходном файле расположена последовательность, содержащая четное число символов. Записать в новый файл символы в следующем порядке: первый символ последовательности, последний символ последовательности, второй символ последовательности, предпоследний символ последовательности и т. д.
Вариант № 9
В исходном файле расположена последовательность целых чисел Аi, содержащая четное число элементов. Подсчитать число элементов последовательности n и вычислить суммы пар чисел A1 + An/2+1, A2 + An/2+2 и т. д. Полученные значения сумм записать в новый файл, упорядочив их по возрастанию.
Вариант № 10
В исходном файле расположена последовательность целых чисел, содержащая нечетное число членов. Записать в новый файл значения членов последовательности, начиная от середины к началу, а затем от середины к концу.
Вариант № 11
В исходном файле содержится упорядоченный по алфавиту список учащихся с указанием даты рождения (год, день, месяц). Составить программу, выводящую в новый файл, указанный список в порядке увеличения возраста ученика.
Вариант № 12
В исходном файле содержится список товаров с указанием наименования и цены. Составить программу, выводящую в новый файл все возможные перечни товаров, которые можно приобрести на заданную сумму.
Вариант № 13
В исходном файле расположена последовательность символов. Составить программу, выводящую в новый файл указанную последовательность после замены всех букв А на последний символ последовательности, а букв В на предпоследний.
Вариант № 14
В исходном файле расположена последовательность символов. Вывести в новый файл указанную последовательность после перестановки в ней следующих пар символов: {"A","C"}, {")","("}, {"Q" "I"}.
Вариант № 15
В исходном файле два целых положительных числа А и В, заданных путем перечисления их значащих цифр следующем виде: n A1A2…An m B1B2…..Bm, где n>20, и m>20, а Аi и Вi,- цифры чисел А и В. Составить программу, вычисляющую и записывающую сумму этих двух чисел в новый файл.
Вариант № 16
В исходном файле расположена последовательность символов. Составить программу, выводящую в новый файл символы, которые встречаются в последовательности не более трех раз.
Вариант № 17
В исходном файле расположена последовательность целых чисел. Общее количество членов последовательности кратно числу n, записанному после последнего члена последовательности, разделив последовательность на n частей вычислить сумму максимальных и минимальных чисел из каждой части. Записать полученные суммы и их максимальное и минимальное значения в новый файл.
Вариант № 18
В исходном файле расположена последовательность символов представляющая собой некоторое предложение. Слова в предложении разделяются пробелами, последний символ - точка. Составить программу, определяющую и записывающую в новый файл самое длинное слово, встречающееся в предложении не менее двух раз.
Вариант № 19
В исходном файле расположена последовательность символов. Составить программу, определяющую длину самой длиной последовательности, состоящей из одинаковых символов и записывающую найденную последовательность в новый файл.
Вариант № 20
В исходном файле расположена последовательность символов представляющая собой некоторое предложение. Слова в предложении разделяются пробелами, последний символ - точка. Определить самое длинное слово, содержащее наибольшее количество одинаковых символов. Записать найденное слово в новый файл.
Вариант № 21
В исходном файле расположено предложение. Слова в предложении разделяются пробелами, последний символ - точка. Составить программу, удаляющую из предложения слова, представляющие собой последовательности символов симметричные последнему слову в предложении. Полученное предложение записать в новый файл.
Вариант № 22
В исходном файле расположено предложение. Слова в предложении разделяются пробелами, последний символ - точка. Составить программу, вычеркивающую из предложения те слова, множество символов которых совпадают с символами, входящими в состав последнего слова предложения. Полученное предложение записать в новый файл.
Вариант № 23
Во входном файле расположена последовательность целых чисел. Упорядочить последовательность по возрастанию и записать результат в новый файл.
