Перечислите простые типы данных в языке программирования Паскаль (Delphi). Опишите особенности объявления констант целого, символьного и строкового типа в языке программирования Паскаль. — КиберПедия 

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

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Перечислите простые типы данных в языке программирования Паскаль (Delphi). Опишите особенности объявления констант целого, символьного и строкового типа в языке программирования Паскаль.

2020-12-06 141
Перечислите простые типы данных в языке программирования Паскаль (Delphi). Опишите особенности объявления констант целого, символьного и строкового типа в языке программирования Паскаль. 0.00 из 5.00 0 оценок
Заказать работу

Оператор присваивания

В результате присваивания переменная получает конкретное значение.

Имя Переменной:=Выражение

Здесь ":= " - оператор присваивания языка Паскаль (Delphi), т.е. символ (в данном случае), который обозначает операцию присваивания

Процедуры ввода - вывода

Для ввода данных используют процедуры read, readln.

Процедура read считывает данные вводимые с клавиатуры, а процедура readln считывает данные и символ конца строки, т.е. после выполнений процедуры ввода курсор будет переведен на следующую строку.

Формат процедуры Read:

Read (x 1, x 2, …, xn); где x1, x2, …, xn- переменные допустимых типов данных.

Процедуры вывода.

Процедура WRITE производит вывод числовых данных, символов, строк, булевских значений.

Формат процедуры Write:

Write (y 1, y 2,... yn); где y1, y2, …, yn- переменные допустимых типов данных.

Для того, чтобы вывести сообщение нужно заключить его в апострофы (‘).

Например:

write('Привет');

- после выполнения этой строки программы на экране появится надпись:

Привет

Процедура записи WriteLn аналогична процедуре Write, единственное отличие заключается в том, что после вывода последнего в списке значения для одной процедуры WriteLn данные для следующей процедуры WriteLn будут выводиться с начала новой строки.

 

Перечислите простые типы данных в языке программирования Паскаль (Delphi). Опишите особенности объявления констант целого, символьного и строкового типа в языке программирования Паскаль.

Типы данных

Язык Паскаль (Delphi) характеризуется разветвленной структурой типов данных (рис. 1).

 Рис. 1

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

Вещественные типы тоже имеют конечное количество значений, которое настолько велико, что сопоставить с каждым из них целое число (его номер) не возможно.

Константа – это величина, которая определена при написании программы и не изменяет своего значения в процессе её выполнения.

В качестве констант в Турбо Паскале могут использоваться целые, вещественные и шестнадцатеричные числа, логические константы, символы, строки символов, конструкторы множеств.

Константа целого типа записывается со знаком или без него по обычным правилам.

Символьная константа - это любой символ ПК, заключённый в апострофы. Например: 'z' - символ z.

Строковая константа – любая последовательность символов языка, заключенная в апострофы.

Правильные объявления констант:

Const

r = 2.7182818;                 // Вещественная константа

i = 2;                           // Порядковая (целая) константа

c = ’4′;                        // Символьная константа

s = ‘Это строковая константа’; // Константа типа String

cc = chr(32);

ls= SizeOf(Longint);

 


4. Перечислите целочисленные типы в языке программирования Паскаль (Delphi). Приведите пример объявления целочисленных переменных. Перечислите арифметические операции, допустимые над целыми данными в Паскале.

 

Целочисленные типы

В Паскале определены несколько целых типов данных:

 

Тип Название Размер
Integer целое 2 байта
Shortint Короткое целое 1 байт
Byte Байт 1 байт
Word Слово 2 байта
Longint Длинное целое 4 байта

Первоначально в Паскале был всего один целый тип — integer, остальные добавлены впоследствии для представления больших величин или для экономии памяти.

С целыми величинами можно выполнять арифметические операции. Результат их выполнения всегда целый (при делении дробная часть отбрасывается).

Над переменными целочисленного типа можно выполнять 4 арифметические операции:

+ (сложение);

- (вычитание);

* (умножение);

/ (деление вещественное).

Для того, чтобы результатом деления целых чисел было целое число, используется оператор "DIV". Он возвращает целую часть частного, а дробную часть отбрасывает; перед выполнением операции оба операнда округляются до целых значений. Если делимое меньше делителя, то результат целочисленного деления всегда равен нулю:

5 div 2 получим 2         11 div 5 получим 2 2 div 3 получим 0

Кроме того, можно использовать оператор mod (остаток от целочисленного деления).

Пример объявления целочисленных переменных:

var

a:byte;

b: integer;

c, d: shortint;


5. Перечислите вещественные типы в языке программирования Паскаль (Delphi), укажите их размер в байтах. Перечислите арифметические операции, допустимые над вещественными данными. Приведите пример объявления вещественные переменных.

Вещественные типы

Тип Название Размер, байт
Real Вещественный 6
Single Одинарной точности 4
Double Двойной точности 8
Extended Расширенный 10
Comp Большое число 8

Автор языка Н. Вирт определил всего один вещественный тип — real и отвел под него разумное количество памяти. Однако аппаратно этот тип в компьютерах семейства IBM PC не поддерживается, поэтому впоследствии в язык были введены типы single и double, а также тип extended для работы с большими числами и с высокой точностью.

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

Над переменными вещественного типа можно выполнять 4 арифметические операции:

+ (сложение);

- (вычитание);

* (умножение);

/ (деление вещественное);

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

Пример объявления вещественных переменных:

var

a:single;

b: real;

c, d: double;

 


6. Перечислите основные математические функции в языке Паскаль. Приведите пример использования математической процедуры генерации случайных чисел.

Разработайте следующую программу: с клавиатуры вводится вещественное число. Необходимо найти сумму двух (старших) цифр дробной части числа. Например, если исходное число 1257,237, то сумма первых двух цифр дробной части равна 5.

 

Условный оператор IF

Условный оператор позволяет проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие.

Структура условного оператора:

if <логическое выражение>

then

 <Оператор 1>

[ else

<Оператор 2>]

Здесь if, then, else - зарезервированные слова (если, то, иначе), квадратные скобки означают, что конструкция else <Оператор 2> может отсутствовать, тогда он называется сокращенным условным оператором.

Например, вычисление квадратного корня из числа "a" проводится при условии a>=0, операторами:

IF a>=0 Then b:= Sqrt(a)

Else                    

begin

WriteLn('a<0');

Readln;

Halt;

end;

Пример фрагмента блок-схемы с условием.


8. Объясните назначение оператора выбора (варианта) в языке программирования Паскаль (Delphi). Опишите структуру оператора выбора (варианта). Приведите пример фрагмента блок-схемы с условием.

Var

       x, y, z: Boolean;

Boolean - это логический тип данных, занимает в памяти 1 байт. Переменная этого типа может хранить только одно из двух возможных значений - True (истина) или False (ложь).

Логический тип определен таким образом, что FALSE < TRUE.

В ТУРБО ПАСКАЛЬ введены еще разновидности логического типа: ByteBool, WordBool и LongBool, которые занимают в памяти ЭВМ один, два и четыре байта соответственно.

К булевским операндам применимы следующие логические операции:

· and – логическое умножение (конъюнкция А^В, операция И).

· or – логическоесложение (дизъюнкция AvB, операция ИЛИ).

· not – логическое отрицание (инверсия, операция НЕ). Имеет один операнд, который и инвертирует. Например, not true даст в результате false.   

· xor - ИСКЛЮЧАЮЩЕЕ или.

Таблица истинности — это таблица, задающая логическую функцию.

A B A and B A or B
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 1

 

Program min_number;

var

n, i, min: integer;

begin

for i:=1 to 3 do

begin

write('Введите ',i,'-е число');

readln(n);

if i=1 then min:=n else

if n<min then min:=n;

end;

writeln('min = ', min);

readln;

end.

 


10. Перечислите операторы, которые служат для организации циклов в языке программирования Паскаль (Delphi). Опишите две формы оператора цикла со счетчиком. Приведите пример использования оператора for.

Разработайте программу, которая выводит на экране символы американскою стандартного кода обмена информацией (ASCII) в порядке убывания кода.

Операторы организации циклов

Если в программе возникает необходимость неоднократно выполнить некоторые операторы, то используются операторы повтора (цикла). В языке Паскаль различают три вида операторов цикла: while, repeat, for. Они используются для организации циклов различных типов. Выражение, управляющее повторениями, должно иметь булевский тип.

Если число повторений оператора (составного оператора) заранее неизвестно, а задано лишь условие его повторения (или окончания), используются операторы while, repeat. Оператор for используется, если число повторений заранее известно.

