Разработка приложений в Borland Delphi

Тип работы:
Отчет
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Введение

Практика -- способствует укреплению знаний и получению новых навыков работы при решении задач разного характера. Практика позволяет достигать определенной, заранее поставленной цели.

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

Программирование -- процесс создания компьютерных программ.

Язык программирования -- формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, задающих внешний вид программы и действия, которые выполнит исполнитель (компьютер) под её управлением.

Delphi это система визуального объектноориентированного программирования, в которой в качестве языка программирования используется язык Object Pascal.

ObjectPascal (Объектный Паскаль) -- язык программирования, разработанный в фирме AppleComputer в 1986 году группой Ларри Теслера, который консультировался с Никлаусом Виртом. Произошёл от более ранней объектно-ориентированной версии Паскаль, называвшейся Clascal, который был доступен на компьютере AppleLisa.

Изменения ObjectPascal от Borland в сравнении с TurboPascal.

Изменения коснулись групп целых, символьных и строковых типов, которые стали разделяться на две категории:

· Фундаментальные (fundamental) типы. Их представление в памяти (число битов и наличие знака) строго фиксируется и выдерживается неизменным во всех последующих реализациях ObjectPascal для любых операционных систем и компьютерных платформ.

· Родовые (generic) типы. Их представление в памяти не фиксируется и будет реализовано оптимальным способом, в зависимости от реализации для конкретной операционной системы и компьютерной платформы.

Задачи практики является:

1. Повторение и закрепление теоретического материала полученного ранее в процессе обучения;

2. Изучение теории и технологии работы в среде программирования Delphi;

3. Получение новых знаний по программированию.

1. Теоретическая часть

1. 1 Основы программирования, работа в консольном режиме Delphi

Консольные программы -- лучший выбор, когда нужно сосредоточиться на сути проблемы, отвлекаясь от оформления. Поэтому начинать учиться программировать лучше именно на таких программах. Кроме того, профессиональные программисты часто пишут консольные программы для своего личного использования, потому что это экономит время (не нужно разрабатывать интерфейс).

Запустим среду Delphi Щелкнем по кнопке NewProject и выберем в появившемся окне тип программы ConsoleApplication (консольное приложение).

Термин приложение означает прикладную компьютерную программу, то есть программу, которая нацелена на решение задач пользователя (в отличие от системных программ).

Мы увидим такой текст программы, который очень напоминает обычную программу на Паскале:

program Project1;

{$APPTYPE CONSOLE}

uses

SysUtils;

begin

{ TODO -oUser -cConsole Main: Insert code here }

end.

В фигурных скобках записываются комментарии. Второй комментарий заканчивается словами Insertcodehere (Вставьте код сюда) -- тут все понятно. Первый комментарий{$APPTYPE CONSOLE} -- особый, потому что он начинается с первой позиции строки, и его второй символ -- знак $. Это говорит о том, что далее следует некоторая команда (директива) транслятору, который будет строить исполняемый файл. В данном случае сказано, что нам нужно консольное приложение. Это значит, что необходимо создать текстовое (консольное) окно для ввода и вывода, все это будет сделано автоматически.

Блок uses есть и в классическом Паскале: он перечисляет дополнительные модули, которые используются в программе. В данном случае автоматически подключен модуль SysUtils, в котором находятся некоторые часто используемые стандартные функции.

Далее мы можем использовать старые знания. Код программы записывает ся между begin и end, константы и переменные объявляются выше основной программы, процедуры и функции размещают между объявлением переменных и основной программой.

Также в консольном режиме Delphi используются следующие типы дан ных:

— целые числа (Тип Integer — значением переменной этого типа может быть целое число из интервала от -32 768 до 32 767).

— вещественные числа (Тип Real — значением переменной этого типа может быть вещественное число, модуль которого принадлежит отрезку [2,9Ч10−39; 1,7Ч108]).

— логический тип (Тип Boolean — переменная этого типа может принимать только два значения: истина (true) или ложь (false)).

— символьный (Тип Char — значениям переменной этого типа может быть любой символ, из набора ASCII-символов).

— перечисляемый тип (тип данных, заданный списком принадлежащих ему значений).

— интервальный тип или диапазон (позволяет задавать две константы, определяющие границы диапазона значений для данной переменной).

1.2 Разработка приложений в Borland Delphi

Borland Delphi представляет собой средство разработки приложений для Microsoft Windows. Delphi является мощным и простым в использовании инструментом для создания автономных программ, обладающих графическим интерфейсом (GUI), или 32-битных консольных приложений (программ, которые не имеют графического интерфейса).

Компонент Label предназначен для отображения статического текста, то есть надписей и меток на Форме, которые не меняются в течение всего времени работы программы. Конечно, текст надписи, отображаемый компонентом Label можно изменить, но не непосредственно, а только программно.

Компонент DelphiMemo это простой текстовый редактор. DelphiMemo позволяет вводить многострочный текст с клавиатуры, загружать его из файла, редактировать и сохранять в файл текстового формата.

Простота текстового редактора компонента DelphiMemo заключается в том, что текстовый редактор DelphiMemo не обладает возможностями форматирования содержащегося в нём текста. Это означает, что все атрибуты выбранного шрифта будут относиться ко всему тексту.

