Курс «Основы программирования» Власенко Олег Федосович SimbirSoft
Программа 2б в работе
Задача 1б - программа
Термины
Цикл do while
Лабораторная работа №6
Задача 1. Ряд натуральных чисел
Задача 1. Ряд натуральных чисел
Задача 1. Ряд натуральных чисел – трассировка(0)
Задача 1. Ряд натуральных чисел – трассировка(1)
Задача 1. Ряд натуральных чисел – трассировка(2)
Задача 1. Ряд натуральных чисел – трассировка(3)
Задача 1. Ряд натуральных чисел – трассировка(4)
Задача 1. Ряд натуральных чисел – трассировка(5)
Задача 1. Ряд натуральных чисел – трассировка(6)
Задача 1. Ряд натуральных чисел – трассировка(7)
Задача 1. Ряд натуральных чисел – трассировка(8)
Задача 1. Ряд натуральных чисел – трассировка(9)
Задача 1. Ряд натуральных чисел – трассировка(10)
Задача 1. Ряд натуральных чисел – трассировка(11)
Задача 1. Ряд натуральных чисел – трассировка(12)
Задача 1. Ряд натуральных чисел – трассировка(13)
Задача 1. Ряд натуральных чисел – трассировка(14)
Задача 1. Ряд натуральных чисел – трассировка(15)
Задача 1. Ряд натуральных чисел – трассировка(16)
Задача 1. Ряд натуральных чисел
Задача 1. Ряд натуральных чисел
Задача 2. Степени двойки
Задача 2. Степени двойки
Задача 2. Степени двойки - трассировка
Задача 2. Степени двойки
Задача 3*. Деньги на счете (сложные проценты)
Задача 3*. Деньги на счете (сложные проценты)
Задача 3*. Деньги на счете (сложные проценты)
Задача 3*. Деньги на счете (сложные проценты)
Домашнее задание ЛР6
ЛР6 – оформление
Лабораторная работа №7
Задача 1
Задача 1: Решение
Задача 2
Задача 2: Решение
Задача 3*
Задача 4
Задача 4: Решение
Задача 4.1*
Домашнее задание ЛР7
ЛР7 – оформление
Рисуем много линий
Цветное перо
Цветное перо
Про Сквозной проект
ИТОГО по лекции 4
2.86M
Category: programmingprogramming

Цикл DO WHILE. Использование DO WHILE в графике

1. Курс «Основы программирования» Власенко Олег Федосович SimbirSoft

Лекция 4.
Цикл DO WHILE. Использование DO WHILE в
графике.
ЛР 6. Цикл DO WHILE
ЛР 7. Рисование при помощи DO WHILE

2.

3.

Задача 1а
Нужно нарисовать картинку (см рисунок)

4.

Программа 1.1

5.

Программа 1.2

6.

Программа 1.3

7.

Задача 2а
Население города увеличивается на 3%
каждый год. В 2014 году население города
составляло 650 000 человек. Напишите
программу, которая выведет на экран
предсказываемую численность населения
города в каждом году, вплоть до 2040.

8.

Программа 2.1

9.

Программа 2.2

10.

Программа 2.3

11.

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 WHILE

23. Задача 1. Ряд натуральных чисел

Вводится N.
Нужно вывести натуральные числа от 1 до N (включительно).

24. Задача 1. Ряд натуральных чисел

Вводится N.
Нужно вывести натуральные числа от 1 до N (включительно).
(Ниже – программа целиком)

25. Задача 1. Ряд натуральных чисел – трассировка(0)

i
n
i<=n
Вывод
Ввод

26. Задача 1. Ряд натуральных чисел – трассировка(1)

i
n
i<=n
Вывод
“n = “
Ввод

27. Задача 1. Ряд натуральных чисел – трассировка(2)

i
n
i<=n
Вывод
“n = “
Ввод
4 <Enter>

28. Задача 1. Ряд натуральных чисел – трассировка(3)

i
n
4
i<=n
Вывод
“n = “
Ввод
4 <Enter>

29. Задача 1. Ряд натуральных чисел – трассировка(4)

i
1
n
4
i<=n
Вывод
“n = “
Ввод
4 <Enter>

30. Задача 1. Ряд натуральных чисел – трассировка(5)

i
1
n
4
i<=n
Вывод
“n = “
“1 “
Ввод
4 <Enter>

31. Задача 1. Ряд натуральных чисел – трассировка(6)

i
1
2
n
4
i<=n
Вывод
“n = “
“1 “
Ввод
4 <Enter>

32. Задача 1. Ряд натуральных чисел – трассировка(7)

i
1
2
n
i<=n
4
Вывод
“n = “
2 <= 4 +
“1 “
Ввод
4 <Enter>

33. Задача 1. Ряд натуральных чисел – трассировка(8)

i
1
2
n
i<=n
4
Вывод
“n = “
2 <= 4 +
“1 “
“2 ”
Ввод
4 <Enter>

34. Задача 1. Ряд натуральных чисел – трассировка(9)

i
1
2
3
n
i<=n
4
Вывод
“n = “
2 <= 4 +
“1 “
“2 ”
Ввод
4 <Enter>

35. Задача 1. Ряд натуральных чисел – трассировка(10)

i
1
n
i<=n
4
Вывод
“n = “
2
2 <= 4 +
“1 “
3
3 <= 4 +
“2 ”
Ввод
4 <Enter>

36. Задача 1. Ряд натуральных чисел – трассировка(11)

i
1
n
i<=n
4
Вывод
“n = “
2
2 <= 4 +
“1 “
3
3 <= 4 +
“2 ”
“3 ”
Ввод
4 <Enter>

37. Задача 1. Ряд натуральных чисел – трассировка(12)

i
1
n
i<=n
4
Вывод
“n = “
2
2 <= 4 +
“1 “
3
3 <= 4 +
“2 ”
4
“3 ”
Ввод
4 <Enter>

38. Задача 1. Ряд натуральных чисел – трассировка(13)

i
1
n
i<=n
4
Вывод
“n = “
2
2 <= 4 +
“1 “
3
3 <= 4 +
“2 ”
4
4 <= 4 +
“3 ”
Ввод
4 <Enter>

39. Задача 1. Ряд натуральных чисел – трассировка(14)

i
1
n
i<=n
4
Вывод
“n = “
2
2 <= 4 +
“1 “
3
3 <= 4 +
“2 ”
4
4 <= 4 +
“3 ”
“4 ”
Ввод
4 <Enter>

40. Задача 1. Ряд натуральных чисел – трассировка(15)

i
1
n
i<=n
4
Вывод
“n = “
2
2 <= 4 +
“1 “
3
3 <= 4 +
“2 ”
4
4 <= 4 +
“3 ”
5
“4 ”
Ввод
4 <Enter>

41. Задача 1. Ряд натуральных чисел – трассировка(16)

i
1
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 + Трассировка в VS

44. Задача 2. Степени двойки

Нужно вывести степени числа 2 от 0 до 10

45. Задача 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 WHILE

56. Задача 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.
Услышали про Сквозной проект
English     Русский Rules