Измерение информации


Задача из «Арифметики» Магницкого



бет66/94
Дата27.09.2023
өлшемі11,54 Mb.
#110921
түріУрок
1   ...   62   63   64   65   66   67   68   69   ...   94
Задача из «Арифметики» Магницкого.
Некто продал лошадь за 156 рублей. Но покупатель, приобретая лошадь, раздумал ее покупать и возвратил продавцу, говоря:
- Нет мне расчета, покупать за эту цену лошадь, которая таких денег не стоит.
Тогда продавец предложил другие условия:
- Если, по-твоему, цена лошади высока, то купи только ее подковные гвозди. Лошадь же тогда получишь в придачу бесплатно. Гвоздей в подкове шесть. За первый гвоздь дай мне всего ¼ копейки, за второй ½ копейки. За третий 1 копейку и т. д.
Покупатель, соблазнившись низкой ценой и желая даром получить лошадь, принял условия продавца, рассчитывая, что за эти гвозди придется уплатить не более 10 рублей.
Проблемная ситуация:
верно ли, что за гвозди придется уплатить не более 10 рублей?
S = 1/4+ 1/2 + 1 + 2 + 4 + ... =
=2-2 + 2-1 + 20+21+ 22 + ... +221


Работа в группах
 
Составить блок-схему и написать код программы, результат работы которой представлен в таблице:

i

1

2

3

4

S

1

5

14

30

 
1) Запишите математическую модель решения задачи
2) Какие действия повторяются?
3) Какая переменная является параметром цикла – счетчиком?
4) Какой тип данных нужно указать при описании счётчика?
5) Составьте блок-схему
 
Афиширование работы групп
Работа в парах
Определить значение переменной s после выполнения фрагмента программы:
int i, s=0;
for (i=0; i<10, i++)
s=s+1;
Ответ: s=10
int i, s=0;
for (i=0; i<10, i++)
s=s+i;
Ответ: s=45
int i, s=0;
for (i=0; i<10, i++)
if (i%2= = 0)
s=s+i;
Ответ: s=20
 
Использование оператора цикла в графике
В графике оператор цикла с параметром используется для рисования, для организации движения.
 
Используем графические примитивы:
MoveToEx(hdc, x, y, NULL) - устанавливает текущую позицию пера
LineTo(hdc, x, y) - рисует линию из текущей позиции в точку x, y
Rectangle(hdc, x1, y1,x2, y2); - рисует прямоугольник
Ellipse(hdc, x1, y1, x2, y2); - рисует овал
 
Запускаем Win32GUI project в приложении CodeBlocks, используем для включения графического режима команды:
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
В основную часть записываем:
case WM_PAINT:
{
hdc = BeginPaint(hwndDlg, &ps) ;
GetClientRect(hwndDlg, &rect);
{
for (int i=1;i<=100;i+=10)
{
if(MoveToEx(hdc, 90, 10, NULL)); // установить текущую позицию пера
Ellipse(hdc, i, 10,i+20, 30);
}
EndPaint (hwndDlg, &ps);
} } return TRUE;
 
И в итоге получаем:

 
Самостоятельно измени программу так, чтобы на экран выводились пять прямоугольников со стороной 50 точек


Достарыңызбен бөлісу:
1   ...   62   63   64   65   66   67   68   69   ...   94




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет