Визуальная среда программирования Borland Delphi 7.0

Цели и задачи практики, структура письменного отчёта. Этапы выполнения учебно-вычислительной практики. Правила работы в Delphi. Требования при создании приложения, организация циклов. Инструкция объявления массива. Свойства компонента StringGrid.

Рубрика Программирование, компьютеры и кибернетика
Вид методичка
Язык русский
Дата добавления 06.12.2011
Размер файла 628,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Для каждого элемента массива не имеет смысла создавать свое поле ввода. Очевидно, что последовательность чисел удобно вводить в строку таблицы, где каждое число находится в отдельной ячейке. Ниже рассматриваются два варианта организации ввода массива с использованием компонентов StringGrid и Memo.

Использование компонента StringGrid. Для ввода массива удобно использовать компонент StringGrid. Значок этого компонента находится на вкладке Additional (рис. 2).

Рис. 2. Компонент StringGrid

Компонент StringGrid представляет собой таблицу, ячейки которой содержат строки символов. В табл. 1 перечислены некоторые свойства компонента StringGrid.

Таблица 1. Свойства компонента StringGrid

Свойство

Определяет

Name

Имя компонента. Используется в программе для доступа к свойствам компонента

ColCount

Количество колонок таблицы

RowCount

Количество строк таблицы

Cells

Соответствующий таблице двумерный массив. Ячейка таблицы, находящаяся на пересечении столбца номер col и строки номер row определяется элементом cells[col,row]

FixedCols

Количество зафиксированных слева колонок таблицы. Зафиксированные колонки выделяются цветом и при горизонтальной прокрутке таблицы остаются на месте

FixedRows

Количество зафиксированных сверху строк таблицы. Зафиксированные строки выделяются цветом и при вертикальной прокрутке таблицы остаются на месте

Options.goEditing

Признак допустимости редактирования содержимого ячеек таблицы. True -- редактирование разрешено, False -- запрещено

Options.goTab

Разрешает (True) или запрещает (False) использование клавиши <ТаЬ> для перемещения курсора в следующую ячейку таблицы

Options.GoAlways-ShowEditor

Признак нахождения компонента в режиме редактирования. Если значение свойства False, то для того, чтобы в ячейке появился курсор, надо начать набирать текст, нажать клавишу <F2> или сделать щелчок мышью

DefaultColWidth

Ширину колонок таблицы

DefaultRowHeight

Высоту строк таблицы

GridLineWidth

Ширину линий, ограничивающих ячейки таблицы

Left

Расстояние от левой границы поля таблицы до левой границы формы

Top

Расстояние от верхней границы поля таблицы до верхней границы формы

Height

Высоту поля таблицы

Width

Ширину поля таблицы

Font

Шрифт, используемый для отображения содержимого ячеек таблицы

ParentFont

Признак наследования характеристик шрифта формы

В качестве примера использования компонента StringGrid для ввода массива рассмотрим программу, которая вычисляет среднее арифметическое значение элементов массива. Диалоговое окно программы приведено на рис. 3. Компонент stringGrid используется для ввода массива, компоненты Label1 и Label2 -- для вывода пояснительного текста и результата расчета, Button1 -- для запуска процесса расчета

Рис. 3. Диалоговое окно программы Ввод и обработка массива

Добавьте компонент StringGrid в форму. После добавления компонента к форме нужно выполнить его настройку в соответствии с табл.2.

Текст программы приведен ниже.

Таблица 2. Значения свойств компонента stringGrid1

Свойство

Значение

ColCount

5

FixedCols

0

RowCount

1

DefaultRowHeight

24

Height

24

DefaultColWidth

64

Width

328

Options.goEditing

True

Options.AlwaysShowEditing

True

Options.goTabs

True

unit getar_;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, StdCtrls;

type TForml = class(TForm)

Labell: TLabel;

StringGridl: TStringGrid;

Buttonl: TButton;

Label2: TLabel;

procedure ButtonlClick(Sender: TObject);

end;

var Forml: TForml;

implementation

{$R*.dfm}

