Смекни!
smekni.com

Строковые данные на Паскале (стр. 1 из 3)

СОДЕРЖАНИЕ

ВВЕДЕНИЕ. 4

ОСНОВНАЯ ЧАСТЬ

1.1 Строковый тип данных в языке Pascal6

1.2 Тип string и стандартный тип char7

1.3 Функция Copy. 9

1.4 Функция Concat9

1.5 Функция Length. 9

1.6 Процедура Delete. 10

1. 7 Str(x, S)………………………………………………………………………10

1.8 Val(S, x, kod)………………………………………………………………....10

2.1 Постановка задачи. 11

2.2 Блок- схема алгоритма решения задач………………..……………………12

2.3 Особенности паскаля……………………………………………………..14

2.4 Программа. 14

2.5 Описание работы программы………………………………………………17

2.6 Пояснение работы операторов используемых в прграмме. 20

2.7 Примеры работы прграммы.. 23

ЗАКЛЮЧЕНИЕ. 24

СПИСОК ЛИТЕРАТУРЫ.. 25

Приложение……………………………………………………………………26

Инструкция пользователя……………………………………………………….26

Программа на контрольном примере…………………………………………..28

ВВЕДЕНИЕ

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

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

Интерпретатор переводит в машинный код и выполняет очередной оператор (команду) программы. Если команда повторяется, то интерпретатор рассматривает ее как встреченную впервые.

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

Примерами служебных программ - интерпретаторов являются GW Basic, Лого, школьный алгоритмический язык, многие языки программирования баз данных. Компиляторами являются Turbo Pascal, С++, Delphi.

В общем случае для создания программ нужно иметь следующие компоненты:

- текстовый редактор - для набора исходного текста программы;

- компилятор - для перевода текста программы в машинный код;

- редактор связей - для сборки нескольких откомпилированных модулей в одну программу;

- библиотеки функций - для подключения стандартных функций к программе.

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

Исходный текст программы можно получить без записи его вручную в текстовом редакторе. Существуют системы визуального программирования - RAD-среды (Rapid Application Development), которые, не исключая возможности записи программы вручную, позволяют создавать текст программы автоматически, путем манипуляций со стандартными элементами управления, включенными в RAD-среду. Поэтому для RAD-среды понятие «программирование» часто заменяют понятием «проектирование».

По способу разработки программ можно выделить два подхода:

- процедурное программирование - это программирование, при котором выполнение команд программы определяется их последовательностью, командами перехода, цикла или обращениями к процедурам;

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

Таким образом, выполнение той или иной части программы зависит от событий в программной системе.

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

Из универсальных языков программирования наиболее популярны следующие: Basic; Pascal; C++; Java.

Для языка Basic существует много версий, реализованных и как интерпретаторы и как компиляторы. В России Basic традиционно используется в курсе информатики средней школы. Среда визуального программирования Microsoft Visual Basic используется как программная поддержка приложений MS Office.

Язык Pascal является компилируемым и широко используется как среда для обучения программированию в ВУЗах. RAD-средой, наследующей его основные свойства, является среда Borland Delphi.

Для языка C++ RAD-средой является Borland C++ Builder. Этот компилируемый язык часто используется для разработки программных приложений, в которых необходимо обеспечить быстродействие и экономичность программы.

1.1 Строковый тип данных в языке Pascal

Познакомимся с типом данных, который относится к числу структурированных. Это строковый тип данных (строка). Строка - это последовательность символов. Каждый символ занимает 1 байт памяти (код ASCII). Количество символов в строке называется ее длиной. Длина строки может находиться в диапазоне от 0 до 255. Строковые величины могут быть константами и переменными. Особенностью строки в Turbo Pascal является то, что с ней можно работать как с массивом символов, с одной стороны, и как с единым объектом, - с другой. За счет этого обработка строк достаточно гибка и удобна. Строковая константа есть последовательность символов, заключенная в апострофы. Например: «это строковая константа», «272». Строковая переменная описывается в разделе описания переменных следующим образом:

Var <идентификатор> : string[<максимальная длина строки>];

