Вопрос: Как научиться работать с числами?

Занятие 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]



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: