Муниципальное общеобразовательное учреждение Тавринская средняя общеобразовательная школа Практическое занятие по программированию для учителей информатики на тему Задачи на преобразование строк Автор: Ярцев В. А. Тавра 2010 План: 1. О, сколько нам открытий чудных готовит … учебник информатики (Повторение): a) Числовые и строковые переменные – в чем разница? b) Три источника и три составных части … (операции со строками); Объединение строк Определение длины строки Выделение фрагмента из строки c) Таблица кодов ASCII и две обратные функции: нахождение кода символа нахождение символа по коду. 2. Стандартная задача: замена в строке одного символа на другой: 3. Задачи из учебника. а) Дана строка А$, состоящая из заглавных латинских букв. Найти B$, состоящую из маленьких латинских букв. Из CAT получить cat. б) Дана строка А$, состоящая из маленьких латинских букв. Найти B$, состоящую из заглавных латинских букв. Из cat получить CAT. 4. Олимпиадная задача. 5. Для тех, кто не работал с файлами - это не просто, а очень просто! 6. Не так страшен Basic, как его компилятор (Заключение). Теория Практика 1. а) A=123 – числовая переменная A$ = “123” – строковая переменная b) Операции со строками 1) Объединение, склеивание, конкатенация ( + ) A$=”123” B$=”45” C$=A$+B$ PRINT C$ 2) Определение длины строки (количество символов) X= LEN (“TABLE”) 3) Выделение фрагмента из строки A$=”КРОТ” B$= MID$( A$, 2, 3 ) Строка, из которой вырезаем Номер символа, с которого вырезаем В чем ошибка? B=”ДОМ” С$= 100 Что будет на экране в результате исполнения команды: PRINT “123”+ “КМ”? Что будет на экране в результате исполнения команды: PRINT LEN (“50 КМ”) Что будет на экране в результате исполнения команды: PRINT MID$ (“ПОБЕДА”, 3, 4) Количество символов с) Таблица кодов ASCII Функция ASC( A$) - дает код символа Функция CHR$ (A) – дает символ по коду X=ASC(“Z”) X$=CHR$(100) PRINT X, X$ Найдите по таблице: код символа “Z” символ, код которого 100 разность между кодами: “a” и “A” “N” и “n” “Z” и “z” Что будет на экране в результате исполнения фрагмента: 2. Стандартная задача: Замена в строке одного символа на другой: (A$ на B$) План решения: 1) Ввести строку 2) Найти длину строки 3) Цикл для каждого символа: Вырезать символ Если он равен A$, то на его место вставить B$ 4) Вывести новую строку на экран INPUT X$ X=LEN(X$) FOR I=1 TO X C$=MID$(X$, I, 1) IF C$=A$ THEN MID$(X$, I, 1)=C$ END IF NEXT I PRINT X$ END 3. Задача из учебника: а) Дана строка А$, состоящая из заглавных латинских букв. Найти B$, состоящую из маленьких латинских букв. Из CAT получить cat. План решения: INPUT A$ 1) Ввести строку A=LEN(A$) 2) Найти длину строки FOR I=1 TO A 3) Цикл для каждого символа: C$=MID$(A$, I, 1) Вырезать символ C=ASC(C$) Найти код C=C+32 Увеличить на 32 C$=CHR(C) Заменить новый код на символ MID$(A$, I, 1)=C$ Вставить новый символ в строку NEXT I PRINT A$ 4) Вывести новую строку на экран END б) Дана строка А$, состоящая из маленьких латинских букв. Найти B$, состоящую из заглавных латинских букв. Из cat получить CAT. 4. Олимпиадная задача. Решить самостоятельно План решения: 1) Ввести строку 2) Если первая буква не заглавная, поменять ее на заглавную. INPUT A$ A = ASC(MID$(A$, 1, 1)) IF A > 95 THEN A = A - 32 C$ = CHR$(A) A$ = C$ + MID$(A$,2,LEN(A$)) END IF 3) Для каждого символа, начиная со второго, 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) A$ = MID$(A$, 1, I - 1) + C$ + MID$(A$, I + 1, LEN(A$) - I) END IF NEXT 4) Вывести новую строку PRINT A$ END 5. Ввод из файла и вывод в файл OPEN "input.txt" FOR INPUT AS #1 INPUT #1, A$ CLOSE #1 Наберите в программе строки В месте ввода данных OPEN "output.txt" FOR OUTPUT AS #2 PRINT #2, A$ CLOSE #2 В месте вывода данных Для проверки работы программы нужно в той же папке, файл среды QBASIC создать файл под именем “input.txt”, открыть его, набрать данные для ввода, сохранить. Затем вернуться в среду, запустить программу на исполнение. В той же папке, программа создаст текстовый файл “output.txt”. Откройте его и убедитесь, что программа выдала верный результат. Если он не верный, найдите и исправьте ошибку. 6. Для работы с проверяющей системой олимпиадных задач, разработанной программным комитетом г. Екатеринбурга сохраненный файл с программой на QBasic открыть в программе Power Basic compiler, скомпилировать в exe-файл. Алгоритм работы с проверяющей системой – это тема другого занятия. Только для учителей информатики! Практическое занятие по программированию из серии Это вы можете (от учебника к олимпиадной задаче) Тема: Задачи на преобразование строк Кабинет №21 Учитель: Ярцев Виктор Александрович