ПИЛИПЧУК О.П., вчитель інформатики Гаврилівської ЗОШ І-ІІІ ступенів Теофіпольського району Хмельницької області
Вправи для розвитку логічного мислення при вивченні теми "Рядкові величини”
При вивченні теми "Рядкові величини” розділу "Основи алгоритмізації” поряд з завданнями репродуктивного характеру різної складності можна застосовувати вправи з логічним навантаженням. Вони відрізняються тим, що крім власне побудови алгоритму або написання програми потребують додаткових інтелектуальних зусиль: учень має проаналізувати структуру об’єктів, про які йдеться в умові, помітити певні закономірності, іноді провести узагальнення і лише після цього стає можливим написання програми.
Методика їх використання може бути різною. Наприклад, таку вправу можна запропонувати самостійно виконати краще підготовленим учням, а час, що вивільниться присвятити роботі з іншими дітьми над простішими завданнями. Ще один варіант: поділивши клас на декілька груп можна провести міні-олімпіаду.
Ось зразки таких задач, побудованих на матеріалі теми "Рядкові величини”.
1. Перевірити, чи введений рядок є правильним математичним виразом, що містить цілі числа і знаки чотирьох основних математичних операцій.
2. Перевірити, чи введений рядок є правильним математичним виразом, що містить цілі числа, дужки і знаки чотирьох основних математичних операцій.
3. Розгляньте приклади адрес (URL) Web-серверів в Інтернеті:
http://www.microsoft.com
http://www.boutell.com
http://www.astro.umd.edu
Перевірити, чи введений з клавіатури рядок є правильною адресою Web-серверу.
4. Ваші конкуренти використовують хитромудрий код для захисту інформації. Але Вам вдалось отримати зразки роботи їхньої програми для шифрування тексту. Ось вони:
Вхідний текст | Зашифрований текст |
клас | слак |
супер | рупес |
компас | сопмак |
інформатика | аниоамртфкі |
Скласти програму і розшифрувати секретне повідомлення:
?чтрА_.асіафсрваоисіля_к_ацнт_миопнв_ян_а_оиВ
5. Не використовуючи вкладені цикли перевірити, скільки разів у введеному з клавіатури реченні зустрічається слово дуга.
Для прикладу розглянемо, як може міркувати учень над здачею №5. Якби не було обмеження на використання вкладених циклів, алгоритм міг би бути такий (див блок-схему).
У Паскалі є стандартна функція pos, яка „вміє" знаходити перше входження підрядка в рядок. Якщо ж підрядок не знайдено, функція повертає 0. Плідна ідея полягає в тому, що ми відмовляємось від збереження вихідного рядка в незмінному вигляді (умова задачі не накладає на це жодних обмежень): після перевірки входження будемо відразу вилучати знайдений підрядок з основного рядка. Це якраз і дасть можливість обійтися тільки функцією pos. Ось програма, яка реалізує цю ідею:
program N5;
var c:integer;
s,s1:string;
begin
writeln('Введiть рядок:');
readln(s);
c:=0;
s1:='дуга';
while pos(s1,s)<>0 do
begin
delete (s,pos(s1,s),length(s1));
inc(c)
end;
writeln(c);
readln
end.
Як бачимо, реалізований в програмі алгоритм компактніший від описаного блок-схемою: він містить лише один цикл і жодного умовного оператора.
Интернет реклама