Работа со строками. МОУ СОШ 17 с углубленным изучением математики г. Тверь. Учитель Матвеева А.Г.

Презентация:



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

«Обработка строковых данных» Delphi. Тема 7:7: «Обработка строковых данных» План темы: 1. Понятие символа и строки. 2. Описание символов и строк в программе.
Строки в Pascal
С ИМВОЛЬНЫЕ И С ТРОКОВЫЕ ВЕЛИЧИНЫ. О ГЛАВЛЕНИЕ Символьные и Строковые величины Сравнение переменных Сложение переменных Функция Concat Функция Concat.
Строка в Turbo Pascal - упорядоченная последовательность символов.
Строки – последовательность символов, к которой можно обращаться как к единому целому и к каждому элементу по отдельности. Строка.
Понятие строки. Операции со строковыми величинами. Стандартные процедуры и функции обработки строковых величин. Простые алгоритмы работы со строками на.
Символьные и Строковые величины. СИМВОЛЬНЫЕ И СТРОКОВЫЕ ВЕЛИЧИНЫ Для работы с символами, словами и предложениями в Паскале существуют типы данных – CHAR.
1 Строковый тип данных Строка – это последовательность символов определенной длины (от 0 до 255).
Строки Строка - это последовательность символов, заключенная в апострофы. Пример: Адрес: пр-т Ленина 46 Количество символов в строке называется ее длиной.
Процедуры и функции для работы со строками. Length(s) Функция, возвращает длину строки s … var s:string; m:integer; … readln(s);s=длина m:=length(s);m=
Символьные и строковые переменные. Общие понятия Для того чтобы ЭВМ могла обрабатывать тексты, она должна уметь оперировать не только с числами, но и.
Основы алгоритмизации и программирования Чабанюк Виктория 10 класс.
Символьный и строковый тип данных. ТИП ДАННЫХ Целый: 1. Целый: Integer ( …32 768), LongInt ( … ), Word (0…65535) Логический:
СТРОКОВЫЙ ТИП ДАННЫХ Строка это последовательность символов. Каждый символ занимает 1 байт памяти ( код ASCII). Количество символов в строке называется.
Шешель Анжелика. Значения: Символьная величина – 1 символ (буква, цифра, знак) Строковая величина – строка символов.
Строковые константы записываются как последовательности символов, ограниченные апострофами. Пример: 'Текстовая строка' Пустой символ обозначается двумя.
Строковый тип данных. Для обработки строковой информации в Турбо Паскаль введен строковый тип данных. Строка - последовательность из определенного количества.
СТРОКИ Строковой называется последовательность символов определённой длины. Идентификатор типа – слово String Примеры описания: Var Str1 : String[10];
Множества. Внутреннее представление.. Механизм внутреннего представления Каждое значение базового типа представляется одним битом. В память заносится.
Транксрипт:

Работа со строками. МОУ СОШ 17 с углубленным изучением математики г. Тверь. Учитель Матвеева А.Г.

Типы строковых данных Строки могут быть представлены следующими типами: shortstring, Longstring и widestring. Различаются эти типы предельно допустимой длиной строки, способом выделения памяти для переменных и методом кодировки символов. Переменной типа shortstring память выделяется статически, т. е. до начала выполнения программы, и количество символов такой строки не может превышать 255. Переменным типа Longstring и widestring память выделяется динамически во время работы программы, поэтому длина таких строк практически не ограничена. Помимо перечисленных выше типов можно применять универсальный строковый тип String. Тип String эквивалентен типу Shortstring.

Операции над строками Строки можно присваивать, объединять, сравнивать. Объединение строк записывается в естественном виде, применяя знак "+". Если сумма получается длиннее, чем описана длина левой части оператора присваивания, то излишек отсекается. Пример: st1:=F1-; st2:=Help; st3:=st1+st2; {F1- Help}. Сравнение строк - Строки сравниваются посимвольно, начиная с первого символа. Если все символы сравниваемых строк одинаковые, то такие строки считаются равными. Если в одинаковых позициях строк находятся разные символы, большей считается та строка, у которой в этой позиции находится символ с большим кодом. Например: 'asdf '= 'asdf '; 'asdf '> 'asdF '; ' aBcg '< 'ab '; ' ' > ''.