Оператор повтора for

В случаях, когда число повторений может быть заранее известно, для организации циклической обработки информации применяется оператор повтора for. Подсчет количества выполняемых действий осуществляется при помощи специальной переменной — счетчика. Существуют две формы цикла fоr.

Первая форма реализует последовательное увеличение (на единицу) значения счетчика:

for < параметр цикла >:= < начальное значение > to < конечное значение >

do < оператор >

for, to, do – зарезервированные слова (для, до, выполнить,); < параметр цикла > - параметр цикла, которым является переменная типа Integer (точнее любого порядкового типа); < оператор > - произвольный оператор Турбо Паскаль.

Шаг наращивания параметра цикла строго постоянен и равен (+1). Существует другая форма оператора:

for < параметр цикла >:= < начальное значение > downto < конечное значение >

do < оператор >

Замена зарезервированного слова to словом downto означает, что шаг наращивания параметра цикла равен (-1), а управляющее условие приобретает вид for <параметр цикла>= <конечное значение>.

Пример использования оператора for:

for I:= 1 to 100 do Read (M [ I ]);             {Чтение элементов массива}

for I:= 100 downto 1 do Write(M[I]);   { Вывод элементов массива }

 

program DemoFor;

var

A: integer;

begin

for A:= 255 downto 0 do {Цикл с убыванием параметра}

Writeln('код символа = ',А, ' символ == ',Chr(A));

Readln

end.

 


11. Назовите операторы организации циклов с неизвестным числом повторений в языке программирования Паскаль (Delphi). Опишите их структуру и принцип работы. Покажите с помощью блок-схемы цикл с предусловием.

Разработайте программу, которая вводит и суммирует любое количество целочисленных значений. Если введено значение 999, то на экран выводится результат суммирования.

 

Repeat

<оператор 1>;

<оператор 2>;

…….

<оператор N>;

until < логическое выражение>

Этот цикл будет выполняться, пока логическое выражение после слова until (до тех пор пока) ЛОЖНО. Как только результат выражения станет истинным, произойдет выход из цикла. Вычисление выражения выполняется в конце каждой итерации цикла.

Этот вид цикла применяется в тех случаях, когда тело цикла необходимо обязательно выполнить хотя бы один раз: например, если в цикле вводятся данные и выполняется их проверка. Если же такой необходимости нет, предпочтительнее пользоваться циклом с предусловием.

program DemoRepeat;

var

X: integer;

Sum: real;

begin

 Sum:=0;                                                   

 repeat                             {Повторять}

Write('Значение X= '); {Начало тела цикла}

Readln(X); {Считать очередное значение Х с клавиатуры}

if X <> 999 then

Sum:= Sum+X;

 until X = 999; {Условие окончания цикла (пока Х не станет равным 999)}

Writeln('Сумма введенных чисел= ',Sum);

end.

 


12. Дайте определение понятий «массив», «элемент массива», «размерность массива». Опишите структуру объявления одномерного массива в языке программирования Паскаль (Delphi). Приведите пример ввода-вывода одномерного массива на экран.

Разработать программу нахождения произведения элементов массива A, состоящего из n элементов

Массив. Одномерные массивы

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

Элемент массива – отдельная переменная, входящая в массив.

Размерность массива – количество элементов, которое содержит массив.

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

1. Общая форма (явный способ) описания массива имеет следующий вид:

Var

< идентификатор >: array [ < тип индексов > ] of < тип элементов >;

Примеры объявления массивов:

A: array [1..31] of real;

B: array [0..100] of integer;

2. Неявный способ.

Type

<имя типа> = ARRAY [<тип индекса> ] OF <тип элементов >

VAR <имя переменной>:<имя типа>;

При таком способе описания в разделе Type описывается тип массива, который будет использоваться в программе, то есть его размер и тип элементов. Далее в разделе VAR для переменных которые будут содержать массив указывается новый тип. Если необходимо создать массивы разных типов или разных размеров, то для них создаются отдельные типы, а после объявляются переменные этих типов/

Пример:

Type

Mass1 = ARRAY [1..10] OF integer;

Mass2 = ARRAY [1..10] OF char;

Mass3 = ARRAY [1..10] OF real;

Mass4 = ARRAY [1..10] OF string;

 

VAR A,B: Mass1;

