Слайд 1Переменные величины
в ПАСКАЛЕ
Слайд 2Оператор присваивания состоит из знака присваивания := , слева от которого
пишется переменная, а справа - число, переменная или выражение. При выполнении оператора присваивания компьютер "в уме" (то есть ничего не показывая на мониторе) вычисляет правую часть и присваивает вычисленное значение переменной, стоящей в левой части.
Например, после выполнения фрагмента программы:
. . . . a:=2*3+4; b:=a; y:=a+b+1. . . компьютер будет знать, что a равно 10, b равно 10, y равно 21.
Слайд 3Описания переменных (VAR)
VAR a,b : Integer;
BEGIN
a:=100;
b:=20;
WriteLn (a + b)
END.
Первая
строка называется описанием переменных величин а и b. Описание начинается со служебного слова var (от англ. variable - переменная). После него записываются имена всех переменных, встречающихся в программе с указанием через двоеточие типа значений, которые каждая переменная имеет право принимать.
Слово Integer (переводится ЦЕЛЫЙ) указывает, что а и b имеют право быть целыми числами, а не дробными.
Слайд 4Зачем нужно описание?
После того, как программист ввел программу в память, он
приказывает компьютеру ее исполнить. Но компьютер при этом не сразу принимается выполнять программу, а сначала совершает компиляцию, то есть перевод программы с Паскаля на собственный машинный язык. Во время компиляции компьютер производит некоторые подготовительные действия, одним из которых является отведение в памяти места под переменные величины, упомянутые в программе. При этом компьютер "рассуждает" так: Раз в программе упомянута переменная величина, значит она в каждый момент времени будет иметь какое-то значение, которое, хочешь не хочешь, надо помнить. Лучше, чтобы не спутаться, заранее отвести в памяти определенное место для запоминания текущего значения каждой переменной величины и только потом уже выполнять программу. Будем называть место, отведенное в памяти под данную переменную, ячейкой.
Значит, описание надо, чтобы перечислить компьютеру переменные, под которые он должен отвести ячейки в памяти.
Слайд 5Integer и LongInt
В Паскале принято правило, что если человек
описал переменную, как Integer, то он разрешает ей принимать значения только целого числа. Число типа Integer занимает в памяти два байта. Значит, под переменные а и b компьютер отводит в памяти ячейки по два байта каждая. Два байта - это маленький объем памяти и уместиться в него может лишь небольшое целое число, а именно - число в диапазоне от -32768 до 32767. Если бы в предыдущем примере вам понадобилось взять а=40000, то Паскаль получил бы неправильную сумму.
Для того, чтобы переменная имела право принимать значения больших целых чисел, она должна быть описана не как Integer, а как LongInt (сокращение от Long Integer - Длинное Целое). Под переменную типа LongInt компьютер отводит в памяти 4 байта и она может принимать значения в диапазоне от ‑2147483648 до 2147483647.
Слайд 6VAR a,b,y : Integer;
BEGIN
a:= 10;
b:= 6;
y:= a+b+1;
WriteLn (y+200)
END.
Слайд 7Если в какое-нибудь место памяти или диска записывается новая информация, то
старая информация, записанная там раньше, автоматически стирается, даже если она кому-то и нужна.
VAR f : Integer;
BEGIN
f:=30;
f:=f+4;
WriteLn (f)
END.
Оператор f:=f+4 сначала вычислит правую часть f+4 подставив туда вместо f его значение, взятое из ячейки, и получит 34. Затем число 34 будет записано в ячейку, отведенную под переменную, обозначенную в левой части, то есть опять в ячейку f. При этом старое значение 30 будет стерто.
Слайд 8Задания:
Определите без компьютера, что будет напечатано при выполнении следующих фрагментов программ:
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)
Слайд 9Имена переменных
Паскаль позволяет обозначать переменные не только буквами, но и целыми
словами.
Будем называть обозначение переменной именем или идентификатором этой переменной.
Слайд 10Примеры правильной
записи имен:
a
velichina
zzz
polnaja_summa
tri_plus_dva
s25
k1
_k1
a1b88qq
Примеры неправильной записи имен:
Ж - буква не латинского алфавита
polnaja summa - содержится символ (пробел), не являющийся буквой, цифрой или знаком подчеркивания
2as - начинается с цифры
Domby&Son- содержится символ & , не являющийся буквой, цифрой или знаком подчеркивания
Именем переменной в Паскале может служить любая последовательность цифр, латинских букв и знака подчеркивания, не начинающаяся с цифры.
Слайд 11Математические возможности Паскаля
Слайд 12В Паскале в десятичных дробях принято вместо запятой ставить точку:
62.8
Математические функции
Слайд 13Вещественные числа в Паскале
VAR a,b,y : Integer;
BEGIN
a:=10; b:=6;
y:= a / b;
WriteLn (y)
END.
Паскаль откажется выполнять эту программу, так как при делении целого на целое результат может получиться дробный, а это значит, что в ячейку y придется записывать дробное число. Но описание VAR a,b,y : Integer запрещает это делать.
VAR a,b:Integer;
y:Real;
BEGIN
a:=10; b:=6;
y:=a / b;
WriteLn (y)
END.
Под переменную типа Real Паскаль отводит в памяти ячейку размером в 6 байтов.
Слайд 14В результате выполнения оператора WriteLn (y) должно получиться 1.666666
Чтобы заставить
Паскаль выводить вещественные числа в обычном, понятном виде, допишем кое-что в оператор вывода - WriteLn (y :8:3). Это значит, что мы хотим численное значение переменной y типа Real видеть на экране в привычном виде с 3 знаками после десятичной точки, а всё изображение числа не должно занимать больше 8 символов, включая целую часть, дробную часть, знак и десятичную точку. Этот оператор напечатает на экране 1.667. Здесь напечатано действительно 8 символов (три пробела, предшествующие единице, видны вам, как пустое место). Вместо 8 и 3 в операторе программист может писать любые имеющие смысл числа.
Поэкспериментируйте: (y :38:3), (y :20:10), (‘Результат равен’, y :8:3).
Слайд 15Порядок составления программы:
Задача: Известны размеры спичечной коробки: высота - 12.41 см., ширина
- 8 см., толщина - 5 см. Вычислить площадь основания коробки и ее объем .
Программист сам должен знать решение задачи. В нашем случае формулы для вычисления площади основания коробки и ее объема : площадь = ширина х толщина , объем = площадь х высота .
2. Нужно придумать имена переменным. Имя переменной должно говорить о ее смысле. Если смыслом является ширина, называйте ее shirina.
Удовлетворимся такими именами:
shirina - ширина
tol - толщина
visota - высота
pl - площадь
V - объем
Слайд 163. Нужно определить, какого типа будут переменные. Поскольку ширина и толщина
- целые, то и площадь будет целой. Высота и, следовательно, объем - вещественные. Первые две строки программы будут такими:
VAR shirina,tol,pl : Integer;
visota,V : Real;
4. Перед вычислениями нужно задать исходные данные решения задачи shirina:=8; tol:=5; visota:=12.41;
5. Теперь нужно задать компьютеру действия, которые нужно проделать с исходными данными, чтобы получить результат.
pl := shirina * tol;
V := pl * visota;
6. После получения результата его нужно напечатать. Чтобы их узнать, человек в нашем случае может использовать оператор WriteLn: WriteLn (pl,' ', V :10:3)
Слайд 17VAR 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.40
Слайд 18Операторы ввода данных ReadLn и Read
Задача: Сложить два числа -
20 и 16.
Сравним две программы решения:
VAR a,b : Integer;
BEGIN
a:=20; b:=16;
WriteLn (a+b)
END.
VAR a,b : Integer;
BEGIN
ReadLn (a,b);
WriteLn (a+b)
END.
Программы отличаются только одной строкой. Первая программа не требует пояснений - она печатает число 36. Во второй программе не сказано, чему равны a и b, а вместо этого включен оператор ReadLn ("читай строку«). Он приказывает компьютеру остановиться и ждать, когда человек введет с клавиатуры информацию, после чего продолжить работу. В частности,
ReadLn (a,b) будет ждать ввода двух целых чисел.
Слайд 19Человек должен на клавиатуре набрать число 20 (так как первым в
списке оператора ReadLn стоит a), затем нажать клавишу пробела, затем набрать 16 и нажать клавишу Enter в знак того, что ввод чисел для ReadLn закончен.
Слайд 20Строковые переменные
VAR a : String;
BEGIN
a:='Привет всем!';
WriteLn (a)
END.
Описание VAR a : String говорит о том, что переменная a обязана иметь строковое (текстовое) значение, то есть ее значением будет не число, а произвольная цепочка символов, например, Привет всем!
Слайд 21Строковую переменную можно задавать не только оператором присваивания, но и оператором
ReadLn:
VAR a : String;
BEGIN
WriteLn ('Введите какое-нибудь слово');
ReadLn (a);
WriteLn ('Вы ввели слово ' ,a)
END.
Слайд 22Напишем программу, которая осуществляла бы такой диалог человека с компьютером:
КОМПЬЮТЕР ВЫВОДИТ
НА ЭКРАН: Здравствуй, я компьютер, а тебя как зовут?
ЧЕЛОВЕК ВВОДИТ С КЛАВИАТУРЫ: Коля
КОМПЬЮТЕР ВЫВОДИТ НА ЭКРАН: Очень приятно, Коля. Сколько тебе лет?
ЧЕЛОВЕК ВВОДИТ С КЛАВИАТУРЫ: 16
КОМПЬЮТЕР ВЫВОДИТ НА ЭКРАН: Ого!Целых 16 лет!Ты уже совсем взрослый!
Слайд 23VAR imya :String;
vozrast :Integer;
BEGIN
WriteLn ('Здравствуй, я компьютер, а тебя как зовут?');
ReadLn (imya);
WriteLn
('Очень приятно, ', imya, ' . Сколько тебе лет?');
ReadLn (vozrast);
WriteLn ('Ого! Целых ' ,vozrast, ' лет! Ты уже совсем взрослый!')
END.
Слайд 24Константы
Кроме переменных величин в тексте программы мы встречаем константы. Это те
значения, которые или присваиваются переменным, или встречаются в выражениях, или сравниваются с выражениями. Например:
x:=25 здесь числовая константа - 25
slovo:=’Волга’
здесь строковая константа - Волга
simvol:=’!’ здесь символьная константа - !
y:=(x+1) / (200*x - 0.3)
здесь числовые константы - 1 и 200 и 0.3
Слайд 25Символьный тип данных Char
Описание VAR a,b: Char означает, что
переменные a и b имеют право принимать значения любых символов, с которыми может работать компьютер.
Мы можем записать a:='Л'; b:='+', что означает приказ присвоить переменной a значение символа Л, а переменной b - значение символа +.
Мы можем записать ReadLn (a) , что означает приказ компьютеру ждать ввода с клавиатуры любого одного символа и присвоить его значение переменной a.
Мы можем записать WriteLn (b) и на экране появится плюсик.
Слайд 26Пример. Программа, переворачивающая любое трехбуквенное слово, введенное человеком с клавиатуры:
VAR c1,c2,c3:
Char;
BEGIN
ReadLn (c1,c2,c3);
WriteLn (c3,c2,c1)
END.
Если мы по оператору ReadLn введем символы ТОК, то оператор WriteLn напечатает КОТ. При вводе нескольких символов одним оператором ReadLn, все символы набираются на клавиатуре подряд, без пробелов, которыми мы привыкли разделять при вводе числовые данные. После ввода последнего символа нажимаем клавишу Enter. Таким образом, ввод трех символов одним оператором ReadLn не отличается от ввода одной трехсимвольной строки. Вообще, тип Char похож на тип String. Строка состоит из символов, да и сам символ - это как бы очень короткая строка длиной в один символ.