Урок по информатике на тему "Описание строк. Операции над строками"

Разделы: Информатика


Цель урока: изучить строковые переменные, функции над строковыми переменными, посредством выполнения творческих заданий.

Задачи урока:

1. Образовательные:

  • повторить и обобщить знания о процедурах и функциях графического режима в языке Бейсик;
  • изучить методы организации решения задач на строковые переменные;
  • закрепить использование строковых операторов и функций при решении задач.

2. Воспитательные и развивающие:

  • в процессе урока развивать интерес к программированию на языке Бейсик, навыки самоконтроля и самооценки;
  • развивать у студентов самостоятельность при решении задач на ПК, творчество, мышление, аккуратность и внимательность при выполнении заданий на ПК;
  • научить студентов работать в ситуации целостной учебной деятельности.

Основные методы, применяемые на уроке: словесные, практические, наглядные, логические, самостоятельной работы, стимулирования и мотивации учебной деятельности, контроля, самоконтроля и самооценки.

Оборудование урока:

  • карточки-самооценки;
  • раздаточный материал с задачами на урок;
  • ПК.

Тип урока: урок учебной деятельности (творческого развития).

План урока.

Обычный, «классический» тип урока творческого развития в себя включает следующие этапы урока.

На первом, ориентировочно-мотивационном этапе происходит:

  • проверка домашних работ (прежде всего творческих);
  • выравнивание знаний;
  • постановка учебной задачи, создание ориентации и мотивации на изучение поставленной задачи.

На втором исполнительском этапе урока происходит:

  • решение учебной задачи;
  • формирование общего способа;
  • моделирование знаний и способов;
  • по шаговый самоконтроль;
  • пошаговая самооценка усвоенного материала.

Ход урока

Проверка домашних работ и выравнивание знаний.

Основная домашняя работа проверяется фронтально. Решение задач записываются на доске, студент, выполняющий решение пошагово объясняет решение задач. Обсуждаются вопросы, которые вызвали затруднения при выполнении домашнего задания.

В это же время студенты, которые выполняли творческое домашнее задание, записывают свои программы на компьютере в среде Basic, демонстрируют свои проекты перед другими студентами.

Задания основной домашней работы:

  1. Составить программу ввода значения температуры воздуха t и выдачи текста «Хорошая погода!», если t >100, и текста «Плохая погода!», если t ≤ 100.
  2. Напишите программу вывода картинки на экран в графическом режиме.

Задание творческой домашней работы:

Нарисовать картинку, на которой обязательными элементами должны быть: домик с окном. Свет в окне зажигается нажатием клавиши “+”, гасится – клавишей “ – ”.

Постановка учебной задачи, создание ориентации и мотивации на изучение поставленной задачи.

Сегодня мы рассмотрим строковые переменные, имена которых отличаются от обычных добавлением знака $. В таких переменных могут содержаться как отдельные символы, так и их последовательности длиной до 255 символов. К ним в Бейсике применимы специальные операции.

Запишите тему сегодняшнего урока: «Описание строк. Операции над строками»

Для начала надо немного отвлечься, чтобы сообщить о том, что каждый символ, представленный на клавиатуре для компьютера переводится в числовой код. Эти коды объединены в стандартную международную таблицу кодов ASCII. Коды с 0 по 32 не имеют изображения на экране и служат для функций управления (пробел, клавиши управления курсором и т. д.). Далее следуют знаки препинания, цифры, строчные и прописные буквы латинского алфавита и другие символы, которые вы можете найти на клавиатуре. Всего их 128. А еще 128 кодов (от 129 до 255) служат для расширения возможностей клавиатуры, например для генерации национальных символов — в нашем случае для кириллицы. Учить их наизусть ни в коем случае не надо — они есть в таблице. Но если ее не окажется под рукой, то вы должны определить код любого символа, используя специальные функции asc и chr$.

Решение учебной задачи и формирование общего способа, моделирование знаний и способов.

Функции ASC и CHR$.

Функция asc определит нам код ASCII для первого символа этой строковой переменной и имеет следующую форму записи:

ASC (строковая переменная).
Например:
N=ASC("F").
? " Код заглавной буквы F —"; N
В результате получим:
Код заглавной буквы F — 70
Еще пример.
X$="YAHOO"
N= ASC (X$)
? N

В результате получим код первого символа, входящего в слово "YAHOO", т. е. "Y", который равен 89.

Замечание.

Следует помнить, что коды заглавных и строчных букв — разные.

Кроме того, если мы напрямую указываем в функции asc символ или текст, то он берется в кавычки (первый пример), а если это строковая переменная, то без кавычек (второй пример).

Функция chr$ определит нам символ, код которого указан в скобках. Форма записи функции:

CНR$ (код)
Например:
CLS
1: INPUT "Введите любой код от 33 до 128"; N
IF N < 33 OR N >=128 THEN? "Обратите внимание на числовые границы для кода"
GOTO 1
? "Символ с кодом "; N; "- это"; CHR$(N)

Обратите внимание на оформление программы. Сначала выполняется очистка экрана. Затем — запрос кода. Если он введен не в требуемых пределах, то программа возвращает человека к запросу — простейший, но очень полезный способ помочь пользователю.

Для уверенного использования строковых функций asc и chr$ выполните следующие задания:

№ 1. Опробуйте представленную выше программу и узнайте, что за символы скрываются под кодами 33, 66, 99, 100, 128.

Пошаговый самоконтроль и пошаговая самооценка усвоенного материала.

Перед тем, как вы приступите к самостоятельному выполнению заданий, хотелось бы напомнить критерии оценок:

Оценка "5".

Студент выполнил все задания практики, дает четкие и правильные ответы, выявляющие понимание материала и характеризующие прочные знания, легко устанавливает связь между теоретическими знаниями и практическими умениями, самостоятельно выполняет задания практических и лабораторных работ, не нуждается в помощи преподавателя.

Оценка "4".

Студент выполнил все задания практики, дает правильные ответы, способен установить связь между теоретическими знаниями и практическими умениями, овладел программным материалом, но допускает некоторую неполноту ответа и незначительные ошибки, при самостоятельном выполнении задания практических и лабораторных работ преподаватель оказывает незначительную помощь.

Оценка"3".

Студент выполнил не полностью задания практики, дает неполные ответы, построенные несвязно, выявляет общее понимание материала и характеризующее нетвердые знания, при выполнении заданий практических и лабораторных работ постоянно нуждается в помощи преподавателя.

Оценка"2".

Студент не выполнил задания практики, плохо знает теоретический материал, не владеет умениями и навыками для выполнения заданий лабораторных и практических работ.

Все задания проверяется преподавателем у каждого студента, заполняется карточка самооценки знаний.

Ф.И. студента _______________________.

Группа № ___________ подгруппа ______.

№ задания № 1 № 2 № 3 № 4 № 5 Итоговая оценка (выставляется преподавателем)
Оценка            

Эта программа грамотно работает для первых стандартизированных 128 кодов. Чтобы правильно работать, например, с русским текстом, надо знать коды строчных и прописных букв кириллицы, которые скрываются в интервале от 129 до 255. Поэтому еще одно задание.

№ 2. Напишите программу, выводящую на экран символы, скрывающиеся за кодами 129—255. Распечатайте или выпишите коды строчных и прописных букв кириллицы.

Но, всякий раз вводить текст побуквенно — большая морока. Нельзя ли как-нибудь в Бейсике обрабатывать слова и строки? конечно, можно. Для этого существуют специальные функции.

Функция INPUT$.

Эта функция ожидает ввода N символов, которые и будут обрабатываться программой сразу после их набора на клавиатуре, не дожидаясь нажатия клавиши <Enter>. В этом заключается принципиальное отличие функции от оператора input.

Например:
СLS
N$=input$ (2)
IF Н$="да" THEN?N$ ELSE?"нет"

В данном случае программа после ввода с клавиатуры последовательности символов, анализирует ее, выделяя только два первых символа, и действует в зависимости от проверяемого условия.

Функция LEN.

Следующая функция — len. Она определяет длину введенной или существующей в переменной строковой переменной в символах. Синтаксис:

