Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа_3_1_Лс_27_11_2011.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
4.63 Mб
Скачать

Завдання на самостійну роботу(в,вс,лс)

ЗАВДАННЯ 8.7. СТВОРІТЬ ПРОЕКТИ ЗГІДНО З ВАРІАНТОМ ІНДИВІДУАЛЬНОГО ЗАВДАННЯ.

ЗАВДАННЯ 8.8 Постановка задачи СОСТАВИТЬ ПРОГРАММУ, КОТОРАЯ ОПРЕДЕЛЯЕТ СРЕДНЕЕ АРИФМЕТИЧЕСКОЕ ВВЕДЕННЫХ ЧИСЕЛ. КОЛИЧЕСТВО ЧИСЕЛ ЗАРАНЕЕ НЕ ИЗВЕСТНО. ЧИСЛА ВВОДЯТСЯ С ПОМОЩЬЮ ОКНА INPUT BOX. ВВОД ЗАВЕРШАЕТСЯ ПРИ НАЖАТИИ КНОПКИ CANCEL. Окно InputBox должно иметь вид:

Рис. 8. 7

Порядок действий:

1. Скопируйте проект Лр8_Зад4_Фамилия.

2. Откройте проект.

3. Измените программный код следующим образом:

Private Sub cmdЦикл_Click()

Dim n As Integer

Dim sum As Single

Dim sr As Single

Dim p As String

txtЧисла.Text = ""

txtСреднее.Text = ""

sum = 0: N = 0

P = InputBox("Введите число и нажмите кнопку OK. Для завершения ввода нажмите кнопку Cancel", "Ввод очередного числа")

Do Until P = ""

If IsNumeric(P) = False Then

MsgBox " Введите число ! ", 0 + 16, "Ошибка!!!"

Else

N = N + 1

txtЧисла.Text = txtЧисла.Text + P + " "

sum = sum + Val(P)

End If

P = InputBox("Введите число и нажмите кнопку OK. Для завершения ввода нажмите кнопку Cancel", "Ввод очередного числа ")

Loop

If N = 0 Then

MsgBox " Не введено ни одного числа ! ", 0 + 16, "Ошибка!!!"

Else

sr = sum / N

txtСреднее.Text = Str(sr)

End If

End Sub

4. Сохраните проект под именем Лр8_Зад8_Фамилия. Запустите проект на выполнение. Проанализируйте результат.

Завдання на практичну роботу (вс,лс)

ЗАВДАННЯ С8.9. Постановка задачи ЭКСПЕРИМЕНТ СОСТОИТ В ПОДСЧЕТЕ ЧИСЛА БРОСАНИЙ ДВУХ КОСТЕЙ ДО ВЫПАДЕНИЯ ДВУХ ШЕСТЕРОК. ТРЕБУЕТСЯ НАЙТИ СРЕДНЕЕ ЧИСЛО БРОСАНИЙ, НЕОБХОДИМЫХ ДЛЯ ПОЛУЧЕНИЯ ДВУХ ШЕСТЕРОК (ПРОВОДИТСЯ N ЭКСПЕРИМЕНТОВ). Окно приложения может иметь следующий вид, приведенный на рис. 8.8.

Порядок действий

1. Откройте графический редактор MS Paint и установите размер рисунка 70 пикселей (точек) в ширину и 70 в высоту, используя команды меню Image (Pисунок), Attributes (Aтрибуты). He забудьте выбрать единицы измерения Pixel (Точки).

2. Нарисуйте шесть рисунков, изображающих шесть граней кости, и сохраните их в папке ЛАБ8\Pictures. Имена файлов рисунков:

1.bmp, 2.bmp,..., 6.bmp соответственно.

Функция LoadPicture загружает картинки с диска в объекты Form, PictureBox, Image во время выполнения программы. Visual Basic может работать с графическими файлами, приведенными ниже.

Расширение

Краткое описание файла

.bmp

Фотографии и другие растровые изображения

.wmf

Векторные изображения — метафайлы Windows

.cur

Маленькие значки курсоров

. jpg

Растровые изображения, применяемые в Интернете (могут быть не очень высокого качества, но зато занимают небольшой объем памяти)

. iсо

Маленькие значки (иконки, пиктограммы)

.gif

Растровые изображения, применяемые в Интернете

Многие из этих типов графических файлов можно найти в папке Graphics, относящейся к Visual Basic, некоторые находятся в папке ClipArt из папки Microsoft Office. Есть картинки в папке Windows. Используя поиск файлов по расширениям, в Windows можно найти много картинок. Их также можно отсканировать или найти в Интернете.

