Что такое sr в паскале
Перейти к содержимому

Что такое sr в паскале

Паскаль – Типы переменных

Переменная – это не что иное, как имя, данное области памяти, которой могут манипулировать наши программы. Каждая переменная в Паскале имеет определенный тип, который определяет размер и расположение памяти переменной; диапазон значений, которые могут быть сохранены в этой памяти; и набор операций, которые могут быть применены к переменной.

Имя переменной может состоять из букв, цифр и символа подчеркивания. Он должен начинаться либо с буквы, либо с подчеркивания. Паскаль не чувствителен к регистру , поэтому заглавные и строчные буквы здесь означают одно и то же. Основываясь на базовых типах, описанных в предыдущей главе, будут следующие базовые типы переменных:

Основные переменные в Паскале

Обычно один октет (один байт). Это целочисленный тип.

целое число

Наиболее натуральный размер целого числа для машины.

Значение с плавающей запятой одинарной точности.

Указывает истинные или ложные логические значения. Это также целочисленный тип.

Перечислимый

Определяет пользовательский список.

Поддиапа- зон

Представляет переменные, значения которых лежат в диапазоне.

Хранит массив символов.

Обычно один октет (один байт). Это целочисленный тип.

целое число

Наиболее натуральный размер целого числа для машины.

Значение с плавающей запятой одинарной точности.

Указывает истинные или ложные логические значения. Это также целочисленный тип.

Перечислимый

Определяет пользовательский список.

Поддиапа- зон

Представляет переменные, значения которых лежат в диапазоне.

Хранит массив символов.

Язык программирования Pascal также позволяет определять различные другие типы переменных, которые мы рассмотрим в следующих главах, таких как Pointer, Array, Records, Sets, Files и т. Д. В этой главе мы изучим только основные типы переменных.

Объявление переменных в Паскале

Все переменные должны быть объявлены до того, как мы используем их в программе Pascal. Все объявления переменных сопровождаются ключевым словом var . Объявление определяет список переменных, за которыми следует двоеточие (:) и тип. Синтаксис объявления переменной –

Здесь тип должен быть допустимым типом данных Pascal, включая символьные, целые, действительные, логические или любые другие определяемые пользователем типы данных и т. Д., А variable_list может состоять из одного или нескольких имен идентификаторов, разделенных запятыми. Некоторые действительные объявления переменных показаны здесь –

В предыдущем уроке мы обсуждали, что Pascal позволяет объявлять тип. Тип может быть идентифицирован по имени или идентификатору. Этот тип может использоваться для определения переменных этого типа. Например,

Теперь определенные типы могут использоваться в объявлениях переменных –

Обратите внимание на разницу между объявлением типа и объявлением var . Объявление типа указывает категорию или класс типов, таких как целое число, вещественное и т. Д., Тогда как спецификация переменной указывает тип значений, которые может принимать переменная. Вы можете сравнить объявление типа в Pascal с typedef в C. Самое главное, имя переменной относится к области памяти, где будет храниться значение переменной. Это не так с объявлением типа.

Инициализация переменной в Паскале

Переменным присваивается значение с двоеточием и знаком равенства, за которым следует постоянное выражение. Общая форма присвоения значения –

По умолчанию переменные в Паскале не инициализируются с нуля. Они могут содержать мусорные значения. Поэтому лучше инициализировать переменные в программе. Переменные могут быть инициализированы (им присвоено начальное значение) в их объявлении. За инициализацией следует ключевое слово var, а синтаксис инициализации следующий:

Вот некоторые примеры:

Давайте посмотрим на пример, который использует различные типы переменных, которые обсуждались до сих пор –

Когда приведенный выше код компилируется и выполняется, он дает следующий результат –

Перечисляемые переменные

Вы видели, как использовать простые типы переменных, такие как integer, real и boolean. Теперь давайте посмотрим переменные перечислимого типа, которые можно определить как –

Когда вы объявили перечислимый тип, вы можете объявить переменные этого типа. Например,

Следующий пример иллюстрирует концепцию –

Когда приведенный выше код компилируется и выполняется, он дает следующий результат –

Переменные поддиапазона

