Список тем:
|
|
Примеры уроков:
Урок 19. “Графический режим работы в Турбо Паскале. Система координат”
Тема: “Графический режим работы в Турбо Паскаль. Система координат.”
Цели:
- Знакомить учащихся с основами работы в графическом режиме.
- Развивать навыки программирования.
- Воспитывать интерес к предмету.
Ход урока:
Проверка домашнего задания.
Для работы графического режима в языке Паскаль необходим модуль GRAPH.TPU, который подключается к программе командой: Uses Graph.
Для рисования прямых, окружностей и др. геометрических фигур нужно перевести экран в графический режим. Включается (инициализируется) графический режим командой: InitGraph.
Простейшая программа, использующая графические возможности, может иметь вид:
[stextbox id=’alert’ bgcolor=’e9ed9a’ cbgcolor=’e9ed9a’ bgcolorto=’e9ed9a’ cbgcolorto=’e9ed9a’ image=’null’]uses graph;
var a,b:integer;
begin
a:=detect; {Автоопределение графического драйвера}
initgraph(a,b,”); {Включить графический режим, граф. драйвер в текущем каталоге}
Line(0,0,640,480); {Нарисовать линию}
readln;
closegraph; {Выключить графический режим}
end.[/stextbox]
CloseGraph – выключение графического режима.
С графическим экраном связана система координат следующего вида:
Обратите внимание: начало координат находится в левом верхнем углу. Привычная для нас система координат «перевернута».
Длина оси Х – 640 точек, Y – 480 точек.
Line(x1,y1,x2,y2:integer) – рисовать линию, соединяющую точки с координатами (х1,у1) и (х2,у2).
Вопросы и задания:
- Нарисовать две диагонали экрана.
- Нарисовать на экране прямоугольник, треугольник, призму, ромб.
- Нарисовать прямыми линиями свое имя.
- Нарисовать свой почтовый индекс.
- Нарисовать прямыми линиями своё имя (инициалы).
Домашнее задание: конспект, задача.
Урок 25. “Составление программ на языке Турбо Паскаль”
Тема: “Составление программ на языке Турбо Паскаль”.
Цели:
- Обучать учащихся составлению графических программ в Паскале.
- Развивать навыки программирования.
- Воспитывать познавательный интерес.
Ход урока:
Проверка домашнего задания.
Задача:
Нарисовать на экране фрагмент тетради в клетку, используя циклические операции.
Решение:
[stextbox id=’alert’ bgcolor=’e9ed9a’ cbgcolor=’e9ed9a’ bgcolorto=’e9ed9a’ cbgcolorto=’e9ed9a’ image=’null’]Program Ex26;
uses graph;
var gd,gm,i,k:integer;
begin
gd:=vga;
gm:=vgahi;
initgraph(gd,gm,”);
k:=0;
for i:=1 to 64 do
begin
inc(k,10);
Line(k,0,k,480);
Line(0,k,640,k);
end;
readln;
closegraph;
end.[/stextbox]
Задача:
Нарисовать на экране изогнутую сетку:
Решение:
[stextbox id=’alert’ bgcolor=’e9ed9a’ cbgcolor=’e9ed9a’ bgcolorto=’e9ed9a’ cbgcolorto=’e9ed9a’ image=’null’]Program Ex27;
uses graph;
var gd,gm,i,k:integer;
begin
gd:=vga;
gm:=vgahi;
initgraph(gd,gm,”);
k:=0;
for i:=1 to 25 do
begin
inc(k,20);
Line(0,k,k,480);
end;
readln;
closegraph;
end.[/stextbox]
Вопросы и задания:
- Нарисовать изогнутую сетку в двух противоположных углах экрана.
- Нарисовать на экране треугольники при помощи цикла всеми возможными способами.
Домашнее задание: Нарисовать изогнутую сетку в четырех углах экрана.
Урок 34. “Процедуры. Описание процедур”
Тема: “Процедуры. Описание процедур.”
Цели:
- Ввести понятие процедуры.
- Развивать логическое мышление.
- Воспитывать интерес к предмету.
Ход урока:
Проверка домашнего задания.
Нередко в программах на языке Паскаль встречаются похожие или повторяющиеся фрагменты. Имеется возможность оформлять такие фрагменты в виде подпрограмм. Подпрограмме дается имя, по которому к ней можно обращаться. Использование подпрограмм улучшает структуру и внешний вид программ, уменьшает вероятность ошибок и облегчает отладку.
В Паскале имеется два вида подпрограмм – процедуры и функции.
Заголовок процедуры состоит из служебного слова Procedure, за которым следует имя процедуры, и в круглых скобках, список формальных параметров (который может отсутствовать). После заголовка могут идти те же разделы, что и в программе.
Общий вид процедуры:
Procedure Имя [(Список формальных параметров)];
Описательная часть
Begin
Тело процедуры
End;[/stextbox]
При вызове процедуры ее формальные параметры заменяются соответствующими физическими.
Фактические параметры – это параметры, которые передаются процедуре при ее вызове.
[stextbox id=’alert’ bgcolor=’afd0db’ cbgcolor=’afd0db’ bgcolorto=’afd0db’ cbgcolorto=’afd0db’ image=’null’]Количество и типы формальных и фактических параметров должно в точности совпадать.[/stextbox]
Формальные параметры описываются в заголовке процедуры и определяют тип и место подстановки фактических параметров. Формальные параметры делятся на два вида: параметры-переменные и параметры-значения.
Параметры-переменные отличаются тем, что перед ними стоит служебное слово Var. Они используются тогда, когда необходимо, чтобы изменения в теле процедуры значений формальных параметров приводили к изменению соответствующих фактических параметров.
Параметры-значения отличаются тем, что перед ними слово Var не ставится. Внутри процедуры можно производить любые действия с параметрами-значениями, но все изменения никак не отражаются на значениях соответствующих фактических параметров, то есть какими они были до вызова процедуры, такими же и останутся после завершения ее работы.
Все переменные программы делятся на глобальные и локальные.
Глобальные переменные объявляются в разделе описания переменных основной программы.
Локальные переменные объявляются в процедурах и функциях. Таким образом, локальные переменные «живут» только во время работы подпрограммы.
Пример:
Составить программу для вычисления а n. Целые числа а и n вводятся с клавиатуры.
Решение:
[stextbox id=’alert’ bgcolor=’e9ed9a’ cbgcolor=’e9ed9a’ bgcolorto=’e9ed9a’ cbgcolorto=’e9ed9a’ image=’null’]Program Ex34;
var a,n:integer;
s:longint;
Procedure Degree(x,y:Integer; Var st:Longint);
Var i:Integer;
begin
st:=1;
For i:=1 to y do st:=st*x;
end;
begin
Writeln(‘Введите 2 числа – основание и показатель степени’);
Readln(a,n);
Degree(a,n,s); {обращение к процедуре}
Writeln(‘Результат ‘,s);
Readln;
end.[/stextbox]
Процедура в языке Паскаль вызывается как оператор, состоящий из имени процедуры. В круглых скобках записываются фактические параметры. В нашем примере формальные параметры x, y, st принимают значения фактических параметров a,n,s соответственно. После завершения работы процедуры переменные а и n сохраняют те же значения, что и при вызове, а s получит новое значение.
Вопросы и задания:
- Нарисовать на экране последовательность из 7 одинаковых прямоугольников разного цвета.
- Нарисовать на экране 7 последовательных заполненных разным цветом звезд. Рисование звезды оформить в виде отдельной процедуры.
- Нарисуйте диагональ экрана, состоящую из 15 разноцветных закрашенных пятиугольников.
Домашнее задание: конспект, задача.
Урок 36. “Составление программ на языке Турбо Паскаль”
Тема: “Составление программ на языке Турбо Паскаль”.
Цели:
- Совершенствовать навыки программирования.
- Развивать логическое мышление.
- Воспитывать познавательный интерес.
Ход урока:
Проверка домашнего задания
Задача:
Нарисуйте «лес», состоящий из нескольких рядов «ёлочек», сложенных из треугольников.
Решение:
[stextbox id=’alert’ bgcolor=’e9ed9a’ cbgcolor=’e9ed9a’ bgcolorto=’e9ed9a’ cbgcolorto=’e9ed9a’ image=’null’]Program Ex36;
uses graph,crt;
var gd,gm,i,k:integer;
ch:char;
Procedure elka(x,y:integer);
begin
Line(x,y,x+10,y+10);
Line(x+10,y+10,x-10,y+10);
Line(x-10,y+10,x,y);
Line(x+5,y+10,x+15,y+20);
Line(x+15,y+20,x-15,y+20);
Line(x-15,y+20,x-5,y+10);
Line(x+10,y+20,x+20,y+30);
Line(x+20,y+30,x-20,y+30);
Line(x-20,y+30,x-10,y+20);
Rectangle(x-3,y+30,x+3,y+35);
end;
begin
gd:=vga; gm:=vgahi;
initgraph(gd,gm,”); k:=0;
for i:=1 to 12 do
begin
Inc(k,50);
elka(k,50); elka(k,100);
elka(k,150); elka(k,200);
elka(k,250); elka(k,300);
elka(k,350); elka(k,400);
end;
readkey; CloseGraph;
end.[/stextbox]
Вопросы и задания:
- Напишите функцию перевода часов в секунды.
- Напишите функцию для преобразования времени, выраженного в сутках, часах, минутах и секундах просто в секунды.
Домашнее задание: конспект, задача.
Урок 50. “Двумерные массивы”
Тема: “Двумерные массивы в Паскаль. Изменение значений элементов. Заполнение по правилу.”
Цели:
- Углублять знания учащихся о двумерных массивах.
- Развивать логическое мышление.
- Воспитывать интерес к программированию.
Ход урока:
Проверка домашнего задания.
Пример:
В массиве размерностью nхm к элементам четных столбцов прибавить элемент первого столбца соответствующей строки.
Решение:
[stextbox id=’alert’ bgcolor=’e9ed9a’ cbgcolor=’e9ed9a’ bgcolorto=’e9ed9a’ cbgcolorto=’e9ed9a’ image=’null’]Procedure Sub(var x:dmyarray);
Var i,j:integer;
Begin
For i:=1 to n do
For j:=1 to m div 2 do
Inc(x[i,2*j], x[i,1]);
End;[/stextbox]
Пример:
Заменить все отрицательные элементы на противоположные.
Решение:
[stextbox id=’alert’ bgcolor=’e9ed9a’ cbgcolor=’e9ed9a’ bgcolorto=’e9ed9a’ cbgcolorto=’e9ed9a’ image=’null’]Procedure Sub2(Var x:dmyarray);
Var i,j:integer;
Begin
For i:=1 to n do
For j:=1 to m do
x[i,j]:=abs(x[i,j]);
End;[/stextbox]
Пример:
Заполнить массив nхm змейкой следующим образом:
Решение:
Чтобы заполнить массив в таком порядке, нужно ввести правило заполнения: если ряд четный, то a[I,j]=(i- 1)*m+j, если ряд нечетный, то a[I,j]=i*m-j+1. По этому правилу составим процедуру:
[stextbox id=’alert’ bgcolor=’e9ed9a’ cbgcolor=’e9ed9a’ bgcolorto=’e9ed9a’ cbgcolorto=’e9ed9a’ image=’null’]Procedure Fill (var x:dmyarray);
var i,j:integer;
begin
for i:=1 to n do
for j:=1 to m do
if i mod 2=1 then x[i,j]:=(i-1)*m+j
else x[i,j]:=i*m-j+1;
end;[/stextbox]
Вопросы и задания:
- Последний отрицательный элемент каждого столбца массива заменить нулем.
- Составить программу заполнения и вывода на экран таблицы умножения.
- К элементам столбца К1 прибавить элементы столбца К2.
Домашнее задание: конспект, задача.