procedure TForml.ButtonlClick(Sender: TObject);

var

a: array[1..5] of integer; // массив summ: integer;// сумма элементов

sr: real;// среднее арифметическое

i: integer; //индекс begin

// считаем, что если ячейка пустая, то соответствующий ей элемент массива равен нулю

for i:= 1 to 5 do

if Length(StringGridl.Cells[i-1,0]) <> 0

then a[i] := StrToInt(StringGridl.Cells[i-1,0]) else a[i] := 0;

// обработка массива

summ := 0;

for i :=1 to 5 do summ := summ + a[i];

sr := summ /5;

// вывод результата

Label2.Caption : = 'Сумма элементов: ' +IntToStr(summ) + #13+

'Среднее арифметическое: ' + FloatToStr (sr);

end; end.

После пробных запусков программы возникает желание внести изменения в процесс ввода массива. Так, было бы неплохо, чтобы курсор автоматически переходил в следующую ячейку таблицы, например, в результате нажатия клавиши <Enter>. Сделать это можно при помощи процедуры обработки события onKeyPress. На эту же процедуру можно возложить задачу фильтрации вводимых в ячейку таблицы данных. В нашем случае надо разрешить ввод в ячейку только цифр.

Текст процедуры обработки события OnKeyPress приведен ниже.
Следует обратить внимание на свойство Col, которое во время работы про
граммы содержит номер колонки таблицы, в которой находится курсор. Это свойство можно также использовать для перемещения курсора в нужную ячейку таблицы. Однако нужно учитывать, что колонки таблицы, впрочем, как и строки, нумеруются с нуля.

procedure TForml.StringGridlKeyPress(Sender: TObject; var Key: Char);

begin

case Key of

#8, '0'..'9': ; // цифры и клавиша <Backspace>

#13: // клавиша <Enter>

if StringGridl.Col < StringGridl.ColCount -- 1

then StringGridl.Col := StringGridl.Col + 1

else key := Chr(0); // остальные символы запрещены

end;

end;

Если нужно ввести массив дробных чисел (a: array [i..5] of real), то процедура обработки события OnKeypress несколько усложнится, т. к. помимо цифр допустимыми символами являются символ-разделитель (запятая или точка -- зависит от настройки Windows) и минус. С целью обеспечения некоторой дружественности программы по отношению к пользователю можно применить трюк: подменить вводимый пользователем неверный разделитель верным. Определить, какой символ-разделитель допустим в текущей настройке Windows, можно, обратившись к глобальной переменной DecimalSeparator.

Ниже приведен текст модуля приложения ввода и обработки массива дробных чисел. Процедура обработки события OnKeypress обеспечивает ввод в ячейку таблицы только допустимых при записи дробного числа символов.

unit getar_1;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, StdCtrls;

type

TForml = class(TForm)

Labell: TLabel;

StringGridl: TStringGrid;

Buttonl: TButton;

Label2: TLabel;

procedure ButtonlClick(Sender: TObject);

procedure StringGridlKeyPress(Sender: TObject; var Key: Char);

end;

var Forml: TForml;

implementation

{$R *.dfm)

procedure TForml.ButtonlClick(Sender: TObject);

Var

a : array[1..5] of real; // массив

sum, sr: real;

i: integer;

begin

for i:= I to 5 do

if Length(StringGridl.Cells[i-1,0]) <>0

then a[i] := StrToFloat(StringGridl.Cells[i-1,0])

else a[i] := 0;

summ := 0;

for i :=1 to 5 do summ := summ + a[i];

sr := summ / 5;

Label2.Caption := 'Сумма элементов: ' + FloatToStr(summ) + #13+ 'Среднее арифметическое: ' + FloatToStr(sr);

end;

// Функция обеспечивает ввод в ячейку только допустимых символов

procedure TForml.StringGridlKeyPress(Sender: TObject; var Key: Char);

begin

case Key of

#8,'0'..'9' : ;

#13:

if StringGridl.Col < StringGridl.ColCount -- 1

then StringGridl.Col := StringGridl.Col + 1;

