Конспект по теме: ‘Строковый тип данных в паскале’





Скачать 90.04 Kb.
НазваниеКонспект по теме: ‘Строковый тип данных в паскале’
Дата публикации20.09.2013
Размер90.04 Kb.
ТипКонспект
100-bal.ru > Информатика > Конспект

Конспект по теме: ‘Строковый тип данных в паскале’

Учитель информатики Батракова Л.В.

_____________________________________________________________________________________

Строковый тип данных в Паскале


Строка (строковый тип данных) – это последовательность символов длиной N, где 1<=N<=255.
Для определения данных строкового типа используется идентификатор string. Если за идентификатором string следует значение максимальной длины строки данного типа (заключенное в квадратные скобки), то такой тип компилятором рассматривается как произвольный, если же длина строки не указана (в этом случае она равна максимальной величине – 255), то тип считается стандартным.


  • Описание переменной произвольного типа:

Type TS=string[80];

Var s,st:TS;

Str:string[80];


  • Описание переменной стандартного типа:

Var s,s1:string;
Структура строки:

0 1 2 3 4 n номер байта

Chr(4)

М

А

Ш

А













В нулевом байте находится текущая длина строки
Элементы строки определяются именем строки с индексом, заключенным в квадратные скобки. Например, S[3]. Первый символ строки имеет номер 1 и т.д. Можно сказать, что строка представляет собой одномерный массив, элементами которого являются символы. Тип string и тип char совместимы, они могут употребляться в одних и тех же выражениях.
Строковые данные могут использоваться в качестве констант.

Строковая константапоследовательность символов, заключенная в апострофы. Например, ‘237’, ‘это строковая константа’.
Строку можно обрабатывать двумя способами:

  1. как одномерный массив символов;

  2. как единый объект.



Операции, определенные над строковыми переменными

  1. Операции присваивания.

s:=’Turbo Pascal’;

s1:=s; если длина s>s1, то лишние символы будут отброшены

str:=’x’;


  1. Операции сравнения (отношения) =, <>, >, <, <=, >=.

Правила сравнения строк:

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

Например, ‘MS-DOS’<’MS-Dos’.

            2)Если строки имеют различную длину, но в общей части символы совпадают, то более короткая строка меньше.

Например, ‘Компьютер’<’Компьютер   ’.

            3)Строки равны, если   они полностью совпадают, т.е. совпадают длины и содержание.

Например, ‘Маска’ = ’Маска’.


  1. Сложение (конкатенация) строк.

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


  1. Операции ввода-вывода.

Строки можно вводить и выводить как одномерный массив в цикле.

Пример ввода:

Writeln(‘input n’);

Readln(n);

For i:=1 to n do read(s[i]); readln;

Пример вывода:

For i:=1 to n do write(s[i]); writeln;
Как единый объект.

Ввод строки: readln(s);

Если будет введено меньше символов, чем задано при описании строки, то в нулевом байте установится текущая длина строки.

Вывод строки: writeln(s);
5. Стандартные процедуры и функции.

            Для обработки строковых данных можно использовать специальные процедуры и функции.

При их использовании динамически меняется текущая длина строки.

1) Процедура  Delete(var St:string; poz, n:byte) – удаление n символов строки St, начиная с позиции Poz.

Пример

Значение St

Выражение

Результат

‘абвгде’

Delete(St, 4, 2);

‘абве’

‘река Волга’

Delete(St, 1, 5);

‘Волга’

2) Процедура Insert (S1 :string; var S2 :string; Poz:byte) – вставка строки S1 в строку S2, начиная с позиции Poz.

Пример

Значение S1

Значение S2

Оператор

Результат

‘ ЕС ’

‘ЭВМ1841’

Insert (S1, S2, 4);

‘ЭВМ ЕС 1841’

‘ N’

‘ Рис. 2’

Insert (S1, S2 , 6);

‘ Рис. N2’

3) Процедура Str(N:{integer/real}; var St:string) – преобразование числового значения N в строковый и помещение результата в строку St.

