Язык программирования паскаль презентация строковые величины. Строки в паскале. строкой в паскале называется последовательность из определенного количества символов. количество символов последовательности называется. Удаление символов из строки

Телефонная часть

Учитель информатики и ИКТ

МБОУ лицей г Янаул РБ

Закирова Р.И.

Строки в Pascal


  • Для обработки строковой информации в Турбо Паскаль введен строковый тип данных. Строкой в Паскале называется последовательность из определенного количества символов. Количество символов последовательности называется длиной строки. Синтаксис:
  • var s: string[n];
  • var s: string;
  • n - максимально возможная длина строки - целое число в диапазоне 1..255. Если этот параметр опущен, то по умолчанию он принимается равным 255.

  • Строковые константы записываются как последовательности символов, ограниченные апострофами.
  • Пример:
  • "Текстовая строка"
  • "abcde‘
  • Пустой символ обозначается двумя подряд стоящими апострофами.

  • строки можно присваивать друг другу. Если максимальная длина переменной слева меньше длины присваиваемой строки, то лишние символы справа отбрасываются.
  • s1:= "this is text";
  • s2:= s1;

  • Строки можно объединять с помощью операции конкатенации, которая обозначается знаком +.
  • s1:= "John";
  • s2:= "Black";
  • s1:= s1 + " " + s2;

"ab" (true) "abc" = "abc" (true) "abc"" width="640"
  • Строки можно сравнивать друг с другом с помощью операций отношения. При сравнении строки рассматриваются посимвольно слева направо.
  • Строки равны, если они имеют одинаковую длину и посимвольно эквивалентны. В строках разной длины существующий символ всегда больше соответствующего ему отсутствующего символа. Меньшей будет та строка, у которой меньше код первого несовпадающего символа (вне зависимости от максимальных и текущих длин сравниваемых строк).
  • "abc" "ab" (true)
  • "abc" = "abc" (true)
  • "abc"

  • Имя строки может использоваться в процедурах ввода-вывода.
  • readln (s1);
  • write (s1);

  • К отдельному символу строки можно обращаться как к элементу массива символов, например s1. …
  • s1 := "h";
  • writeln (s2 + "r");

  • В системе Turbo Pascal имеется несколько полезных стандартных процедур и функций, ориентированных на работу со строками.
  • Length(s:string):integer
  • Функция возвращает в качестве результата значение текущей длины строки-параметра
  • Пример.
  • n:= length("Pascal"); {n будет равно 6}

  • Concat(s1,:string):string
  • Функция выполняет слияние строк-параметров, которых может быть произвольное количество. Каждый параметр является выражением строкового типа. Если длина строки-результата превышает 255 символов, то она усекается до 255 символов. Данная функция эквивалентна операции конкатенации "+".

  • Copy(s:string; index:integer; count:integer):string
  • Функция возвращает подстроку, выделенную из исходной строки s, длиной count символов, начиная с символа под номером index.
  • Пример.
  • s:= "Система Turbo Pascal";
  • s2:= copy(s, 1, 7); {s2 будет равно "Система"}
  • s3:= copy(s, 9, 5); {s3 будет равно "Turbo"}
  • s4:= copy(s, 15, 6); {s4 будет равно "Pascal"}

  • Delete(var s:string; index,count:integer)
  • Процедура удаляет из строки-параметра s подстроку длиной count символов, начиная с символа под номером index.
  • Пример.
  • s:= "Система Turbo Pascal";
  • delete(s,8,6);
  • {s будет равно "Система Pascal"}

  • Insert(source:string; var s:string;index:integer)
  • Процедура предназначена для вставки строки source в строку s, начиная с символа index этой строки.
  • Пример.
  • s:= "Система Pascal";
  • insert("Turbo ",s,9);
  • {s будет равно "Система Turbo Pascal"}

  • Pos(substr,s:string):byte
  • Функция производит поиск в строке s подстроки substr. Результатом функции является номер первой позиции подстроки в исходной строке. Если подстрока не найдена, то функция возвращает 0.
  • Пример.
  • s:= "Система Turbo Pascal";
  • x1:= pos("Pascal", s);

{x1 будет равно 15}

  • x2:= pos("Basic", s);

