Меню
Разработки
Разработки  /  Информатика  /  Разное  /  Конспект урока по информатике по теме "Первые шаги по созданию проектов в среде VBА"

Конспект урока по информатике по теме "Первые шаги по созданию проектов в среде VBА"

Урок даст начальные знания по созданию проектов в визуальной среде VBА.
17.02.2015

Описание разработки

1. Измените заголовок Form1 на «Первая программа» в окне свойств (Prоperties в пункте Caption).

Примечание: проект и каждая форма сохраняются отдельно.

2. Создай управляющую кнопку Выход. На панели инструментов найди значок CommandBatton. Дважды щелкни по его мышкой. Появилась кнопка в центре формы?

3. Измени название кнопки Command1 на cmdВыход.

4. Напиши команду End в окне программного кода, т. е. укажи, что при нажатии кнопки Выход программа завершает работу. Для этого дважды щелкни по кнопке Выход и в окне программного кода введи текст команды в каркас программы.

5. Выполни программу, нажав клавишу F5, а затем нажми кнопку Выход.

Конспект урока по информатике по теме Первые шаги по созданию проектов в среде VBА

Элементы Label и TextBox

Эти оба элемента могут содержать текст, однако пользователь не может изменять текст элемента Label, а текст TextBox – может.

1. Дважды щелкни мышью значок Label.

2. Измени надпись Label1 на Введи свое имя

3. В меню Format выбери последовательно команды Center in Form(Разместить по центру формы) и Horizontally (по горизонтали).

4. Присвой элементу Label имя lblNameInput (или придумай свое)

5. Измени тип и размер шрифта, воспользуйся свойством Font.

6. Присвой свойству AutoSize (автоподстройка) значение True.

Создадим управляющий элемент TextBox.

1. Замени его имя на txtName, и удали текст в правой части строки с помощью свойства Text.

2. Нажми кнопку F5 и введи свое имя.

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

Полную информацию смотрите в файле. 

Содержимое разработки

Управляющие элементы и их свойства























































Элементы CheckBox и OptionBatton

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

  1. Открой новый проект и дважды щелкни по инструменту CheckBox

  2. Растяни элемент и повтори еще дважды.

  3. Расположи элементы точно друг под другом с помощью меню Format и нажми клавишу F5.

  4. А теперь дважды щелкни по элементу OptionBatton(переключатель)

  5. Расположи эти два элемента один под другим справа от трех элементов CheckBox и запусти программу.

  6. Присвой верхнему элементу OptionBatton имя optman, а в строке Caption укажи Мужской

  7. Нижнему элементу присвой имя optFeminine, а в строке Caption укажи Женский.

  8. Дважды щелкнув мышью верхний элемент, перейди в окно программного кода.

  9. Введи в открывшийся каркас программы текст: MsgBox “Вы мужчина”


























==================================================

Элемент ListBox (Окно списка)














Элементы ScrollBars (полосы прокрутки)

Элементы ScrollBars (полосы прокрутки)


Эти элементы позволяют просматривать текст и вводить значения. Бывают два вида полос прокрутки: горизонтальная и вертикальная. Рассмотрим горизонтальную полосу.

  1. Создай новый проект, присвой форме имя frmScroll, размести в форме управляющий элемент ScrollBar.Присвой ему имя hsbScroll.

  2. Под полосой прокрутки размести элемент Label (с именем lblScroll).

  3. Измени свойства элемента Label. Для этого в поле свойств Aligment (выравнивание) задай значение 2-Center, удали заголовок в поле Caption и в поле BorderStyle значение 1- Fixed single.

  4. Измени также элемент ScrollBar. Задай свойства Min равным 1, а Max -100. Так определяется диапазон значений, которые можно просматривать с помощью полосы прокрутки.

  5. Установленное значение в окне полосы прокрутки программа должна показывать в окне Label. Для этого в окне программного кода введем строку:
    lblScroll.Caption = hsbScroll.Value , что означает «Поставить заданное значение в полосе прокрутки в текстовое поле Label. Выполни программу (F5).

  6. Хотелось бы при запуске программы видеть в поле Label начальное значение полосы прокрутки. Для этого дважды щелкни форму мышкой в том месте, где нет управляющих элементов и введи в каркас программы такую же строку:
    lblScroll.Caption = hsbScroll.Value. Выполни программу (F5).


Элементы PictureBox и Image


Эти управляющие элементы служат для вывода на экран изображения (графики, значки…)

В связи с этим они являются основой всех рисованных компьютерных игр.

  1. Создай новый проект и назови форму frmGraphic.

  2. Расположи в форме управляющий элемент PictureBox (окно рисунков) и управляющий элемент Image (изображение)

  3. управляющему элементу PictureBox присвой имя PicPicture.

  4. В свойстве Picture этого элемента нажми на кнопку с многоточием. В открывшемся диалоговом окне выбери нужный графический файл.

  5. Изменить размер картинки в окне PictureBox невозможно. Для этой цели служит элемент Image.

  6. Щелкни по элементу Image, присвой ему имя imgImage, а в свойстве Picture выбери это же изображение.

  7. Изменять размер здесь можно как угодно, если в свойстве Strech (подгонка) задано значение True

Таймер

Таймер – это элемент, без которого никак не обойтись разработчикам игр (а многим хочется ими быть).

Таймер может с помощью функции

Private Sub tmrTimer_Timer()

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

Напишем приложение «Секундомер».

Создай проект, назови форму frmсекундомер, а в поле свойства Caption введи Секундомер. Щелкни значок Timer.

В окне свойств необходимо задать два свойства таймера:

  1. Enabled (доступ) значение False;

  2. Interval (интервал) - 1000

В качестве имени таймера мы укажем tmrTimer.

Таймер мы будем приводить в действие кнопкой Старт. А св-во Interval позволяет генерировать одно событие приблизительно через секунду.

Создай две командные кнопки &Start и Sto&p.

И, наконец, необходимо добавить управляющий элемент Label, в нем будет выводится время на экран.

Назови элемент LabellblTime и задай для свойства Capition значение 0 (оно будет стартовым значением для секундомера). Размести текст в поле Label по центру (св-во Aligment).

Напишем несколько строк программного кода.

Мы хотим, чтобы при нажатии кнопки Start секундомер начал работать. Его работа регулируется свойством Enabled управляющего элемента Timer, т.е. если задано значение True, часы идут, а если False, то они стоят.

Щелкни дважды кнопку Start и в каркас программы впиши команду:

Private Sub cmdStart_Click()

tmrTimer.Enabled=True

end sub

Программный код для кнопки Stop:

Private Sub cmdStop_Click()

tmrTimer.Enabled=False

end sub













Осталось организовать вывод значения времени в поле элемента Label, т.е. когда таймер активен, значение поля увеличивалось на 1.

Private Sub tmrTimer_Timer()

lblTime.Caption= lblTime.Caption + 1

end sub

Задание:

  1. Добавить возможность установки секундомера на 0. Добавьте для этого кнопку Сброс.

  2. Измените значение св-ва Enabled управляющего элемента Timer c 1000 на 100, чтобы таймер генерировал событие каждую десятую долю секунды.

ВЫЧИСЛЕНИЕ НДС


Задание:

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

Если товар не облагается налогом, то процентную ставку налога принять равную нулю













Указания по выполнению:

  1. Изменить заголовок формы на «Вычисление НДС»

  2. Разместить на форме необходимые объекты. Значения свойств объектов задать по своему усмотрению.

  3. Щелчок по кнопке «выход» завершает программу

  4. Кнопка «очистить» очищает текстовые поля и включает флажок «облагается налогом» (значение свойства Value равно 0)

  5. Курсор переводится в текстовое поле для суммы (метод SetFocus)

  6. Запрограммировать процедуру обработки события «Щелчок по кнопке Вычислить»


Примечание:

    • Поскольку в текстовое поле для Суммы могут быть введены не только цифры, но и другие символы, то, прежде чем использовать значение этого поля в вычислениях, содержимое поля переводится в число (s=Val(TextSum.Text)

    • Результаты вычислений - вещественные числа с несколькими знаками после запятой
      Однако в действительности денежные суммы вычисляются с точностью до сотых (копеек). Поэтому для вывода исходной суммы

Справка:

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

Currency хранит числа в диапазоне от -922337203685477,5808 до 922337203685477,5807.

Создание Windows-приложения

Процесс создания Windows – приложения состоит из нескольких этапов:

  1. Постановка задачи – словесное описание того, как будет выглядеть экранная форма, в каком виде будет представлена информация и что должен делать пользователь в процессе его работы.

  2. Разработка интерфейса – создание экранной формы со всеми объектами и свойствами этих объектов.

  3. Собственно программирование – определение событий, составление алгоритмов процедур для этих событий и написание программных кодов.

  4. Отладка программы – устранение логических ошибок.

  5. Сохранение проекта – при желании компиляция (превращение проекта в исполняемое приложение).

Пример создания Windows –приложения.

  1. Этап. Постановка задачи. Вы хотите произвести ремонт Вашей комнаты, Вам нужно сосчитать количество необходимых для ремонта обоев. Зная площадь стен, Вы сможете купить нужное количество обоев. Для этого пользователь Вашего приложения должен сообщить размеры комнаты: длину, высоту и ширину.

  2. Э

    1. Создание экранной формы и установка значений свойств этой формы.


    тап. Создание экранной формы
    . Этот этап еще иначе называют разработкой интерфейса. Для решения нам понадобятся 4 текстовых поля: 3 из них для ввода данных- длины, ширины, высоты и одно для вывода результата – площади стен этой комнаты. Кроме того, необходимы для пользователя пояснения (надписи, формулы, чертежи). И еще не забыть о командной кнопке! Ее нажатие служит сигналом для расчета.











Экранная форма

Экранная форма

Эскиз экранной формы





  1. Этап. Программирование – главный этап проектирования приложения в среде Visual Basic. Прежде чем начать программировать, необходимо определить события, в нашем случае это щелчок мышью командной кнопки. Этот щелчок и запустит нашу программу.

Алгоритм решения этой задачи очень прост:

  1. Ввести три числа A, B, H –длину, ширину и высоту комнаты;

  2. Найти площадь одной стены;

  3. Найти площадь другой стены;

  4. Удвоить сумму этих площадей

  5. Вывести результат: число S –площадь всех 4-х сторон.


Для написания программного кода и привязки его к определенному событию необходимо раскрыть Окно программного кода (меню View Code).


Это список созданных объектов

Это список процедур (событий)


Примечание: часто процедура называется событием.

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


!!! В целях экономии оперативной памяти не забывайте объявлять переменные и их типы!!!


Процедура примет вид:


Private Sub Command1_Click()

Dim a, b, h as integer

Dim s as single

a = Val(Text1)

b = Val(Text2)

h = Val(Text3)

s = 2 * (a + b) * h

Text4.Text = Str(s)

End Sub – если Ваши имена объектов совпадают с предложенными, иначе пишите свои идентификаторы.


Задание 1. Разработайте интерфейс приложения «Периметр и площадь треугольника». (Периметр и площадь треугольника можно найти, зная только длину каждой стороны). Не забудьте про изображение треугольника! Площадь треугольника S рассчитывается по алгоритму Герона:

P=(A+B+C)/2; S=Sqr(P*(P-A)*(P-B)*(P-C)).



Задание 2. Разработайте интерфейс приложения «Ваше время», для перевода значения интервала времени, заданного в минутах, в интервал, выраженный в часах и минутах.

Контрольный пример: при T (мин)=173 Т(час)=2, Т(мин)=53



Задание 3., если самолет летит из пункта А в пункт В со скоростью V. Найти время полета Т1, если есть встречный ветер, скорость которого V1, и время полета Т2, если ветра нет. Расстояние между пунктами А и В равно S.

! Вычисление времени, если есть встречный ветер Т1 = S / (V-V1);

! Вычисление времени, если нет встречного ветра Т2 = S / V;



Задание 4. Разработайте интерфейс приложения «Сумма цифр», если дано некоторое целое число. Найти сумму цифр заданного числа.


Задание 5. Разработайте интерфейс приложения «Температура смеси», если смешали V1 литров воды, имеющей температуру Т1 градусов по Цельсию с V2 литрами воды, имеющей температуру T2 градусов по Цельсию. Написать программу вычисления температуры и объема полученной смеси.



  1. Этап: Сохранение экранной формы и проекта в виде frm и vbp файлов. Для этого придумайте и присвойте имя вашему проекту. В окне проводника проекта щелкните по имени вашего проекта, заданного по умолчанию, - Progekt1. В раскрывшемся окне единственного свойства Name введите имя проекта. Нажатие кнопки сохранить вызывает сохранение файла формы и появления такого же окна для сохранения файла проекта.

  2. Этап: Чтобы Ваше Windows –приложение могло работать независимо от среды программирования (автономно), нужно произвести трансляцию проекта в исполняемый exe файл. Для этого используется опция File главной панели проекта и в ней команда Make имяФайла.exe

Объявление переменной

В языке Visual Basic переменная может иметь различные типы данных:

  • Byte – занимает 1 байт памяти (целое)

  • Integer – занимает 2 байта памяти(целое)

  • Long – занимает 4 байта памяти (целое)

  • Single – занимает 4 байта памяти (десятичное)

  • Double занимает 8 байта памяти (десятичное)

  • String – занимаемая память зависит от числа символов в строке.

Синтаксис объявления переменной имеет вид:


Dim Имя переменной [As ТипПеременной]

Const ИмяКонстанты[ As Тип] = ЗначениеКонстанты



Например: Dim V1 as integer, V2 as long

Dim V3 as Single

Dim stroka as String

Const Pi=3.1416

V3=(v1+v2) / 4


Функции в языке Visual Basic

В

Системные функции

строенные функции


Abs(x)

Абсолютная величина числа Х

Cint(x)

Целое число, ближайшее к Х

Cos(x)

Косинус числа Х

Fix(x)

целое, равное числу Х без дробной части

Int(x)

Наибольшее целое, не превышающее х

Sqr(x)

Квадратный корень из числа Х

InputBox

Ввод данных пользователем через системное окно

MsgBox

Выдача сообщений пользователю через системное окно

Финансовая функция

Pmt (ПроцСтавка, ЧислоПлатежей,

СуммаКредита)









InputBox (Приглашение [, Заголовок] [, НачЗначение])

MsgBox (Текст [, Опция] [, Заголовок])


Функция Pmt возвращает размер разового (напр. Ежемесячного) платежа (со знаком минус!), если известны: Процентная ставка, Число платежей, Сумма кредита.

Так действует функция InputBox






















Программирование ветвлений


В Visul Basic есть две формы синтаксиса оператора ветвления: однострочная и многострочная.


If УсловноеВыражение Then Оператор1 [Else Оператор2]



If УсловноеВыражение Then
ПоследовательностьОператоров1
[Else
ПоследовательностьОператоров2]
End If



Упражнение1:

Рассмотрим немного упрощенное юридическое правило: «В России человеку назначается пенсия, если этот человек мужчина и ему больше 60 лет, или если этот человек женщина и ей больше 55 лет, или если стаж работы человека на «вредном производстве» превысил 25 лет.

Запрограммируйте приложение «Пенсионный стаж». Пользователь вводит свой возраст, пол и стаж работы на вредном производстве (по выслуге лет). Приложение должно выдавать результат – пенсионный стаж пользователя (если он пенсионер). Экранную форму разработайте самостоятельно.


Упражнение2:

Создайте программу, которая играет с пользователем в следующую игру: Компьютер «задумывает» целое число (допустим одну из цифр – от 1 до 5). Если пользователь угадал, то появляется сообщение об успехе. Число компьютер задумывает с помощью функции RND.

Случайное число генерируется в интервале от 0 до 1. Чтобы получить число N для заданного интервала от N1 до N2, можно поступить следующим образом:


N=N1 + Int (Rnd*(N2 - N1 + 1)


!!! Обрати внимание! В разделе общих объявлений (General) можно объявить глобальные переменные (вместо оператора Dim) т.е. они доступны всем модулям проекта.

Программный код Задачи Экранная форма и панель сообщения




















Задание 1

Составить программу, которая проверяла бы, не приводит ли суммирование двух целых чисел А и В к переполнению ( т.е. к результату большему, чем 32767). Если будет переполнение, то сообщить об этом, иначе вывести сумму этих чисел.


Задание 2

В небоскребе N этажей и всего один подъезд; на каждом этаже по 3 квартиры; лифт может останавливаться только на нечетных этажах. Человек садится в лифт и набирает номер нужной ему квартиры M. На какой этаж должен доставить лифт пассажира?


Составить программу для определения подходящего возраста кандидатуры для вступления в брак, используя следующие соображения: возраст девушки равен половине возраста мужчины плюс 7, возраст мужчины определяется соответственно как удвоенный возраст девушки минус 14.


Задание 3

В старояпонском календаре был принят 12-тилетний цикл. Годы внутри цикла носили названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи.

Написать программу, которая вводит номер некоторого года и печатает его название по старояпонскому календарю.

СПРАВКА:1996 год-год крысы - начало очередного цикла)


Задание 4

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

  • Стоимость билета в вагоне первого класса равна Х рублей;

  • Стоимость билета в купейном вагоне 2-го класса в два раза дешевле, чем стоимость билета в первом классе;

  • Стоимость билета в плацкартном вагоне второго класса составляет 70% стоимости билета в купейном вагоне второго класса;

  • Пассажир приобрел N билетов в один вагон.


Задание 5

ЭВМ поможет Вам узнать много интересного про себя. Человек характеризуется рядом физических параметров, из которых РОСТ, МАССУ и ВОЗРАСТ знают все. Однако можно узнать о себе еще много других параметров. Сделайте это по приведенным формулам.

Данные об идеальной массе и жирности не воспринимайте слишком серьезно.


Идеальная масса: Специалисты считают, что здоровый человек должен иметь идеальную массу, которую можно вычислить по формуле:

m = (A * 3 – 450 + B) * 0.25 + 45; для мужчин

m = (A* 3 – 450 + B) * 0.225 + 40.4; для женщин

где A– рост, см;

B – возраст, лет;


Жирность. Известно, что тело молодых здоровых мужчин содержит около 15%, а тело женщин – 22% жира. истинная жирность (%) приблизительно оценивается по формуле:

X = (M - m) / M * 100 + 15 для мужчин

X = (M - m) / M * 100 + 22 для женщин


Плотность: Плотность человеческого тела близка к плотности воды (1000 кг/м3): плотность жира 890 кг/м3, мускулов 1100 кг/м3 . Для человека средняя плотность вычисляется по формуле:

b = 8.90 * X + 11 * (100 – X) (кг/м3)


Объем. Этот параметр вычисляется по формуле: V = M / b3)


Площадь тела. Зная массу человека М (в кг) и рост А(в см), можно вычислить площадь кожи нашего тела S (в м2) по так называемой формуле Бойде:

S = (M * 1000)(( lg (1/M) + 35.75) / 53.2)A0.3 / 3118.2 (м2)


Результатом Вашей программы будут расчетные характеристики пользователя. Кроме того, Ваша программа должна как – то отреагировать на отклонения расчетной жирности от нормы.

И учтите, пользователем Вашей программы могут быть как мужчины так и женщины.


Зачетная работа по теме «Ветвление»


Создать приложение «Калькулятор». Эта программа должна выполнять элементарные арифметические действия (сложение, умножение, вычитание и деление).

Для операции умножения нужно предусмотреть размер элемента для вывода результата, чтобы в нем помещались большие числа. Если умножить 999999 на 999999 (самые большие шестизначные числа), получится 999998000001.

VisualBasic знает три (!) различных типа деления:

  • Деление чисел с плавающей запятой,

  • Деление нацело (результат всегда целое число);

  • Деление по модулю (Mod) (результат тоже целое число);

Кроме того, необходимо предусмотреть возможность деления на ноль. Ограничьте число знаков после запятой. Расширь возможности своего калькулятора – добавь еще какую-нибудь функцию, например вычисление Sin(x) или вычисление квадратного корня или что-то свое. !!! Предусмотреть десятичную точку при вводе.