Переменные поддиапазона объявляются как –

Примеры поддиапазонных переменных:

Следующая программа иллюстрирует концепцию –

Когда приведенный выше код компилируется и выполняется, он дает следующий результат –

Манипулирование строками STRING.

В языке Паскаль при работе с текстами чаще всего используются короткие строки типа STRING. Стандартные процедуры READLN(St), WRITE(St) и WRITELN(St) поддерживают ввод и вывод строк переменной длины St: STRING.

Объявление и структура строки.

Строку можно объявить двумя способами.

  • В разделе констант можно сформировать переменную типа STRING и инициализировать ее путем присваивания начального значения в виде текстового литерала.

CONST A: STRING =’Я учусь программировать’; <Длина строки 255 символов>
В: STRING[15] = ‘IBM PC

  • Второй способ состоит в объявлении строки в разделе VAR. В этом случае в памяти компьютера отводится место для хранения информации в объеме, не превышающем размер строки.

VAR
A:STRING;
В:STRING[15];
С:ARRAY[1..10] OF STRING[25];

В этом объявлении A представляет собой строку максимально возможной длины, занимающую в памяти компьютера 256 байт. Байт с номером 0, то есть А[0], содержит двоичный код равный количеству символов в строке. Остальные байты A[1]. А[255], имеющие номера с 1 по 255, используются для хранения кодов литер, соответствующих ASCII. Строка B резервирует только 16 байт. В остальном она ничем не отличается от строки А. Переменная С представляет собой массив из 10 строк, каждая из которых имеет длину 15 символов. Обратиться к любой строке массива можно так — С[I], где I — номер строки (I = 1..10). Имеется возможность обратиться к любой литере любой строки — C[I, J], где I — номер строки (I = 1..10), a J — номер литеры в строке (J = 1..25).
Ниже перечисляются стандартные операциями над строками, принятые во многих языках программирования.

Сцепка строк.

Сцепка строк — построение такой их комбинации, которая представляет единую результирующую строку. Операцией сцепления является знак ‘+’. Иногда эту операцию называют конкатенацией строк.

Пример 10. Ввести строку ST символов. Построить три строки: SR – содержащую все символы русского алфавита исходной строки в порядке их следования; SL – содержащую латинские символы исходной строки; SP – содержащую все остальные символы. Указать количество символов в каждой из строк.
При решении задач со строками часто пользуются функциями. В рассматриваемой задаче введем пользовательскую функцию UST(X). На вход этой функции подается литера, а на выходе число 1, 2, или 3. Число идентифицирует символ на принадлежность одной из строк латинской, русской или прочих символов соответственно. Поскольку порядок следования символов в выходных строках соответствует исходной строке, то можно организовать арифметический цикл от 1 до N, где N — длина введенной строки текста. На каждом шаге цикла следует классифицировать текущую литеру с помощью функции UST(ST[I]). По результатам анализа оператор CASE направляет вычислительный процесс по одной из трех ветвей, в которых путем сцепки формируются выходные строки SL, SR, SP. Программа завершается выводом на экран каждой строки и ее размера.

PROGRAM PR10;
VAR ST, SL, SR, SP: STRING; I, N: BYTE;
FUNCTION UST(X: GHAR): BYTE; <1 - лат., 2 – рус., 3 остальные>
CONST AL: SET OF CHAR = [‘A’.. «Z», ‘a’.. ‘z’];
AR: SET OF CHAR = [‘A’.. ‘Я’, ‘a’.. ‘п’ ‘p’.. ‘я’];
BEGIN
UST := 3;
IF X IN AL THEN UST := 1;
IF X IN AR THEN UST := 2;
END;
BEGIN
WRITELN(‘Введите строку не более 255 символов’);
READLN(ST);
N:= ORD(ST[0]); <Длина исходной строки>
WRITELN(‘B исходной строке’, N:l,’ символов’);
SR: ;
SP: Z», ‘a’.. ‘z’];
AR: SET OF CHAR = [‘A’.. ‘Я’, ‘a’.. ‘п’ ‘p’.. ‘я’];
описывают AL и AR как (SET OF) множества всех возможных подмножеств элементов исходного множества, включая пустое множество. Например, такое множество, состоящее из трех элементов [A,B,C] включает в себя следующие подмножества: [A,B,C], [A,B], [B,C],[A,C],[A],[B],[C],[]. Соответственно запись ‘a’.. ‘п’ эквивалентна ‘а’, ‘б’, ‘в’, ‘г’, ‘д’, ‘е’, ‘ж’, ‘з’, ‘и’, ‘й’, ‘к’, ‘л’, ‘м’, ‘н’, ‘о’, ‘п’.
Проверка IF X IN AL определяет наличие переменной X, в множестве AL.