{x2 будет равно 0}


  • Задача:
  • Вставить в заданную позицию строки другую строку.
  • Описание переменных:
  • s1, s2 – строки; i – позиция вставки.
  • Алгоритм решения задачи:
  • Определить значения s1, s2 и i.
  • С помощью процедуры insert() вставить s2 в s1, начиная с позиции i.

var s1,s2: string ; i: byte ;

begin write("Input string 1: ");

write("Input string 2: ");

write("Input position: ");

Insert(s2,s1,i);


Найти в строке определенную последовательность символов и заменить ее другой.

Описание переменных:

  • s, s_old, s_new – исходная строка, заменяемая подстрока, вставляемая подстрока;
  • i – номер символа строки, с которого начинается подстрока;
  • l_old – длина заменяемой подстроки.

Алгоритм решения задачи:

  • Ввести строку, подстроку, которую требуется заменить, и подстроку, которую требуется вставить на место прежней.
  • Найти место вхождения подстроки в строку с помощью функции pos().
  • Удалить старую подстроку с помощью процедуры delete().
  • Вставить новую подстроку, используя процедуру insert().

Cлайд 1

Cлайд 2

Строка - это массив символов, т.е. элементов типа char. В Паскале строке соответствует тип данных String. var Имя: string [Длина]; Если длина не указана, выделяется память под строку до 255 символов. Теория 1 var s1:string; строка 255 символов var s2:string; строка 20 символов

Cлайд 3

Правила: строки равны только при одинаковом наборе символов и одинаковой длине; Например: "ABC"="ABC" и "ABC"≠"abc" иначе происходит поэлементное сравнение символов по их кодам: "0"

Cлайд 4

Теория 3 Соединение двух строк. s1:="2011" + " год"; Writeln(s1); s1:="10"; s2:="класс"; s3:=s1+" "+s2; Writeln(s3);

Cлайд 5

Функция Length Функция Length(S) определяет текущую длину строки S. Результат - значение целого типа. Теория 4 PROGRAM Dlina_1; VAR S: STRING; n:INTEGER; BEGIN Writeln(введите слово ") ; Readln(S); n:= Length (S) ; Writeln(‘введите слово ", n:5 ," букв.."); END. Записываем длину строки в переменную целого типа PROGRAM Dlina_2; VAR S: STRING; BEGIN Writeln(’введите слово’) ; Readln(S); Writeln(’слово состоит из ’, Length (S) ,’букв. ’); END. Выводим на экран длину строки, как результат выполнения функции Задача 1. Составить программу подсчитывающую количество букв в слове.

Cлайд 6