С:Mass2; d: Mass3; e: Mass4;

Одномерные массивы

Если в форме описания массива задан один индекс, массив называется одномерным, если два индекса – двумерным, если N индексов – N-мерным. Размерность ограничена только объемом памяти конкретного компьютера. Одномерные массивы обычно используются для представления векторов, а двумерные – для представления матриц.

Паскаль не имеет средств ввода-вывода элементов массива сразу, поэтому ввод и вывод значений производится поэлементно. Значения элементам массива можно присвоить с помощью оператора присваивания, однако чаще всего они вводятся с экрана с помощью оператора Read или Read l n с использованием оператора организации цикла for:

Ввод элементов одномерного массива А:

for I:=1 to 4 do

Readln(A[I]);

Вывод значений элементов массива выполняется аналогичным образом, но используются операторы Write или Write l n:

Вывод элементов одномерного массива А:

for I:= 1 to 4 do

Writeln (A[I]);

Program mas;

Uses Crt;

Var

n,i:integer;

p:longint;

a:array[1..100] of integer;

begin

writeln(‘Введите размерность массива’);

readln(n);

for i:=1 to n do

 begin

write(‘Введите значение элемента A[‘,i,’] ’);

readln(a[i]);

 end;

p:=1;

for i:=1 to n do

p:=p*a[i];

writeln(‘Произведение элементов равно ’,p);

readln

end.

 


13. Дайте определение понятия «массив». Опишите структуру объявления двумерного массива в языке программирования Паскаль (Delphi). Приведите пример объявления двумерного массива целого типа. Приведите пример ввода-вывода двумерного массива на экран.

Разработайте программу для вычисления суммы всех положительных элементов матрицы 5x5. Вещественные числа вводятся с клавиатуры пользователем.

 

Массив. Многомерные (двумерные) массивы

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

Двумерные массивы

Если число индексов в описании массива равно N, то массив называется N-мерным. На практике часто используются двумерные массивы, соответствующие понятию матрицы.

Каждый элемент двумерного массива характеризуется номером строки и номером столбца. Например: А[3,8] – элемент из массива А находящийся в 3 строке и 8 столбце.

Описание массивов

1. Общая форма (явный способ) описания двумерного массива имеет следующий вид:

Var

< идентификатор >: array [ < тип индекса строки >, <тип индекса столбца>] of < тип элементов >;

Пример:

VAR

a: ARRAY [1..10,1..20] OF integer;

2. Неявный способ.

Type

<имя типа> = ARRAY [<тип индекса строки>, <тип индексов столбца> ] OF <тип элементов >

VAR <имя переменной>:<имя типа>;

При таком способе описания в разделе Type описывается тип массива, который будет использоваться в программе, то есть его размер и тип элементов. Далее в разделе VAR для переменных, которые будут содержать массив, указывается новый тип. Если необходимо создать массивы разных типов или разных размеров, то для них создаются отдельные типы, а после объявляются переменные этих типов.

Пример:

Type

Mass1 = ARRAY [1..10,1..20] OF integer;

 

VAR A: Mass1;

Ввод и вывод значений производится поэлементно. Значения элементам массива можно присвоить с помощью оператора присваивания, однако чаще всего они вводятся с экрана с помощью оператора Read или Read l n с использованием оператора организации цикла for:

Ввод элементов двумерного массива В:

for I:= 1 to 10 do

for J:= 1 to 15 do

Readln (B[I,J]);

Вывод значений элементов массива выполняется аналогичным образом, но используются операторы Write или Write l n:

Вывод элементов двумерного массива В:

for I:= 1 to 10 do

for J:= 1 to 15 do

Write l n (B[I,J]);

 

program my;

var

a: array [1..5, 1..5] of real;

i, j: byte;

s: real;

begin

s:=0;

for i:=1 to 5 do

for j:=1 to 5 do

begin

write('Введитечисло [',i,’,’,j,']: ');

readln(a[i,j]);

if a[i,j]>0 then s:=s+a[i,j];

end;

writeln('s = ', s:0:2);

readln;

end.

 


14. Опишите общую структуру процедуры в языке программирования Паскаль (Delphi). Запишите общий вид вызова процедуры. Перечислите варианты формальных параметров.

Оформите в виде процедуры алгоритм вычисления степени y=xn с натуральным показателем.

 