Поиск подстроки.

Поиск подстроки представляет собой анализ, содержит ли исходная (первая St1) строка вторую St2. Если содержит, то определяется порядковый номер литеры в первой строке, являющейся самой левой позицией второй строки. Для поиска используется функция POS(St2, St1), которая (см. табл. 2.1) возвращает целое число N — номер символа в St1, с которого начинается St2, если поиск успешен, и ноль — в противном случае, где St1, St2: String; N: Byte.

поиск подстроки

Удаление подстроки.

Удаление подстроки представляет собой операцию нахождения результирующей строки из исходной St посредствам удаления N литер, начиная с позиции Poz (см. табл. 2.2). Для удаления используется стандартная процедура DELETE(St, Poz, N), где St исходная строка, Poz — номер первого удаляемого символа, N — число удаляемых литер, где St: String; Poz, N: Byte.

удаление подстроки

Однако пользоваться процедурой DELETE неудобно, поскольку результат она не возвращает, а только удаляет из строки подстроку. Лучше разработать пользовательскую функцию DEL(St, Poz, N) с теми же параметрами, что и у процедуры DELETE, которая бы возвращала вычисленную строку непосредственно в строковое выражение, откуда она вызывается.

Пример 11. Создать функцию DEL(St, Poz, N), которая возвращает исходную строку St, из которой удалены N позиций, начиная с позиции Poz.

FUNCTION DEL(ST: STRING; POZ, N: BYTE): STRING;
BEGIN
DELETE(ST, POZ, N);
DEL := ST
END;

Пример 12. Ввести строку, подсчитать число символов в строке и, если оно нечетное, удалить символ, стоящий посредине строки. Вывести полученную строку на экран. В программе использовать функцию DEL.

PROGRAM PR12;
VAR ST: STRING; N: BYTE;
FUNCTION DEL(ST: STRING; POZ, N: BYTE): STRING;
BEGIN
DELETE(ST, POZ, N); DEL:=ST
END;
BEGIN
WRITELN(‘Введите строку не более 255 символов’);
READLN(ST);
N:= ORD(ST[0]); <Длина исходной строки>
IF ODD(N) THEN ST:= DEL(ST, N div 2+1,1);
WRITELN(ST)
END.

Выделение подстроки.

Выделение подстроки представляет собой операцию построение новой строки (см. табл. 2.3), являющейся последовательностью литер исходной строки, начиная с позиции Poz длиной N. Для выделения подстроки St1 из строки St используется функция COPY(St, Poz, N), которая возвращает St1, где St, St1: String; Poz, N: Byte.:

выделение подстроки

Вставка подстроки.

Для вставки подстроки St в строку St1 (см. табл. 2.4), начиная с позиции Poz, используется процедура INSERT(St, St1, Poz), где St, St1: String; Poz: Byte.

вставка подстроки

Часто использование процедуры INSERT оказывается неудобным. Рекомендуется создать пользо-вательскую функцию INS(St, St1, Poz), которая возвращает строку St1, полученную из строки St1 путем вставки подстроки St с позиции Poz.

Пример 13. Создать функцию вставки подстроки INS(St, St1, Poz), описанную выше.

FUNCTION INS(ST, ST1: STRING; POZ: BYTE): STRING;
BEGIN
INSERT(ST, ST1, POZ);
INS:= ST1
END;

Определение длины строки.

Строка St типа STRING отличается от массива символов тем, что содержит один служебный байт памяти с номером ноль St[0], где хранится текущая длина строки, то есть количество информационных байт (литер). Это число N называется длиной строки. Для определения длины строки (см. табл. 36) можно использовать стандартную функцию LENGTH(St), где St: string; N: byte.

определение длины строки

Замена подстроки.

Для замены в исходной строке всех вхождений данной подстроки новой подстрокой стандартной функции нет. Поэтому можно использовать пользовательскую функцию ATR(St, St1, St2), которая описана ниже (см. табл. 2.6). Функция обеспечивает поиск подстроки St в строке St1 и замену всех вхождений на подстроку St2, где St, St1, St2: String.

замена подстроки

Пример 14. В исходной строке заменить все вхождения данной подстроки новой подстрокой, ис-пользуя функцию ATR.

PROGRAM PR14;
VAR S, S1, S2: STRING;
FUNCTION ATR(ST, ST1, ST2: STRING): STRING;
VAR N,N1: BYTE;
BEGIN
N:= LENGTH(ST); <Длина подстроки подлежащей замене>
WHILE POS(ST, ST1) <> 0 DO BEGIN
N1:= POS(ST, ST1); <Первая позиция заменяемой подстроки>
DELETE(ST1, N1, N); <Удаление заменяемой подстроки>
INSERT(ST2, ST1, N1); <Вставка новой подстроки>
END;
WRITELN(‘Введите исходную строку ST1’);
READLN(S1);
WRITELN(‘Bвeдитe строку подлежащую замене S’);
READLN(S);
WRITELN(‘Введите строку ST2 на которую нужно заменить ST’);
READLN(S2);
WRITELN(‘Peзyльтaт замены ==> ‘, ATR(S, S1, S2))
END.

Преобразование численного значения вещественного или целого числа в строку.

Для преобразования целочисленного I или вещественного числа IR в строку символов St можно использовать стандартную процедуру STR(IR, St), где St: String; IR: Real; I: Integer. При вызове процедуры следует использовать правила форматирования. Вид результирующей строки полностью определяется форматом. Примеры преобразования приведены в табл. 2.7.

stroki2

Преобразование строки в вещественное или целое число и помещение результата в переменную.

Для преобразования строки St в переменную целого I или вещественного IR типов используется процедура VAL(St, R, Cod), где Cod целочисленная переменная — Cod: Integer; St: String; IR: Real; I: Integer. Вы можете скачать настольные игры на андроид бесплатно. Если исходная строка St содержит литерал, удовлетворяющий правилам преобразования в переменную заданного типа, то Cod => 0. В противном случае Cod становится равным номеру первой литеры в St, где нарушены правила записи целых или вещественных констант.

Pascal: Занятие №1. Часть 3: Типы данных в Паскаль

Паскаль — это типизированный язык программирования. Это означает, что переменные, в которых хранятся данные, имеют определенный тип данных. Т.е. программе напрямую надо указать, какие данные могут храниться в той или иной переменной: текстовые данные, числовые данные, если числовые — то целочисленные или дробные, и т.п. Это необходимо в первую очередь для того чтобы компьютер «знал», какие операции можно выполнять с этими переменными и как правильно их выполнять.

Например, сложение текстовых данных, или как это правильно называется в программировании — конкатенация — это обычное слияние строк, тогда как сложение числовых данных происходит поразрядно, кроме того, дробные и целые числа складываются тоже по-разному. То же самое касается и других операций.

Рассмотрим наиболее распространенные в Pascal типы данных.

Целочисленные типы данных в Паскаль

Тип Диапазон Требуемая память (байт)
byte 0..255 1
shortint -128..127 1
integer -32768.. 32767 2
word 0..65535 2
longint -2147483648..2147483647 4

Нужно иметь в виду, что при написании программ в паскале integer (в переводе с англ. целое) является наиболее часто используемым, так как диапазон значений наиболее востребуем. Если необходим более широкий диапазон, используется longint (long integer, в переводе с англ. длинное целое). Тип byte в Паскале используется, когда нет необходимости работать с отрицательными значениями, то же самое касается и типа word (только диапазон значений здесь значительно больше).

Примеры того, как описываются (объявляются) переменные в Паскале:

