На этом уроке мы остановимся на целых типах данных и алгоритмах их обработки .
Определим для них:
- Зарезервированные слова для описания.
- Диапазон допустимых значений.
- Набор операций.
- Формат внутреннего представления.
В таблице показаны 5 стандартных целых типов, которые отличаются форматами и диапазонами допустимых значений.
Тип
Диапазон значений
Длина (байт)
Для работы с целыми числами используются арифметические операции:
- «+» — сложение;
- » * » — умножение;
- » — » вычитание;
- div — целочисленное деление;
- mod — получение остатка от целочисленного деления.
В языке Паскаль операция возведения в степень отсутствует.
Ч тобы остаться в рамках множества целых чисел, вместо обычного математическое деление «/» вводятся операции: »div» — целая часть от деления; »mod» — остаток от деления.
Для работы с целыми типами используются функции, результат которых — целое число.
Тип данных INTEGER. ЕГЭ информатика 2020
Функция
Назначение
Оператор присваивания
Для присваивания значения переменной используется оператор присваивания.
Арифметический оператор присваивания на Паскаль имеет следующий формат:
числовая переменная:= арифметическое выражение
Алгоритм выполнения оператора:
1. Вычисляется значение выражения, стоящего справа от знака присваивания.
2. Полученное значение присваивается переменной , стоящей в левой части.
Оператор присваивания используется для изменения значений переменных, в том числе и для вычислений по формулам.
Тип результата, полученного при вычислении выражения должен быть совместим по типу с переменной, которой он присваивается.
Ввод данных
Для организации вывода и вывода данных в языке Паскаль предусмотрены следующие операторы: read, readln, write и writeln.
Названия означают «читай», «читай строку» (read line), «пиши», «пиши строку» (write line) соответственно.
Ввод данных — это передача информации от внешних устройств в оперативную память. Обычно вводятся исходные данные для решения задачи.
Оператор ввода можно записать в одной из следующих форм:
readln(x1, x2, …, xn);
где x1, x2, …, xn — список ввода, содержащий имена переменных, значения которых будут вводится.
var x, y: integer;
С помощью одного оператора ввода можно вводить значения нескольких переменных. В качестве разделителя при вводе значений можно использовать пробел либо нужно нажимать клавишу Enter после ввода каждого из значений.
Тип данных, вводимых во время работы программы, должен соответствовать типам переменных, указанных в списке ввода. В случае несоответствия типов программа завершает работу и на экран выводится сообщение об ошибке.
Вывод данных
Вывод данных — обратный процесс, когда данные передаются из оперативной памяти на внешние носители (экран, принтер, файл на диске). Обычно вывод осуществляется в конце программы, выводятся результаты решения задачи.
Урок по Pascal. Тип данных Integer + структура программы.
Оператор вывода записывается водной из следующих форм:
writeln(y1, y2, …, yn);
где y1, y2, …, yn — список вывода.
writeln(‘Сумма равна: ‘, sum);
Список вывода может содержать константы, переменные или выражения. Число параметров произвольно.
Из констант наиболее часто выводят строки текста (строковые константы заключаются в апострофы).
Если в списке вывода стоит имя переменной, то на экран выводится значение переменной.
Если в списке вывода стоит выражение, то на экран выводится вычисленное значение выражения.
Оператор writeln аналогичен оператору write. Отличие заключается в том, что после вывода последнего элемента из списка, курсор автоматически переходит в начало новой строки.
Оператор writeln; (без параметров) переводит курсор в начало следующей строки. Таким способом можно, например, отделять результаты работы программы друг от друга одной или несколькими пустыми строками.
Пример 1. Поменять местами значения переменных x и y.
Нам нужно изменит значения переменных. Для этого можно использовать оператор присваивания.
Как легко проверить, к цели не приводит выполнение следующих операторов:
Проблема в том, что присваивая переменной x новое значение, мы теряем её старое значение. Нужно сначала сохранить старое значение переменной, а затем присвоить её новое значение. Задачу можно решить с помощью вспомогательной переменной.
program _1; var x, y, z: integer; begin writeln(‘Введите два числа: ‘); readln(x,y); z:=x; x:=y; y:=z; writeln(x, ‘ ‘,y); end.
Пример 2. Найти целую часть и остаток от деления целого числа a на целое число b.
program _2; var a, b, p1, p2: integer; begin writeln(‘Введите a, b: ‘); readln(a,b); p1:=a div b; p2:=a mod b; writeln(‘Целая часть: ‘,p1, ‘ Остаток: ‘,p2); end.
Пример 3. Найти сумму цифр заданного трехзначного числа.
Сначала научимся разбивать число на отдельные цифры, составляющие его десятичную запись. Это нетрудно сделать, поняв суть позиционной записи: в десятичной записи любого числа последняя цифра показывает количество единиц.
Итак, разделив число на 10, мы получим в остатке его последнюю цифру, а в частном — число, которое получается из исходного вычеркиванием последней цифры. Повторив эту операцию несколько раз, можно по очереди отделить от числа все цифры.
Алгоритм нахождения цифр числа:
1. Находим последнюю цифру в записи числа. Для этого находим остаток от деления заданного числа на 10 с помощью операции mod. Сохраняем её.
2. Вычеркиваем последнюю цифру. Для этого присвоим новое значение числу, разделив старое значение нацело на 10 помощью опрерации div. Число станет двузначным.
3. Находим последнюю цифру теперь уже двузначного числа. Сохраняем её.
4. Зачеркиваем последнюю цифру. Остается первая цифра.
Дважды повторяются действия нахождения остатка и деление нацело. Если цифр в числе будет больше, нужно организовать цикл.
program _3; var a, c1, c2, c3, s:integer; begin writeln(‘Введите число: ‘); readln(a); c3:=a mod 10; a:=a div 10; c2:=a mod 10; c1:= a div 10; s:=c1+c2+c3; writeln(‘Сумма равна: ‘,s); end.
Источник: gospodaretsva.com
Целочисленные типы данных
Почти все целочисленные типы данных относятся к порядковым типам. Эти типы данных представляют целые числа в определённом диапазоне. Конкретные наименования целочисленных типов и диапазоны значений зависят от конкретного языка программирования, от компилятора и от режима компиляции. Подробнее об этом надо узнавать в документации на компилятор.
Например, тип данных Integer в Delphi имеет диапазон -2147483648…2147483647, в то время как в Turbo Pascal тип данных Integer представляет числа в диапазоне -35768…32767. В Free Pascal диапазон значений типа Integer определяется выбранным режимом.
Так как Lazarus использует компилятор Free Pascal, то всё сказанное о типах данных по отношению к Free Pascal справедливо и для Lazarus.
Итак, целочисленные типы данных Free Pascal перечислены в таблице 13.1.
Таблица 13.1. Целочисленные типы данных Free Pascal (Lazarus).
Тип | Размер, байт | Диапазон значений |
Byte | 1 | 0…255 |
Shortint | 1 | -128…127 |
Smallint | 2 | -35768…32767 |
Word | 2 | 0…65535 |
Integer | 2 или 4 | Зависит от режима компиляции |
Cardinal | 4 | 0…4294967295 |
Longint | 4 | -2147483648…2147483647 |
Longword | 4 | 0. 4294967295 |
Int64 | 8 | -9223372036854775808. 9223372036854775807 |
QWord | 8 | 0. 18446744073709551615 |
ПРИМЕЧАНИЕ
В Free Pascal типы Int64 и QWord не являются порядковыми! Это означает, что вы не можете использовать их, например, для индексных переменных в циклах. Однако я привёл их здесь, чтобы отдельно не описывать в будущем и собрать в одном месте все целочисленные типы Free Pascal. Если какие-то слова вам не понятны — не пугайтесь. В своё время я обо всём расскажу подробнее.
А теперь несколько пояснений к таблице.
В колонке ТИП приведены идентификаторы типов данных (ключевые слова, которые указывают компилятору, к какому типу относятся те или иные данные). Как использовать эти идентификаторы, вы узнаете в следующих уроках.
В колонке РАЗМЕР указан размер, который занимает тип данных в памяти компьютера. Например, целое положительное число можно представить разными типами: Byte, Word, Cardinal и др. Однако число типа Cardinal будет занимать в памяти 4 байта, в то время как число типа Byte – всего лишь 1 байт. Поэтому, если вы точно знаете, что число, с которым вы работаете, никогда не примет значение больше 255, то лучше определять его как тип Byte, так как это позволит сэкономить место в памяти компьютера. Хотя здесь не всё так однозначно (нюансы распределения памяти и других ресурсов компьютера выходят за рамки данного курса).
В колонке ДИАПАЗОН указан диапазон значений, которым оперирует тип данных. Например, число типа Byte может принимать значения от 0 до 255.
А теперь практика. Напишем программу, которая выводит на экран диапазоны значений всех целочисленных типов данных. Исходный код этой программы приведён ниже:
Листинг 13.1. Программа вывода на экран диапазонов целых чисел.
program td; uses cthreads, Classes < you can add units after this >; begin Writeln(‘Byte : ‘, Low(Byte), ‘..’, High(Byte)); Writeln(‘Shortint : ‘, Low(Shortint), ‘..’, High(Shortint)); Writeln(‘Smallint : ‘, Low(Smallint), ‘..’, High(Smallint)); Writeln(‘Word : ‘, Low(Word), ‘..’, High(Word)); Writeln(‘Integer : ‘, Low(Integer), ‘..’, High(Integer)); Writeln(‘Cardinal : ‘, Low(Cardinal), ‘..’, High(Cardinal)); Writeln(‘Longint : ‘, Low(Longint), ‘..’, High(Longint)); Writeln(‘Longword : ‘, Low(Longword), ‘..’, High(Longword)); Writeln(‘Int64 : ‘, Low(Int64), ‘..’, High(Int64)); Writeln(‘QWord : ‘, Low(QWord), ‘..’, High(QWord)); Readln; end.
Стандартная функция Low определяет минимальное значение типа данных. Фунцкия High определяет максимальное значение. С функциями WriteLn и ReadLn вы уже немного знакомы. Более подробно о подпрограммах (процедурах и функциях) мы будем говорить в соответствующем разделе курса.
Напоследок скажу, как записываются целочисленные данные в программе. Да также как и везде — просто пишите число, без кавычек и каких-либо дополнительных символов. Например, так
Правда, это относится к числам в десятичной системе счисления. Наверняка вы уже знаете, что есть и другие системы. Наиболее широко распространены двоичная, десятичная и шестнадцатеричная системы счисления.
Free Pascal поддерживает четыре формата записи целого числа:
- Десятичная запись. Просто число, например 10.
- Шестнадцатеричная запись. Число с префиксом $. Например, шестнадцатеричное число $10 равно десятичному 16.
- Восьмеричная запись. Число с префиксом 10 равно десятичному 8.
- Двоичная запись. Число с префиксом %. Например, двоичное число %10 равно десятичному 2.
Если для вас это пока слишком сложно, то пропустите эту часть. Просто добавьте страницу в закладки и вернётесь к ней когда будет нужно.
Домашнее задание:
Создайте программу, которая выводит на экран диапазоны значений целых чисел (листинг 13.1). Откомпилируйте программу и запустите её. Убедитесь, что эти значения соответствуют указанным в таблице 13.1.
В исходном коде программы найдите строку, которая задаёт режим компиляции:
В этой строке вместо слова objfpc напишите слово tp. То есть итоговая строка должна выглядеть так:
Запустите программу. Посмотрите диапазон значений типа Integer. Сделайте выводы.
Учитесь думать как программист, то есть логически. Никто вам до пенсии не будет всё разжёвывать, как это делаю сейчас я. Надо привыкать думать самостоятельно. Иначе вы скатитесь к “обезьяньему принципу обучения”, и тогда ваши шансы стать классным программистом приблизятся к нулю. Чтобы помочь вам не скатиться на уровень “зубрёжки”, я буду периодически оставлять пробелы в вашем обучении, чтобы вы постарались сами додуматься до каких-то вещей.
Намного лучше, если вы сами додумаетесь до неправильного решения, сами найдёте ошибку и сами её исправите, чем будете всегда использовать чужие правильные решения и тупо их копировать.
Источник: info-master.su
Уроки Паскаль № 2 Переменные и типы данных
Здравствуйте, сегодня второй урок по языку программирования Паскаль в котором мы поговорим о переменных.
Урок № 2 Переменные и типы данных.
Что такое переменные? Мы можем представить себе для простоты понимания переменную как ящик, в который мы помещаем какие-то вещи. В нашем случае, случае языка программирования предметы могут быть число, строки, символы.
Переменные различаются по типам. Есть типы для чисел, есть типы для строк, для больших чисел, для маленьких чисел, для чисел с запятыми т. е. нецелых чисел и целых чисел соответственно. Типы эти определены не просто так они нужны для того что бы компилятор понимал какие мы можем действия применить. Так как с числами применяются одни действия, а со строками совсем другие.
Давайте познакомимся какие типы переменных существуют в паскале, и как объявлять переменные.
В языке Паскаль объявление переменных делается до того, как начинается программа. Существует отдельный блок var . В нем описываются переменные. Делается это таким образом. Мы пишем имя переменной, например, а ставим : и после этого пишем тип.
Вот типы данных Паскаль.
Слева идентификатор или название типа непосредственно который мы будем писать в программе. Дальше длина, байт то место, которое занимает эта переменная в памяти компьютера. Если говорить техническими понятиями, то переменная это именованная область памяти компьютера, в котором записан. Для нас это определение достаточно глубокое и не особо нужное.
Дальше указан диапазон (множество) значений. Т. е. для типа integer это целый тип, есть также вещественные типы, логические типы и символьные типы.
В табличке можно увидеть диапазон значений которое может принимать эта переменная. Для каждого диапазона чисел если мы знаем заранее сколько приблизительно каких чисел у нас могут быть, то мы можем определить тип, который нам нужно конкретно под эту задачу, что бы он не ел много памяти и в тоже время охватывал диапазон значений, которые у нас могут быть теоретически в этой переменной использоваться.
Вещественные типы это для не целых чисел т. е. с запятой или точкой.
Логический тип может принимать только два значения true и false.
Символьный тип все символы кодировки АСКИ.
Начнем с простого.
Создадим целую переменную a: integer; и b: integer;
Можно записать в 2 строки:
Можно сократить записать.
Присвоим значение переменным. Присвоение в Паскаль пишется вот таким значком := .
И давайте выведем на экран переменную, если вы помните с прошлого урока вывод на экран у нас делается специальная функция writeln( );
Давайте попробуем еще одну штучку. В скобках параметрах функции writeln мы можем указать не просто переменную или какой-нибудь текст, а можем указать выражение (а+в) и программа подсчитает и выведет на экран.
Давайте попробуем не много украсить нашу программу. Заодно посмотрим на функцию вывода, как еще можно использовать её. Мы можем кроме того, что просто выводим значение переменной где просто текст совместить эти две вещи. Ставим кавычки ‘ ‘ потом запятую , .В кавычках пишем любой текст который нам нужно. Через запятую мы можем перечислять какие-то разные значения. И тоже самое сделаем для переменной b. Также выведем сумму (а+в)
- writeln(‘Значение переменной а = ‘, a, ‘;’);
- writeln(‘Значение переменной b = ‘, b, ‘;’);
- writeln(‘Значение суммы a+b = ‘, a+b,);
Вот такие не хитрые способы вывода нескольких аргументов этой функции. Следующий урок будет посвящен константам и вводу данных. Так же еще поговорим про переменные и их типы.
Источник: murnik.ru