
МУНИЦИПАЛЬНОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ДОПОЛНИТЕЛЬНОГО ОБРАЗОВАНИЯ ДЕТЕЙ
«СТАНЦИЯ ЮНЫХ ТЕХНИКОВ ГОРОДА ЕВПАТОРИИ РЕСПУБЛИКИ КРЫМ»
(МБОУДОД "СЮТ")

297402, Российская Федерация, Республика Крым, город Евпатория, ул. Революции, д. 75, тел. (06569) 3-03-30,
е-mail: mboudodsut@bk.ru
План-конспект учебного занятия
кружок «Компьютер и информационные технологии», группа 2 – А
Тема учебного занятия: «Решение задач на Паскале (массивы)».
Цель учебного занятия: формирование у детей знаний и умений работы с языком программирования Pascal, организация работы по усвоению детьми основных понятий, принципов работы с данным языком.
Задачи учебного занятия:
Образовательная:
проконтролировать степень усвоения основных понятий, принципов работы с языком программирования Pascal, изученных и сформированных на предыдущих занятиях;
обеспечить усвоение основных задач, входящих в содержание темы учебного занятия;
научить создавать программы с использованием одномерного и двумерного массивов, а именно, определять сумму элементов массива, находить наибольший (наименьший) элемент массива, создавать новый массив, удовлетворяющий некоторому условию, формировать и выводить на экран массив, элементы которого заданы датчиком случайных чисел, находить номер наименьшего элемента в массиве, заданного датчиком случайных чисел и др.;
формировать умение правильно и грамотно выражать свои мысли.
Развивающая:
развивать творческие способности, память, мышление обучающихся, навыки индивидуальной практической деятельности.
Воспитательная:
воспитывать аккуратность, внимательность, вежливость, дисциплинированность и бережное отношение к вычислительной технике.
Тип учебного занятия: формирование новых знаний, навыков и умений.
Методы работы: объяснительно-иллюстративный, практическая работа.
Формы работы: индивидуальная, групповая.
Оборудование: персональные компьютеры, доска, мел.
Дидактические материалы: карточки с заданиями.
Ход учебного занятия.
Организационный момент;
ТБ при работе за компьютером;
Актуализация опорных знаний:
Мотивация учебной деятельности обучающихся:
Выполнение практической работы;
Физкультминутка;
Итоги учебного занятия:
Вы научились создавать программы с использованием одномерного и двумерного массивов, а именно, определять сумму элементов массива, находить наибольший (наименьший) элемент массива, создавать новый массив, удовлетворяющий некоторому условию, формировать и выводить на экран массив, элементы которого заданы датчиком случайных чисел, находить номер наименьшего элемента в массиве, заданного датчиком случайных чисел и др.
1. Организационный момент.
Приветствие, проверка присутствующих. Объяснение хода учебного занятия.
2. ТБ при работе за компьютером.
3. Актуализация опорных знаний:
Основные принципы работы с языком Pascal.
Pascal – один из самых известных языков программирования. Создан в 1968 – 1969 годах швейцарским ученым Никлаусом Виртом, был назван в честь французского математика и физика Блеза Паскаля, и используется для обучения программированию по сей день.

