Урок 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