program a1; var x,y:integer; <целочисленный тип>myname:string; <строковый тип>begin x:=1; y:=x+16; myname:=’Петр’; writeln (‘имя: ‘,myname, ‘, возраст: ‘, y) end.

program a1; begin var x, y: integer; <целочисленный тип>var myname: string; <строковый тип>x := 1; y := x + 16; myname := ‘Петр’; print($’имя: , возраст: ‘) end.

Результат:
имя: Петр, возраст: 17

Комментарии в Паскале

Обратите внимание на то, как используются комментарии в Паскале. В примере комментарии, т.е. служебный текст, который «не видим» для компилятора, заключаются в фигурные скобки <> . Обычно комментарии делаются программистами с целью пояснения фрагментов кода. Для однострочных комментариев можно использовать два слэша // :

[Название файла: L1task5.pas ]

Вещественные типы данных в Паскаль

Вещественные числа в Паскале и вообще в программировании — это название дробных чисел.

Тип Диапазон Требуемая память (байт)
real 2.9 * 10E-39 .. 1.7 * 10E38 6
single 1.5 * 10 E-45 .. 3.4 * 10E38 4
double 5 * 10E-324 .. 1.7 * 10E308 8
extended 1.9 * 10E-4951 .. 1.1 * 10E4932 10

Тип real в Паскале — наиболее часто используемый из вещественных типов.

Выше были представлены простые типы данных в Паскаль, к которым относятся:

  • Порядковые
  • Целые
  • Логические
  • Символьные
  • Перечисляемые
  • Интервальные
  • Вещественные

Наряду с простыми типами в языке еще используются структурированные типы данных и указатели, которым будут посвящены последующие уроки по Паскалю.

Константы в Паскале

Зачастую в программе заранее известно, что переменная будет принимать какое-то конкретное значение и не менять его на протяжении выполнения всей программы. В таком случае необходимо использовать константу.

Объявление константы в Паскале происходит до объявления переменных (до служебного слова var ) и выглядит следующим образом:

Пример описания константы в Паскале:

const x=17; var myname:string; begin myname:=’Петр’; writeln (‘имя: ‘,myname, ‘, возраст: ‘, х) end.

const x = 17; begin var myname := ‘Петр’; print($’имя: , возраст: ‘) end.

«Красивый» вывод целых и вещественных чисел

Для того чтобы после вывода значений переменных оставались отступы, чтобы значения не «сливались» друг с другом, принято через двоеточие указывать какое количество символов нужно предусмотреть для вывода значения:

Вывод целых чисел

Вывод целых чисел

Вывод вещественных чисел

Вывод вещественных чисел

Арифметические операции в Паскале

арифметические операции в паскале

Порядок выполнения операций

  1. вычисление выражений в скобках;
  2. умножение, деление, div, mod слева направо;
  3. сложение и вычитание слева направо.

порядок выполнения операций

var a: integer; b: real; begin a := 1; writeln(‘a := 1; a = ‘,a); a += 2; // Увеличение на 2 writeln(‘a += 2; a = ‘,a); a *= 3; // Умножение на 3 writeln(‘a *= 3; a = ‘,a); writeln; b := 6; writeln(‘b := 6; b = ‘,b); r /= 2; writeln(‘b /= 2; b = ‘,b); end.

Стандартные арифметические процедуры и функции Pascal

Здесь стоит более подробно остановиться на некоторых арифметических операциях.

    Операция inc в Паскале, произносимая как инкремент, это стандартная процедура pascal, которая обозначает увеличение на единицу.

Пример операции inc:

Более сложное использование процедуры inc:
Inc(x,n) где x — порядкового типа, n — целого типа; процедура inc увеличивает x на n.

Пример использования функции odd:

begin WriteLn(Odd(5)); WriteLn(Odd(4)); end.

Пример использования процедуры sqr в Pascal:

var x:integer; begin x:=3; writeln(sqr(x)); <ответ 9>end.

Формула такая: exp(ln(a)*n) , где а — число, n — степень (а>0).

Однако в компиляторе pascal abc возведение в степень осуществляется значительно проще:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *