Файл: 2. Лекции Паскаль (Часть 2).doc

Добавлен: 19.10.2018

Просмотров: 4477

Скачиваний: 9

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Оглавление

9. Файловые типы данных

9.1. Инициализация файла

9.2. Файлы и работа с ними

Лабораторная работа №11.

Работа с внешними файлами

Лабораторная работа №11, вариант № 5.

Работа с внешними файлами

Варианты заданий.

9.3. Сортировка файлов.

9.3.1. Слияние упорядоченных последовательностей.

9.3.2. Сортировка сбалансированным слиянием

9.3.3. Сортировка простым слиянием

9.3.4. Сортировка естественным слиянием.

9.3.5. Сортировка многофазным слиянием.

Лабораторная работа №12.

Сортировка файлов.

Лабораторная работа №12.

Сортировка файлов.

10. Динамическая память.

10.1. Указатели.

10.2. Списки.

Лабораторная работа № 13.

Исключение элементов списка.

Образец выполнения работы.

Лабораторная работа № 13.

Исключение элементов списка.

Варианты задания.

Лабораторная работа № 14.

Работа со списками.

Образец выполнения работы.

Лабораторная работа № 14.

Работа со списками.

Варианты задания.

Лабораторная работа № 15.

Выполнение операций над списковыми структурами.

Образец выполнения работы.

Лабораторная работа № 15.

Выполнение операций над списковыми структурами.

Варианты заданий.

10.3. Деревья.

10.4. Стеки, очереди.

Образец выполнения работы.

Лабораторная работа № 16.

Работа со стеками и очередями.

Лабораторная работа № 16.

Работа со стеками и очередями.

11. Организация меню с использованием средств среды Turbo Pascal

Лабораторная работа №17.

Составления меню.

Образец выполнения работы.

Лабораторная работа № 17.

Составления меню.

writeln(' ',stu.fio);

writeln(text1,stu.godr);

writeln(text2,stu.godo);

writeln(text3);

writeln(text4,stu.ates.mat);

writeln(text5,stu.ates.fiz);

writeln(text6,stu.ates.rus);

writeln(text7);

writeln(text4,stu.ekz.mat);

writeln(text5,stu.ekz.fiz);

writeln(text6,stu.ekz.rus);

if stu.haus then writeln(text8)

else writeln(text9);

window(1,3,39,3+fiounit);clrscr;

freeunit:=1;

reset(files);while not(freeunit=position) do begin read(files,stu);freeunit:=freeunit+1;end;

while not eof(files)and not(freeunit=position+fiounit) do

begin

read(files,stu);

if (position)=freeunit then

begin

textcolor(0);

textbackground(4);

writeln(freeunit,'.',stu.fio);

textcolor(15);

textbackground(0);

end

else writeln(freeunit,'.',stu.fio);

freeunit:=freeunit+1;

end;

while not(freeunit=position+fiounit) do

begin

writeln(freeunit,'.........................');

freeunit:=freeunit+1;

end;

window(1,25,80,25);textcolor(0);textbackground(2);

write('| Esc-выход | Delete-удалить | Enter-изменить | End-сортировка |');

keys:=readkey;

sound(2000);

quit:=false;

if keys=#79 then begin sort;end;

if keys=#72 then begin position:=position-1;if position=0 then position:=1;end;

if keys=#80 then begin position:=position+1;if position=(rec+1) then position:=rec;end;

if keys=#83 then delet;

if keys=#13 then koreckt;

nosound;