Текст в компоненте Delphi Memo размещается построчно. Поэтому имеет ся доступ к каждой строке текста отдельно. Строки в редакторе Delphi Memo являются объектами Lines[i] типа String, где i — номер строки, отсчитываемый от нуля. Объект Lines[i] доступен и для чтения, и для записи. Соответственно, текст в компоненте Memo можно редактировать не только с клавиатуры, но и программно.

Компонент DelphiButton это простая командная кнопка. Командная кнопка DelphiButton используется для реализации в программе команд с помощью обработчика события OnClick этого компонента.

Один и тот же обработчик может обрабатывать события нескольких компонентов TButton (да и не только TButton, но и даже компонентов других типов). Для определения того, событие какого именно компонента нужно обрабатывать, используется встроенная переменная Sender типа TObject, обозначающая объект, вызвавший данное событие.

Компонент Delphi Image предназначен для отображения на форме графических изображений по умолчанию выводит на поверхность формы изображения представленных в bmp формате. Для вывода изображений в jpg формате необходимо в директиве uses подключить модуль JPEG. После размещения на форме компонента Image, он принимает вид выделенной прямоугольной области. Загрузить изображения можно с помощью ObjectInspector. Для этого находим свойство Picture и слева от него нажимаем на три точки. Открывается окно PictureEditor и в нем выбираем загрузить (Load), в раскрывшемся окне выбираем файл изображения.

Компонент DelphiRadioButton — это «радиокнопка», и как следует из названия, служит для «переключения каналов», как и в настоящем радиоприёмнике. Это значит, если выбран один из компонентов Delphi RadioButton, то с остальных компонентов выбор автоматически снимается. Получается, что в данный момент может быть выбран только один из группы компонентов DelphiRadioButton.

RadioGroup -- панели группы радиокнопок. Это панель, которая может содержать регулярно расположенные столбцами и строками радиокнопки. Надпись в левом верхнем углу панели определяется свойством Caption. А надписи кнопок и их количество определяются свойством Items, имеющим типTStrings. Щелкнув на кнопке с многоточием около этого свойства в окне Инспектора Объектов, вы попадете в редактор списков строк. В нем вы можете занести надписи, которые хотите видеть около кнопок, по одной в строке. Сколько строчек вы запишете -- столько и будет кнопок.

Кнопки, появившиеся в панели после задания значений Items, можно разместить в несколько столбцов (не более 17), задав свойство Columns. По умолчанию Columns = 1, т. е. кнопки размещаются друг под другом. Определить, какую из кнопок выбрал пользователь, можно по свойству ItemIndex, которое показывает индекс выбранной кнопки. Индексы, как всегда в Delphi, начинаются с 0. По умолчанию ItemIndex = -1, что означает отсутствие выбранной кнопки. Если вы хотите, чтобы в момент начала выполнения приложения какая-то из кнопок была выбрана (это практически всегда необходимо), то надо установить соответствующее значение ItemIndex во время проектирования. Если вы используете радиокнопки не для ввода, а для отображения данных, устанавливать значение ItemIndex можно программно во время выполнения приложения.

Компонент ColorGrid (таблица цветов) предназначен для выбора основного и фонового цветов из 16-цветной палитры.

Dialogs — содержит стандартные диалоговые элементы Windows (окна открытия, сохранения файлов, окна выбора шрифта, принтера и т. п.) TOpenDialog это диалог открытия файла. Этот и все другие диалоги активируются через функцию Execute. Если возвращаемое значение равно true, значит пользователь выбрал файл (принтер, шрифт и т. п.) и нажал на кнопку Ok в этом диалоговом окне. Тогда имя открываемого файла содержится в свойстве FileName. Обычно процедура вызова подобного диалогового окна выглядит следующим образом:

ifOpenDialog. Execute then Memo. Lines. LoadFromFile (OpenDialog. FileName);

Здесь показан пример загрузки текстового файла в компонент Memo (страница Standart), выбранного с помощью диалога открытия файла OpenDialog.

Текст заголовка диалога в свойстве Title. Фильтр, который будет отфильтровывать файлы по расширению указывается в свойстве Filter. Его целесообраз, но установить сразу во время разработки проекта, поскольку при этом открывается удобная для занесения значений таблица.

TSaveDialog — диалог сохранения файла. Свойства и работа подобны диалогу TOpenDialog.

TOpenPictureDialog — диалог открытия рисунка. В отличие от TOpenDialog имеет внутренний предварительный просмотр рисунка в открываемом файле. Кроме того уже имеет некоторые заданные свойства фильтра Filter, который содержит все распознаваемые в этом диалоге форматы графики.

TSavePictureDialog — диалог сохранения рисунка.

TFontDialog — вызывает стандартный диалог выбора шрифта. Свойство Font содержит как изначальный (выбранный по умолчанию) шрифт, так и измененный, после вызова диалога.

TColorDialog-диалог выбора цвета.

Компонент DelphiCheckBox это флажок — независимый переключатель. Флажок DelphiCheckBox используется в программе для визуализации состояний включено-выключено. Каждый щелчок мышкой по компоненту DelphiCheckBox меняет его состояние на противоположное. Смена состояния переключателя также доступна и в программе. DelphiCheckBox представляет собой сочетание небольшого окошка, которое и визуализирует наличием или отсутствием «галочки» состояние компонента, и компонента Label — заголовка, поясняющего назначение переключателя.

