Главная / Информатика / Разработки уроков по программированию на Паскале

Разработки уроков по программированию на Паскале
















Разработки уроков

информатики по теме:

«Программирование

на языке Паскаль».

























Урок 1-2

Тема: Правила ТБ. Этапы решения задач на ЭВМ. Алгоритм. Свойства алгоритма. Исполнитель алгоритма.

Цель: повторить правила ТБ при работе в компьютерном классе,

Определить этапы решения задач на ЭВМ,

Ввести понятие алгоритма и его свойств.


  1. Правила ТБ. Заполнить журнал по ТБ.

  2. Новый материал

  • Задача в информатике

  • Этапы решения задачи

  1. Постановка задачи

  2. Математическая формализация

  3. Составление алгоритма

  4. Запись алгоритма на языке программирования

  5. Исполнение программы

  6. Анализ результатов и корректировка алгоритма, в случае необходимости.

  • Алгоритм – четкая последовательность действий.

  • Исполнитель алгоритма

  • Игра Баше. Имеется 15 предметов. Соперники ходят по очереди, за каждый ход любой из играющих может взять 1, 2 или 3 предмета. Проигрывает тот, кто вынужден взять последний предмет.

Алгоритм выигрыша для первого игрока имеет вид:

  1. взять 2 предмета

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

Данный алгоритм приводит к выигрышу для 7, 11, 15, 19 предметов.

15 пр.

2

4-x

4-y

4-z

x

y

z

1


21

x

y

z

c

d

1

4-x

4-y

4-z

4-c

4-d


  • Задумайте натуральное число

  1. Умножите его на 5

  2. Прибавить 8

  3. Сумму умножить на 2

Алгоритм отгадывания числа

  1. вычесть из результата 16

  2. отбросить крайнюю правую цифру, получим искомое число.

(x*5+8)*2=y

10x = y-16

hello_html_m49c6c556.gif

  • Свойства алгоритма

          • Дискретность

          • Точность

          • Понятность

          • Конечность

          • Массовость

  1. Решение задач.

    1. Составить алгоритм, как набрать из реки 7л воды, если имеются сосуды емкостью 3л и 8л.


1

2

3

4

5

6

7

8

0

3

0

3

0

2

2

3

8

5

5

2

2

0

8

7


    1. Алгоритм Евклида (НОД)

  1. Если числа равны, то взять любое из них в качестве ответа, иначе продолжить выполнение алгоритма.

  2. Найти большее из чисел.

  3. Заменить большее число разностью большего и меньшего чисел.

  4. Начать сначала.

    1. Исполнитель умеет:

Умножать число на 2;

Увеличивать число на 1.

Составить для этого исполнителя алгоритм получения числа 100 из единицы.

hello_html_4398066c.gif

    1. Исполнитель умеет из дроби a/b получать любую из дробей (a-b)/b, (a+b)/b, b/a. Как получить из дроби ½ дробь ¼ ?

hello_html_m34fd46fb.gif

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


5. Домашнее задание. § 38(авт. И.Г. Семакин. Информатика 7-9), записи в тетради.

hello_html_m53d4ecad.gifСоставить алгоритм.

    1. Некий человек должен перевезти в лодке через реку волка, козу и капусту. Каждый раз он может перевезти только либо волка, либо козу, либо капусту. На одном берегу нельзя оставить вместе козу и волка, а также козу и капусту. Составить алгоритм переправы на другой берег.

    2. Разведывательный дозор в составе двух человек подошел к реке. Мост был разрушен, а река слишком глубока и широка, чтобы переправить через нее вброд или вплавь. Около берега в маленькой лодке проплывали два мальчика. Как переправиться на этой лодке через реку, если она может выдержать только либо одного взрослого, либо двух мальчиков?














Урок 3-4

Тема: Алфавит языка Паскаль. Типы данных. Арифметические операции. Арифметические выражения. Структура программы на языке Паскаль. Основные операторы.

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


  1. Опрос.

  • Назовите этапы решения задач на ЭВМ.

  • Дайте определение алгоритма. Назовите свойства алгоритма. Привести пример алгоритма.

  • Прочитать алгоритм к задаче про волка, козу, капусту.

  1. Новый материал.

    • Паскаль был разработан в 1968-1970 гг. Н.Витером. Турбо Паскаль появился в 1984 году.

    • Алфавит

    • Латинские прописные и строчные буквы

    • Цифры 0-9

    • Знаки + - * / \ < > ^ , . ; : ‘ () _

    • Служебные слова.

    • Константы – числа, символы, строки, которые не изменяют своего значения в процессе выполнения программы.

CONST e=2.71 (число Эйлера)

Р=3.14

  • Переменные – величины, которые меняются в процессе выполнения программы. Объявляя переменную заданного типа, вы отводите в памяти место, где будет хранится ее значение.

Типы данных в Паскале:

  1. Простые

  2. Структурированные

  3. Ссылочные

  4. Процедурные

  5. Объектные


Простые типы данных

hello_html_4cbb7abc.gif Порядковые Вещественные

Целый

Логический

Символьный

Ограниченный

Перечисляемый


Целочисленный тип


Тип


Диапазон значений

Формат

Shorting

Короткий

-128..127

1 байт

Integer

Целый

-32768..32867

2 байта

Longint

Длинный

-2 147 483 648..2 147 483 647

4 байта


Вещественный тип


Тип


Точность

Формат

Real

Вещественный

11-12 знаков

6 байт

Double

Двойной точности

15-16 знаков

8 байт


  • Арифметические выражения и операции.

Арифметическое выражение состоит из операндов, скобок, знаков операций.


Сложение

+

Вычитание

-

Умножение

*

Деление

/

Целочисленное деление 11 div 5=2

Div

Остаток от деления 11 mod 5=1

Mod


Арифметические функции


|x|

abs(x)

x2

sqr(x)

hello_html_m247fcf1a.gif

sqrt(x)

hello_html_1bfc1af9.gif

pi

sin x

sin(x)

cos x

cos(x)


  • Записать математические выражения на языке Паскаль:

hello_html_m4e43b6e7.gif, hello_html_4525d8e4.gif, hello_html_m2ef65e1b.gif, hello_html_m128087ad.gif.

  • Перевести из линейной записи в обычную.

a/b/c; a*b/c; a+b/c; (a+b)/c; a+b/b+c; (a+b)/(b+c).

  • Основные операторы.

  • Read (a1, a2,…,an) – оператор ввода данных

Readln (a1, a2,…,an)

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

  • Write (a1, a2,…,an) – оператор вывода данных

Writeln (a1, a2,…,an)

Writelnпереход на следующую строку.

  • := оператор присваивания. Вычисляет значение выражения, стоящего справа и присваивает переменной стоящей слева. Нельзя с помощью одного оператора присваивания присвоить нескольким переменным одно и то же значение. Например: нельзя записать i:=j:=k:=0; необходимо: i:=0; j:=0; k:=0.


  • Структура программы.

program имя программы; {заголовок программы}

uses имя модуля1,..; {раздел библ. модулей}

label имя метки 1,..; {раздел меток}

const имя константы = значение константы; {раздел констант}

type ; {раздел типов}

var ; {раздел переменных}

begin

операторы

end.


  1. Решение задач.

  • Составить программу вычисления периметра и площади прямоугольника.

Program z1;

Var a, b, p, s: real;

Begin

Writeln(‘b’);

Readln (a, b);

P:= 2*(a+b);

S:=a*b;

Writeln (p, s);

Readln;

End.

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

  2. Домашнее задание. Выучить конспект.

Записать данные выражения на Паскале: hello_html_m1328bce5.gif, hello_html_3b5df502.gif, hello_html_12901b83.gif, hello_html_m5d0844c6.gif, hello_html_1fb3e2d4.gif.
























Урок 5-6

Тема: Составление линейных алгоритмов.

Цель: учить составлять линейные алгоритмы, реализовывать их на компьютере,

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


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

  2. Письменный опрос


I вариант

  1. Назовите этапы решения задач с помощью ЭВМ.

  2. Перечислите стандартные функции на Паскале

  3. Запишите выражение на языке Паскаль hello_html_2e01f293.gif

II вариант

  1. Алгоритм и его свойства.

  2. Перечислите основные операторы на Паскале

  3. Запишите выражение на языке Паскаль hello_html_66531fca.gif



  1. Решение задач.


1. Вычислить сторону ромба, если известны две его диагонали.

Program z2;

Var a, d1, d2: real;

Begin

Writeln (‘Введи диагонали’);

Readln (d1, d2);

a:= sqrt(sqr(d1/2)+ sqr(d2/2));

Writeln (‘a=’,a);

Readln;

End.


2. Вычислить периметр и площадь ромба, у которого сторона и меньшая диагональ равны а. (hello_html_m13be1009.gif)

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

5. Домашнее задание.


  1. Вычислить длину окружности и площадь круга по заданному радиусу.

  2. Вычислить площадь прямоугольного треугольника по его катетам.












Урок 7-8

Тема: Составление линейных алгоритмов.

Цель: учить составлять линейные алгоритмы, реализовывать их на компьютере,

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


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

    1. Вычислить длину окружности и площадь круга по заданному радиусу.

Program z1;

Var r, c, s: real;

Begin

Writeln (‘Введи радиус’);

Readln (r);

c:= 2*3,14*r;

s:=3,14*sqr(r);

Writeln (‘c=’,c);

Writeln (‘s=’,s);

Readln;

End.


    1. Вычислить площадь прямоугольного треугольника по его катетам.

Program z2;

Var a,b,s: real;

Begin

Writeln (‘Введи катеты’);

Readln (a,b);

s:=1/2*a*b;

Writeln (‘s=’,s);

Readln;

End.



  1. Решение задач.

    1. Даны два целых числа. Найти их среднее арифметическое и среднее геометрическое.

    2. Дhello_html_m17d30eb2.gifаны длины сторон прямоугольного параллелепипеда. Найти объем и площадь боковой поверхности.

V = abc

S = 2(a+b)c






    1. Найти сумму кубов корней уравнения x2 - ax - 2 = 0.

hello_html_5fc3746f.gif


    1. Найти целую часть и остаток от деления а на b. а и b целые числа.

Program z5;

Var a, b, c, d: Integer;

Begin

Writeln (‘Введи числа’);

Readln (a, b);

c:= a mod b ;

d:= a div b;

Writeln (‘остаток’,c);

Writeln (‘целая часть’,d);

Readln;

End.

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

4. Домашнее задание.

  1. Вычислить периметр прямоугольного треугольника по его катетам.

  2. От полуночи минутная стрелка описала угол в k градусов. Какое время показывают часы.

Program z7;

Var k, ch, min: Integer;

Begin

Writeln (‘Введи угол’);

Readln (k);

ch:= k div 360 ;

min:= k mod 360 div 6;

Writeln (ch, ‘часов’, min, ‘минут’);

Readln;

End.






























Урок 9-10

Тема: Решение линейных задач. Контрольная работа № 1 «Решение линейных задач»

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

контроль знаний учащихся


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

  2. Решение задач.

1. Устная работа

  • Найти ошибки:

  1. A:= 25+B;

  2. 4-B:=A;

  3. ABS(A):= B;

  4. 4:=B;

  5. B:=SQR(A);

  6. B:=A;

Ошибки в задании b), c), d).

  • Определить значения x, y.

x:=1.2; y:=x*2;

y:=y-5*x;

x:=ABS(y);

Writeln (x, y);

Ответ: х=3.6; y=-3.6.

  • Определить значения x, y.

a:=-7; b=a/2;

a:=(a+b)/2;

b:=a-b;

Writeln (a,b);

Ответ: а=-5.25; b=-1.75.


    1. Определить объем цилиндра и площадь его полной поверхности, если известны радиус основания и высота цилиндра.

Формулы: V=πr2h; S=2πr(r+h).


    1. Найти сумму цифр заданного трехзначного числа.

Program z6;

Var n, a1, a2, a3, s: Integer;

Begin

Writeln (‘Введи число’);

Readln (n);

a1:= n div 100 ;

a2:= n div 10 mod 10;

a3:= n mod 10;

s:= a1+a2+a3;

Writeln (‘сумма’, s);

Readln;

End.


4. Дано трехзначное число. Найти число, полученное при прочтении его цифр справа налево. (123hello_html_m6b7fc4d1.gif321)

Program z8;

Var n, a1, a2, a3, n1: Integer;

Begin

Writeln (‘Введи число’);

Readln (n);

a1:= n div 100 ;

a2:= n div 10 mod 10;

a3:= n mod 10;

n1:= a3*100+ a2*10+a1;

Writeln (‘новое число’, n1);

Readln;

End.


3. Контрольная работа №1 «Решение линейных задач»

1 вариант

2 вариант

1. Дайте определение алгоритма. Перечислите свойства алгоритма

  1. Перечислите этапы решения задач на ЭВМ.

2. Указать значения величин S и k после выполнения следующих операторов присваивания:

s:=14

k:=-3

d:=s+1

s:=d

k:=2*S

s:=0

k:=30

d:=k-5

k:=2*d

s:=k-100

3. В каком из примеров допущены ошибки и какие именно?

Var A, B: real;

  1. A:= 5 – B;

  2. A+B:=5;

  3. Sqrt(A):=B;

  4. A:=B;

  5. 5:=A;

  6. A:=5;

Var A, B: integer;

  1. A:= B+7;

  2. A-B:=4

  3. Abs(A):=5-B

  4. B:=A

  5. A:=-7

f) A:= Sqrt(B)

4. Записать выражение по правилам языка Паскаль

hello_html_m323c26af.gif

hello_html_366626ed.gif

5. Вычислите площадь треугольника по известным длинам его сторон. Воспользуйтесь формулой Герона: hello_html_m13e9c36e.gifгде hello_html_377e37c1.gif.

5. Определите расстояние, пройденное телом за время t, если известны его начальная скорость и постоянное ускорение. Формула: hello_html_m1b559bc9.gif.

6. Найти высоту равностороннего треугольника, если сторона равна a.


6. Найти боковую сторону равнобедренного треугольника, если основание a, высота к основанию h.







Урок 11-12

Тема: Операторы условного и безусловного перехода на Паскале.

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


1. Анализ контрольной работы.

2. Новый материал.


Если в программе после выполнения очередного оператора надо выполнить не следующий по порядку, а другой, помеченный для этого меткой, используется оператор безусловного перехода GOTO. Он осуществляет переход к инструкции, перед которой стоит метка, объявленная в разделе меток Label.