Перед началом работы следует напомнить, что язык Pascal – это совокупность трёх составляющих: алфавита, синтаксиса (правил написания объектов языка) и семантики (правил использования этих объектов).
Алфавит Pascal состоит из:
Прописных и строчных букв латиницы: A...Z, a…z;
Цифр: 0...9;
Специальных символов: + — * / = .,:; ‘ # ( ) { } [ ] и их комбинаций: «=» «
Задача же синтаксиса и семантики состоит в том чтобы, правильно написать раздел программы и правильно составить ее структуру, в противном же случае ваша программа будет работать неправильно (или же не работать вовсе!).
Структура программы выглядит так:
Program «имя программы»; — заголовок программы;
(Примечание: в конце строки ставится точка с запятой, не во всех, но в большинстве)
Uses (название библиотеки); здесь подключаются библиотеки, которые дают дополнительные возможности при создании программ;
Label (имя метки); здесь, если необходимо, прописываются метки, позволяющие переходить в разные места программы (о них позже);
Const тут указываем переменные с постоянной величиной, например, p=3.14;
Var тут через запятую перечисляем все переменные, а затем, указываем тип данных (Пример: Var: K, L, M: integer; N, O: real; (если несколько типов));
Begin (здесь без точки с запятой)
Дальше следует основной блок программы;
end. – конец программы (обязательно после “end” точка, если только это конец программы, а не операторные скобки).
Следует заметить, что из вышеперечисленных разделов обязательными есть только «Var», «Begin» и «end», остальные же могут применяться, если это требуется в ходе выполнения поставленной задачи.
Массивы.
В программировании даже при написании самых простых программ возникает понятие массивов когда появляется необходимость в большом количестве переменных.
Обычно они разные по типам и по использованию, но бывают ситуации, когда эти переменные одинаковы и их необходимо очень большое количество.
Представим работу такой программы, как нахождение среднего арифметического среди 100 чисел. Что нам понадобится для написания такой программы? Конечно, сами числа. Для хранения 100 чисел мы должны использовать 100 переменных. Описать их можно, скажем, следующим образом: var n1,n2,n3,n4,n5, n6,n7, ..., n100: Integer; Это будет выглядеть крайне громоздко.
Вот здесь и возникает понятие массивов.
Массив - это на самом деле одна переменная, но она содержит в себе большое количество отдельных элементов, того типа, который определит программист, и столько, сколько он захочет. (При этом размер массива несколько ограничен). Это означает, что, заведя переменную-массив, мы как бы создаем цепочку переменных. После чего мы можем обратиться к любому элементу этой цепочки: прочитать его, изменить, сделать с ним все, что можно сделать с обычной переменной.
Массив - это переменная и как все переменные описывается в разделе var программы.
Описание переменной - массива состоит из:
Имени переменной;
Служебного слова Array, означающего "массив";
Описания размера массива. Диапазон записывается в квадратных скобках - [ ]. Внутри пишется сам диапазон, в виде двух чисел, разделенных двоeточием: начало..конец;
Задание типа начинается со служебного слова of.
Массив - это структура данных, которая представляет собой совокупность фиксированного размера и конфигурации упорядоченных однородных независимых переменных.
Массив относится к так называемым структурированным данным, то есть таких, которые имеют фиксированную внутреннюю структуру (организацию).
Массив характеризуется:
1. Количеством размерностей (количеством координат, необходимых для определения местонахождения нужного элемента массива).
2. Общим идентификатором (именем) для всех элементов массива.
3. Индексом или совокупностью индексов, которые определяют каждый отдельный элемент массива.
Одномерный массив (вектор) - имеет одну размерность.
При обращении к отдельному элементу массива необходимо указать его индекс (местонахождение в массиве):
A[7] i:=7; A[i]
Здесь i - индекс элемента массива, может быть только целого или натурального типа.
Двумерные массивы (матричные) - имеют две размерности, m*n.
Доступ к отдельному элементу массива осуществляется путем определения двух его координат: номера строки i=1..m и столбца j=1..n
Операции предоставления выполняются аналогично:
a[3,9]=8; B:=A[1,1]
В трехмерном массиве для доступа к элементу необходимо указать три индекса A[i,j,k].
Можно создавать массивы с большей размерностью, но работа с массивами, размерность которых превышает 3, существенным образом усложняет алгоритм, поэтому, по возможности, необходимо избегать организации подобных структур данных.
Описание массивов.
Var A:array[1..30] of byte;
S: array[1..30] of string; {или}
SO:array[1..30] of string[12];
Присвоение значений элементам массива:
“A”- A[1]:=5; A[2]:=4; и т.д.
“S” – S[1]:=’Иванов’; S[2]:=’Петров’; и т.д.
Приведём таблицу обозначений и соответствия элементам массива, их значений и индексов:
Номер элемента индекса | 1 | 2 | 3 | 4 | … | I | … | 30 |
Элементы массива “S” | S[1] | S[2] | S[3] | S[4] | … | S[I] | … | S[30] |
Значения элементов | Иванов | Петров | Сидоров | Титов | … | | … | Яковлев |
Элементы массива “A” | A[1] | A[2] | A[3] | A[4] | … | A[I] | … | A[30] |
Значения элементов | 5 | 4 | 5 | 5 | … | | … | 4 |
Если известна зависимость, по которой изменяются значения элементов массива, то присвоение значений удобно проводить в операторах цикла с параметром или с условием.
Например, присвоим значения элементам массива ”y” по зависимости: y=sin(x), где x=Pi*i/180, 0i
For i:=0 to 180 Do y[i]:=sin(Pi*i/180);
Присвоим случайные значения в диапазоне от -30 до +40 ста элементам массива “R”:
Randomize;
For i:=1 to 100 Do R[i]:=-30+Random(71);
Присвоим значения семи элементам массива “A” оператором Readln;
For i:=1 to 7 Do
begin
Write(‘Введите A[‘,i,’]= ’);
Readln(A[i]);
end;
При выводе массива на экран удобно размещать данные в виде таблицы – в несколько колонок.
Для вывода обозначений переменных («шапки таблицы») можно использовать операторы вывода символов в цикле, например,
For j:=1 to 66 do Write(‘-’); Writeln;
For j:=1 to 3 do Write(‘| Фамилия | оценка |’); Writeln;
For j:=1 to 66 do Write(‘-’); Writeln;
Вывод значений ста элементов массивов “S” и “A” в три пары колонок произведём операторами:
for j:=1 to 100 do
Begin
Write(‘|’,s[i]:11,’|’,a[i]:8,’|’);
if (i mod 3) = 0 Then Writeln;
if (i mod 60) = 0 Then Readln;
end;
В этом случае данные таблицы полностью не умещаются на экране и можно задержать прокрутку экрана при выводе данных, применяя оператор Readln после вывода, например, 20 строк.
4. Мотивация учебной деятельности обучающихся:
Создавая Паскаль, Вирт преследовал 2 цели:
во-первых, разработать язык, пригодный для обучения программированию как систематической дисциплине;
во-вторых, реализация языка должна быть эффективной и надежной на существующих вычислительных машинах.
Одним из достоинств языка Pascal является то, что он воплотил в себе идею структурного программирования, суть которой заключается в том, что с помощью нескольких конструкций можно выразить в принципе любые алгоритмы: линейные, ветвление, циклические конструкции.
Это был самый первый простой язык (ord pascal) для программирования, помогающий решить множество практических задач прошлого столетия (1970 год). Он был разработан группой ученых. С расширением платформ были созданы новые версии этой программы, а Pascal стал классическим языком программирования.
5. Выполнение практической работы.
Задача 1. Определить сумму элементов массива. Найти наибольший (наименьший) элемент массива. Создать новый массив, удовлетворяющий некоторому условию.
Решение.
Program zadacha1;
var A:array[1..30] of integer;
i,j,k:integer;
s:real;
s:=0;
for i:=1 to 100 do s:=s+a[i]; {s – сумма элементов массива}
a_max:=a[1];
for i:=1 to 100 do {поиск наибольшего элемента a[j]}
if a[i]a_max then begin a_max:= a[i]; j:= i; end;
j:=0; k:=0;
for i:=1 to 100 do {}
if a[i]=0 then
begin
j:= j +1;
b[j]:= a[i];
end;
else
begin
k:=k+1;
c[k]:=a[i];
end;
j:=0;
k:=8;
for i:=1 to 100 do {создание массива номеров “M” для элементов: a[i] a[k]}
if a[i] a[k] then
begin
j:=j+1;
M[j]:=i;
end.
Задача 2. Сформировать и вывести на экран массив, элементы которого заданы датчиком случайных чисел на интервале [-19, 26] (размер произвольный).
Найти произведение элементов с нечетными номерами.
Решение.
Program proisvednechet;
Var a: array[1..100] of integer;
i, n, p: integer;
Begin
Write (‘Сколько элементов? ’); Readln (n);
P:=1;
For i=1 to n do
begin
a[i]:= Random(46)-19;
writeln (a[i],’ ‘);
if i mod 2 0 then P=P*a[i];
end;
Writeln(‘Произведение элементов с нечетными номерами:’, P);
End.
Задача 3. Сформировать и вывести на экран массив, элементы которого заданы датчиком случайных чисел на интервале [-56, 47] (размер произвольный).
Найти произведение элементов с четными номерами, которые превосходят
некоторое число t.
Program proisvedchetbolt;
Var a: array[1..100] of integer;
i, n, p, t: integer;
Begin
Write (‘Сколько элементов? ’); Readln (n);
P:=1;
For i=1 to n do
begin
a[i]:= Random(104)-56; writeln (a[i],’ ‘);
if (i mod 2 = 0) and (a[i]t) then P=P*a[i];
end;
Writeln(‘Произведение элементов с четными номерами, превосходящие число
t:’, P);
end.
Задача 4. Найти номер наименьшего элемента в массиве, заданного датчиком случайных чисел на интервале [-20, 25]. Размер произвольный.
Program numberminim;
Var a: array[1..100] of integer;
i, n, num, min: integer;
Begin
Write (‘n=’); Readln (n);
For i:=1 to n do
begin
a[i]:= Random(46)-20;
writeln (a[i]);
end;
min:=a[1];
num:=1;
For i:=2 to n do
If a[i]
begin
min:=a[i];
num:=i;
end;
Writeln(‘ номер наименьшего элемента: ‘,num);
end.
Задача 5. В заданном одномерном массиве, состоящем из n целых чисел, подсчитать количество нулей.
Program kolv0;
Var a: array[1..100] of integer;
i, n, k: integer;
Begin
Write (‘n=’); Readln (n);
For i:=1 to n do
begin
Write(‘a[‘,i,’]=’); readln (a[i]);
if a[i]=0 then k:=k+1;
end;
Writeln(‘количество 0 равно ’, k);
end.
Задача 6. Найти произведение элементов целочисленного одномерного массива с чётными номерами, состоящего из n элементов. Элементы вводятся с клавиатуры.
Program proizved_chet;
Var a: array [1..100] of integer;
i, n, p: integer;
Begin
p:=1;
write ('n='); readln (n);
for i:=1 to n do
begin
write ('a[',i,']='); readln (a[i]);
if i mod 2=0 then p:=p*a[i];
end;
Writeln ('произведение элементов массива с четными номерами равно ',p);
End.
Задача 7. Массив А вводится с клавиатуры. Сформировать новый массив В, состоящий из четных элементов массива А. Элементы вводятся с клавиатуры. Размер n.
Kol – количество элементов в последовательности В;
К – номер элемента последовательности В.
Program newmasiv;
Var a: array[1..100] of integer;
b: array[1..100] of integer;
kol, n, i, k: integer;
Begin
kol:=0; k:=0;
write ('n='); readln (n);
For i:=1 to n do
begin
write(‘a[‘,i,’]=’); readln (a[i]);
if a[i] mod 2=0 then
begin
k:=k+1; b[k]:=a[i]; kol:=kol+1;
end;
end;
if kol=0 then writeln(‘четных элементов нет’) else
for k:=1 to kol do write(‘b[‘,k,’]=’,b[k]);
end;
6. Физкультминутка.
7. Итоги учебного занятия
Ответьте на следующие вопросы:
Что нового Вы узнали, решив задания на учебном занятии?
Задания были сложными? Задания были интересными?
Над изучением каких тем в разделе «Изучение языка программирования Pascal» Вы хотели бы ещё поработать?