ФУНКЦИИ СИМВОЛЬНЫХ ВЕЛИЧИН,Латышев Иван Васильевич

Материал из Wiki 54
Перейти к: навигация, поиск

Автор проекта

Латышев Иван Васильевич


Название проекта

«Функции символьных величин».

Цели проекта:

1.Познакомить учащихся с функциями обработки строк, научить использовать эти функции при решении задач.

2.Развивать умения выделять главное в изученном материале, сравнивать, обобщать, логически излагать свои мысли.

3. Привить интерес к предмету информатики через прикладные программы.

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

•тестовая оболочка «Аист»;

•Qbasic;

•тест «Символьные величины».

План проекта

1.Проверка домашнего задания.

2.Актуализация знаний.

3.Объяснение нового материала.

4.Решение задач.

5.Домашнее задание.

Проверка домашнего задания

Используя возможности тестовой оболочки «Аист»,ученикам предлагаются следующие вопросы:

1) Какие величины называются символьными?

2) Как обозначаются символьные переменные?

3) Как записываются символьные константы ?

4) Какая операция определена для символьных величин?

5) Какие операторы используют для ввода и вывода символьных величин?

6) Найдите ошибки в записях символьных величин (если они есть):

А) A$= «информатика»

Б) CK2= «вычислительня техника»

В) D$ = компьютер

Г) 64N$ = «algorithm»

7) Если в результате сложения символьных величин получится строка, большая 255 символов, лишние символы будут_________?

Решение заданной на дом задачи в тетрадях проверяется в ходе урока.

  1. Актуализация знаний

Многие функции, которые встречаются в языке Бейсик, являются составной частью языка и называются стандартными функциями. Назовите некоторые из них (ABS(X), COS(X), SIN(X), SQR(X) и т. д.) Эти функции являются числовыми и обрабатывают числовые значения.

Для работы с введёнными нами новым типом – символьные величины – тоже есть свои функции. Они называются строковыми (символьными) функциями. Каждая такая функция имеет уникальное имя, по которому происходит обращение к ней. В зависимости от типа результата строковые функции делятся на функции обработки строк и функции преобразования типов данных. В функциях обработки строк и аргумент, и результат являются троками. Аргумент и результат функции преобразования типов данных, в отличие от аргумента и результата функции обработки строк, представляют собой данные разных типов.

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

  1. Объяснение нового материала

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

Задание. Подсчитайте длину символьной величины 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$ применяется достаточно редко.

2. Функция 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

  1. Решение задач

Задача 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 в GBASIC и, используя алгоритм задачи №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

Вопрос . Что изменится в решении, если находить нужно не «*» , а «**» ? «+++» ?

Для самостоятельного решения предлагаются следующие задачи:

*Написать программу, выдающую номер позиции заданной строки, в которой в пятый раз встречается буква «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

*Написать программу получения из заданой строки новой строки путём удаления всех символов «*» и повторения каждого символа, отличного от «*», дважды.

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

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

Задача №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

вводная презинтация

функции символьных велечин

Визитная карточка

визитка

Материалы по формированию и итоговому оцениванию

В начале проекта: Опрос домашнего задания

В ходе проекта: Объяснение нового материала

По окончанию проекта: Закрепление изученного

Отзывы