'.',',': // разделитель целой и дробной частей числа

begin

if Key <> DecimalSeparator then

Key := DecimalSeparator ; //заменим разделитель на допустимый

if Роs(DecimalSeparator ,StringGridl.Cells[StringGridl.Col,0]) <>0

then Key := Chr(0); // запрет ввода второго разделителя

end;

` -`: // минус можно ввести только первым символом,

if Length(StringGridl.Cells[StringGridl.Col,0]) <>0

then Key := Chr(0);

else // остальные символы запрещены

key := Chr(0);

end; end; end.

6.1 Задание №3 Использование массива и компонента StringGrid

На форме разместить компонент StringGrid1, в котором поместить информацию, содержащую не менее 3-х полей. Если в варианте задания нет специальных указаний, то структуру задать произвольно.

Предусмотреть ручное заполнение StringGrid1 или из файла данных. Работу с файлом изучить самостоятельно.

1. Выполнить поиск заданного элемента массива по образцу. В виде списка выбора определить поле поиска, а в текстовом поле Образец задать значение поиска. Если элемент найден, вывести данные о нем в отдельной метке, а иначе - сообщение об этом.

2. Предусмотреть сортировку по разным полям методом «пузырька» и методом выбора. Выбор поля сортировки и выбор метода выполнить в виде двух групп радио кнопок. Подсчитать количество сравнений и обменов. Реализовать сортировку для случайного набора, для «лучшего» и «худшего» случаев.

3. Выполнить поиск минимального и максимального элементов (самый дорогой и самый дешевый товары или самый молодой и старший сотрудники и т.д.). По нажатию специальной кнопки выполнить их обмен местами в компоненте StringGrid1.

4. Отсортировать набор данных по некоторому текстовому полю. Реализовать функцию бинарного поиска по этому полю. Если запись найдена, вывести данные в отдельной метке, а иначе - сообщение об этом. Вычислить количество выполненных сравнений.

5. Предусмотреть сортировку по разным полям шейкерным методом. Выбор поля сортировки выполнить в виде группы радио кнопок. Подсчитать количество сравнений и обменов. Реализовать сортировку для случайного набора, для «лучшего» и «худшего» случаев.

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

7. Разместить информацию о товарах: артикул, название, цена, количество. Реализовать операции поставки товара (нового и существующего) в заданном количестве. Для каждой операции вычислять ее стоимость в отдельной метке.

8. Разместить информацию о товарах: артикул, название, цена, количество. Выполнить сортировку методом включения по артикулу и по названию товара. Подсчитать количество сравнений и обменов.

9. Разместить информацию о студентах: шифр зачетной книжки, ФИО, группа. Выполнить поиск студента по шифру и перевод его на следующий курс (нажатие на кнопку Перевести). Предусмотреть перевод на следующий курс всех студентов в списке.

10. Разместить информацию о студентах: шифр зачетной книжки, ФИО, группа. Выполнить поиск студентов, чьи фамилии начинаются или заканчиваются на заданную букву. Найденных студентов поместить в отдельное Memo- поле. Букву запрашивать в отдельном текстовом поле.

11. Разместить информацию о книгах: номер, автор, название, цена. Отсортировать набор данных по номеру книги. Реализовать функцию бинарного поиска по этому полю. Если запись найдена, вывести данные в отдельной метке, а иначе - сообщение об этом. Вычислить количество выполненных сравнений.

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

13. Разместить информацию о сотрудниках: фамилия, отдел, дата рождения. Отсортировать список сотрудников по названию отдела методом выбора. Вычислить количество сравнений и обменов. В отдельной метке вывести количество сотрудников в каждом отделе.

14. Разместить ежедневную температуру воздуха, например, за апрель. Определить самый холодный, самый теплый день апреля, вычислить среднюю температуру за месяц. Расчетные данные поместить в файл апрель.txt. Дополнить форму выбором месяца из списка выбора, очистку данных для ввода новой информации и сохранение расчетных значений в соответствующий файл с именем <месяц>.txt