Функция Length(s:string):byte - выдает текущую длину строки. Вместо неё можно пользоваться конструкцией ord(s[0]), что то же самое. Функция Concat - производит объединение строк. Вместо неё можно пользоваться операцией "+". Функция copy(s:string; start,len:integer):string - позволяет выделить из строки s последовательность из len символов начиная с символа start. Например: s:='asdfgj'; st:= copy(s,2,3); {st='sdf'} Процедура delete(s:string;start,len:integer) - видоизменяет строку s, стирая len символов, начиная с символа start. Например: s:='widows'; delete(s,3,2); {s:='wiws'} Процедура insert(st,s:string;start:integer) - вставляет подстроку st в строку s начиная с позиции start (процедура противоположная delete). Функция Pos(Subs, S: string):byte - возвращает номер символа в строке S, с которого начинается включение в S подстроки subs. Строковые процедуры и функции

Упражнения 1) Дана строка символов, в которой есть хотя бы одно вхождение 'abc'. Все вхождения 'abc' заменить на 'def. 2) В заданном тексте все встретившиеся буквы 'a' удалить, а буквы 'd' удвоить.

Решение program upr1; var i: byte; st, st1: string; begin readln(st); st1:='def'; for i:=1 to length(st) do if copy(st,i,3)='abc' then begin delete(st,i,3); insert(st1,st,i); end; writeln(st); end.

Program Upr_2 var st,st1:string; i:integer; begin write('st='); readln(st); i:=1; while i<= length(st) do if st[i]='a' then delete(st,i,1) else if st[i]='d' then begin insert('d',st,i+1); i:=i+2; end else i:=i+1; writeln(st); end. Решение

Функции преобразования. Решение задач на перевод чисел из одной системы счисления в другую. Str(ch:integer;,st:string;) - преобразование числового значения величины ch и помещение результата в строку st. После ch можно записывать формат, аналогичный формату вывода. Если в формате указано недостаточное для вывода количество разрядов, поле вывода расширяется автоматически до нужной длины. Например: ch= 3500; str( ch:6,st); st=' 3500'; ch=45789; str(ch:3,st); st='45789'.

Val(st:string;,ch:integer;,code:integer;) - преобразует значение st и помещает результат в ch. Значение st не должно содержать незначащих пробелов в начале и в конце. Code - целочисленная переменная. Если в операции преобразования ошибки не обнаружено, значение code равно нулю, если ошибка обнаружена ( например, литерное значение переводится в цифровое ), code будет содержать номер позиции первого ошибочного символа, а значение ch не определенно. Например: st='6500'; Val(st,ch,code); ch= 6500; code=0; st='34,01'; val(st,ch,code); ch не определенно; code=3.

Перевод чисел из десятичной системы счисления в двоичную (фрагмент программы) readln(n); { ввод десятичного числа} p:=n; while p>=1 do begin k:= p mod 2; {остатки из которых будет формироваться число в 2 с/с} str (k,st); { перевод остатков в символы} st1:= st1 + st;{формирование строки из остатков} p:= p div 2; { уменьшения числа на разряд } end; str(p,st); {перевод последнего частного в символ} st1:=st1 + st; {строка из остатков и последнего частного} for i:= length(st1) downto 1 do { цикл для вывода числа в обратном порядке} begin st2:= copy(st1,i,1); st3:= st3 + st2; {строка в 2 с/с} end; val(st3,ch,errc); writeln('ch=',ch);

Перевод чисел из двоичной системы в десятичную Фрагмент программы: readln(n); str(n,st); dl:=length(st); dl:=dl-1; for i:=1 to length(st) do begin val(st[i],m,errc); p:= p+ m* exp(dl*ln(2)); dl:= dl-1; end; writeln('p=',p:6:0);

Дом.задание 1. Дан текст из строчных латинских букв, за которым следует точка. Напечатать в алфавитном порядке все буквы, которые входят в этот текст по одному разу. 2. Напечатать заданный текст, удалив из него лишние пробелы, т.е. из нескольких подряд идущих пробелов оставить только один. 3. В заданный непустой текст входят только цифры и буквы. Определить, удовлетворяет ли он следующему свойству: текст начинается с k букв (1<=k<=9), за котором следует только одна литера - цифра с числовым значением k

4 Дано натуральное n. Напечатать в троичной системе счисления целые числа от 0 до n. 5 Задано неотрицательное целое число, в восьмеричной системе счисления (за числом - пробел). Напечатать это число в пятеричной системе счисления.