Условный оператор

Уhello_html_m3d6858d0.gifhello_html_4592b278.gifсловный оператор имеет полную и краткую формы.

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

if условие then оператор1
else оператор2;

В качестве условия указывается операция отношения. Сложные условия составляются из простых с помощью логических операций and, or. Если условие оказывается истинным, то выполняется оператор1, в противном случае выполняется оператор2.

Краткая форма условного оператора имеет вид:

if условие then оператор;

Если условие оказывается истинным, то выполняется оператор, в противном случае происходит переход к следующему оператору программы.

Если в качестве оператора выполняются несколько операторов, то они заключаются в операторные скобки beginend.


3. Решение задач.


Задача 1. Даны два числа. Найти большее из них.

Задача 2. Найти большее из трех чисел.

program z1;

uses crt;

var a,b,c,max:real;

begin

writeln ('Введи числа');

readln(a,b,c);

if a>b then max:=a else max:=b;

if c>max then max:=c;

writeln(max);

end.

Задача 3. Принадлежит ли число n интервалу (a,b).

Задача 4. Вычислить значение функции: hello_html_m2359c69d.gif.

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

5. Домашнее задание.

1. Могут ли углы α, β, γ быть углами одного треугольника.

2. Даны точки М(1,2) и Р(3, а). Лежит ли отрезок МР в I четверти.


Дополнительно.

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

  2. По заданному значению х вычислить значение hello_html_m2521d1ee.gif

  3. Определить принадлежит ли точка (x, y) фигуре

hello_html_m5cdeca83.gifhello_html_dd0e3bc.gif










hello_html_6c99cdc7.gifhello_html_m169f87e4.gif




4. Дано двузначное число. Определить кратна ли трем сумма его цифр.























Урок 13-14

Тема: Операторы условного и безусловного перехода на Паскале.

Цель: отрабатывать навык правильного использования условного оператора.


1. Проверка дом. задания.

1. Могут ли углы α, β, γ быть углами одного треугольника.

2. Даны точки М(1,2) и Р(3, а). Лежит ли отрезок МР в I четверти.

2. Решение задач.

Задача 1. Является ли заданное число четным.

Задача 2. Является ли число а полным квадратом.

If sqr(a) =Int (sqr(a)) then write (‘yes’) else write (‘no’);


Задача 3. Является ли треугольник с углами а и b равносторонним.

If (a=60) and (b=60) then write (‘yes’) else write (‘no’);

Задача 4. Является ли равнобедренным треугольник со сторонами 2, 3, х.

If (x=2) or (x=3) then write (‘yes’) else write (‘no’);


Задача 5. Выяснить взаимное расположение прямой y=kx+b и точки (m, n).

Задача 6. Вывести на экран номер четверти, которой принадлежит точка (x,y) (hello_html_22d3ef85.gif).


Begin

If (x>0) and (y>0) then

Writeln (‘I ’)

Else if (x>0) and (y<0) then

Writeln (‘IV ’)

Else if (x<0) and (y>0) then

Writeln (‘II ’)

Else Writeln (‘III ’);

Readln;

End.


Задача 7. Решить квадратное уравнение.

Program kvur;

uses crt;

var d, a, b, c, x, x1, x2: real;

begin

readln (a, b, c);

d:=sqr(b)-4*a*c;

if d>0 then begin x1:= (-b-sqrt(d))/(2*a); x2:= (-b+sqrt(d))/(2*a);

writeln(x1:7:3,x2:7:3); end

else if d=0 then begin x:=-b/(2*a);writeln(x:7:3); end

else writeln ('korney no');

end.


Задача 8. Принадлежит ли точка фигуре.





hello_html_m759251b3.pnghello_html_767171bb.gif

y=2



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

4. Домашнее задание.

1.Выяснить оканчивается ли заданное число нулем.

2. Выяснить взаимное расположение прямой ОХ и точки (a,b).





































Урок 15-16

Тема: Оператор выбора на Паскале.

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


1. Проверка дом. задания.

1.Выяснить оканчивается ли заданное число нулем.

2. Выяснить взаимное расположение прямой ОХ и точки (a,b).

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


I вариант

II вариант

1. Дано натуральное число. Верно ли, что оно заканчивается нечетной цифрой.

2. Известен рост трех человек. Определить, одинаков ли их рост.

1.Дано натуральное число. Верно ли, что оно заканчивается четной цифрой.

2. Известны длины трех сторон треугольника. Является ли треугольник разносторонним.


3. Новый материал

Оператор выбора

Не рекомендуют использовать многократно вложенный друг в друга условный оператор if. Если необходимо проверить много условий и в зависимости от них выполнять те или иные действия, то используют оператор выбора case.

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

case переключатель of
  список выбора 1: оператор1;
  ...
  список выбора N: операторN;
  else оператор0
end;

Переключатель представляет собой выражение порядкового типа (целого, символьного, перечислимого или интервального), а списки выбора содержат константы совместимого типа. Как и в операторе if, ветка else может отсутствовать.

Оператор case работает следующим образом. Если в одном из списков выбора найдено текущее значение переключателя, то выполняется оператор, соответствующий данному списку. Если же значение переключателя не найдено ни в одном списке, то выполняется оператор по ветке else или, если ветка else отсутствует, оператор case не выполняет никаких действий.

Список выбора состоит либо из одной константы, либо из диапазона значений вида a..b (константа a должна быть меньше константы b); можно также перечислить несколько констант или диапазонов через запятую:

case DayOfWeek of
  1..5: writeln('Будний день');
  6,7: writeln('Выходной день');
end;


3. Решение задач.

Задача 1. Составить программу, которая в зависимости от порядкого номера дня недели выводит на экран его название.

Program z1;

Var n: integer;

Begin

Read (n);

Case n of или n mod 7

1: Write (‘понедельник’);

2: Write (‘вторник’);

3: Write (‘среда’);

4: Write (‘четверг’);

5: Write (‘пятница’);

6: Write (‘суббота’);

7(0): Write (‘воскресенье’);

end;

end.


Задача 2. Выполнить заданную арифметическую операцию с двумя числами.

program z2;

uses crt;

var op:char;

a,b,s:real;

begin

write('введи числа '); readln(a,b);

write('введи знак операции '); readln(op);

case op of

'+': s:=a+b;

'-': s:=a-b;

'*': s:=a*b;

'/': s:=a/b;

end;

write(a, op, b,'=',s);

end.

Задача 3. По количеству набранных при тестировании баллов выставить соответствующую отметку. Пусть введена 100-бальная система и заданы следующие критерии оценивания:


Сумма баллов

90-100

80-89

65-79

<65

Отметка

5

4

3

2


program z2;

uses crt;

var s : integer;

b: 2..5;

begin

write('Введите балл '); readln(s);

case s of

90..100: b:=5;

80..89: b:=4;

65..79: b:=3;

else b:=2

end;

write('Отметка ', b);

end.


Задача 4. В старояпонском календаре принят 60-летний цикл, состоящий из пяти 12-летних подциклов. Подциклы обозначались названиями цветов: зеленый, красный, желтый, белый и черный. Внутри каждого подцикла годы носили названия животных: крыса, корова, тигр, заяц, дракон, змея, лошадь, овца, обезьяна, курица, собака и свинья. Например: 1984 год – год начала очередного цикла – назывался Годом Зеленой Крысы.

Составить программу, которая по заданному номеру года нашей эры n напечатает его название по старояпонскому календарю. Рассмотреть два случая:

а) Значение n ≥ 1984;

б) Значение n может быть любым натуральным числом.


program z2;

uses crt;

var n : integer;

begin

write('введи год '); readln(n);

n:=(n-1984) mod 12;

case n of

0: write('крыса');

1: write('корова');

2: write('тигр');

3: write('заяц');

4: write('дракон');

5: write('змея');

6: write('лошадь');

7: write('овца');

8: write('обезьяна');

9: write('курица');

10: write('собака');

11: write('свинья');

end;

end.


program z2;

uses crt;

var n,m : integer;

begin

write(' введи год '); readln(n);

if n>= 1984 then begin m:=(n-1984) mod 5;

n:=(n-1984) mod 12;end

else begin m:= 5-(1984-n) mod 5;

n:= 12-(1984-n) mod 12; end;

case m of

0: write('зеленый ');

1: write('красный ');

2: write('желтый ');

3: write('белый ');

4: write('черный ');

end;

case n of

0: write('крыса ');

1: write('корова ');

2: write('тигр ');

3: write('заяц ');

4: write('дракон ');

5: write('змея ');

6: write('лошадь');

7: write('овца');

8: write('обезьяна');

9: write('курица');

10: write('собака');

11: write('свинья');

end;

end.


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

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


  1. Принадлежит ли точка фигуре.

hello_html_m4e663579.png

2. Вычислить значение функции.hello_html_m5b0c470a.gif.










































Урок 17-18

Тема: Решение задач на ветвление. Контрольная работа № 2 «Решение задач с развилкой».

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


1. Проверка дом. задания

2. Анализ сам. работы

3. Решение задач.

1. Принадлежит ли точка прямой Ax+By+C=0; параболе ax2+b=0.

2. Даны радиус круга и сторона квадрата. У какой фигуры площадь больше?

3. Является ли биссектрисой прямая, лежащая внутри угла и образующая с его сторонами углы А и В.

4. Дано значение х. Вычислить y, если hello_html_1babef76.gif.

4. Контрольная работа.


I вариант

II вариант

1. Запишите операторы условного перехода.

1. Запишите оператор выбора.

2. Какое значение примет переменная a после выполнения фрагмента программы?

a:=4;

If a<0 then a:=a+1 else a:=a-1;

Write(a);

2. Какое значение примет переменная c после выполнения фрагмента программы?

c:=7;

If c >0 then c:=c+3 else c:=c-2;

Write(c);

3. Известно значение х. Вычислить y, если hello_html_3f40ec2b.gif

3. Известно значение х. Вычислить y, если hello_html_52d8a703.gif

4. Даны координаты точки. Выяснить лежит ли эта точка во второй координатной четверти.

4. Даны координаты точки. Выяснить лежит ли эта точка в третьей координатной четверти.

5.Дано двузначное число n. Определить больше ли числа 9 сумма его цифр?

5.Дано двузначное число n. Определить кратна ли трем сумма его цифр?

6*. Работа светофора для пешеходов запрограммирована следующим образом: в начале каждого часа в течении трех минут горит зеленый сигнал, затем в течении одной минуты – желтый, затем в течении двух минут – красный. С начала работы светофора прошло t мин. Какой свет горит?




Урок 19-20

Тема: Операторы цикла на Паскале. Цикл со счетчиком.

Цель: познакомить учащихся с форматом оператора цикла с параметром; объяснить особенности применения оператора;

  1. Анализ контрольной работы.

  2. Новый материал

  • Цикл представляет собой последовательность операторов, которая выполняется неоднократно.

  • Оператор цикла for – цикл со счетчиком (используется с заранее известным числом повторений)

Оператор цикла for имеет одну из двух форм:

for переменная:=начальное значение to конечное значение do
  оператор;

или

for переменная:=начальное значение downto конечное значение do
  оператор;


Текст от слова for до слова do включительно называется заголовком цикла, а оператор после do - телом цикла. Переменная после слова for называется параметром цикла. Для первой формы цикла с ключевым словом to параметр цикла меняется от начального значения до конечного значения, увеличиваясь всякий раз на единицу, а для второй формы ключевым словом downto - уменьшаясь на единицу. Для каждого значения переменной-параметра выполняется тело цикла.

3. Решение задач.

Задача 1. Вычислить 12+22+…+122.

program z1;

uses crt;

var i:integer; s: longint;

begin

s:=0;

for i:=1 to 100 do s:=s+sqr(i);

writeln (s); S= 650

end.


Задача 2. Найти все делители числа n.

program z1;

uses crt;

var n, i: integer; k: real;

begin

read (n);

for i:=1 to n do

if n mod I = 0 then writeln (i);

end.


Задача 3. Напечатать таблицу квадратных корней из чисел от 1 до 20.

program z3;

uses crt;

var i: integer; b: real;

begin

for i:=1 to 20 do

begin

b:= sqrt(i);

writeln (i: 4, b:7:2);

end;

end.

Задача 4. Составить таблицу перевода метров в ярды, если 1м = 0,91 ярда на [1; 20].

program z4;

uses crt;

var i: integer; b: real;

begin

for i:=1 to 20 do

begin

b:= i*0.91;

writeln (i: 4, b:7:2);

end;

end.

Задача 5. Сберкасса начисляет 30% годовых. Какой станет сумма S, положенная в банк на n лет.

program z5;

uses crt;

var i: integer; b: real;

begin

writeln (‘Введите сумму’); read (s);

writeln (‘Введите кол-во лет’); read (n);

for i:=1 to n do

s:= s+s*0.3;

writeln (s:7:2);

end.

Задача 6. Найти все натуральные корни, меньшие 100, уравнения x4- 10x3+38x2-79x+70=0.

program z6;

uses crt;

var x: integer;

begin

for x:=1 to 100 do

if sqr(sqr(x))- 10*x* sqr(x)+38* sqr(x)-79*x+70=0 then writeln (x);

end.


Задача 7. Вычислить n!

program z1;

uses crt;

var n,i:integer; s: longint;

begin

read (n); s:=1;

for i:=1 to n do s:=s*i ;

writeln(s);

end.

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

5. Домашнее задание.

  1. Напечатать таблицу перевода дюймов в см. 1 дюйм = 2.54 см

  2. Вычислить hello_html_m49a03ca0.gif

Урок 21-22

Тема: Операторы цикла на Паскале. Цикл с предусловием.

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

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

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

1 вариант

2 вариант

1. Составить таблицу значений функции

y=x2-5x+6 на [-5; 5]

y=-x2-x+6 на [-7; 8]

2. Напечатать таблицу соответствия между

весом в фунтах и в кг. 1ф= 0,4 кг

расстоянием в милях и в км. 1 миля = 1,8 км

3. Новый материал.

Оператор цикла while – цикл с предусловием

Оператор цикла while имеет следующую форму:

whello_html_4501f7c3.gifhile условие do
  оператор

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

Если условие всегда оказывается истинным, то может произойти зацикливание:

while 2>1 do
  write(1);

Чтобы прервать зациклившуюся программу, следует использовать комбинацию клавиш Ctrl-F2

