Главная страница
Навигация по странице:

  • Delete Обращение к такой процедуре в общем виде выглядит так: Delete(S,poz,n);

  • S:=’комплекс’; Delete(S,3,4); В результате строка S будет уже содержать слово «кокс». Процедура Insert

  • Insert(S1,S2,poz); Эта процедура вставляет строку S1 в S2, начиная с позиции poz. Пример: S1:=’пре’; S2:=’образование’;

  • Str(a,S); Эта процедура переводит число а

  • Val(’-1.e2’,a,cod); В этом случае Cod=0 и а принимает значение -100.0. В Пример 2. Val(’-1.ez3’,a,cod);

  • Concat

  • S:=’Грозовые’+’ ’+’облака’; Функция Length

  • i:=Length(’Студент’); Переменная i приметзначение – 7. Функция Pos

  • i:=Pos(’ос’,’способность’); Здесь i примет значение 3, хотя образ «ос» встречается в строке 2 раза, начиная с позиции 3 и 8. Функция UpCase

  • c:=UpCase(’q’); Здесь переменная символьного типа «с» примет значение «Q». Для перевода целой строки можно воспользоваться циклом For, например: S:=’Windows 2000/xp’;

  • For i:=1 to Length(S) do S[i]:=UpCase(S[i]);

  • Procedure TForm1.Button1Click(Sender: TObject); Var S:String; Begin S:=Edit1.Text;

  • Procedure TForm1.Button1Click(Sender: TObject); var s:String; i,ind,ns,l:Integer;

  • For i:=1 to l Do Begin

  • Label1.Caption:=’ Число слов =’+InttoStr(ns); End;

  • операторы Delphi. Операторы delphi оператор присваивания


    Скачать 92.84 Kb.
    НазваниеОператоры delphi оператор присваивания
    Анкорdelphi
    Дата10.03.2020
    Размер92.84 Kb.
    Формат файлаdocx
    Имя файлаоператоры Delphi.docx
    ТипДокументы
    #111464
    страница3 из 5
    1   2   3   4   5

    РАБОТА СО СТРОКАМИ


    Строки могут быть представлены следующими типами: Shortstring, AnsiString и Widestring. Различаются эти типы предельно допустимой длиной строки, способом выделения памяти для переменных и методом кодировки символов.

    Переменной типа Sortstring память выделяется статически, т.е. до начала выполнения программы, и количество символов такой строки не может превышать 255. Переменным типа AnsiString и Widestring память выделяется динамически — во время работы программы, поэтому длина таких строк практически не ограничена.

    Помимо перечисленных выше типов можно применять универсальный строковый тип String, который будет эквивалентен типу Shortstring или AnsiString в зависимости от настроек транслятора Delphi. Настройки можно

    посмотреть, пройдя в основном меню Delphi путь: Проект – Опции – Компилятор – Опции синтаксиса – Большие строки.

    Инструкция объявления строки в общем виде выглядит так: Имя: String; или

    Имя: String [длина]; где

    • имя — имя переменной;

    • string — ключевое слово обозначения строкового типа;

    • длина — константа целого типа, которая задает максимально допустимую длину строки.

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

    name: string[20]; buff: string;

    Если в объявлении строковой переменной длина строки не указана, то ее длина задается равной 255 символам, т.е. объявления stroka: string [255]; и stroka: string;

    эквивалентны.

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

    S:= 'Дует ветер';

    Отдельные символы строки можно воспринимать как элементы одномерного массива. Для предыдущего примера s[2] определяет символ «у».


      1. Процедуры работы со строками


    Процедура Delete

    Обращение к такой процедуре в общем виде выглядит так:

    Delete(S,poz,n);

    Эта процедура удаляет из строки S, начиная с позиции poz, n символов. Например:

    S:=’комплекс’;

    Delete(S,3,4);

    В результате строка S будет уже содержать слово «кокс».

    Процедура Insert

    Обращение к такой процедуре будет выглядеть так:

    Insert(S1,S2,poz);

    Эта процедура вставляет строку S1 в S2, начиная с позиции poz. Пример:

    S1:=’пре’;

    S2:=’образование’;

    Insert(s1,s2,0);

    В результате строка S2 примет значение «преобразование».

    Процедура Str

    Обращение к такой процедуре будет выглядеть так:

    Str(a,S);

    Эта процедура переводит число а в строку S.

    Пример.

    a:=-25;

    Str(a:5,S);

    В результате строка S примет значение «__-25». Длина этой строки составит 5 символов, но первые два будут пробелами. Процедура Val

    Обращение к такой процедуре будет выглядеть так:

    Val(S,a,cod);

    Эта процедура переводит значение строки S в число а. Cod – определяет ошибку перевода строки в число. Если Cod=0, то строка перевелась в число, а если нет, то Cod определяет первый слева символ в строке S, который не соответствует числовым данным.

    Пример 1.

    Val(’-1.e2’,a,cod);

    В этом случае Cod=0 и а принимает значение -100.0. В Пример 2.

    Val(’-1.ez3’,a,cod);

    А в этом случае Cod будет равен 5, так как пятым символом в строке стоит символ z, а он никак не может определять число.


      1. Функции работы со строками


    Функция Copy

    Функция Copy позволяет выделить из строки подстроку, например: S;=copy(’строка’,3,3);

    Первая цифра 3 определяет, с какого символа начать копировать подстроку, а вторая цифра 3 определяет число копируемых символов. В результате переменной S будет присвоена строка «рок».

    Функция Concat

    Функция Concat позволяет объединять произвольное число строк, записанных в качестве параметров этой функции, например:

    S:=Concat(’Грозовые’,’ ’,’облака’);

    Здесь переменная S примет строковое значение «Грозовые облака». Эту функцию можно просто заменить операцией сложения, например:

    S:=’Грозовые’+’ ’+’облака’;

    Функция Length

    Эта функция определяет текущую длину строки, например:

    i:=Length(’Студент’);

    Переменная i приметзначение – 7.

    Функция Pos

    Обращение к этой функции следующее:

    Перем.:=Pos(S1,S2);

    Эта функция ищет в строке S2 образ S1 и возвращает номер первого символа в строке S2, с которого начинается вхождение строки S1 в строку S2, например: i:=Pos(’ос’,’способность’);

    Здесь i примет значение 3, хотя образ «ос» встречается в строке 2 раза, начиная с позиции 3 и 8.

    Функция UpCase

    Эта функция переводит строчные латинские буквы в заглавные, например:

    c:=UpCase(’q’);

    Здесь переменная символьного типа «с» примет значение «Q». Для перевода целой строки можно воспользоваться циклом For, например:

    S:=’Windows 2000/xp’;

    For i:=1 to Length(S) do

    S[i]:=UpCase(S[i]);

    В итоге строка S примет значение «WINDOWS 2000/XP».

    Рассмотрим несколько примеров работы со строками.

    Пример 1. Удаление лишних пробелов из строки. Лишними будем называть пробелы, которые стоят в начале и в конце строки, а также между словами, если их больше одного. Допустим, исходная строка будет задаваться в компоненте Edit1, а результат удаления пробелов – в компоненте Label1. Тогда обработчик кнопки удаления будет выглядеть так:

    // Обработчик нажатия кнопки

    Procedure TForm1.Button1Click(Sender: TObject);

    Var S:String;

    Begin

    S:=Edit1.Text;

    // Удаляем начальные пробелы

    While ((Length(s)>0) and (Copy(s,1,1)=’ ’)) Do Delete (S,1,1);

    // Удаляем конечные пробелы

    While ((Length(s)>0) and (Copy(s,length(s),1)=’ ’))

    Do Delete(S,Lengrh(s),1);

    // Удаляем сдвоенные пробелы

    While ((Length(s)>0) and (Pos(’ ’,s)>0)) Do Delete(S,Pos(‘ ’,s),1);

    Label1.Caption:=s;

    End;

    Пример 2. Подсчет числа слов в строке. Слова могут разделяться одним или несколькими пробелами. Исходная строка пусть будет определяться в компоненте Edit1, а число слов – в компоненте Label1. Обработчик нажатия клавиши «Вычислить» для компонента Button1 может выглядеть следующим образом:

    // Обработчик нажатия кнопки

    Procedure TForm1.Button1Click(Sender: TObject); var s:String; i,ind,ns,l:Integer;

    // ind – индикатор начала слова

    // ns – счетчик числа слов

    // l – длина строки

    Begin

    S:=Edit1.Text; // Читаем строку l:=length(s); // Определяем ее длину ns:=0; Ind:=0; // Зануляем число слов и индикатор начала слова For i:=1 to l Do Begin // Открываем цикл по длине строки

    If ((ind=0) and (s[i]<>’ ’)) then Begin // Определяем начало слова

    Inc(ns); // Наращиваем число слов

    Ind:=1; // Индикатор начала

    End else Begin

    If ((ind=1) and (s[i]=’ ’)) then ind:=0;

    End;

    End;

    Label1.Caption:=’Число слов=’+InttoStr(ns);

    End;
    1. 1   2   3   4   5


    написать администратору сайта