Тема урока 1: «Символьные величины».
Цели урока: 1. Ввести понятие символьной величины, ознакомить учащихся с обозначением и особенностями символьных величин, способами их ввода и вывода. Сформировать навыки использования конкатенации при решении задач.
Развивать абстрактное и логическое мышление учащихся.
Воспитывать интерес к углубленному изучению предмета, навыки самостоятельной работы учащихся.
Тип урока: изучение нового материала.
Мотивация изучения темы.
Объяснение нового материала.
Домашнее задание.
Мотивация изучения темы.
Очень часто приходится обрабатывать текстовую информацию. Самым удобным способом обработки текстовой информации является обработка текста с помощью компьютера. Компьютер, являясь универсальным средством обработки информации, решает весьма разнообразные задачи, причем не только числового характера: от составления платежных ведомостей до верстки газет. При обработке текстов компьютер должен уметь оперировать не только числами, но и различными нецифровыми символами. Поэтому необходимо знать, какие команды нужно давать машине, чтобы она могла обрабатывать текст.
Объяснение нового материала.
Учащиеся набирают и запускают программу (она должна быть сохранена до конца урока):
INPUT “Введите ваше имя”; A$
INPUT “Введите вашу фамилию”; B$
PRINT “Здравствуй, “; A$; “ “; B$; “. Начнем урок.”
Ребята наблюдают за выполнением программы.
Вопрос. Какие новые символы (знаки) и последовательности символов встретились в данной программе?
Знак доллара “$” является отличием одного типов данных. Этот тип называется символьным, а величины, значения которых являются строки символов, — символьными. Они обозначаются буквой или буквой и цифрой с добавлением символа “$” и подразделяются на символьные переменные и символьные константы.
Символьные (строковые, текстовые) константы – это заключенные между двойными кавычками строки длиной до 255 символов, которые остаются неизменными в процессе решения задачи. Такими символами могут быть буквы, цифры, пробелы и любые другие знаки, за исключением знака кавычек. Иногда текстовые константы используются для вывода пояснительных надписей в различных операторах – PRINT, INPUT, REM.
A1$ = ”MSX-БЕЙСИК”
C$ = “2+3 =”
INPUT «Введите число»; А
…
PRINT “ОТВЕТ” ; A + 20
В последнем фрагменте строки «Введите число» и «ОТВЕТ» являются символьными константами.
Символьная переменная – это строка длиной 255 символов, но ее значение может меняться в ходе решения задачи.
INPUT “Введите число, большее 0 “; X
IF X>0 THEN C$=“ПРАВИЛЬНО“ ELSE C$= “НЕПРАВИЛЬНО”
В данном примере С$ — символьная переменная.
Ввод, присвоение и вывод символьных величин осуществляется так же, как и для числовых:
INPUT “ Как вас зовут?”; N$
NAME$ = N$
PRINT «Здравствуйте,»; NAME$
Значение символьных величин можно задавать с помощью операторов ввода READ и DATA. В операторе DATA кавычки могут быть опущены, если строка символов не содержит запятых, точек с запятой и двоеточий.
DATA понедельник, вторник, среда, четверг, пятница, суббота, воскресенье
INPUT “ Введите номер дня недели” ; X
FOR I = 1 TO 7
READ C$
IF X=I THEN PRINT “Сегодня –“ ; C$
NEXT I
Еще один способ ввода символьных данных связан с применением функции INPUT$(N), которая принимает с клавиатуры N символов и присваивает их символьной величине. Отражение символов, соответствующих нажимаемым клавишам, на экране не осуществляется. Если введено меньше символов, чем задано, функция будет ожидать дальнейшего ввода.
Если в тексте встречаются запятая или кавычки, то используется оператор LINE INPUT (сокращенно LINPUT).
Его формат:
LINE INPUT [“сообщение”;] переменная
(квадратные скобки здесь и далее указывают на необязательность данного параметра).
Оператор аналогичен оператору INPUT с одной лишь разницей, что в результате его выполнения любые символы, вводимые с клавиатуры, объединяются в одну строку. Если введена числовая величина, то она трактуется как символьная.
Рассмотрим фрагмент программы:
LINPUT “ВВЕДИТЕ ИЗМЕРЕНИЕ СКОРОСТИ В МЕТРАХ”; A$
PRINT A$
При его выполнении если введено число 55,7, то оно будет выведено на экран. При использовании же вместо оператора LINPUT в данном фрагменте INPUT будет выведено сообщение об ошибке или число 23 .
Задание 1. Найдите ошибки в записях символьных величин (если они есть) и объясните их:
A$= «информатика»
CK2 = “вычислительная техника”
D$ = компьютер
65N$ =”2+2=4”
(2)Ппропущен знак $. 3)Пропущены кавычки. 4)Неправильное имя символьной величины – цифры стоят перед буквой.)
Задание 2. Выполните предложенную в начале урока программу, вводя различные значения фамилии и имени.
Задание 3. Назовите все величины, используемые в приведенной в начале урока программе. Определите, какие из них являются символьными переменными, а какие — символьными константами.
Для символьных величин определена единственная операция – сложение, или конкатенация. Она обозначается знаком «+» и позволяет строить из двух символьных величин третью, состоящую из символов первой, за которыми следуют символы второй.
Например, если K$ = “ин”, P$ = “форма”, S$ = “тика”, то в результате сложения D$ = K$+P$+S$ будет слово «информатика»
А что получится в результате сложения P$+K$+S$?
Если в результате сложения символьных величин получится строка, большая 255 символов, лишние символы будут отброшены.
Задание 4.
А) Добавьте и измените строки раннее рассмотренной программы следующим образом:
30 C$ = A$ + “ “ + B$
40 PRINT «Здравствуй,»; C$; “. Начнем урок.”
Б) Измените строку 30, поменяв местами A#
Тема урока 2: «Функции обработки символьных величин».
Цели урока: 1. Познакомить учащихся с функциями обработки строк, научить использовать эти функции при решении задач.
Развивать абстрактное и логическое мышление учащихся.
Воспитывать интерес к углубленному изучению предмета, навыки самостоятельной работы учащихся.
Тип урока: комбинированный
Проверка домашнего задания.
Объяснение нового материала.
Решение задач.
Домашнее задание.
Проверка домашнего задания.
Ученикам предлагаются следующие вопросы:
Какие величины называются символьными?
Как они обозначаются?
Какая операция определена для символьных величин?
Каким образом вводятся и выводятся символьные величины?
Решение заданной на дом задачи в тетрадях проверяется в ходе урока,
Объяснение нового материала.
Многие функции, которые встречаются в языке Бейсик, являются составной частью языка и называются стандартными функциями. Назовите некоторые из них (ABS(X), COS(X), SIN(X), SQR(X) и т.д.) Эти функции являются числовыми и обрабатывают числовые значения.
Для работы с введенным нами новым типом – символьные величины – тоже есть свои функции. Они называются строковыми (символьными) функциями. Каждая такая функция имеет уникальное имя, по которому происходит обращение к ней. В зависимости от типа результата строковые функции делятся на функции обработки строк и функции преобразования типов данных. В Функциях обработки строк и аргументов, и результат является строками. Аргумент и результат функции преобразования типов данных, в отличие от аргумента и результата функции обработки строк, представляют собой данные разных типов.
При обработке текста часто необходимо знать его длину, т.е. количество составляющих его символов.
Задание. Подсчитайте длину символьной величины A$ = «Информатика изучает технологию сбора, хранения и переработки информации» (72)
! Обратите внимание! Считаются не только буквы, но и пробелы, знаки препинания кроме кавычек.
Трудоемкую работу по определению длины текста в Бейсике выполняет функция LEN(X$) ( от английского LENgth – длина), которая находит длину символьной величины X$. Аргументом функции LEN должна быть символьная величина. Результатом является целое число, заключенное между 0 и 255.
LEN(“SOS”) =3
LEN(“*****”)=5
LEN(“”)=0
В результате выполнения фрагмента программы
10 P$ = “ эта фраза в настоящем времени”
20 PRINT «длина =»; LEN (P$)
на экран будет выведено сообщение о длине цепочки P$, равной 29
Вопрос. Может ли быть результатом функции LEN число 325? (Нет, так как символьные величины – это строки длиной 255 символов.)
Одной из основных операций, необходимых для анализа текста, — выделение какой-либо его части. Выполнить эту операцию позволяет функция MID$ (от английского MIDdle – середина). Ее результатом являются символьные строки, поэтому имя этой функции всегда сопровождается знаком $. Функция MID$(X$,N,M) вырезает подстроку длиной в М символов из строки X$, начиная с символа с номером N. Эта функция может находится как справа, так и слева от знака равенства и в зависимости от своего положения выполняет различные действия:
Функция MID$ справа от знака равенства.
Форма:
При выполнении этой команды последовательные символы строки A$ начиная с позиции N, замещаются на первые М символов строки B$. Остальные символы в A$ остаются без изменения. [M] – необязательный параметр.
Рассмотрим фрагмент программы:
10 X$ = “1234567890”
20 INPUT Y$, N, M
30 MID$(X$, N, M) = Y$
В результате его выполнения при вводе LL, 5, 3 на экране выводится 1234LL7890. Если ввести слово КРОКОДИЛ, 7, 4, то на экране выводится строка123456КРОК.
Примечание. Такое расположение функции MID$ применяется достаточно редко.
2 Функция MID$ слева от знака равенства.
Форма:
При выполнении этой команды переменной B$ присваивается значения, представляющие собой М последовательных символов величины A$, первый из которых занимает позицию N.
MID$(“мишка”,2, 3) = «ишк»
Если М не указано или количество символов в строке справа от символа N меньше, чем М, то выдается строка с номера N до конца текста:
MID$(«паровоз», 5) = «воз»
Если значение М=0 или значение N превышает длину строки, то результатом будет пустая строка.
MID$(“ “, 2, 3) = “”
MID$(“ЭВМ”, 5, 3) = “”
10 INPUT X$, M
20 Y$ = MID$(X$, M)
30 PRINT Y$
В результате выполнения последнего фрагмента при вводе 1234567890б 5 на экран выводится 567890 (т.е. переменная Y$ принимает значение, равное 567890).
Кроме функций LEN и MID в разных версиях Бейсика имеются несколько десятков других функций.
Например: вырезка первых символов слова может осуществляться с помощью функции LEFT$(X$, N). Функция LEFT$(X$,N) вырезает подстроку длиной в М символов из строки X$, начиная с первого символа ,N. – количество вырезаемых символов.
X$ = “столица”
PRINT LEFT$(X$, 3)
В результате на экран выводится слово «сто».
Например: вырезка последних символов слова может осуществляться с помощью функции RIGHT$(X$, N). Функция RIGHT$(X$,N) вырезает подстроку длиной в М символов из строки X$, начиная с последнего символа ,N – количество вырезаемых символов.
X$ = “столица”
PRINT RIGHT$(X$, 4)
В результате на экран выводится слово «лица».
Решение задач.
Задача 1. Заменить в предложении восклицательный знак на вопросительный.
Решение.
Примечание. Задача разбирается совместно у доски, далее ученики самостоятельно набирают текст программы и осуществляют отладку программы на компьютере.
Используемые величины:
A$ -вводимый текст;
N – длина вводимого текста;
B$ — вырезаемый из текста символ;
I – номер вырезаемого символа;
C$ — текст, в котором «!» заменен «?»
Из вводимого текста A$ вырезается по одному символу B$ и проверяется условие: если B$ = “!”, то C$ = С$ + “?”, иначе C$ = C$ + B$
10 INPUT A$
20 N = LEN(A$)
30 C$ = “”
40 FOR I = 1 TO N
50 B$ = MID$(A$, I, 1)
60 IF B$ = “!” THEN C$ = C$ + “?” ELSE C$ = C$ + B$
70 NEXT I
80 PRINT C$
90 END
Вопрос. Обязательно ли использовать при решении величину N? Почему?
Задача 2. Дан текст. Определить содержит ли он символы «.»
Решение.
Примечание. Эту задачу ученики решают самостоятельно после разбора и отладки предыдущей задачи. Проверка решения проводится у доски в конце урока.
Используемые величины те же, что и в задаче 1.
Из текста A$ вырезается по одному символу B$ и проверяется условие B$ = “.”.Если оно выполняется, то просмотр заканчивается и выводится «Да», иначе просмотр продолжается; если достигнут конец текста и искомый символ не найден, выводится «Нет».
10 INPUT A$
20 N = LEN(A$)
30 FOR I = 1 TO N
40 B$ = MID$(A$, I, 1)
50 IF B$ = “.” THEN 90
60 NEXT I
70 PRINT “Нет”
80 GOTO 100
90 PRINT «Да»
100 END
Вопрос. Что изменится в решении, если нужно находить не «.», а «*», «=»?
Домашнее задание.
Задача 1. Во введенном тексте поменяйте «!» на «?» и наоборот.
Задача 2. Напишите программу, которая из слов «оболочка», «турист», «раствор», составит слово «оболтус».
Тема урока 3: «Решение задач на поиск, подсчет и удаление символов».
Цели урока: 1. Познакомить учащихся операциями для решения задач тип «поиск и подсчет», «удаление (вставка)». Научить применять известные функции и операции для решения задач.
Развивать абстрактное и логическое мышление учащихся.
Воспитывать интерес к углубленному изучению предмета, навыки самостоятельной работы учащихся.
Тип урока: комбинированный
Проверка домашнего задания.
Объяснение нового материала.
Решение задач.
Домашнее задание.
Проверка домашнего задания.
К доске вызывается ученик для объяснения решения домашней задачи. Одновременно идет фронтальный опрос.
Вопросы:
Назовите основные функции обработки строк.
Что такое длина символьной величины? Как найти ее с помощью функций языка Бейсик?
Как работает функция MID$(A$, M, N)? Что представляют собой аргументы этой функции?
Решение заданных на дом задач в тетрадях проверяется в ходе урока,
Объяснение нового материала.
Используя операции сравнения и известные функции обработки строк, можно решать задачи различного типа, например задачи на подсчет и поиск, задачи на удаление (вставку).
В условиях типа по «подсчет, поиск» присутствуют слова «найти…», «подсчитать …», при этом указывается условие, которому должны удовлетворять подсчитываемые символы (или группа символов).
Во многих задачах этого типа речь идет о выделении слова. Слово – это последовательность букв, заключенная между символами, левый из которых пробел, а правый – любой знак препинания или пробел. Одно слово от другого отделяется определенным символом (пробел, запятая, и т.д.).
Алгоритм решения задач типа «подсчет поиск»:
Ввести текст, определить его длину;
«вырезать» из текста группу символов и проверить, удовлетворяет ли она условию задачи;
если требуется только найти группу символов, удовлетворяющих заданному условию, то выдать сообщение, что символы найдены, или групп символов, удовлетворяющих такому условию нет;
если требуется подсчитать количество групп символов, удовлетворяющих заданному условию, то изменить значение счетчика;
если конец текста достигнут, то завершить работу программы.
Решение задач.
Задача 1. Введите текст и определите номе позиции первой точки, заканчивающей предложение (предполагается, что хотя бы одно из предложений заканчивается точкой).
Решение.
Используемые величины:
A$ — вводимый текст;
B$ — символ, вырезаемый из текста (текущий и стоящий справа);
E$ — символ, вырезаемый из текста (текущий и стоящий слева);
N — длина текста;
I — — номер пары символов в тексте;
B – номер первой точки.
Текст просматривается начиная со второго символа.
Поскольку возможны два случая употребления точки – точкой оканчивается предложение и точка употребляется в многоточии, то проверяются, во-первых, текущий и стоящий справа символы, если они равны «.», то эта точка в конце предложения; во-вторых, текущий и находящийся слева от точки, их комбинация не должна быть «..». Если оба условия выполняются, то, значит, первая точка найдена (B=I) и просмотр текста заканчивается.
10 INPUT A$
20 N = LEN(A$)
30 FOR I=2 TO N-1
40 B$ = MID$(A$, I, 2)
50 E$ = MID$(A$, I-1, 2)
60 IF B$ =”. “ AND E$ “. .” THEN B = I ELSE 80
70 I = N
80 NEXT I
90 PRINT B
100 END
В задачах на удаление и вставку происходит «сжатие» или «расширение» группы символов. В условиях задач этого типа присутствуют слова «вставить», «заменить», «удалить», а также указывается, какие символы вставить или удалить, в соответствии с каким условием заменить одни символы на другие.
Алгоритм решения задач на удаление и вставку:
Ввести текст, определить его длину;
Найти нужный символ или номер его позиции;
Выполнить указанное в задаче действие;
Если конец текста не достигнут, то перейти к нахождению следующей нужной позиции, иначе – вывести результат и завершить работу.
Чтобы «сжать» исходный текст T$, удалив из него цепочку символов от (I+1)-го до (I+N)-го, нужно «переслать» посимвольно текст T$ в новую символьную переменную G$ от начала до I-го символа и от (I+N+1)-го символа до конца, используя операцию конкатенации
G$ = MID$(T$, 1, I) = MID$(T$, I+N+1, M),
где М – длина исходного текста.
Чтобы «раздвинуть» текст T$, вставив последовательность символов V$ между I-м и (I+1) –м символами исходного текста, нужно текст T$ переслать посимвольно от начала до I-го символа и от (I+1)-го символа до конца в новую символьную переменную G$, вставив между ними требуемую цепочку символов V$, используя операцию конкатенации.
G$ = MID$(T$, 1, I) + V$ + MID$(T$, I + 1, M).
Задача 2. Из данного текста удалите его часть, заключенную в скобки (вместе со скобками). Учтите, что таких частей в тексте может быть несколько. Предполагается, что в удаленном тексте внутренних скобок нет.
Решение.
Используемые величины:
A$ — вводимый текст;
B$ — вырезаемый символ;
С$ — выводимый символ;
N — длина текста;
S – количество символов в скобках, включая скобки;
I — — номер пары символов в тексте;
J – номер символа в скобках;
D$- вырезаемый из скобок символ.
Для решения задачи необходимо найти позицию символа «(«. Часть исходного текста до «(« переслать в переменную С$. Далее исходный текст просмотреть с позиции, следующей за позицией первого символа «)». Если в оставшейся части будет обнаружен символ «(«, переслать в C$ часть исходного текста между символами «)» и «(« и т.д.
10 INPUT A$
20 N = LEN(A$)
30 C$ = “”
40 FOR I=1 TO N
50 B$ = MID$(A$, I, 1)
60 IF B$ = ”(“ THEN 70 ELSE 140
70 S = 0
80 FOR J = I + 1 TO N
90 S = S + 1
100 D$ = MID$(A$, J, 1)
110 IF D$ = “)” THEN I = I + S ELSE 130
120 GOTO 150
130 NEXT J
140 C$ = C$ + B$
150 NEXT I
160 PRINT C$
170 END
Домашние задание.
Тема урока 4: «Символьные величины. Решение задач».
Цели урока: 1. Закрепить понятие символьной величины, Сформировать навыки использования конкатенации и стандартных функций при решении задач.
Развивать абстрактное и логическое мышление учащихся.
Воспитывать интерес к углубленному изучению предмета, навыки самостоятельной работы учащихся.
Тип урока: комбинированный.
Проверка домашнего задания.
Решение задач..
Домашнее задание.
Проверка домашнего задания.
К доске вызываются два ученика. Проверяются ключевые моменты в решении заданных на дом задач, обсуждаются и исправляются ошибки в решении.
Решение задач.
На пршлых уроках мы познакомились с функциями обработки символьных величин, в частности с функциями обработки строк.
Вопрос. Какие функции относятся к этому типу? Привести примеры.
С помощью рассмотренных функций приступим к решению задач.
Задача1. Выяснить, является ли заданное слово палиндромом (перевертышем).
Решение.
10 INPUT « Введите слово –“; A$
20 N = LEN(A$0
30 FOR I = 1 TO N
40 Y$ = MID$(B$, I,1) + Y$
50 NEXT I
60 PRINT Y$
70 IF A$ = Y$ THEN PRINT “ПЕРЕВЕРТЫШ” ELSE PRINT “НЕТ”
80 END
Задача 2. Определить сколько раз в данном тексте встречается некоторый текст в качестве его части.
10 INPUT “Ввести строку –“; A$
20 INPUT “Ввести подстроку –“; B$
30 N= LEN(A$) : T=0
40 C = LEN(B$0
50 FOR I = 1 TO N-(C-1)
60 IF MID$(A$, I, C) = B$ THEN T = T+1
70 NEXT I
80 PRINT T
90 END
Задача 3. В данном тексте оставить без изменения каждый третий символ, все остальные заменить на символ «-« (Например: слово «компьютер» заменится на слово «—м—ю—р»
Решение.
10 INPUT A$
20 FOR I = 1 TO LEN(A$)
30 IF I/3I3 THEN MID$(A$, I, 1) = “-“
40 NEXT I
50 PRINT A$
60 END
Задача 4. Дано слово. Переставить в этом слове первую и последнюю буквы.
10 INPUT “Введите слово – “; A$
20 N= LEN(A$)
30 B$ = MID$(A$, N, 1) + MID$(A$, 2, N-2) + MID$(A$, 1, 1)
40 PRINT B$
50 END
Измените программу так, чтобы она меняла местами первую и вторую буквы.
30 B$ = MID$(A$, 2, 1) + MID$(A$, 1, 1) + MID$(A$, 3, N-2)
Домашнее задание.
Задача 1. Задана текстовая строка. Подсчитать отдельно буквы «а» и «о».
10 INPUT A$
20 A=0: B=0
30 FOR I = 1 TO LEN(A$)
40 IF MID$(A$, I, 1) = “a” THEN A = A + 1
50 IF MID$(A$, I, 1) =”b” THEN B = B + 1
60 NEXT I
70 PRINT A
80 PRINT B
90 END
Задача 2. Даны два слова одинаковой длины (например «пушка», «кошка»). Составить и напечатать переменную, в которой буквы этих слов сцепляются друг с другом поочередно. (С$ = «пкуошшккаа» ).
Решение.
10 INPUT A$, B$
20 N = LEN(A$): C$ = “ “
30 FOR I =1 TO N
40 C$ =C$ + MID$(A$, I, 1) + MID$(B$, I, 1)
50 NEXT
60 PRINT C$
70 END
Тема урока 5: «Символьные величины. Решение задач».
Цели урока: 1. Закрепить понятие символьной величины, Сформировать навыки использования конкатенации и стандартных функций при решении задач.
2. Развивать абстрактное и логическое мышление учащихся.
3. Воспитывать интерес к углубленному изучению предмета, навыки самостоятельной работы учащихся.
Тип урока: комбинированный.
Проверка домашнего задания.
Решение задач..
Домашнее задание.
Проверка домашнего задания.
К доске вызываются два ученика. Проверяются ключевые моменты в решении заданных на дом задач, обсуждаются и исправляются ошибки в решении.
Решение задач.
На прошлых уроках мы познакомились с функциями обработки символьных величин, в частности с функциями обработки строк.
Вопрос. Какие функции относятся к этому типу? Привести примеры.
С помощью рассмотренных функций приступим к решению задач.
Задача1. Заданы два слова. Составить новое слово, в котором две последние буквы из первого слова и две первые буквы из второго слова.
Решение.
10 INPUT « Введите слова–“; A$, B$
20 N = LEN(A$)
30 M= LEN(B$)
40 Y$ = MID$(B$, 1,2) + MID$(A$, N-1, 2)
60 PRINT Y$
70 END
Задача 2. Составить программу для замены в данном тексте слова «детектив» на слово «роман».
10 INPUT “Ввести текст –“; A$
20 N= LEN(A$)
30 IF MID$(A$, I, 8)=“детектив” THEN MID$(A$, I, 8)=“роман…“
40 NEXT I
50 PRINT A$
60 END
Задача 3. Задана текстовая строка, в которой есть точки. Подсчитать сколько символов до первой точки.
Решение.
10 INPUT A$
20 N=LEN(A$)
30 S=0
40 FOR I =1 TO NNEXT I
50 IF MID$(A$, I, 1) “.” THEN S = S+1 ELSE I=N
60 NEXT
70 PRINT S
80 END
Как подсчитать сколько символов после точки
…
50 IF MID$(A$, I, 1) “.” THEN S = S+1 ELSE I=1
60 NEXT I
70 PRINT N –S – 1
80 END
Домашнее задание.
Задача 1. Прдсчитать количество слогов в слове.
10 INPUT «Введите слово –« ; A$
20 K=0
30 B$ =”аоеиуяюыэ”
40 FOR I = 1 TO LEN(A$)
50 FOR J= 1 TO 9
60 IF MID$(A$, I, 1) = MID$(B$, J,1) THEN K=K+1
70 NEXT J
80 NEXT I
90 PRINT K
100 END
Задача 2. Подсчитать сколько слов в заданной строке оканчивается буквой «я», если известно, что после слова обязательно стоит пробел, либо точка..
Решение.
10 INPUT A$
20 N = LEN(A$): k=0
30 FOR I =1 TO N
40 X$ =MID$(A$, I, 2)
50 IF X$ = “я “ OR X$=”я.” THEN K=K+1
60 NEXT I
60 PRINT K
70 END
Тема урока 6: «Массивы символов».
Цели урока: 1. Сформировать и закрепить навыки использования массивов при решении задач с символьными величинами.
Развивать абстрактное и логическое мышление учащихся.
Воспитывать интерес к углубленному изучению предмета, навыки самостоятельной работы учащихся.
Тип урока: комбинированный.
Проверка домашнего задания.
Объяснение нового материала.
Решение задач.
Домашнее задание.
Проверка домашнего задания.
Вопросы:
Какие стандартные функции определены для символьных переменных?
Как осуществляется склеивание двух символьных констант?
Что называется массивом? (Массив – это упорядоченная последовательность величин одного типа – элементов массива, идентифицированных одним именем и отличающихся друг от друга номером, который указывает положение элемента в массиве.)
Перечислить характеристики массива. (Имя, размерность и размер.
Как задается имя массива? (Имя массива задается так же как и имя переменной.)
Что такое размер и размерность массива? (Размер – количество элементов массива; размерность – количество измерений.)
С помощью какого оператора выполняется описание массива? (Оператор DIM)
Объяснение нового материала.
Кроме символьных величин в Бейсике могут использоваться символьные массивы, элементами которых являются группы символов. Символьный массив отличается от числового только значением входящих в него элементов: числовой массив в качестве элементов имеет числовые выражения, символьный –символьные. Признаком символьного массива служит знак $ после имени массива. Это есть четвертая характеристика массива, определяющая его тип (числовой или символьный).
Примером одномерного массива служит список класса, где фамилия и имя ученика – элементы массива, а размер массива – число учеников в классе.
Прежде чем использовать любой массив, его нужно описать с помощью оператора DIM, который выполняет две основные функции: определяет число элементов и конкретизирует тип данных элементов массива.
При выполнении оператора DIM в памяти компьютера резервируется пространство для элементов массива и всем элементам строкового массива присваиваются пустые строки.
Ввод и вывод элементов символьного массива осуществляется аналогично вводу и выводу элементов числового массива.
5 DIM C$(6)
10 DATA A, B, C, D, F, E
20 FOR I = 1 TO 6
30 READ A$
40 C$(I) = A$
50 NEXT I
10 INPUT A$
20 N = LEN(A$)
30 DIM C$(N)
40 FOR I = 1 TO N
50 C$(I) = MID$(A$, I, 1)
60 NEXT I
70 FOR I = 1 TO N
80 PRINT C$(I) “ “;
90 NEXT I
Разберите данные примеры.
Решение задач.
Массивы символов при решении задач эффективно используются тогда, когда результаты вычисления или промежуточные переменные, содержащиеся в нескольких ячейках памяти, должны быть сохранены и несут одинаковую «логическую функцию». Эти ячейки могут быть сгруппированы под одним именем и образуют массив. Каждый раз когда необходимо работать с массивом констант, т.е. с неизменяемыми данными, целесообразно применять оператор DATA/ READ.
Задача 1. Заполните одномерный массив только гласными буквами из введенного текста.
Решение.
Примечание. Задача разбирается совместно у доски, далее ученики самостоятельно набирают текст программы и осуществляют отладку программы на компьютере.
Используемые величины:
B$ — вводимый текст;
I – номер гласной буквы;
J – номер вырезаемого символа;
A$ -элемент массива гласных букв;
K$ — вырезаемый символ;
S$ — текст из гласных букв
T – длина текста из гласных букв;
C$ — гласная буква из массива.
Формируется массив из всех гласных букв алфавита. Вводится и посимвольно рассматривается текст. Если вырезаемый символ – гласная буква, то он пересылается в переменную S$. Полученный текст «разрезается» на символы, заносится в ячейки массива C$ и выводится на экран.
10 DIM A$(9)
20 DATA А, О, Е, И, Э, Я, Ы, Ю, У
30 FOR I = 1 TO 9
40 READ A$ (I)
50 NEXT I
55 S$ = “”
60 INPUT «ВВЕДИТЕ ТЕКСТ»; B$
70 FOR J = 1 TO LEN(B$)
80 K$ = MID$(B$, J, 1)
90 FOR I = 1 TO 9
100 IF K$A$(I) THEN 120 ELSE S$ = S$ + K$
120 NEXT I
130 NEXT J
140 T = LEN(S$)
150 DIM C$(T)
160 FOR I =1 TO T
170 C$(I) = MID$(S$, I, 1)
180 PRINT C$(I)
190 NEXT I
200 END
Домашнее задание.