Точка с запятой сразу после do в Pascal ABC считается синтаксической ошибкой.


4.Решение задач.


Задача 1. Вычислить 12+32+…+252.

program z2;

uses crt;

var i:integer; s: longint;

begin

s:=0; i:=1;

while i<=25 do begin s:=s+sqr(i); i:=i+2; end;

writeln (s);

end.


Задача 2. Найти НОД(а, b).


program z1;

uses crt;

var a, b: integer;

begin

read (a, b);

while a<>b do

if a>b then a:=a-b else b:=b-a;

writeln (a);

end.


Задача 3. Даны натуральные числа a и b, обозначающие соответственно числитель и знаменатель дроби. Сократить дробь, т.е. найти такие натуральные числа p и q, не имеющие общих делителей, что p / q = a / b.


program z1;

uses crt;

var a,b,m,n:integer; p,q: real;

begin

read (a,b);

m:=a; n:=b;

while m<>n do

if m>n then m:=m-n else n:=n-m;

p:= a/m;

q:= b/m;

writeln(p,'/',q);

end.


Задача 4. Среди чисел 1, 4, 9, 16, 25, … найти первое число, большее n.


program z1;

uses crt;

var i, n: integer;

begin

read (n);

i:=1;

while sqr(i)

i:=i+1;

writeln (sqr(i));

end.



Задача 5. Определить количество цифр в числе.

program z1;

uses crt;

var n,i: integer;

begin

readln (n);

i:=0;

while n <>0 do

begin

n:= n div 10;

i:=i+1; end;

write (i);

end.

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

6. Домашнее задание.

Задача 1. Дано число n.

a) напечатать те натуральные числа, квадрат которых не превышает n.

b) найти первое натуральное число, квадрат которого больше n.


a) program z1;

uses crt;

var i, n: integer;

begin

read (n);

i:=1;

while sqr(i) < n do

begin writeln (i); i:=i+1; end;

end.

b) program z1;

uses crt;

var i,n:integer;

begin

read (n);

i:=1;

while sqr(i)

writeln(i);

end.

Урок 23-24

Тема: Операторы цикла на Паскале. Цикл с постусловием.

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

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

  2. Новый материал.

Оhello_html_3ab1676c.gifператор цикла repeat

Оператор цикла repeat имеет следующую форму:

repeat
  операторы
until условие

В отличие от цикла while, условие вычисляется после очередной итерации цикла, и если оно истинно, то происходит выход из цикла. Таким образом, операторы, образующие тело цикла оператора repeat, выполняются по крайней мере один раз.

Если условие всегда оказывается ложным, то может произойти зацикливание:

repeat
  write(1);
until 2=1;

Чтобы прервать зациклившуюся программу, следует использовать комбинацию клавиш Ctrl-F2.

  1. Решение задач.

Задача 1. Определить сумму цифр натурального числа n и вывести его запись в обратном порядке.


program z2;

uses crt;

var k, s, n: integer; a: longint;

begin

readln (n);

k:=0; s:=0; a:=0;

repeat

k:=k+1;

s:=s+ n mod 10;

a:= a*10 +n mod 10;

n:= n div 10;

until n=0;

writeln ('число цифр ', k, ' сумма цифр; ', s);

writeln (‘Запись в обр. порядке; ',a);

end.

Задача 2. Суммирование любого количества целых чисел.


program z4;

var sum: real;

count, x:integer;

begin

count:=1; sum:=0;

repeat

write ('Введите значение’, count, '-го слагаемого'); read(x);

count:=count+1;

if x<>999 then sum:=sum+x;

until x=999;

writeln ('Сумма введенных чисел = ', sum:7:3);

end.


Задача 3. «Угадай число»


program z5;

var comp: integer;

igrok : integer;

begin

randomize;

comp:=random(100);

repeat

write ('Введите число'); read (igrok);

if igrok > comp then writeln ('Слишком много…')

else if igrokСлишком мало…')

else writeln ('Вы угадали! ');

until igrok=comp;

end.

Задача 4. Арифметический калькулятор.

program z1; {k -сомножители, a- число сомножителей , s - произведение}

uses crt;

var x, y, s: real;

a, b: char;

begin

repeat

write(‘x=’); read(x);

write(‘y=’); read(y);

write(‘Операция(+, -, *, /)’); read(a);

case a of

‘+’: s:=x+y;

‘-’: s:=x-y;

‘*’: s:=x*y;

‘/’: s:=x/y

else

write(‘Ошибка ввода’);

end;

writeln (x:7:3, a:3, y:7:3, ‘=’, s:7:3 );

write (‘Продолжить (y/n)’);

read(b);

until (b=’n’) or (b=’n’);

end.


Задача 5. Произведение N первых нечетных чисел равно p. Сколько сомножителей взято?


program z1; {k -сомножители, a- число сомножителей , s - произведение}

uses crt;

var k,s,p:integer; a: longint;

begin

readln(p);

k:=1; s:=1; a:=0;

repeat

s:=s*k;

k:=k+2;

a:=a+1;

until p=s;

writeln ('число сомножителей; ',a);

end.


Задача 6. Известен факториал числа n. Найти это число.

program faktorial;

uses crt;

var n: real;

i: integer;

begin

read (n);

i:=1;

repeat

n:=n/i;

i:=i+1;

until n=1;

write (i-1);

end.


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

  2. Домашнее задание.

Найти наименьшее общее кратное (НОК) чисел n и m, если HOK(n, m)=n*m/(HOД(n, m)).

Урок 25-26

Тема: Операторы цикла на Паскале. Решение задач.

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

  1. Проверка дом. задания

  2. Устная работа


Дана последовательность операторов. Сколько раз будет повторен цикл? Чему будут равны значения a, b, s.

а) a=1; b=1;

while a+b<8 do

begin a=a+1; b=b+2;end;

s=a+b;

б) a=1; b=1;

while a <=3 do

begin

a=a+1;

b=b+1;

end;

a

1

2

3

b

1

3

5

s



8


a

1

2

3

b

1

2

3


в) s=0; i=0;

while i<5 do

begin

i=i+1;

s=s+100 div i ;

end;


г) s=0; i=1;

while i>1 do

begin

s=s+100 div I;

i=i-1;

end;

i

0

1

2

3

4

5

s

0

100

150

183

208

228


i

0

s

1


3. Решение задач.

Задача 1. Определить сумму цифр натурального числа n и вывести его запись в обратном порядке.


program z3;

uses crt;

var k, s, n: integer; a: longint;

begin

readln (n);

k:=0; s:=0; a:=0;

while n<>0 do

begin

k:=k+1;

s:=s+ n mod 10;

a:= a*10 +n mod 10;

n:= n div 10;

end;

writeln ('число цифр ', k, ' сумма цифр; ', s);

writeln (‘Запись в обр. порядке; ',a);

end.


Задача 2. Произведение N первых нечетных чисел равно p. Сколько сомножителей взято?


program z1; {k -сомножители, a- число сомножителей , s - произведение}

uses crt;

var k,s,p:integer; a: longint;

begin

readln(p);

k:=1; s:=1; a:=0;

while p<>s do

begin

s:=s*k;

k:=k+2;

a:=a+1;

end;

writeln ('число сомножителей; ',a);

end.

Контрольный пример: 105 – 4 сомножителя (105=1*3*5*7).


Задача 3. Найти все трехзначные числа, которые при делении на 47 дают в остатке 43.

program ostatok;

uses crt;

var i, x: integer;

begin

for i:=100 to 999 do

if i mod 47=43 then writeln (i);

end.

Задача 4.

program z2;

uses crt;

var a,b,c,n: integer;

begin

for a:=100 to 999 do

begin

b:=sqr(a);

c:=b mod 1000;

if a=c then writeln (a:7,b:7);

end;

end.

Задача 5. Распечатать в столбик таблицу умножения на 7.

program z1;

uses crt;

var p,i:integer;

begin

for i:= 1 to 9 do begin

p:=i*7;

writeln (i,'*7=',p);

end;

end.

Задача 6. Найти среднее арифметическое квадратов всех целых чисел от a до b. (Значения a и b вводятся с клавиатуры.)

program z1;

uses crt;

var i,a,b,n:integer;s:real;

begin

readln(a,b);

for i:= a to b do begin

s:=s+sqr(i); n:=n+1; end;

s:=s/n;

writeln (s);

end.

Задача 7. Вычислить сумму hello_html_17d48b4f.gif.


Задача 8. Напечатать минимальное число, большее 200, которое нацело делиться на 17.


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

5. Домашнее задание.

1. Вывести на экран все целые числа от a до b, кратные некоторому числу с.

2. Найти среднее арифметическое квадратов всех целых чисел от 1 до 100.

program z1;

uses crt;

var i:integer;s:real;

begin

for i:= 1 to 100 do

s:=s+sqr(i);

s:=s/100;

writeln (s);

end.

























Урок 27-28

Тема: Вложенные циклы. Решение задач.

Цель: объяснить принцип работы вложенных циклов; отрабатывать навык решения задач с вложенными циклами.


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

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


1 вариант

2 вариант

    1. Дано число m. Найти произведение 2*4*6*…*2m.

2. Сколько раз повторится тело цикла:

x:=1;

While x<5 do

begin

Writeln(x);

x:=x+3;

end;

1. Напечатать таблицу значений функции y=x3-sin(x) на промежутке [-7; 7] с шагом равным единице.

2. Сколько раз повторится тело цикла:

a:=2;

While a<7 do

begin

Writeln(a);

a:=a+2;

end;


  1. Новый материал.

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


  1. Решение задач.

Задача 1. Найти все целочисленные решения системыhello_html_m5c96fa2e.gif.

Задача 2. Найти все двузначные числа, сумма квадратов цифр которых делится на 19.

Задача 3. В десятичной записи числа 42..4 две цифры пропущены. Восстановите их, если известно, что это число кратно 72.

program z1;

uses crt;

var a,b,c:integer;

begin

for a:= 0 to 9 do

for b:=0 to 9 do

begin

c:=42004+a*100+b*10;

if c mod 72=0 then write (c:6);

end;

end.

42 264, 42 624, 42 984.

Задача 4. Представить натуральное число m в виде суммы квадратов двух натуральных чисел.

Задача 5. К числу 0884 слева и справа приписали по цифре так, чтобы полученное число было бы полным квадратом целого числа.(208849=4572)

program z1;

uses crt;

var a,b,c:integer;

d:real;

begin

for a:= 1 to 9 do

for b:=0 to 9 do

begin

c:=8840+a*100000+b;

d:=sqrt(c);

if d=int(d) then write (c:6);

end;

end.


Задача 6. Имеется 100 руб. Сколько быков, коров и телят можно купить на все эти деньги, если плата за быка – 10 руб., за корову – 5 руб., за теленка – полтинник (0,5 руб.) и надо купить 100 голов скота?

program z1;

uses crt;

var a,b,c:integer;

begin

for a:= 1 to 10 do

for b:=1 to 20 do

for c:=1 to 200 do с:= 100-(a+b);

begin

if (a+b+c=100)and (a*10+b*5+c*0.5=100) then if (a*10+b*5+c*0.5=100)

writeln (a:6,b:6,c:6);

end;

end.

Задача 7. Напечатать в возрастающем порядке все трехзначные числа, в десятичной записи которых нет одинаковых цифр.

program z1;

uses crt;

var a,b,c:integer;

begin

for a:= 1 to 9 do

for b:=0 to 9 do

for c:=0 to 9 do

if (a<>b)and (b<>c)and (a<>c) then write ((a*100+b*10+c):5);

end.

Задача 8. Напечатать таблицу умножения.

program tablumnog;

uses crt;

var a,b,n:integer;

begin

for a:= 1 to 9 do begin

for b:=1 to 9 do

write (a:3,'*',b,'=',a*b:2);

writeln ;

end;

end.


Задача 9*. Найти все совершенные числа, меньшие числа n.(Совершенное число, равно сумме всех своих делителей, исключая самого себя, например 6=1+2+3.)(6, 28, 496, 8128,…, всего найдено 24 совершенных числа.)

program z3;

uses crt;

var i,j,n,m:integer;

begin

write('введи число'); read(n);

for i:= 2 to n do begin

m:=0;

for j:=1 to i-1 do

if i mod j=0 then m:=m+j;

if m=i then writeln (i) ;

end;

end.


Задача 10*. Натуральное число из n цифр является числом Армстронга, если сумма его цифр, возведенных в n-степень, равна самому числу (напр., 153=13+53+33). Получить все числа Армстронга, состоящие трех цифр. (153, 370, 371, 407)

program z1;

uses crt;

var a,b,c,n: integer;

begin

for a:=100 to 999 do

begin

c:=0;n:=a;

while n<>0 do

begin

b:=n mod 10;

c:=c+sqr(b)*b;

n:=n div 10;

end;

if a=c then writeln (a);

end;

end.


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


5. Домашнее задание.

  1. Найти все целочисленные решения системыhello_html_5e56effe.gif.

  2. Найти все трехзначные числа, у которых сумма кубов его цифр равна самому числу.

  3. Определить количество трехзначных натуральных чисел, сумма цифр которых равна целому числу n (0<n<28).

program z1;

uses crt;

var a,b,c,n,i: integer;

begin

read (n);

for a:=1 to 9 do

for b:=0 to 9 do

for c:=9 to 9 do

begin

if a+b+c=n then begin i:=I+1; writeln (a*100+b*10+c);end;

end;

writeln (I);

end.

  1. Найти все двузначные числа, которые делятся на n или содержат цифру n.

program z1;

uses crt;

var a,b,c,n,i: integer;

begin

read (n);

for a:=1 to 9 do

for b:=0 to 9 do

if ((a*100+b) mod n=0) or (a=n) or (b=n)then write ((a*100+b*10+c):4);

end.






























Урок 29-30

Тема: Решение задач на циклы. Контрольная работа №3 «Циклы на Паскале».

Цель: закрепить навыки решения задач на Паскале; контроль знаний учащихся.


  1. Проверка домашнего задания (Повторить теоретические вопросы).

  2. Решение задач

  1. Найти сумму делителей каждого из целых чисел от 50 до 70.

program z1;

uses crt;

var a,b,c,i: integer;

begin

for a:=50 to 70 do begin i:=0;

for b:=1 to a do

if a mod b = 0 then

i:=i+b; writeln(a:4,i:5);

end;

end.

  1. Найти все натуральные числа a, b, c из интервала от 1 до 20, для которых выполняется равенство: a2-b2=c.

  2. Вычислить сумму: hello_html_m466661cb.gif.

  3. . Найти все целочисленные решения системы hello_html_6fe6a346.gif


III. Контрольная работа №3 «Циклы на Паскале».


1 вариант

2 вариант

1. Может ли тело цикла с параметром не выполниться ни разу? Когда?

1. Что такое цикл?

2. Как оформляется цикл с предусловием. В каких случаях используется данный цикл.

2. Как оформляется цикл с параметром. В каких случаях используется данный цикл.

3. Сколько раз повторится цикл, какие значения примут переменные,

после выполнения программы

x:=2;

While x<=5 do

begin

Writeln(x);

x:=x+3;

end;

writeln(x);


a:=-2;

While a<=3 do

begin

Writeln(x);

a:=a+2;

end;

writeln(a);

4. Найти все целочисленные решения системы hello_html_37c844e6.gif

4. . Найти все целочисленные решения системы hello_html_m59bd082c.gif

5. Найти сумму hello_html_5ff30cb4.gif.

5. Найти сумму hello_html_m758ff92f.gif.

Урок 31-32

Тема: «Описание и использование массивов. Заполнение массива данными»

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

  1. Анализ контрольной работы.

  2. Новый материал.

Если работа программы связана с хранением и обработкой большого количества однотипных переменных, для их представления в программе используют массивы. Массив представляет собой совокупность данных одного типа и общим для всех элементов именем. Элементы массива пронумерованы, и обратиться к каждому из них можно по номеру. Номера элементов массива иначе называют индексами, а сами элементы массива – переменными с индексами.

Характеристики массива:

  • Тип – общий тип всех элементов массива;

  • Размерность – количество индексов массива;

  • Диапазон изменения индекса – определяет количество элементов в массиве.

Индекс – это целая константа или переменная типа integer. При обращении к элементу массива индекс указывается в квадратных скобках после имени массива. Например: a[3], b[1,2].

Описание массива в разделе VAR

Описать массив - это объявит в разделе описания переменных var с использованием зарезервированного слова array (т.е. массив). В общем, виде выглядит так:

Var ИмяМассива: array [НижняяГраница..ВерхняяГраница]

Of ТипЭлементов;

Например:

Var a: array [1..100] of integer; { 100 элементов – целые числа}

Var b: array [1..50] of char; {51 элемент - символы}

Но прежде необходимо указать тип.

Type

имяТипа =array [НижняяГраница..ВерхняяГраница] of ТипЭлементов;

var ИмяМассива : имяТипа;

Заполнение массива данными

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

Способы задания массива:

  • Ввод данных с клавиатуры;

program massiv ;

uses crt;

type mas=array [1..10] of integer;

var i: integer;

m:mas;

begin

for i:=1 to 10 do

begin

write ('Элемент #', i, ': ' );

readln (m[i]);

end;

end.

  • С помощью датчика случайных чисел;

program massiv ;

uses crt;

type mas=array [1..10] of integer;

var i: integer;

m:mas;

begin

randomize;

for i:=1 to 10 do

begin

m[i]:= random(20)+1;

write(m[i], ' ');

end;

writeln;

end.

  • Присваиванием заданных значений:

a[1]:=29; a[2]:=34; и т.д.

  • Считывая значения элементов из файла.

В любом случае для заполнения массива используется цикл for.

Вывод массива:

Вывод массива из 5 элементов:

  • В столбец:

For i:=1 to 5 do writeln (a[i]);

  • В одну строку, через пробел:

For i:=1 to 5 do writeln (a[i], ‘ ‘);

  • С заданием формата, где под каждый элемент отводится 4 позиции:

For i:=1 to 5 do write (a[i] : 4);

Базовые задачи на массивы:

  1. На суммировку

  2. На количество

  3. На замену.

III. Закрепление. Решение задач.

Задача 1. Создать массив из n элементов. Напечатать элементы массива в прямом и обратном порядке.

program massiv ;

uses crt;

type mas=array[1..1000] of integer;

var i,n: integer;

m:mas;

begin writeln ('введи кол-во эл-в массива') ;

readln (n);

randomize;

for i:=1 to n do

begin

m[i]:=random(45)+1;

write(m[i], ' ');

end;

writeln;

for i:=n downto 1 do

begin

write(m[i], ' ');

end; end.


Задача 2. Дан массив целых чисел. Определить: 1) сумму всех элементов массива; 2) произведение всех элементов массива; 3) среднее арифметическое всех элементов массива.


program massiv ;

uses crt;

type mas=array[1..1000] of integer;

var i,s,n,p,k: integer;

m:mas;

begin

randomize;

for i:=1 to 10 do

begin

m[i]:=random(45)+1;

write(m[i], ' ');

s:=S+m[i];

end;

writeln;

write( s);

end.

program massiv ;

uses crt;

type mas=array[1..1000] of integer;

var i,s,n,p,k: integer;

m:mas;

begin s:=1;

randomize;

for i:=1 to 10 do

begin

m[i]:=random(5)+1;

write(m[i], ' ');

s:=S*m[i];

end;

writeln;

write( s);

end.

program massiv ;

uses crt;

type mas=array[1..1000] of integer;

var i,n,p,k: integer;

m:mas; s:real;

begin s:=0;

randomize;

for i:=1 to 10 do

begin

m[i]:=random(10)+1;

write(m[i], ' ');

s:=S+m[i];

end;

writeln;

write( s/10);

end.

Задача 3*. Переставить элементы, стоящие на нечетных местах, с соответствующими элементами на четных местах.

program massiv ;

uses crt;

type mas=array[1..1000] of integer;

var i,n,r: integer;

m:mas;

begin writeln ('введи кол-во эл-в массива') ;

readln (n);

randomize;

for i:=1 to n do

begin

m[i]:=random(45)+1;

write(m[i], ' ');

end;

writeln;

i:=1;

while i<= n-1 do

begin

r:=m[i]; m[i]:=m[i+1]; m[i+1]:=r;

inc(i,2); end;

for i:=1 to n do

write(m[i], ' ');

end.

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


V. Домашнее задание.

1. Дан массив целых чисел. Выяснить, верно, ли что сумма элементов массива есть четное число.

2. Дан массив целых чисел. Напечатать все элементы, оканчивающиеся нулем.











































Урок 33-34

Тема: Действия с одномерными массивами

Цель: отрабатывать навык решения задач на массив.


  1. Проверка дом. задания.

2. Решение задач.

Задача 1. Дано натуральное число n (n≤999999). Заполнить массив его цифрами, расположенными в обратном порядке (первый элемент равен последней цифре, второй – предпоследней и т.д.).

program massiv ;

uses crt;

type mas=array[1..1000] of integer;

var i,n,r: integer;

m:mas;

begin writeln ('введи число') ;

readln (n); i:=1;

repeat

m[i]:= n mod 10;

n:= n div 10;

i:=i+1;

until n=0;

for r:=1 to i-1 do

write(m[r], ' ');

end.

Задача 2. Дан массив целых чисел. Выяснить: 1) является ли p-й элемент массива положительным числом; 2) является ли k-й элемент массива четным числом; 3) какой элемент массива больше, k-й или p-й.


1) program massiv ;

uses crt;

type mas=array[1..1000] of integer;

var i,n,p,k: integer;

m:mas;

begin writeln ('введи p') ;

readln (p);

randomize;

for i:=1 to 10 do

begin

m[i]:=random(45)+1-23;

write(m[i], ' ');

end;

writeln;

if m[p]>0 then

write( ' положит. ')

else write( ' нет ');

end.

program massiv ;

uses crt;

type mas=array[1..1000] of integer;

var i,n,p,k: integer;

m:mas;

begin writeln (' введи k') ;

readln (k);

randomize;

for i:=1 to 10 do

begin

m[i]:=random(45)+1;

write(m[i], ' ');

end;

writeln;

if m[k] mod 2=0 then

write( ' yes ')

else write( ' no ');

end.

program massiv ;

uses crt;

type mas=array[1..1000] of integer;

var i,n,p,k: integer;

m:mas;

begin writeln (' введи k,p') ;

readln (k,p);

randomize;

for i:=1 to 10 do

begin

m[i]:=random(45)+1;

write(m[i], ' ');

end;

writeln;

if m[k]>m[p] then

write( ' k ')

else write( ' p ');

end.


Задача 3. Посчитать кол-во четных элементов массива.

program massiv ;

uses crt;

type mas=array[1..1000] of integer;

var i,n,s: integer;

m:mas;

begin writeln ('введи число') ;

readln (n);

randomize;

for i:=1 to n do

begin

m[i]:=random(45)+1;

write(m[i], ' ');

if m[i] mod 2=0 then s:=s+1; или inc(s,1)

end;

writeln;

write(s );

end.

Задача 4. Удалить из массива k-й элемент.

program massiv ;

uses crt;

type mas=array[1..1000] of integer;

var i,n,k: integer;

m:mas;

begin writeln ('введи число') ;

readln (n);

randomize;

for i:=1 to n do

begin

m[i]:=random(45)+1;

write(m[i], ' ');

end;

writeln;

write('введи номер эл-та '); readln (k) ;

writeln;

for i:=1 to n do

if i>=k then m[i]:=m[i+1];

for i:=1 to n-1 do

write(m[i], ' ');

end.

Задача 5. Вставить элемент в массив.

program massiv ;

uses crt;

type mas=array[1..1000] of integer;

var i,n,k,r: integer;

m:mas;

begin writeln ('введи число') ;

readln (n);

randomize;

for i:=1 to n do

begin

m[i]:=random(45)+1;

write(m[i], ' ');

end;

writeln;

write('введи номер эл-та '); readln (k) ;

write('введи эл-т '); readln (r) ;

writeln;

for i:=n+1 downto 1 do

if i>k then m[i]:=m[i-1];

m[k]:=r;

for i:=1 to n+1 do

write(m[i], ' ');

end.



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

  1. Домашнее задание.

    1. Дан массив целых чисел. Все элементы, оканчивающиеся цифрой 4, уменьшить вдвое.

    2. Массив содержит 2n элементов. Из суммы первых n его элементов вычесть сумму последних n элементов.
































Урок 35-36

Тема: Действия с одномерными массивами.

Цель: отработка навыка решения задач на массивы.


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

  • Что такое массив?

  • Перечислите способы задания массива.

  • Как описывается массив на Паскале?

  • Назовите базовые задачи на массивы.

  1. Решение задач.

    • Задача 1. Дан массив. Составить программу расчета квадратного корня из любого элемента массива.

    • Задача 2. Дан массив. Все его элементы увеличить в два раза.

    • Задача 3. Дан массив. Напечатать все четные элементы.

    • Задача 4. Дан массив. Определить количество элементов кратных а.

    • Массив задан датчиком случайных чисел. Найти сумму четных элементов массива.

    • Массив задан с клавиатуры. Определить имеется ли в массиве заданный элемент.


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


4. Домашнее задание.

1. Дан массив. Найти среднее арифметическое элементов массива, больших 10.

2. Дан массив. Определить количество элементов, отличных от последнего элемента.


























Урок 37-38

Тема: Действия с одномерными массивами. Нахождение максимального (минимального) элемента массива.

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


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

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


1 вариант

2 вариант

1. Массив задан датчиком случайных чисел. Заменить нулевые элементы числом 100.

2. Массив задан датчиком случайных чисел. Верно ли, что сумма элементов, которые больше 20, превышает 100.

1. Массив задан датчиком случайных чисел. Посчитать количество нулевые элементов массива.

2. Массив задан датчиком случайных чисел. Верно ли, что сумма элементов, кратна 11.


  1. Новый материал.

Задача 1. Найти максимальный элемент массива.

Алгоритм.

min- минимальный элемент, l – его номер.

  1. Кладем в min а[1], в l=1.

  2. Сравниваем min с последующим элементом массива. Если а[i]< min, то в min кладем а[i], в l=i, в противном случае ничего не делаем.

  3. Начать сначала, пока не кончится массив.


program massiv ;

uses crt;

type mas=array[1..1000] of integer;

var i,n,max, l: integer;

m:mas;

begin writeln ('введи число') ;

readln (n);

randomize;

for i:=1 to n do

begin

m[i]:=random(45)+1;

write(m[i], ' ');

end;

writeln;

max:=m[1]; l:=1;

for i:=2 to n do

if m[i]>max then begin max:=m[i]; l:=i; end;

write(max , ' его номер ', l );

end.

Задача 2. Определить на сколько максимальный элемент больше минимального.


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

  2. Домашнее задание.

  1. Какое число в массиве встретится раньше: максимальное или минимальное.

  2. В массиве хранится информация о росте 35 человек. Определить у скольких человек самый большой рост.

Урок 39-40

Тема: Решение задач. Контрольная работа №4 «Действия с одномерными массивами».

Цель: систематизация знаний учащихся; контроль знаний учащихся.


  1. Закрепление. Решение задач.

  • Что такое массив?

  • Способы заполнения массива?

  • Перечислите базовые задачи на массивы.

  1. Верно ли, что максимальный элемент - число четное?

  2. Дан массив А(15). Определить количество элементов равных 37.

  3. Дан массив А(13). Найти сумму элементов больших 17, но меньших 65.

  4. Дан массив А(13). Напечатать все элементы, оканчивающиеся на цифру пять.


II. Контрольная работа.


I вариант

II вариант

1. Перечислите способы заполнения массива.

2. Дан массив А(15). Определить сумму элементов массива кратных 7.

3. Дан массив В(12). Напечатать все элементы, оканчивающиеся нулем.

4. В массиве хранится информация о стоимости каждой из 60 книг. Определить количество самых дешевых книг.

1. Перечислите базовые задачи на массивы.

2. Дан массив С(17). Определить количество элементов массива кратных 11.

3. Дан массив D(11). Напечатать все элементы, не превышающие числа 30.

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















Разработки уроков по программированию на Паскале
  • Информатика
Описание:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Разработки уроков

информатики по теме:

«Программирование

на языке Паскаль».

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Урок 1-2

Тема: Правила ТБ. Этапы решения задач на ЭВМ. Алгоритм. Свойства алгоритма. Исполнитель алгоритма.

Цель: повторить правила ТБ при работе в компьютерном классе,

          Определить этапы решения задач на ЭВМ,

          Ввести понятие алгоритма и его свойств.

 

1.      Правила ТБ. Заполнить журнал по ТБ.