LEN(строковая_леременная)
Например:
CLS
INPUT "Введите Вашу фамилию"; F$
N=LEN(F$)
? "В вашей фамилии "; N; "букв"

Представленная программа выясняет количество букв во введенной пользователем фамилии. Причем, обратите внимание, что функция len учитывает не только буквы, но и символы, т. е. она распознает и пробелы, и знаки препинания, и цифры, содержащиеся во введенном тексте. Например:

CLS
INPUT "Введите Ваш адрес"; F$
N=LEN(F$)
? "В вашем адресе "; N; "символов"

№ 3. Определите с помощью предыдущего примера, сколько символов будет в следующем адресе:

107110, Россия, Москва, Сиреневый бульвар, 78-33

Функции LEFTS, RIGHT$ и МID$.

Для получения фрагмента строки (или значения строковой переменной) применяются специальные функции.

Функция left$ выделяет из введенной строковой переменной N символов слева:

LEFT$(строковая переменная, N)
Рассмотрим пример.
CLS
F$="ГА30Н0К0СИЛЬЩИК"
L$=LEFT$(F$, 5)
? L$

На экране появится слово "ГАЗОН", т. е. первые пять символов слева исходной строковой переменной.

Функция right$ вырезает из введенной строковой переменной n символов справа:

RIGHTS (строковая переменная, N)
Например:
CLS
F$="ГАЗОНОКОСИЛЫЦИК"
R$=RIGHT$(F$, 9)
? R$

На экране появится слово "КОСИЛЬЩИК", т. е. первые девять символов справа исходной строковой переменной.

Наконец, функция MID$ извлекает N2 символов, начиная с N1 исходной строковой переменной:

MID$ (строковая переменная, N1, N2)
Например:
CLS
F$="ГАЗОНОКОСИЛЬЩИК" M$=MID$(F$, 1, 4)
? М$

На экране появится слово "КОСИ", т. е. четыре символа, начиная с седьмого исходной строковой переменной.

Выполните упражнение.

№ 4. Напишите программу, которая выдаст на экран пять слов максимальной длины из слова "ЭЛЕКТРИЧЕСТВО". Побеждает тот, у кого сумма букв во всех словах наибольшая.

А теперь сделаем перерыв в работе с компьютером и порешаем задачи устно

Задана строка a$ = ”10 ноября 2004 года ”. Определите значения следующих функций:

  1. B = LEN (A$);
  2. C$ = LEFT$ (6, A$);
  3. D$ = RIGHT (6, A$);
  4. E$ = MID$ (A$, 8, 4);
  5. L = LEN (MID$ (A$,10));
  6. N$ =MID$ (A$, 15) + MID$ (A$, 4, 2).

МОЛОДЦЫ! Переходим к решению задач на ПК.

В качестве очередного примера приведем задачу подсчета слов во введенном тексте. Как известно, для компьютера словом является последовательность символов, заключенная в пробелы с двух сторон. Подчеркиваю, это не обязательно слово, в привычном для нас понимании, а любой набор символов, например, 45ро9) или ВАР56+УР47. Поэтому, в простейшем случае, подсчет количества слов во введенном тексте сводится к подсчету количества пробелов и добавлении к полученному значению единицы. (Почему так? Очень просто: слов два, а пробел между ними один; слов три — а пробелов два и т. д.) Получаем программу.

CLS
INPUT "Введите текст телеграммы"; W$
N=LEN(W$): K=0
FOR 1=1 ТО N
P$=MID$(W$, I, 1)
IF p$=I... THEN K=K+ I
NEXT I
? "В вашей телеграмме — "; K+l; "слов"

Программа работает очень просто. Она определяет длину текста в символах и заносит это число в переменную N. Затем устанавливает счетчику пробелов к нулевое значение. После чего, в цикле вырезает из текста последовательно по одному символу и проверяет, а не является ли он пробелом. Если это так, то увеличивает счетчик пробелов к на единицу, а если нет — берет следующий символ. По завершении цикла в переменной к хранится количество пробелов в тексте, и мы выводим ответ о количестве слов на экран, добавляя к “K” еще единичку. Запишите решение этой задачи в тетрадь.

