Язык программирования паскаль презентация строковые величины. Строки в паскале. строкой в паскале называется последовательность из определенного количества символов. количество символов последовательности называется. Подсчет символов в строке
Слайд 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
Блок-схема к задаче замен буквы А на О
Тема: Паскаль «строковые переменные». Обработка строк текста
- МБОУ «Моргаушская СОШ»
- Учитель информатики I категории Павлинова Р.М.
- Символьный тип
- Значением переменных символьного типа char является один символ. Каждому символу соответствует код символа – целое число в диапазоне от 0 до 255.
- chr(x) – возвращает значение символа по его коду;
- ord(cimvol) – возвращает код заданного символа cimvol.
- pred(cimvol) – возвращает предыдущий символ.
- succ(cimvol) – возвращает следующий символ.
- upcase(cimvol) – преобразует строчную букву в заглавную. Обрабатывает буквы только латинского алфавита.
- ord(‘A’)=65
- chr(128)=’Б’
- pred(‘Б’)=’A’
- succ(‘Г’)=’Д’
- upcase(‘n’)=’N’
- Дан символ, вывести его код.
- i, j, k, y, x: integer;
- s, str1, a: string;
- b: char;
- begin
- readln (b); { b:=’A’}
- y:=ord (b); {y:= ord (‘A’)=65}
- writeln(y); { y:=65}
- По данному коду вывести его символ.
- i, j, k, y, x: integer;
- s, str1, a: string;
- b: char;
- begin
- readln (y); { y:=65}
- b:=chr (y); {b:= chr(65)=’A’}
- Writeln (b); { b:=’A’}
- Строковый тип – это данные типа string. Они используются для хранения последовательностей символов. В Паскале длина стандартной строки ограничена 255 символами. Под каждый символ отводится по одному байту, в котором хранится код символа. Кроме того, каждая строка содержит еще дополнительный байт, в котором хранится длина строки. Если заранее известно, что длина строки будет меньше 255 символов, то программист может сам задать максимальную длину строки. Примеры описания строк:
- str_type = string;
- const
- n = 50;
- s1: string;
- s2, s3: str_type;
- s4: string[n];
- s5, s6, s7: string;
- Длина строки хранится в первом ее байте, индекс которого равен 0. Объявление типизированной константы для типа string осуществляется так:
- const
- s: string = "FreePascal"
- Существует понятие пустой строки, т.е. строки, которая не имеет элементов. Пустая строка обозначается двумя рядом стоящими апострофами (например, st:= " ").
- Строки можно присваивать друг другу. Если максимальная длина переменной слева меньше длины присваиваемой строки, то лишние символы справа отбрасываются.
- s1:= "this is text";
- s2:= s1;
- Строки можно объединять с помощью операции конкатенации, которая обозначается знаком +.
- s1:= "John";
- s2:= "Black";
- s1:= s1 + " " + s2;
- Строки можно сравнивать друг с другом с помощью операций отношения. При сравнении строки рассматриваются посимвольно слева направо, при этом сравниваются коды соответствующих пар символов. Строки равны, если они имеют одинаковую длину и посимвольно эквивалентны. В строках разной длины существующий символ всегда больше соответствующего ему отсутствующего символа. Меньшей будет та строка, у которой меньше код первого несовпадающего символа (вне зависимости от максимальных и текущих длин сравниваемых строк).
- "abc" > "ab" (true)
- "abc" = "abc" (true)
- "abc" < "abc " (false)
- Имя строки может использоваться в процедурах ввода-вывода. При вводе в строку считывается из входного потока количество символов, равное длине строки или меньшее, если символ перевода строки (который вводится нажатием клавиши Enter) встретится раньше. При выводе под строку отводится количество позиций, равное ее фактической длине.
- readln (s1);
- write (s1);
- К отдельному символу строки можно обращаться как к элементу массива символов, например s1. Символ строки совместим с типом char, их можно использовать в выражениях одновременно, например:
- s1 := "h";
- writeln (s2 + "r");
- Можно осуществлять коррекцию любого символа строковой переменной, для чего в соответствующем операторе достаточно указать имя переменной типа string, вслед за которым в квадратных скобках задается номер ее элемента (например, str:="j"). Элементы строки нумеруются с единицы, т.к. в каждой строковой переменной имеется элемент с номером 0, в котором в виде символа хранится длина текущей строки. Чтобы узнать текущую длину, достаточно применить функцию ord к нулевому элементу строки. Например: writeln (ord (st))
- Нулевой элемент строковой переменной можно корректировать. При этом будет изменяться текущая длина строки. Например, выражение str:=#50 устанавливает текущую длину равной 50.
- В языке программирования Паскаль переменная типа array of char может рассматриваться как строка постоянной длины. Переменные такого типа могут свободно использоваться в любых строковых выражениях. При этом компилятор автоматически преобразует такой массив в строку, длина которой равна количеству элементов массива.
- Массивы типа char можно сравнивать друг с другом и обращаться с ними почти так же, как с переменными типа string. Можно в операторе присваивания в левой части указывать имя такого массива, а в правой – строковую константу с длиной, равной количеству элементов в массиве.
- Кроме того, в Pascal массивам типа array of char разрешено присваивать строковые константы, длина которых меньше количества элементов массива; в оставшиеся при этом незаполненные элементы заносится символ #0. Однако нельзя переменной типа array of char присвоить значение строковой переменной или строкового выражения (кроме выражений над строковыми константами с результирующей длиной, равной размерности массива). Массивы типа array of char могут использоваться в процедуре val и функциях concat, copy и length.
- s, str1: string;
- begin
- str1:= s; { str1:=s=’r’;}
- Writeln (s,’ ’,str1); { str1:=’r’;}
- 1. Функция соединения Concat (s1, s2, ..., sn). Значение функции – результат соединения строк s1, s2, ..., sn, не превышающая 255 символов. s:=s1+s2+…+sn;
- s, s1, s2, s3: string;
- begin
- Readln (s1, s2, s3); { s1:=’in’; s2:=’forma’; s3:=’tika’;}
- s:=s1+s2+s3;
- Writeln (s); { s:=’informatika’}
- s, s1: string;
- k: integer;
- begin
- Readln (s); { s:=’informatika’}
- k:= Length (s); { k:= Length (‘informatika’);}
- Writeln (k); {k:=11;}
- Var s, s1: string;
- I, k: integer;
- begin
- Readln (s); { s:=’крокодил’;}
- s1:=copy (s, 4, 3);
- Writeln (s1); { s:=’код’;}
- s, t: string;
- k: integer;
- begin
- Readln (t, s); {t:=’ informatika’; s:=’ forma’; }
- k:= pos (s, t); { k:= pos (’ forma’, ’ informatika’};
- Writeln (k); {k:=3;}
- 1. Процедура удаления delete(s,i,k). Из строки s удаляются k символов, начиная с i-го символа:
- s, t: string;
- k: integer;
- begin
- readln(s); {s:=’ информатика’; }
- delete (s,4,3); { delete (’информатика ’,4,3};
- writeln(s); {s:=’инфатика’ ;}
- s, t, m: string;
- k: integer;
- begin
- readln (s, t); {s:=’ информа’; t:=’ тика’; }
- insert (t, s, 8); { insert(’тика’, ’информа’,8); };
- writeln (s); {s:=’информатика’ ;}
- s, t, m: string;
- k: integer;
- begin
- readln (k); {k:=123; (число)}
- str (k, s); {str(123, s); };
- writeln (s); {s:=’123’; (строка)}
- s, t, m: string;
- k, i: integer;
- begin
- readln (s); {s:=’ 564a32’; }
- val (s, k, i); { val (‘564a32’, k, i); };
- writeln (s, ‘ k:=’, k, ‘ i:=’, i);
- {s:=’564a32’, k:=564, i:=4 ;}
- {s:=’564’, k:=564, i:=0 ;}
Презентация на тему "Строки в 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. Дана строка символов, содержащая знаки препинания. Подсчитать какие и сколько знаков препинания содержит строка.