Формат функции

LoadPicture([СтроковоеВыражение])

Здесь СтроковоеВыражение — имя графического файла, который должен быть загружен. СтроковоеВыражение может отсутствовать

Значение функции должно присваиваться свойству Picture объектов Form, PictureBox, Image.

Пример 1:

Set Imagel.Picture=LoadPicture("Ris.bmp")

В объект Imagel загрузится из текущей директории рисунок Ris.bmp.

Пример 2:

Diim file as string

file="Ris.gif"

Set Picture 1.Picture=LoadPicture(flle)

В объект Picture 1 загрузится из текущей директории рисунок Ris.gif.

Пример 3:

Dim file As String

file="Ris.gif "

SetForml.Picture=LoadPicture("Pictures\"&file).

В объект Forml загрузится рисунок Ris.gif из директории Pictures, которая находится в текущей директории

Пример 4:

Dim file As String

file="Ris.gif "

Set Picturel.Picture=LoadPicture(App.Path & "\Pictures\" & file)

В директории, в которую записан проект, откроется папка Pictures, и из нее в объект Picture1 загрузится рисунок Ris.gif.

Пример 5:

Set Picture l.Picture=LoadPicture()

В объекте Picture 1 рисунок сотрется.

Рекомендация. Наиболее рациональный способ загрузки рисунка приведен в примере 4. Записывайте файлы с рисунками в ту папку, в которую записан проект. Если рисунков много, то внутри папки с проектом создайте для них папку Pictures. Выражение Арр.Path автоматически возвращает имя директории, в которую записан проект. Объект Арр в любой момент выполнения проекта хранит информацию о проекте. Свойство Path данного объекта имеет значение адреса выполняемого проекта.

Используйте функцию LoadPicture в следующем виде:

Set Объект.Picture=LoadPicture(App.Path & "\Pictures\" & ИмяФайла)

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

3. Расположите на форме одну кнопку, два графических окна PictureBox. В верхней части формы предусмотрите свободное место для печати сообщений.

4. Установите значения свойства Name: для кнопки — cmdStart; для первого графического окна — Pic1; для второго графического окна — Pic2

Рис. 8.8

5. Установите для графических окон свойства Height=1050 и Width=1050 (1 пиксель=15 твип. Так как размеры рисунков 70 х 70 пикселей, их размеры в твипах будут 70 x 15=1050). Подобные расчеты можно не производить, если для графических окон установить значение свойства AutoSize= True. В этом случае графическое окно будет подстраивать свои размеры под размеры картинок.

6. Свойства, определяющие внешний вид проекта, установите по собственному усмотрению.

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

Private Sub cmdStart_Click()

Dim n As Integer, s As Long, m As Integer, i As Integer

Dim k1 As Integer, k2 As Integer, t As Long

Dim f1 As String, f2 As String

n = Val(InputBox("сколько серий производить" _

, "Количество серий"))

s = 0 'Количество бросков до выпадения двух шестерок

For m = 1 To n'Цикл, позволяющий произвести п серий бросков

Cls

Print "Идет"; m;" - серия бросков " Randomize Timer Do

k1 = Int(Rnd() * 6 + 1)'Число, выпавшее на 1-й кости

k2 = Int(Rnd() * 6 + 1)'Число, выпавшее на 2-й кости

f1 = Right(Str(k1), 1) & ".bmp"'Имя файла картинки для 1-й кости

f2 = Right(Str(k2), 1) & ".bmp"'Имя файла картинки для 2-й кости

Set Pic1.Picture = LoadPicture(App.Path & "\Picture\" & f1)'Загрузка картинки 1-й кости

Set Pic2.Picture = LoadPicture(App.Path & "\Picture\" & f2)'Загрузка картинки 2-й кости For t = 1 To 10000000: Next 'Подобрать оптимальную длительность задержки s = s + 1 'Подсчет количества бросков до выпадения двух шестерок

Loop While (k1 <> 6) Or (k2 <> 6)'Цикл выполняется, пока невыпадут две шестерки

Next m

Cls

Print

Print Spc(5); "Было проведено"; n;" серий бросков"

Print

Print Spc(5); "Среднее количество бросков"

Print Spc(5);" до выпадения двух шестерок равно"; Int(s / n)

End Sub

8. Сохраните проект под именем Лр8_Зад9_Кости_Фамилия.

9. Дополните ЗАВДАННЯ 8.9. Самостоятельно перепишите программу с использованием оператора с проверкой условия в конце цикла. При этом работа программы не должна измениться.