Актюбинский кооперативный колледж
Итоговая контрольная работа
По предмету: «Основы объективно-ориентированного программирования»
Учащейся III курса гр. П32 Кунсбаевой Жанагуль
Специальность:3706002 «Программное обеспечение ВТ и АС»
Вариант 15
Проверил: Мукушев К.К.
Актобе 2011 год.
Содержание
1. Организация ввода-вывода данных в Delphi. Представление данных в виде таблицы. Компонент StringGrid.
2. Список используемой литературы.
В Delphi предусмотрены специализированные компоненты для работы не только с графиками, но и с таблицами. Их использование существенно облегчает представление данных в табличной форме. Для целей моделирования физических задач требуется главным образом занесение данных в таблицу (самое сложное действие в нашем практикуме — последующее извлечение данных из таблицы для построения итогового графика, о чем шла речь в предыдущем разделе), так что предусмотренных в компонентах стандартных возможностей более чем достаточно.
На странице Additional
палитры компонентов Delphi имеются две “заготовки” для работы с таблицами — StringGrid и DrawGrid. Во второй компонент заложены некоторые дополнительные возможности (например, в его ячейках предусмотрен объект Canvas, а значит, там можно рисовать!), но они явно выходят за рамки наших потребностей, поэтому мы ограничимся более простой, чисто строковой “сеткой” StringGrid.
Рис
. 3.10
Будучи помещенным на форму, компонент StringGrid имеет вид весьма представительной таблицы:
Рис
. 3.11
На ней не только предусмотрено место для данных с возможностью прокрутки, но и даже выделенные серые клеточки для оформления подписей строк и колонок (данные столбцы и колонки в Delphi называются fixed — фиксированными, и их число легко регулируется заданием значений свойств FixedCols и FixedRows).
Для организации доступа к таблице в ней предусмотрено специальное свойство Cells, представляющее собой обычный (строковый
!) двумерный массив. Первый индекс обозначает номер столбца (координата x
), а второй — строки (координата y
); нумерация начинается с нуля, фиксированные ячейки учитываются. Например, запись Cells[1,2] адресуется к ячейке во втором столбце и третьей строке (на рис
. 3.11 она находится непосредственно под выделенной темным цветом клеткой).
Приведем пример простой программы заполнения таблицы. Как и для демонстрации графических возможностей, обратимся к простой функции sin x
и “затабулируем” ее на отрезке, равном периоду. Договоримся для простоты разбить отрезок на 10 равных частей.
Решение сформулированной задачи реализуется следующим несложным образом. На форму помещается компонент StringGrid1, затем двойным щелчком по свободному месту формы создается обработчик события OnFormCreate. Далее в него вписывается следующая программа.
procedure
TForm1.FormCreate(Sender: TObject);
const
n=10;
var
x,y,h:double; i:integer;
begin
with
StringGrid1 do
begin
ColCount:=2;
Cells[0,0]:=' X';
Cells[1,0]:=' Y';
end
;
h:=2*pi/n;
for
i:=0 to
n do
begin
x:=i*h; y:=sin(x);
with
StringGrid1 do begin
if
i+1=StringGrid1.RowCount
then
{добавить строку}
RowCount:=RowCount+1;
Cells[0,i+1]:=FloatToStrF(x,ffFixed,5,4);
Cells[1,i+1]:=FloatToStrF(y,ffFixed,5,4);
end
end
end
;
Программа достаточно проста. Сначала формируется таблица из двух столбцов (по умолчанию Delphi устанавливает больше) и ее “шапка”. Затем вычисляются значения функции sin x
для 11 точек (обратите внимание, как организован вычислительный процесс через индексную переменную i
!) и заносятся в соответствующие клетки таблицы. Важно подчеркнуть, что видимых на экране ячеек в какой-то момент перестанет хватать, тогда предусмотренный в теле цикла условный оператор аккуратно будет добавлять по одной строке по мере надобности.
Особо хочется сказать о функции FloatToStrF, которая позволяет не только выполнить требуемое для таблицы преобразование числа в строку, но и установить при этом его формат. Мы выбрали представление с фиксированным размещением запятой и отобразили после нее 4 знака.
В результате на экране появилась вполне симпатичная табличка (рис
. 3.12).
Рис
. 3.12
Таким образом, работа с таблицей оказывается в среде Delphi простой и удобной. Наличие хорошо проработанного стандартного компонента позволяет не особенно задумываться над табличным представлением результатов и полностью сосредоточить свое внимание на организации вычислений.
|