2.      Новый материал

·         Задача в информатике

·         Этапы решения задачи

1.      Постановка задачи

2.      Математическая формализация

3.      Составление алгоритма

4.      Запись алгоритма на языке программирования

5.      Исполнение программы

6.      Анализ результатов и корректировка алгоритма, в случае необходимости.

·         Алгоритм – четкая последовательность действий.

·         Исполнитель алгоритма

·         Игра Баше. Имеется 15 предметов. Соперники ходят по очереди, за каждый ход любой из играющих может взять 1, 2 или 3 предмета. Проигрывает тот, кто вынужден взять последний предмет.

Алгоритм выигрыша для первого игрока имеет вид:

1)      взять 2 предмета

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

Данный алгоритм приводит к выигрышу для 7, 11, 15, 19 предметов.

15 пр.

2

4-x

4-y

4-z

x

y

z

1

 

21

x

y

z

c

d

1

4-x

4-y

4-z

4-c

4-d

 

·         Задумайте натуральное число

1)      Умножите его на 5

2)      Прибавить 8

3)      Сумму умножить на 2

Алгоритм отгадывания числа

1)      вычесть из результата 16

2)      отбросить крайнюю правую цифру, получим искомое число.

(x*5+8)*2=y

10x = y-16

·         Свойства алгоритма

¨      Дискретность

¨      Точность

¨      Понятность

¨      Конечность

¨      Массовость

3.      Решение задач.

1)      Составить алгоритм, как набрать из реки 7л воды, если имеются сосуды емкостью 3л и 8л.

 

1

2

3

4

5

6

7

8

0

3

0

3

0

2

2

3

8

5

5

2

2

0

8

7

 

2)      Алгоритм Евклида (НОД)

1.      Если числа равны, то взять любое из них в качестве ответа, иначе продолжить выполнение алгоритма.

2.      Найти большее из чисел.

3.      Заменить большее число разностью большего и меньшего чисел.

4.      Начать сначала.

3)      Исполнитель умеет:

Умножать число на 2;

Увеличивать число на 1.

Составить для этого исполнителя алгоритм получения числа 100 из единицы.

4)      Исполнитель умеет из дроби a/bполучать любую из дробей (a-b)/b, (a+b)/b, b/a.  Как получить из дроби ½ дробь ¼ ?

     

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

 

5. Домашнее задание. § 38(авт. И.Г. Семакин. Информатика 7-9), записи в тетради.

                  Составить алгоритм.

1.      Некий человек должен перевезти в лодке через реку волка, козу и капусту. Каждый раз он может перевезти только либо волка, либо козу, либо капусту. На одном берегу нельзя оставить вместе козу и волка, а также козу и капусту. Составить алгоритм переправы на другой берег.

2.      Разведывательный дозор в составе двух человек подошел к реке. Мост был разрушен, а река слишком глубока и широка, чтобы переправить через нее вброд или вплавь. Около берега в маленькой лодке проплывали два мальчика. Как переправиться на этой лодке через реку, если она может выдержать только либо одного взрослого, либо двух мальчиков?

 

 

 

 

 

 

 

 

 

 

 

 

 

Урок 3-4

Тема: Алфавит языка Паскаль. Типы данных. Арифметические операции. Арифметические выражения. Структура программы на языке Паскаль. Основные операторы.

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

 

1.      Опрос.

·         Назовите этапы решения задач на ЭВМ.

·         Дайте определение алгоритма. Назовите свойства алгоритма. Привести пример алгоритма.

·         Прочитать алгоритм к задаче про волка, козу, капусту.

2.      Новый материал.

·         Паскаль был разработан в 1968-1970 гг. Н.Витером. Турбо Паскаль появился в 1984 году.

·         Алфавит

·         Латинские прописные и строчные буквы

·         Цифры 0-9

·         Знаки + - * / \< > ^ , . ; : ‘ () _

·         Служебные слова.

·         Константы – числа, символы, строки, которые не изменяют своего значения в процессе выполнения программы.

CONSTe=2.71 (число Эйлера)

              Р=3.14

·         Переменные – величины, которые меняются в процессе выполнения программы. Объявляя переменную заданного типа, вы отводите в памяти место, где будет хранится ее значение.

Типы данных в Паскале:

1.      Простые

2.      Структурированные

3.      Ссылочные

4.      Процедурные

5.      Объектные

 

                                     Простые типы данных

            Порядковые                                              Вещественные

             Целый

             Логический

             Символьный

             Ограниченный

             Перечисляемый

 

Целочисленный тип

 

Тип

 

Диапазон значений

Формат

Shorting

Короткий

-128..127

1 байт

Integer

Целый

-32768..32867

2 байта

Longint

Длинный

-2 147 483 648..2 147 483 647

4 байта

 

Вещественный тип

 

Тип

 

Точность

Формат

Real

Вещественный

11-12 знаков

6 байт

Double

Двойной точности

15-16 знаков

8 байт

 

·         Арифметические выражения и операции.

 Арифметическое выражение состоит из операндов, скобок, знаков операций.

 

Сложение

+

Вычитание

-

Умножение

*

Деление

/

Целочисленное деление 11 div 5=2

Div

Остаток от деления         11 mod 5=1  

Mod

 

Арифметические функции

 

|x|

abs(x)

x2

sqr(x)

sqrt(x)

pi

sin x

sin(x)

cos x

cos(x)

 

·         Записать математические выражения на языке Паскаль:

,     ,                    ,                 .

·         Перевести из линейной записи в обычную.

a/b/c;           a*b/c;                a+b/c;                (a+b)/c;          a+b/b+c;             (a+b)/(b+c).   

 

·         Основные операторы.

·         Read (a1, a2,…,an) – оператор ввода данных

Readln (a1, a2,…,an)

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

·         Write (a1, a2,…,an) – оператор вывода данных

Writeln (a1, a2,…,an)

Writeln – переход на следующую строку.

·         := оператор присваивания. Вычисляет значение выражения, стоящего справа и присваивает переменной стоящей слева. Нельзя с помощью одного оператора присваивания присвоить нескольким переменным одно и то же значение. Например: нельзя записать i:=j:=k:=0; необходимо: i:=0; j:=0; k:=0.

 

·         Структура программы.

program имя программы;                                {заголовок программы}

uses   имя модуля1,..;                                       {раздел библ. модулей}

      label   имя метки 1,..;                                         {раздел меток}

      const  имя константы = значение константы;   {раздел констант}

      type;                                                                       {раздел типов}

      var ;                                                                        {раздел переменных}

      begin

       операторы

      end.

 

3.      Решение задач.

  • Составить программу вычисления периметра и площади прямоугольника.

Program z1;

Var a, b, p, s: real;

Begin

     Writeln(‘b’);

      Readln (a, b);

      P:= 2*(a+b);

      S:=a*b;

      Writeln (p, s);

      Readln;

      End.

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

5.      Домашнее задание. Выучить конспект.

Записать данные выражения на Паскале: ,        ,           ,             , .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Урок 5-6

Тема: Составление линейных алгоритмов.

Цель: учить составлять линейные алгоритмы, реализовывать их на компьютере,

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

 

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

2.      Письменный опрос

 

I вариант

1.       Назовите этапы решения задач с помощью ЭВМ.

2.       Перечислите стандартные функции на Паскале

3.       Запишите выражение на языке Паскаль

II вариант

1.      Алгоритм и его свойства.

2.      Перечислите основные операторы на Паскале

3.      Запишите выражение на языке Паскаль

 

 

3.      Решение задач.

 

1.   Вычислить сторону ромба, если известны две его диагонали.

Program z2;

Var a, d1, d2: real;

Begin

Writeln (‘Введи диагонали’);

Readln (d1, d2);

a:= sqrt(sqr(d1/2)+ sqr(d2/2));

Writeln (‘a=’,a);

Readln;

End.

 

2.  Вычислить периметр и площадь ромба, у которого сторона и меньшая диагональ равны а. ()

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

5.  Домашнее задание.

 

1.      Вычислить длину окружности и площадь круга по заданному радиусу.

2.      Вычислить площадь прямоугольного треугольника по его катетам.

 

 

 

 

 

 

 

 

 

 

 

Урок 7-8

Тема: Составление линейных алгоритмов.

Цель: учить составлять линейные алгоритмы, реализовывать их на компьютере,

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

 

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

a.       Вычислить длину окружности и площадь круга по заданному радиусу.

Program z1;

Var r, c, s: real;

Begin

Writeln (‘Введи радиус’);

Readln (r);

c:= 2*3,14*r;

s:=3,14*sqr(r);

Writeln (‘c=’,c);

Writeln (‘s=’,s);

Readln;

End.

 

b.      Вычислить площадь прямоугольного треугольника по его катетам.

 Program z2;

Var a,b,s: real;

Begin

Writeln (‘Введи катеты’);

Readln (a,b);

s:=1/2*a*b;

Writeln (‘s=’,s);

Readln;

End.

 

 

2.      Решение задач.

a.       Даны два целых числа. Найти их среднее арифметическое и среднее геометрическое.

b.      Даны длины сторон прямоугольного параллелепипеда. Найти объем и площадь боковой поверхности.

                                   V = abc

                                   S = 2(a+b)c

 

 

 

 

 

c.       Найти сумму кубов корней уравнения x2 - ax - 2 = 0.

 

d.      Найти целую часть и остаток от деления а на b. а и b целые числа.

Program z5;

Var a, b, c, d: Integer;

Begin

Writeln (‘Введи числа’);

Readln (a, b);

c:= a mod b ;

d:= a div b;

Writeln (‘остаток’,c);

Writeln (‘целая часть’,d);

Readln;

End.

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

4. Домашнее задание.

1.      Вычислить периметр прямоугольного треугольника по его катетам.

2.      От полуночи минутная стрелка описала угол в k градусов. Какое время показывают часы.

Program z7;

Var k, ch, min: Integer;

Begin

Writeln (‘Введи угол’);

Readln (k);

ch:= k div 360 ;

min:= k mod 360 div 6;

Writeln (ch, ‘часов’, min, ‘минут’);

Readln;

End.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Урок 9-10

Тема: Решение линейных задач. Контрольная работа № 1 «Решение линейных задач»

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

           контроль знаний учащихся

 

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

2.      Решение задач.

1.    Устная работа

·         Найти ошибки:

a)      A:= 25+B;

b)      4-B:=A;

c)      ABS(A):= B;

d)      4:=B;

e)      B:=SQR(A);

f)       B:=A

Ошибки в задании b), c), d).

·         Определить значения x, y.

x:=1.2;  y:=x*2;

y:=y-5*x;

x:=ABS(y);

Writeln (x, y);

     Ответ: х=3.6;  y=-3.6.

·         Определить значения x, y.

a:=-7; b=a/2;

a:=(a+b)/2;

b:=a-b;

Writeln (a,b);

Ответ: а=-5.25; b=-1.75.

 

2.      Определить объем цилиндра и площадь его полной поверхности, если известны радиус основания и высота цилиндра.

Формулы:  V=πr2h; S=2πr(r+h).

 

3.      Найти сумму цифр заданного трехзначного числа.

Program z6;

Var n, a1, a2, a3, s: Integer;

Begin

Writeln (‘Введи число’);

Readln (n);

a1:= n div 100  ;

a2:= n div 10 mod 10;

a3:= n mod 10;

s:= a1+a2+a3;

Writeln (‘сумма’, s);

Readln;

End.

 

4.  Дано трехзначное число. Найти число, полученное при прочтении его цифр справа налево. (123321)

Program z8;

Var n, a1, a2, a3, n1: Integer;

Begin

Writeln (‘Введи число’);

Readln (n);

a1:= n div 100  ;

a2:= n div 10 mod 10;

a3:= n mod 10;

n1:= a3*100+ a2*10+a1;

Writeln (‘новое число’, n1);

Readln;

End.

 

3. Контрольная работа №1 «Решение линейных задач»

      

1 вариант

2 вариант

1. Дайте определение алгоритма. Перечислите свойства алгоритма

1.   Перечислите этапы решения задач на ЭВМ.

2. Указать значения величин Sи k после выполнения следующих операторов присваивания:

s:=14

k:=-3

d:=s+1

s:=d

k:=2*S

 s:=0

 k:=30

 d:=k-5

 k:=2*d

   s:=k-100

3.  В каком из примеров допущены ошибки и какие именно?

Var A, B: real;

a)      A:= 5 – B;

b)      A+B:=5;

c)      Sqrt(A):=B;

d)     A:=B;

e)      5:=A;

f)       A:=5;

Var A, B: integer;

a)      A:= B+7;

b)      A-B:=4

c)      Abs(A):=5-B

d)     B:=A

e)      A:=-7

       f)   A:= Sqrt(B)

4. Записать выражение по правилам языка Паскаль

5. Вычислите площадь треугольника по известным длинам его сторон. Воспользуйтесь формулой Герона: где .

5. Определите расстояние, пройденное телом за время t, если известны его начальная скорость и постоянное ускорение. Формула: .

6. Найти высоту равностороннего треугольника, если сторона равна a.

 

6. Найти боковую сторону равнобедренного треугольника, если основание a, высота к основанию h.

 

                                                                                                                                                                                                                                                                                                                                                                                               

 

 

 

 

 

Урок 11-12

Тема: Операторы условного и безусловного перехода на Паскале.

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

 

1. Анализ контрольной работы.

2. Новый материал.

 

Если в программе после выполнения очередного оператора надо выполнить не следующий по порядку, а другой, помеченный для этого меткой, используется оператор безусловного перехода GOTO. Он осуществляет переход к инструкции, перед которой стоит метка, объявленная в разделе меток Label.

 

Условный оператор

Условный оператор имеет полную и краткую формы.

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

if условие then оператор1
else оператор2;

В качестве условия указывается операция отношения. Сложные условия составляются из простых с помощью логических операций and, or. Если условие оказывается истинным, то выполняется оператор1, в противном случае выполняется оператор2.

Краткая форма условного оператора имеет вид:

if условие then оператор;

Если условие оказывается истинным, то выполняется оператор, в противном случае происходит переход к следующему оператору программы.

Если в качестве оператора выполняются несколько операторов, то они заключаются в операторные скобки beginend.

 

3. Решение задач.

 

Задача 1. Даны два числа. Найти большее из них.

Задача 2. Найти большее из трех чисел.

program z1;

uses crt;

var a,b,c,max:real;

begin

writeln ('Введи числа');

readln(a,b,c);

if a>b then max:=a else max:=b;

if c>max then max:=c;

writeln(max);

end.

Задача 3. Принадлежит ли число n интервалу (a,b).

Задача 4. Вычислить значение функции: .

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

5. Домашнее задание.

1. Могут ли углы α, β, γ быть углами одного треугольника.    

2. Даны точки М(1,2) и Р(3, а). Лежит ли отрезок МР в I четверти.     

 

Дополнительно.

  1. Составьте программу, которая уменьшает первое число в пять раз, если оно больше второго по абсолютной величине.
  2. По заданному значению х вычислить значение
  3. Определить принадлежит ли точка (x, y) фигуре
               

 

 

 

 

 

 

 

 

 

 


                                                                     

 

 

 

4. Дано двузначное число. Определить кратна ли трем сумма его цифр.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Урок 13-14

Тема: Операторы условного и безусловного перехода на Паскале.

Цель: отрабатывать навык правильного использования условного оператора.

 

1. Проверка дом. задания.

1. Могут ли углы α, β, γ быть углами одного треугольника.    

2. Даны точки М(1,2) и Р(3, а). Лежит ли отрезок МР в I четверти.     

2. Решение задач.

Задача 1. Является ли заданное число четным.

Задача 2. Является ли число а полным квадратом.

If  sqr(a) =Int (sqr(a)) thenwrite (‘yes’) elsewrite (‘no’);

 

Задача 3. Является ли треугольник с углами а и b равносторонним.

If  (a=60) and (b=60) then write (‘yes’) else write (‘no’);

Задача 4. Является ли равнобедренным треугольник со сторонами 2, 3, х.

If  (x=2) or (x=3) then write (‘yes’) else write (‘no’);

 

Задача 5. Выяснить взаимное расположение прямой y=kx+b и точки (m, n).

Задача 6. Вывести на экран номер четверти, которой принадлежит точка (x,y) ().

 

Begin

If (x>0) and (y>0) then

Writeln (‘I ’)

Else if (x>0) and (y<0) then

Writeln (‘IV ’)

Else if (x<0) and (y>0) then

Writeln (‘II ’)

Else Writeln (‘III ’);

Readln;

End.

 

Задача 7. Решить квадратное уравнение.

Program kvur;

uses crt;

var d, a, b, c, x, x1, x2: real;

begin

readln (a, b, c);

d:=sqr(b)-4*a*c;

if d>0 then begin x1:= (-b-sqrt(d))/(2*a); x2:= (-b+sqrt(d))/(2*a);

                  writeln(x1:7:3,x2:7:3); end

                  else if d=0 then  begin x:=-b/(2*a);writeln(x:7:3); end

                  else writeln ('korney no');

end.     

 

Задача 8. Принадлежит ли точка фигуре.

 

 

 

 

y=2

 

 

 

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

4. Домашнее задание.

1.Выяснить оканчивается ли заданное число нулем.

2. Выяснить взаимное расположение прямой ОХ и точки (a,b).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Урок 15-16

Тема: Оператор выбора  на Паскале.

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

 

1. Проверка дом. задания.

1.Выяснить оканчивается ли заданное число нулем.

2. Выяснить взаимное расположение прямой ОХ и точки (a,b).

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

 

I вариант

II вариант

1. Дано натуральное число. Верно ли, что оно заканчивается нечетной цифрой.

2. Известен рост трех человек. Определить, одинаков ли их рост.

1.Дано натуральное число. Верно ли, что оно заканчивается четной цифрой.

2. Известны длины трех сторон треугольника. Является ли треугольник разносторонним.

 

3. Новый материал

Оператор выбора Не рекомендуют использовать многократно вложенный друг в друга условный оператор if. Если необходимо проверить много условий и в зависимости от них выполнять те или иные действия, то используют оператор выбора case.

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

case переключатель of
  список выбора 1: оператор1;
  ...
  список выбора N: операторN;
  else оператор0
end;

Переключатель представляет собой выражение порядкового типа (целого, символьного, перечислимого или интервального), а списки выбора содержат константы совместимого типа. Как и в операторе if, ветка else может отсутствовать.

Оператор case работает следующим образом. Если в одном из списков выбора найдено текущее значение переключателя, то выполняется оператор, соответствующий данному списку. Если же значение переключателя не найдено ни в одном списке, то выполняется оператор по ветке else или, если ветка else отсутствует, оператор case не выполняет никаких действий.

Список выбора состоит либо из одной константы, либо из диапазона значений вида a..b (константа a должна быть меньше константы b); можно также перечислить несколько констант или диапазонов через запятую:

case DayOfWeek of
  1..5: writeln('Буднийдень');
  6,7: writeln('Выходнойдень');
end;

 

3. Решение задач.

 Задача 1. Составить программу, которая в зависимости от порядкого номера дня недели выводит на экран его название.

Program z1;

Var n: integer;

Begin

Read (n);

Case n of               или  n mod 7

1: Write (‘понедельник’);

2: Write (‘вторник’);

3: Write (‘среда’);

4: Write (‘четверг’);

5: Write (‘пятница’);

6: Write (‘суббота’);

7(0): Write (‘воскресенье’);

end;

end.

 

Задача 2.  Выполнить заданную арифметическую операцию с двумя числами.

program z2;

uses crt;

var op:char;

a,b,s:real;

begin

write('введи числа '); readln(a,b);

 write('введи знак операции '); readln(op);

 case op of

 '+': s:=a+b;

 '-': s:=a-b;

 '*': s:=a*b;

 '/': s:=a/b;

 end;

  write(a, op, b,'=',s);

  end.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        

Задача 3. По количеству набранных при тестировании баллов выставить соответствующую отметку. Пусть введена 100-бальная система и заданы следующие критерии оценивания:

 

Сумма баллов

90-100

80-89

65-79

<65

Отметка

5

4

3

2

 

program z2;

uses crt;

var s : integer;

       b: 2..5;

begin

write('Введите балл '); readln(s);

 case s of

 90..100: b:=5;

 80..89: b:=4;

 65..79: b:=3;

 else b:=2

 end;

  write('Отметка ', b);

  end.

 

Задача 4. В старояпонском календаре принят 60-летний цикл, состоящий из пяти 12-летних подциклов. Подциклы обозначались названиями цветов: зеленый, красный, желтый, белый и черный. Внутри каждого подцикла годы носили названия животных: крыса, корова, тигр, заяц, дракон, змея, лошадь, овца, обезьяна, курица, собака и свинья.  Например: 1984 год – год начала очередного цикла – назывался Годом Зеленой Крысы.

Составить программу, которая по заданному номеру года нашей эры n напечатает его название по старояпонскому календарю. Рассмотреть два случая:

а) Значение n≥ 1984;

б) Значение nможет быть любым натуральным числом.

 

program z2;

uses crt;

var n : integer;

begin

write('введи год '); readln(n);

 n:=(n-1984) mod 12;

 case n of

 0: write('крыса');

 1: write('корова');

 2: write('тигр');

 3: write('заяц');

 4: write('дракон');

 5: write('змея');

 6: write('лошадь');

  7: write('овца');

  8: write('обезьяна');

  9: write('курица');

  10: write('собака');

  11: write('свинья');

   end;

  end.

 

program z2;

uses crt;

var n,m : integer;

begin

write(' введи год '); readln(n);

 if n>= 1984 then begin m:=(n-1984) mod 5;

      n:=(n-1984) mod 12;end

      else begin m:= 5-(1984-n) mod 5;

         n:= 12-(1984-n) mod 12; end;

 case m of

 0: write('зеленый  ');

 1: write('красный ');

 2: write('желтый  ');

 3: write('белый  ');

 4: write('черный  ');

 end;

 case n of

    0: write('крыса ');

 1: write('корова ');

 2: write('тигр ');

 3: write('заяц ');

 4: write('дракон ');

 5: write('змея ');

 6: write('лошадь');

  7: write('овца');

  8: write('обезьяна');

  9: write('курица');

  10: write('собака');

  11: write('свинья');

end;

    end.

 

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

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

 

1.      Принадлежит ли точка фигуре.

2. Вычислить значение функции..

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Урок 17-18

Тема: Решение задач на ветвление. Контрольная работа № 2 «Решение задач с развилкой».

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

 

1. Проверка дом. задания

2. Анализ сам. работы

3. Решение задач.

1. Принадлежит ли точка прямой Ax+By+C=0; параболе ax2+b=0.

2. Даны радиус круга и сторона квадрата. У какой фигуры площадь больше?

3. Является ли биссектрисой прямая, лежащая внутри угла и образующая с его сторонами углы А и В.

4. Дано значение х. Вычислить y, если .

4. Контрольная работа.

 

I вариант

II вариант

1. Запишите операторы условного перехода.

1. Запишите оператор выбора.

2. Какое значение примет переменная a после выполнения фрагмента программы?

a:=4;

If a<0 then a:=a+1 else a:=a-1;

Write(a);

2. Какое значение примет переменная c после выполнения фрагмента программы?

c:=7;

If c >0 then c:=c+3 else c:=c-2;

Write(c);

3. Известно значение х. Вычислить y, если

3. Известно значение х. Вычислить y, если

4. Даны координаты точки. Выяснить лежит ли эта точка во второй координатной четверти.

4. Даны координаты точки. Выяснить лежит ли эта точка в третьей координатной четверти.

5.Дано двузначное число n. Определить больше ли числа 9 сумма его цифр?

5.Дано двузначное число n. Определить кратна ли трем сумма его цифр?

6*. Работа светофора для пешеходов запрограммирована следующим образом: в начале каждого часа в течении трех минут горит зеленый сигнал, затем в течении одной минуты – желтый, затем в течении двух минут – красный. С начала работы светофора прошло t мин. Какой свет горит?

 

 

 

                    Урок  19-20 Тема: Операторы цикла на Паскале. Цикл со счетчиком. Цель:  познакомить учащихся с форматом оператора цикла с параметром; объяснить особенности применения оператора;   1.      Анализ контрольной работы. 2.      Новый материал ·         Цикл представляет собой последовательность операторов, которая выполняется неоднократно. ·         Оператор цикла for – цикл со счетчиком (используется с заранее известным числом повторений)

Оператор цикла for имеет одну из двух форм:

for переменная:=начальное значение to конечное значение do
  оператор;

или

for переменная:=начальное значение downto конечное значение do
  оператор;

 

Текст от слова for до слова do включительно называется заголовком цикла, а оператор после do - телом цикла. Переменная после слова for называется параметром цикла. Для первой формы цикла с ключевым словом to параметр цикла меняется от начального значения до конечного значения, увеличиваясь всякий раз на единицу, а для второй формы ключевым словом downto - уменьшаясь на единицу. Для каждого значения переменной-параметра выполняется тело цикла.

3. Решение задач.

Задача 1. Вычислить 12+22+…+122.

program z1;

uses crt;

var i:integer; s: longint;

begin

s:=0;

for i:=1 to 100 do  s:=s+sqr(i);

writeln (s);                                                    S= 650

end.

 

Задача 2. Найти все делители числа n.

program z1;

uses crt;

var n, i: integer; k: real;

begin

read (n);

for i:=1 to n do

if  n mod I = 0  then  writeln (i);

end.

 

Задача 3. Напечатать таблицу квадратных корней из чисел от 1 до 20.

program z3;

uses crt;

var i: integer; b: real;

begin

for i:=1 to 20 do

begin

b:= sqrt(i);

writeln (i: 4, b:7:2);

end;

end.

Задача 4. Составить таблицу перевода метров в ярды, если 1м = 0,91 ярда на [1; 20].

program z4;

uses crt;

var i: integer; b: real;

begin

for i:=1 to 20 do

begin

b:= i*0.91;

writeln (i: 4, b:7:2);

end;

end.

Задача 5. Сберкасса начисляет 30% годовых. Какой станет сумма S, положенная в банк на n лет.

program z5;

uses crt;

var i: integer; b: real;

begin

writeln (‘Введите сумму’); read (s);

writeln (‘Введите кол-во лет’); read (n);

for i:=1 to n do

s:= s+s*0.3;

writeln (s:7:2);

end.

Задача 6. Найти все натуральные корни, меньшие 100,  уравнения x4- 10x3+38x2-79x+70=0.

program z6;

uses crt;

var x: integer;

begin

for x:=1 to 100 do

if sqr(sqr(x))- 10*x* sqr(x)+38* sqr(x)-79*x+70=0 then writeln (x);

end.

 

Задача 7. Вычислить n!

program z1;

uses crt;

var n,i:integer; s: longint;

begin

read (n); s:=1;

for i:=1 to n do  s:=s*i ;

 writeln(s);

end.

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

5. Домашнее задание.

1.      Напечатать таблицу перевода дюймов в см. 1 дюйм = 2.54 см

2.      Вычислить

Урок  21-22 Тема: Операторы цикла на Паскале. Цикл с предусловием. Цель:  познакомить учащихся с форматом оператора цикла с предусловием, учить составлять программы на использование оператора цикла с предусловием.   1.      Проверка домашнего задания. 2.      Самостоятельная работа. 1 вариант 2 вариант 1. Составить таблицу значений функции y=x2-5x+6 на [-5; 5] y=-x2-x+6 на [-7; 8] 2. Напечатать таблицу соответствия между весом в фунтах и в кг. 1ф= 0,4 кг расстоянием в милях и в км. 1 миля = 1,8 км   3.    Новый материал. Оператор цикла while – цикл с предусловием

Оператор цикла while имеет следующую форму:

while условие do
  оператор

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

Если условие всегда оказывается истинным, то может произойти зацикливание:

while 2>1 do
  write(1);

Чтобы прервать зациклившуюся программу, следует использовать комбинацию клавиш Ctrl-F2

Точка с запятой сразу после do в Pascal ABC считается синтаксической ошибкой.

 

4.Решение задач.

 

Задача 1. Вычислить 12+32+…+252.

program z2;

uses crt;

var i:integer; s: longint;

begin

s:=0; i:=1;

while i<=25 do  begin s:=s+sqr(i); i:=i+2; end;

writeln (s);

end.

 

Задача 2. Найти НОД(а, b).

 

program z1;

uses crt;

var a, b: integer;

begin

read (a, b);

while a<>b do

if a>b then a:=a-b else b:=b-a;

 writeln (a);

end.

 

Задача 3.  Даны натуральные числа aи b, обозначающие соответственно числитель и знаменатель дроби. Сократить дробь, т.е. найти такие натуральные числа pи q, не имеющие общих делителей, что  p / q = a / b.

 

program z1;

uses crt;

var a,b,m,n:integer; p,q: real;

begin

read (a,b);

m:=a; n:=b;

while m<>n do

if m>n then m:=m-n else n:=n-m;

p:= a/m;

q:= b/m;

 writeln(p,'/',q);

end.

 

Задача 4.  Среди чисел 1, 4, 9, 16, 25, … найти первое число, большее n.

 

program z1;

uses crt;

var i, n: integer;

begin

read (n);

i:=1;

while sqr(i)<n do

i:=i+1;

 writeln (sqr(i));

end.

 

 

Задача 5. Определить количество цифр в числе.

program z1;

uses crt;

var n,i: integer;

begin

readln (n);

i:=0;

while n <>0 do

begin

n:= n div 10;

i:=i+1; end;

write (i);

end.

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

6. Домашнее задание.

Задача 1.   Дано число n.

a) напечатать те натуральные числа, квадрат которых не превышает n.

b) найти первое натуральное число, квадрат которого больше n.

 


a) program z1;

uses crt;

var i, n: integer;

begin

read (n);

i:=1;

while sqr(i) < n do

  begin writeln (i);  i:=i+1;    end;

end.

  b)  program z1; uses crt; var i,n:integer; begin read (n); i:=1; while sqr(i)<n do    i:=i+1;   writeln(i); end.


                                                                      Урок 23-24 Тема: Операторы цикла на Паскале. Цикл с постусловием. Цель:  познакомить учащихся с форматом оператора цикла с предусловием, учить составлять программы на использование оператора цикла с предусловием.   1.Проверка домашнего задания. 2.Новый материал. Оператор цикла repeat

Оператор цикла repeat имеет следующую форму:

repeat
  операторы
until условие

В отличие от цикла while, условие вычисляется после очередной итерации цикла, и если оно истинно, то происходит выход из цикла. Таким образом, операторы, образующие тело цикла оператора repeat, выполняются по крайней мере один раз.

Если условие всегда оказывается ложным, то может произойти зацикливание:

repeat
  write(1);
until 2=1;

Чтобы прервать зациклившуюся программу, следует использовать комбинацию клавиш Ctrl-F2.

3.      Решение задач.

Задача 1. Определить сумму цифр натурального числа nи вывести его запись в обратном порядке.

 

program z2;

uses crt;

var k, s, n: integer; a: longint;

begin

readln (n);

k:=0; s:=0; a:=0;

repeat

k:=k+1;

s:=s+ n mod 10;

a:= a*10 +n mod 10;

n:= n div 10;

until n=0;

writeln ('число цифр ', k, '  сумма цифр; ', s);

writeln (‘Запись в обр. порядке; ',a);

end.

Задача 2. Суммирование любого количества целых чисел.

 

program z4;

var sum: real;

count, x:integer;

begin

count:=1; sum:=0;

repeat

write ('Введите значение’, count, '-го слагаемого'); read(x);

count:=count+1;

if x<>999 then sum:=sum+x;

untilx=999;

writeln ('Сумма введенных чисел = ', sum:7:3);

end.

 

Задача 3. «Угадай число»

 

programz5;

var comp: integer;

igrok : integer;

begin

randomize;

comp:=random(100);

 repeat

write ('Введите число');  read (igrok);

if igrok > comp then writeln ('Слишком много…')

else if igrok<comp then writeln ('Слишком мало…')

else writeln ('Вы угадали! ');

until igrok=comp;

end.

Задача 4. Арифметический калькулятор.

programz1; {k-сомножители, a- число сомножителей , s - произведение}

uses crt;

var x, y, s: real;

a, b: char;

begin

repeat

write(‘x=’); read(x);

write(‘y=’); read(y);

write(‘Операция(+, -, *, /)’); read(a);

case a of

‘+’: s:=x+y;

‘-’: s:=x-y;

‘*’: s:=x*y;

‘/’: s:=x/y

else

write(‘Ошибка ввода’);

end;

writeln (x:7:3, a:3, y:7:3, ‘=’, s:7:3 );

write (‘Продолжить (y/n)’);

read(b);

until (b=’n’) or (b=’n’);

end.

 

Задача 5. Произведение N первых нечетных чисел равно p. Сколько сомножителей взято?

 

programz1; {k-сомножители, a- число сомножителей , s - произведение}

uses crt;

var k,s,p:integer; a: longint;

begin

readln(p);

k:=1; s:=1; a:=0;

repeat

s:=s*k;

k:=k+2;

a:=a+1;

until p=s;

writeln ('число сомножителей; ',a);

end.

 

Задача 6.  Известен факториал числа n. Найти это число.


program faktorial;

uses crt;

var n: real;

i: integer;

begin

read (n);

i:=1;

repeat

n:=n/i;

i:=i+1;

until n=1;

write (i-1);

end.

 

4.      Итог урока. 5.      Домашнее задание.          Найти наименьшее общее кратное (НОК) чисел nи m, если                                  HOK(n, m)=n*m/(HOД(n, m)).                                               Урок 25-26 Тема: Операторы цикла на Паскале. Решение задач.

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

 

  1. Проверка дом. задания
  2. Устная работа

 

Дана последовательность операторов. Сколько раз будет повторен цикл? Чему будут равны значенияa, b, s.

 а) a=1;  b=1;

while a+b<8 do

begin a=a+1; b=b+2;end;

s=a+b;

б) a=1; b=1;

while a <=3 do

begin

a=a+1;

 b=b+1;

end;

a

1

2

3

b

1

3

5

s

 

 

8

 

a

1

2

3

b

1

2

3

 

в) s=0; i=0;

while i<5 do

begin

 i=i+1;

s=s+100 div  i ;

end;

 

г) s=0;  i=1;

while i>1 do

begin

s=s+100 div I;

i=i-1;

end;

i

0

1

2

3

4

5

s

0

100

150

183

208

228

 

i

0

s

1

 

  3.   Решение задач.  

Задача 1. Определить сумму цифр натурального числа nи вывести его запись в обратном порядке.

 

program z3;

uses crt;

var k, s, n: integer; a: longint;

begin

readln (n);

k:=0; s:=0; a:=0;

while n<>0 do

begin

k:=k+1;

s:=s+ n mod 10;

a:= a*10 +n mod 10;

n:= n div 10;

end;

writeln ('число цифр ', k, '  сумма цифр; ', s);

writeln (‘Запись в обр. порядке; ',a);

end.

 

Задача 2. Произведение N первых нечетных чисел равно p. Сколько сомножителей взято?

 

programz1; {k-сомножители, a- число сомножителей , s - произведение}

uses crt;

var k,s,p:integer; a: longint;

begin

readln(p);

k:=1; s:=1; a:=0;

while p<>s do

begin

s:=s*k;

k:=k+2;

a:=a+1;

end;

writeln ('число сомножителей; ',a);

end.

 Контрольный пример: 105 – 4 сомножителя (105=1*3*5*7).

 

Задача 3. Найти все трехзначные числа, которые при делении на 47 дают в остатке 43.

program ostatok;

uses crt;

var i, x: integer;

begin

for i:=100 to 999 do

if i mod 47=43 then writeln (i);

end.

Задача  4.

program z2;

uses crt;

var a,b,c,n: integer;

begin

for a:=100 to 999 do

 begin

 b:=sqr(a);

 c:=b mod 1000;

 if a=c then writeln (a:7,b:7);

end;

end.

Задача 5. Распечатать в столбик таблицу умножения на 7.

program z1;

uses crt;

var p,i:integer;

begin

for i:= 1 to 9 do begin

p:=i*7;

writeln (i,'*7=',p);

end;

end.

Задача 6. Найти среднее арифметическое квадратов всех целых чисел от a до b. (Значения a и b вводятся с клавиатуры.)

program z1;

uses crt;

var i,a,b,n:integer;s:real;

begin

readln(a,b);

for i:= a to b do begin

s:=s+sqr(i); n:=n+1;   end;

s:=s/n;

writeln (s);

end.

Задача 7. Вычислить сумму .

 

Задача 8. Напечатать минимальное число, большее 200, которое нацело делиться на 17.

 

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

5. Домашнее задание.

1. Вывести на экран все целые числа от a до b, кратные некоторому числу с.

2. Найти среднее арифметическое квадратов всех целых чисел от 1 до 100.

program z1;

uses crt;

var i:integer;s:real;

begin

for i:= 1 to 100 do

s:=s+sqr(i);

s:=s/100;

writeln (s);

end.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Урок 27-28

Тема: Вложенные циклы. Решение задач.

Цель: объяснить принцип работы вложенных циклов; отрабатывать навык решения задач с вложенными циклами.

 

  1. Проверка домашнего задания
  2. Самостоятельная работа.

 

1 вариант

2 вариант

1.  Дано число m. Найти произведение 2*4*6*…*2m.

2. Сколько раз повторится тело цикла:

x:=1;

While x<5 do

begin

Writeln(x);

x:=x+3;

end;

1. Напечатать таблицу значений функции y=x3-sin(x)  на промежутке [-7; 7] с шагом равным единице.

2. Сколько раз повторится тело цикла:

a:=2;

While a<7 do

begin

Writeln(a);

a:=a+2;

end;

 

  1. Новый материал.

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

 

  1. Решение задач.

Задача 1. Найти все целочисленные решения системы.

Задача 2. Найти все двузначные числа, сумма квадратов цифр которых делится на 19.

Задача 3. В десятичной записи числа 42..4 две цифры пропущены. Восстановите их, если известно, что это число кратно 72.

program z1;

uses crt;

var a,b,c:integer;

begin

for a:= 0 to 9 do

for b:=0 to 9 do

begin

c:=42004+a*100+b*10;

if c mod 72=0 then write (c:6);

end;

end.

42 264, 42 624, 42 984.

Задача 4. Представить натуральное число m в виде суммы квадратов двух натуральных чисел.

Задача 5.  К числу 0884 слева и справа приписали по цифре так, чтобы полученное число было бы полным квадратом целого числа.(208849=4572)

program z1;

uses crt;

var a,b,c:integer;

 d:real;

begin

for a:= 1 to 9 do

for b:=0 to 9 do

begin

c:=8840+a*100000+b;

d:=sqrt(c);

if d=int(d) then write (c:6);

end;

end.

 

Задача 6. Имеется 100 руб. Сколько быков, коров и телят можно купить на все эти деньги, если плата за быка – 10 руб., за корову – 5 руб., за теленка – полтинник (0,5 руб.) и надо купить 100 голов скота?

program z1;

uses crt;

var a,b,c:integer;

 begin

for a:= 1 to 10 do

for b:=1 to 20 do

for c:=1 to 200 do                                                             с:= 100-(a+b);                   

begin

if (a+b+c=100)and (a*10+b*5+c*0.5=100) then             if  (a*10+b*5+c*0.5=100)

writeln (a:6,b:6,c:6);

end;

end.

Задача 7. Напечатать в возрастающем порядке все трехзначные числа, в десятичной записи которых нет одинаковых цифр.

program z1;

uses crt;

var a,b,c:integer;

 begin

for a:= 1 to 9 do

for b:=0 to 9 do

for c:=0 to 9 do

if (a<>b)and (b<>c)and (a<>c) then write ((a*100+b*10+c):5);

end.

Задача 8. Напечатать таблицу умножения.

program tablumnog;

uses crt;

var a,b,n:integer;

 begin

for a:= 1 to 9 do  begin

for b:=1 to 9 do

 write (a:3,'*',b,'=',a*b:2);

    writeln  ;

 end;

end.

 

Задача 9*. Найти все совершенные числа, меньшие числа n.(Совершенное число, равно сумме всех своих делителей, исключая самого себя, например 6=1+2+3.)(6, 28, 496, 8128,…, всего найдено 24 совершенных числа.)

program z3;

uses crt;

var i,j,n,m:integer;

begin

 write('введи число'); read(n);

for i:= 2 to n do  begin

m:=0;

for j:=1 to i-1 do

 if i mod j=0 then m:=m+j;

 if m=i then     writeln (i) ;

 end;

end.

 

Задача 10*. Натуральное число из n цифр является числом Армстронга, если сумма его цифр, возведенных в n-степень, равна самому числу (напр., 153=13+53+33). Получить все числа Армстронга, состоящие трех цифр. (153, 370, 371, 407)

program z1;

uses crt;

var a,b,c,n: integer;

begin

for a:=100 to 999 do

 begin

 c:=0;n:=a;

  while n<>0 do

  begin

      b:=n mod 10;

      c:=c+sqr(b)*b;

      n:=n div 10;

      end;

 if a=c then writeln (a);

end;

end.

 

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

 

5. Домашнее задание.

  1. Найти все целочисленные решения системы.
  2. Найти все трехзначные числа, у которых сумма кубов его цифр равна самому числу.
  3. Определить количество трехзначных натуральных чисел, сумма цифр которых равна целому числу n (0<n<28).

program z1;

uses crt;

var a,b,c,n,i: integer;

begin

read (n);

for a:=1 to 9 do

for b:=0 to 9 do

for c:=9 to 9 do

begin

if a+b+c=n then begin i:=I+1; writeln (a*100+b*10+c);end;

end;

writeln (I);

end.

  1. Найти все двузначные числа, которые делятся на n или содержат цифру n.

program z1;

uses crt;

var a,b,c,n,i: integer;

begin

read (n);

for a:=1 to 9 do

for b:=0 to 9 do

if ((a*100+b) mod n=0) or (a=n) or (b=n)then   write ((a*100+b*10+c):4);

end.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Урок 29-30

Тема: Решение задач на циклы. Контрольная работа №3 «Циклы на Паскале».

Цель: закрепить навыки решения задач на Паскале; контроль знаний учащихся.

 

I.                   Проверка домашнего задания (Повторить теоретические вопросы).

II.                Решение задач

  1. Найти сумму делителей каждого из целых чисел от 50 до 70.

program z1;

uses crt;

var a,b,c,i: integer;

begin

for a:=50 to 70   do  begin i:=0;

  for b:=1 to a do

if a mod b = 0 then

     i:=i+b; writeln(a:4,i:5);

 end;

end.

  1. Найти все натуральные числа a, b, c из интервала от 1 до 20, для которых выполняется равенство: a2-b2=c.
  2. Вычислить сумму: .
  3. .  Найти все целочисленные решения системы

 

III. Контрольная работа №3 «Циклы на Паскале».

 

1 вариант

2 вариант

1. Может ли тело цикла с параметром не выполниться ни разу? Когда?

1. Что такое цикл?

2.  Как оформляется цикл с предусловием. В каких случаях используется данный цикл.

2.  Как оформляется цикл с параметром. В каких случаях используется данный цикл.

3. Сколько раз повторится цикл, какие значения примут переменные,

 после выполнения программы

x:=2;

While x<=5 do

begin

Writeln(x);

x:=x+3;

end;

writeln(x);

 

a:=-2;

While a<=3 do

begin

Writeln(x);

a:=a+2;

end;

writeln(a);

4.  Найти все целочисленные решения системы

4. .  Найти все целочисленные решения системы

5. Найти сумму .

5. Найти сумму .

Урок 31-32 Тема: «Описание и использование массивов. Заполнение массива данными» Цель:  сформировать у учащихся умение заполнять одномерные массивы, выводить их на экран и обрабатывать. I.                   Анализ контрольной работы. II.                Новый материал. Если работа программы связана с хранением и обработкой большого количества однотипных переменных, для их представления в программе используют массивы.  Массив представляет собой совокупность данных одного типа и общим для всех элементов именем.  Элементы массива пронумерованы, и обратиться к каждому из них можно по номеру. Номера элементов массива иначе называют индексами, а сами элементы массива – переменными с индексами. Характеристики массива: ·                   Тип – общий тип всех элементов массива; ·                   Размерность – количество индексов массива; ·                   Диапазон изменения индекса – определяет количество элементов в массиве. Индекс – это целая константа или переменная типа integer.  При обращении к элементу массива индекс указывается в квадратных скобках после имени массива. Например: a[3], b[1,2].   Описание массива в разделе VAR Описать массив  - это объявит в разделе описания переменных var с использованием зарезервированного слова array (т.е. массив). В общем, виде выглядит так:   VarИмяМассива: array [НижняяГраница..ВерхняяГраница] Of  ТипЭлементов;   Например: Vara: array [1..100] of  integer;  { 100 элементов – целые числа} Var b: array [1..50] of  char;         {51 элемент - символы} Но прежде необходимо указать тип. Type   имяТипа =array[НижняяГраница..ВерхняяГраница]  ofТипЭлементов; varИмяМассива : имяТипа;   Заполнение массива данными Массивы, объявленные в разделе описания переменных, необходимо заполнить данными, прежде чем выполнять с ними какие-либо действия. Способы задания массива: ·         Ввод данных с клавиатуры; program massiv ; uses crt; type mas=array [1..10]  of integer; var i: integer;     m:mas; begin    for i:=1 to 10 do     begin     write ('Элемент  #', i, ':   ' );     readln (m[i]);     end;     end.   ·         С помощью датчика случайных чисел; program massiv ; uses crt; type mas=array [1..10]  of integer; var i: integer;     m:mas; begin     randomize;        for i:=1 to 10 do     begin     m[i]:= random(20)+1;     write(m[i], '  ');         end;     writeln;     end. ·         Присваиванием заданных значений: a[1]:=29;  a[2]:=34; и т.д. ·         Считывая значения элементов из файла. В любом случае для заполнения массива используется цикл  for. Вывод массива: Вывод массива из 5 элементов: ·         В столбец: For i:=1 to 5 do writeln (a[i]); ·         В одну строку, через пробел: For i:=1 to 5 do writeln (a[i], ‘ ‘); ·         С заданием формата, где под каждый элемент отводится 4 позиции: For i:=1 to 5 do write (a[i] : 4); Базовые задачи на массивы: 1.      На суммировку 2.      На количество 3.      На замену.   III.    Закрепление. Решение задач. Задача 1. Создать массив из  n элементов. Напечатать элементы массива в прямом и обратном порядке. program massiv ; uses crt;  type mas=array[1..1000] of integer; var i,n: integer;     m:mas; beginwriteln ('введи кол-во эл-в массива') ; readln (n);     randomize;        for i:=1 to n do     begin     m[i]:=random(45)+1;     write(m[i], '  ');         end;         writeln;     for i:=n downto 1 do     begin     write(m[i], '  ');         end;        end.

 

Задача 2. Дан массив целых чисел. Определить: 1) сумму всех элементов массива; 2) произведение всех элементов массива; 3) среднее арифметическое всех элементов массива.

 

program massiv ;

uses crt;

type mas=array[1..1000] of integer;

var i,s,n,p,k: integer;

    m:mas;

begin

randomize;

for i:=1 to 10 do

begin

m[i]:=random(45)+1;

write(m[i], '  ');

s:=S+m[i];

end;

writeln;

write( s);

end.

program massiv ;

uses crt;

type mas=array[1..1000] of integer;

var i,s,n,p,k: integer;

    m:mas;

begin s:=1;

randomize;

for i:=1 to 10 do

begin

m[i]:=random(5)+1;

write(m[i], '  ');

s:=S*m[i];

end;

writeln;

write( s);

end.

program massiv ;

uses crt;

type mas=array[1..1000] of integer;

var i,n,p,k: integer;

    m:mas; s:real;

begin s:=0;

randomize;

for i:=1 to 10 do

begin

m[i]:=random(10)+1;

write(m[i], '  ');

s:=S+m[i];

end;

writeln;

write( s/10);

end.

  Задача 3*. Переставить элементы, стоящие на нечетных местах, с соответствующими элементами на четных местах. program massiv ; uses crt;  type mas=array[1..1000] of integer; var i,n,r: integer;     m:mas; beginwriteln ('введи кол-во эл-в массива') ; readln (n);     randomize;        for i:=1 to n do     begin     m[i]:=random(45)+1;     write(m[i], '  ');         end;         writeln;     i:=1;     while i<= n-1 do     begin     r:=m[i]; m[i]:=m[i+1]; m[i+1]:=r;     inc(i,2); end;     for i:=1 to n do     write(m[i], '  ');     end.  

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

 

V. Домашнее задание.

1. Дан массив целых чисел. Выяснить, верно, ли что сумма элементов массива есть четное число.

2. Дан массив целых чисел. Напечатать все элементы, оканчивающиеся нулем.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Урок 33-34

Тема: Действия с одномерными массивами

Цель: отрабатывать навык решения задач на массив.

 

1.      Проверка дом. задания.

2.   Решение задач.

Задача 1. Дано натуральное число n (n≤999999). Заполнить массив его цифрами, расположенными в обратном порядке (первый элемент равен последней цифре, второй – предпоследней и т.д.).   program massiv ; uses crt;  type mas=array[1..1000] of integer; var i,n,r: integer;     m:mas; begin writeln ('введичисло') ; readln (n); i:=1; repeat m[i]:= n mod 10; n:= n div 10; i:=i+1; until n=0;     for r:=1 to i-1 do     write(m[r], '  ');     end.  

Задача 2. Дан массив целых чисел. Выяснить: 1) является ли p-й элемент массива положительным числом; 2) является ли k-й элемент массива четным числом; 3) какой элемент массива больше, k-й или  p-й.

 

1) program massiv ;

uses crt;

type mas=array[1..1000] of integer;

var i,n,p,k: integer;

    m:mas;

begin writeln ('введи p') ;

readln (p);

    randomize;

       for i:=1 to 10 do

    begin

    m[i]:=random(45)+1-23;

    write(m[i], '  ');

        end;

        writeln;

  if m[p]>0 then

      write( ' положит. ')

      else write( ' нет ');

    end.

program massiv ;

uses crt;

type mas=array[1..1000] of integer;

var i,n,p,k: integer;

    m:mas;

begin writeln (' введи k') ;

readln (k);

randomize;

for i:=1 to 10 do

begin

m[i]:=random(45)+1;

write(m[i], '  ');

end;

writeln;

if m[k] mod 2=0 then

write( ' yes ')

else write( ' no ');

end.

program massiv ;

uses crt;

type mas=array[1..1000] of integer;

var i,n,p,k: integer;

    m:mas;

begin writeln (' введи k,p') ;

readln (k,p);

randomize;

for i:=1 to 10 do

begin

m[i]:=random(45)+1;

write(m[i], '  ');

end;

writeln;

if m[k]>m[p] then

write( ' k ')

else write( ' p ');

end.

 

Задача 3. Посчитать кол-во четных элементов массива.

program massiv ;

uses crt;

  type mas=array[1..1000] of integer;

var i,n,s: integer;

    m:mas;

begin writeln ('введи число') ;

readln (n);

 randomize;

 for i:=1 to n do

    begin

    m[i]:=random(45)+1;

    write(m[i], '  ');

    if m[i] mod 2=0 then  s:=s+1;                     или    inc(s,1)

 end;

 writeln;

 write(s );

 end.

Задача 4.  Удалить из массива k-й элемент.

program massiv ;

uses crt;

  type mas=array[1..1000] of integer;

var i,n,k: integer;

    m:mas;

begin writeln ('введи число') ;

readln (n);

 randomize;

 for i:=1 to n do

    begin

    m[i]:=random(45)+1;

    write(m[i], '  ');

    end;

 writeln;

 write('введи номер эл-та '); readln (k) ;

  writeln;

 for i:=1 to n do

 if i>=k then m[i]:=m[i+1];

 for i:=1 to n-1 do

 write(m[i], '  ');

 end.

Задача 5. Вставить элемент в массив.

program massiv ;

uses crt;

  type mas=array[1..1000] of integer;

var i,n,k,r: integer;

    m:mas;

begin writeln ('введи число') ;

readln (n);

 randomize;

 for i:=1 to n do

    begin

    m[i]:=random(45)+1;

    write(m[i], '  ');

    end;

 writeln;

 write('введи номер эл-та '); readln (k) ;

 write('введи эл-т '); readln (r) ;

  writeln;

 for i:=n+1 downto 1 do

 if i>k then m[i]:=m[i-1];

 m[k]:=r;

 for i:=1 to n+1 do

 write(m[i], '  ');

 end.

 

 

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

4.      Домашнее задание.

1.      Дан массив целых чисел. Все элементы, оканчивающиеся цифрой 4, уменьшить вдвое.

2.      Массив содержит 2nэлементов. Из суммы первых nего элементов вычесть сумму последних nэлементов.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Урок 35-36

Тема: Действия с одномерными массивами.

Цель: отработка навыка решения задач на массивы.

 

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

·         Что такое массив?

·         Перечислите способы задания массива.

·         Как описывается массив на Паскале?

·         Назовите базовые задачи на массивы.

  1. Решение задач.
  • Задача 1. Дан массив. Составить программу расчета квадратного корня из любого элемента массива.
  • Задача 2. Дан массив. Все его элементы увеличить в два раза.
  • Задача 3. Дан массив. Напечатать все четные элементы.
  • Задача 4. Дан массив. Определить количество элементов кратных а.
  • Массив задан датчиком случайных чисел. Найти сумму четных элементов массива.
  • Массив задан с клавиатуры. Определить имеется ли в массиве заданный элемент.

 

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

 

4. Домашнее задание.

1. Дан массив. Найти среднее арифметическое элементов массива, больших 10.

2. Дан массив. Определить количество элементов, отличных от последнего элемента.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Урок 37-38

Тема: Действия с одномерными массивами. Нахождение максимального (минимального) элемента массива.

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

 

  1. Проверка домашнего задания.
  2. Самостоятельная работа

 

1 вариант

2 вариант

1. Массив задан датчиком случайных чисел. Заменить нулевые элементы числом 100.

2. Массив задан датчиком случайных чисел. Верно ли, что сумма элементов, которые больше 20, превышает 100.

1. Массив задан датчиком случайных чисел. Посчитать количество нулевые элементов массива.

2. Массив задан датчиком случайных чисел. Верно ли, что сумма элементов, кратна 11.

 

  1. Новый материал.

Задача 1. Найти максимальный элемент массива.

Алгоритм.

min- минимальный элемент,  l – его номер.

  1. Кладем в min а[1], в l=1.
  2. Сравниваем min с последующим элементом массива. Если а[i]< min, то в min кладем а[i], в l=i, в противном случае ничего не делаем.
  3. Начать сначала, пока не кончится массив.

 

program massiv ;

uses crt;

  type mas=array[1..1000] of integer;

var i,n,max, l: integer;

    m:mas;

begin writeln ('введи число') ;

readln (n);

 randomize;

 for i:=1 to n do

    begin

    m[i]:=random(45)+1;

    write(m[i], '  ');

 end;

 writeln;

 max:=m[1]; l:=1;

 for i:=2 to n do

   if m[i]>max then  begin max:=m[i]; l:=i; end;

 write(max , '  его номер   ',  l);

 end.

Задача 2. Определить на сколько максимальный элемент больше минимального.

 

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

1.      Какое число в массиве встретится раньше: максимальное или минимальное.

2.      В массиве хранится информация о росте 35 человек. Определить у скольких человек самый большой рост.

Урок 39-40

Тема: Решение задач. Контрольная работа №4 «Действия с одномерными массивами».

Цель: систематизация знаний учащихся; контроль знаний учащихся.

 

I.                   Закрепление. Решение задач.

·         Что такое массив?

·         Способы заполнения массива?

·         Перечислите базовые задачи на массивы.

1.      Верно ли, что максимальный элемент - число четное?

2.      Дан массив А(15). Определить количество элементов равных 37.

3.      Дан массив А(13). Найти сумму элементов больших 17, но меньших 65.

4.      Дан массив А(13). Напечатать все элементы, оканчивающиеся на цифру пять.

 

II.        Контрольная работа.

 

I вариант

II вариант

1. Перечислите способы заполнения массива.

2. Дан массив А(15). Определить сумму элементов массива кратных 7.

3. Дан массив В(12). Напечатать все элементы, оканчивающиеся нулем.

4. В массиве хранится информация о стоимости каждой из 60 книг. Определить количество самых дешевых книг.

1. Перечислите базовые задачи на массивы.

2. Дан массив С(17). Определить количество элементов массива кратных 11.

3. Дан массив D(11). Напечатать все элементы, не превышающие числа 30.

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Автор Апрелкова Галина Анатольевна
Дата добавления 04.01.2015
Раздел Информатика
Подраздел
Просмотров 1735
Номер материала 24751
Скачать свидетельство о публикации

Оставьте свой комментарий:

Введите символы, которые изображены на картинке:

Получить новый код
* Обязательные для заполнения.


Комментарии:

↓ Показать еще коментарии ↓