2. Практическая часть

Задача № 1

программирование delphi консольный режим

Ввести кол во секунд и вывести на экран кол-во минут и часов

Рисунок 2.1. -приложение запущенно

Листинг:

program Project2;

{$APPTYPE CONSOLE}

uses

SysUtils;

var

a, b, c: real;

begin

Writeln ('kolvo sek');

Readln (a);

b: =a/60; // минуты

c: =a/360; // часы

write ('proslo', b: 2:2, 'minut', c: 2:2, 'chasov');

Readln;

{ TODO -oUser -cConsole Main: Insert code here }

end.

Задача № 2

Если число, А больше или равно 10 и меньше или равно 99 и делится на число В то появляется текст что это правда, иначе, ложь.

Рисунок 2.2. -приложение в действие

Листинг:

programProject2;

{$APPTYPECONSOLE}

uses

SysUtils;

Var

a, b: Integer;

begin

Writeln (a, b);

Readln (a, b);

if (a>= 10) and (a< =99) and (a mod b=0)

thenWriteln ('true') else writeln ('false');

Readln;

{ TODO -oUser -cConsole Main: Insert code here }

end.

Задача № 3

Вычислить значение выражения по формуле

Рисунок 2.3 — решение задачи

Листинг:

programProject2;

{$APPTYPECONSOLE}

uses

SysUtils;

var

x, y, a: real;

begin

Writeln ('x, y');

Readln (x, y);

a: =(x+y) / (y+1) — (x*y-12 / 34+x);

Writeln ('otvet' ,' a=', a: 7:2);

Readln;

{ TODO -oUser -cConsole Main: Insert code here }

end.

Задача 4

Найти произведение цифр заданного четырехзначного числа.

Рисунок 2.4. — произведение найдено

Листинг:

programProject1;

{$APPTYPECONSOLE}

uses

SysUtils;

var

Chislo, Proizv: integer;

Begin

Proizv: =1;

write ('chislo: ');

readln (Chislo);

whileChislo> 0 do

begin

Proizv: =Proizv*(Chislo mod 10);

Chislo: =Chislo div 10;

end;

writeln ('proizvedenie: ', Proizv);

readln;

{ TODO -oUser -cConsole Main: Insert code here }

end.

Задача 5

Квадрат заданного трехзначного числа равен кубу суммы цифр этого числа.

Рисунок 2.5. — приложение запущено

Задача № 6

Даны действительны числа x и y не равные друг другу. Меньшее из этих двух чисел заменить половинной их суммы, а большее их удвоенным произведением.

Рисунок 2.6. — числа заменены

Листинг:

programProject2;

{$APPTYPECONSOLE}

uses

SysUtils;

var

x, y, s, p: Real;

begin

Writeln ('vveditex, y');

readln (x, y);

s: =(x+y)/2;

p: =2*x*y;

if x<y then

begin

x: =s;

y: =p;

end

else

begin

x: =p;

y: =s;

end;

writeln (x: 6:3,' ', y: 6:3);

readln;

{ TODO -oUser -cConsole Main: Insert code here }

end.

Задача № 7

Даны три числа a, b, c. Определить, какое из них равно d. Если не одно не равно d, то найти мах (d-a), (d-b), (b-c).

Рисунок 2.7. — приложение в действие

Листинг:

programProject1;

{$APPTYPECONSOLE}

uses

SysUtils;

var

s, s1, s2,a, b, c, d: Integer;

begin

Writeln ('a, b, c, d');

Readln (a, b, c, d);

begin

if (a = d) then writeln ('chislo a = chislu d');

end;

begin

if (b=d) then writeln ('chislo b = chislu d');

end;

begin

if (c=d) then writeln ('chislo c = chislu d')

end;

begin

s: =d-a;

s1: =d-b;

s2: =b-c;

Write ('s ravno', s); Readln;

Write ('s1 ravno', s1);

Readln;

Write ('s2 ravno', s2);

Readln;

end;

begin

if (s> s1) and (s> s2) then Writeln ('s max');

if (s1> s) and (s1> s2) then Writeln ('s1 max');

if (s2> s1) and (s2> s) then Writeln ('s2 max');

readln;

end;

{ TODO -oUser -cConsole Main: Insert code here }

end.

Задача 8

Если сумма трех попарно различных действительных чисел X, Y, Z меньше единицы, то наименьшее из этих трех чисел заменить полусуммой двух других; в противном случае заменить меньшее из X, Y полусуммой двух оставшихся значений.

Рисунок 2.8. — решение задачи

Листинг:

programProject2;

{$APPTYPECONSOLE}

uses

SysUtils;

var

x, y, z, s, min: real;

begin

write ('vvedite X: '); readln (x);

write ('vvedite Y: '); readln (y);

write ('vvedite Z: '); readln (z);

s: =x+y+z;

if s<1 then

begin

writeln ('summa menshe 1');

if (x< y) and (x< z) then x: =(y+z)/2

else if y<z then y: =(x+z)/2

else z: =(x+y)/2;

end

elsewriteln ('summa bolshe 1');

writeln ('X = ', x: 3:2,' Y = ', y: 3:2, ' Z = ', z: 3:2);

readln;

{ TODO -oUser -cConsole Main: Insert code here }

end.

Задача № 9

Вычислить значение функции

F (x)=

Рисунок 2.9. — решение функции

Листинг:

programProject2;

{$APPTYPECONSOLE}

uses

SysUtils;

var

y: Real;

x: Integer;

begin

Writeln ('Vveditex');

Readln (x);

if x>1 then

begin

y: =1/(x+6);

writeln ('y=', y: 0:3);

readln;

end

else

Writeln ('0=0');

Readln;

{ TODO -oUser -cConsole Main: Insert code here }

end.

Задача № 10

Для каждой введенной цифры (0−9) вывести соответсвуещие ей название на английском языке (0-zero, 1-one, 2-two…)

Рисунок 2. 10. — приложение запущено

Листинг:

programProject2;

{$APPTYPECONSOLE}

uses

SysUtils;

var

i: integer;

n: string;

begin

write ('vveditechislo: '); readln (n);

fori := 1 to length (n) do

case n[i] of

'0': write ('zero ');

'1': write ('one ');

'2': write ('two ');

'3': write ('three ');

'4': write ('four ');

'5': write ('five ');

'6': write ('six ');

'7': write ('seven ');

'8': write ('eight ');

'9': write ('nine ');

end;

Readln;

{ TODO -oUser -cConsole Main: Insert code here }

end.

Задача № 11

Около стены стоит палка длинной Xм. Один ее конец находится на расстоянии Yм. от стены. Определить значение угла, а между палкой и полом для значений x=k м и yизменяющегося от 2 до 3 метров с шагом h м.

Рисунок 2. 11. — угол определился

Листинг:

programProject2;

{$APPTYPECONSOLE}

uses

SysUtils;

varx, y, c, v, b, hy: real;

begin

write ('X = ');

readln (x);

write ('shag y = ');

readln (hy);

y: =2;

while y< =3 do begin

c: =arctan ((y/sqr (1-y*y))/(x/sqr (1-x*x)));

v: =(pi/2)-c;

writeln ('Ygol = ', v: 3:5,' pri y=', y: 3:5);

y: =y+hy;

end;

readln;

{ TODO -oUser -cConsole Main: Insert code here }

end.

Задача № 12

Дано натуральное число N, вычислить:

Рисунок 2. 12. — выполненая задача

Листинг:

programProject2;

{$APPTYPECONSOLE}

uses

SysUtils;

var

n, i: integer;

k, c, s: real;

q: string;

begin

writeln ('BBegNte n ');

readln (n);

s: =0;

for i: =1 to n do

begin

S: =S+cos (n)/sin (n);

end;

writeln ('rezultat=', s: 2:3);

readln;

{ TODO -oUser -cConsole Main: Insert code here }

end.

Задача № 13

Произведение n первых нечетных чисел равно p. Сколько сомножителей взято? Если введенное число n не является указанным произведением, сообщить об этом.

Рисунок 2. 13. — приложение в действие

Листинг:

programProject2;

{$APPTYPECONSOLE}

uses

SysUtils;

varn, k: byte;

p, s: longint;

begin

write ('Vvedite proizvedenie neskolkikh pervykh nechetnykh naturalnykh chisel p=');

readln (p);

s: =1;

n: =1;

k: =1;

while s<p do

begin

k: =k+2;

n: =n+1;

s: =s*k;

end;

if s< >p then write ('chislo ', p,' ne yavlyaetsya proizvedeniem pervykh ne chetnykh chisel')

else write ('vziato mnojitelei — ', n);

readln;

{ TODO -oUser -cConsole Main: Insert code here }

end.

Задача № 14

Найти все делители натурального числа N.

Рисунок 2. 14. — делители выведены

Листинг:

programProject2;

{$APPTYPECONSOLE}

uses

SysUtils;

varj, n: Integer;

begin

Writeln ('vvedite n');

readln (N);

for j: =2 to N do

if N mod j = 0 then write (j: 5);

Readln (j);

{ TODO -oUser -cConsole Main: Insert code here }

end.

Задача № 15

Перевести заданное число в 16ую систему:

Рисунок 2. 15. — число переведено

Листинг:

programProject2;

{$APPTYPECONSOLE}

Uses

SysUtils;

var a: longint;

function DEC_HEX (x: longint):string;

constdigits: array [0. 15] of char = ('0','1','2','3','4','5','6','7', '8','9','A','B','C','D','E','F');

varres: string; d:0. 15;

begin

res: ='';

while (x< >0) do

begin

d: =x mod 16;

x: =x div 16;

res: =digits[d]+res;

end;

DEC_HEX: =res;

end;

begin

readln (a);

writeln (DEC_HEX (a));

Readln;

end.

{ TODO -oUser -cConsole Main: Insert code here }

end.

Задача № 16

Найти НОК трех чисел.

Рисунок 2. 16. — НОК найдено

Листинг:

program Project2;

{$APPTYPE CONSOLE}

uses

SysUtils;

function NOD (a, b: Integer): Integer;

begin

while (a< >0) and (b< >0) do

begin

a: =a mod b;

if (a< >0) then b: =b mod a;

end;

result := a + b;

end;

var

N2, N1, N3: Integer;

begin

Writeln ('vveditepervoechislo: ');

