Урок и презентация по теме Язык программирования Паскаль
план-конспект урока по информатике и икт на тему

Завгородняя Оксана Александровна

Конспект урока + Презентация

Скачать:

ВложениеРазмер
Файл yazyk_programmirovaniya_paskal.rar25.74 КБ

Предварительный просмотр:

УНИЦИПАЛЬНОЕ     ОБЩЕОБРАЗОВАТЕЛЬНОЕ     УЧРЕЖДЕНИЕ

СРЕДНЯЯ      ОБЩЕОБРАЗОВАТЕЛЬНАЯ     ШКОЛА № 92

17.11.06                Информатика и ИКТ                11 класс         Урок №20

Раздел программы: «Язык программирования Паскаль»

18 урок

Тема урока: Решение задач с линейными массивами

Тип урока: урок отработки ЗУН

Вид урока: урок межпредметных связей

Технология: личностно - ориентированная технология

Цели урока:

1. Обучающие:

отработка навыков записи программ с использованием линейных массивов путем интеграции знаний и умений, полученных при изучении других предметов, и решения задач с практическим содержанием.

2. Воспитывающие:

воспитание у учащихся мотивов учения, познавательной активности, самостоятельности.

3. Развивающие:

развитие внимания, мыслительной деятельности путем установления общих правил использования линейных массивов в различных областях человеческой деятельности.

Оборудование урока:

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

План урока:

  1. Организационный момент.
  2. Актуализация ЗУН.
  3. Отработка ЗУН путем решения задач.
  4. Самостоятельная работа.
  5. Итоги урока. Домашнее задание.

Ход урока:

1. Организационный момент

приветствие, сообщение целей и плана урока

Учитель:  Тема сегодняшнего урока «Решение задач с линейными массивами» для вас не нова. На предыдущих уроках вы изучили всевозможные операции с массивами и научились реализовывать их на языке программирования Паскаль. Но вот на вопрос, а для чего это все нужно, мы не всегда находили ответ.

        Так вот в ходе сегодняшнего урока ваша задача – отработать ранее приобретенные знания по указанной теме решением задач практической направленности, а моя – доказать вам, что многие области человеческой деятельности могут оказаться связанными с нашей темой.

        А эпиграфом к сегодняшнему уроку будут служить слова великого философа Пестолоцци: «Приведи в своем сознании все по существу взаимосвязные между собой предметы в ту именно связь, в которой они действительно находятся в природе».

        Вы увидите, как взаимосвязано то, о чем мы говорили на уроках информатики, с теми знаниями, которые получили при изучении других предметов, и какая связь между знаниями, полученными на уроках, с повседневной жизнью.

        Работать мы сегодня будем по опорному конспекту, который лежит перед каждым из вас. Кроме него на столе лежит лист бумаги другого цвета с надписью «Мастер». Назван он так не случайно. Только человека, достигшего больших результатов в своей деятельности, можно назвать мастером. Обращаться к этому листу вы будете лишь в том случае, если быстрее остальных справитесь с решением задачи, так как на этом листе даются дополнительные задания. Еще один лист (№2) нам понадобится в конце урока для проведения самостоятельной работы.

2. Актуализация ЗУН

Но так как любое дело следует начинать, лишь хорошо к нему подготовившись, мы начнем урок с разминки.

        Лист №1, задание 1 «Найди ошибки»

var: a: array [4 ; 10] – real;

Учащиеся называют ошибки по одной, после чего появляется исправленный вариант:

var   a: array [10.. 4] of  real;

        Лист №1, задание 2  «Опиши массив»

Опиши целочисленный массив x, состоящий из 25 элементов, диапазон изменения индекса заканчивается 17.

Учащиеся записывают ответ, потом результат проверяется:

var   x: array [7.. 17] of  integer;

После проверки идет обсуждение полученной записи

3. Отработка ЗУН

Размявшись, можно приступить к серьезной работе по решению задач.

Обратимся к задаче №1 на листе № 1. Напомню, что если вы быстрее справитесь с заданием, вы можете работать с дополнительными заданиями на листе «Мастер».

Итак, наша первая задача. Она будет очень актуальна, так как  в вашем возрасте многие из вас озабочены поддержанием фигуры, подсчетом калорий, белков, жиров и углеводов.

Задача 1

Предложено меню:

Продукты

Масса

в граммах

Белки в

100 г

Жиры в

100 г

Углеводы в

100 г

Сосиски

Хлеб

Стакан кефира

Овсяная каша

Шоколад

Борщ

Какао

Рыба

Салат из свежих огурцов

Яблоки

200

50

200

150

50

200

150

200

100

150

11

7

3

15

8

10

5

17

0,8

0,4

25

1

10

25

35

12

-

11

-

-

-

45

6

60

100

35

30

4

1,8

9,3

Определите, достаточное ли количество белков содержит предложенное меню, если известно, что суточная потребность в белках в вашем возрасте 2,5 грамма на 1 кг.

Если отвлечься от нашего предмета, то как бы вы решили задачу?

Узнать, сколько граммов белка достаточно.

Узнать, сколько граммов белка предлагает меню.

Сравнить полученные результаты.

А теперь попробуем решить задачу, используя линейный массив. Для этого обратимся к опорному конспекту и заполним его:

Используемые массивы:

Массив а хранит массу продуктов в граммах, массив b хранит количество белка в 100 гр продукта

Для z кг необходимо белка:

X = 2,5*z

Меню предлагает белка:

Y = Сумма количества белка в каждом продукте

Как определить, достаточно белка или нет?

X <=Y – достаточно

Запишем текст программы в блок ответа, используя полученные выводы

Учащиеся рассказывают, что бы они записали по блокам,

 результат появляется на экране

program primer;

var  a: array [1..10] of integer;

       b: array [1..10] of real;

       i: integer; x,y,z: real;

begin  writeln (‘z = ‘); readln (z);

                 for i:=1 to 10 do

                      begin  write (‘a[‘,  i,  ‘]=‘);

                                 readln (a[i]);

                      end;

                 for i:=1 to 10 do

                      begin  write (‘b[‘,  i,  ‘]=‘);

                                  readln (b[i]);

                      end;


               x:=2,5*z;

                      y:=0;

                      for i:=1 to 10 do y:= y + a[i]*b[i]/100;

                      if (x <= y) then writeln (‘dostatochno!’)

                                        else writeln (‘nedostatochno!’);

                      readln;

     end.

? Пригодились ли в решении задачи по биологии, вернее, диетологии, навыки работы с линейными массивами?

                Да, пригодились навыки по нахождению суммы и произведения элементов массива.

Задача 2

Морскую территорию охраняют 10 судов, месторасположение каждого из которых задается координатами (x,y). На этой территории терпит крушение некое судно, координаты которого известны (a,b). Какое судно необходимо отправить к месту крушения диспетчеру спасательной службы?

Как бы вы решили эту задачу?

Необходимо узнать, какой корабль ближе к месту крушения,

его и отправить

А как определить, какой корабль ближе?

Тот, расстояние от которого до места крушения меньше всего

Как, зная координаты двух точек, найти расстояние между ними?

d =( (x2 – x1)2 + (y2 – y1)2)1/2

Именно с этой формулы и начнем заполнять опорный конспект этой задачи:

Расстояние между точкой с координатами (x,y) и точкой с координатами (a,b):

d =( (x2 – x1)2 + (y2 – y1)2)1/2

Используемые массивы:

Массив x хранит координаты x, массив y хранит координаты y, массив d хранит расстояния

Какую операцию необходимо произвести в массиве?

Определение минимального элемента в массиве

Запишем программу в блок ответа, при этом один ученик поможет нам и наберет программу на языке программирования Паскаль:

program primer;

var  x: array [1..10] of real;

       y: array [1..10] of real;

       d: array [1..10] of real;

       a, b: real;  min:real;

       i, nmin: integer;

begin  writeln (‘a=’); readln (a);

           writeln (‘b=’); readln (b);

           for i:=1 to 10 do

                      begin  write (‘x[‘,  i,  ‘]=‘);

                                 readln (x[i]);

                      end;

           for i:=1 to 10 do

                      begin  write (‘y[‘,  i,  ‘]=‘);

                                  readln (y[i]);

                      end;

           for i:=1 to 10 do d[i]:= SQRT ((SQR(a-x[i]) + SQR(b-y[i]));

           min:=d[1]; nmin:=1;

           for i:=1 to 10 do if (d[i]<min) then begin min:=d[i]; nmin:=i’ end;

           writeln (‘(‘, x:4:2, ‘,’, y:4:2, ‘)’);

           readln;

     end.

Запустим программу с указанными контрольными вводными:

        1(2;7), 2(5;8), 3(7;7), 4(10;7), 5(10;5), 6(9;2), 7(6;1), 8(4;1,5), 9(1;2), 10(1,5;4,5).

            a=5,5    b=4,5

Контрольный результат  (7;7).

Оказывается, информатика и математика, а вместе с ними и судоходство также могут оказаться неразрывно связанными.

О связи информатики и экономики мы говорили не раз. Так вот, следующая задача как раз на экономическую тему. И с ней вам предстоит справиться самостоятельно. Для этого обратимся к листу №2.

4. Самостоятельная работа

Задача: Предприятие, выпускающее рыбные консервы, ведёт строгий учет производительности каждого работника. Определить, сколько работников заслуживают премию по окончании месяца, если месячная норма выпуска продукции одним работником составляет 4400 единиц товара.

Ответьте на вопросы и составьте программу.

? Что удобно хранить в массиве?

        Количество единиц товара, выпущенного одним работником

? Какое действие с массивом необходимо произвести?

        Подсчет количества элементов массива, удовлетворяющих условию:

program primer;

var  a: array [1..10] of real;

        i, n, k: integer;

begin  writeln (‘n=’); readln (n);

           for i:=1 to n do

                      begin  write (‘a[‘,  i,  ‘]=‘);

                                 readln (a[i]);

                      end;

           k:=0;

           for i:=1 to n do  if (a[i]>4400) then k:=k+1;        

           writeln (‘премию заслужили’, k, ‘человек’);

           readln;

     end.

По завершении самостоятельной работы Лист №2 и Лист Мастера собираются учителем.

На экране появляется текст последней программы,

по которому разбираются основные моменты.

5. Итог урока. Домашнее задание

Надеюсь, я смогла вас убедить в том, что линейные массивы могут помочь справиться с задачами из различных области человеческих знаний (обращение к эпиграфу).

И лучше других нам сегодня это доказали… (оценки за урок).

Ну а для того, чтобы дома подготовиться к контрольной работе по пройденной теме, вам необходимо решить Задачу №3 из листа №1.

Домашнее задание:

Для производства вакцины на заводе планируется выращивать культуру бактерий. Известно, что если масса бактерий - x г., то через день она увеличится на (a-bx)x г., где коэффициенты a и b зависят от вида бактерий. Завод ежедневно будет забирать для нужд производства вакцины m г. бактерий. Для составления плана важно знать, как изменяется масса бактерий через 1, 2, 3, ..., 30  дней.

Если исходные данные:

a и b - коэффициенты;

x0 - начальная масса бактерий;

m - масса бактерий, забираемых для нужд производства,

то количество бактерий каждого следующего дня зависит от количества  бактерий предыдущего дня и вычисляется по формуле:

xi+1= xi+(a-b*xi)*xi-m - масса бактерий в следующий день.

Составить программу, выясняющую, возможен ли эксперимент при таких начальных данных в течение 30 дней, или он прекратиться на какой-то день (условие прекращения – масса бактерий в следующий день < или = 0).

program primer;

var  x: array [0..30] of real;

       a, b, m: real;  

       i: integer;

begin  writeln (‘a=’); readln (a);

           writeln (‘b=’); readln (b);

                 writeln (‘m=’); readln (m);

           for i:=0 to 30 do

                      begin  write (‘x[‘,  i,  ‘]=‘);

                                 readln (x[i]);

                      end;

           i:=0;

           repeat i:=i+1;

           until ((x[i]+(a-b*x[i])*x[i]-m)<=0) or (i=30);

           if ((x[i]+(a-b*x[i])*x[i]-m)<=0) then writeln (‘не возможен’)

                                                                else writeln (‘возможен’);

           readln;

     end.

* Определите лучшего и худшего работника месяца

min:=a[1]; max:=a[1];

for i:=1 to n do begin

   if (a[i]<min) then min:=a[i];

   if (a[i]>max) then max:=a[i];

                            end;

writeln (‘лучший работник выпустил’, max);

writeln (‘худший работник выпустил’, min);

* Расположите расстояния до места крушения в порядке увеличения

for i:=2 to n do

   for j:=n downto i do

      if d[j-1]>d[j] then begin

            buf:=d[j-1];

            d[j-1]:=d[j];

            d[j]:=buf;

                                     end;

* Определить, достаточно ли в рационе жиров, если они должны составлять 18% от общего количества продуктов

x:=0; for i:=1 to 10 do x:=x+a[i];

        {всего продуктов в грамма}

x:=0.18*x;

        {должно быть жиров}

y:=0; for i:=1 to10 y:=y+c[i];

        {c – массив для жиров}

if (x<=y) then writeln (‘достаточно’)

                 else writeln (‘не достаточно’);


По теме: методические разработки, презентации и конспекты

Конспект урока с презентацией "Графика на языке программирования Turbo Pascal"

Урок для учащихся 11 класса по теме "Графика на языке программирования ТР". Содержит теоретический материал, практическую работу и презентацию к уроку. Надеюсь, многим учителям информатики пригодится!...

Основы программирования: ТЕМА 01. ЯЗЫК ПРОГРАММИРОВАНИЯ ПАСКАЛЬ.

ОСНОВЫ ПРОГРАММИРОВАНИЯВВЕДЕНИЕОдним из популярных сегодня ЯП является Паскаль. Он позволяет составлять программы для решения математических задач, обработки текстов, построения изображений на экране ...

Презентация на тему "Язык программирования Паскаль. Введение"

Введение в язык программирования Паскаль...

Презентация по теме "Данные в языке программирования Паскаль"

Цель: познакомиться с типами данных языка программирования Паскаль....

Презентация по теме "Основные понятия языка программирования Паскаль"

Цель: познакомиться с понятием «алфавит» языка, структура программы, идентификаторы....

Презентация по теме "Языки программирования"

Цель:• рассмотреть с классификацию языков программирования;• познакомиться с языком программирования Паскаль;• составить программы на компьютере на языке программирвоания Паскаль....