Скачать презентацию Prezentacii com Автор учитель информатики МКОУ Плесской СОШ Скачать презентацию Prezentacii com Автор учитель информатики МКОУ Плесской СОШ

Строки.ppt

  • Количество слайдов: 26

Prezentacii. com Автор: учитель информатики МКОУ Плесской СОШ Юдин А. Б. 2012 год Prezentacii. com Автор: учитель информатики МКОУ Плесской СОШ Юдин А. Б. 2012 год

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

Теория 2 Сравнение двух строк Правила: строки равны только при одинаковом наборе символов и Теория 2 Сравнение двух строк Правила: строки равны только при одинаковом наборе символов и одинаковой длине; Например: 'ABC'='ABC' и 'ABC'≠'abc' иначе происходит поэлементное сравнение символов по их кодам: '0'<'1'<. . . <'9'<'A'<. . . <'Z'<'a'<. . . <'z'<символы кириллицы Например: 'ADS'<'АДС' Сумма кодов 65+68+83 < 192+196+209 (По таблице ASCII) строки S 1S 2,

Теория 3 Соединение двух строк. s 1: ='2011' + ' год'; Writeln(s 1); s Теория 3 Соединение двух строк. s 1: ='2011' + ' год'; Writeln(s 1); s 1: ='10'; s 2: ='класс'; s 3: =s 1+' '+s 2; Writeln(s 3);

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

Задача на сравнение строк Задача 2. Сравнить длину двух строк введенных с клавиатуры. Uses Задача на сравнение строк Задача 2. Сравнить длину двух строк введенных с клавиатуры. 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

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

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

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

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

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

Преобразование типов 11 В Pascal. ABC есть более развитый арсенал s 1: ='ABCDE 123456789'; Преобразование типов 11 В Pascal. ABC есть более развитый арсенал s 1: ='ABCDE 123456789'; преобразований как в DELPHI: val(s 1, n, code); Writeln(n); число к S: =Int. To. Str(N) - преобразует целое строке; n: =Str. To. Int(S) - преобразует строку в целое число S: =Float. To. Str(r) - преобразует вещественное число к строке R: =Str. To. Float(s) преобразует строку в вещественное число. Если преобразование невозможно, то возникает ошибка времени выполнения

Преобразование типов 12 Задача 5. S: STRING; символов а 1+а 2=. Где 1<=а 1 Преобразование типов 12 Задача 5. S: STRING; символов а 1+а 2=. Где 1<=а 1 и VAR Дано строка a, b, c: real; а 2<=9. Составить программу, вычисляющую это code: INTEGER; выражение. Измените программу так, что бы BEGIN вместо знака «+» можно было писать «-» , «*» , «/» . Write(‘Введи выражение = '); read(s); val(s[1], a, code); Из строки берем val(s[3], b, code); первый и третий if (s[2]='+') then c: =a+b; символ и if (s[2]='-') then c: =a-b; преобразуем в if (s[2]='*') then c: =a*b; число if (s[2]='/') then c: =a/b; clrscr; Writeln(s, c); END.

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

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

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

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

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

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

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

Удаление символов из строки 20 Задача 9 Удалить из строки введенной с клавиатуры все Удаление символов из строки 20 Задача 9 Удалить из строки введенной с клавиатуры все буквы R (латинские, заглавные). Подготавливаем Program n 7; дополнительную Uses Crt; переменную Если на i-ом месте var a, b: String; не стоит R то прибавляем эту i: integer; Перебираем от 1 до букву к тому, что последней буквы begin есть в B Clr. Scr; 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.

Удаление символов из строки 21 Начало Ввод A B='' i, 1, length(A) Нет Ai Удаление символов из строки 21 Начало Ввод A B='' i, 1, length(A) Нет Ai <>'R' Да B=B+ Ai A=B Вывод А Конец Блок-схема к задаче удаления букв R из строки

Вложенные условия. 22 Задача 10. В заданном тексте везде букву Вложенные условия. 22 Задача 10. В заданном тексте везде букву "а" заменить на букву "б", а букву "б" - на букву "а". Из всей строки нам begin нужно выбрать cl. Rscr; только А и Б Readln(s); for i: =1 to length(s) do if (s[i]='а') or (s[i]='б') then if (s[i]='а') then s[i]: ='б' else s[i]: ='а'; writeln(s); И только после end. осуществлять замену

Вложенные условия 23 Начало Si ='а' или Si ='б' Ввод S i, 1, length(S) Вложенные условия 23 Начало Si ='а' или Si ='б' Ввод S i, 1, length(S) Нет Да Да Si ='б' Вывод S Конец Si ='а' Нет Si ='а' Блок-схема к задаче замены А на Б и наоборот

Вложенные циклы 24 Дана строка символов, содержащая знаки препинания. Подсчитать какие и сколько знаков Вложенные циклы 24 Дана строка символов, содержащая знаки препинания. Подсчитать какие и сколько знаков препинания содержит строка. Задача 11. Внешний цикл, begin осуществляющий Тело внешнего Clr. Scr; перебор знаков цикла содержит Write('ВВеди строку '); readln(s); записанных в S 1 цикл, отвечающий за перебор s 1: =', . ; : "!? -'; символов for i: =1 to length(s 1) do begin введенной строки k: =0; for j: =1 to length(s) do if (s[j]=s 1[i]) then k: =k+1; if (k<>0) then writeln(s 1[i], ' - ', k: 5, ' раз'); end.

Вложенные циклы 25 Начало Ввод S s 1=', . ; : Вложенные циклы 25 Начало Ввод S s 1=', . ; : "!? -' i, 1, length(S 1) K=0 Конец j, 1, length(S) Да Sj = S 1 i K=K+1 Нет K<>0 Да Вывод S 1 , K i Блок-схема к задаче подсчета знаков препинания