Задача «Стили шрифта» Создайте приложение, которое обеспечивает возможность вводить фрагмент текста и выбирать стиль шрифта – жирный, курсив или оба этих начертания.


Private Sub chkжирный_Click()

If chkжирный.Value = 1 Then

txtтекст.FontBold = True

Else

txtтекст.FontBold = False

End If

End Sub


Private Sub chkкурсив_Click()

If chkкурсив.Value = 1 Then

txtтекст.FontItalic = True

Else

txtтекст.FontItalic = False

End If

End Sub


Private Sub cmdвыход_Click()

End

ёEnd Sub

=======================================================================

Создай новый проект, назови его frmBall и придумай заголовок, например «Игра в мяч»

Мяч можно нарисовать иструментом Shape. Закрась мяч и задай ему одинаковые размеры по ширине и высоте. Задай для свойства Left (левая координата) элемента Shape значение 2000.

=======================================================================

Dim xValue As InTeger

D

Привожу свой вариант программы.

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

im yValue As InTeger


PrivaTe SuB cmdSTarT_Click()

TmrTimer.EnaBled = True

End SuB


PrivaTe SuB cmdSTop_Click()

TmrTimer.EnaBled = False

End SuB


PrivaTe SuB Form_Load()

xValue = 90 'зависит от быстродействия компьютера

yValue = 75

End SuB


PrivaTe SuB TmrTimer_Timer()

shpBall.LefT = shpBall.LefT + xValue

shpBall.Top = shpBall.Top + yValue

If shpBall.Top

If shpBall.LefT

If (shpBall.Top + shpBall.HeighT) = ScaleHeighT Then yValue = -yValue

If (shpBall.LefT + shpBall.WidTh) = ScaleWidTh Then xValue = -xValue



End SuB

Задание:

  1. В нашем задании мяч начинает двигаться вниз и направо. Измени программу так, чтобы он начал двигаться налево и вверх.

  2. На панели инструментов найди инструмент Линия (Line). Нарисуй прямую линию и заставь мяч отскакивать от нее.


Программирование повторений

Цикл со счетчиком:

Пример1 for i=1 to 100 step 20

Print i

Next i

Цикл со счетчиком: возможны 4 варианта


Do While…(true)

.

loop

Do Until…(false)

.

loop

Do

.

loop While…

Do

.

Loop Until…


  1. Мой богатый дядюшка подарил мне 1$ в мой первый день рождения. Каждый следующий день рождения он удваивал свой подарок и прибавлял к нему столько, сколько лет мне исполнилось. Посчитать общую сумму денег, подаренных к N дню рождения и указывающую к какому дню рождения сумма подарка превысит 100$.

  2. Агент по продаже автомобилей стоимостью в А рублей (автомобильный дилер) продал первый автомобиль за В рублей. Каждый следующий автомобиль он продал на 40% дороже предыдущего. Вычислить прибыль агента за продажу N автомобилей.

  3. Получив краткосрочную ссуду в банке, в течение первой недели необходимо вернуть занятые деньги плюс 10% этой суммы. В течение каждой следующей недели возвращаемая сумма увеличивается на 10% по сравнению с предыдущей неделей ( так называемые сложные проценты). Выдать на экран величину возвращаемого долга за каждую из 12 недель.

  4. Вычислить объем каждого шара из нескольких шаров, а затем найти суммарный объем всех шаров. Известно, что радиус первого шара R, а радиус каждого последующего шара больше предыдущего на величину DR. Радиус последнего шара равен RK.

  5. Шахматист А в среднем на каждые 100 партий выигрывает у шахматиста В на 6 партий больше, чем проигрывает, а доля ничьих составляет 80%. Какие могут получиться результаты матчей из 24 партий? А из 32? Промоделируйте их на ЭВМ.

  6. В
    ывести на экран таблицу сопротивления медных проводов диаметром Д = 0,1мм разной длины
    L от 1 до 10 м с шагом 1м. Сопротивление определяется по формуле:

  7. Человек задолжал мяснику 67,52 фунта. Он договорился выплачивать этот долг, отдавая мяснику еженедельно 1/16 указанной суммы. Необходимо вывести на экран величину долга в конце каждой из 16 недель.

  8. Число 153 является особым числом, которое можно представить как 153 = 13 + 53 + 33. В интервале от 100 до 500 имеются еще 3 таких особых числа. Найдите их и выдайте на экран.

  9. Жильцы всех квартир N – этажного дома из M – подъездов с 1 квартирой на лестничной площадке решили прикрепить новые номера квартир. Кооператив, в который они обратились с просьбой изготовить новые им цифры, объявил, что он берет за изготовление каждой цифры столько рублей, какова эта цифра (нули изготовляются бесплатно). Жильцы решили оплатить стоимость заказа поровну. Определить размер взноса каждой квартиры.

  10. Однажды умный бедняк попросил у скупого богача приют на две недели, причем сказал: «За это я тебе в 1-ый день заплачу 1 руб., во 2-й день 2 руб., в 3-й день 3 руб. и т.д.. Словом каждый день я буду прибавлять тебе по 1 рублю, так что за 14-й день (последний) я заплачу тебе 14 рублей. Ты же будешь подавать милостыню в 1-й день 1 копейку, во 2-й день 2 копейки, в 3-й день 4 копейки и т. д. Богач с радостью согласился на такие условия, которые показались ему выгодными. Сколько барыша принесла сделка богачу?