Процедуры

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

В языке Pascal для организации подпрограмм используются процедуры и функции.

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

Описание процедуры:

Procedure <имя> [(<список формальных параметров>)];

[<раздел описаний>];

Begin

<оператор-1>;

<оператор-2>;

<оперaтop-N>

End;

 

где Procedure - служебное слово, определяющее заголовок процедуры; <имя> - имя процедуры (идентификатор); <список формальных параметров> - перечень имен для обозначения исходных данных и результатов работы процедуры с указанием их типа (имени типа), допускается описание процедуры без параметров; <раздел описаний> - раздел локальных описаний используемых в процедуре меток, констант, типов, переменных, процедур и функций; Begin, End - служебные слова, ограничивающие содержательную часть процедуры (раздел операторов). Заканчивается блок процедуры точкой с запятой.

Вызывается процедура по её имени, например:

PRIM(Список_ фактических параметров);

Параметры

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

Существует 2 вида параметров:

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

- те, через которые данные возвращаются в основную программу из процедуры, называют параметры-переменные.

Формальные параметры указываются рядом с именем процедуры в круглых скобках. Список параметров формально определяет количество переменных, которое необходимо для обмена информацией, и их тип. При этом, как и в разделе описания переменных, указывается имя переменной и через двоеточие её тип. Этого достаточно для их объявления.

Параметры-переменные (результат работы процедуры) отличаются от параметров-значений тем, что перед ними стоит служебное слово Var.

При каждом обращении к процедуре мы должны поместить в параметры некоторые значения. Эти значения называются фактическими параметрами.

Фактические параметры — это параметры (данные), которые передаются процедуре при ее вызове.

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

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

Procedure Step1(n:integer, х:real; Var у: real);

 Var

i: integer;

Begin {Stepl}

y:=1

for i:= 1 to n do

у:= y*x

End; {Stepl}

 


15. Опишите общую структуру функции в языке программирования Паскаль (Delphi). Запишите общий вид вызова функции. Перечислите основные отличия процедуры от функции.

Оформите в виде функции алгоритм вычисления степени y=xn с натуральным показателем.

Функция

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

В языке Pascal для организации подпрограмм используются процедуры и функции.

Если подпрограмма имеет только один выводимый параметр (результат), то её можно оформить в виде функции.

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

Описание функции:

Function <имя>[(<список формальных параметров>)]:<имя-типа>;

 [<раздел описаний>]

 Begin

...

<имя>:= <выражение>

End;

где Function - служебное слово, определяющее заголовок подпрограммы-функции; <имя> - имя функции; <список формальных параметров> - перечень имен для обозначения аргументов функции с указанием их типа; <имя-типа> - определение типа (скалярного) возвращаемого значения; <раздел описаний> - раздел локальных описаний, используемых в функции; Begin, End - служебные слова, ограничивающие содержательную часть функции.

Вызывается функция по её имени с указанием фактических параметров. При этом вызов функции можно делать непосредственно внутри выражения, подобно тому, как используются стандартные встроенные функции, например, квадрат — SQR(X).

Function Step2(n: integer, х: real): real;

 Var

i: integer;

у: real;

Begin {Step2}

 y:=1;

for i:= 1 to n do

у:= y*x;

Step2:= у

End; {Step2}

 


16. Дайте определение понятия «модуль» (unit). Опишите структуру Unit-a (разделы interface, implementation).

Разработайте программу для вычисления произведения всех элементов матрицы 10x10. Целые числа генерируются случайным образом.

 

Модули

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

Структура модуля

Рассмотрим общую структуру модуля:

Unit <имя>; {Заголовок модуля}

Interface {Интерфейсная секция}

Uses <список_модулей>; {необязателен} <открытые_описания>

Implementation {Исполняемая часть}

Uses <список_модулей>; {необязателен} <закрытые_описания>

<процедуры_и_функции>

 Begin {Секция инициализации}

<код_инициализации>

 End.

Здесь

UNIT - зарезервированное слово (единица); начинает заголовок модуля;

<имя> - имя модуля (правильный идентификатор);

INTERFACE - зарезервированное слово (интерфейс); начинает интерфейсную часть модуля;

IMPLEMENTATION - зарезервированное слово (выполнение); начинает исполняемую часть; 

BEGIN - зарезервированное слово; начинает инициализирующую часть модуля;