№ 5. Используя пример с подсчетом слов в телеграмме, напишите программу, имитирующую отделение связи с очень хорошим обслуживанием. Программа должна выяснять имя клиента и в дальнейшем обращаться к нему только по имени. Запрашивается также регион, куда посылается телеграмма. Их три — Россия (коэффициент 1), страны СНГ (стоимость одного слова умножается на 2) и дальнее зарубежье (стоимость одного слова умножается на 5). По России стоимость одного слова составляет 1 руб. 50 коп. (причем неважно, какой длины слово). Затем у клиента запрашивается текст телеграммы и денежная сумма, определяется количество слов, стоимость телеграммы. Если денег ровно столько, сколько надо, его благодарят и прощаются. Если больше, чем надо, то ему предлагают сдачу и прощаются. Если — меньше, то просят добавить необходимую сумму, а затем, после расчета, с клиентом прощаются. А для пущей красоты я обычно прошу нарисовать окошко телеграфа, в прорезях которого и происходит диалог компьютера с пользователем (рис. 1).

Примерное решение задачи:

Screen 9
Color 4, 14
Line (75, 300)-(575, 100), 4, BF
Line (75, 100)-(325, 25), 2
Line (575, 100)-(325, 25), 2
Line (75, 100)-(575, 100), 2
PAINT (327, 75), 2
LOCATE 6, 34: Print "ТЕЛЕГРАФ
Line (100, 125)-(550, 150), 14, BF
Line (100, 175)-(550, 200), 14, BF
Line (100, 225)-(550, 250), 14, BF
LOCATE 10, 14: Print "ЗДРАВСТВУЙТЕ, КАК ВАС ЗОВУТ?"
LOCATE 10, 43: INPUT X$
LOCATE 14, 14: INPUT "ВВЕДИТЕ ПОЖАЛУЙСТА ТЕКСТ ТЕЛЕГРАММЫ"; Z$
LOCATE 17, 14: INPUT "ЗАПЛАТИТЕ ЗА ТЕЛЕГРАММУ"; Y
N = Len(Z$)
K = 0
For I = 1 To N
P$ = Mid$(Z$, I, 1)
IF P$ = " " Then K = K + 1
Next I
LOCATE 10, 14: Print "В ТЕЛЕГРАММЕ "; K + 1; " СЛОВО"
R = (K + 1) * 2
LOCATE 14, 14: Print "СТОИМОСТЬ ТЕЛЕГРАММЫ СОСТАВЛЯЕТ "; R; " РУБЛЕЙ"
IF Y = R Then: LOCATE 17, 14: Print "БЛАГОДАРИМ ВАС, ДО СВИДАНИЯ!"
IF Y > R Then: LOCATE 17, 14: Print " БЛАГОДАРИМ ВАС, ВОЗЬМИТЕ СДАЧУ"; Y - R;" РУБЛЕЙ "
IF Y < R Then: LOCATE 17, 14: Print " ДОПЛАТИТЕ ПОЖАЛУЙСТА "; R - Y; " РУБЛЕЙ"
LOCATE 17, 50: INPUT A
IF A = R - Y Then: LOCATE 17, 14: Print "БЛАГОДАРИМ ВАС, ДО СВИДАНИЯ!"

Подведение итогов урока, выставление оценок за урок.

Домашнее задание:

Основное:

  1. Примените функции asc и chr$ к примеру простейшей шифровки информации, когда символы вводятся побуквенно, а программа определяет их код, добавляет к ним 1 и
    выводит на экран вместо введенного символа символ с новым получившимся кодом. Слово для тестовой проверки такой программы — "CAT", после его побуквенного введения должно получиться "DBU".
  2. Напишите программу-дешифратор для предыдущего задания. Тестовая проверка: из слова "DBLJ" должно получиться слово "CAT". или:

Творческое:

  1. Дополните задачу «Телеграф» рисунками, орнаментом, движением геометрических фигур и т.д.
  2. Готовый проект нужно будет продемонстрировать на следующем уроке, программа должна быть записана в тетради.