Например:

Var Name : string [20].

Параметр длины может и не указываться в описании. В таком случае подразумевается, что он равен максимальной величине - 255. Например: Var slovo : string.

Строковая переменная занимает в памяти на 1 байт больше, чем указанная в описании длина. Дело в том, что один (нулевой) байт содержит значение текущей длины строки. Если строковой переменной не присвоено никакого значения, то ее текущая длина равна нулю. По мере заполнения строки символами ее текущая длина возрастает, но она не должна превышать максимальной по описанию величины.

Символы внутри строки индексируются (нумеруются) от единицы. Каждый отдельный символ идентифицируется именем строки с индексом, заключенным в квадратные скобки. Например: N[5], S[i], slovo[k+l]. Индекс может быть положительной константой, переменной, выражением целого типа. Значение индекса не должно выходить за границы описания.[9]

1.2 Тип string и стандартный тип char

Тип string и стандартный тип char совместимы. Строки и символы могут употребляться в одних и тех же выражениях.

Строковые выражения строятся из строковых констант, переменных, функций и знаков операций. Над строковыми данными допустимы операции сцепления и операции отношения.

Операция сцепления (конкатенации) (+) применяется для соединения нескольких строк в одну результирующую строку. Сцеплять можно как строковые константы, так и переменные.

Пример. Объединение двух строк.

var

Str, Strl, Str2:string[80] ;

Begin

. . .

Str1 := 'Turbo ';

Str2 := 'Pascal';

Str := Str1 + Str2; {впеременной Str - 'Turbo Pascal'}

. . .

end.

Сравнивать можно строки разной длины. Сравнение осуществляется слева направо в соответствии с ASCII-кодами соответствующих символов. Считается, что отсутствующие символы в более короткой строке имеют код меньше кода любого действительного символа. Например, 'XS' больше, чем 'Х'.

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

program EXAMPLE11;

const

Instance: array[l..l2] of string[10]= ('ЯНВАРЬ', 'ФЕВРАЛЬ', 'МАРТ ', 'АПРЕЛЬ' ' МАЙ', 'ИЮНЬ', ' ИЮЛЬ', 'АВГУСТ ', 'СЕНТЯБРЬ', 'ОКТЯБРЬ ', ' НОЯБРЬ', 'ДЕКАБРЬ');

Month: Boolean = False;

var

Str: string[10];

i: Integer;

begin

Writeln('Введитезаглавныесимволы: ');

ReadLn(Str);

for i := 1 to 12 do

if Str = Instance[i] then Month:=True;

if Month then

WriteLn('Введеноимямесяца')

else

WriteLn('Введено не имя месяца')

end .

Фактически строка N символов представляет собой массив из N+1 символа:

string[N] = array[0..N] of Char.

Нулевой символ предназначен для указания используемого количества символов строки и может изменяться от символа с кодом 0 до символа с кодом N. С ним можно работать как и с остальными символами строки (записывать и читать его значение и т. д.), но не забывая о его основном предназначении. [9]

1.3 Функция Copy

Функция Copy(S, Pozition, N) выделяет из строки S подстроку длиной N символов, начиная с позиции Pozition. Здесь N и Pozition – целочисленные выражения.

Пример:

Значение S Выражение Результат
‘Мама мыла раму’ Copy(S, 6, 4) ‘мыла’
‘Маша ела кашу’ Copy(S, 1, 8) ‘Маша ела’

[10]

1.4 Функция Concat

Функция Concat(S1, S2, …, SN) выполняет сцепление (конкатенацию) строк S1, S2, …, SN в одну строку.

Пример:

Выражение Результат
Concat('Маша ', 'ела ', 'кашу') 'Маша ела кашу'

[9]

1.5 Функция Length

Функция Length(S) - определяет текущую длину строки S. Результат - значение целого типа.

Пример:

Значение S Выражение Результат
'test-5' Length(S) 6
'(A+B)*C' Length(S) 7

[9]

1.6 Процедура Delete

Процедура Delete(S, Poz, N) - удаление N символов из строки S, начиная с позиции Poz.