15. Разместить информацию о товарах: артикул, название, цена, количество. Отсортировать список по возрастанию количества товаров на складе. В отдельном Memo- поле вывести товары, которые закончились или почти закончились (менее 3 штук).

16. Разместить ежемесячные начисления некоторого сотрудника за 12 (или менее) месяцев текущего года. Сделать выбор ФИО сотрудника из списка. Вычислить его средний заработок, общий заработок и подоходный налог (в % и рублях), который определяется в зависимости от размера общего заработка (спросить у родителей).

17. Вывести результаты сдачи сессии из трех экзаменов некоторой группы: фамилия, оценка 1, оценка 2, оценка 3. Отсортировать список по алфавиту любым методом. В четвертом столбце вычислить размер начисленной стипендии, которая зависит от результатов сессии

18. Разместить данные о купленных товарах одним покупателем. Товар выбирается из списка выбора и заносится в компонент StringGrid1 по нажатию кнопки. Сведения о товарах и ценах взять из заранее проинициализированного массива. Определить стоимость покупки, и размер сдачи, которую следует выдать покупателю

Размещено на Allbest


Подобные документы

  • Характеристика системы программирования. Главные составные части Delphi. Интерфейс программного приложения. Результаты работы программы. Руководство системного программиста и оператора. Язык программирования Delphi, среда компилятора Borland 7.0.

    курсовая работа [1,6 M], добавлен 29.05.2013

  • Borland Delphi 7 как универсальный инструмент разработки, применяемый во многих областях программирования, функции: добавление информации об абитуриентах в базу данных, формирование отчетов. Рассмотрение и характеристика основных компонентов Delphi.

    контрольная работа [3,6 M], добавлен 18.10.2012

  • Особенности среды визуального проектирования Borland Delphi 7.0. Этапы разработки программы и составления блок-схемы алгоритмов. Способы вычисления кусочно-заданной функции одной переменной. Рассмотрение компонентов среды Delphi, ее предназначение.

    контрольная работа [703,8 K], добавлен 24.09.2012

  • Общая характеристика системы программирования Delphi, а также принципы создания ее компонентов. Описание значений файлов приложения, созданного с помощью Delphi. Структура и свойства библиотеки визуальных компонентов (Visual Component Library или VCL).

    отчет по практике [1,1 M], добавлен 07.12.2010

  • Среда для разработки приложений Borland Delphi 2007 с помощью Microsoft Visual Basic. Создание современной системы "Паспортный стол" на языке программирования Delphi. Состав объектов, обеспечивающих функциональность всего клиентского приложения.

    курсовая работа [333,7 K], добавлен 03.03.2015

  • Проектирование программного модуля в среде программирования Borland Delphi 7.0. Схемы алгоритмов решения задач по темам "Символьные переменные и строки", "Массивы", "Работа с файлами", "Создание анимации". Реализация программного модуля, код программы.

    отчет по практике [961,6 K], добавлен 21.04.2012

  • Delphi - среда быстрой разработки, в которой в качестве языка программирования используется типизированный объектно-ориентированный язык Delphi. Варианты программного пакета. Особенности работы, вид экрана после запуска. Описание структуры программы.

    курсовая работа [1,3 M], добавлен 25.11.2014

  • Общая характеристика интерфейса языка программирования Delphi. Рассмотрение окна редактора кода, конструктора формы, инспектора объектов и расширения файлов. Ознакомление с основными этапами создания и сохранения простого приложения; проверка его работы.

    презентация [184,3 K], добавлен 18.03.2014

  • Разработка программы автоматизации процесса проверки знаний учащихся. Использование языка программирования Borland Delphi 7.0, его свойства, компоненты для работы со строками. Создание обучающих тестов на знание лексики и грамматики английского языка.

    курсовая работа [521,0 K], добавлен 06.03.2016

  • Основы программирования, работа в консольном режиме Delphi. Правила оформления комментариев. Типы данных, используемые в консольном режиме. Текстовый редактор Delphi Memo. Пример загрузки текстового файла. Примеры решения и оформления простейших задач.

    отчет по практике [2,1 M], добавлен 11.03.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.