Пример

Значение N

Выражение

Результат

1500

Str (N:6,St);

‘  1500’

4) Процедура Val(St:string; var N:{integer/real}; var Code:byte) – преобразует значение St в величину целочисленного или вещественного типа и помещает результат в N. Code – целочисленная переменная. Если во время операции преобразования ошибки не обнаружено, значение Code равно 0, если же обнаружена ошибка, то Code будет содержать номер позиции первого ошибочного символа, а значение N не определено.

Пример

Значение St

Выражение

Результат

‘1500’

Val(St, N,Code);

Code=0

’14.2A+02

Val(St, N,Code);

Code=5

5) Функция Copy(S:string; Poz, N:byte):string; – выделяет из строки S подстроку длиной N символов, начиная с позиции Poz.

Пример

Значение S

Выражение

Результат

‘Мама мыла раму’

Copy(S, 6, 4);

‘мыла’

6) Функция Concat(S1,S2,…,Sn:string):string; – выполняет сцепление строк S1,S2,…,Sn в одну строку.

Пример

Выражение

Результат

Concat(‘Мама ’,’мыла ’,’раму’)

‘Мама  мыла раму’

7) Функция Length(S:string):byte; – определяет текущую длину строки S.

Пример

Значение S

Выражение

Результат

‘1500 символов’

Length(S)

13

8) Функция Pos(S1,S2:string):byte;– определяет первое появление в строке S2 подстроки S1.

Пример

Значение S2

Выражение

Результат

‘abcdef’

Pos(‘cd’,S2)

3

‘abcdef’

Pos(‘k’,S2)

0


Замечание: В PascalABC добавлены следующие процедуры и функции:

  1. SetLength(var s:string; n:byte); - устанавливает в строке s длину, равную n.

  2. IntToStr(i:integer):string; - преобразует целое число в строку.

  3. StrToInt(s:string):integer; - преобразует строку в целое число. Если преобразование невозможно, то возникает ошибка времени выполнения.

  4. FloatToStr(x:real):string; - преобразует вещественное число в строку.

  5. StrToFloat(s:string):real; - преобразует строку в вещественное число. Если преобразование невозможно, то возникает ошибка времени выполнения.

  6. UpperCase(s:string):string; - возвращает строку s, преобразованную к верхнему регистру.

  7. LowerCase(s:string):string; - возвращает строку s, преобразованную к нижнему регистру.

  8. Trim(s:string):string; - возвращает копию строки s с удаленными лидирующими и заключительными пробелами.

  9. TrimLeft(s:string):string; - возвращает копию строки s с удаленными лидирующими  пробелами.

  10. TrimRight(s:string):string; - возвращает копию строки s с удаленными заключительными пробелами.


Пример. Из данной символьной строки выбрать все цифры и сформировать другую строку из этих цифр, сохранив их последовательность.

Program Stroki;

Var S1, S2:string;

Begin

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

Readln(S1);

S2:= ‘ ‘;

For i:=1 to length(S1) do

If (S1[i]>=’0’) and (S1[i]<=’9’)

                         Then S2:=S2+S1[i];

Writeln(‘Результат’, S2)

End.  
Пример. Дана строка символов, удалить все лишние пробелы.

    1. Работа со строкой как с одномерным массивом ( в этом случае текущая длина строки динамически не меняется):

Var st:string;

i,j:byte;

begin writeln(‘input st’);

readln(st);

j:=1;

for i:=2 to length(st) do

if (st[i]<>st[j]) or (st[j]<>’ ‘) then

begin j:=j+1;

st[j]:=st[i];

end;

for i:=1 to j do write(st[i]); writeln;

end.



    1. Работа со строкой как с единым объектом массивом ( в этом случае текущая длина строки динамически меняется):

Var st:string;

Begin writeln(‘input st’);

readln(st);

while pos(‘ ‘,st)>0 do delete(st,pos(‘ ‘,st),1);

writeln(st);

