Урок 7: Работа со строками в среде Small Basic.
Цели урока:
- Обучающая: познакомить учащихся с основными принципами работы с символьными переменными и методами объекта Small basic для их обработки; сформировать навыки и умения работы со строками. Развивающая: развитие мышления, внимания, творческих способностей. Воспитательная: воспитывать самостоятельность, аккуратность.
Оборудование и материалы: компьютер, проектор, экран, интерактивная доска, программная среда Small Basic, задания для лабораторной работы № 7
План урока:
- Организационный момент Актуализация знаний Объяснение нового материала
- Теоретические знания Подготовка к лабораторной работе
- Лабораторная работа № 7
- Выставление оценок за урок Вопросы учащихся
ХОД УРОКА
1. Организационный момент
2. Актуализация знаний
Вопросы:
– Что такое переменная?
– Какое имя может иметь переменная?
3. Объяснение нового материала
Строка – это последовательность символов.
Каждый символ в строке имеет свой порядковый номер (позиция в строке).
Text – объект для обработки строк в среде Small Basic.
Основные функции объекта:
функции | описание | пример |
Text. Append | Склеивает две строки | Text. Append("Красно","ярск") Результат: «Красноярск» |
Text. EndsWith | Проверяет, заканчивается ли заданный текст1 указанным текстом2 | Text. EndsWith("Иван Петров","Петров") Результат: True (истина) или False (ложь) |
Text. GetIndexOf | Находит позицию в тексте, с которой начинается указанная подстрока | Text. GetIndexOf("подсказка","сказка") Результат: 4 |
Text. GetLength | Определяет длину строки | Text. GetLength("урок информатики") Результат: 16 |
Text. GetSubText | Получает часть строки | Text. GetSubText("урок информатики", 8,5) Результат: форма |
Text. IsSubText | Проверяет, входит ли одна строка в другую | Text. IsSubText("энциклопедия", "клоп") Результат: True |
Text. StartsWith | Проверяет, начинается ли строка с заданной подстрокой | Text. StartsWith("Петров", "Петр") Результат: True |
ПРИМЕР 1: Составить программу, определяющую сколько раз, в ведённой строке, встречается буква «а».
c=TextWindow. Read() переменной с присваиваем строковое значение
s=0 вводим начальное значение суммы, подсчитывающей количество букв «а»
for k=1 to Text. GetLength(c) задаём цикл, счётчиком является номер символа в строке
if Text. GetSubText(c, k,1)="а" then определяем условие: если символ под номером k является буквой «а»
s=s+1 то значение суммы увеличивается на 1
EndIf если условие не выполняется
EndFor возвращаемся к следующему значению счётчика цикла и повторяем действия
TextWindow. WriteLine(s) после завершения цикла на экран выводим значение суммы
ПРИМЕР 2: Заменим все буквы «а» на букву «о».
c=TextWindow. Read()

t=""
for k=1 to Text. GetLength(c)
if Text. GetSubText(c, k,1)="а" then
t=t+"o"
Else
t=t+Text. GetSubText(c, k,1)
EndIf
EndFor
TextWindow. WriteLine(t)
В этом примере из исходной строки (переменная с) формируется новая строка (переменная t), делая замену букв при выполнении условия. С помощью цикла перебираем все символы строки.
ПРИМЕР 3: Получить предложение в обратном порядке следования символов.

c=TextWindow. Read()
t=""
for k=Text. GetLength(c) To 1 Step -1
t=t+Text. GetSubText(c, k,1)
EndFor
TextWindow. WriteLine(t)
Работа по группам: Составить программу, которая
Удаляет из текста букву «а» | Добавляет символ после буквы «а» | Добавляет символ перед буквой «а» |
c=TextWindow. Read() t="" for k=1 to Text. GetLength(c) If Text. GetSubText(c, k,1)="а" Then t=t+"" Else t=t+Text. GetSubText(c, k,1) EndIf EndFor TextWindow. WriteLine(t) | c=TextWindow. Read() t="" for k=1 to Text. GetLength(c) If Text. GetSubText(c, k,1)="а" Then t=t+Text. GetSubText(c, k,1)+"*" Else t=t+Text. GetSubText(c, k,1) EndIf EndFor TextWindow. WriteLine(t) | c=TextWindow. Read() t="" for k=1 to Text. GetLength(c) If Text. GetSubText(c, k,1)="а" Then t=t+"*"+Text. GetSubText(c, k,1) Else t=t+Text. GetSubText(c, k,1) EndIf EndFor TextWindow. WriteLine(t) |
Подсказка: В качестве базовой программы возьмите программу для ПРИМЕРА 2
Подготовка к лабораторной работе №7
Определим, что делает следующая программа

c=TextWindow. Read()
t=""
for k=1 to Text. GetLength(c)
t=t+Text. GetSubText(c, k,1)+" "
EndFor
TextWindow. WriteLine(t)
Составим блок-схему для следующей программы:
Программа подсчитывает сколько цифр встречается в строке.
ПРОГРАММА:
c=TextWindow. Read()
n=0
for k=1 to Text. GetLength(c)
if Text. GetSubText(c, k,1)>0 and Text. GetSubText(c, k,1)<9 then
n=n+1
Else
n=n+0
EndIf
EndFor
TextWindow. WriteLine("количество цифр в строке ="+ n)
4. Закрепление изученного материала
Выполнение лабораторной работы №7
5. Итог урока
6. Домашнее задание
Задача. Составить программу, которая из слова ИНФОРМАТИКА получит слова ФОРМАТ, НОРМА, НОРА, ТОРФ, ФИРМА, НОТА.
Информатика и ИКТ преподаватель
Лабораторная работа №7
Тема: «Работа с символами и строками. Составление и отладка программ разной структуры на языке Small Basic».
КАРТОЧКА-ЗАДАНИЕ
Задание 1: Составить линейную программу вывода на экран первого и последнего символа строки.
Задание 2: Составить программу, проверяющую, является ли введённое слово «перевёртышем» (например слово «казак»).
На 1-м этапе: задать цикл, которым получить новую строку, поменяв последовательность символов введённой строки.
На 2 –м этапе: используя оператор условия, сравнить новую строку с первоначально-введённой.
Задание 3: Определите количество слов в тексте. В тексте слова разделять пробелом.
Задание 4: Составить программу по алгоритму, представленному блок-схемой. Результат программы представлен на рис.1.


*Задание 5: Составить программу, которая вводит текст телеграммы и ее вид (простая или срочная) и вычисляет ее стоимость.
- одна буква простой телеграммы стоит 10 рублей;
- одна буква срочной телеграммы стоит 20 рублей;
За подачу простой телеграммы 10 рублей, а
за подачу срочной телеграммы 20 рублей.
Примечание: За пробелы деньги не берутся.
c=TextWindow. Read()
d=Text. GetLength(c)
If Text. IsSubText(c,"урок") Then
k=Text. GetIndexOf(c,"урок")
TextWindow. Write(Text. GetSubText(c,1,k-1))
TextWindow. ForegroundColor="red"
TextWindow. Write(Text. GetSubText(c, k,4))
TextWindow. ForegroundColor="white"
TextWindow. WriteLine(Text. GetSubText(c, k+4,d))
Else
TextWindow. WriteLine(c)
EndIf


