Файл: Понятие переменной в программировании. Виды и типы переменных (Понятие переменных и их использование).pdf
Добавлен: 26.06.2023
Просмотров: 84
Скачиваний: 3
Так как 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 б.
В колонке СПЕКТР указан спектр значений, которым оперирует вид этих. К примеру, количество вида Byte может воспринимать ценности от 0 до 255.
А сейчас практика. Напишем программку, которая выводит на экран спектры значений всех целочисленных типов этих. Начальный код данной программы приведён ниже:
Программа вывода на экран диапазонов целых чисел.
program td;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
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.
Полагаюсь, вы не забывайте, как делать и беречь программы в Lazarus.
Шаблонная функция Low описывает наименьшее значение вида этих. Функция High характеризует предельное значение. С функциями WriteLn и ReadLn вы уже чуть-чуть знакомы. Более досконально о подпрограммах (процедурах и функциях) мы будем заявлять в подходящем разделе курса.
В последний раз заявлю, как записываются целочисленные эти в программке. Да помимо прочего, как и повсеместно - просто пишите количество, без кавычек и некоторых доп. знаков. К примеру, так
10
178
35278
Правда, это относится к количествам в десятичной системе счисления. Точно вы уже понимаете, что есть и прочие системы. Более обширно распространены двоичная, десятичная и шестнадцатеричная системы счисления.
Free Pascal поддерживает 4 формата записи целого числа:
- Десятичная запись. Просто количество, к примеру, 10.
- Шестнадцатеричная запись. Количество с префиксом $. К примеру, шестнадцатеричное количество $10 точно также десятичному 16.
- Восьмеричная запись. Количество с префиксом &. К примеру, восьмеричное количество &10 точно также десятичному 8.
- Двоичная запись. Количество с префиксом %. К примеру, двоичное количество %10 точно также десятичному .
2.2. Вещественные переменные
Единым видом количества считается то, которое имеет и целую и дробную части.
Real
Comp
Последний вид употребляется для обработки вещественных количеств как математических целых и используется, как правило, при обработке многоразрядной экономической документации. Система описаний вещественных переменных ничем не отличается от описаний целых, например:
Var sad, kod, hhh: Real; nnn, fokus: Single; pole: Double;
или
Var sad, kod, hhh: Real;
nnn, fokus : Single;
pole : Double;
Надлежит отметить, что при вводе вещественные переменные имеют все шансы представляться в разной форме, а при шаблонном выводе - представляться в форме произведения *.***E<знак>**. К примеру, количество 78,67 на выводе будет представлено так 7,8670000000E+01, а количество 0,00567 - 5,670000000E-3.
Примечание: Единственным конечно распознаваемым типом вещественных этих считается вид Real. Для обеспечения возможности применения других типов нужно включение {N+}, а для автомашин без интегрированных арифметических сопроцессоров {N+,E+}.
Всевозможные арифметические операции имеют все шансы содержать и переменные различных типов, при всем при этом вид эффекта ориентируется по старшинству операнда: Real-Longint-Integer-Word-Bute.
Обычнейшие способы ввода этих и вывода последствий на экран
Для ввода значений переменных лично с клавиатуры употребляются операторы Read(n1,n2,...); или же ReadLn(n1,n2,...);
Когда вводится 1 переменная, тогда применение двух переменных - равнозначно. При вводе нескольких переменных первым оператором после любой переменной нужно давить кнопку [Enter], а при применении 2 оператора все вводимые переменные надлежит разместить в 1 строчку и исключительно, потом надавить кнопку [Enter]. Пока же все перечисленные в операторах переменные не будут отнесены - последующая работа программы не начнется! Особенно надлежит отметить "пустой" оператор Readln;, который дает возможность беречь на экране выведенные слова до тех пор, пока же не будет нажата кнопка [Enter]. При неимении этого оператора по окончании работы эти вполне возможно просмотреть, нажав клавиши [Alt]+[F5]. Если в процессе работы выявится программная оплошность, приведшая к незапланированному счету, тогда остановить данный процесс вполне возможно нажатием кнопок [Ctrl]+[C].
Для вывода информации на экран PC применяются операторы Write (<выводимые переменные и тексты>);.
В первом операторе после вывода слова курсор остается на выводимой строке, во 2-м - перенесется на грядущую строку.
В данных операторах применяют и текстовые объяснения, что особенно важно не исключительно для придания последствиям более комфортного для восприятия вида, но и для прояснения того, что надлежит вводить.
Например:
Write('введите целое n и вещественное delta'); ReadLn(n,delta):
WriteLn('площадь треугольника=',sss,'его периметр=',per);
В случае после исполнения работы на экране будет замечен надпись:
Площадь треугольника=1,2356400000E+03,
его периметр=2,8340100000E+02.
Пример:
Program Pr01; первая тренировочная программа. Фигурными скобками отмечаются кометы к программке, что не компилируются и просто остаются в тексте
Var {Начало зоны описания переменных}
а1,dg : Integer;
dd,ura : Real;
Begin {Указание на исполнение программного блока. Присутствие его обязательно}
Write('введите целочисленную переменную а1'); ReadLn(а1);
Write('введите вещественную переменную dd'); ReadLn(dd);
dg:=а1*а1;
ura:=dd*dd;
WriteLn('квадрат введённого целого=',dg); WriteLn('квадрат вещественного=',ura);
Readin;
End. {служебное слово, отмечающее конец исполнения программного блока. Его присутствие - обязательно.}
2.3. Символьные переменные
Переменные, созданные для хранения единичных знаков, именуются символьными переменными. В языке Turbo Pascal для них определён вид этих CHAR. В переменную этого вида, быть может, помещён каждый из 256 знаков расширенного кода ASCII.
Таблица расширенного кода ASCII.
Объявление символьных переменных осуществляется в разделе объявления переменных при помощи карьерного слова CHAR.
Данный вид этих обладает какими-либо отличительными чертами. Традиционно ценности для переменных вида "CHAR" задаются в апострофах. К примеру, когда в программке есть описания
u, v: char
тогда вероятны операторы присваивания
u:='a'; v:=u; v:='*' и т.д.
Апостроф (штрих) ' - принятая в Паскале форма кавычки - употребляется любой раз, когда значение вида "CHAR" явно указывается в программке (то есть считается константой). Исполнение операторов
u:='b'; write(u)
приводит к отображению на экране знака b.
Помимо того, наличествует возможность задавать ценности указанием именно числового ценности ASCII-кода. В таком случае Вы обязаны перед количеством, обозначающим код знака ASCII, поставить символ "#"
u:=#97
Прим.1. Дана последовательность знаков, заканчивающаяся эмблемой "/". Нужно подсчитать число восклицательных символов в этой последовательности.
Program ex_1;
var
c: char; { организация символьной переменной }
n: integer; { переменная для хранения числа "!" }
begin
read(c); { чтение первого знака с клавиатуры }
n:=0; { обнуление cчётчика "!" }
while c<>'/' do { условие завершения работы водом знака '/' }
begin
if c='!' then n:=n+1; { подсчёт знаков "!" }
read(c); { чтение грядущего знака }
end;
end.
Обратите внимание. В таблице ASCII великие латинские буквы и небольшие латинские буквы находятся подряд по алфавиту. Таковая упорядоченность раскрывает возможность применения в программках операторов цикла с параметром, имеющим вид "CHAR". Параметр цикла пробегает последовательность знаков в отмеченных границах. Исполнение оператора цикла
for c:='a' to 'z' do write(c)
где c символьная переменная, приводит к высвечиванию на экране последовательности всех небольших букв латинского алфавита:
abcdefghhijklmnopqrstuvwxyz
Исполнение оператора цикла
for c:='z' downto 'a' do write(c)
приведёт к выводу данных же букв в обратном порядке.
Символьные переменные чрезвычайно комфортны для написания диалоговых программ. Предположим себе, что вам нужно будет часто получать ценности некой функции, к примеру, значение синуса от корня квадратного из x для различных значений x.
Пускай заблаговременно безызвестно, какое количество раз, и для каких непосредственно значений x понадобится определить значение функции. Вполне возможно составить эту программку, которая будет вычислять значение функции, и сразу ждать ввода новенького ценности для x. Это зацикленная программа.
program ex_2;
label 1;
var c: real;
begin
1: write('x=);read(c);
writeln(' ,f(x)=',sin(sqrt(x)));
goto 1;
end.
Когда данная программа производится, на экране складывается последовательность строк
x=...,f(x)=...
x=...,f(x)=...
x=...,f(x)=...
. . . .
Для того чтоб остановить исполнение программы, требуется предпринять Особые меры - к примеру, отключить комп или же надавить комбинацию кнопок Ctrl-Break.
Другой вариант - программа, в процессе исполнения которой на экране часто встает вопрос, надлежит ли продолжать работу, или же остановить исполнение программы:
program ex_3;
var
x: real;
s: char;
begin
s:='д';
while s='д' do
begin
write('x=);read(c);
writeln(' ,f(x)=',sin(sqrt(x)));
writeln('продолжить?(д либо н)');
read(s);
write(' ');
end;
end.
Когда производится данная программа, на экране встает последующая последовательность строк:
x=...,f(x)=...
продолжить?(д или же н)
д
x=...,f(x)=...
продолжить? (д или же н)
д
. . . .
x=...,f(x)=...
продолжить? (д или же н)
н
С вводом буквы н исполнение программы кончается. Возможность чтения буквы ответов поддерживается применением в программке символьной переменной.
Описание функций работающих с символьными переменными.
CHR(x: byte): char;
Преобразует целое количество, имеющее вид BYTE, в 1 знак ASCII-кода. Грядущая программа иллюстрирует возможности функции "CHR". Она выдаёт все знаки кода ASCII на экран. При данном какие-либо знаки ASCII-кода (например, 7, 10, 13) при обыденных условиях не имеют изображения, а употребляются для реализации Специализированных функций (пере - вод курсора и т.д.) Благодаря использованному в операторе Write формату любой из изображаемых знаков отделяется пробела (занимает 2 позиции)
Program ex_4;
var
i: byte;
begin
for i:=0 to 255 do write(chr(i):2);
end.
ORD(c: char): byte;
Функция Ord исполняет действие, обратное функции Chr, т.е. отдаёт порядковый номер знака параметра в таблице ASCII.
UpCase(c: char): char;
Все другие знаки при использовании данной функции остаются непреобразованными.
2.4. Логические переменные и выражения
Логический вид данных
При решении задач нередко потребуется выполнить какие-либо выяснения. К примеру, имеют все шансы появиться вопросы «верно ли что точное количество больше 10?» либо «правда, что в строковой переменной town располагается слово “Москва”?». Чтоб специалисту было проще действовать с этого семейства вопросами, в языке C# присутствует закономерный вид (bool[1] либо System.Boolean). Переменные логического вида (булевы переменные) имеют все шансы брать на себя одно из 2-ух значений (истина) либо false (ложь).
Оглашается логическая переменная обыкновенным для нас образом, инициализировать данную переменную вполне возможно незамедлительно при объявлении или же позже:
bool b1 = true;
bool b2;
b2 = false;
С логическим типом этих имеют дело в последующих случаях:
- при определении истинности некого утверждения;
- когда потребуется беречь в переменной лишь 2 ценности (например, включено или же выключено).