Презентация на тему Строки в Pascal. Строки в паскале
Слайд 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. Дана строка символов, содержащая знаки препинания. Подсчитать какие и сколько знаков препинания содержит строка.
Синтаксис: var s: string[n]; var s1: string; n - максимально возможная длина строки - целое число в диапазоне Если этот параметр опущен, то по умолчанию он принимается равным 255.
Строковые константы записываются как последовательности символов, ограниченные апострофами. S: = "Текстовая строка"
Пустой символ обозначается двумя подряд стоящими апострофами. Если апостроф входит в строку как литера, то при записи он удваивается. Переменные, описанные как строковые с разными максимальными длинами, можно присваивать друг другу, хотя при попытке присвоить короткой переменной длинную лишние символы будут отброшены. Выражения типа char можно присваивать любым строковым переменным.
В Паскаль имеется простой доступ к отдельным символам строковой переменной: i-й символ переменной st записывается как st[i]. Например, если st - это "Строка", то st - это "С", st - это "т", st - "р" и так далее.
Над строковыми данными определена операция слияния (конкантенации), обозначаемая знаком +. Например: a:= "Turbo"; b:= "Pascal"; c:= a + b; В этом примере переменная c приобретет значение "TurboPascal".
Процедуры и функции для работы со строками 1)n:= length("Pascal"); {n будет равно 6} 2) s:= "Система Turbo Pascal"; s2:= copy(s, 1, 7); {s2 будет равно "Система"} s3:= copy(s, 9, 5); {s3 будет равно "Turbo"} s4:= copy(s, 15, 6); {s4 будет равно "Pascal"}
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 (mCлайд 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 Процедура VALCлайд 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) преобразует строку в вещественное число. Если преобразование невозможно, то возникает ошибка времени выполнения Преобразование типов 11Cлайд 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 Подсчет символов в строке 15Cлайд 17
Замечание 16 for i:=1 to length(s) do begin if (s[i]=…… if (s[i]=…… end; Замечание. Если требуется поиск нескольких символов в строке, то условия заключаем в программные скобки BEGIN … ENDCлайд 18
Подсчет символов в строке 17 Начало Ввод S i,1,length(s) Si ="A" К=К+1 Вывод К Конец Да Нет Блок-схема к задаче подсчета букв А в строке К=0Cлайд 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