План-конспект
урока информатики в 11 классе
Тема
урока: «Функции символьных величин».
Цель урока: 1.Познакомить учащихся с функциями обработки строк, научить
использовать эти функции при решении задач.
2.Развивать умения выделять главное в изученном материале,
сравнивать, обобщать, логически излагать свои мысли.
3. Привить интерес к предмету информатики через прикладные
программы.
Тип урока: комбинированный
План урока.
1. Актуализация
знаний.
2. Объяснение
нового материала.
3. Решение
задач.
4. Домашнее
задание.
Проверка домашнего задания
ученикам предлагаются следующие вопросы:
1) Какие
величины называются символьными?
2) Как
обозначаются символьные переменные?
) Как
записываются символьные константы ?
4) Какая
операция определена для символьных величин?
5) Какие
операторы используют для ввода и вывода символьных величин?
6) Найдите
ошибки в записях символьных величин (если они есть):
А) A$= «информатика»
Б) CK2= «вычислительная техника»
В) D$ = компьютер
Г) 64N$ = «algorithm»
7) Если в результате сложения символьных величин получится
строка, большая 255 символов, лишние символы будут?
Решение заданной на дом задачи в тетрадях проверяется в ходе урока.
1. Актуализация знаний
Многие функции, которые встречаются в языке Бейсик,
являются составной
Частью языка и называются стандартными функциями. Назовите некоторые из них (ABS(X), COS(X), SIN(X), SQR(X)
и т. д.) Эти функции являются числовыми и обрабатывают числовые значения.
Для работы с введёнными нами новым типом – символьные величины
– тоже есть свои функции. Они называются строковыми (символьными) функциями. Каждая такая
функция имеет уникальное имя, по которому происходит обращение к ней. В
зависимости от типа результата строковые функции делятся на функции обработки
строк и функции преобразования типов данных. В функциях обработки строк
и аргумент, и результат являются троками. Аргумент и результат функции преобразования типов данных, в отличие от
аргумента и результата функции обработки строк, представляют собой данные
разных типов.
Примечание На данном
уроке основное внимание уделяется знакомству с функциями обработки строк ( хотя
рассмотрены и функции преобразования типов данных) . В зависимости от уровня
подготовки класса может быть рассмотрено различное число таких функций
.
2. Объяснение нового материала
При обработке текста часто необходимо знать его длину, т. е
количество составляющих его символов.
Задание. Подсчитайте длину символьной величины A$ =”
Информатика изучает технологию сбора, хранения и переработки информации.”
Обратите внимание!
Считаются не только буквы, но и пробелы, знаки
препинания, кроме кавычек.
Трудоёмкую работу по определению длины текста в Бейсике
выполняет функция LEN(X$) ( от анг. LENgth – длина), которая находит длину символьной величины X$. Аргументом функции LEN должна быть символьная
величина. Результатом является целое число, заключённое между 0 и 255.
LEN ( “SOS”) = 3
LEN (“ ***** “ ) = 5
LEN (“ ”) = 0
В результате выполнения фрагмента программы
P$ = “ эта фраза в настоящем времени “
PRINT “ длина = “; LEN(P$)
На экран будет выведено сообщение о длине цепочки P$, равной 29.
Вопрос. Может ли быть результатом функции LEN число 325 ?
.( Нет, так как символьные величины – это строки длиной до 255 символов)
Одна из основных операций, необходимая для анализа текста, -
выделение какой-либо его части. Выполнить эту операцию позволяет функция MID$ ( от англ. MIDdle – середина). Её
результатом является символьные строки, поэтому имя этой функции всегда сопровождается
знаком $ . Функция MID$(X$,N,M) вырезает подстроку длиной в M символов из строки X$, начиная с
символа с номером N. Эта функция может находится, как
справа , так и слева от знака равенства и в зависимости от своего положения
выполнять различные действия:
1. Функция
MID$ справа от знака равенства.
Формат:
MID$ ( A$, N , [ M ] ) = B$
При выполнении этой команды последовательные символы строки A$ начиная с позиции N замещаются на первые M символов строки B$. Остальные символы
в A$ остаются без изменения . [M] –
необязательный параметр.
Рассмотрим фрагмент программы:
X$ = “ 123456789”
INPUT Y$, N, M
MID$ ( X$, N, M ) = Y$
PRINT X$
В результате его выполнения при вводе LL,
5,3 на экран выводится 1234LL7890. Если ввести КРОКОДИЛ,
7,4 то на экран выводится строка 123456КРОК.
Примечание. Такое расположение функции MID$ применяется достаточно редко.
Функция MID$
слева от знака равенства.
Формат:
B$ = MID ( A$, N, [ M ] )
При выполнение этой команды, переменной B$
присваивается значение, представляющее собой M
последовательных символов величины A$? Первый из
которых ,занимает позицию N
MID$( “мишка”, 2 , 3 ) = “ ишк “
Если M не указано или
количество символов в строке справа от символов N
меньше, чем M, то выделяется строка с номером N до конца текста:
MID ( “ паровоз “, 5 ) = “ воз”
Если значение M равно 0 или значение N превышает длину строки, то результатом будет пустая строка.
А) MID$ ( “ “, 2, 3 ) = “ ‘
Б) MID$ ( “ ЭВМ”, 5, 3 ) = “ “
В) INPUT X$, M
Y$ = MID$( X$, M )
PRINT Y$
В результате выполнения последнего фрагмента при вводе
1234567890, 5 на экран выводится 567890 ( т.е переменная Y$ принимает значение, равное 567890).
Кроме функций LEN и MID в разных версиях Бейсика имеются несколько
десятков других функций, две основные из которых STRING$( N,M) и INSTR( N, X$, Y$ ).
Функция STRING( N, M ) создаёт строку из N одинаковых символов,
равных первому символу строки X$ .
STRING $( 20, “ * ” )= “********************”
STRING $( 5, “ ПРИВЕТ” ) = “ППППП”
STRING $( 4,61 ) = “ ----“
STRING $(0, “B” ) = “ “
STRING $( N, “ “ ) более просто
записывается как SPACE$(N) (
англ. SPACE – пробел ) и изображает N
пробелов. Данная функция может быть полезна при построении диаграмм в
текстовом режиме.
Функция INSTR ( [N
], X$, Y$ ) ( от англ. Inspect
STRing – просмотреть строку ) производит поиск первого вхождения
подстроки Y$ в строку X$
начиная с N –го символа строки X$ .
Если не задано, поиск выполняется с первого символа. Значением функции является
целое число – номер позиции начала вхождения ( 0 – если строка не
найдена, N – если Y$ пустая ).
INSTR ( 3, “ Иван Иванович “, “ Иван “) =8
INSTR ( “ Иванов Иван Иванович “, “ Иван “ ) =1
4 Решение задач
Задача 1. Замените в предложении восклицательный знак на вопросительный.
Решение.
Примечание. Задача
разбирается совместно у доски, далее ученики самостоятельно осуществляют
просмотр программы на компьютере.
Используемые величины:
A$ -вводимый текст;
N - длина вводимого текста;
B$ - вырезаемый из текста символ;
I - номер вырезаемого символа;
C$ - текст, в котором «!» заменён «?».
Из вводимого текста A$ вырезается
по одному символу B$ и проверяется условие: если B$ = “!”, то C$ =C$ + “?”
, иначе C$ = C$ + B$.
INPUT A$
N = LEN ( A$ )
C$ = “”
FOR I = 1 TO N
B$ = MID ( A$, I, 1 )
IF B$ = “ ! “ THEN C$ = C$ + “?”
ELSE C$ = C$ + B$
NEXT I
PRINT C$
END
Вопрос. Обязательно ли использовать при решении величину N? Почему ?
Задача 2 . Дан текст. Определить содержит ли он символы «*».
Решение.
Примечание. Эту
задачу ученики решают самостоятельно после просмотра задачи №1 в TurboBASIC и, используя алгоритм задачи №1 решают и отлаживают задачу
№2.
Используемые величины те же, что и в задаче 1.
Из текста A$ вырезается по одному
символу B$ и проверяется условие B$ = “*” . Если оно выполняется, то просмотр заканчивается и
выводится «ДА», иначе просмотр продолжается; если достигнут конец текста
и искомый символ не найден, выводится «НЕТ».
INPUT A$
N = LEN ( A$ )
FOR I = 1 TO N
B$ = MID$ ( A$ , I , 1 )
IF B$ = “ * “ THEN PRINT “ДА”
ELSE PRINT “НЕТ”
NEXT I
END
Вопрос. Что изменится в решении, если находить нужно не «*» , а
«**» ? «+++» ?
Для самостоятельного решения
предлагаются следующие задачи:
1. Написать
программу, выдающую номер позиции заданной строки, в которой в пятый раз
встречается буква «w», и соответствующее сообщение, если эта буква встречается в строке менее
5 раз.
PRINT “Определение номера
позиции, в которой встречается пятая буква w”
INPUT “Введите строку :”;S$
K=0
J=LEN(S$)
FOR I=1 TO J
IF MID$(S$, I, 1 )=”w’ THEN K=K+1
IF K=5 THEN 1
NEXT I
PRINT “В данной строке
буква w встречается меньше пяти
раз “
1
PRINT “Пятая буква w встречается в “; I ; “-й позиции”
END
2. Написать программу
получения из заданной строки новой строки путём удаления всех символов «*» и
повторения каждого символа, отличного от «*», дважды.
PRINT “ Получение строки без
звёздочек “
INPUT “Введите
строку:”; S$
H$=” “
FOR I=1 TO LEN(S$)
IF MID$(S$, I, 1 )<> “*”
THEN H$=H$+MID$(S$, I, 1 ) + MID$(S$, I, 1 )
NEXT I
PRINT H$
END
3.
Написать программу подсчёта в заданной строке отдельно количества
символов «a» , «b».
PRINT “Подсчёт количества
символов a и b в строке”
INPUT “Введите строку:”; S$
A=0
: B=0
J= LEN(S$)
FOR
I=1 TO J
IF
MID$(S$, I, 1 )= “a “ THEN
A=A+1
IF
MID$(S$, I, 1 )= “b “ THEN B=B+1
NEXT I
PRINT “Буква a встречается в строке “; A ; “ раз(а)”
PRINT “Буква b встречается в строке “; B ; “ раз(а)”
END
4.
Написать программу получения из заданной строки новой строки путём замены всех
символов «1», «а».
PRINT “Замена в строке цифры 1 на букву а “
INPUT “Введите строку: “; S$
H$=” “
FOR I=1 TO LEN(S$)
X$= MID$(S$, I, 1 )
IF
X$=”1” THEN H$=H$+ “ a “
ELSE H$=H$ + X$
NEXT I
PRINT H$
END
Домашнее задание
Задача
№1. Написать
программу, проверяющую является ли заданное слово
палиндромом ( казак, шалаш, мадам).
PRINT “Проверка на палиндром”
INPUT “Введите слово, состоящее из прописных
букв:”; S$
L=LEN(S$)
M=INT (L/2)
FOR I=1 TO M
K$=MID$(S$, I,
1 )
D$=MID$(S$,
L-I+1, 1)
IF
K$<>D$ THEN N$= “не” GOTO 1
NEXT I
N$=” “
1
PRINT “Слово”; S$; “-“; N$; “ палиндром”
END
•
Задача №2. Написать программу, которая
печатает буквы заданного слова в обратном порядке.
PRINT “Печать букв слова в обратном порядке”
INPUT “Введите слово:”; S$
C=LEN(S$)
FOR
R=C TO 1 STEP -1
PRINT MID$(
S$,R, 1) ;
NEXT R
END
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.