Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PROLOG_Labs / Лабораторная работа 6.doc
Скачиваний:
96
Добавлен:
20.03.2015
Размер:
93.18 Кб
Скачать

Чтение из файла

/* Программа: Чтение файла */

/* Назначение: Чтение данных из файла и вывод их */

/* на экран и принтер. */

domains

file = datafile

predicates

write_message_l

check_for_ready

process_file process

input_output write_message_2

read_and_print

create_output_from_a_file

goal

create_output_from_a_file.

clauses

create_putput_from_a_file : -

write_message_l,

process_file,

write_message_2.

process_fi1e :-

check_for_ready,

process_input_output.

write_message_l :-

nl,nl,write("HELLO"),nl,nl,

write("This program reads and writes "),

nl,

write("data from a data file."),

nl,nl.

check_for_ready :-

write("PLEASE PRESS SPACE BAR WHEN"),

nl,

write(" YOU ARE READY TO BEGIN."),

nl,nl,

readdevice(keyboard),

readchar(_).

process_input_output :-

write("Please enter complete filename."),

nl,

write(" Then press the return key."),nl,

write("The format of the file name is"),

nl,

write(" <file name>.<extension>."),

nl,nl,

readln(Filename),

nl,

openread(datafile,Filename),

readdevice(datafile),

read_and_print,

closefile(datafile).

write_message_2 :-

writedevice(screen),

nl,nl,

write("Printing of data from the file."),

nl,

write("has been completed."),nl,nl,

write(" Good bye !"),nl.

read_and_print :-

not(eof(datafile)).

readchar(Y),

write(Y),

writedevice(printer),

write(Y),

flush(printer),

writedevice(screen),

read_and_print.

read and_print :-

nl,nl,

write("Please press the space bar"),

readdevice(keyboard),

readchar(_).

/***** конец программы *****/

Практическое задание

Выполнить задание по индивидуальному номеру варианта, полученного у преподавателя.

  1. Создать программу, которая позволила бы вводить с клавиатуры в файл любимое стихотворение пользователя. Обеспечить возможность прочтения стихотворения и его удаления. Файл сохранять с именем, введенным пользователем.

  2. Написать программу, формирующую файл с именем, задаваемым пользователем. Указанный файл должен содержать введенный пользователем с клавиатуры текст с учетом абзацев(абзац считать одной строкой). Пользователь должен иметь возможность прочитать весь файл, удалить из него весь текст, набрать текст заново.

  3. Предоставьте возможность пользователю создать свой файл, в котором хранится информация, являющаяся для него конфиденциальной. Только один пользователь должен иметь доступ к этому файлу для его чтения, уничтожения и перезаписи.

  4. Написать программу, которая вводимые пользователем с клавиатуры буквы распределяет соответственно в два файла: гласных и согласных букв. Остановкой ввода должен служить любой символ, отличный от буквы. Пользователь должен иметь возможность просмотра созданных файлов.

  5. Создать программу, которая проводит следующие действия: а) введённую пользователем маленькую букву преобразует в большую; б) записывает полученные буквы в соответствующие файлы больших и маленьких букв. Остановкой записи считать любой символ, отличный от букв. Пользователь должен иметь возможность просмотреть содержимое полученных файлов.

  6. Написать программу, которая запрашивает у пользователя имя файла для последующего сохранения в нем введенной с клавиатуры информации. Информация представляет собой следующий вид: последовательность вводимых символов будет одной строкой, если содержит только буквы или только цифры, т.е. после ввода букв сигналом начала новой строки является введенная цифра и наоборот. Обеспечит возможность просмотра содержимого файла и его удаления.

  7. Написать программу, которая позволила бы вводить с клавиатуры в файл с указанным пользователем именем стихотворение. Кроме того, обеспечить возможность 1) сохранения существующего файла в файле с другим именем; 2) доступа к любому из полученных файлов с целью их просмотра или удаления.

  8. Создать программу, которая сохраняет вводимую с клавиатуры информацию в файле с заданным именем следующим образом: каждое введенное пользователем слово сохраняется как отдельная строка. Сигналом окончания строки, очевидно, является нажатие пробела, а окончания ввода – ENTER. Обеспечить возможность просмотра файла целиком и его удаления.

  9. Написать программу, позволяющую производить следующие манипуляции: 1) создавать файл с именем, указанным пользователем; 2) сохранять в этом файле (с дублированием для большей сохранности еще в одном файле) информацию, вводимую с клавиатуры согласно следующему принципу: сохранять в виде отдельной строки каждую запись, оканчивающуюся нажатием клавиши ENTER, окончанием ввода считать слово “end!”; 3) открыть созданный файл для чтения; 4) удалить файл (дополнительный файл удалить лишь после повторного подтверждения соответствующего запроса).

  10. Написать программу, которая выполняет следующие функции: 1) создает файл с именем, указанным пользователем; 2) в этот файл заносит информацию о студентах вашей группы следующим образом: student(“Иванов”, “Иван”, “Иванович”, “1983”) (как одну строку) (пользователь естественно должен вводить только ФИО и год рождения, но вид строк в файле должен быть таким, как в примере); 3) просматривает файл в целом; 4) удаляет файл.

  11. Написать программу, выполняющую следующие операции: 1) открывает любой файл с диска (использовать предикат dir); 2) выводит содержимое файла на экран; 3) перезаписывает файл, вводя информацию пользователя (перезапись осуществлять после дополнительного запроса); 4) дописывает информацию в файл; 5) удаляет выбранный файл.

  12. Написать программу, выполняющую следующие действия: 1) вводимые пользователем символы сохраняет соответственно в файле русских и латинских букв; 2) предоставляет возможность просмотра указанных файлов; 3) удаляет файлы с диска после запроса у пользователя подтверждения о завершении работы с программой.

  13. Написать программу, выполняющую следующие действия: 1) создает на диске три файла с именами, указанными пользователем; 2) файлы пополняются информацией следующим образом: первая строка сохраняется в первом файле, вторая – во втором; третья – в третьем, четвертая – в первом и т.д.; 3) просматривает файлы; 4) удаляет файлы после повторного запроса об их удалении.

  14. Написать программу, которая распределяет вводимые пользователем числа следующим образом: четные числа в файл «chet.dat», нечетные – «nechet.dat». Каждое введенное число считать отдельной строкой. Обеспечить возможность просмотра указанных файлов и их последующей очистки.

  15. Создать программу, которая формирует файлы следующего типа: первый файл содержит ФИО людей в виде отдельных строк; второй файл – соответствующие года рождения (тоже отдельными строками). Информация в каждом файле пополняется вводом с клавиатуры. Затем получить третий файл, который содержит в качестве отдельной строки уже объединение соответствующих строк из первого и второго файлов. Все файлы должны быть доступны к их полному просмотру и удаляться после завершения работы программы.

  16. Написать программу, которая выполняет следующие операции: 1) создает файл с указанным пользователем именем; 2) заполняет файл строками, которые вводятся с клавиатуры (конец строки совпадает с нажатием enter); 3) просматривает файл полностью; 4) дозаписывает в файл новые строки; 5) удаляет файл после завершения работы программы.