Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Задание C16. Массив записываемых в файл данных должен представлять собой последовательный ряд из 256 чисел типа char.
Задание D16. Первый поток выводит в верхнюю половину окна попеременно то левую четверть, то правые три четверти цветного круга.
Второй поток выводит точно в центр рабочей области нижней половины окна цветной символ.
Изменяя размер окна приложения, проанализируйте работу программы.
Задание A17. В середину главного окна бледно-желтого цвета выведите залитый коричневым цветом круг диаметром 50 – 100 пикселов. В каждом такте таймера, работающего с частотой 10 Гц, увеличивайте горизонтальный диаметр круга на 2 – 3 пиксела, превращая его тем самым во все более вытянутый эллипс. Положение центра эллипса оставляйте неизменным. Остановите таймер, когда изображение эллипса займет весь экран по ширине.
Задание B17. Фигура плавно качается по вертикали в пределах окна. Такое движение можно получить, если при неизменной
x-координате фигуры ее y-координату определять по формуле
y = sin t. Шаг изменения параметра t задайте равным 0,03, значения y умножайте на 90.
Задание C17. Массив записываемых в файл данных должен представлять собой последовательный ряд из 1000 целых чисел, начинающихся с 4096.
Задание D17. Первый поток выводит в левую половину окна цветной квадрат и периодически изменяет фон этой половины окна, закрашивая ее штриховой кистью с разной ориентацией штрихов.
Второй поток выводит в правую половину окна цветными символами координаты курсора мыши в рабочей области окна. Экранные координаты курсора мыши можно получить с помощью функции GetCursorPos(); для преобразования их в координаты рабочей области используется функция ScreenToClient().
Задание A18. В середине главного окна темно-синего цвета нарисуйте тонкий белый лунный серп рогами вниз (чего никогда не бывает в наших широтах), слегка наклоненный в одну сторону. В каждом такте таймера, работающего с частотой 5 Гц, покачивайте серп, наклоняя его то в одну, то в другую сторону. Остановите таймер после 10 периодов качания.
Задание B18. Фигура плавно перемещается по очень узкому эллипсу, лежащему горизонтально, уравнение которого в параметрической форме имеет вид x =90 sin t, y =10 cos t. Шаг изменения параметра t задайте равным 0,03.
Задание C18. Массив записываемых в файл данных должен представлять собой последовательный ряд из 1000 целых нечетных чисел в убывающем порядке.
Задание D18. Первый поток выводит в верхнюю половину окна цветной символ с случайными координатами (в пределах этой половины окна). Для повышения наглядности не затирайте изображение в каждом такте вывода, накапливая выводимые символы на экране.
Второй поток выводит в нижнюю половину окна попеременно то правую, то левую половины окружности, рисуемые толстыми перьями разных цветов. Часть окружности рисуется функцией Arc().
Задание A19. В середину главного окна желтого цвета выведите один произвольный символ ярко-синего цвета. В каждом такте таймера, работающего с частотой 50 Гц, перемещайте символ на небольшой угол по кругу радиусом 50 – 80 пикселов. Уравнение круга в параметрической форме имеет вид x = sin t, y = cos t. Шаг изменения параметра t задайте 0,05, а число шагов таким, чтобы получить один полный период графика. Выполните задание в двух вариантах – с затиранием фона окна при его перерисовке и без затирания фона.
Задание B19. Фигура плавно перемещается по образующей вырожденной фигуры Лиссажу, уравнение которой в параметрической форме имеет вид x = sin t, y = cos(t + π/2). В каждом шаге параметр t изменяйте на 0,02, значения x и y умножайте на 80. Для константы π/2 в языке С++ существует обозначение M_PI_2.
Задание C19. Массив записываемых в файл данных должен представлять собой последовательный ряд из 500 коротких (тип short) целых четных чисел в убывающем порядке.
Задание D19. Первый поток рисует в левой половине толстым цветным пером изображение прозрачного квадрата попеременно то большего, то меньшего размера с концентрическим расположением.
Второй поток выводит в правую половину окна круг достаточно большого размера, закрашенный первоначально черным цветом. Значение цвета кисти, которой закрашивается круг, периодически увеличивается с шагом 3 – 5 единиц.
Задание A20. В нижнюю часть достаточно высокого главного окна светло-зеленого цвета выведите короткую строку текста темно-зелеными буквами. В каждом такте таймера, работающего с частотой 10 Гц, смещайте строку вверх на 5 – 6 пикселов. Остановите таймер, когда строка дойдет до верхнего края окна.
Задание B20. Фигура плавно перемещается по свертывающейся спирали, уравнение которой в параметрической форме имеет вид
x = sin t / 0.1t, y = t cos t / 0.1t. Параметр t изменяйте от 5 до 30 с шагом 0,05, значения x и y умножайте на 80.
Задание C20. Массив записываемых в файл данных должен представлять собой последовательный ряд из 256 чисел типа UCHAR в убывающем порядке.
Задание D20. Первый поток выводит в верхнюю половину окрашенного окна большой круг, кисть для заливки которого выбирается случайным образом из трех созданных заранее кистей разных цветов. Для того чтобы наглядно фиксировать моменты смены кисти, в центр круга выводится номер такта этого потока.
Первый поток выводит в нижнюю половину окна цветными символами текущее время (часы, минуты и секунды), получаемое с помощью функции GetLocalTime().
Задание A21. В середину главного окна фиолетового цвета, квадратной формы и достаточно большого размера выведите залитый красным цветом круг небольшого диаметра. В каждом такте таймера, работающего с частотой 10 Гц, увеличивайте диаметр круга на 3 – 4 пиксела, оставляя неизменным положение его центра. Остановите таймер, когда круг займет все окно.
Задание B21. Фигура периодически в пределах окна плавно перемещается по экспоненциальной кривой, описываемой уравнением y = 1 – e –2 t. Шаг изменения параметра t задайте равным 0,03, значения y умножайте на 180. В каждом шаге x-координату фигуры изменяйте на 1 пиксел.
Задание C21. Массив записываемых в файл данных должен представлять собой последовательный ряд из 1000 коротких (тип unsigned short) нечетных целых чисел в убывающем порядке.
Задание D21. Первый поток выводит в левую половину окрашенного окна треугольник, заливаемый попеременно то синим, то зеленым цветом. Треугольник рисуется с помощью функции Polygon().
Второй поток выводит в верхнюю часть правой половины окрашенного окна небольшой цветной круг, который в каждом такте вывода смещается на 1 – 2 пиксела вниз.
Задание A22. В середину главного окна светло-зеленого цвета выведите залитую темно-зеленым цветом половину круга диаметром 50 – 100 пикселов. В каждом такте таймера, работающего с частотой 5 Гц, изменяйте изображение так, чтобы выводилась то правая, то левая половина круга. Остановите таймер после 10 периодов смены изображения.
Задание B22. Фигура плавно перемещается по дуге, уравнение которой в параметрической форме имеет вид x = – sin2 t, y = cos t. Шаг изменения параметра t задайте равным 0,02, значения x и y умножайте на 80.
Задание C22. Массив записываемых в файл данных должен представлять собой последовательный ряд из 2000 целых чисел, начинающихся с числа 256.
Задание D22. Первый поток выводит в верхнюю половину окна квадрат, попеременно окрашивая его в синий, зеленый и красный цвета.
Второй поток выводит в нижнюю половину окна цветными символами объем свободной физической памяти, который можно получить с помощью функции GlobalMemoryStatus(). Запуская вместе с испытываемой программой другие приложения Windows (ваши или системные), пронаблюдайте за использованием физической памяти.
Задание A23. В середину главного окна серого цвета выведите достаточно большой синий квадрат, образовав его с помощью функции RoundRect(). Начальные значения диаметров скругляющих эллипсов примите равными 0. В каждом такте таймера, работающего с частотой 20 Гц, увеличивайте ширину обоих скругляющих эллипсов на 2 – 3 пиксела, и остановите таймер, когда ширина эллипсов достигнет диаметра круга.
Задание B23. Фигура периодически в пределах окна плавно перемещается по кривой Гаусса, описываемой уравнением y =
= e – (t – 20) (t – 20) / 20. Шаг изменения параметра t задайте равным 0,2, значения y умножайте на 180. В каждом шаге x-координату фигуры изменяйте на 1 пиксел.
Задание C23. Массив записываемых в файл данных должен представлять собой последовательный ряд из 1000 целых чисел в убывающем порядке.
Задание D23. Первый поток выводит в левую половину окрашенного окна нижнюю часть окружности (дугу) с раствором 135°, нарисованную толстым цветным пером. Дуга покачивается в каждом такте потока вокруг центра окружности на угол 45°. Дуга окружности рисуется функцией Arc().
Второй поток выводит в правую половину окна текущую позицию курсора мыши в рабочей области окна. Экранные координаты курсора мыши можно получить с помощью функции GetCursorPos(); для преобразования их в координаты рабочей области используется функция ScreenToClient().
Задание A24. В середину главного окна зеленого цвета выведите небольшой бледно-желтый квадрат. В каждом такте таймера, работающего с частотой 2 Гц, увеличивайте горизонтальный размер фигуры на 4 – 5 пикселов, преобразуя его во все более вытянутый прямоугольник и оставляя неизменным положение его центра. Остановите таймер, когда фигура займет все окно по горизонтали.
Задание B24. Фигура плавно перемещается по диагонали от правого нижнего края окна до левого верхнего, скачком возвращается назад и повторяет движение по диагонали. В каждом шаге обе координаты фигуры изменяйте на 1 пиксел.
Задание C24. Массив записываемых в файл данных должен представлять собой последовательный ряд из 256 чисел типа BYTE.
Задание D24. Первый поток периодически изменяет фон верхней половины окна, задавая ему три разных оттенка желтого цвета.
Второй поток выводит в нижнюю половину окна цветными символами текущие координаты главного окна приложения на рабочем столе, которые можно получить с помощью функции GetWindowRect(). Перемещая окно приложения по рабочему столу Windows, убедитесь в том, что программа работает правильно.
Задание A25. В середину главного окна темно-синего цвета выведите символ цифры ноль красного цвета. В каждом такте таймера, работающего с частотой 5 Гц, увеличивайте значение выводимой цифру, изменяя ее от 0 до 9. По достижении цифры 9 изменяйте ее на ноль. Остановите таймер после прохождения трех полных периодов смены цифр.
Задание B25. Фигура периодически в пределах окна плавно перемещается по кривой Гаусса, описываемой уравнением y =
= – e – (t – 25) (t – 25) / 100. Шаг изменения параметра t задайте равным 0,2, значения y умножайте на 180. В каждом шаге x-координату фигуры изменяйте на 1 пиксел.
Задание C25. Массив записываемых в файл данных должен представлять собой последовательный ряд из 1000 целых чисел, кратных 5.
Задание D25. Первый поток выводит в левую половину окна цветную окружность, нарисованную толстым цветным пером. Окружность то заливается цветом своей образующей, то кажется прозрачной.
Второй поток выводит в правую половину окна цветными символами текущее время (часы, минуты и секунды), получаемое с помощью функции GetLocalTime().
Задание A26. В середину главного окна зеленого цвета выведите произвольный красный символ. В каждом такте таймера, работающего с частотой 20 Гц, перемещайте символ на небольшой угол по образующей фигуры Лиссажу, уравнение которой в параметрической форме имеет вид x = sin t, y = cos (a t + w). Выберите значение a = 1,5, w – от 0,05 до 0,5. Эффективный радиус кривой увеличьте до 40 – 50 пикселов, а шаг изменения параметра t задайте 0,1. Подберите такое число шагов, чтобы получить один полный период графика. Выполните задание в двух вариантах – с затиранием фона окна при его перерисовке и без затирания фона.
Задание B26. Фигура плавно перемещается по прямой линии, подчиняясь зависимости y = x / 4 + 15 от левого края окна до правого, скачком возвращается назад и повторяет движение вправо. В каждом шаге x-координату фигуры изменяйте на 1 пиксел.
Задание C26. Массив записываемых в файл данных должен представлять собой последовательный ряд из 256 чисел типа char, начинающихся с –127.
Задание D26. Первый поток выводит в левую половину окна попеременно изображения то круга, то эллипса с общим центром. Фигуры должны быть залиты каким-либо цветом.
Второй поток выводит в правую половину окна цветными символами время выполнения предыдущего такта этого потока (вместе с интервалом ожидания, задаваемым функцией Sleep()).
Задание A27. В середину главного окна черного цвета выведите закрашенный кистью яркого красного цвета круг диаметром 150 – 200 пикселов. В каждом такте таймера, работающего с максимальной частотой (20 Гц), увеличивайте яркость зеленого компонента цвета кисти на 2 – 3 единицы интенсивности и наблюдайте изменение цвета круга. Остановите таймер после завершения двух периодов смены цвета. Выполните задание в двух вариантах – с затиранием фона окна при его перерисовке и без затирания фона.
Задание B27. Фигура плавно перемещается по косинусоиде x = = sin t вдоль вертикали от нижнего края окна до верхнего, скачком возвращается назад и повторяет движение вверх. В каждом шаге
y-координату фигуры изменяйте на 1 пиксел, параметр t на 0,05; значения x умножайте на 80.
Задание C27. Массив записываемых в файл данных должен представлять собой последовательный ряд из 1024 чисел типа BYTE.
Задание D27. Первый поток выводит в верхнюю половину окна изображение левой половины цветного круга попеременно то большего, то меньшего диаметра.
Второй поток выводит в нижнюю половину окна цветными символами текущую секунду, получаемую с помощью функции GetLocalTime().
Задание A28. В верхнем левом углу главного окна зеленого цвета нарисуйте залитый синим цветом небольшой треугольник с вершиной, расположенной на диагонали окна. В каждом такте таймера, работающего с частотой 10 Гц, изменяйте координату вершины так, чтоб она оставалась на диагонали, но перемещалась в сторону нижнего правого угла окна. Остановите таймер после того, как треугольник, удлиняясь, достигнет угла окна. Выполните задание в двух вариантах – с затиранием фона окна при его перерисовке и без затирания фона. Треугольник рисуется с помощью функции Polygon().
Задание B28. Фигура плавно перемещается по кривой y = sin 3 t вдоль горизонтали от левого края окна до правого, скачком возвращается назад и повторяет движение вправо. В каждом шаге
y-координату фигуры изменяйте на 1 пиксел, параметр t на 0,05; значения y умножайте на 80.
Задание C28. Массив записываемых в файл данных должен представлять собой последовательный ряд из 64 К целых чисел типа WORD.
Задание D28. Первый поток выводит в нижнюю половину окна цветной треугольник с вертикальным основанием и обращенный вершиной то вправо, то влево. Треугольник рисуется с помощью функции Polygon().
Второй поток выводит в верхнюю половину окна последовательно наращиваемое число, изображаемое цветными цифрами.
Задание A29. В каждом такте таймера, работающего с частотой 10 Гц, выводите в окно темно-синего цвета размером 400 ´ 400 пикселов ярко-желтый символ звездочки (*) в позицию со случайными координатами. Остановите таймер после вывода заданного числа (50 – 100) символов. Выполните задание в двух вариантах – с затиранием фона окна при его перерисовке и без затирания фона.
Задание B29. Фигура плавно перемещается по кривой y = | sin t | вдоль горизонтали от левого края окна до правого, скачком возвращается назад и повторяет движение вправо. В каждом шаге
y-координату фигуры изменяйте на 1 пиксел, параметр t на 0,05; значения y умножайте на 80.
Задание C29. Массив записываемых в файл данных должен представлять собой ряд из 16 четных чисел типа int.
Задание D29. Первый поток выводит в левую половину окна то верхнюю, то нижнюю половину цветного круга.
Второй поток выводит в правую половину окна последовательные случайные числа в пределах от 0 до 99.
Задание A30. В середину главного окна черного цвета выведите закрашенный белой кистью квадрат с размером сторон 150 – 200 пикселов. В каждом такте таймера, работающего с максимальной частотой (20 Гц), уменьшайте яркость всех трех компонентов цвета кисти на 2 – 3 единицы интенсивности и наблюдайте изменение цвета фигуры. Остановите таймер после завершения двух периодов смены цвета.
Задание B30. Фигура плавно перемещается по горизонтали, касаясь нижнего края окна, от левого края окна до правого. Коснувшись правого края, фигура изменяет направление движения и начинает перемещаться влево. Коснувшись левого края окна, фигура опять изменяет направление движения и т. д. В каждом шаге
x-координату фигуры изменяйте на 1 пиксел.
Задание C30. Массив записываемых в файл данных должен представлять собой последовательный ряд уменьшающихся чисел типа char от 255 до 0.
Задание D30. Первый поток выводит в правую половину окна попеременно цветные буквы “A” или “Z”.
Второй поток выводит в случайные места левой половины окна небольшие цветные кружки. Для повышения наглядности не затирайте изображение в каждом такте вывода, накапливая выводимые фигуры на экране.
Задание A31. В каждом такте таймера, работающего с максимальной частотой (20 Гц), выводите в окно светло-голубого цвета размером 400 ´ 400 пикселов небольшой (диаметром 20 – 30 пикселов) ярко-желтый круг в позицию со случайными координатами. Диапазон координат подберите так, чтобы все выводимые фигуры не выходили за пределы окна. Остановите таймер после вывода заданного числа (100 – 200) фигур. Выполните задание в двух вариантах – с затиранием фона окна при его перерисовке и без затирания фона.
Задание B31. Фигура плавно перемещается по образующей фигуры Лиссажу, уравнение которой в параметрической форме имеет вид x = sin t, y = cos(2t + 2). В каждом шаге параметр t изменяйте на 0,02, значения x и y умножайте на 80. Для константы π/2 в языке С++ существует обозначение M_PI_2.
Задание C31. Массив записываемых в файл данных должен представлять собой последовательный ряд из 1 миллиона целых чисел типа int.
Задание D31. Первый поток выводит в верхнюю половину окна то зеленый прямоугольник, то вписанный в те же координаты синий эллипс.
Второй поток выводит в нижнюю половину окна цветными символами число секунд, истекших от момента загрузки операционной системы, которое можно получить с помощью функции GetTickCount(). Оцените, когда была в последний раз загружена операционная система на вашем компьютере?
Задание A32. В середину главного окна белого цвета выведите закрашенный кистью черного цвета треугольник с размером сторон 150 – 200 пикселов. В каждом такте таймера, работающего с максимальной частотой (20 Гц), увеличивайте яркость всех трех компонентов цвета кисти на 2 – 3 единицы интенсивности и наблюдайте изменение цвета фигуры. Остановите таймер после завершения двух периодов смены цвета. Выполните задание в двух вариантах – с затиранием фона окна при его перерисовке и без затирания фона. Треугольник рисуется с помощью функции Polygon().
Задание B32. Фигура плавно перемещается по вертикали, касаясь левого края окна, от верхнего края окна до нижнего. Коснувшись нижнего края, фигура изменяет направление движения и начинает перемещаться вверх. Коснувшись верхнего края окна, фигура опять изменяет направление движения и т. д. В каждом шаге y-координату фигуры изменяйте на 1 пиксел.
Задание C32. Массив записываемых в файл данных должен представлять собой последовательный ряд из 64 K чисел типа WORD.
Задание D32. Первый поток выводит в левую половину окна изображение правой половины цветного круга попеременно то большего, то меньшего диаметра.
Второй поток выводит в правую половину окна цветными символами время выполнения предыдущего такта первого потока (вместе с интервалом ожидания, задаваемым функцией Sleep()). Для определения длительности фрагмента программы воспользуйтесь функцией мультимедийного таймера timeGetTime().
С п и с о к л и т е р а т у р ы
1. Финогенов практикум “Основы разработки приложений Windows”. Книга 1. М.: МИФИ, 2004.
2. Финогенов практикум “Основы программирования на языке С++”. М.: МИФИ, 2004.
3. Win32. Основы программирования. М.: ДИАЛОГ-МИФИ, 2002.
Лабораторный практикум
«Основы разработки приложений
Windows»
Книга 2
Редактор
Подписано в печать 00.00.2005 г. Формат 60 ´ 84 1/16
Печ. л. 6,75 Уч.-изд. л. 6,75 Тираж 150 экз.
Изд. № 000-1 Заказ
Московский инженерно-физический институт (государственный университет)
Типография МИФИ. Москва, Каширское шоссе, 31
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 |