Uses crt; var a,b:string; m,n:Integer; Begin Clrscr; Writeln("ВВеди первую строку ");Readln(a); Writeln("ВВеди вторую строку ");Readln(b); m:=Length(a); n:=Length(b); if (m=n) then writeln("Строки равны"); if (m>n) then writeln("Первая больше"); if (m

Cлайд 7

Функция Сору Функция Сору(S, P, N) выделяет из строки S подстроку длиной N символов, начиная с позиции P. Здесь N и P – целочисленные выражения. Теория 6 В фразе МАМА МЫЛА РАМУ слово РАМУ начинается с 11 буквы и состоит из 4 букв COPY(s1,11,4)

Cлайд 8

Задача 3. Составить программу осуществляющую вырезку из слова ИНФОРМАТИКА букв так, что бы из них получилось слово ТОРТ. Program n3_1; Uses crt; var a,b,c,d:string; Begin Clrscr; a:="информатика"; b:=""; c:=copy(a,8,1); d:=copy(a,4,2); b:=c+d+c; writeln(b); End. Задача на составление строк 7 Используем функцию работы с символьными переменными COPY Второй вариант: Program n3_2; Uses crt; var a,b:string; Begin Clrscr; a:=‘информатика"; b:=a+a+a+a; writeln(b); End. Используем определение строки как массива символов

Cлайд 9

Преобразование типов 8 Функция STR Str(x, S) преобразует число x в строковый формат. Где x – любое числовое выражение, S – строковая переменная. Задача 4 . Составьте программу которая выводит первую и последнюю цифру натурального числа, введенного с клавиатуры. PROGRAM Primer; uses Crt; VAR S: STRING; n:INTEGER; BEGIN Write("Введи число ");readln(n); Str(n,S); Writeln("Первая цифра -",S); Writeln("Последняя цифра - ",S); END. Преобразуем натуральное число в строку

Cлайд 10

Процедура val позволяет преобразовать цифровые символы (изображение числа) в число. В общем виде обращение к процедуре выглядит так: VAL (Строка, Число, Код) ; где Строка – строковая константа или переменная, содержащая изображение числа; Число – переменная целого или дробного типа, которой должно быть присвоено значение Код – возвращаемый процедурой код ошибки (целое число) Преобразование типов 9 Процедура VAL

Cлайд 11

Преобразование типов 10 BEGIN s1:="123456789"; val(s1,n,code); Writeln(n); END. BEGIN s1:="123456789ABCDE"; val(s1,n,code); Writeln(n); END.

Cлайд 12

s1:="ABCDE123456789"; val(s1,n,code); Writeln(n); В PascalABC есть более развитый арсенал преобразований как в DELPHI: S:=IntToStr(N) - преобразует целое число к строке; n:=StrToInt(S) - преобразует строку в целое число S:=FloatToStr(r) - преобразует вещественное число к строке R:=StrToFloat(s) преобразует строку в вещественное число. Если преобразование невозможно, то возникает ошибка времени выполнения Преобразование типов 11

Cлайд 13

Cлайд 14

Символы и их коды 13 Функции ORD и CHR Функция Ord(S) – определяет порядковый номер символа. Функция Chr(i) – определяет символ с порядковым номером i По номеру 255 выводим символ из кодовой таблицы Я

Cлайд 15

Символы и их коды 14 Задача 6. Составьте программу, которая по символу введенному с клавиатуры, выводит его номер в кодовой таблице. PROGRAM Primer; uses Crt; VAR S: char; n,code:INTEGER; BEGIN Write("Введи символ ");readln(s); Writeln("Символ ", s ," имеет код -",ord(s)); END. Функция ORD работает только символьным типом данных

Cлайд 16

Задача 7. Дана строка символов. Определить сколько раз в ней встречается буква А (русская). Program n5; Uses Crt; Var s:string; i,k:integer; begin ClrScr; Write("ВВеди строку "); readln(s); k:=0; for i:=1 to length(s) do if (s[i]="А") then k:=k+1; writeln("Буква А встречается = ", k:8," раз"); end. Перебираем от 1 до последней буквы Если на i-ом месте стоит А увеличиваем К на 1 Подсчет символов в строке 15

Cлайд 17

Замечание 16 for i:=1 to length(s) do begin if (s[i]=…… if (s[i]=…… end; Замечание. Если требуется поиск нескольких символов в строке, то условия заключаем в программные скобки BEGIN … END

Cлайд 18

Подсчет символов в строке 17 Начало Ввод S i,1,length(s) Si ="A" К=К+1 Вывод К Конец Да Нет Блок-схема к задаче подсчета букв А в строке К=0

Cлайд 19

Замена символов в строке 18 Задача 8. Дана строка символов. Заменить в ней все буквы А на букву О. Program n6; Uses Crt; Var s:string; i:integer; begin ClrScr; Write("ВВеди строку "); readln(s); for i:=1 to length(s) do if (s[i]="A") then s[i]:="O"; writeln(s); end. Перебираем от 1 до последней буквы Если на i-ом месте стоит А ставим на i-е место О.

Cлайд 20

Замена символов в строке 19 Начало Ввод S i,1,length(s) Si ="A" Si ="O" Вывод S Конец Да Нет Блок-схема к задаче замен буквы А на О

Cлайд 21

Задача 9 Удалить из строки введенной с клавиатуры все буквы R (латинские, заглавные). Program n7; Uses Crt; var a,b:String; i:integer; begin ClrScr; Write("ВВеди строку = ");readln(a); b:=""; for i:=1 to length(a) do if (a[i]‘R") then b:=b+a[i]; a:=b; writeln(a); end. Перебираем от 1 до последней буквы Подготавливаем дополнительную переменную Если на i-ом месте не стоит R то прибавляем эту букву к тому, что есть в B То, что получилось в В перемещаем обратно в А Удаление символов из строки 20

Чтобы пользоваться предварительным просмотром презентаций создайте себе аккаунт (учетную запись) Google и войдите в него: https://accounts.google.com


Подписи к слайдам:

Текстовый и символьный типы данных Паскаль Презентацию подготовила Учитель информатики Карева Татьяна Петровна МБОУ Гимназия №6 Г. Междуреченска Кемеровской области

Вычислительные машины имеют дело не только с числами. Едва ли не больше времени они бывают заняты обработкой текста. В Паскале для этого есть специальный тип данных, который называется CHAR (от слова character – символ). Тип CHAR (символьный или строковый или литерный). Его значениями являются отдельные символы: буквы, цифры, знаки. Символьные константы заключаются в кавычки, например, ‘ A ’, ’ B ’, ’ C ’, ‘4’,‘7’, ‘ ‘(пробел). Символьные переменные описываются предложением Var имя переменной: char ;

Символьные значения можно вводить и выводить, присваивать, сравнивать. Ниже приведен пример, где выполняются все эти действия. Var x , y: char ; Begin Write(‘ Введите символ ‘); Readln (x); Y:=’A’; If x

Сравнивать символы можно благодаря тому, что в машинной памяти они хранятся в виде целых чисел (кодов символов). Из двух символов большим считается тот, код которого больше. Символы упорядочены следующим образом: ‘ A ’=,.

Стандартные символьные функции. В Паскале имеются стандартные символьные функции: CHR (N) – возвращает в программу символ с кодом N , ORD (S) – возвращает код символа S , PRED (S) –возвращает предыдущий символ SUCC (S) – возвращает следующий символ ПРИМЕРЫ: CHR (128) = Б ORD (‘:’) = 58 PRED(‘ Б ’) = А SUCC(‘ Г ’) = Д

Каждый символ имеет свой уникальный двоичный код. Коды всех символов сведены в таблицу. Первая половина таблицы стала международным стандартом, который называется ASCII – American Standard Code Information Interchange (читается « аски код») в ней кроме прочего содержится латинский алфавит, вторая имеет разные варианты для разных языков. Кириллица (русский алфавит) имеет несколько стандартов. В Паскале используется стандарт КОИ-8.

ПРИМЕР использования переменной символьного типа. Составить программу, по которой компьютер многократно вычисляет сумму А+В при различных значениях А и В. в конце каждого этапа появляется запрос о продолжении или прекращении вычислений: «Завершить программу?(Д/Н)». Var A , B: real ; C: char; Begin repeat Write(‘ Введите два числа ‘); Readln (a,b); Writeln (a + b:0:2); Writeln (‘Завершить программу?(Д/Н)’); Readln (с); Until с=’Д’; {программа завершит работу если будет введено Д} Readln End .

Тренировочные задания. 1 . Что вернет функция CHR (ORD (X))? 2. Определить значения следующих функций: CHR(68) ORD(‘d’) PRED(1) SUCC(‘ Я ’) 3. Составить программу, по которой компьютер находит произведение нечетных чисел, начиная с единицы, и до тех пор, пока на вопрос, задаваемый после каждого шага вычислений: «Продолжить вычисления? (Д/Н)», отвечают ‘Д’.

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

Среди всевозможных значений строк есть пустая строка. Она изображается двумя апострофами (одинарными кавычками), между которыми ничего нет. Чтобы ввести этот символ в состав строки, надо повторить его дважды. Например, оператор write (" об""явление ") выведет на экран: об"явление. Программисту доступны отдельные символы строковой переменной, для этого кроме имени переменной надо указать порядковый номер символа в строке. Например, если описана переменная X:STRING, то X - это первый символ строки, X - второй и т.д. У X особая роль - хранить длину строки. Значением X является символ, код которого равен количеству символов в строке. Но для определения длины строковой переменной обычно используется функция LENGTH(строковая переменная). Например, если N:=LENGTH(x); - N присвоится значение равное числу символов в строке.

При описании строковой переменной мы можем ограничить длину строки, указав ее максимально возможный размер, тогда в строке будет храниться только указанное число символов. Var a,b:string ; begin write(" введите слово "); readln (a); write(a); readln end. Если при выполнении этой программы ввести слово КУКУРУЗА, то программа выведет КУКУ.

ЗАПОМНИТЕ. Если при выполнении программы необходимо ввести значение для нескольких строковых переменных, для каждой из них должен быть указан свой оператор ввода READLN. Например, Var a,b,c:string ; begin readln (a); readln (b); readln (c); write(a+b+c); readln end. Проверьте, что произойдет, если записать READLN(a,b,c); или READ(a,b,c).

Пример 1. Составить программу определяющую, какая из двух фамилий длиннее. Фамилии имеют разную длину. Var a,b:string ; begin readln (a); readln (b); if length(a)>length(b) then write(a) else write(b); readln end.

Пример 2. Даны два слова. Составить программу определяющую верно ли, что первое слово начинается на ту же букву, которой оканчивается второе слово. Var x,y:byte ; a,b:string ; begin readln (a); readln (b); x:=length(b); {определяем длину слова b, чтобы узнать номер последнего символа} if a=b[x] then write ("верно") else write ("неверно"); readln end .

Тренировочные задания. 1. Дано название города. Определить, четно или не четно количество символов в нем. 2. Дано слово. Вывести на экран его третий символ и дважды его последний символ. 3. Дано слово. Верно ли, что оно начинается и оканчивается на одну и ту же букву? 4. Дано слово. Получить и вывести на экран буквосочетание, состоящее из его третьего и последнего символа. 5. Составить программу, которая запрашивает название футбольной команды и повторяет его на экране со словами: "Это чемпион!".

Для работы со строковыми переменными в Паскале существует набор стандартных процедур и функций. Их применение упрощает решение задач. Хочу напомнить что результат выполнения функции должен быть запомнен в переменной соответствующего типа, если конечно она, функция, не является элементом выражения. Функция копирования строки или ее части. S:=COPY(строка, позиция, N); Функция копирования называется также "вырезкой". Результатом выполнения функции будет часть строки начиная с указанной позиции длиной N.

Пример: Дано предложение. Определить порядковый номер первой встреченной буквы "к". Если такой буквы нет, сообщить об этом. Var x: integer; a: string; begin write(" Введите предложение "); readln (a); x:=pos(" к ",a); if x=0 then writeln (" Такой буквы нет ") else writeln (x); readln end.

Процедура удаления части строки DELETE(строка, начальный номер, количество символов) Удаляет из исходной строки указанное количество символов. Пример: Дано слово, состоящее из четного числа букв. Вывести на экран его первую половину. Var i,x:byte ; a,p:string ; begin repeat write ("Введите слово из четного числа букв"); readln (a); x:=length(a); {определяем длину слова} until (x mod 2 = 0); x:= x div 2; {применяем целочисленное деление} delete (a,x+1,x); write (а); readln end .

Процедура вставки подстроки в строку INSERT(строка1 , строка2 , позиция); Строка1 вставляется в строку2 начиная с указанной позиции. Тренировочные задания. 1. Дано предложение. Определить число вхождений в него некоторого символа. 2. Дано предложение. Заменить в нем все вхождения буквосочетания "ах" на "ух". 3. Дано слово. Проверить, является ли оно "перевертышем", т.е. читается одинаково как с начала, так и с конца. 4. Дано слово: a. удалить из него первую из букв "о", если такая буква есть; b. удалить из него последнюю из букв "т", если такая буква есть. 5. Дано предложение. Удалить из него все буквы "с".


Слайд 1

2012 год Строки в Pascal

Слайд 2

Строка - это массив символов, т.е. элементов типа char. В Паскале строке соответствует тип данных String.

var Имя: string [Длина];

Если длина не указана, выделяется память под строку до 255 символов.

Теория 1 var s1:string;

строка 255 символов

var s2:string; строка 20 символов

Слайд 3

Правила: строки равны только при одинаковом наборе символов и одинаковой длине; Например: "ABC"="ABC" и "ABC"≠"abc" иначе происходит поэлементное сравнение символов по их кодам: "0"

Сравнение двух строк

Сумма кодов строки S1

Сумма кодов строки S1>S2,

Слайд 4

Соединение двух строк.

s1:="2011" + " год"; Writeln(s1);

s1:="10"; s2:="класс"; s3:=s1+" "+s2; Writeln(s3);

Слайд 5

Функция Length

Функция Length(S) определяет текущую длину строки S. Результат - значение целого типа.

PROGRAM Dlina_1; VAR S: STRING; n:INTEGER; BEGIN Writeln(введите слово ") ; Readln(S); n:= Length (S) ; Writeln(‘введите слово ", n:5 ," букв.."); END.

Записываем длину строки в переменную целого типа

PROGRAM Dlina_2; VAR S: STRING; BEGIN Writeln(’введите слово’) ; Readln(S); Writeln(’слово состоит из ’, Length (S) ,’букв. ’); END.

Выводим на экран длину строки, как результат выполнения функции

Задача 1. Составить программу подсчитывающую количество букв в слове.

Слайд 6

Uses crt; var a,b:string; m,n:Integer; Begin Clrscr; Writeln("ВВеди первую строку ");Readln(a); Writeln("ВВеди вторую строку ");Readln(b); m:=Length(a); n:=Length(b); if (m=n) then writeln("Строки равны"); if (m>n) then writeln("Первая больше"); if (m

Задача 2. Сравнить длину двух строк введенных с клавиатуры.

Вычисляем длину строк

Сравниваем длины и выводим соответствующие пояснения

Задача на сравнение строк 5

Слайд 8

Задача 3. Составить программу осуществляющую вырезку из слова ИНФОРМАТИКА букв так, что бы из них получилось слово ТОРТ.

Program n3_1; Uses crt; var a,b,c,d:string; Begin Clrscr; a:="информатика"; b:=""; c:=copy(a,8,1); d:=copy(a,4,2); b:=c+d+c; writeln(b); End.

Задача на составление строк 7

Используем функцию работы с символьными переменными COPY

Второй вариант: Program n3_2; Uses crt; var a,b:string; Begin Clrscr; a:=‘информатика"; b:=a+a+a+a; writeln(b); End.

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

Слайд 9

Преобразование типов 8

Функция STR

Str(x, S) преобразует число x в строковый формат. Где x – любое числовое выражение, S – строковая переменная.

Задача 4 . Составьте программу которая выводит первую и последнюю цифру натурального числа, введенного с клавиатуры.

PROGRAM Primer; uses Crt; VAR S: STRING; n:INTEGER; BEGIN Write("Введи число ");readln(n); Str(n,S); Writeln("Первая цифра -",S); Writeln("Последняя цифра - ",S); END.

Преобразуем натуральное число в строку

Слайд 10

Процедура val позволяет преобразовать цифровые символы (изображение числа) в число. В общем виде обращение к процедуре выглядит так: VAL (Строка, Число, Код) ; где Строка – строковая константа или переменная, содержащая изображение числа; Число – переменная целого или дробного типа, которой должно быть присвоено значение Код – возвращаемый процедурой код ошибки (целое число)

Преобразование типов 9

Процедура VAL

Слайд 11

Преобразование типов 10

BEGIN s1:="123456789"; val(s1,n,code); Writeln(n); END.

BEGIN s1:="123456789ABCDE"; val(s1,n,code); Writeln(n); END.

Слайд 12

s1:="ABCDE123456789"; val(s1,n,code); Writeln(n);

В PascalABC есть более развитый арсенал преобразований как в DELPHI: S:=IntToStr(N) - преобразует целое число к строке; n:=StrToInt(S) - преобразует строку в целое число S:=FloatToStr(r) - преобразует вещественное число к строке R:=StrToFloat(s) преобразует строку в вещественное число. Если преобразование невозможно, то возникает ошибка времени выполнения

Преобразование типов 11

Слайд 13

Преобразование типов 12

Задача 5. Дано строка символов а1+а2=. Где 1

VAR S: STRING; a,b,c:real; code:INTEGER; BEGIN Write(‘Введи выражение = ");read(s); val(s,a,code); val(s,b,code); if (s="+") then c:=a+b; if (s="-") then c:=a-b; if (s="*") then c:=a*b; if (s="/") then c:=a/b; clrscr; Writeln(s,c); END.

Из строки берем первый и третий символ и преобразуем в число

Слайд 14

Символы и их коды 13

Функции ORD и CHR

Функция Ord(S) – определяет порядковый номер символа.

Функция Chr(i) – определяет символ с порядковым номером i

По номеру 255 выводим символ из кодовой таблицы Я

Слайд 15

Символы и их коды 14

Задача 6. Составьте программу, которая по символу введенному с клавиатуры, выводит его номер в кодовой таблице.

PROGRAM Primer; uses Crt; VAR S: char; n,code:INTEGER; BEGIN Write("Введи символ ");readln(s); Writeln("Символ ", s ," имеет код -",ord(s)); END.

Функция ORD работает только символьным типом данных

Слайд 16

Задача 7. Дана строка символов. Определить сколько раз в ней встречается буква А (русская).

Program n5; Uses Crt; Var s:string; i,k:integer; begin ClrScr; Write("ВВеди строку "); readln(s); k:=0; for i:=1 to length(s) do if (s[i]="А") then k:=k+1; writeln("Буква А встречается = ", k:8," раз"); end.

Перебираем от 1 до последней буквы

Если на i-ом месте стоит А увеличиваем К на 1

Подсчет символов в строке 15

Слайд 17

Замечание 16

for i:=1 to length(s) do begin if (s[i]=…… if (s[i]=…… end;

Замечание. Если требуется поиск нескольких символов в строке, то условия заключаем в программные скобки BEGIN … END

Слайд 18

Подсчет символов в строке 17

Начало Ввод S i,1,length(s) Si ="A" К=К+1 Вывод К Конец Да Нет

Блок-схема к задаче подсчета букв А в строке

Слайд 19

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

Задача 8. Дана строка символов. Заменить в ней все буквы А на букву О.

Program n6; Uses Crt; Var s:string; i:integer; begin ClrScr; Write("ВВеди строку "); readln(s); for i:=1 to length(s) do if (s[i]="A") then s[i]:="O"; writeln(s); end.

Если на i-ом месте стоит А ставим на i-е место О.

Слайд 20

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

Si ="O" Вывод S

Блок-схема к задаче замен буквы А на О

Презентация на тему "Строки в Pascal" по информатике в формате powerpoint. В данной презентации для школьников 10 класса рассмотрен теоретический материал и задачи по теме строковые данные в языке программирования Pascal. Автор презентации: учитель информатики, Юдин А.Б.

Фрагменты из презентации

Теория

  • Строка - это массив символов, т.е. элементов типа char. В Паскале строке соответствует тип данных String.
  • Если длина не указана, выделяется память под строку до 255 символов.
  • Задача 1. Составить программу подсчитывающую количество букв в слове.
  • Задача 2. Сравнить длину двух строк введенных с клавиатуры.

Функция Сору

  • Функция Сору(S, P, N) выделяет из строки S подстроку длиной N символов, начиная с позиции P. Здесь N и P – целочисленные выражения.
  • Задача 3. Составить программу осуществляющую вырезку из слова ИНФОРМАТИКА букв так, что бы из них получилось слово ТОРТ.
  • Задача 4 . Составьте программу которая выводит первую и последнюю цифру натурального числа, введенного с клавиатуры.

Процедура VAL

Процедура val позволяет преобразовать цифровые символы (изображение числа) в число. В общем виде обращение к процедуре выглядит так:

  • VAL (Строка, Число, Код) ;
  • где Строка – строковая константа или переменная, содержащая изображение числа;
  • Число – переменная целого или дробного типа, которой должно быть присвоено значение
  • Код – возвращаемый процедурой код ошибки (целое число)

Преобразование типов

В PascalABC есть более развитый арсенал преобразований как в DELPHI:

  • S:=IntToStr(N) - преобразует целое число к строке;
  • n:=StrToInt(S) - преобразует строку в целое число
  • S:=FloatToStr(r) - преобразует вещественное число к строке
  • R:=StrToFloat(s) преобразует строку в вещественное число.

Если преобразование невозможно, то возникает ошибка времени выполнения

Функции ORD и CHR

  • Функция Ord(S) – определяет порядковый номер символа.
  • Функция Chr(i) – определяет символ с порядковым номером i

Задача 6. Составьте программу, которая по символу введенному с клавиатуры, выводит его номер в кодовой таблице.

Подсчет символов в строке

Задача 7. Дана строка символов. Определить сколько раз в ней встречается буква А (русская).

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

Задача 8. Дана строка символов. Заменить в ней все буквы А на букву О.

Удаление символов из строки

Задача 9 Удалить из строки введенной с клавиатуры все буквы R (латинские, заглавные).

Вложенные условия

Задача 10. В заданном тексте везде букву "а" заменить на букву "б", а букву "б" на букву "а".

Вложенные циклы

Задача 11. Дана строка символов, содержащая знаки препинания. Подсчитать какие и сколько знаков препинания содержит строка.