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

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


Аннотация к работе
{TODO-OUSER-CCONSOLE Main : Insert code here } end. {TODO-OUSER-CCONSOLE Main : Insert code here } end. {TODO-OUSER-CCONSOLE Main : Insert code here } end. {TODO-OUSER-CCONSOLE Main : Insert code here } end. end else begin x:=p;Актуальность прохождения технологической практики заключается в закреплении и получении новых навыков по профессии программиста. Практика началась с вводного инструктажа, изучения требований определенного рабочего места, ознакомления с безопасностью работы. Последующие дни практики были посвящены изучению простых программ такие как просматривать анимацию, текстовые редактор, математические задачи, назначения и принципы построения уникальных баз данных.

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

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

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

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

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 - значением переменной этого типа может быть целое число из интервала от -32768 до 32767).

- вещественные числа (Тип 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,с.Определить, какое из них равно 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=k м и уизменяющегося от 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 sp 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 (x0) 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 (a0) and (b0) do begin a:=a mod b;

if (a0) 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=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. Семакин И.Г. «Основы программирования».

Размещено на
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?