МЕТОДИКА ПРОВЕДЕНИЯ ЗАНЯТИЙ ПО ДИСЦИПЛИНЕ «ПРАКТИКУМ ПО РЕШЕНИЮ ЗАДАЧ НА ЭВМ» НА ТЕМУ «СТРОКИ» НА ОСНОВЕ КОМПЕТЕНТНОСТНОГО, ИНФОРМАЦИОННОГО И ДЕЯТЕЛЬНОСТНОГО ПОДХОДОВ (ЭТАП ПРИОБЩЕНИЯ)

Раздел: Разработка методического обеспечения

Журнал: Методическое обеспечение различных разделов информатики

15 апреля 2012 г.

Авторы: Журавлев Сергей Владимирович

С. В. Журавлев

МЕТОДИКА ПРОВЕДЕНИЯ ЗАНЯТИЙ ПО ДИСЦИПЛИНЕ «ПРАКТИКУМ ПО РЕШЕНИЮ ЗАДАЧ НА ЭВМ» НА ТЕМУ «СТРОКИ» НА ОСНОВЕ КОМПЕТЕНТНОСТНОГО, ИНФОРМАЦИОННОГО И ДЕЯТЕЛЬНОСТНОГО ПОДХОДОВ (ЭТАП ПРИОБЩЕНИЯ)

Все задачи данной темы ориентированы на формирова-ние следующих компетенций:
владение культурой мышления, способность к обобще-нию, анализу, восприятию информации, постановке цели и выбору путей её достижения (ОК-1) — студенты обобщают знания и отрабатывают навыки работы с переменными сим-вольного и строкового типа, учатся анализировать методы подсчёта количества указанных символов или групп симво-лов в строке, выделения из строки чисел и последующей ра-боты с ними (определения количества, вычисления суммы, произведения и т. д.), нахождение слов или предложений, яв-ляющихся палиндромами, а также создания новой строки пу-тём преобразования символов исходной, понимать условие конкретной задачи и выбирать подходящий метод для её ре-шения;
готовность использовать основные методы, способы и средства получения, хранения, переработки информации, го-товность работать с компьютером как средством управления информацией (ОК-8) — методы: абстрагирование, анализ, синтез, логический метод, восхождение от абстрактного к конкретному; способы: чтение соответствующей литературы, работа в библиотеках, работа в информационно-поисковых системах; средства: печатные издания, компьютер.
Кроме того, задачи 11-30 формируют способность рабо-тать с информацией в глобальных компьютерных сетях (ОК-9) — студенты самостоятельно находят в поисковых системах необходимые сведения: способы выделения чисел из строки, нахождения слов и предложений, являющихся палиндромами, создания новой строки на основе исходной.
Все задачи по данной теме подразделяются на 3 группы:
I. Задачи для ситуации полной информационной опреде-лённости:
1. Даны строки s1 и s2. Посчитать, сколько раз в строке s1 встречается первый символ строки s2.
2. Дана строка. Определить, сколько раз в этой строке встречается символ «p» (независимо от регистра).
3. Дана строка. Определить количество слов в этой стро-ке, содержащих хотя бы одну букву «e» (независимо от ре-гистра).
4. Дана строка. Определить количество слов в этой стро-ке, содержащих ровно две буквы «h» (независимо от регист-ра).
5. Дана строка. Определить количество слов в этой стро-ке, содержащих ровно три буквы «z» (независимо от регист-ра).
6. Дана строка. Определить количество строчных букв в этой строке.
7. Дана строка. Определить количество прописных букв в этой строке.
8. Дана строка. Определить количество знаков препина-ния в этой строке.
9. Дана строка. Определить количество цифр в этой строке.
10. Дана строка. Определить количество латинских букв в этой строке.
II. Задачи для ситуации частичной информационной нео-пределённости:
11. Дана строка, в которой может быть последователь-ность цифр. Вычислить среднее арифметическое чисел.
12.  Дана строка, состоящая из цифр и пробелов. Группы цифр, разделённые пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть словами. Рассматривая слова как числа, вычислить произведение са-мого длинного и самого короткого.
13. Дана строка. Определить, сколько раз стоящие рядом 2 слова оканчиваются одной и той же буквой.
14. Дана строка, состоящая из двух или более предложе-ний. Определить количество предложений, являющихся па-линдромами.
15. Дана строка, состоящая из цифр и пробелов. Группы цифр, разделённые пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть словами. Рассматривая слова как числа, определить количество четы-рёхзначных чисел.
16. Дана строка, состоящая из цифр и пробелов. Группы цифр, разделённые пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть словами. Рассматривая слова как числа, вычислить сумму простых чи-сел.
17. Дана строка, в которой может быть последователь-ность цифр. Определить количество чётных чисел.
18. Дана строка, состоящая из двух или более предложе-ний. Определить количество слов-палиндромов в каждом предложении.
19. Дана строка, в которой может быть последователь-ность цифр. Вычислить произведение нечётных чисел.
20. Дана строка, состоящая из цифр и пробелов. Группы                  цифр, разделённые пробелами (одним или несколькими) и не   содержащие пробелов внутри себя, будем называть словами. Рассматривая слова как числа, определить количество совер-шенных чисел.
III. Задачи для ситуации полной информационной нео-пределённости:
21. Дана строка. Удалить из неё все буквы «c» (незави-симо от регистра).
22. Дана строка. Удалить из неё все сочетания букв «gt» (независимо от регистра).
23. Дана строка. Удалить из неё все запятые.
24. Дана строка. Заменить все сочетания «pad» на «tu» (независимо от регистра).
25. Дана строка. Заменить все тире на двоеточия.
26. Дана строка. Заключить все слова в круглые скобки.
27. Дана строка. Удалить из неё слова, начинающиеся с буквы «r» (независимо от регистра).
28. Дана строка. Удалить из неё слова, оканчивающиеся буквой «y» (независимо от регистра).
29. Дана строка. Удалить из неё слова, включающие со-четание букв «so» (независимо от регистра).
30. Дана строка. Преобразовать её, удалив из каждого слова все последующие вхождения первой буквы этого слова.
Теперь рассмотрим пример подробного решения трёх за-дач из первой группы.
1. Даны строки s1 и s2. Посчитать, сколько раз в строке s2 встречается последний символ строки s1.
Разместим необходимые компоненты на форме. Нам по-надобятся одна метка (Label1) для записи условия задачи, 3 текстовых окна (Edit1 для ввода первой строки, Edit2 для ввода второй строки и Edit3 для вывода ответа на вопрос), 2 кнопки (Button1 для подсчёта количества вхождений послед-него символа первой строки во вторую строку и Button2 для окончания работы программы).
В компоненте Label1 разместим условие задачи. Очи-стим компоненты Edit1, Edit2 и Edit3. Для кнопки Button1 создадим надпись Решение, для Button2 – надпись Выход.
Окончательный вид формы показан на рис. 1.
Рис. 1

Опишем процедуру Button1Click:

var s1, s2: string; //s1 – первая строка, s2 – вторая стро-ка

i, k: integer; //i – номер символа в строке, k – количество вхождений последнего символа первой строки во вторую строку

begin

k:=0;

s1:=Edit1.Text;

s2:=Edit2.Text;

for i:=1 to length(s2) do

if s2[i]=s1[length(s1)] then

k:=k+1;

Edit3.Text:='Символ '+s1[length(s1)]+' встречается во второй строке '+IntToStr(k)+' раз';

end; //конец процедуры

Осталось запрограммировать кнопку Выход.

Программа решения задачи готова.

2. Дана строка. Определить количество слов в этой стро-ке, содержащих ровно одну букву «a» (независимо от ре-гистра).

Разместим необходимые компоненты на форме. Нам по-надобятся одна метка (Label1) для записи условия задачи, 2 текстовых окна (Edit1 для ввода строки и Edit2 для вывода ответа на вопрос), 2 кнопки (Button1 для подсчёта количест-ва слов, содержащих ровно одну букву «a» и Button2 для окончания работы программы).

В компоненте Label1 разместим условие задачи. Очи-стим компоненты Edit1 и Edit2. Для кнопки Button1 создадим надпись Решение, для Button2 – надпись Выход.

Окончательный вид формы показан на рис. 2.

Опишем процедуру Button1Click:

var s: string; //заданная строка

i, k, k1: integer; //i – номер символа в строке, k – коли-чество символов «a» в каждом слове, k1 – количество слов, содержащих по одному символу «a»

c: set of char; //множество знаков препинаний

begin

s:=Edit1.Text+' ';

k:=0;

k1:=0;

c:=['.', ',', '!', ':', ';', '?', '-', ' '];

for i:=1 to length(s) do

begin

if AnsiLowerCase(s[i])='a' then

k:=k+1;

Рис. 2

if (s[i] in c) and (k=1) then

begin

k1:=k1+1;

k:=0;

end; //конец ветвления

if (s[i] in c) and (k<>1) then

k:=0;

end; //конец цикла

Edit2.Text:=IntToStr(k1);

end; //конец процедуры

Осталось запрограммировать кнопку Выход.

Программа решения задачи готова.

3. Дана строка. Определить, сколько раз в ней встреча-ются 0 и 1.

Разместим необходимые компоненты на форме. Нам по-надобятся одна метка (Label1) для записи условия задачи, 2 текстовых окна (Edit1 для ввода строки и Edit2 для вывода ответа на вопрос), 2 кнопки (Button1 для подсчёта количест-ва символов «0» и «1» в строке и Button2 для окончания ра-боты программы).

В компоненте Label1 разместим условие задачи. Очи-стим компоненты Edit1 и Edit2. Для кнопки Button1 создадим надпись Решение, для Button2 – надпись Выход.

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

Рис. 3

Опишем процедуру Button1Click:

var s: string; //заданная строка

i, k: integer; //i – номер символа в строке, k – количество символов «0» и «1» в строке

c: set of char; //множество цифр

begin

s:=Edit1.Text;

k:=0;

c:=['0', '1'];

for i:=1 to length(s) do

if s[i] in c then

k:=k+1;

Edit2.Text:=IntToStr(k);

end; //конец процедуры

Осталось запрограммировать кнопку Выход.

Программа решения задачи готова.

PDF