Задания для самостоятельного решения. 1. Написать рекурсивную процедуру для ввода с клавиатуры последовательности чисел (окончание ввода – 0) и вывода ее на экран в обратном порядке
1. Написать рекурсивную процедуру для ввода с клавиатуры последовательности чисел (окончание ввода – 0) и вывода ее на экран в обратном порядке. 2. Используя рекурсию написать программу перевода натурального числа из десятичной системы счисления в двоичную. 3. Напишите программу с использованием рекурсии для поиска наименьшего элемента массива. Лабораторная работа №20. Тема: «Разработка программ создания, корректировки и просмотра типизированных файлов». Цель работы: 1. Изучение файловых типов в языке Pascal 2. Получение навыков при обработке файлов с последовательным доступом. Программные средства: система программирования Borland Pascal.
ЗАДАНИЕ №1. Прочитать из файла целые числа и вывести их на экран. Решение: Напишем фрагмент программы: ... Assign (F1, ‘A: int. dat); { связываем файловую переменную с файлом на диске } Reset (F1); { открываем файл для чтения } while not EOF (F1) do { пока не достигнут конец файла } Begin read (F1, n); { считываем очередное число } write (n, ‘ ‘); { выводим его на экран } End; close (F1); { закрываем файл } .......
ЗАДАНИЕ №2. В файле dan.dat записаны целые числа(см. Задание №1). Вычислить сумму элементов файла и результат вместе с исходными данными записать в файл dan1.dat. Вопросы для обсуждения. 1. Сколько переменных нужно для решения данной задачи? Каких? 2. Как определить конец файла? 3. Как считывать элементы и файла dan1.dat? 4. Как записать данные в файл dan1.dat? Решение: Program summa; Var F1, F2: file of integer: { файловые переменные } S, N: integer; Begin {С файловой переменной F1 связываем файл на диске } assign (F1, ‘ dan.dat); resit (F1); { открываем файл для чтения } { С файловой переменной F2 связываем файл на диске } assign (F2, ‘ dan1.dat); write (F2); { Открываем файл F2 для записи } S: =0; While not eof (F1) do { проверка на конец файла F1 } begin read (F1, N); { чтение элемента из файла F1 } write(F2, N); { запись элемента в файл F2 } S: =S+N; { накопление суммы } end; { Запись суммы элементов в конец файла F2 } write(F2, S); write(‘Результат находится в файле dan1. dat’); close(F1); { закрываем файл F1 } close(F2); { закрываем файл F2 } readln end. Задание для самостоятельного решения: 1. Дан файл F, элементами которого являются числа. Найти: a) Количество элементов в файле b) Наибольший из элементов. Если имеется несколько таких элементов, то посчитать их количество c) Среднее арифметическое элементов 2. Даны файлы F и G, элементами которых являются символы. Записать с файл Н: а) все элементы файлов F и G; b) все латинские буквы из файла F. 3. Даны два файла А и В. Элементами файла А являются целые числа, а файла В – символы. Вывести на экран все числа из первого файла, а рядом с ними – элементы из второго файла с соответствующими номерами. Если во втором файле нет элемента с данным номером, то вывести соответствующее сообщение.
|