Урок-практикум "Решение задач из различных областей на Паскале"

Разделы: Информатика


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

ХОД УРОКА

I. Проверка домашнего задания.

Условие задачи: определить зарплату работнику по больничному листу, проболевшему К дней при следующих условиях, если стаж работы до 6 лет – 60%, от 6-8 – 80%, более 8 – 100 %, если несовершеннолетний –100 %, зарплата работника Z рублей в день.

Далее задача усложняется – определять зарплату до тех пор пока есть больничные листы

II. Знакомство новыми задачами.

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

Задача 1.

Написать программу, которая проверяет знания таблицы умножения. Программа должна вывести 10 различных примеров и выставить оценку, за 10 правильных ответов – “отлично”, за 9-8 – “хорошо”, 7,6 – “удовлетворительно”, 5 и менее – “плохо” .

Разбор задачи.

Задача 2.

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

Пример:

2 2,
   х
   4

Учитель обращает внимание: именно, так работают калькуляторы в некоторых сотовых телефонах.

Задача 3.

Написать программу, которая “задумывает” число в диапазоне от 1 до 10 и предлагает пользователю угадать число из 5 попыток (разбор задачи).

III. Практическая работа.

Решить одну из предложенных задач на ПК.

IV. Итог урока.

V. Домашнее задание: написать программы ко всем трем предложенным задачам.

1.

Var kol, n1, n2, otv, rez: integer;
Begin
Kol:= 0;
Randomize;
For I:=1 to 10 do
Begin
   N1:= random(9) + 1;
   N2:= random(9) + 1;
   Rez: = n1 + n2;
   Write(‘ ‘,n1,’x’,n2,’=’);
   Read (otv);
   If otv = rez
      Then kol:= kol + 1
      Else begin
         Writeln(‘вы ошиблись’,n1,’x’,n2,’=’,rez)
      End
    End;
Writeln (‘правильных ответов’, kol);
Write (‘ваша оценка:’);
Case kol of
   10: writeln(‘5’);
   9,8: writeln(‘4’);
   7,6: writeln(‘3’);
   0..5: writeln(‘2’);
readln
End.

2.

Var oper:char;
х, y, z: real;
Begin
Repeat
   Writeln;
   Readln(x,y);
    Write(‘oper:’);
     Readln(oper);
      Case oper of
   ‘+’ : z:= x + y;
   ‘-’ : z:= x - y;
   ‘*’ : z:= x * y;
   ‘/’ : z:= x/y;
   else writeln(‘Ошибка ввода’);
    writeln(‘rez = ’,rez)
End.

3.

const pop=5;
Var n,comp,igrok: integer;
Begin
Randomize;
comp:= random(9) +1;
writeln;
repeat
n:= n + 1;
write(‘->’);
readln(igrok);
until (n = pop) or (comp = igrok);
if comp = igrok
then writeln(‘вы выиграли’)
else writeln(‘вы проиграли: компьютер задумал число ’, comp);
readln;
End.