Занятие 3 «Описание переменной целого типа, арифметические операции, оператор присваивания»
Ключевые слова: переменная, присваивание, целочисленный тип данных, арифметические операции
Что хотим получить.
Компьютер: В каком году ты родился?
Человек: 2005
Компьютер: Я думаю, тебе 15 лет
Компьютер: В каком году родился твой отец?
Человек: 1980
Компьютер: Я думаю, твоему отцу 40 лет
Компьютер: В каком году родилась твоя мама?
Человек: 1982
Компьютер: Я думаю, твоей маме 38 лет
Вопрос: Как научиться работать с числами?
Цель:
· Научиться работать с целочисленным типом данных, выполнять арифметические операции с ним;
Вопросы для повторения |
1. Как ввести данные с клавиатуры? 2. Что такое переменная? 3. Как описать переменную? 4.Как служебное слово используется для описания переменных? |
Найдите синтаксические ошибки в записи следующих команд: 1. var s:string begin read(s); writeln(s) end. 2. var s string; begin read(s); writeln(Привет, s) end; |
Для продолжения диалога компьютер хочет спросить у Вас, в каком году вы родились, и вывести, сколько Вам лет.
А как вы думаете, отличается чем-то величины «имя» и «год рождения»?
Да, отличается: имя - это строка, а вот год рождения - это число. Действия, которые можно выполнять над строками и над числами, отличаются. Например, числа можно перемножать или вычитать одно из другого, а строки – нет.
Вспомните, какие бывают числа?
Правильно, молодцы! Числа бывают целые, дробные, рациональные, иррациональные. В Pascal для целых чисел существует свой тип данных, называется он integer, а для вещественных чисел другой тип, с которым мы познакомимся позже.
Переменные целого типа могут принимать только целые значения. Например, только целые значения может принимать год рождения, количество человек или неделимых предметов (например, 5 велосипедов, 3 слова, 7 букв и т.п.).
Такие переменные в программе описываются следующим образом:
var a,c: integer;
Здесь a, c… - имена переменных, integer[i] – тип переменных.
Переменной передается то значение, которое задал пользователь - например, ввел с клавиатуры. Например, в коде программы записано readln(a), пользователь вводит число 12, значит, переменная а принимает значение 12.
Если у нас переменная а была описана как целочисленная переменная, а мы вводим строку, то программа выдаст ошибку.
Можно ввести сразу 2 переменные и более. Но помните, что все переменные надо описывать! Смотрите, как можно описать сразу несколько переменных:
var s,s1:string
begin
read(s,s1);
Если пользователь не описал одну из переменных, то программа выдаст ошибку.
Скажите, а как узнать по введенной дате рождения возраст человека?
Правильно, из текущего года вычесть год рождения.
Нужно ли нам знать текущий год?
Да, нужно, ведь разговор может происходить в любое время, и год может меняться. Поэтому нужно спросить у собеседника текущий год и его запомнить.
Как запомнить значение переменной, которую мы вводим?
Это делается с помощью оператора «присваивание». Оператор присваивания в Паскале – это процесс занесения значения переменной в ячейку памяти. В общем виде знак присваивания выглядит как слитное написание двоеточия со знаком «равно», т.е. «:=». Именно эти символы отвечают за операцию присваивания. Слева от этого знака стоит имя переменной, а справа - выражение, причем они должны совпадать по типу. Слева не может стоять выражение!
Для чего предназначен оператор присваивания?
Механизм его работы заключается в следующем: по ходу программы вычисляется выражение, результат которого необходимо занести в память. Адрес ячейки, куда будут заноситься данные, определяет переменная, находящаяся слева от знака «:=».
Пример выполнения.
readln(year,birth);
age:=year-birth;
Year-текущий год
Age – возраст
Birth – год рождения
Особенностью оператора присваивания является и то, что данные, находящиеся по разные стороны знака «:=» (который читается как «присвоить») должны принадлежать одному типу.
var a,year:integer;
Begin
readln(a);
year:=a;
End.
Присваивать можно не только переменные и константы, но и выражения. Тип выражения зависит от типа переменной, которая стоит слева от знака присваивания. Например, если слева от:= стоит целочисленная переменная, то и результат вычисления выражения должен быть целым числом.
Какие арифметические действия Вы знаете?
Над переменными целочисленного типа могут выполняться все арифметические действия за исключением деления (/), для него нужен вещественный тип. Даже если целое число 10 разделить на целое число 2 (делится нацело!), все равно результат 10/2 будет действительным числом, а не целым. Также могут быть применены некоторые стандартные функции и процедуры.
Давайте посмотрим, как происходит выполнение арифметических операций в Pascal.
Обратите внимание, первым в операторе ввода записана переменная «а» (readln (a,b)), значит, и первое число, которое вводится в строке ввода (в данном случае 10 и 4), будет передано переменной «а»,т.е а=10, b=4.
Операции деления над целыми числами.
MOD - если мы делим число с помощью функции MOD, то в ответ записывается остаток. Например,10 mod 3 = 1 (остаток от деления 10 на 3 равен 1)
DIV - если мы делим число с помощью DIV то в ответ пойдет только целая часть. Например,10 div 3 =3 (целая часть от деления 10 на 3 равен 3)
Важно, что производить арифметические операции мы можем только с переменными одного и того же типа. Если же все-таки пользователь написал сложение строки и числа, то программа выдает ошибку.
Давайте попробуем написать программу, которая по введенному текущему году и годам рождения будет определять ваш возраст, возраст отца и матери.
Ниже приведен фрагмент программы для вычисления Вашего возраста. Доработайте программу, чтобы она вычисляла возраст Ваших отца и матери.
var a,myyear,year,res:integer;
begin
writeln('Какой сейчас год?');
readln(a);
year:=a;
writeln('А в каком году ты родился?');
readln(myyear);
res:=year-myyear;
write('Я думаю, что тебе ', res, ' лет');
end;
Ответы на задания
Найдите синтаксические ошибки в записи следующих команд: 1. var s:string; begin read(s); writeln(s); end. 2. var s:string; begin read(s); writeln(‘Привет’, s); end. |
Спасибо за внимание!
Тип INTEGER (целый). Этот тип представляет множество целых чисел диапазона от -32768 до 32767. На хранение числа в компьютере отводится определенное количество битов. Например, если отвести на кодирование числа 2 байта = 16 битов, то всего можно закодировать 2 в 16 степени разных чисел, это 65536. Половина этих чисел (32768) – отрицательные, половина - еще 32768 - неотрицательные, но один вариант занят нулем, и положительных чисел остается только 32767
[i]