end.
Как преобразовать эту программу, чтобы не было пробелов в начале и в конце строки?
Var st:string;

Begin writeln(‘input st’);

readln(st);

while pos(‘ ‘,st)>0 do delete(st,pos(‘ ‘,st),1);

if st[1]=' ' then delete(st,1,1);

if st[length(st)]=’ ‘ then delete(st,length(st),1);

writeln(st);

end.
В PascalABC эта задача упрощается:
Var st:string;

Begin writeln(‘input st’);

readln(st);

while pos(‘ ‘,st)>0 do delete(st,pos(‘ ‘,st),1);

writeln(Trim(st));

end.
Замечание: Если это решение задачи оформить в виде процедуры, то любую строку можно привести к правильному виду, т.е. к строке, у которой все слова разделены одним пробелом и нет лишних пробелов в начале и в конце строки. Это позволит решение большинства задач на строки привести к одному алгоритму:
Var s,s1:string;

Begin writeln(‘input s’);

Readln(s);

S:=s+’ ‘;

While pos(‘ ‘,s)>0 do

Begin s1:=copy(s,1,pos(‘ ‘,s)-1); {выделяем слово}

{обрабатываем слово в соответствии с условием задачи}

Delete(s,1,pos(‘ ‘,s)); {удаляем обработанное слово}

{в цикле переходим к обработке следующего слова}

End;

{вывод результата}

End.
Задача 2. Найти в строке слово максимальной длины.
Var s:string;

Function maxsl(s:string):string;

Var max:string;

Begin s:=s+’ ‘;

Max:=length(copy(s,1,pos(‘ ‘,s)-1)); {в max помещаем первое слово в строке}