МАССИВЫ

Массивы предназначены для моделирования объектов одного и того же типа. Каждый массив имеет имя и каждый элемент массива отличается уникальным порядковым номером (индекс). Поэтому массивы часто называют индексированными переменными.

Пример 1.

Заполним массив случайными числами в заданном интервале (от А до В) по формуле:
x=int(a+(b-a)*rnd).

Определим процедуру для нахождения максимального и минимального элемента массива.

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

Пример 2.

Сортировка массива по возрастанию методом перестановок.


Dim i, k, l, mas(1 To 10) As Byte

Dim min, max As Integer

Dim w, j As Integer

Private Sub Command1_Click()

Call заполнение

End Sub


Private Static Sub заполнение()

Randomize

For i = 1 To 10

mas(i) = Int(Rnd * 10)

Text1.Text = Text1.Text + Str(mas(i))

Next i

End Sub


Private Sub Command2_Click()

Text1.Text = ""

Text2.Text = ""

End Sub



Private Static Sub minel(i, k)


min = mas(i): k = i

F

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

Процесс перестановок можно сделать наглядным , если в текстовом поле выводить состояние массива на каждом шаге сортировки.


or j = i + 1 To 10

If mas(j)

Next

End Sub


Private Sub Command3_Click()

Text2.Text = ""

For i = 1 To 9

Call minel(i, k)

w = mas(k): mas(k) = mas(i): mas(i) = w

For l = 1 To 10

Text2.Text = Text2.Text + Str(mas(l))

Next l

Next i

End Sub

