Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Технологии программирования. Учебно-методическое пособие для СПО

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
Прежде чем заняться программированием, опишите глобальную целочисленную переменную k в файле Form.h.
Эта переменная позволит нам задавать шаг и направление движения машинки. Начальное значение этой переменной задайте равным единице в
обработчике события Form1_Load:
private: System::Void Form1_Load(System::Object^ sender,
System::EventArgs^ e) {
k=1;
}
Создайте обработчик события Click для пункта меню Start (для этого
щелкните двойным щелчком мыши по по пункту меню). При этом должен
запускаться таймер, устанавливать время ожидания между тактами таймера, делать кнопку Start неактивной, кнопку Stop возвращать в активное состояние:
private: System::Void startToolStripMenuItem_Click(System::Object^ sender,
System::EventArgs^ e) { timer1->Enabled=true;
71
timer1->Interval=30; startToolStripMenuItem->Enabled=false; stopToolStripMenuItem->Enabled=true;
}
Аналогично создайте обработчик события Click для пункта меню Stop. Он должен останавливать таймер, активировать кнопку Start и делать неактивной кнопку Stop.
Теперь, создайте обработчик события Tick для элемента timer1, который
будет вызываться в каждый временной интервал. Для этого в окне конструктора формы щелкните мышью по элементу управления timer1 и перейдите в окно свойств. На панели инструментов окна свойств щелкните
кнопку для получения списка методов для timer1. Двойным щелчком мыши по названию метода создайте обработчик события Tick. Запрограммируйте
обработчик таким образом, чтобы при каждом вызове метода происходило изменение положения объекта по горизонтальной оси относительно левого края
формы. Если объект достигнет левого края формы, то в pictureBox1 рисунок машинки должен замениться на противоположный. Для этого и будет использоваться рисунок объекта pictureBox3. Кроме того необходимо изменить знак переменной k на противоположный. Аналогично программируется поворот объекта при достижении правого края формы. Пример обработчика события Tick приведен ниже:
private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e)
{ pictureBox1->Left=pictureBox1->Left-k; if (pictureBox1->Left==0) { pictureBox1->Image=pictureBox3->Image; k=k*(-1); }
if (pictureBox1->Left==groupBox1->Width-pictureBox1->Width)
{ pictureBox1->Image=pictureBox4->Image; k=k*(-1);
72
}
}
Выполните построение решения и запустите проект на выполнение. Вы
убедитесь, что при нажатии кнопки Start машинка начинает движение. Нажатие кнопки Stop приводит к ее остановке.
73
Занятие № 10
Звуковое сопровождение в приложении
Методические указания к практическому занятию
Класс SoundPlayer - Управляет воспроизведением звукового WAV-файла.
Пример:
поместите фрагмент программы в файл Form1.h после директивы
#pragmaendregion
System::Media::SoundPlayer ^Pleer;// описание экземпляра объекта
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{ Pleer=gcnew System::Media::SoundPlayer(); //созданиеобъекта
}
//обработчик события выбор меню start
private: System::Void startToolStripMenuItem_Click(System::Object^ sender,
System::EventArgs^ e) {
Pleer->SoundLocation="D:\\Distrib\\my.wav"; Pleer->Play();
}
Для воспроизведение простых звуков можно использовать метод beep:
Console::Beep(500,1000); где 500 – частота звука 1000 – длительность.
74
Занятие № 11
Создание Windows-приложения для обработки массива
Цель работы: научиться создавать элементы интерфейсов для приложения и
писать простой обработчик событий на C++ для приложения WindowsForms,
работающего под управления .NET Framework.
Методические указания к практическому занятию
В работе необходимо научиться использовать элементами управления, такими как Надписи (label), Текстовые поля (textbox) и Кнопки (Button) для разработки форм предназначенных вводить и обрабатывать массивы значений. Работа состоит из двух заданий.
Задание 1. Создать форму для ввода и обработки массива.
В работе необходимо создать форму, предназначенную для ввода и обработки одномерного массива. В качестве примера обработки вычислим сумму
положительных элементов массива. Для этого:
1. Создать новый проект WindowsForms и назвать его, например, Form_lab11.
2. Разместить на форме элементы управления
Перетащите на форму два элемента Надпись (label), одно Текстовое поле (textBox) и одну кнопку (Button). Расставьте элементыпримерно так:
75
Настроим свойства объектов. Сначала измените свойство Text для формы. Затем в свойство Text для label1 введите слово «Массив», а для label2 – «Результаты». На кнопке напишите слова «Обработка».
Текстовое поле (textBox1) предназначено для задания 10 значений элементов массива. Для этого установите в свойстве поля Multilineзначение Trueи
растяните поле по вертикале. Затем выберите свойство Lines и в открывшемся
окне наберите 10 чисел, например, так и нажмите кнопку ОК:
Кнопка Button1 должна инициировать процесс обработки сформированного массива.
3. Создать обработчик событий для кнопки
Приведите обработчик события нажатия кнопки к следующему виду:
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^
e) {
double A[10];double s;int i; //описаниепеременных for(i=0;i<10;i++)//циклвводамассива
{ A[i]=System::Convert::ToDouble(textBox1->Lines[i]);//ввод } s=0;
for(i=0;i<10;i++)//циклобработки
76
if(A[i]>0) //проверка условия
вар.
Исходные данные
Действия по обработке массива
1
Массив Х[30] нецелых элементов задать датчиком
случайных чисел.
Записать в массив Y подряд положительные
элементы массива Х и найти их среднее
арифметическое.
2
Массив С[15] нецелых элементов
Определить минимальный элемент массива С и
его порядковый номер. Заменить его на 0 .
s+= A[i];//вычисление суммы положительных чисел /*ВыводрезультатавНадпись*/ label2->Text="сумма="+System::Convert::ToString(s); }
Выполните компиляцию проекта и запустите его на выполнение. Вы должны
получить примерно следующий результат:
На этапе выполнения программы вы можете изменять данные в Текстовом поле и проверить результат обработки для других значений массива, повторно нажав
кнопку.
Задание 2. Обработка массива по индивидуальному заданию.
Напишите программу на языке С++ для обработки одномерного массива по варианту, выбранному из таблицы.
Варианты заданий Таблица
77
вводят с клавиатуры.
3
Массив Х [36] целых элементов задать датчиком случайных
чисел.
Переписать подряд в массив Y положительные и в массив Z отрицательные элементы массива Х и определить, сколько в массиве Y четных элементов.
4
Массив А[20] нецелых элементов
вводят с клавиатуры.
Определить среднее арифметическое положительных элементов массива и подсчитать сколько элементов находится в
интервале от 2.5 до 10.5.
5
Массив Z[15]
нецелых элементов
вводят с клавиатуры.
Переписать в массив R сначала положительные, а затем отрицательные элементы массива Z и
найти сумму положительных элементов и
количество отрицательных элементов.
6
Массив А[20] нецелых элементов задать датчиком
случайных чисел.
Вычислить среднее арифметическое значение положительных элементов и максимальный элемент среди отрицательных элементов
массива А.
7
Массив С[15] нецелых элементов
вводят с клавиатуры.
Вычислить минимальный положительный и максимальный отрицательный элементы и их
порядковые номера в массиве С.
8
Массив Y[10]
нецелых элементов
вводят с клавиатуры.
Вычислить среднее геометрическое элементов массива и определить наибольший элемент
массива. Заменить наибольший элемент массива на среднее геометрическое элементов массива.
9 Массив D [30] целых
элементов задать датчиком случайных
чисел.
Найти минимальный и максимальный элемент,
среди четных элементов массива D и поменять их местами.
10
Массив B [30] целых
элементов задать датчиком случайных
чисел.
Переписать подряд в массив А те элементы
массива В, для которых справедливо: Bi>
2/)(
11
iiBB
.Вычислить сумму элементов
массива А и количество элементов, удовлетворяющих условию А
i
< 5.
11
Массив А[15] сформировать по
правилу
1
)1(
sin
1
1
2
i
i
i
i
A
i
Найти минимальный элемент и сумму отрицательных элементов. Заменив в массиве А
минимальный элемент найденной суммой.
12
Массив А[22] нецелых элементов задать датчиком
Записать в массив Х номера тех элементов массива А, для которых справедливо А
i-1
< Аi <
А
i+1
. Вычислить среднее арифметическое
78
случайных чисел.
элементов массива А.
13
Массив B[20]
сформировать по
правилу
||
2
aib
i
a=25.8
Найти сумму элементов с номерами с 5-го по 10-ый и найти произведение элементов Bi < 8.5
14
y=cos (nx + e) 1<= n <= 30 e =0.5 x вводить с
клавиатуры.
Записать в массив А те значения n, при которых у<0, в массив В записать те значения n, при которых у>0.
15
Массив Х[20] нецелых элементов
вводят с клавиатуры.
Вычислить сумму и количество элементов,
удовлетворяющих условию X
i
<=7 и заменить в
массиве Х элементы Xi<2 на 0.
16
Массив A[40] cформировать по
правилу
i
i
a
i
cos
Найти максимальный элемент и заменить его суммой элементов, предшествующих ему. Найти минимальный элемент и заменить его
суммой элементов, стоящих после него.
17
Массив Y[25] cформировать по
правилу
2
1
41 n
x
y
n
n
X=2.3
Переписать в массив Х элементы массива Y в
обратном порядке и найти среднее арифметическое максимального и
минимального элемента в массиве Y.
18
Массив Z[15] cформировать по
правилу
i
x
z
i
i
2
2
x=1.2
Найти сумму элементов с нечетными номерами и минимальный элемент среди элементов с
четными номерами.
19
Массив Х [40]
cформировать по
правилу
8 aix
i
a=pi/6
Найти минимальный элемент и заменить его произведением элементов, предшествующих
ему.
20
Массив Y[25] cформировать по
правилу
)12)(12(
2cos
ii
ix
y
i
x вводить с клавиатуры.
Определить количество элементов уi <1.2 среди элементов с нечетными номерами и сумму
элементов с четными порядковыми номерами.
21
Массив Z[20] cформировать по
Определить сумму первых восьми элементов и количеств элементов, удовлетворяющих
79
правилу
i
x
z
i
i
2
2
x=1.2
условию zi>3.6
22
Массив B [20] целых
элементов задать датчиком случайных
чисел..
Переписать в массив Х нечетные элементы
массива В, уменьшенные на 2 и найти сумму элементов массива В.
23
Массив С[20] целых элементов вводят с
клавиатуры.
Определить количество элементов кратных 5 и количество элементов, кратных 7 и сумму этих
элементов.
24
Массив Х[30] нецелых элементов задать датчиком
случайных чисел.
Переписать в массив Y подряд элементы массива Х ,удовлетворяющие условию 1.5<
i
x
<
5 и найти их среднее арифметическое.
25
Массив С[15] нецелых элементов
вводят с клавиатуры.
Определить минимальный элемент массива С и его порядковый номер. Заменить минимальный
элемент на 0.
26
Массив Х [16] целых элементов вводят с
клавиатуры.
Переписать подряд в массив Y положительные элементы массива Х и массив Z-
отрицательные элементы массива Х и
определить, сколько в массиве Y четных элементов.
27
Массив А[30] нецелых элементов задать датчиком
случайных чисел.
Определить среднее арифметическое элементов массива и подсчитать, сколько элементов
находится в пределах от -2.8 до 3.8.
28
Массив Z [30]
нецелых элементов задать датчиком
случайных чисел.
Расположить в массиве R сначала
положительные, а затем отрицательные
элементы массива Z.
Содержание отчета
1.Номер и тема занятия.
2.Вариант задания.
3.Результаты подготовки:
- схема алгоритма обработки элементов массива,
- программа на заданном алгоритмическом языке.
4.Итоги работы :
- результаты расчета с текстовыми комментариями.
Контрольные вопросы
1.Какие ограничения накладываются на индексы элементов массивов?
80
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]