Напечатать на форме строку «Выводимая строка» и нарисовать прямую линию

Private Sub Form1_Paint(ByVal sender As Object, ByVal e _

As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint

Dim G As Graphics

G = Me.CreateGraphics

Dim f As New Font("Times New Roman", 12,

FontStyle.Regular)

Dim B As New SolidBrush(Color.Magenta)

G.DrawString("Выводимая строка", f, B, 100, 60)

Dim P As Pen = New Pen(Color.Red, 1)

P.DashStyle = DashStyle.Dot

P.EndCap = LineCap.ArrowAnchor

P.StartCap = LineCap.ArrowAnchor

G = Me.CreateGraphics

G.DrawLine(P, 100, 60, 100, 0)

End Sub

Значение аргумента FontStyle

выбирается из перечисления: Bold

(полужирный), Italic (курсив),

Regular (обычный), Strikeout

(зачеркнутый), и UnderLine

(подчеркнутый).

Аргументы метода DrawString

следуют в следующем порядке: строка,

шрифт, кисть, координаты X и Y верхнего левого угла поля выводимой

строки.

19. Анимация в VB. Пример анимации: движение строки текста от одного края формы до другого ее края и обратно.

Анимация

Анимация – это создание эффекта движения объектов, изменение их вида, размера или цвета.

Для перемещения объекта по форме или по объекту PictureBox в новое положение можно воспользоваться свойством Location:

объект.Location = New Point(X, Y)

где объект – это имя перемещаемого объекта, X и Y – координаты левого верхнего угла нового положения перемещаемого объекта.

Button1.Location = New Point(0, 0)

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

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

20. Пример анимации: изменение текста, цвета фона, и размера объекта.

Пример: решение задачи движения строки текста от одного края формы до другого ее края и обратно

на форме надпись Label1 и таймер Timer1.

Пример: решение задачи движения строки текста от одного края формы до другого ее края и обратно

x = Label1.X

z = Form1.Width – x – Label1.Width

Направление движения надписи необходимо изменять на

противоположное при выполнении следующих условий:

x <= 0 при движении налево, и z <=0 при движении направо.

После запуска проекта надпись начинает двигаться от левого края формы до правого края и обратно. Знак переменной d определяет направление движения направо (при d > 0) или налево (при d < 0).

Пример: решение задачи движения строки текста от одного края формы до другого ее края и обратно

Dim d As Integer

Private Sub Form1_Load(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles MyBase.Load

d = 1

Timer1.Interval = 20

Timer1.Enabled = True

Label1.Text = "Проверка движения"

Label1.BorderStyle = BorderStyle.None

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles Timer1.Tick

If (d > 0 And (Label1.Width + Label1.Left) >= _

Form1.ActiveForm.Width) _

Or (d < 0 And Label1.Left <= 0) Then

d = -d

End If

Label1.Left = Label1.Left + d

End Sub

пример: изменение текста, цвета фона, и размера объекта.

Действия: через каждую секунду изменяется

вид кнопки Button1. Ее текст «Стоп» заменяется текстом «Срочно стоп»,

высота кнопки становится вдвое больше. Через следующую секунду эти изменения отменяются.

пример: изменение текста, цвета фона, и размера объекта.

Dim d As Boolean, h As Integer

Private Sub Form1_Load(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles MyBase.Load

d = True

h = Button1.Height

Timer1.Enabled = True

Timer1.Interval = 1000

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles Timer1.Tick

If d Then

Button1.BackColor = Color.Red

Button1.Text = "Срочно стоп!"

Button1.Height = Button1.Height + h Else

Button1.BackColor = Color.White

Button1.Text = "Стоп"

Button1.Height = Button1.Height - h

End If

d = Not d

End Sub

21. Работа с файлами. Файлы с последовательным доступом, файлы с произвольным доступом, двоичные файлы

Работа с файлами

Любое приложение, связанное с необходимостью хранения и обработки значительных объемов данных, неизбежно вынуждено хранить эти

данные в файлах, а значит и с записью данных в файл и чтением их из файла.

VB поддерживает три вида файлов:

файлы с последовательным доступом,

файлы с произвольным доступом,

двоичные файлы.

Файлы с последовательным доступом

– это в основном текстовые файлы, которые можно открывать с помощью текстового редактора.

Текстовый файл может содержать коды символов, признак перевода строки

vbCrLf, признак табуляции vbTab и признак конца файла.

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

Файлы с последовательным доступом

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

одну запись файла последовательного доступа, его нужно весь записать заново.

Файлы с произвольным доступом

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

Как и в файлах с последовательным доступом, текстовые данные хранятся в них в виде символов, по два байта на символ. Однако числа хранятся в своем естественном формате (как Integer, Double, Single и т. д.).

Файлы с произвольным доступом

Файлы с произвольным доступом в любой момент позволяют обработать любую запись. В предыдущих версиях VB требовалось, чтобы длина всех записей файла произвольного доступа была одинакова. В VB.NET записи файла произвольного доступа могут иметь разную длину. В этом случае информация о длине записи содержится в самой записи. Любую из

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

Двоичные файлы

подобны файлам с последовательным доступом, но длина записи у этих файлов равна одному байту.

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

22. Этапы работы с файлом. Открытие и закрытие файла. Добавление данных в файл.

Этапы работы с файлом:

Получение номера свободного канала ввода-вывода (номера файла). Применяется функция FreeFile().

Открытие файла. Операционная система резервирует некоторое количество памяти для хранения данных файла. Если файл не существует, он

создается, а затем открывается. Для открытия файла (при необходимости и для его создания) используется функция FileOpen().

Этапы работы с файлом:

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

затем снова сохраняются в том же или другом файле.

Закрытие файла. Когда файл закрывается, операционная система освобождает занимаемую им память. Для выполнения этой операции используется функция FileClose().

Открытие и закрытие файла

Чтобы иметь возможность использовать файл, его нужно открыть или создать, если он еще не существует.

Функция FileOpen(), выполняющая эту операцию, принимает множество аргументов, из которых обязательными являются только первые три:

FileOpen(number, path, mode _[, access][, share][, recordLen])

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

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

файла

Первые три режима - для файлов с последовательным доступом.

Режим Random - для файлов с произвольным доступом, а Binary – для двоичных файлов.

В файле с последовательным доступом изменять отдельные элементы данных нельзя. Можно либо

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

Добавление данных в файл

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

В случае открытия файла в режиме Output (и только в этом режиме) VB сотрет его содержимое, даже если ничего в него не запишется. Более того, VB не станет предупреждать Вас о своем намерении стереть файл.

23. Аргументы access, share. Функция Len(record).

Аргумент access

определяет, следует ли открыть файл для чтения (Read), записи (Write) или и чтения, и записи (ReadWrite). Если открыть файл с опцией Read, программа не сможет модифицировать его даже по ошибке. Данный аргумент не имеет никакой связи с типом файла. Файлы с последовательным доступом можно открывать лишь с опциями Read и Write, поскольку их можно либо только записывать, либо только считывать.

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

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

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

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

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

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

Открытие и закрытие файла

Dim n As Integer = FreeFile()

FileOpen(n, "c:\t\f.dat", _

OpenMode.Output, OpenAccess.ReadWrite)

Функция FileClose() закрывает файл, номер которого передан ей в качестве аргумента:

FileClose(file_number)

Так, следующая инструкция закрывает файл с номером n1:

FileClose(n1)

24. Язык Пролог как представитель семейства языков логического программирования. Особенности языка Пролог. Этапы программирования на Прологе.

Язык Пролог является представителем семейства языков логического программирования и обладает существенными особенностями:

- язык и система логического программирования, основанные на языке предикатов математической логики дизъюнктов Хорна, представляющей собой подмножество логики предикатов первого порядка.

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

Язык Пролог :

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

Особенности языка Пролог:

Пролог требует особого стиля мышления программиста;

во многих странах (Японии, Англии, Франции, Германии, Израиле и т.д.) расширяется практика применения Пролога в образовании как первого изучаемого языка программирования.

Программирование на Прологе включает в себя следующие этапы:

объявление фактов об объектах и отношениях между ними;

определение правил взаимосвязи объектов и отношений между ними;

формулировка вопроса об объектах и отношениях между ними.

25. Объекты в Прологе. Имена. Типы данных. Переменные. Структуры. Списки.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow