Тема: "Составление
программ на языке Турбо Паскаль".
Цели:
1.
Обучать учащихся составлению графических программ в Паскале.
2.
Развивать навыки программирования.
3.
Воспитывать познавательный интерес.
Ход
урока:
Проверка
домашнего задания.
Задача:
Нарисовать на экране фрагмент тетради в
клетку, используя циклические операции.
Решение:
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.
|
|
Задача:
Нарисовать на экране изогнутую сетку:
Решение:
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.
|
|
Вопросы
и задания:
1.
Нарисовать изогнутую сетку в двух противоположных углах экрана.
2.
Нарисовать на экране треугольники при помощи цикла всеми
возможными способами.
Домашнее
задание: Нарисовать изогнутую сетку в четырех углах экрана.
Тема:
"Процедуры. Описание процедур."
Цели:
1.
Ввести понятие процедуры.
2.
Развивать логическое мышление.
3.
Воспитывать интерес к предмету.
Ход
урока:
Проверка
домашнего задания.
Нередко в программах на языке
Паскаль встречаются похожие или повторяющиеся фрагменты. Имеется возможность
оформлять такие фрагменты в виде подпрограмм. Подпрограмме дается
имя, по которому к ней можно обращаться. Использование подпрограмм улучшает
структуру и внешний вид программ, уменьшает вероятность ошибок и облегчает
отладку.
В Паскале имеется два вида
подпрограмм – процедуры и функции.
Заголовок процедуры состоит
из служебного слова Procedure, за которым следует имя процедуры, и
в круглых скобках, список формальных параметров (который
может отсутствовать). После заголовка могут идти те же разделы, что и в
программе.
Общий вид процедуры:
Procedure
Имя [(Список формальных параметров)];
Описательная
часть
Begin
Тело
процедуры
End;
При вызове процедуры ее
формальные параметры заменяются соответствующими физическими.
Фактические
параметры – это параметры, которые передаются процедуре при ее
вызове.
Количество и типы формальных и фактических параметров должно в точности
совпадать.
|
|
Формальные
параметры описываются в заголовке процедуры и определяют тип и место
подстановки фактических параметров. Формальные параметры делятся на два вида:
параметры-переменные и параметры-значения.
Параметры-переменные отличаются
тем, что перед ними стоит служебное слово Var. Они используются тогда, когда
необходимо, чтобы изменения в теле процедуры значений формальных параметров
приводили к изменению соответствующих фактических параметров.
Параметры-значения отличаются
тем, что перед ними слово Var не ставится. Внутри процедуры можно производить
любые действия с параметрами-значениями, но все изменения никак не отражаются
на значениях соответствующих фактических параметров, то есть какими они были до
вызова процедуры, такими же и останутся после завершения ее работы.
Все переменные программы
делятся на глобальные и локальные.
Глобальные переменные объявляются в разделе описания переменных
основной программы.
Локальные переменные объявляются в процедурах и функциях. Таким
образом, локальные переменные «живут» только во время работы подпрограммы.
Пример:
Составить программу для вычисления а n.
Целые числа а и n вводятся с клавиатуры.
Решение:
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.
|
Процедура в языке Паскаль
вызывается как оператор, состоящий из имени процедуры. В круглых скобках
записываются фактические параметры. В нашем примере формальные параметры x, y,
st принимают значения фактических параметров a,n,s соответственно. После завершения
работы процедуры переменные а и n сохраняют те же значения, что и при вызове, а
s получит новое значение.
Вопросы
и задания:
1.
Нарисовать на экране последовательность из 7 одинаковых
прямоугольников разного цвета.
2.
Нарисовать на экране 7 последовательных заполненных разным цветом
звезд. Рисование
звезды оформить в виде отдельной процедуры.
3.
Нарисуйте диагональ экрана, состоящую из 15 разноцветных
закрашенных пятиугольников.
Домашнее задание: конспект, задача.
Тема:
"Составление программ на языке Турбо Паскаль".
Цели:
1.
Совершенствовать навыки программирования.
2.
Развивать логическое мышление.
3.
Воспитывать познавательный интерес.
Ход
урока:
Проверка
домашнего задания
Задача:
Нарисуйте «лес», состоящий из нескольких
рядов «ёлочек», сложенных из треугольников.
Решение:
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.
|
|
Вопросы
и задания:
1.
Напишите функцию перевода часов в секунды.
2.
Напишите функцию для преобразования времени, выраженного в сутках,
часах,
минутах и секундах просто в секунды.
Домашнее
задание: конспект, задача.
Тема: "Двумерные массивы в Паскаль. Изменение
значений элементов. Заполнение по правилу."
Цели:
1.
Углублять знания учащихся о двумерных массивах.
2.
Развивать логическое мышление.
3.
Воспитывать интерес к программированию.
Ход
урока:
Проверка
домашнего задания.
Пример:
В массиве размерностью nхm к элементам четных
столбцов прибавить элемент первого столбца соответствующей строки.
Решение:
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;
|
Пример:
Заменить все отрицательные элементы на
противоположные.
Решение:
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;
|
Пример:
Заполнить массив nхm змейкой следующим
образом:
Решение:
Чтобы заполнить массив в таком порядке, нужно
ввести правило заполнения: если ряд четный, то a[I,j]=(i- 1)*m+j, если ряд
нечетный, то a[I,j]=i*m-j+1. По этому правилу составим процедуру:
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;
|
Вопросы
и задания:
1.
Последний отрицательный элемент каждого столбца массива заменить
нулем.
2.
Составить программу заполнения и вывода на экран таблицы
умножения.
3.
К элементам столбца К1 прибавить элементы столбца К2.
Домашнее
задание: конспект, задача.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.