
- •Лабораторная работа №2 Тема: «Разветвляющаяся базовая конструкция (Ветвление, альтернатива). Оператор условия»
- •Срсп(3 часа) Задание 1. Решить задачи и создать проекты для реализации решения задач. Постановка задачи
- •При выполнении задач и при защите лабораторных указывать способ передачи параметров по ссылке или по значению. Постановка задачи
- •Дополнительное задание
- •Лабораторная работа №12 Тема: «Использование записей при составлении программ» Цели работы
- •2. Объявите глобальные переменные после строки Form1: Tform1;:
- •Код формы с организацией тестирования:
- •Постановка задачи
- •Постановка задачи
- •Дополнительное задание
Постановка задачи
Составить программу и блок-схему для решения каждой из следующих задач:
1. Пусть текстовый файл t разбит на непустые строки. Описать функцию count(t) для подсчета числа строк, которые:
a. Начинаются с буквы d;
b. Оканчиваются буквой z.
Описать процедуру prisv (t1, t2), переписывающую в текстовый файл t1 содержимое текстового файла t2 но без пустых строк.
СРС(3 часа)
Дополнительное задание
1. Описать процедуру triangle(t), формирующую текстовый файл t из 9 строк, в первой из которых – одна литера ‘1’, во второй – две литеры ‘2’, …, в девятой – девять литер ‘9’.
2. Пусть текстовый файл t разбит на непустые строки. Описать функцию count (t) для подсчета числа строк, начинающихся и оканчивающихся одной и той же литерой.
Лабораторная работа №15
Тема: «Типизированные файлы»
Цели работы
Закрепить умения и навыки работы с типизированными файлами
Углубить знания о файлах
Методический материал
Постановка задачи: Создать проект для формирования файла с информацией о ведущих спортсменах мира. О каждом спортсмене хранится сведения о его фамилии, имени, отчестве, стране, которую он представляет, вид спорта, которым занимается и медали, завоеванной им. На основе сформированного файла организовать поиск информации по всем видам, хранящейся информации.
Для решения задачи объявим тип-запись:
Type
sportsmen=record
name:shortstring;
strana:shortstring;
vid: shortstring;
medal: shortstring;
end;
Объявим глобальные переменные (в интерфейсной части основного модуля):
f: file of sportsmen;
spr:sportsmen;// рабочая переменная, хранящая сведения о текущем спортмене
Создадим проект, в котором на отдельной форме организовано заполнение файла информации о спортсменах. При этом фамилия и инициалы вводятся в поле ввода, страна и вид спорта выбираются из выпадающих списков, медаль выбирается из радио-списка.
Поиск информации следует выполнять после заполнения файла. При этом выбор вида поиска выполняется из выпадающего списка. Значение для поиска определяется по полям и спискам используемых для ввода данных.
Разместим на форму три компонента:
Combobox1 – для выбора страны из выпадающего списка;
Combobox2 – для выбора вида спорта;
Combobox3 – для выбора вида поиска.
Списки следует набирать в окне построителя, открывающемся в поле Items.
Поместим на форму компонент RadioGroup1 и в поле Items наберем список медалей: золотая, серебряная и бронзовая.
Для вывода найденных записей поместим на форму Memo – поле.
Для сохранения записей поместим на форму кнопку и пропишем ее код.
Создание файла выполняется в коде события открытия формы.
Для события OnClick компонента Combobox3 пропишем код поиска записей.
Рисунок 13.
Код проекта:
unit Unitsport;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
ComboBox1: TComboBox;
Edit1: TEdit;
ComboBox2: TComboBox;
RadioGroup1: TRadioGroup;
Button1: TButton;
ComboBox3: TComboBox;
Label1: TLabel;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ComboBox3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
sportsmen=record
name:shortstring;
strana:shortstring;
vid: shortstring;
medal: shortstring;
end;
var
f: file of sportsmen;
spr:sportsmen;
Form1: TForm1;
implementation
{$R *.DFM}
// создание файла
procedure TForm1.FormCreate(Sender: TObject);
begin
assignfile(f,'sport.dat');
rewrite(f);
end;
// сохранение записи
procedure TForm1.Button1Click(Sender: TObject);
begin
with spr do
begin
name:=edit1.Text;
strana:=combobox1.Text;
vid:=combobox2.Text;
medal:=radiogroup1.Items[radiogroup1.itemindex];
write(f,spr);
end;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
closefile(f);
end;
// поиск записей по критериям поиска
procedure TForm1.ComboBox3Click(Sender: TObject);
begin
memo1.Clear;
if combobox3.text='поиск по стране' then
begin
seek(f,0);
while not eof(f) do
begin
read(f,spr);
if spr.strana=combobox1.text then
begin
memo1.Lines.Add(spr.name);
memo1.Lines.Add(spr.strana);
memo1.Lines.Add(spr.medal);
memo1.Lines.Add(spr.vid);
end;
end;
end;
if Combobox3.text='поиск по фамилии' then
begin
seek(f,0);
while not eof(f) do
begin
read(f,spr);
if spr.name=edit1.text then
begin
memo1.Lines.Add(spr.name);
memo1.Lines.Add(spr.strana);
memo1.Lines.Add(spr.medal);
memo1.Lines.Add(spr.vid);
end;
end;
end;
if Combobox3.text='поиск по виду спорта' then
begin
seek(f,0);
while not eof(f) do
begin
read(f,spr);
if spr.vid=combobox2.text then
begin
memo1.Lines.Add(spr.name);
memo1.Lines.Add(spr.strana);
memo1.Lines.Add(spr.medal);
memo1.Lines.Add(spr.vid);
end;
end;
end;
if Combobox3.text='поиск по медали' then
begin
seek(f,0);
while not eof(f) do
begin
read(f,spr);
if spr.medal=radiogroup1.Items[radiogroup1.ItemIndex] then
begin
memo1.Lines.Add(spr.name);
memo1.Lines.Add(spr.strana);
memo1.Lines.Add(spr.medal);
memo1.Lines.Add(spr.vid);
end;
end;
end;
end;
end.
СРСП(3 часа)