конструкция BEGIN <секция инициализации> необязательна;

END - зарезервированное слово - признак конца модуля.

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

Интерфейсная часть

Интерфейсная часть открывается зарезервированным словом INTERFACE. В этой части содержатся объявления всех глобальных объектов модуля (типов, констант, переменных и подпрограмм), которые должны стать доступными основной программе и/или другим модулям. При объявлении глобальных подпрограмм в интерфейсной части указывается только их заголовок.

Исполняемая часть

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

.

program my;

var

a: array [1..10, 1..10] of integer;

i, j: byte;

pr: longint;

begin

pr:=1;

randomize;

for i:=1 to 10 do

for j:=1 to 10 do

begin

a[i,j]:=random(2)+1;

pr:=pr*a[i,j];

end;

writeln('pr = ', pr);

readln;

end.

 


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

Разработайте программу для определения количества пробелов в строке длинной 20 символов.

 

Символьные переменные

Этот тип данных, обозначаемый ключевым словом char, служит для представления любого символа из набора допустимых символов. Под каждый символ отводится 1 байт.

Набор значений типа Char, доступных на данной ЭВМ, называется множеством литер этой ЭВМ. Множество литер обычно включает в себя прописные и строчные буквы, цифры от 0 до 9 и ряд других символов. ЭВМ, на которых устанавливается компилятор с языка Паскаль, обычно используют код, называемый ASCII (американский стандартный код обмена информацией).

В системе ASCII закреплены две таблицы кодирования – базовая и расширенная. Базовая таблица закрепляет значение кодов от 0 до 127, а расширенная относится к символам с номерами от 128 до 255. 

Первые 32 кода базовой таблицы, начиная с нулевого содержат так называемые управляющие коды, которым не соответствуют никакие символы языков. Эти коды не выводятся ни на экран, ни на устройства печати.

Начиная с кода 32 по код 127 размещены символов английского алфавита, знаков препинания, цифр, арифметических действий и некоторых вспомогательных символов.

К символам можно применять операции отношения (<, <=, >, >=, =, <>), при этом сравниваются коды символов. Меньшим окажется символ, код которого меньше. Других операций с символами нет, да они и не имеют смысла.

Стандартных подпрограмм для работы с символами тоже немного (табл. 1.).

Таблица 1. Стандартные функции для символьных величин

Название Описание Результат Пояснения
ord Порядковый номер символа Целый ord('b') даст в результате 98 ord('ю') даст в результате 238
chr Преобразование в символ  Символьный  chr (98) даст в результате 'b' chr(238) даст в результате 'ю'
pred Предыдущий символ  Символьный  pred (' b') даст в результате ' а'
succ Последующий символ Символьный succ(' b') даст в результате 'c'
upcase Перевод в верхний регистр (только для символов из диапазона ‘a’..’z’) Символьный upcase (' b') даст в результате 'B'

Пример:

const

ch = '2';

ch2 = #62;

var

cl,c2: Char;

begin

cl:= UpCase('s'); 

c2:= UpCase ('Ф');

WriteLn(cl,' ',c2) 

end.

 

 

program my;

var

s: string[20];

i, n: integer;

begin

s:='Длина строки 20 симв';

for i:=1 to length(s) do

if s[i]=' ' then inc(n);

writeln('n = ', n);

readln;

end.

 


18. Дайте определение понятия «строка». Опишите структуру объявления строки в языке программирования Паскаль (Delphi). Приведите пример объявления типизированной константы строкового типа. Кратко охарактеризуйте следующие функции для обработки строк: concat, copy, delete, insert, length, pos.

Разработайте программу решения задачи, в которой подсчитать количество слов в строке (слова на английском языке разделены пробелами). Исходные данные строки вводятся с клавиатуры.

Строки

Строка - это последовательность символов, заключенная в апострофы. Ее длина может изменяться от 0 до 255 символов.

Переменная символьного типа должна быть объявлена в разделе объявления переменных.

Определение строкового типа устанавливает максимальное количество символов, которое может иметь строка. Оно имеет следующий вид:

Туре

<имя_типа> = string [<максимальная _длина_строки>];

Тип string (строка) в Турбо Паскале широко используется для обработки текстов и во многом похож на одномерный массив символов array |0..N] of char. В отличие от массива количество символов в строке-переменной может меняться от 0 до N (N - максимальное количество символов в строке). Значение N объявляется в типе string [N] и не должно превышать 255. При отсутствии N считается, что N - 255.

К любому символу в строке можно обратиться точно так же, как к элементу одномерного массива ARRAY [0..N] OF CHAR, например:

Var

st: String

 

Begin

.....

if st[5] = 'A' then... 

end.

 

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

const

s = 'Sample';

s: string = 'Sample2'

 

CONCAT (S1 [,S2,..., SN]) - функция типа STRING; возвращает строку, представляющую собой сцепление строк-параметров SI, S2,..., SN. Например:

St1:= 'Turbo';

St2:= 'Pascal';

St:=Concat(St1,'-', St2);

дают значение переменной St, равной строке 'Turbo Pascal'.

COPY (ST, INDEX, COUNT) - функция типа STRING; копирует из строки ST COUNT символов, начиная с символа с номером INDEX.

Например, из строки Stl:= 'акватория' с помощью оператора St:= Copy(Stl,5,3); будет выделена подстрока St = 'тор'. При этом исходная строка Stl остается без изменения.

DELETE (ST, INDEX, COUNT) - процедура; удаляет СОUNT символов из строки ST, начиная с символа с номером INDEX. Например, после выполнения операторов:

St:= 'Строки';

Delete(St,2,2);

Строка St примет значение 'Соки'.

INSERT (SUBST, ST, INDEX) - процедура; вставляет подстроку SUBST в строку ST, начиная с символа с номером INDEX.  Например:

St1:= ' PC ';

St2:= 'IBMXT';

lnsert(St1,St2,4);

даст значение переменной St2, равное строке 'IBM PC XT'.

LENGTH (ST) - функция типа INTEGER; возвращает длину строки ST.

POS (SUBST, ST) - функция типа INTEGER; отыскивает в строке STпервое вхождение подстроки SUBST и возвращает номер позиции, с которой она начинается; если подстрока не найдена, возвращается ноль. Например, после выполнения операторов

St:= 'В лесу родилась елочка, в лесу она росла';

St1:= 'лес';

n:= Pos(Stl.St);

переменная п примет значение 3.

program slova;

uses crt;

var

stroka:string;

var

i,dlst,kolsl:integer;

begin

 clrscr;

 writeln(‘Введите исходную строку на английском языке’);

 readln(stroka);

 dlst:=length(stroka);

 kolsl:=0;

 for i:=1 to dlst do

 if stroka[i]=’ ‘ then kolsl:=kolsl+1;

 kolsl:=kolsl+1;

 writeln(‘Количество слов в строке:’,kolsl);

 end.


19. Дайте определение понятия «множества». Опишите структуру описания множества в языке программирования Паскаль (Delphi). Приведите пример объявления множества. Перечислите операции, допустимые над множествами, а также назначение функций include и exclude.

Разработайте программу решения задачи, в которой определить каких букв в строке больше, гласных или согласных. Исходные данные строки вводятся с клавиатуры.

 

Множества

Множества - это наборы однотипных логически связанных друг с другом объектов. Количество элементов, входящих в множество, может меняться в пределах от 0 до 256 (множество, не содержащее элементов, называется пустым). Именно непостоянством количества своих элементов множества отличаются от массивов и записей.

Описание типа множества имеет вид:

 

<имя типа> = SET OF <баз.тип>

 

Здесь <имя типа> - правильный идентификатор;

SET, OF - зарезервированные слова (множество, из);

<баз.тип> - базовый тип элементов множества, в качестве которого может использоваться любой порядковый тип, кроме WORD, INTEGER, LONGINT.

Сортировка выбором

При сортировке выбором выбирается элемент с наименьшим значением и делается его обмен с первым элементом массива. Затем находится элемент с наименьшим значением из оставшихся n-1 элементов и делается его обмен со вторым элементом и т.д. до обмена двух последних элементов. Например, если сортировку выбором применить для массива "bdac", то будут получены следующие проходы:

исходное положение: b d a c;

первый проход:   a d b c;

второй проход:   a b b c;

третий проход:   a b c d.

 

Сортировка вставкой

Сортировка вставкой является последней из класса простых алгоритмов сортировки. При сортировке вставкой сначала упорядочиваются два элемента масс


Поделиться с друзьями:

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.361 с.