Конспект урока "Имена переменных. Запись арифметических выражений. Вещественные числа в Паскале" 9 класс

Учитель информатики и ИКТ Пулова Светлана Анатольевна. ГБОУ СОШ № 2031 г.Москвы
Конспект урока на тему:
Имена переменных. Запись арифметических выражений.
Вещественные числа в Паскале.
Цели урока:
Освоить правила записи имен переменных;
Научиться правильно записывать арифметические выражения в Паскале;
Изучить вещественный тип числа в Паскале;
Определить порядок составления программы в Паскале (Слайд 2)
Тип урока: урок изучения нового материала.
План урока:
1. Орг.момент.
2. Актуализация знаний.
3. Изучение нового материала.
4. Повторение.
5. Домашняя работа.
Ход урока
1. Орг.момент.
Проверка присутствующих, выяснение причин отсутствующих.
2. Актуализация знаний.
Определите без компьютера, что будет напечатано при выполнении следующих фрагментов
программ:
А) a:=100; a:=10*a+1; WriteLn(a)
Б) a:=100; a:=-a; WriteLn (a)
В) a:=10; b:=25; a:=b-a; b:=a-b; WriteLn(a, ‘ ‘, b) (Слайд 3)
3. Изучение нового материала.
Имена переменных
Мы привыкли переменные величины обозначать буквами (a, s, d ... ). Большинство языков
программирования, в том числе и Паскаль, позволяет обозначать переменные не только буквами, но
и целыми словами. Вот два равносильных фрагмента программы (Слайд 4):
a:=3;
Summa:=3;
b:=4-a;
ROBBY:=4-Summa;
WriteLn
(a,b+50)
WriteLn
(Summa,ROBBY+50)
В том и другом случае будут напечатаны числа 3 и 51. Очевидно, компьютеру все равно, как мы
обозначаем переменные величины, в смысл имен он не вдумывается и не удивляется, что
переменная Summa никакой суммой не является, а просто числом 3.
Будем называть обозначение переменной именем или идентификатором этой переменной.
Правило: Именем переменной в Паскале может служить любая последовательность цифр,
латинских букв и знака подчеркивания, не начинающаяся с цифры (Слайд 5).
Примеры правильной записи имен:
Примеры неправильной записи имен:
a x velichina zzz
polnaja_summa
tri_plus_dva
s25
k1 _k1
a1b88qq
oshibka
ж - буква не латинского алфавита
polnaja summa - содержится символ (пробел), не
являющийся буквой, цифрой или знаком
подчеркивания
2as - начинается с цифры
Domby&Son - содержится символ & , не
являющийся буквой, цифрой или знаком
подчеркивания
Учитель информатики и ИКТ Пулова Светлана Анатольевна. ГБОУ СОШ № 2031 г.Москвы
Запись арифметических выражений
В правой части оператора присваивания и в операторе WriteLn мы записывали выражения,
имеющие численное значение (например, a+b-8). Такие выражения называются арифметическими.
В будущем мы увидим, что выражения могут быть не только арифметическими. А сейчас
рассмотрим математические возможности Паскаля.
Четыре действия арифметики (и еще два) обозначаются в Паскале следующим образом
(Слайд 6):
ДЕЙСТВИЕ
РЕЗУЛЬТАТ
2 + 3
5
4 - 1
3
2 * 3
6
10 / 5
2
17 div 5
3
17 mod 5
2
На уроках математики мы привыкли писать ab+cd , подразумевая: a умножить на b плюс c
умножить на d. В Паскале это выражение мы обязаны писать так: a*b+c*d. Иначе компьютер
подумает, что нужно к переменной, имеющей имя ab, прибавить переменную, имеющую имя cd. Во
избежание двусмысленности знак умножения положено писать всегда. Например, a * (b+c).
Скобки. Ввиду того, что с клавиатуры всю информацию приходится вводить символ за
символом в одну строку, ввод двухэтажных выражений, таких как
,
очень затруднен. Поэтому для обозначения деления и выбрана косая черта. Это выражение на
Паскале положено записывать так: (a+1)/(b+1). Если бы мы не поставили скобок, то выражение
получилось бы таким a+1/b+1, а это неправильно, так как компьютер, как и мы, всегда перед
сложением и вычитанием выполняет умножение и деление, поэтому в последнем случае он бы
сначала разделил 1 на b , а затем к результату прибавил a и 1.
Вопрос: когда в выражениях можно ставить скобки? Ответ: всегда, когда у вас возникают
сомнения в правильной очередности действий. Лишняя пара скобок не помешает. Пример:
записать на Паскале выражение:
Его можно было бы записать так: (1 + a / (2+a*b)) / (3+a) * b . Однако, при такой записи мы
не знаем, что Паскаль будет делать раньше - делить (1 + a / (2+a*b)) на (3+a) или умножать (3+a)
на b. А от этого зависит результат. Добавим для верности пару скобок: ((1 + a / (2+a*b)) / (3+a)) *
b . Теперь все в порядке.
К сожалению, в выражениях разрешается писать только круглые скобки. Квадратные и
фигурные запрещены. От этого сложные выражения с большим количеством скобок на глаз
воспринимаются с трудом, так как трудно для конкретной скобки увидеть ее законную пару. В этом
случае я могу посоветовать идти "от малого к большому", то есть сначала заметить самые малые из
взятых в скобки фрагменты выражения (у нас это 3+a и 2+a*b). После этого будет уже легче
заметить более крупные фрагменты, такие как 1 + a / (2+a*b) , и т.д.
Запись десятичных дробей. Почти во всех языках программирования и уж, конечно, в Паскале, в
десятичных дробях принято вместо запятой ставить точку. Пример: 62.8 - шестьдесят две целых
восемь десятых.
Математические функции. Кроме четырех действий арифметики Паскаль может выполнять и
другие математические действия, например, возведение в квадрат, для чего имеется специальная
функция - Sqr. На уроке математики мы обозначаем показатели степени маленькими цифрами и
буквами. На компьютере такие цифры и буквы вводить не всегда возможно, поэтому в Паскале
принято другое обозначение. Например, пять в квадрате обозначается так - Sqr(5), a+b в квадрате
так - Sqr(a+b). Здесь Sqr - сокращение от английского слова square - квадрат. То, что нужно
возвести в квадрат, записывается в скобках.
Учитель информатики и ИКТ Пулова Светлана Анатольевна. ГБОУ СОШ № 2031 г.Москвы
Приведу неполный список математических функций Паскаля (Слайд 7):
ДЕЙСТВИЕ
РЕЗУЛЬТАТ
СМЫСЛ
Sqr (5)
25
возведение в квадрат
Sqrt (25)
5
корень квадратный
Pi
3.1415...
число пи
Frac (23.192)
0.192
дробная часть числа
Int (3.98)
3.0
целая часть числа
Round (5.8)
6
округление
Abs ( -20)
20
абсолютная величина (модуль)
числа
Random
0.73088
случайное число из диапазона (0 -
1)
Random (200)
106
случайное целое число из
диапазона (0 - 199)
Кроме этого, имеются функции sin, cos, arctan, exp, ln и процедура Randomize. К сожалению, в
Паскале нет специальной функции для возведения в произвольную степень.
Примеры:
Выражение Sqr(2+1)
при вычислении даст 9
Выражение 10+Sqr(2+1)
при вычислении даст 19
Выражение 1+Abs(5-8)
при вычислении даст 4
Выражение Sqr(2)+Sqrt(35+1)
при вычислении даст 10
Выражение Sqrt(8+Int(41.5))
при вычислении даст 7
Выражение 21 div (Round(Pi+1))
при вычислении даст 5
Задание: Определите без компьютера, что напечатает данная программа (Слайд 8):
VAR a,b: Integer;
BEGIN
a:=(Sqr(2)+1)*(20- Sqr(2*2))-11;
b:=11 div (a-4);
WriteLn (Sqr(a)+b-1)
END.
Вещественные числа в Паскале
Вот ошибочная программа:
VAR a,b,y : Integer;
BEGIN
a:=10; b:=6;
y:= a / b;
WriteLn (y)
END.
Паскаль откажется выполнять эту программу, так как знает, что при делении целого на целое
результат может получиться дробный, а это значит, что в ячейку y придется записывать дробное
число. Но описание VAR a,b,y : Integer запрещает это делать. Вот вам еще один пример
придирчивости Паскаля. Если бы мы даже вместо b:=6 написали b:=2 , все равно Паскаль
отказался бы делить.
Что же делать? Конечно же, Паскаль предлагает простой выход. Программист имеет право
любую переменную описать не как целую (Integer), а как вещественную (Real). В этом случае
переменная имеет право принимать любые целые и дробные значения. Вот правильная программа:
Учитель информатики и ИКТ Пулова Светлана Анатольевна. ГБОУ СОШ № 2031 г.Москвы
VAR a,b :Integer;
y :Real;
BEGIN
a:=10; b:=6;
y:=a / b;
WriteLn (y)
END.
По-английски Real читается " 'риэл", переводится "вещественный". Под переменную типа Real
Паскаль отводит в памяти ячейку размером в 6 байтов (Слайд 10).
Что мы увидим на экране в результате выполния оператора WriteLn (y)? Если вы думаете, что
1.666666 , то ошибаетесь. Переменные, описанные как Real, Паскаль выводит на экран в так
называемом экспоненциальном формате (виде), с первого взгляда непонятном. Более подробно об
этом и других форматах мы поговорим в Error! Reference source not found., а пока, чтобы
заставить Паскаль выводить вещественные числа в обычном, понятном виде, допишем кое-что в
оператор вывода - WriteLn (y :8:3). Это значит, что мы хотим численное значение переменной y
типа Real видеть на экране в привычном виде с 3 знаками после десятичной точки, а всё
изображение числа не должно занимать больше 8 символов, включая целую часть, дробную часть,
знак и десятичную точку. Этот оператор напечатает на экране 1.667. Здесь напечатано
действительно 8 символов (три пробела, предшествующие единице, видны вам, как пустое место).
Вместо 8 и 3 в операторе программист может писать любые имеющие смысл числа (Слайд 11).
Поэкспериментируйте: (y :38:3), (y :20:10), (‘Результат равен’, y :8:3) (Слайд 12).
Задача: Известны размеры спичечной коробки: высота - 12.41 см., ширина - 8 см., толщина -
5 см. Вычислить площадь основания коробки и ее объем .
Порядок составления программы (Слайд 13-16):
1. Программист сам должен знать решение задачи. Ведь программа - это инструкция по ее
решению. Нельзя давать инструкцию, не зная, как решать.
В нашем случае программист должен знать формулы для вычисления площади основания
коробки и ее объема : площадь = ширина х толщина , объем = площадь х высота .
2. Нужно придумать имена переменным. Имя переменной должно говорить о ее смысле. Если
смыслом является ширина коробки, то не ленитесь и не называйте ее а, потому что через полгода,
разбираясь в своей полузабытой программе, вы будете долго тереть лоб и думать – Что, черт
возьми, я обозначил через а? Называйте ее shirina (если вы не знаете английского) или, к примеру,
width (если знаете). Так делают все профессиональные программисты они, как известно, терпеть
не могут трудиться зря, значит, зачем-то это им нужно).
Удовлетворимся такими именами:
shirina - ширина
tol - толщина
visota - высота
pl - площадь
V - объем
3. Нужно определить, какого типа будут переменные. Поскольку ширина и толщина - целые, то
и площадь будет целой. Высота и, следовательно, объем - вещественные. Первые две строки
программы будут такими:
VAR shirina,tol,pl : Integer;
visota,V : Real;
4. Перед вычислениями нужно задать исходные данные решения задачи. Вот следующие две
строки программы:
BEGIN
shirina:=8; tol:=5; visota:=12.41;
5. Теперь нужно задать компьютеру действия, которые нужно проделать с исходными данными,
чтобы получить результат.
pl := shirina * tol;
V := pl * visota;
Учитель информатики и ИКТ Пулова Светлана Анатольевна. ГБОУ СОШ № 2031 г.Москвы
6. После получения результата его нужно напечатать. Действительно, все операторы
присваивания компьютер выполняет уме". После их выполнения в ячейках памяти pl и V будут
находиться числовые результаты решения задачи. Чтобы их узнать, человек в нашем случае может
использовать оператор WriteLn, после чего программу можно заканчивать:
WriteLn (pl,' ', V :10:3)
END.
Обратите внимание, что поскольку переменная V имеет тип Real, для ее вывода мы
использовали формат V :10:3.
Вот как будет выглядеть наша программа целиком:
VAR shirina,tol,pl :Integer;
visota,V :Real;
BEGIN
shirina:=8; tol:=5; visota:=12.41;
pl := shirina * tol;
V := pl * visota;
WriteLn (pl,' ', V :10:3)
END.
Программа напечатает два числа: 40 и 496.400 .
Эту задачу можно было бы решить и гораздо более короткой программой:
BEGIN WriteLn (8 * 5, ' ' , 8 * 5 * 12.41 :10:3) END.
А еще быстрее эту задачу решить в уме. Однако, соблюдение приведенного мной порядка
составления программы облегчит вам в дальнейшем программирование реальных задач для
компьютера.
4. Повторение:
Вопросы (Слайд 17):
1. Что может служить именем переменной в Паскале?
2. Что нельзя использовать при записи дробных чисел в Паскале?
3. Какие три типа переменных вы знаете?
5. Домашняя работа:
1. Выучить конспект.
2. Написать программы для решения следующей задачи:
В углу прямоугольного двора размером 50х30 стоит прямоугольный дом размером 20х10.
Подсчитать площадь дома, свободную площадь двора и длину забора. Примечание: в углу, где дом,
забора нет (Слайд 18).
Учитель информатики и ИКТ Пулова Светлана Анатольевна. ГБОУ СОШ № 2031 г.Москвы
Используемая литература:
1. Д. Б. Поляков, И.Ю.Круглов Программирование в среде Турбо Паскаль. Москва, Изд. МАИ, 1992.
2. С. Н. Лукин. Турбо Паскаль 7.0 Самоучитель для школьников и студентов, 1999.
3. Н. Д. Угринович Информатика и ИКТ: учебник для 9 класса. Москва, Изд. Бином, 2012.