Главная / Информатика / «Преобразование строк на языке QBasic (от учебника к олимпиадной задаче)»

«Преобразование строк на языке QBasic (от учебника к олимпиадной задаче)»

Документы в архиве:

217 КБ 2-2-5-13.doc

Название документа 2-2-5-13.doc

www.metod-kopilka.ru

Автор:

Ярцев Виктор Александрович

МОУ Тавринская СОШ Красноуфимского района Свердловской области

Учитель информатики высшей категории

e-mail: 143115@mail.ru



Пояснительная записка


Являясь руководителем районного методобъединения учителей информатики, имею отношение к составлению задач школьного тура олимпиады по информатике, проведению и проверке заданий муниципального тура. Приходится констатировать такой факт: олимпиадные задачи даже школьного тура вызывают затруднение у учащихся, а муниципального – и у преподавателей. Как следствие – на тур муниципальной олимпиады приезжают представители 2-3 школ (из 20), а баллы набирают только ученики одной школы. Чтобы как-то изменить эту ситуацию, я провел несколько практических занятий по программированию с учителями. Одно из них - на тему «Задачи на преобразование строк».

Цель данной разработки – показать, что знаний, полученных из учебника информатики вполне достаточно для решения пусть и не сложных, но все-таки олимпиадных задач. Кроме того, при разборе задач авторы обычно всегда приводят только идеи решения, идеи тестов, и практически никогда – примеры программ на конкретных языках программирования. А именно тексты программ обычно просят привести коллеги. Работу можно вести в двух вариантах – чередуя теорию с практикой, или рассмотреть вначале все теоретические сведения и рассуждения, а потом выполнить все практические задания. Материал может быть использован как на уроках, так и на занятиях кружка или элективного курса.


Преобразование строк на языке QBasic

(от учебника к олимпиадной задаче)


План:


  1. О, сколько нам открытий чудных готовит … учебник информатики

(Повторение):

  1. Числовые и строковые переменные – в чем разница?

  2. Три источника и три составных части … (операции со строками);

    • Объединение строк

    • Определение длины строки

    • Выделение фрагмента из строки

  3. Таблица кодов ASCII и две обратные функции:

  • нахождение кода символа

  • нахождение символа по коду.

  1. Стандартная задача:

    • замена в строке одного символа на другой:


  1. Две задачи из учебника.


  1. Олимпиадная задача.





Теория

Практика

1.

а) Чтобы отличить строковую переменную от числовой, в QBasic используют суффикс $, а значение ставят в кавычки.

То есть, А=123 – числовая переменная

A$ = “123” – строковая переменная











b) Операции со строками

1) Объединение (склеивание, конкатенация) обозначается знаком + .

Пример:

A$=”123”

B$=”45”

C$=A$+B$

PRINT C$

Результат: 12345, а не 168!


2) Определение длины строки

(количество символов) LEN (A$)

X= LEN (“TABLE”)

PRINT X

Результат: 5


3) Выделение фрагмента из строки

A$=”КРОТ”

hello_html_44fd8a68.gifhello_html_m30ee947.gifhello_html_1261651d.gifB$= MID$( A$, 2, 3 )

PRINT B$

Количество символов

Результат: РОТ

Строка, из

которой

вырезаем


Номер символа,

с которого начинаем вырезать








с) Таблица кодов ASCII имеется в учебнике (1), стр. 472.








Функция ASC( A$) - возвращает код символа

Функция CHR$ (A) – возвращает символ по коду








2. Стандартная задача:

Заменить в строке X$ один символ на другой

(A$ на B$).

Кроме знания операторов ввода, вывода, присваивания, потребуется использование ветвления и повторения с параметром.

План решения:

  1. Ввести строку X$, символы A$,B$.

  2. Найти длину строки X$

  3. Для каждого символа строки X$:

    • Вырезать символ c номером I, присвоить переменной C$

    • Если он равен A$, то на его место вставить B$, если нет, перейти к другому символу.


4) Вывести новую строку на экран



Тест:

Ввод: СОМ, М, Р.

Вывод: СОР.





3. Задача №1 (b) из учебника (1), стр. 344:

а) Дана строка А$, состоящая из заглавных латинских букв. Найти B$, состоящую из маленьких латинских букв. Из CAT получить cat.

План решения:

  1. Ввести строку

  2. Найти длину строки

  3. Для каждого символа:

  • Вырезать символ с номером I, присвоить переменной С$

  • Найти код символа С$, присвоить переменной С

  • Увеличить значение на 32 (разница видна из таблицы)

  • Определить по коду новый символ

  • Вставить новый символ в строку на место с номером I

4) Вывести новую строку на экран



Тест:

Ввод: САТ

Вывод: саt





б) Дана строка А$, состоящая из маленьких латинских букв. Найти B$, состоящую из заглавных латинских букв. Из cat получить CAT.














    1. Олимпиадная задача (Свердловская область, муниципальный тур олимпиады по информатике 2008-2009 года, 11 класс, задача №1)

hello_html_m73131616.gif

hello_html_383ec1cb.png




.









План решения:

  1. Ввести строку А$


  1. Найти код первой буквы, присвоить переменной A

  2. Если первая буква не заглавная (код больше 95), поменять ее на заглавную

(уменьшить код на 32,

Найти по коду новый символ – заглавную букву, вставить ее на место первой).



  1. Для каждого символа, начиная со второго, проверить: если буква заглавная, поменять ее на маленькую.








  1. Вывести новую строку


Запустить программу, протестировать на примерах.






Запустите среду QBasic, наберите строки:

B=”ДОМ”

С$= 100

Запустите программу на исполнение (F5).

Появилось сообщение об ошибке. Почему?

(Ответ: числовой переменной В присвоили строковое значение, а строковой переменной С$ - числовое. И то и другое недопустимо.)




Вопрос:

Что будет на экране в результате исполнения команды:

PRINT “123”+ “КМ”?

(Ответ: 123КМ)


Вопрос:

Что будет на экране в результате исполнения команды:

PRINT LEN (“500 КМ”)?

(Ответ: 6, т. к. пробел – тоже символ)


Вопрос:

Что будет на экране в результате исполнения команды:

PRINT MID$ (“ПОБЕДА”, 3, 4)?

(Ответ: БЕДА)




Найдите по таблице:

  • код символа “Z” (90)

  • символ, код которого 100 (d)

  • разность между кодами:

a” и “A” (32)

N” и “n” (32)

Z” и “z” (32)


Вопрос:

Что будет на экране в результате исполнения фрагмента:

X=ASC(“Z”)

X$=CHR$(100)

PRINT X, X$

(Ответ: 90, d)











INPUT X$, A$, B$

X=LEN(X$)

FOR I=1 TO X

C$=MID$(X$, I, 1)



IF C$=A$ THEN

MID$(X$, I, 1)=В$

END IF

NEXT I


PRINT X$

END


F5


Запустить программу

Э

Enter

кран:

? СОМ, М, Р

СОР








INPUT A$

A=LEN(A$)

FOR I=1 TO A

C$=MID$(A$, I, 1)


C=ASC(C$)


C=C+32


C$=CHR$(C)

MID$(A$, I, 1)=C$


NEXT I

PRINT A$

END

F5


Запустить программу

Э

Enter

кран:

? САТ

cat





Решить самостоятельно.

Единственное отличие – найденный код вырезанного символа нужно не увеличивать на 32, а уменьшать.































INPUT A$


A = ASC(MID$(A$, 1, 1))


IF A > 95 THEN

A = A - 32

C$ = CHR$(A)

MID$(A$,1,1)=C$

END IF


FOR I = 2 TO LEN(A$)

C$ = MID$(A$, I, 1)

IF ASC(C$) < 96 THEN

C = ASC(C$)

C = C + 32

C$ = CHR$(C)

MID$(A$, I, 1)=C$

END IF

NEXT


PRINT A$

END




Литература:

1. Культура информационной деятельности: Учебное пособие для основной школы (8 класс). /В. В. Мачульский, А. Г. Гейн, В. И. Кадочникова, Е. А. Гвоздева, В. И. Жильцова, В. Г. Мещерякова, А. Г. мачульская, Т. В. Шпота. – Екатеринбург: Центр «Учебная книга»; Смоленск: Изд-во «Ассоциация XXI век», - 480 с.



«Преобразование строк на языке QBasic (от учебника к олимпиадной задаче)»
  • Информатика
Описание:


Пояснительная записка

Являясь руководителем районного методобъединения учителей информатики, имею отношение к составлению задач школьного тура олимпиады по информатике, проведению и проверке заданий муниципального тура. Приходится констатировать такой факт: олимпиадные задачи даже школьного тура вызывают затруднение у учащихся, а муниципального – и у преподавателей. Как следствие – на тур муниципальной олимпиады приезжают представители 2-3 школ (из 20), а баллы набирают только ученики одной школы. Чтобы как-то изменить эту ситуацию, я провел несколько практических занятий по программированию с учителями. Одно из них - на тему «Задачи на преобразование строк».
Цель данной разработки – показать, что знаний, полученных из учебника информатики вполне достаточно для решения пусть и не сложных, но все-таки олимпиадных задач. Кроме того, при разборе задач авторы обычно всегда приводят только идеи решения, идеи тестов, и практически никогда – примеры программ на конкретных языках программирования. А именно тексты программ обычно просят привести коллеги. Работу можно вести в двух вариантах – чередуя теорию с практикой, или рассмотреть вначале все теоретические сведения и рассуждения, а потом выполнить все практические задания. Материал может быть использован как на уроках, так и на занятиях кружка или элективного курса.

Преобразование строк на языке QBasic
(от учебника к олимпиадной задаче)

План:

  • О, сколько нам открытий чудных готовит … учебник информатики

(Повторение):

  • Числовые и строковые переменные – в чем разница?
  • Три источника и три составных части … (операции со строками);
    • Объединение строк
    • Определение длины строки
    • Выделение фрагмента из строки
  • Таблица кодов ASCII и две обратные функции:
  • нахождение кода символа
  • нахождение символа по коду.
  • Стандартная задача:
    • замена в строке одного символа на другой:
  • Две задачи из учебника.
  • Олимпиадная задача.


Литература:

Культура информационной деятельности: Учебное пособие для основной школы (8 класс). /В. В. Мачульский, А. Г. Гейн, В. И. Кадочникова, Е. А. Гвоздева, В. И. Жильцова, В. Г. Мещерякова, А. Г. Мачульская, Т. В. Шпота. – Екатеринбург: Центр «Учебная книга»; Смоленск: Изд-во «Ассоциация XXI век», - 480 с.

Автор Ярцев Виктор Александрович
Дата добавления 20.07.2010
Раздел Информатика
Подраздел
Просмотров 1402
Номер материала 543
Скачать свидетельство о публикации

Оставьте свой комментарий:

Введите символы, которые изображены на картинке:

Получить новый код
* Обязательные для заполнения.


Комментарии:

↓ Показать еще коментарии ↓