Урок № 20 Дата _________________
Тема: Выполнение практических заданий по темам учебного предмета «География»
Цели урока:
• развитие логического и алгоритмического мышления.
Тип урока: комбинированный.
Учащиеся должны уметь применять знания при составлении линейные программы с использованием графических примитивов.
Программное и методическое обеспечение урока: система программирования PascalABC; учебное пособие «Информатика, 11», § 8.2 (примеры 1 – 3) .
Ход урока
1. Актуализация знаний предыдущего урока (репродуктивный метод обучения в форме фронтального опроса). Предложите учащимся ответить на следующие вопросы:
- Какие модули необходимо подключить, чтобы работать с текстом и графикой в одном окне?
Совмещать работу с текстом и графикой в одном окне можно, подключив модули crt и GraphABC одновременно.
- Изображение каких форматов можно загружать в среде РаscalABC?
Загружать можно рисунки в форматах ВМР, JPG, GIF, PNG.
Процедура DrawPicture(mn, x, y) выводит рисунок с описателем nm в позицию (x,y) графического окна.
- С помощью какой процедуры можно масштабируется изображения?
Процедура DrawPicture(mn, x, y, w, h) масштабирует изображения, устанавливая ширину w и высоту h.
Функция LoadPicture(fname) загружает рисунок из файла с именем fname в оперативную память.
Осуществите актуализацию знаний и мотивацию учащихся их практическое использование учебного материала с опорой их знания и умения, полученные на предыдущем уроке.
2. Составление линейных программ (частично-поисковый
метод обучения, фронтальная форма работы). Разберите вместе с учащимися алгоритмы решения задач примеров 1 и 3 § 8.2. В ходе фронтальной беседы обсудите особенности применения команд.
Пример 1. Составить программу, обозначающую на карте Беларуси города кругами, площадь которых пропорциональна количеству жителей ( Минск – 1700 тыс. чел., Гомель – 500 тыс. чел, Могилев – 330 тыс. чел., Витебск – 340 тыс. чел., Гродно – 320 тыс.чел., Брест – 300 тыс. чел).
Перед тем как рассмотреть алгоритм учитель предлагает ученикам самостоятельно прочитать программу.
Program Geograf1;
usesGraphABC; // подключениемоделей
varkarta, R, A: integer; // описание переменных
begin
SetWindowSize(520,480); // размеры окна (устанавливает ширину и высо ту графического окна
karta:=LoadPicture('belarus.gif'); // загрузка изображения из файла
DrawPicture(karta,10,10); // вывод изображения в позицию (10,10)
setBrushColor(clRed); // цвет пера
A:=1700; R:=round(sqrt(A/pi)); circle(250, 225, R); // А – количество человек
A:=500; R:=round(sqrt(A/pi)); circle(405, 345, R); // R – радиускруга
A:=330; R:=round(sqrt(A/pi)); circle(375, 215, R); // circle – рисует окружность с центром в точке (250,225) и радиусом R
A:=340; R:=round(sqrt(A/pi)); circle(360, 105, R);
A:=320; R:=round(sqrt(A/pi)); circle(55, 235, R);
A:=300; R:=round(sqrt(A/pi)); circle(40, 385, R);
end.
Пример 3. Составить программу, которая вычисляет и показывает на карте среднюю плотность населения областей Беларуси.
Необходимые данные будут храниться в массивах:
А[i] – название областей;
N[i] – численность населения;
S[i] – площадь;
x[i], y[i] – координаты символов.
program Geograf3;
usescrt, GraphABC;
constA : array [1..6] ofstring = ('Брестская ', 'Витебская ', 'Гомельская ', 'Гродненская ', 'Минская ', 'Могилевская '); // название областей (символьный массив)
N: array[1..6] ofinteger = ( 1440, 1300, 1500, 1100, 1500, 1200); // численность населения
S: array[1..6] of real = (32.8, 40.1, 40.4, 25.1, 40.8, 29.1); // площадь
x: array[1..6] of integer = (140, 315, 365, 65, 200, 380);
y: array[1..6] of integer = (320, 80, 290, 230, 180, 175); // координатысимволов
var
karta, ris, k, i: integer;
p: real;
begin
setWindowSize(520,480); // размерыокна(количество пикселей)
karta:= LoadPicture ('belarus.gif'); // загрузкаизображенияизфайла
DrawPicture(karta, 10, 30); // вывод изображения в позицию (10,30)
ris:= LoadPicture('man.gif');// загрузкаизображенияизфайла
SetPictureTransparent(ris, true); // прозрачный фон для изображения человечка
Writeln('Плотностьнаселения, тыс. человекнакв. км ');
For i:=1 to 6 do begin //выполнениецикла
p:=N[i]/S[i]; // позволяет вычислить плотность населения
k:=round(p); // расчет масштаба символа
Writeln(A[i]:11, p:5:1); // вывод название области, для этого отводиться 11 позиций и плотности населения, для этого отводиться 5 позиций до запятой и одна после
DrawPicture(ris, x[i], y[i], k, 2*k); // вывод изображения c координатами (х,у) и применением ширины равной – k, а высоты – 2*k.
end;
end.
3. Самостоятельная работа. Предложите учащимся самостоятельно или под руководством учителя загрузить и выполнить программу примера 1 и3 из § 8.2. Картинки берутся из папки на диске Е:/ Файлы … / 11 класс /основы алгоритмизации и програмирования/ работа 06.
Дополнительно любознательным учащимся можно предложить выполнить на стр. 94 упражнения(а). Заготовка для упражнение берется в той же папке и там же есть файл географ4, где написана шапка и заданы координаты.
Задача. Составьте программу, которая выводит карту Беларуси и обозначает национальные парки квадратами, размеры которых пропорциональны площади парка: Беловежкая пуща – 87,5 тыс. га, Березинский – 85,2 тыс. га, Полесский – 216,1 тыс. га, Припятский – 85,8 тыс. га, Нарочанский – 94 тыс. га.
program Geograf4;
Usescrt, GraphAbc;
Const S: array[1..5] of real = (87.3, 85.2, 216.1, 85.8, 94); // площадипарка
A: array[1..5] ofstring = ('Беловежская пуща', 'Березинский ',
'Полесский ', 'Припятский ', 'Нарочанский '); // название парков
x: array[1..5] of integer = (75, 345, 395, 310, 255);
y: array[1..5] of integer = (295, 210, 370, 350, 135); // координаты
Var
pic, d, i: integer;
Begin
setWindowSize(600,480); // размеры окна (количество пикселей)
pic:=LoadPicture ('belfiz.gif'); // загрузка изображения из файла
DrawPicture(pic,10,10); // вывод изображения в позицию (10, 10)
setBrushColor(clRed);
Writeln('Площадь заповедников, тыс. га ');
For i:=1 to 5 do begin
d:= round(sqrt(2*sqr(sqrt(S[i])))); // диаметрквадрата
Writeln(A[i]:20, S[i]:5:1);
Rectangle (x[i], y[i], x[i] + d, y[i] + d ); // квадрат
end;
еnd.
4. Домашнее задание. §8.2 (расс. пример 2, упр. а стр. 94)
4. Подведение итогов урока. Подведем итоги самостоятельной работы, даем оценку успешности достижения цели.