until (keys=#27)or(rec=0);

ex:end;

procedure creat;

begin

cls;

path:=path+name+'\';

write('Введите имя создаваемого файла ',path);

readln(name);

namefile:=path+name+'.dat';

if openfile then close(files);

assign(files,namefile);

rewrite(files);

close(files);

end;

procedure lookdir;

var f:searchrec;

recdir:integer;

attr:byte;

begin

cls;position:=1;path:='c:\';

repeat

freeunit:=1;recdir:=0;

window(30,1,60,21);textcolor(15);textbackground(0);clrscr;

writeln(path);writeln;

FindFirst(path+'*',Directory,f);

while doserror=0 do

begin

recdir:=recdir+1;

if position+20>=recdir then if position=recdir then begin

textcolor(0);textbackground(15);

writeln(f.name);

textcolor(15);textbackground(0);

name:=f.name;attr:=f.attr;

end

else if position <recdir then writeln(f.name);

findnext(f);

end;

FindFirst(path+'*.dat',AnyFile-Directory,f);

while doserror=0 do

begin

recdir:=recdir+1;

if position+20>=recdir then if position=recdir then begin

textcolor(0);textbackground(15);

writeln(f.name);

textcolor(15);textbackground(0);

name:=f.name;attr:=f.attr;

end

else if position <recdir then writeln(f.name);

findnext(f);

end;

window(1,25,80,25);textcolor(0);textbackground(2);

write('| Esc-Выход | Insert-Выбрать каталог |');

keys:=readkey;

sound(2000);

quit:=false;

if keys=#82 then if ((attr=48)or(attr=16))and not((name='.')or(name='..'))then begin creat;quit:=true;end;

if keys=#72 then begin position:=position-1;if position=0 then position:=1;end;

if keys=#80 then begin position:=position+1;if position=(recdir+1) then position:=recdir;end;

if keys=#13 then if (attr=48)or(attr=16) then if (name='..')or(name='.') then begin

repeat

delete(path,length(path),1);

until '\'=copy(path,length(path),1);

position:=1;

end

else begin path:=path+name+'\';position:=1;end

else begin quit:=true;namefile:=path+name;end;

if keys=#27 then quit:=true;

nosound;

until quit;

if not(keys=#27) then

begin

openfile:=true;

assign(files,namefile);

end;

quit:=false;

end;

procedure find;

label ex;

var finfio:string[30];

begin

if not openfile then goto ex;

write('Введите Ф.И.О. :');

readln(finfio);

reset(files);

freeunit:=1;

while not eof(files) do

begin

read(files,stu);if stu.fio=finfio then begin clrscr;lookmenu;goto ex;end;

freeunit:=freeunit+1;

end;

ex:end;

procedure add;

label ex;

begin

if not openfile then goto ex;

reset(files);rewrite(filetemp);


while not eof(files) do begin read(files,stu);write(filetemp,stu);end;

reset(filetemp);rewrite(files);

while not eof(filetemp) do begin read(filetemp,stu);write(files,stu);end;

repeat;

reader;

write(files,stu);

clrscr;

writeln(' Данные об абитуриенте введены');

writeln('1-Добавить данные');

writeln('2-Выход');

writeln(' (нажмите 1 или 2)');

keys:=readkey;

until keys='2';

ex:end;

begin

namefile:='**********';rec:=0;openfile:=false;

assign(filetemp,'c:\temp.dat');

startmenu;

repeat

outtextmenu(menuunit,true);

keys:=readkey;

sound(2000);

quit:=false;

if keys=#72 then begin outtextmenu(menuunit,false);menuunit:=menuunit-1;if menuunit=0 then menuunit:=9;end;

if keys=#80 then begin outtextmenu(menuunit,false);menuunit:=menuunit+1;if menuunit=10 then menuunit:=1;end;

nosound;

if keys=#13 then begin

cls;

case menuunit of

1:lookdir;

2:lookdir;

3:find;

4:add;

5:lookmenu;

6:lookmenu;

7:lookmenu;

8:lookmenu;

9:quit:=true;

end;

startmenu;

end;

until quit;

if openfile then close(files);

rewrite(filetemp);close(filetemp);erase(filetemp);

end.



Распечатка результатов работы программы после выполнения пунктов меню 4,5,6 и 8:

Фамилия Имя Отчество


1.Бажин Никита Андреевич

2.Гаспер Валентина Александровна

3.Демидов Иван Сергеевич

4.Егорова Пелагея Луповна

5.Еговцев Иван Артурович Бажин Никита Андреевич

6.Кирьянов Антон Алексеевич Год рождения......……..…1983

7.Корягина Нина Плахова Год окончания школы…..2000

8.Маслова Нина Михайловна Оценки в атестате

9.Молчановский Ильнар Ирекович Метематика.....………......5

10.Мельникова Лариса Анатольевна Физика..............…………..5

11.Михайлов Артём Егорович Русский язык........………4

12.Малышев Василий Владимирович Оценки на вступительных экзаменах

13.Ползунова Елена Андреевна Метематика..........……….5

14.Смирнов Никита Владимирович Физика..............…………...4

15.Созинов Алексей Петрович Русский язык........……….4

16.Синилов Сергей Иванович Нуждается в общежитии

17.Теплоухов Юрий Леонидович

18.Токарева Надежда Александровна

19.Тихонов Сергей Геннадьевич

20.Шарапов Евгений Владимирович



| Esc-выход | Delete-удалить | Enter-изменить | End-сортировка |


Варианты заданий.

  1. Книги в библиотеке. Содержится следующая информация: Название книги, автор, год издания, тираж, инвентарный номер.

  2. Автостоянка. Сведения о прибывающих машинах: Марка, номер, ФИО владельца, дата прибытия на стоянку, время нахождения на стоянке.

  3. Фирма. Анкетные данные сотрудников: ФИО, год поступления в фирму, дата рождения, оклад, адрес.

  4. Аптека. Номенклатура товаров: Название лекарства, внутреннее/наружное, дата изготовления, срок годности, ФИО кассира (продавца).

  5. Фильмы. Список содержит следующую информацию: название фильма, режиссёр, год выпуска, продолжительность в минутах, студия, где снимался фильм.

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

  7. Фотография. Журнал записей содержит информацию: номер заказа, дата приёма заказа, размер фотографий, ФИО фотографа, ФИО заказчика, цена заказа.

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

  9. Продажа видео-аудио кассет. Хранится следующая информация: Марка кассеты, фирма-изготовитель, название альбома, время записи (например: 60, 90 минут).

  10. Магазин “Мебель”. Номенклатура товаров: Наименование изделия, дата изготовления, цена продажи, завод-изготовитель, цвет, название материала из которого изготовлено изделие.

  11. Магазин “Продукты”. Ведётся учёт товаров: Наименование товара, поступившее количество (штук), количество проданного (штук), цена продажи, дата изготовления, дата реализации.

  12. Магазин “Одежда”. Ведётся учёт товаров: Наименование изделия, цена за штуку, количество полученное, продано, размер, цвет, вид ткани.

  13. Детский сад. Информация о дошкольниках: ФИО ребёнка, дата рождения, адрес проживания, уровень подготовки (значение 1-5).

  14. Отдел “Бытовая техника”. Содержится следующая информация: Наименование товара, фирма изготовитель, серийный номер, цвет, срок гарантии.

  15. Киоск “Цветы”. Ведётся учёт проданных цветов: Название цветка, цена за штуку, цвет, комнатное/садовое.

  16. Ремонт часов. Имеется следующая информация: Марка часов, ФИО часовщика, дата приёмки, дата выхода из ремонта, стоимость ремонта.

  17. Картинная галерея. Ведётся учёт экспонатов галереи: Наименование картины, художник, инвентарный номер, год создания картины, реставратор, цена.

  18. Магазин “Ткани”. Ведётся учёт товаров: Наименования ткани, фабрика -изготовитель, полученное количество (в метрах), цена за метр, ширина ткани.

  19. Телефонная станция. Имеется информация: ФИО абонента, номер телефона, адрес, тариф со звонка.

  20. Речное пароходство. Информация о судах: Название парохода, маршрут, водоизмещение, количество пассажирских мест, класс судна (пароход, теплоход, трамвайчик).

  21. Ателье. Имеется следующая информация: номер заказа, наименование изделия, количество ткани для изделия, стоимость заказа, дата приёма заказа, дата изготовления.

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

  23. Почта. Ведётся учёт предоставляемых услуг: Категория отправления (посылка, бандероль, телеграмма, письмо, перевод), вес или количество букв, стоимость услуги, дата отправления, время отправления.

  24. Стройматериалы. Ведётся учёт продажи материалов: Наименование материала, завод-изготовитель, цвет, тонкость помола, цена за единицу.



Анкетные данные абитуриентов:

Анисимов Петр Иванович

Год рождения: 1982

Год окончания школы: 1999

Аттестат:

Математика: 4

Физика: 4

Русский язык: 4

Нуждается в общежитии.

Экзамены:

Математика: 5

Физика: 3

Русский язык: 4

Синилов Сергей Иванович

Год рождения: 1983

Год окончания школы: 2000

Аттестат:

Математика: 4

Физика: 4

Русский язык: 4

Не нуждается в общежитии.

Экзамены:

Математика: 4

Физика: 5

Русский язык: 3

Шарапов Евгений Владимирович

Год рождения: 1984

Год окончания школы: 2001

Аттестат:

Математика: 4

Физика: 5

Русский язык: 4

Не нуждается в общежитии.

Экзамены:

Математика: 4

Физика: 5

Русский язык: 3

Бажин Никита Андреевич

Год рождения: 1983

Год окончания школы: 2000

Аттестат:

Математика: 5

Физика: 5

Русский язык: 4

Нуждается в общежитии.

Экзамены:

Математика: 5

Физика: 4

Русский язык: 4

Созинов Алексей Петрович

Год рождения: 1984

Год окончания школы: 2001

Аттестат:

Математика: 5

Физика: 5

Русский язык: 5

Не нуждается в общежитии.

Экзамены:

Математика: 5

Физика: 5

Русский язык: 4

Малышев Василий Владимирович

Год рождения: 1982

Год окончания школы: 1999

Аттестат:

Математика: 4

Физика: 4

Русский язык: 5

Не нуждается в общежитии.

Экзамены:

Математика: 4

Физика: 5

Русский язык: 4

Мельникова Лариса Анатольевна

Год рождения: 1984

Год окончания школы: 2001

Аттестат:

Математика: 5

Физика: 5

Русский язык: 4

Не нуждается в общежитии.

Экзамены:

Математика: 5

Физика: 5

Русский язык: 5

Тихонов Сергей Геннадьевич

Год рождения: 1982

Год окончания школы: 1999

Аттестат:

Математика: 4

Физика: 5

Русский язык: 4

Нуждается в общежитии.

Экзамены:

Математика: 5

Физика: 4

Русский язык: 3

Еговцев Иван Артурович

Год рождения: 1983

Год окончания школы: 2000

Аттестат:

Математика: 5

Физика: 4

Русский язык: 4

Нуждается в общежитии.

Экзамены:

Математика: 4

Физика: 4

Русский язык: 4

Ползунова Елена Андреевна

Год рождения: 1982

Год окончания школы: 1999

Аттестат:

Математика: 5

Физика: 4

Русский язык: 4

Не нуждается в общежитии.

Экзамены:

Математика: 4

Физика: 4

Русский язык: 3

Михайлов Артем Егорович

Год рождения: 1983

Год окончания школы: 2000

Аттестат:

Математика: 4

Физика: 5

Русский язык: 4

Нуждается в общежитии.

Экзамены:

Математика: 4

Физика: 4

Русский язык: 4

Смирнов Никита Владимирович

Год рождения: 1984

Год окончания школы: 2001

Аттестат:

Математика: 4

Физика: 4

Русский язык: 5

Не нуждается в общежитии.

Экзамены:

Математика: 4

Физика: 4

Русский язык: 4

Токарева Надежда Александровна

Год рождения: 1983

Год окончания школы: 2000

Аттестат:

Математика: 4

Физика: 5

Русский язык: 5

Не нуждается в общежитии.

Экзамены:

Математика: 5

Физика: 5

Русский язык: 5

Маслова Нина Михайловна

Год рождения: 1984

Год окончания школы: 2001

Аттестат:

Математика: 4

Физика: 5

Русский язык: 3

Не нуждается в общежитии.

Экзамены:

Математика: 4

Физика: 4

Русский язык: 3

Молчановский Ильнар Ирекович

Год рождения: 1982

Год окончания школы: 1999

Аттестат:

Математика: 4

Физика: 4

Русский язык: 4

Нуждается в общежитии.

Экзамены:

Математика: 4

Физика: 4

Русский язык: 3

Корягина Нина Плахова

Год рождения: 1984

Год окончания школы: 2001

Аттестат:

Математика: 4

Физика: 4

Русский язык: 5

Не нуждается в общежитии.

Экзамены:

Математика: 4

Физика: 5

Русский язык: 4

Егорова Пелагея Луповна

Год рождения: 1983

Год окончания школы: 2000

Аттестат:

Математика: 5

Физика: 5

Русский язык: 4

Не нуждается в общежитии.

Экзамены:

Математика: 5

Физика: 4

Русский язык: 5

Гаспер Валентина Александровна

Год рождения: 1982

Год окончания школы: 1999

Аттестат:

Математика: 4

Физика: 4

Русский язык: 3

Нуждается в общежитии.

Экзамены:

Математика: 4

Физика: 5

Русский язык: 3

Теплоухов Юрий Леонидович

Год рождения: 1982

Год окончания школы: 1999

Аттестат:

Математика: 4

Физика: 5

Русский язык: 4

Нуждается в общежитии.

Экзамены:

Математика: 5

Физика: 4

Русский язык: 4

Кирьянов Антон Алексеевич

Год рождения: 1983

Год окончания школы: 2000

Аттестат:

Математика: 4

Физика: 4

Русский язык: 4

Нуждается в общежитии.

Экзамены:

Математика: 4

Физика: 4

Русский язык: 3




120