ДЕПАРТАМЕНТ ОБРАЗОВАНИЯ ГОРОДА МОСКВЫ ЮЖНОЕ ОКРУЖНОЕ УПРАВЛЕНИЕ ОБРАЗОВАНИЯ Государственное образовательное учреждение гимназия № 1526 УТВЕРЖДАЮ Директор Гимназия № 1526 _____________ /Т.Г. Болдина/ «___»_____________2007 г. РЕКЛАМНО-ТЕХНИЧЕСКОЕ ОПИСАНИЕ Типовые задачи на Бейсике. Символьные переменные и функции .32453246.00088-01 99 01 Листов 12 Разработчики: __________/ Габелкова Е.В./ 20.02.2007 Мм<пусто> Москва 2007 2 .32453246.00088-01 99 01 1. Функциональное назначение разработки: Данная разработка рассчитана на следующие уровни образования: основное общее образование, среднее (полное) общее образование, начальное профессиональное образование, дополнительное образование. В учебно-методическом пособии представлены 20 типовых задач по теме «Обработка текстовых переменных» и дана теоретическая часть с примерами. Учебный материал закрепляется 35 задачами для самостоятельной работы. Учебно- методическое пособие предназначено для дистанционного обучения учащихся Гимназии №1526 г. Москвы. 2. Символьные переменные и функции В числовых алгоритмах трудно обойтись без переменных, принимающих различные числовые значения. Для работы со словами тоже нужны переменные. Это такие же ящики, только хранятся в них не числа, а слова – значения символьных переменных. В Бейсике символьную переменную можно обозначить так же, как и числовую, латинской буквой или буквой и цифрой. Чтобы не путать имя числовой переменной и символьной, в конце имени символьной переменной ставится знак $ (А$, В1$). Чтобы переменная А$ получила значение ХОЛОДНО надо применить команду присваивания: А$=”ХОЛОДНО”. Текстовой константой называется последовательность символов, заключенная в кавычки. Функция Соединение слов в Бейсике обозначается знаком «+». Количество символов в строке LEN(A$) Пример В$=”радио”+”приемник” Результат Радиоприемник С$=”12”+”3” 123 LEN(“МИР”) 3 Выделение подстроки (части слова) MID$ (А$,I,K) А$ - исходная строка I – с какого символа выделять К – сколько символов выделять Е$=MID$(“КОЛЕСО”,3,3) ЛЕС 3 .32453246.00088-01 99 01 Левая часть строки LEFT$(A$,K) Правая часть строки RIGHT$(A$,K) Выделение числа из строки VAL(A$) D$=LEFT$(“КОЛЕСО”,3) КОЛ B$=RIGHT(”КОЛЕСО”,3) ЕСО VAL(“r12nm”) 12 INSTR(“КОЛЕСО”,”О”) 2 INKEY$ A Место первого вхождения подстроки в строке INSTR(A$,B$) Символ нажатой клавиши INKEY$ Машинный код символа ASC(“…”) Указание символа по коду CHR$(N) ASC(“A”) 193 CHR$(193) A Решение типовых задач по теме «Обработка символьных переменных» 1. Дана символьная фраза (Международный женский день - 8 Марта). Разбить ее на отдельные слова и вывести их на экран в столбик. Выделить числовой символ и перевести его из символьного в числовой формат. Cls a$= «Международный женский день - 8 Марта» print left$ (a$,13) print mid$ (a$,15,7) print mid$ (a$,23,4) print mid$ (a$,28,1) print mid$ (a$,30,1) print mid$ (a$,32,5) b$=mid$ (a$30,1) 4 .32453246.00088-01 99 01 print val(b$) end 2. Дана символьная фраза (Международный женский день - 8 Марта). Записать слова в фразе в обратном порядке. Cls a$= «Международный женский день - 8 Марта» print mid$ (a$,32,5)+ « »+ mid$ (a$,30,1)+ « »+ mid$ (a$,28,1)+« »+ mid$ (a$,23,4)+ « »+ mid$ (a$,15,7)+« »+ left$ (a$,13) end 3. Дана символьная фраза (Международный день - 8 Марта). Вставить слово в середину фразы по смыслу (женский). Cls a$= «Международный день - 8 Марта» print left$(a$,13)+ «женский»+ right$(a$,15) end 4. Дана символьная фраза (Международный женский день - 8 Марта). Удалить слово из середины фразы по смыслу (женский). Cls a$= «Международный женский день - 8 Марта» print left$(a$,13)+ right$(a$,15) end 5. Дана символьная фраза (Международный женский день - 8 Марта). Подсчитать количество пробелов в этой фразе. Cls a$= «Международный женский день - 8 Марта» 5 .32453246.00088-01 99 01 for i=1 to len(a$) if mid$(a$,i,1)= « » then k=k+1 next i print «В исходной фразе»;к; «пробелов» end 6. Дана произвольная символьная фраза (вводится с экрана). Подсчитать количество пробелов в этой фразе. Cls input «Введите фразу »,a$ for i=1 to len(a$) if mid$(a$,i,1)= « » then k=k+1 next i print «В исходной фразе»;к; «пробелов» end 7. Дана произвольная символьная фраза (вводится с экрана). Подсчитать количество повторений буквы «П» в этой фразе. Cls input «Введите фразу »,a$ for i=1 to len(a$) if mid$(a$,i,1)= «П» then k=k+1 next i print «В исходной фразе»;к; «повторений буквы П» end 8. Подсчитать число вхождений в текст (вводится с клавиатуры) заданного символа, вводимого с клавиатуры. Cls input «Введите фразу »,a$ 6 .32453246.00088-01 99 01 input «Введите какой символ надо искать »,b$ for i=1 to len(a$) if mid$(a$,i,1)= b$ then k=k+1 next i print «В исходной фразе»;к; «раз встречается символ»;b$ end 9. Дана произвольная символьная фраза (вводится с экрана). Запрашивается с экрана какое слово надо найти в этой фразе. Подсчитать количество повторений этого слова в этой фразе. Cls input «Введите фразу »,a$ input «Количество какое слово искать »,В$ for i=1 to len(a$) if mid$(a$,i,len(B$))= В$ then k=k+1 next i print «В исходной фразе»;к; «повторений слова »; В$ end 10. Дана произвольная символьная фраза (вводится с экрана). Разбить ее на отдельные слова и записать их в столбик. Cls input «Введите фразу »,a$ m=1 for i=1 to len(a$) if mid$(a$,i,1)= « » then dl=i-m: print mid$(a$,m,dl):m=i+1 next i end 11. Задано произвольное число (вводится с экрана). Подсчитать сумму цифр этого числа. Cls input «Введите число »,a$ 7 .32453246.00088-01 99 01 for i=1 to len(a$) b$=mid$(a$,i,1) s=s+val(b$) next i print «Сумма цифр числа равна:»;s end 12. Задано произвольное число (вводится с экрана). Подсчитать среднее арифметическое значение цифр этого числа. Cls input «Введите число »,a$ for i=1 to len(a$) b$=mid$(a$,i,1) s=s+val(b$) next i sred=sred/len(a$) print «Среднее арифметическое цифр этого числа равно:»;sred end 13. Составить программу, которая определяет счастливое или не счастливое число и выводит соответствующее сообщение на экран (число считается «счастливым», если сумма цифр первой половины числа равна сумме цифр второй половины, при этом количество цифр в числе четное) Число вводится с клавиатуры. Cls input «Введите число с четным количеством цифр»,a$ for i=1 to len(a$)/2 b$=mid$(a$,i,1) s1=s1+val(b$) next i for i=len(a$)/2 to len(a$) b$=mid$(a$,i,1) s2=s2+val(b$) 8 .32453246.00088-01 99 01 next i if s1=s2 then print «число счастливое» else print «число несчастливое» end 14. Дана произвольная символьная фраза (вводится с экрана). Подсчитать количество слов в этой фразе. Между словами только один пробел. Cls input «Введите фразу »,a$ for i=1 to len(a$) if mid$(a$,i,1)= « » then k=k+1 next i print «В исходной фразе»;к+1; «слов» end 15. Заменить в тексте, который вводится с экрана, точку на «!» Cls input «Введите фразу »,a$ for i=1 to len(a$) if mid$(a$,i,1)= «.» then mid$(a$,i,1)= «!» next i print а$ end 16. Напечатать первое и последнее слово в произвольной фразе, которая вводится с клавиатуры. Cls input «Введите фразу »,a$ 9 .32453246.00088-01 99 01 i=1 1 if mid$(a$,i,1)= « » then goto 2 i=i+1 goto 1 2 print «Первое слово:»; left$(a$,i-1) i=len(a$) 3 if mid$(a$,i,1)= « » then goto 4 i=i-1 goto3 4 n=len(a$)-i print «Последнее слово:»; right$(a$,n) end 17. Дано произвольное слово (вводится с экрана). Определить, является ли заданное слово «палиндромом» («перевертышем»). Слово считается «перевертышем», если совпадает с собой после переворачивания. 1 способ Cls input «Введите слово »,a$ k=0 dl=len(a$) for i=1 to len(a$)/2 if mid$ (a$,i,1)<> mid$ (a$,dl-i+1,1) then k=1 next i if k=0 then print «слово – палиндром» else print «слово не является палиндромом» end 2 способ Cls input «Введите слово »,a$ 10 .32453246.00088-01 99 01 for i=1 to len(a$) b$=mid$(a$,I,1)+b$ next i if a$=b$ then print “слово – палиндром” else print “слово не является палиндромом” end 18. Дана произвольная символьная фраза (вводится с экрана). Одно заданное слово (вводится с экрана) заменить на другое заданное слово (вводится с экрана) такой же длины. Cls input «Введите фразу »,a$ input «Какое слово заменить »,в$ input «На какое слово заменить (такой же длины) »,с$ dl=len (b$) for i=1 to len(a$)-dl+1 if mid$ (a$,i,dl)=b$ then mid$ (a$,i,dl)=c$ : i=i+dl next i 19. Написать программу, которая рисует линии по нажатию клавиш (П - вправо, Л – влево, В – вверх, Н – низ, С – стоп). Cls Screen 12 x=320 y=240 C$=” ” 1 if C$=”c” then goto 2 Pset (x,y),4 11 .32453246.00088-01 99 01 if C$=”л” then x=x-1 if C$=”п” then x=x+1 if C$=”в” then y=y-1 if C$=”н” then y=y+1 goto 1 2 end Задачи для самостоятельного решения 1. Из слова КОЛОНИЗАЦИЯ составить как можно больше слов. 2. Дана произвольная символьная фраза (вводится с экрана). Вывести фразу в обратном порядке (например: не надо - одан ен). 3. Дана символьная фраза (На улице светит солнце). Подсчитать количество повторений буквы «И» в этой фразе. 4. Дана произвольная символьная фраза (вводится с экрана). Подсчитать количество повторений буквы «И» в этой фразе. 5. Дана произвольная символьная фраза (вводится с экрана). Сравнить количество повторений буквы «И» и «Е» в этой фразе. 6. Дана произвольная символьная фраза (вводится с экрана). Подсчитать общее количество букв «И» и «Е» в этой фразе. 7. Дана произвольная символьная фраза (вводится с экрана). Вывести номер позиции, в которой первый раз встречается буква «Б». Если такой буквы нет, то выдать об этом сообщение. 8. Дана произвольная символьная фраза (вводится с экрана). Запрашивается с экрана какой символ надо найти в этой фразе. Вывести номер позиции, в которой первый раз встречается этот символ. Если такого символа нет, то выдать об этом сообщение. 9. Дана произвольная символьная фраза (вводится с экрана). Запрашивается с экрана какое слово надо найти в этой фразе. Вывести номер позиции, в которой первый раз встречается это слово. Если такого слова нет, то выдать об этом сообщение. 10. Подсчитать сумму цифр числа 99993939387. 11. Дано произвольное число (вводится с экрана). Подсчитать количество повторений цифры 5 в этом числе. 12. Подсчитать произведение цифр числа 243516. 12 .32453246.00088-01 99 01 13. Задано произвольное число (вводится с экрана). Подсчитать произведение цифр этого числа. 14. Дана произвольная символьная фраза (вводится с экрана). Подсчитать количество слов в этой фразе. Между словами любое количество пробелов. 15. Заменить в тексте, который вводится с экрана, букву «а» на «о» 16. Дана произвольная символьная фраза (вводится с экрана). Разделить все слова запятыми. 17. Дана произвольная символьная фраза (вводится с экрана). Убрать в ней все пробелы. 18. Подсчитать количество предложений в заданном тексте (предложение заканчивается либо точкой, либо восклицательным знаком, либо вопросительным знаком). 19. Написать программу, которая рисует линии по нажатию клавиш (П - вправо, Л – влево, В – вверх, Н – низ, Ц – влево и вверх, Ч – влево и вниз, Г – вправо и вверх, Т вправо и вниз, С – стоп).