Delete(s,1,pos(‘ ‘,s); {удаляем его}

While pos(‘ ‘,s)>0 do

Begin if length(copy(s,1,pos(‘ ‘,s)-1))> max then max:= length(copy(s,1,pos(‘ ‘,s)-1)); {обрабатываем слово в соответствии с условием задачи}

Delete(s,1,pos(‘ ‘,s)); {удаляем обработанное слово}

{в цикле переходим к обработке следующего слова}

End;

Maxsl:=max;

End;

Begin writeln(‘input s’);

Readln(s);

Writeln(maxsl(s))

End.
Замечание: В задаче использовалась правильная строка. В противном случае надо ее привести к этому виду, удалив лишние пробелы (решение см. выше) и оформив это в виде процедуры. Лучше эту процедуру включить в свой модуль.
Список задач на строковый тип.

1. Дана строка символов. Подсчитать количество слов в строке. Оформить в виде процедуры или функции.

2. Дана строка символов. Найти слово максимальной длины. Оформить в виде процедуры или функции.

3. Дана строка символов. Найти слово минимальной длины. Оформить в виде процедуры или функции.

4. Дана строка символов. Удалить из строки все слова, начинающиеся на "pro". Оформить в виде процедуры или функции.

5. Дана строка символов. Удалить из строки все символы цифр. Оформить в виде процедуры или функции.

6. Дана строка символов. Удалить из нее текст, заключенный в {}. Считать, что такое сочетание встречается в строке только один раз.

7. Дана строка символов. Определить, есть ли в ней слова, начинающиеся и оканчивающиеся на одну и ту же букву. Оформить в виде процедуры или функции.

8. Дана строка символов. Определить есть ли в ней слова-палиндромы. Оформить в виде процедуры или функции.

9. Дана строка символов. Заменить символы "I", "2", "3" словами "один", "два", "три". Оформить в виде процедуры или функции.

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

11. Написать функцию, определяющую вхождение данного элемента в строку.

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

13. Строка символов состоит из латинских букв. Расположить их по алфавиту. Оформить в виде процедуры или функции.

14. Найти в строке все слова-палиндромы. Оформить в виде процедуры или функции.

15. Определить есть ли в строке одинаковые слова. Оформить в виде процедуры или функции.

16. Удалить из строки все четные слова. Оформить в виде процедуры.

17. Дана строка символов. Удалить из строки все нецифровые символы. Оформить в виде процедуры или функции.

18. Дана строка символов. Определить, сколько различных символов в строке.





Добавить документ в свой блог или на сайт

Похожие:

Конспект по теме: ‘Строковый тип данных в паскале’ iconКонспект урока по информатике Тема урока: «Язык програмирования Паскаль....
Развивать навыки программирования на алгоритмическом языке высокого уровня на примере языка Паскаль
Конспект по теме: ‘Строковый тип данных в паскале’ iconУрока информатики по теме «Табличные базы данных». (Открытый урок.)
Данный урок «База данных. Системы управления базами данных» является первым уроком по теме «Технологии хранения, поиска и сортировки...
Конспект по теме: ‘Строковый тип данных в паскале’ iconКонспект по теме: «Записи в Паскале»
Цель урока: сформировать представление у учащихся о способе обозначения геометрических фигур буквами латинского алфавита
Конспект по теме: ‘Строковый тип данных в паскале’ iconКонспект по теме: "Графика в Турбо Паскале"
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов специальности 030501. 65 «Юриспруденция»...
Конспект по теме: ‘Строковый тип данных в паскале’ iconКонспект по теме: «Вещественный тип данных»
А. Бурмистрова «Программы общеобразовательных учреждений: Алгебра, 7-9 классы». М. Просвещение, 2011. Планирование ориентировано...
Конспект по теме: ‘Строковый тип данных в паскале’ iconУрок по информатике по теме "Системы управления базами данных. Создание...
Повторить понятие “База данных”, “поле базы данных”, “запись базы данных”, “субд”
Конспект по теме: ‘Строковый тип данных в паскале’ iconТема: Создание таблиц базы данных Microsoft Office Access. Тип урока
Оборудование: компьютеры, интерактивная доска, карточка участника конкурса, тест «База данных», задание к практической работе
Конспект по теме: ‘Строковый тип данных в паскале’ iconПлан конспект урока английского языка в 6-ом классе по теме «Seasons»...
Тип урока: урок закрепления изученного лексико-грамматического материала по теме
Конспект по теме: ‘Строковый тип данных в паскале’ iconКонспект урока-закрепления по теме «Животные»
Тип урока закрепляющий урок по теме «How people live in the city» (глава 3 «Being happy in the country and in the city» ) к умк биболетовой...
Конспект по теме: ‘Строковый тип данных в паскале’ iconКонспект открытого урока по теме: "I love food"
Тип урока закрепляющий урок по теме «How people live in the city» (глава 3 «Being happy in the country and in the city» ) к умк биболетовой...
Конспект по теме: ‘Строковый тип данных в паскале’ iconКонспект урока русского языка. Тема: «Сложные предложения. Работа...
Цель: обучающая: закрепить пройденный материал; тренировать навык определения предложений в тексте, данных конструкций в речи
Конспект по теме: ‘Строковый тип данных в паскале’ iconУрок по теме «Тип Хордовые»
Тема урока по учебно тематическому плану: Контрольно- обобщающий урок по теме «Тип Хордовые»
Конспект по теме: ‘Строковый тип данных в паскале’ iconКонспект урока биологии в 7-м классе по теме: "Класс млекопитающие"
Оборудование: Таблицы “Тип хордовые. Класс Млекопитающие. Скелет собаки”, “Тип хордовые. Класс Пресмыкающиеся”, “Внутреннее строение...
Конспект по теме: ‘Строковый тип данных в паскале’ iconКонспект интегрированного занятия в старшей группе детского сада
Тип урока: урок закрепления изученного лексико-грамматического материала по теме
Конспект по теме: ‘Строковый тип данных в паскале’ iconКонспект урока Тип урока
Закрепление знаний по теме «Спорт» и их использование в устной и письменной речи
Конспект по теме: ‘Строковый тип данных в паскале’ iconКонспект образовательной деятельности
Тип урока: Совершенствование знаний по теме «Снятие измерений, анализ измерений»


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск