Файл: Понятие переменной в программировании. Виды и типы переменных (Понятие переменных и их использование).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 26.06.2023

Просмотров: 77

Скачиваний: 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 формата записи целого числа:

  1. Десятичная запись. Просто количество, к примеру, 10.
  2. Шестнадцатеричная запись. Количество с префиксом $. К примеру, шестнадцатеричное количество $10 точно также десятичному 16.
  3. Восьмеричная запись. Количество с префиксом &. К примеру, восьмеричное количество &10 точно также десятичному 8.
  4. Двоичная запись. Количество с префиксом %. К примеру, двоичное количество %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 ценности (например, включено или же выключено).