ReadLn (N1);

Writeln ('vveditevtoroechislo: ');

ReadLn (N2);

Writeln ('vveditetretiechislo: ');

ReadLn (N3);

writeln (N1*N2*N3*NOD (N1,NOD (N2,N3)) / (NOD (N1, N2) * NOD (N1, N3) * NOD (N3, N2)): 0:2);

WriteLn ('najmi enter dliavihoda');

ReadLn;

end.

{ TODO -oUser -cConsole Main: Insert code here }

end.

Задача № 17

Задание к работе:

1. Разработать интерфейс приложения с применением компонентов: Edit, Memo, MaskEdit, BitBtn, Button, Label.

2. Разработать алгоритм решения задачи в соответствии с вариантом задания.

3. Реализовать разработанный алгоритм в рамках ранее созданного интерфейса.

4. Проверить работоспособность программы с помощью тестового набора данных.

5. Оформить отчет и сдать работу преподавателю.

Рисунок 2. 17. — Запущена главная форма

Листинг:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, StdCtrls, Buttons, jpeg;

type

TForm1 = class (TForm)

btn1: TBitBtn;

btn2: TBitBtn;

btn3: TBitBtn;

btn4: TBitBtn;

btn5: TBitBtn;

btn6: TBitBtn;

btn7: TBitBtn;

btn8: TBitBtn;

btn9: TBitBtn;

btn16: TBitBtn;

img1: TImage;

procedure btn1Click (Sender: TObject);

procedure btn16Click (Sender: TObject);

procedure btn2Click (Sender: TObject);

procedure btn3Click (Sender: TObject);

procedure btn4Click (Sender: TObject);

procedure btn5Click (Sender: TObject);

procedure btn9Click (Sender: TObject);

procedure btn7Click (Sender: TObject);

procedure btn8Click (Sender: TObject);

procedure btn6Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses Unit2, Unit7, Unit10, Unit12, Unit13, Unit14, Unit3, Unit16, Unit17, Unit18, Unit19, Unit20, Unit23, Unit22;

{$R *. dfm}

procedure TForm1. btn1Click (Sender: TObject);

begin

Form2. show;

form1. Hide;

end;

procedure TForm1. btn16Click (Sender: TObject);

begin

Close;

end;

procedure TForm1. btn2Click (Sender: TObject);

begin

form7. show;

form1. Hide;

end;

procedure TForm1. btn3Click (Sender: TObject);

begin

form3. show;

form1. Hide;

end;

end;

procedure TForm1. btn5Click (Sender: TObject);

begin

form1. Hide;

form19. show;

end;

procedure TForm1. btn9Click (Sender: TObject);

begin

form14. show;

form1. Hide;

end;

procedure TForm1. btn7Click (Sender: TObject);

begin

form23. show;

Form1. Hide;

end;

procedure TForm1. btn8Click (Sender: TObject);

begin

Form1. Hide;

form22. show;

end;

procedure TForm1. btn6Click (Sender: TObject);

begin

form20. show;

form1. Hide;

end;

end.

Задача № 18

Текст задания: «Картотека фильмов». По выбранному из списка жанру фильма на экран должен выводиться список фильмов относящихся к данному жанру.

Рисунок 2. 18. — Приложение картотека фильмов в действии

Листинг:

procedure TForm8. btn1Click (Sender: TObject);

begin

if cbb1. ItemIndex=0 then

begin

lst1. Items. Clear;

lst1. Items. Add ('21 и больше');

lst1. Items. Add ('американский пирог');

lst1. Items. Add ('проект ИКС');

lst1. Items. Add ('одноклассники');

lst1. Items. Add ('папа досвидос');

end;

if cbb1. ItemIndex=1 then

begin

lst1. Items. Clear;

lst1. Items. Add ('13/13/13');

lst1. Items. Add ('Паранормальное явление: Метка Дьявола ');

lst1. Items. Add ('Маньяк из твиттера');

lst1. Items. Add ('Заклятие');

lst1. Items. Add ('проклятие чаки');

end;

if cbb1. ItemIndex=2 then

begin

lst1. Items. Clear;

lst1. Items. Add ('Адреналин 1,2');

lst1. Items. Add ('Форсаж');

lst1. Items. Add ('Убитьбилла1, 2');

lst1. Items. Add ('Вассаби');

lst1. Items. Add ('Леон ');

end;

if cbb1. ItemIndex=3 then

begin

lst1. Items. Clear;

lst1. Items. Add ('Титаник');

lst1. Items. Add ('Побег из Шоушенка ');

lst1. Items. Add ('Зеленая миля ');

lst1. Items. Add ('Реквием по мечте');

lst1. Items. Add (' Хатико: Самый верный друг ');

end;

lst1. Items. Add (' Санта Барбара ');

lst1. Items. Add (' Не родись красивой ');

lst1. Items. Add (' Карпов');

end;

end;

procedure TForm8. btn2Click (Sender: TObject);

begin

Close;

end;

procedure TForm8. btn3Click (Sender: TObject);

begin

Form8. Hide;

Form9. show;

end;

end.

Задача № 19

Текст задания: Создать приложение Тест.

Рисунок 2. 19. — Приложение тест запущено

Листинг:

procedure TForm9. btn1Click (Sender: TObject);

begin

x: =0;

if RG1. itemindex=-1

thenShowMessage ('нечегоневыбрано')else

if rg1. itemindex=0

then x: =x+1;

if rg2. itemindex=-1

thenShowMessage ('нечегоневыбрано')else

if RG2. itemindex=2

then x: =x+1;

if rg3. itemindex=-1

thenShowMessage ('нечегоневыбрано')else

if RG3. itemindex=2

then x: =x+1;

if rg4. itemindex=-1

thenShowMessage ('нечегоневыбрано')else

if RG4. itemindex=0

then x: =x+1;

then x: =x+1;

ShowMessage ('вашрезультат' +inttostr (x));

end;

procedure TForm9. btn3Click (Sender: TObject);

begin

Form1. Close;

Form9. Close;

end;

procedure TForm9. btn2Click (Sender: TObject);

begin

Form9. hide;

form1. show;

end;

end.

Задача № 20

Текст задания:

1) устанавливать количество столбцов и строк квадратной таблицы StringGrid равными числу, вводимому пользователем;

2) закрашивать ячейки таблицы, расположенные на главной диагонали и ниже цветом, выбранным пользователем.

Рисунок 2. 20. — Приложение запущено

Листинг:

procedure TForm10. btn1Click (Sender: TObject);

begin

StringGrid1. ColCount:=StrToInt (SpinEdit1. Text);

StringGrid1. RowCount:=StrToInt (SpinEdit1. Text);

stringGrid1. DefaultColWidth:=(StringGrid1. Width) div (StrToInt (SpinEdit1. Text));

stringGrid1. DefaultRowHeight:=(stringGrid1. Height) div (StrToInt (SpinEdit1. Text));

end;

procedure TForm10. Colorgrid1Change (Sender: TObject);

vari, j: integer;

rec: Trect;

begin

with StringGrid1 do

begin

StringGrid1. Canvas. Brush. Color:=Colorgrid1. ForegroundColor;

for i: =0 to colcount-1 do

for j: =0 to colcount-1 do

If i> =j then

begin

rec: =StringGrid1. cellrect (i, j);

stringGrid1. Canvas. FillRect (rec);

end;

end;

end;

procedure TForm10. btn2Click (Sender: TObject);

begin

Form10. Hide;

form11. show;

end;

end.

Задача № 21

Текст задания: Составить таблицу 4×4, состоящую из целых чисел. Программа должна выводить число, лежащее в ячейке с введенным с клавиатуры номером столбца и строки.

Рисунок 2. 21. — матрица

Листинг:

procedureTForm11. btn2Click (Sender: TObject);

begin

form11. close;

form1. close;

end;

procedure TForm11. btn1Click (Sender: TObject);

vari, j: integer;

begin

randomize;

with StrnGrd1 do

begin

ColCount: =5;

RowCount: =5;

DefaultColWidth: =40;

for i: =1 to 4 do

begin

Cells[i, 0]: =IntToStr (i);

Cells[0,i]: =IntToStr (i);

end;

for i: =1 to 4 do

for j: =1 to 4 do

Cells[i, j]: =IntToStr (random (999));

end;

end;

procedure TForm11. btn3Click (Sender: TObject);

vari, j: integer;

begin

if not TryStrToInt (Edt1. Text, i) or

notTryStrToInt (Edt2. Text, i) then

begin

ShowMessage ('Вы ввели не целое число');

exit

end

else

if not (StrToInt (Edt1. Text) in [1. 4]) or

not (StrToInt (Edt2. Text) in [1. 4]) then

begin

ShowMessage ('Номера строки и столбца должны быть от 1 до 4');

exit

end;

i: =StrToInt (Edt1. Text);

j: =StrToInt (Edt2. Text);

Edt3. Text:=StrnGrd1. Cells[j, i];

end;

procedure TForm11. BitBtn1Click (Sender: TObject);

begin

Form1. Show;

Form11. Hide;

end;

end.

Задача № 22

Текст задания: Создать приложение позволяющее просматривать картинки, при выборе картинки должны отображаться те форматы которые выбрал пользователь.

Рисунок 2. 22. — Приложениезапущено

Листинг:

procedure TForm12. Button1Click (Sender: TObject);

begin

if OpenDialog1. Execute then

image1. picture. LoadFromFile (OpenDialog1. FileName);

label1. Caption:=opendialog1. filename;

end;

procedure TForm12. RadioGroup1Click (Sender: TObject);

begin

if

radiogroup1. itemindex=0 then OpenDialog1. filter:='format bmp|*. bmp';

if

radiogroup1. itemindex=1 then OpenDialog1. filter:='format jpg|*. jpg|*. jpeg';

end;

procedure TForm12. Button2Click (Sender: TObject);

begin

close;

end;

procedure TForm12. Button3Click (Sender: TObject);

begin

form12. Close;

form1. show;

end;

end.

Задача № 23

Текст задания: Создать приложение позволяющее просматривать анимация беспрерывно и по кадрам.

Рисунок 2. 23. — Приложение «Анимация» запущено

Листинг:

procedure TForm13. RadioButton2Click (Sender: TObject);

begin

Button3. Enabled:=True;

Button2. Enabled:=true;

Button1. Enabled:=False;

end;

procedure TForm13. Button1Click (Sender: TObject);

begin

if Animate1. Active = False

then begin

Animate1. StartFrame:=1;

Animate1. StopFrame:=Animate1. FrameCount;

Animate1. Active:=True;

Button1. caption:='Стоп';

RadioButton2. Enabled:=False;

end

else

begin

Animate1. Active:=False;

Button1. caption:='Пуск';

RadioButton2. Enabled:=True;

end;

end;

procedure TForm13. Button2Click (Sender: TObject);

begin

ifCFrame = Animate1. FrameCount

then button3. Enabled := True;

ifCFrame> 1 then

begin

CFrame: =CFrame -1;

Animate1. StartFrame := CFrame;

Animate1. StopFrame := CFrame;

procedure TForm13. Button3Click (Sender: TObject);

begin

ifCFrame = 1 then button3. Enabled := True;

ifCFrame< Animate1. FrameCount then

begin

CFrame: =CFrame + 1;

Animate1. StartFrame := CFrame;

Animate1. StopFrame := CFrame;

Animate1. Active := True;

ifCFrame = Animate1. FrameCount

then button3. Enabled:=False;

end;

end;

procedure TForm13. RadioButton1Click (Sender: TObject);

begin

Button1. Enabled:=True;

Form13. Button3. Enabled:=False;

Form13. Button2. Enabled:=False;

end;

procedure TForm13. Button4Click (Sender: TObject);

begin

form1. show;

form13. close;

end;

procedure TForm13. Button5Click (Sender: TObject);

begin

form1. Close;

form13. close;

end;

end.

Задача 24

Текст задания: Составить алгоритм и написать программу для решения задачи согласно своему варианту. По заданным координатам точки М (x, y) определить попадает или нет точка М в заштрихованную область.

Рисунок 2. 24. — Приложение запущено

Листинг:

procedureTForm21. BitBtn1Click (Sender: TObject);

begin

x: =StrTofloat (Edit1. Text);

y: =StrTofloat (Edit2. Text);

if (x< =1) and (y< =1) and (x> =0) and (y> =0) then label1. caption:= ('точка M входит в закрашеннуюобасть')

elselabel1. caption:= ('точка М не входит в закрашенную обасть');

end;

procedure TForm21. BitBtn2Click (Sender: TObject);

begin

Form21. Close;

form1. close;

end;

procedure TForm21. BitBtn3Click (Sender: TObject);

begin

form1. show;

form21. Close;

end;

end.

Задача № 25

Текст задания: Дана матрица 5 на 5. Выяснить, верно ли, что наибольшее из значений элементов главной диагонали больше, чем наименьшее из значений элементов побочной диагонали.

Рисунок 2. 25. — Приложение «Матрица» запущено

Листинг:

procedure TForm16. Button1Click (Sender: TObject);

vari, j: integer;

begin

Randomize;

with StringGrid1 do

begin

for i: =1 to 5 do

begin

Cells[i, 0]: =IntToStr (i);

Cells[0,i]: =IntToStr (i);

end;

for i: =1 to 5 do

for j: =1 to 5 do

Cells[i, j]: =IntToStr (Random (99))

end;

end;

procedure TForm16. Button2Click (Sender: TObject);

var

a: array [1. 5, 1. 5] of Integer;

i, j: Integer;

begin

for i: =1 to 6−1 do

begin

StringGrid1. Cells[0,i]:='i= ' + IntToStr (i);

StringGrid1. Cells[i, 0]:='j= ' + IntToStr (i);

end;

for i: =1 to 6−1 do

min: =a[5,1];

for i: =6−1 downto 1 do

for j: =1 to 6−1 do

if a[6-j, j]< min then min: =a[6-j, j];

label2. Caption:='= '+inttostr (min);

end;

procedure TForm16. Button3Click (Sender: TObject);

var

a: array [1. 5, 1. 5] of Integer;

i, j: Integer;

begin

for i: =1 to 5 do

begin

StringGrid1. Cells[0,i]:='i= ' + IntToStr (i);

StringGrid1. Cells[i, 0]:='j= ' + IntToStr (i);

end;

max: =StrToInt (StringGrid1. Cells[1,1]);

for i: =1 to 5 do

label4. Caption:='= '+inttostr (max);

end;

procedure TForm16. Button4Click (Sender: TObject);

begin

ifmax> minthenlabel5. caption:='наибольшее из значений элементов главной диагонали больше чем наименьшее из значений побочной диагонали'

elselabel5. caption:='утверждение не еврно';

end;

end.

Задача № 26

Текст задания:

1. Разработать алгоритм решения в соответствии с заданием.

2. Обработать на ЭВМ матрицу в соответствии с вариантом задания, указанного в таблице.

3. Проверить правильность выполнения с помощью тестового варианта.

Рисунок 2. 26. — Приложение «Матрица» в действии

Листинг:

procedure TForm17. Button1Click (Sender: TObject);

vari, j: integer;

begin

Randomize;

with StringGrid1 do

begin

for i: =1 to 5 do

begin

Cells[i, 0]: =IntToStr (i);

Cells[0,i]: =IntToStr (i);

end;

for i: =1 to 5 do

for j: =1 to 5 do

Cells[i, j]: =IntToStr (Random (99)-50)

end;

end;

procedure TForm17. Button2Click (Sender: TObject);

begin

for i: =1 to 6−1 do

begin

StringGrid1. Cells[0,i]:='i='+ inttostr (i);

StringGrid1. Cells[i, 0]:='j='+ IntToStr (i);

end;

for i: =1 to 6−1 do

for j: =1 to 6−1 do

a[i, j]:= StrToInt (StringGrid1. Cells[i, j]);

sum: =0;

ch: =0;

for i: =1 to 6−1 do

for j: =1 to 6−1 do

begin

ifi>j then

sum: =sum+a[i, j];

end;

for i: =1 to 6−1 do

for j: =1 to 6−1 do

begin

if (i> j) and (a[i][j]> 0) then

ch: =ch+1;

end;

Label2. Caption:=IntToStr (sum);

Label4. Caption:=inttostr (Ch);

end;

procedure TForm17. Button3Click (Sender: TObject);

begin

form7. close;

form1. close;

end;

procedure TForm17. Button4Click (Sender: TObject);

begin

Form1. Show;

Form17. Hide;

end;

end.

Задача № 27

Текст задания: создать и вывести на форму две базы данных, два SQL запроса и отчет.

Рисунок 2. 27. — приложение «База данных» запущено

Листинг:

procedureTForm14. BitBtn1Click (Sender: TObject);

begin

Form14. Close;

form1. close;

end;

procedure TForm14. Button1Click (Sender: TObject);

begin

If table1. State in [dsInsert, dsEdit]then

table1. post;

end;

procedure TForm14. Button2Click (Sender: TObject);

begin

If table1. State in [dsInsert, dsEdit]then

table1. Cancel;

end;

procedure TForm14. Button3Click (Sender: TObject);

begin

If table1. State = dsBrowse then

table1. insert;

end;

procedure TForm14. Button4Click (Sender: TObject);

begin

If table1. State = dsBrowse then

table1. edit;

end;

procedure TForm14. Button5Click (Sender: TObject);

begin

If table1. State = dsBrowse then

If Messagedlg ('удалить запись?', mtconfirmation,[mbYes, mbNo], 0)=mrYes then

table1. delete;

end;

procedure TForm14. Button6Click (Sender: TObject);

begin

If table2. State = dsBrowse then

table2. insert;

end;

procedure TForm14. Button7Click (Sender: TObject);

begin

If table2. State in [dsInsert, dsEdit]then

table2. post;

end;

procedure TForm14. Button8Click (Sender: TObject);

begin

If table2. State = dsBrowse then

table2. edit;

end;

procedure TForm14. Button9Click (Sender: TObject);

begin

end;

procedure TForm14. Button10Click (Sender: TObject);

begin

If table2. State = dsBrowse then

If Messagedlg ('удалить запись?', mtconfirmation,[mbYes, mbNo], 0)=mrYes then

table2. delete;

end;

procedure TForm14. Button11Click (Sender: TObject);

begin

form15. show;

Form14. Hide;

end;

procedure TForm14. N1Click (Sender: TObject);

begin

Form14. Close;

form1. close;

end;

procedure TForm14. N2Click (Sender: TObject);

begin

Form1. Show;

Form14. Hide;

end;

end.

Рисунок 2. 28. — Приложение «Отчет» запущено

Рисунок 2. 29. — предпросмотр отчета

Листинг:

procedure TForm15. Button1Click (Sender: TObject);

begin

QuickRep1. Preview;

end;

procedure TForm15. BitBtn1Click (Sender: TObject);

begin

form15. Close;

Form15. Close;

end;

procedure TForm15. N1Click (Sender: TObject);

begin

QuickRep1. Preview;

end;

procedure TForm15. N2Click (Sender: TObject);

begin

form15. Close;

Form1. Close;

end;

end.

Заключение

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

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

Последующие дни практики были посвящены изучению простых программ такие как просматривать анимацию, текстовые редактор, математические задачи, назначения и принципы построения уникальных баз данных.

Исследовалось использование языка программирования BorlandDelphi 7.

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

Основными задачами практики являются:

1. улучшения качества профессиональной подготовки;

2. закрепление и расширение теоретических и практических знаний

и умений, приобретённых студентами в предшествующий период теоретического обучения.

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

Широкий охват отраслей, с которыми мне пришлось сталкиваться на практике, позволил мне лучше усвоить изученный теоретический материал, полученных на занятиях в колледже.

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

Литература

1. Шупрута В. В. «Самоучитель Delphi 2005»

2. ТейксейраС., ПавекоК. «BorlandDelphi 5. Руководство разработчика. Ч

3. ТейксейраС., ПачекоК. «Borland Delphi 5. Руководство разработчика»

4. Тейксейра С., Пачеко К. «BorlandDelhi 6. Руководство разработчика»

5. Тейлор Д. и др. «Delphi 3: библиотека программиста»

6. Фленов М. Е. «Библия Delphi»

7. Озеров В. «Советы по Delphi. «

8. Зайцев О. В., Владимиров А. М. «Графика в Delphi»

9. Кандзюба С. П., Громов В. Н. «Delphi 6/7. Базы данных и приложения. Лекции и упражнения»

10. Семакин И. Г. «Основы программирования».

ПоказатьСвернуть
Заполнить форму текущей работой