Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемЛариса Новокшонова
1 Символьные и строковые величины 10 класс
2 2 Основные теоретические сведения Примеры решения задач
3 3 Основные теоретические сведения Описание символов и строк Операции над символами Функции обработки символьных величин Функции обработки символьных величин Операции над строками Процедуры и функции обработки строковых величин Процедуры и функции обработки строковых величин
4 4 Описание символов и строк Тип данныхОписание СharХранит один символ кодовой таблицы StringХранит значение строки символов кодовой таблицы Значения строковых и символьных констант записываются в апострофах. Значения символов можно задавать с помощью знака # и кодового номера символа: C1:=$;С2:=#36; (знак - $) S:=Привет;C3:=#27; (код клавиши Esc) Writeln (сумма чисел равна);write(a,#9,b); (#9 – код клавиши Tad) If c=+ then …For c:=a to z do …
5 5 Операции над символами Два символа можно сравнить. Больше будет тот символ, кодовый номер больше. Символы алфавита, набранные в одном регистре упорядочены в алфавитном порядке; Б
6 6 Функции обработки символьных величин Название функции ДействиеТип аргументов Тип результата Chr(x) Определяет символ по его номеру в кодовой таблице bytechar Ord(c) Определяет код символа в кодовой таблице charbyte Upcase(c) Преобразует символ в верхний регистр char LowCase(c) Преобразует символ в нижний регистр char Pred(c) Возвращает предыдущий символ в кодовой таблице char Succ(c) Возвращает следующий символ в кодовой таблице char
7 7 Операции над строками Строки можно складывать – результатом будет новая строка, полученная приписыванием к первой строке второй: S1:='Иванов'; S2:='Павел'; S3:=S1+' '+S2; После выполнения команд строка S3 получит значение 'Иванов Павел'
8 8 Операции над строками Две строки можно сравнивать. Строки сравниваются в лексикографическом порядке посимвольно. Сравнивают первые символы, больше будет та строка, первый символ которой больше; Если первые символы равны, то сравнивают вторые, третьи и т.д. Если все символы двух строк равны, то строки равны. Если одна из строк является началом другой, то вторая строка больше.
9 9 Примеры сравнения строк Первая строкаВторая строкаРезультат ЧетвергПятницаПервая больше ПонедельникПятницаВторая больше Равны ЛесЛескаВторая больше
10 10 Процедуры и функции обработки строковых величин Название функции. Действие.Тип аргумента (ов). Тип результата. Length (s)Возвращает длину строки sstringinteger Pos (s1,s2)Ищет первое вхождение строки s1 в строке s2 s1, s2 – stringbyte Copy (a,n,k)копирует подстроку строки а, из k символов, начиная с позиции n a – string, k, n,– integer string delete(s, n, k)удаляет k символов из строки s, начиная с символа с номером n s – string k, n – integer Процедура, результат сохраняется в переменной s insert(s1, s2, n)вставляет строку s1 в строку s2, начиная с позиции n n – integer s1, s2 – string Процедура, результат сохраняется в переменной s2
11 11 Примеры использования функций Исходные данныеКомандаРезультат s:= 'informatika'a:=copy(s,3,5);а:= 'forma' s:= 'informatika'delete(s,3,7);s:= 'inka' s:= 'vina' a:= 'elich' insert(a,s,2);s:= 'velichina' d='Информатика;d:=Length(s)d=11 S:=Шла Саша по шоссе;N:=Pos(Саша,S);N=5
12 12 Примеры решения задач Определение кода введенного символа Ввод-вывод строк Поиск символов в строке 1 Поиск символов в строке 2 Преобразование строк Простейшее преобразование строки Удаление, вставка и замена символов
13 13 Определение кода введенного символа Написать программу, которая выведет код введенного символа.
14 14 Этапы выполнения задания I.Определение исходных данных: переменная с (введенный символ). II.Определение результатов: переменная x (код символа в кодовой таблице). III.Алгоритм решения задачи. 1.Ввод исходных данных 2.Определение кода символа 3.Вывод результата. IV.Описание переменных: V.Переменная c – тип char, переменная x – тип byte.
15 15 Программа: var c:char; x:byte; begin writeln('введите символ'); readln(c); x:=ord(c); writeln('код=',x); end.
16 16 Тестирование и вопросы Запустите программу и введите значения $ Проверьте, результат должен быть следующим: код=36 Определите код символа пробел. Определите коды непечатных символов, которые вставляются в текст при нажатии клавиш табуляция и ввод. * Какому символу соответствует код 168? * Измените программу так, чтобы она запрашивала код символа и выдавала символ.
17 17 Ввод-вывод строк Напишите программу, которая спросит имя пользователя, а затем поздоровается с ним.
18 18 Разбор задания I.Определение исходных данных: переменная imja, строка, в которой будет храниться введенное имя. II.Определение результатов: строка с приветствием. III.Алгоритм решения задачи. 1.Ввод имени 2.Вывод строки с приветствием IV.Описание переменных: V.Переменная imja – тип string.
19 19 Программа Программа: var imja:string; begin writeln ('Как тебя зовут? '); readln(imja); writeln ('Привет, ',imja); end.
20 20 Тестирование Если запустить программу и ввести значение – Маша то результат должен быть следующим: Привет, Маша
21 21 Поиск символов в строке 1 Написать программу которая определит каких букв в строке с русским текстом больше: о или O.
22 22 Исходные данные и результаты Исходные данные переменная St - исходный текст. Результат Сообщение о том каких букв больше.
23 23 Алгоритм решения задачи Ввод исходных данных. В цикле от 1 до длины строки St проверяем каждый символ строки. Если встретилась буква o, то увеличиваем на 1 значение счетчика k1, если O – значение счетчика k2. Сравниваем полученные значения счетчиков. Вывод результата.
24 24 Описание переменных Переменная St имеет тип string. Переменные k1 и k2 имеют тип integer. Тип переменной i – счетчика цикла – integer. Для хранения длины строки используем переменную n типа integer.
25 25 Программа Var St: string; n,i,k1,k2: integer; Begin Write('введите строку текста - St'); Readln(St); n:=length(St); For i:=1 to n do begin If St[i]='o' then k1:=k1+1; If St[i]='O' then K2:=k2+1; end; if k1>k2 then writeln('букв о больше чем О') else if k2>k1 then writeln('букв O больше чем o') else writeln('количество букв о равно количеству букв О'); End.
26 26 Тестирование Запустите программу и введите значение OOOoooOOO Проверьте, результат должен быть следующим: букв O больше чем o
27 27 Вопросы Будет ли работать программа, если ввести текст на английском языке? Почему? Какие изменения необходимо внести в программу для работы с английским текстом? Подберите тесты для проверки программы. Измените программу так, чтобы можно было работать с текстом, как на русском, так и на английском языке. Ведите текст, в котором нет букв o. Какой ответ выдаст программа? Внесите изменения в программу, так чтобы на этот случай выдавалось сообщение в тексте нет букв O и o.
28 28 Поиск символов в строке 2 Задано слово. Вывести согласные буквы слова синим цветом, а гласные буквы красным. Посчитать количество гласных букв во введенном слове.
29 29 Исходные данные и результаты Исходные данные переменная St - исходный текст. Результат слово, в котором буквы выводятся разными цветами и сообщение о количестве гласных букв.
30 30 Алгоритм решения задачи Ввод исходных данных. Создаем дополнительную строку, в которой хранятся все гласные буквы: g:=ЁУЕЭОАЫЯИЮёуеэоаыяию. Заводим переменную k – счетчик гласных букв. Вначале ее значение равно 0. В цикле от 1 до длины строки St находим позицию текущего символа из строки St в строке с гласными буквами (переменная p). Если это значение не равно нулю, то символ – гласная. Если символ является гласной буквой, то выводим его на экран красным цветом и увеличиваем значение счетчика гласных букв на 1, если символ не является гласной буквой, то выводим его синим цветом. Вывод результата.
31 31 Описание переменных Переменные St и g имеют тип string. Переменные k и p имеют тип integer. Тип переменной i – счетчика цикла – integer. Для хранения длины строки используем переменную n типа integer.
32 32 Программа Uses GraphABC; Var St,g: string; n,i,k,p: integer; Begin Writeln('введите строку текста - St'); Readln(St); writeln(St); n:=length(St); g:= 'ЁУЕЭОАЫЯИЮёуеэоаыяию'; SetFontName('Couier New'); For i:=1 to n do begin p:=pos(st[i],g); if p0 then begin SetFontColor(clRed); TextOut(10*i,50,st[i]); k:=k+1; end else begin SetFontColor(clBlue); TextOut(10*i,50,st[i]); end; SetFontColor(clGreen); writeln('количество гласных букв равно ', k); End.
33 33 Тестирование
34 34 Вопросы Будет ли работать программа, если ввести текст на английском языке? Почему? Какие изменения необходимо внести в программу для работы с английским текстом? Подберите тесты для проверки программы. Измените программу так, чтобы можно было работать с текстом, как на русском, так и на английском языке. *Почему сообщение количество гласных букв равно выводится на экран до вывода символов разными цветами, хотя команда для вывода этого сообщения выполняется в программе последней?
35 35 Простейшее преобразование строки Написать программу которая из слова ТЕСТИРОВАНИЕ получит слово РИСОВАНИЕ.
36 36 Этапы выполнения задания. Определение исходных данных: слово ТЕСТИРОВАНИЕ будем хранить как константу с именем s. Определение результатов: полученные слова. Алгоритм решения задачи. Для получения слова нужно скопировать из исходной строки шестой символ, восемь символов, начиная с позиции 5 Затем все сложить. Получим Р+ИРОВАНИЕ. Затем удалить третий символ (РИОВАНИЕ) Вставить на третье место третий символ исходной строки (РИСОВАНИЕ). Вывод результата.
37 37 Программа const s='ТЕСТИРОВАНИЕ'; var s1:string; begin s1:=s[6]+copy(s,5,8); {РИРОВАНИЕ} delete(s1,3,1); {РИОВАНИЕ} insert(s[3],s1,3); {РИСОВАНИЕ} writeln('слово=', s1); End.
38 38 Удаление, вставка и замена символов Написать программу, которая в заданном тексте заменит все встречающиеся пары из одинаковых цифр, словом две.
39 39 Исходные данные и результаты Исходные данные переменная St - исходный текст. Результат Преобразованный текст
40 40 Алгоритм решения задачи Ввод исходных данных. Просматриваем строку и выделяем из строки по два символа. Проверяем одинаковые ли эти символы, и являются ли они цифрами. Если да, удаляем их из строки и на их место вставляем слово два. Для того, чтобы проверить является ли символ цифрой, создадим строку z, состоящую из всех цифр, и будем определять позицию текущего символа строки в строке из цифр. Если позиция текущего символа в этой строке отлична от нуля, то символ – цифра, иначе нет. Поскольку длина строки при замене будет меняться, то для просмотра строки удобнее использовать цикл while. Вывод результата.
41 41 Описание переменных Переменные St и z имеют тип string. Такой же тип имеет переменная x, предназначенная для выделения пар символов Тип переменной i – счетчика цикла – integer. Для хранения длины строки используем переменную n типа integer.
42 42 Программа Var St: string; z:string[10]; x:string[2]; i: integer; Begin Write('введите строку текста - St'); Readln(St); z:=' '; i:=1; while i
43 43 Тестирование Запустите программу и введите значение st= Проверьте, результат должен быть следующим: преобразованная строка дведве234две6две
44 44 Вопросы Будет ли работать программа, если ввести римские цифры? Почему? Какие изменения необходимо внести в программу для работы с римскими цифрами (I –1, V –5, X –10, L –50, C –100, D – 500, M –1000)? Подберите тесты для проверки программы. Измените программу так, чтобы можно было работать как с арабскими, так и с римскими цифрами. Ведите текст, в котором нет цифр. Какой ответ выдаст программа? Внесите изменения в программу, так чтобы на этот случай выдавалось сообщение в тексте нет цифр.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.