Синтаксис объявления переменной строкового типа:

var ИмяПеременной : string[n]

где n <256 – длинна строки.

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

Const

myword = ‘University’;

Var

Fraze1 : string[45];

Fraze2 : string;

Над переменными строкового типа определены операции следующего объединения – конкатенации (символ ‘+’) и сравнения (<, >, <=, >=, =, <>). Сравнение двух строк происходит слева направо до первых различных символов в соответствии с алфавитным порядком, причем больше считается тот символ, который размещен в алфавите дальше (у него больший номер в таблице ASCII кодов).

Существует два типа способа обработки данных типа string:

строку можно обрабатывать с помощью специальных строковых функций; строку можно рассматривать как массив и обрабатывать ее поэлементно.

Замена символов в строках

Пример

В заданной строке из трех слов, определить длину строки и вывести второе слово на экран.

Блок-схема

Код программы в среде Pascal

program String;

uses Crt;

var i, k, m, n1, n2: integer;

       str1: string;

begin

       clrscr;

       write(‘Введите строку’);

       readln(str1);

       m:=0;

       k:= length(str1); { Определяем длину строки}

       writeln(‘Длинна строки k=’, k );

       for i:=1 to k do

НЕ нашли? Не то? Что вы ищете?

               if str1[i] = ‘ ‘ then

                       begin

                       m:=m+1;

                       {Определяем номер первого пропуска}

                       if m=1 then n1:=i;

                       {Определяем номер второго пропуска}

                       if m = 2 then n2:=i;

                       end;

       {Выводим слово между двумя пропусками}

       for i:=n1+1 to n2-1 do write(str1[i]);

       readln;

end.

Внешний вид формы в Delphi


В конструкторе


При выполнении


Код программы в среде Delphi

procedure TForm1.Button1Click(Sender: TObject);

var i,  k, m, n1, n2: integer;

       str1: string;

begin

       str1 := Edit1.Text;

       m:=0;

       k:= length(str1); { Определяем длину строки}

       for i:=1 to k do

               if str1[i] = ' ' then

                       begin

                       m:=m+1;

                       {Определяем номер первого пропуска}

                       if m=1 then n1:=i;

                       {Определяем номер второго пропуска}

                       if m = 2 then n2:=i;

                       end;

       {Выводим слово между двумя пропусками}

  Label1.Caption :='Длинна строки k='+ IntToStr(k)+'; Второе слово = ';

       for i:=n1+1 to n2-1 do  Label1.Caption :=Label1.Caption+str1[i];

end;

Лабораторная работа №10

Ввести фамилию, имя и отчество в одну строковую переменную. Определить длину строки. Выполнить задания двух вариантов: одно – в среде Pascal, другое – в среде Delphi.


Формулировка задания

1.

Вывести имя и количество букв в отчестве.

2.

Определить сколько букв ‘а’ есть в фамилии

3.

Вывести инициалы с точками (Ф. И.О.)

4.

Вывести фамилию и инициалы ()

5.

Вывести длины фамилии и имени

6.

Вывести имя и количество букв в фамилии

7.

Определить количество букв '‘о’ в имени

8.

Вывести самое длинное слово.

9.

Изъять все буквы ‘а’ ‘о’ из фамилии.

10.

Вывести имя в столбик

11.

Начинается ли хотя бы одно слово с буквы ‘М’?

12.

Все буквы ‘и’ в имени продублировать

13.

Вывести фамилию и количество букв в имени.

14.

Вывести имя в обратном порядке.

15.

Вывести фамилию в столбик

16.

Вывести имя, отчество и количество букв в фамилии.

17.

Вывести самое короткое слово.

18.

Вывести строку без пропусков. Сколько букв в имени?

19.

Вывести суммы символов в трех словах.

20.

Вывести имя и количество букв в фамилии

21.

Каждую букву отчества продублировать.

22.

Вывести имя и фамилию

23.

Вывести фамилию в обратном порядке

24.

Определить сколько букв ‘а’ и ‘б’ в фамилии.

25.

Вывести отчество и количество букв в слове


Кодировка текста

Пример.

Кодировка текста.

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

Блок-схема

Код программы в среде Pascal

program Coding;

uses Crt;

var str1, str2, c: string;

       i : integer;

begin

       clrscr;

       write(‘Введите строку’);

       readln(str1);

       str2 := ‘’;

       for i := 1 to length (str1) do

               begin

               c := copy(str1, i, 1); {если поэлементно: c:=a[i];}

               if (c<> ‘,’) and (c<> ‘.’) and (c<> ‘ ’) then str2:= str2+ c + c;

               end;

       writeln(str2);

       readln;

end.

Внешний вид формы в Delphi


В конструкторе

При выполнении


Код программы в среде Delphi

procedure TForm1.Button1Click(Sender: TObject);

var str1, str2, c: string;

       i : integer;

begin

       str1:=Edit1.Text;

       str2 := '';

       for i := 1 to length (str1) do

               begin

               c := copy(str1, i, 1); {если поэлементно: c:=a[i];}

               if (c<> ',') and (c<> '.') and (c<> ' ') then str2 := str2 + c + c;

               end;

       Label1.Caption:=str2;

end;

Лабораторная работа №11

Написать программу введения текста в кириллице (до 150 символов), его кодирования по заданному алгоритму и выводу результата. Выполнить два варианта: один – в среде Pascal, другой – в среде Delphi.



Варианты алгоритма кодирования

1.

Каждую гласную заменить на следующую за ней в алфавитном порядке согласную.

2.

Каждую согласную заменить на следующую за ней в алфавитном порядке гласную.

3.

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

4.

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

5.

Каждую букву заменить на предшествующей ей в алфавитном порядке.

6.

Каждую букву заменить на следующую за ней в алфавитном порядке.

7.

Каждую букву заменить на ее порядковый номер в алфавите.

8.

Из строки удалить пробелы и все гласные буквы удвоить

9.

Из строки удалить пробелы и все согласные буквы удвоить

10.

Все гласные буквы заменить предшествующим им по тексту согласными

11.

Все согласные буквы заменить предшествующим им по тексту гласными

12.

Все гласные буквы заменить следующими за ними по тексту согласными

13.

Все согласные буквы заменить следующими за ними по тексту гласными

14.

Заменить ‘а’ на ‘о’, ‘е’ на ‘и’ и наоборот.

15.

Заменить ‘с’ на ‘з’, ‘т’ на ‘д’ и наоборот.

16.

Каждой гласной букве поставить в соответствие один знак препинания и провести соответствующую замену.

17.

Заменить все согласные буквы на знаки ‘%’ и ‘*’ поочередно.

18.

Каждую букву заменить на четвертую за ней в алфавите (код Цезаря).

19.

Каждую букву заменить на четвертую перед ней в алфавите (обратный код Цезаря).

20.

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

21.

Поменять местами буквы находящиеся на расстоянии 4 символа друг от друга.

22.

Заменить каждую гласную букву на символ, находящийся на расстоянии 4 символа.

23.

Заменить каждую согласную букву на символ, находящийся на расстоянии 4 символа.

24.

Каждую гласную букву заменить на гласную, следующую за ней в алфавитном порядке.

25.

Каждую согласную букву заменить на согласную, следующую за ней в алфавитном порядке.



Подпрограммы

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

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17