Similar presentations:
Цикл DO WHILE. Использование DO WHILE в графике
1. Курс «Основы программирования» Власенко Олег Федосович SimbirSoft
Лекция 4.Цикл DO WHILE. Использование DO WHILE в
графике.
ЛР 6. Цикл DO WHILE
ЛР 7. Рисование при помощи DO WHILE
2.
3.
Задача 1аНужно нарисовать картинку (см рисунок)
4.
Программа 1.15.
Программа 1.26.
Программа 1.37.
Задача 2аНаселение города увеличивается на 3%
каждый год. В 2014 году население города
составляло 650 000 человек. Напишите
программу, которая выведет на экран
предсказываемую численность населения
города в каждом году, вплоть до 2040.
8.
Программа 2.19.
Программа 2.210.
Программа 2.311.
12.
Задача 2бНаселение города увеличивается на 3%
каждый год. В 2014 году население города
составляло 650 000 человек. Напишите
программу, которая выведет на экран
предсказываемую численность населения
города в каждом году, вплоть до 2040.
Используйте цикл DO WHILE.
13.
Задача 2б – блок-схема14.
Программа 2б#include <stdio.h>
void main() {
int year = 2014;
long population = 650000;
do {
printf("%ld inhabitants live in the city in %d\n",
population, year);
population = (population * 103) / 100;
year = year + 1;
} while (year <= 2040);
}
15. Программа 2б в работе
16.
Задача 1бНужно нарисовать картинку (см рисунок).
Нужно использовать цикл DO WHILE
17. Задача 1б - программа
case WM_PAINT:{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
int x1 = 10, y1 = 100;
int x2 = 300, y2 = 100;
int i = 0;
do {
MoveToEx(hdc, x1, y1, NULL);
LineTo(hdc, x2, y2);
y1 = y1 - 5;
y2 = y2 + 10;
i++;
} while (i < 16);
EndPaint(hWnd, &ps);
}
18.
19. Термины
20. Цикл do while
do {Действие;
} while (Условие);
21.
22. Лабораторная работа №6
Цикл DO WHILE23. Задача 1. Ряд натуральных чисел
Вводится N.Нужно вывести натуральные числа от 1 до N (включительно).
24. Задача 1. Ряд натуральных чисел
Вводится N.Нужно вывести натуральные числа от 1 до N (включительно).
(Ниже – программа целиком)
25. Задача 1. Ряд натуральных чисел – трассировка(0)
in
i<=n
Вывод
Ввод
26. Задача 1. Ряд натуральных чисел – трассировка(1)
in
i<=n
Вывод
“n = “
Ввод
27. Задача 1. Ряд натуральных чисел – трассировка(2)
in
i<=n
Вывод
“n = “
Ввод
4 <Enter>
28. Задача 1. Ряд натуральных чисел – трассировка(3)
in
4
i<=n
Вывод
“n = “
Ввод
4 <Enter>
29. Задача 1. Ряд натуральных чисел – трассировка(4)
i1
n
4
i<=n
Вывод
“n = “
Ввод
4 <Enter>
30. Задача 1. Ряд натуральных чисел – трассировка(5)
i1
n
4
i<=n
Вывод
“n = “
“1 “
Ввод
4 <Enter>
31. Задача 1. Ряд натуральных чисел – трассировка(6)
i1
2
n
4
i<=n
Вывод
“n = “
“1 “
Ввод
4 <Enter>
32. Задача 1. Ряд натуральных чисел – трассировка(7)
i1
2
n
i<=n
4
Вывод
“n = “
2 <= 4 +
“1 “
Ввод
4 <Enter>
33. Задача 1. Ряд натуральных чисел – трассировка(8)
i1
2
n
i<=n
4
Вывод
“n = “
2 <= 4 +
“1 “
“2 ”
Ввод
4 <Enter>
34. Задача 1. Ряд натуральных чисел – трассировка(9)
i1
2
3
n
i<=n
4
Вывод
“n = “
2 <= 4 +
“1 “
“2 ”
Ввод
4 <Enter>
35. Задача 1. Ряд натуральных чисел – трассировка(10)
i1
n
i<=n
4
Вывод
“n = “
2
2 <= 4 +
“1 “
3
3 <= 4 +
“2 ”
Ввод
4 <Enter>
36. Задача 1. Ряд натуральных чисел – трассировка(11)
i1
n
i<=n
4
Вывод
“n = “
2
2 <= 4 +
“1 “
3
3 <= 4 +
“2 ”
“3 ”
Ввод
4 <Enter>
37. Задача 1. Ряд натуральных чисел – трассировка(12)
i1
n
i<=n
4
Вывод
“n = “
2
2 <= 4 +
“1 “
3
3 <= 4 +
“2 ”
4
“3 ”
Ввод
4 <Enter>
38. Задача 1. Ряд натуральных чисел – трассировка(13)
i1
n
i<=n
4
Вывод
“n = “
2
2 <= 4 +
“1 “
3
3 <= 4 +
“2 ”
4
4 <= 4 +
“3 ”
Ввод
4 <Enter>
39. Задача 1. Ряд натуральных чисел – трассировка(14)
i1
n
i<=n
4
Вывод
“n = “
2
2 <= 4 +
“1 “
3
3 <= 4 +
“2 ”
4
4 <= 4 +
“3 ”
“4 ”
Ввод
4 <Enter>
40. Задача 1. Ряд натуральных чисел – трассировка(15)
i1
n
i<=n
4
Вывод
“n = “
2
2 <= 4 +
“1 “
3
3 <= 4 +
“2 ”
4
4 <= 4 +
“3 ”
5
“4 ”
Ввод
4 <Enter>
41. Задача 1. Ряд натуральных чисел – трассировка(16)
i1
n
i<=n
4
Вывод
“n = “
2
2 <= 4 +
“1 “
3
3 <= 4 +
“2 ”
4
4 <= 4 +
“3 ”
5
5 <= 4 -
“4 ”
Ввод
4 <Enter>
42. Задача 1. Ряд натуральных чисел
Вводится N.Нужно вывести натуральные числа от 1 до N (включительно).
Нарисуйте блок схему к Задаче 1.
43. Задача 1. Ряд натуральных чисел
ДЕМО в VS + Трассировка в VS44. Задача 2. Степени двойки
Нужно вывести степени числа 2 от 0 до 1045. Задача 2. Степени двойки
Нужно вывести степени числа 2 от 0 до 10(Ниже – начало программы)
46. Задача 2. Степени двойки - трассировка
Нужно вывести степени числа 2от 0 до 5
stepen
i
i<=10
Вывод
1
0
“2^0 = 1“
2
1
1 <= 5 +
“2^1 = 2“
4
2
2 <= 5 +
“2^2 = 4“
8
3
3 <= 5 +
“2^3 = 8“
16
4
4 <= 5 +
“2^4 = 16“
32
5
5 <= 5 +
“2^5 = 32“
64
6
6 <= 5 -
47. Задача 2. Степени двойки
Нужно вывести степени числа 2 от 0 до 10Напишите код.
Нарисуйте блок схему к Задаче 2.
48. Задача 3*. Деньги на счете (сложные проценты)
На счет положили R рублей сегодня под N процентов годовых.Выведите какая будет сумма на счете через 1,2, 3 … 10 лет, если со счетом не
будет никаких операций (с него не будут забирать деньги и не будут добавлять)
49. Задача 3*. Деньги на счете (сложные проценты)
На счет положили R рублей сегодня под N процентов годовых.Выведите какая будет сумма на счете через 1,2, 3 … 10 лет, если со счетом не
будет никаких операций (с него не будут забирать деньги и не будут добавлять)
50. Задача 3*. Деньги на счете (сложные проценты)
На счет положили R рублей сегодня под N процентов годовых.Выведите какая будет сумма на счете через 1,2, 3 … 10 лет, если со счетом не
будет никаких операций (с него не будут забирать деньги и не будут добавлять)
(Ниже – начало программы)
51. Задача 3*. Деньги на счете (сложные проценты)
На счет положили R рублей сегодня под N процентов годовых.Выведите какая будет сумма на счете через 1,2, 3 … 10 лет, если со счетом не
будет никаких операций (с него не будут забирать деньги и не будут добавлять)
Нарисуйте блок схему к Задаче 3.
52. Домашнее задание ЛР6
Доделать дома задачи 1-2 – если они не были доделаны в классе.Дорисовать блок схемы к задачам 1-2 – если они не были дорисованы или были с ошибками.
Сделать задачи 4, 5.1 5.2.
Задача 4. Реализовать задачу «Вводится число N. Нужно вывести первые N четных чисел».
Нарисовать блок схему. Подготовить необходимые тесты.
Пример теста:
ввод N = 6
вывод 2 4 6 8 10 12
Задача 5.1. Придумать задачу на последовательность чисел («вывести все нечетные числа от 1
до N (1 3 5 7 9 …)», «вывести степени числа 4 от 0 до N (1 4 16 64 …)», «Вывести первые N чисел
Фибоначчи (0 1 1 2 3 5 8 …)» и т.п.) и реализовать её используя DO WHILE. Для вашей
реализации нарисовать блок-схему. Прописать необходимые тесты.
ИЛИ / И*
Задача 5.2. Придумать задачу из реальной жизни, экономики, финансов («Подсчитать
накопленную инфляцию за N лет, если она все годы одинаковая и составляет K % в год»,
«Каждый месяц студент Вася откладывает 1000 рублей про запас. Вывести его запасы в
ближайшие 36 месяцев (1000 2000 3000 4000 …)» и т.п.). Реализовать задачу используя DO
WHILE – код, блок-схема, необходимые тесты.
В итоге у всех будут выполнены задачи 1, 2, 4 и одна из задач 5.1 или 5.2.
У самых упорных будут выполнены задачи 1,2, 3*, 4, 5.1, 5.2
53. ЛР6 – оформление
Для сдачи домашней работы нужно иметь:1) Блок схемы всех реализованных программ.
54.
55. Лабораторная работа №7
Рисование при помощи DO WHILE56. Задача 1
В Windows приложение к уже готовому рисунку добавить рисунок куста.57. Задача 1: Решение
В Windows приложение добавить рисунок домика.58. Задача 2
В Windows приложение добавить рисунок второго куста.59. Задача 2: Решение
В Windows приложение добавить рисунок второго куста.60. Задача 3*
Кусты сделайте кустистее61. Задача 4
Добавьте забор вверху рисунка:62. Задача 4: Решение
Добавьте забор вверху рисунка:63. Задача 4.1*
Забор сделайте плотнее:64. Домашнее задание ЛР7
Доделать дома задачи 1, 2, 4 – если они не были доделаны в классе. Затем сделать Задачу 5.Если есть силы, время и желание – Сделать задачи 3*, 4.1*, Задачу 6* и 7**.
Задача 5. К получившейся картине добавить 2 рисунка, состоящие из множества линий,
которые отрисовываются в цикле – лестница, забор, узор на доме, трава у дома, и т.п.
Сделайте всё в цвете.
Задача 6*. Реализовать 4+ рисунка из картинок ниже
Задача 7**. Реализовать все 10 рисунков из картинок ниже.
65. ЛР7 – оформление
Для сдачи домашней работы нужно иметь:1) Блок схемы всех реализованных циклов DO WHILE
2) Расчеты всех нарисованных картинок.
66.
67. Рисуем много линий
case WM_PAINT:{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
int x1 = 10, y1 = 100;
int x2 = 300, y2 = 100;
int i = 0;
do {
MoveToEx(hdc, x1, y1, NULL);
LineTo(hdc, x2, y2);
y1 = y1 - 5;
y2 = y2 + 10;
i++;
} while (i < 16);
EndPaint(hWnd, &ps);
}
68. Цветное перо
case WM_PAINT: {PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
HPEN hPen;
int x = 10;
int r = 0;
do {
hPen = CreatePen(PS_SOLID, 1, RGB(r, 0, 0));
SelectObject(hdc, hPen);
MoveToEx(hdc, x, 10, NULL);
LineTo(hdc, x, 110);
DeleteObject(hPen);
x += 1;
r += 2;
} while (x <= 125);
EndPaint(hWnd, &ps);
}
69. Цветное перо
case WM_PAINT: {PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
HPEN hPen;
int x = 10;
int r = 0;
do {
hPen = CreatePen(PS_SOLID, 1, RGB(r, r, r));
SelectObject(hdc, hPen);
MoveToEx(hdc, x, 10, NULL);
LineTo(hdc, x, 110);
DeleteObject(hPen);
x += 1;
r += 2;
} while (x <= 125);
EndPaint(hWnd, &ps);
}
70.
71. Про Сквозной проект
Кому хочется ЕЩЁ!Кто хочет 4+ или 5!
Кто хочет реально стать реальным программистом!
Намек – сегодня.
Детали – через неделю!
Кому совсем невтерпеж (если все лабы сделали!! - пишите в личку)
72. ИТОГО по лекции 4
1.2.
3.
4.
5.
6.
7.
8.
9.
Есть задачи, в которых что-то повторяется
Такие задачи ЧАСТО можно решить при помощи цикла
Узнали, что существует цикл DO WHILE
Узнали как работает цикл DO WHILE
Узнали как выглядит блок-схема цикла DO WHILE
Узнали что такое трассировка цикла DO WHILE.
Узнали, что можно создавать рисунки используя DO WHILE.
Узнали что нужно делать в ЛР6 и ЛР7.
Услышали про Сквозной проект