Решаем задачи

  1. На метеорологической станции в компьютер введены сведения о среднесуточной температуре за март. Требуется составить программу, которая бы оп­ределяла:

    1. количество дней, когда температура была ниже 0°С;

    2. сумму положительных температур;

    3. среднюю температуру месяца;

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

  2. В массиве содержатся сведения о росте N учеников одного класса (данные вводятся в алфавитном порядке фамилий учеников). Определить средний рост учеников, чьи фамилии расположены в журнале между фамилиями учеников с минимальным и максимальным ростом (рост этих учеников тоже учитывать), считая, что самый высокий и самый низкий ученики единственные в классе.

  3. Кот Матроскин и Шарик загадывали четные и нечетные числа в произвольном порядке, пока не кончилось место на печке, где они записывали эти числа. Определить, каких чисел было загадано больше: четных или нечетных, если последним было записано число 0 (при подсчете это число не учитывать)

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

  5. Маленький Мук пробовал печатать в текстовом редакторе. Определить, сколько различных символов он напечатал на экране, а также литеру, напечатанную максимальное число раз. Вывести на экран полученный результат.

  6. Поросята Фунтик и Хрюша решили сравнить свои книжки "по толщине". Они составили список, указывая вместе с названиями число страниц в каждой книге. Попутно выяснилось, что все книжки имели различное количество страниц, некоторые книги были как в библиотеке Фунтика, так и в библиотеке у Хрюши. Помоги Фунтику найти самую "толстую" его книжку среди тех, которых нет у Хрюши (книжки сравнивать по числу страниц).

  7. У двух спортсменов были гири для тренировок, на каждой был указан ее вес. Каждый раз после очередного занятия они составляли их по возрастанию весов гирь. Потом решили объединить свои гири, сохраняя привычное расположение гирь. Требуется помощь в расстановке (известен вес каждой гири в "исходных наборах). Напечатать порядок гирь в исходных наборах и в полученном. Задача может быть решена двумя способами.



  1. Научить компьютер распознавать среди введенных N целых чисел степени двойки (например, 1,2, 4, 8, 16 и т.д.).

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

  3. На пронумерованных дискетах записано различное количество файлов, и только две дискеты имеют одинаковое число файлов. Найти номера этих дискет.

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

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



Проект «Вечный календарь»

Постановка задачи


Разработайте программу, представляющую собой вечный календарь (она должна показывать календарь для любого месяца с 1901 по 2099 год).


Предлагаю дизайн формы:























Пояснения:

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

  2. Удобно печатать, используя функцию Tab. Например, в результате выполнения оператора Print Tab(5);”имя”; Tab(15);”адрес”, имя напечатается с 5 позиции, а адрес – с 15-ой.

  3. Печатать пробелы лучше всего с помощью функции Spc.

  4. Чтобы числа месяца стояли точно под названием дня недели, воспользуйтесь функцией формат. Чтобы убедиться, что число займет три позиции независимо от того, состоит оно из одной или из двух цифр задайте Формат ‘@@@’. Таким образом заполняются позиции справа налево, вставляя пробелы вместо отсутствующих цифр.

  5. Стандартная функция WeekDay вычисляет , каким днем недели является заданная дата, и возвращает целое число от 1 до 7 (от воскресенья до субботы – Для англо-язычных календарей). В нашей стране принято считать первым днем недели понедельник, поэтому необходимо из возвращаемого функцией Weekday числа вычесть 1:


День=WeekDay(ПервыйДень) - 1



17



-75%
Курсы профессиональной переподготовке

Учитель, преподаватель математики и информатики

Продолжительность 600 или 1000 часов
Документ: Диплом о профессиональной переподготовке
17800 руб.
от 4450 руб.
Подробнее
Скачать разработку
Сохранить у себя:
Конспект урока по информатике по теме "Первые шаги по созданию проектов в среде VBА" (0.37 MB)

Комментарии 0

Чтобы добавить комментарий зарегистрируйтесь или на сайт