русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Задание №3 (обширное)


Дата добавления: 2015-09-15; просмотров: 863; Нарушение авторских прав


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

Методы работы со строками

Как вы знаете, тип-строка обозначается как String. Переменная такого типа может хранить любые символы, в т.ч. и буквы русского алфавита. Строки нельзя представлять как числа, их нельзя сопоставлять типу Integer и другим числовым, однако в некотором роде этот тип совместим с типом Char, который может хранить один символ. А сколько же может хранить строка? Ведь у всех типов есть свой диапазон. Действительно, это так и String тоже имеет свой диапазон.

Тип String может хранить до 255 символов, то есть максимальная длина строки - 255 знаков. Запомните это!

А теперь зададимся таким вопросом - как определить фактическую длину строки? Понятно, максимальная длина 255 символов. Но если нам нужно точно знать, сколько символов ввел пользователь? Это просто. Для этого есть специальная функция, которая и определяет длину строки. Это функция Length.

Функция Length (англ. ДЛИНА) - определяет, точное количество символов в строке. Заметьте, это функция, а не процедура. Сейчас постараюсь объяснить, в чем здесь разница.

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

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



Итак, имеем мы какую-нибудь строку, например S: String. Нам нужно вычислить ее длину. Понятно, что длина - то число, например, 120. При своей работе Length возвращает длину строки как результат своей работы. Зная принцип работы функий (можно присваивать их переменным), а также зная, что она возвращет число, мы и запишем:

A := Length(S);

,где A: Byte; S: String;

Вот и вся работа функции Length! После такого присваивания переменная А будет содержать длину строки. Естественно, если строка пустая - А будет равна нулю. Итак, пример использования функции Length:

 
Program N3;
var
A: Byte;
S: String;
begin
Write('Введите строку: ');
Readln(S);
A := Length(S);
Write('Длина введенной строки: ', A);
Readln;
end.

Видите, насколько посто использование функций? Усвойте это, в Паскале кроме Length есть довольно много функций. А теперь вспомните, что я говорил выше - результат функции можно использовать непосредственно в выражениях? Вспомнили? Под этим я понимал, что для использования значения, возвращемого функцией, необязательно присваивание его переменной, его можно сразу подставлять в выражения. Вот модифицированный пример предыдущей программы:

 
Program N4;
var
S: String;
begin
Write('Введите строку: ');
Readln(S);
Write('Длина введенной строки: ', Length(S));
Readln;
end.

Вот непосредственное использование в выражении. При такой конструкции Паскаль какбы "подставляет" вместо функции результат ее вычисления. Заметили, насколько при этом сократилась программа? Теперь давайте подумаем, какие еще есть выражения, куда можно прилепить функцию? Это может быть известная нам конструкция if...then...else. В ней с успехом могут быть использованы функции. Для примера напишем программу, которая будет читать строку, проверять - она меньше 10 символов? Если да, читать заново. Если нет, печатать ее длину. Текст программы:

 
Program N5;
label
L1;
var
S: String;
Begin
L1:
Write('Введите строку: ');
Readln(S);
if Length(S) < 10 then goto L1;
Write('Длина введенной строки: ', Length(S));
Readln;
end.

Заметили, мы используем сразу функцию, без промежуточных переменных. Здорово и удобно, правда?

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

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

На самом деле, здесь все просто и такая возможность существует. Как это осуществить, читайте ниже.

Методы работы со строками - доступ к отдельным символам

Строка - это набор символов, идущих один за другим. При этом они все нумеруются по порядку и каждый из них имеет свой номер. Вот наглядный пример того, как нумеруются символы в сроке (для примера возьмем строку, в которой лежит слово "Строка"):

 
C т р о к а

Вот таким образом и проводиться нумерация символов. Здесь видно, что для того, чтобы обратиться к символу "С", нужно обратиться к 1-му элeменту. К символу "р" - ко второму. Как же реализовать такое обращение?

Для этого нужно написать переменную-строку, с номером символа в ней, указанным в квадратных скобках - [ и ]. Вот пример обращения к символу "C":

S[1];

А вот полный пример присваивания переменной Char 1-го символа строки:

Var

C: Char;

S: String;

Begin

S := 'Строка';

C := S[1];

End.

Просто? Просто. А возможностей много. Ниже в разделе домашних заданий смотрите задание по этой теме.

Ну а теперь мы попробуем решить такую задачу:

Задача

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



<== предыдущая лекция | следующая лекция ==>
Начинаем решать | Решение


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.