Инфоурок Информатика Другие методич. материалыРешение Всероссийской олимпиадной задачи математического типа в среде MS Excel «Расчет палиндрома» 10 - 11 класс

Решение Всероссийской олимпиадной задачи математического типа в среде MS Excel «Расчет палиндрома» 10 - 11 класс

Скачать материал

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

Автор2.doc Описание задачи расчета Палиндрома.doc Переворот и сложение - Палиндром 2010.xls Переворот и сложение - Палиндром 2010.xlsm ‚ ¦­®!.txt

Выбранный для просмотра документ Автор2.doc

Информация об авторе материала: "Решение Всероссийской олимпиадной задачи математического типа для 10-ых и 11-ых классов в среде MS Excel "расчет палиндрома"

 

Петрашевич Галина Федоровна,

Учитель информатики и ИКТ,

Категория высшая,

МОУ СОШ № 21,

город Тверь, Россия,

mail: obraztver21@yandex.ru   pgftver@mail.ru

Сайт МОУ СОШ № 21 "school21tver.ru"

Тема урока: Электронные таблицы. Использование MS Excel в решении олимпиадных математических задач. Подключение макросов.

Предмет: Информатика и ИКТ.

Класс/группа: 11 класс

Ключевые слова или опорные понятия: информатика, учебное пособие, решение, олимпиадных, задач, математическая, среда MS Excel, VBA, логическое мышление, алгоритмизация, палиндром, программирование.

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Решение Всероссийской олимпиадной задачи математического типа в среде MS Excel «Расчет палиндрома» 10 - 11 класс"

Методические разработки к Вашему уроку:

Получите новую специальность за 3 месяца

Специалист по охране труда

Получите профессию

Экскурсовод (гид)

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Выбранный для просмотра документ Описание задачи расчета Палиндрома.doc

Описание решения Всероссийской олимпиадной задачи

математического типа

для 10-ых и 11-ых классов в среде MS Excel

 

Задача C. Переворот и сложение (расчет палиндрома)

 

Входной файл:

Выходной файл:

Время:

Память:

input.txt

output.txt

не более 10 сек

не более 64 Мб

 

Функция изменения порядка и сложения начинает с числа, меняет порядок его цифр на противоположный и складывает получившееся число с начальным. Если сумма не является палиндромом (то есть не дает одно и то же число, будучи прочитанной слева направо и справа налево), мы повторяем эту процедуру до тех пор, пока она им не станет.

Например, если мы начнем с числа 195, то получим 9339 в качестве итогового палиндрома после четвертого сложения:

Этот метод сходится к палиндрому за несколько итераций практически для всех целых чисел. Но существуют интересные исключения. 196 является первым числом, для которого не было обнаружено палиндрома. Но тем не менее не было доказано, что такого палиндрома не существует.

Вы должны написать программу, которая для заданного числа выдает итоговый палиндром (если он существует) и число итераций/сложений, которые потребовались, чтобы его найти.

Вы можете считать, что все числа, задаваемые в качестве тестовых данных, сойдутся к ответу за менее чем 1000 итераций (сложений) и приведут к итоговому палиндрому, не превышающему 4 294 967 295.

Вход

Первая строка содержит целое число N (0 < N < 100), задающее число тестовых случаев, а каждая из следующих N строк содержит одно целое число Р, чей палиндром вы должны найти.

Выход

Для каждого из N целых чисел выведите строку, содержащую минимальное число итераций, необходимых для нахождения палиндрома, один пробел и затем собственно итоговый палиндром.

Пример

input.txt

output.txt

 

3

195

265

750

 

 

 

4 9339

5 45254

3 6666

 

 

 

Алгоритмизация задачи

 

Наряду с решением данной задачи средствами языков программирования, которые изучаются в общеобразовательных школах России, таких как  QBasic, Pascal, Delphi, VBA, C++ , приводится алгоритм решения задачи в среде Microsoft Excel.

Предлагается комплексный подход к решению задачи, заключающийся в использовании возможностей электронной таблицы и языка программирования Visual Basic Application.

В помощь учителям информатики и ученикам средних школ и гимназий, а также с целью демонстрации алгоритмических возможностей MS Excel, предлагается данный материал.

Исходные значения из входного файла построчно заносятся в зону ввода. Результат формируется в зоне вывода.

Во избежание ошибочного ввода исходных данных не в зону ввода и повреждения формул, используется возможность MS Excel защиты листа паролем. Ввод исходных данных возможен только в зону ввода.

Допускается ввод любого числа, в т.ч. "0" (нуля). При вводе ошибочного значения (например, текстового) выдается сообщение об ошибке, ввод нужно повторить.

 

 

Формы ввода начального значения и вывода результата расчета.

 

Введите число (не более 10 цифр)

Результат расчета

(зона вывода)

не забудьте в конце ввести Enter

 

(зона ввода)

 

Число итераций

 

Палиндром

 

295

 

 

 

 

 

Панели  для задания условий расчета и кнопки выполнения алгоритмов расчета.

 

Устанавливать начальные значения (да / нет) :

да

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Введите число циклов от 1 до 1000

 

 

 

     Число циклов :

100

 

 

 

 

 

 

 

 

 

 

 

 

 

"Число циклов" определяет число циклов

 

 

 

расчета между Палиндромами.

 

 

 

 

 

 

 

 

 

 

Описание алгоритма решения задачи.

 

Таблицы для решения задачи, а также формулы, используемые при расчете,  приведены ниже.

Из введенного в зону ввода числа  В8  последовательно выделяются отдельные цифры и записываются в зону В13:М13, а затем в зону В15:М15. Такая поразрядная запись числа позволяет манипулировать с числом, в т.ч. "переворачивать" его наоборот. Перевернутое исходное число записывается в зону В19:М19.

В зоне В17:М17 записываем "сцепленные" разряды исходного числа для обеспечения возможности выполнения арифметических действий с числом.

В зоне В21:М21 записываем "сцепленные" разряды "перевернутого" числа для обеспечения возможности выполнения арифметических действий над ним.

Если "исходное" и "перевернутое" числа равны, т.е. В17=В21, то получен палиндром.

Если нет палиндрома, суммируем "исходное" и "перевернутое" числа и записываем в клетку В8 в качестве исходного числа.

            А      В

       

 

 

  

 

13

15

17

19

21

 

 

 

B

C

D

E

F

G

H

I

J

K

L

M

 

2

9

5

 

 

 

 

 

 

 

 

 

 

 

 

ПСТР(B8;$Q$8;$Q$10)

ПСТР(B8;$AB$8;$Q$10)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

9

5

 

 

 

 

 

 

 

 

 

 

 

 

B13

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

295

 

 

 

СЦЕПИТЬ(B15;C15;D15;E15;F15;G15;H15;I15;J15;K15;L15;M15)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

9

2

 

 

 

ЕСЛИ(M15="";"";M15)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

592

 

 

 

СЦЕПИТЬ(B19;C19;D19;E19;F19;G19;H19;I19;J19;K19;L19;M19)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Разность

297

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Палиндром

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ЕСЛИ(B17=B21;"Палиндром";"")

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

887

 

 

 

B17+B21

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Цикл операций повторяется до тех пор, пока не получим палиндром.

Благодаря процедурам VBA расчет можно выполнять как пошагово, с просмотром промежуточных результатов, так и автоматически в цикле. Число итераций расчета палиндрома формируется в клетке А8.

Средствами VBA разработана процедура  анализа вводимых данных и, в случае ввода некорректных значений, выводятся сообщения об ошибках.

Для работы с макросами и процедурами VBA необходимо включить данную функцию в MS Excel (для MS Excel 2007) :      

- кликните левой кнопкой мыши на значок     в левом верхнем углу MS Excel,

- выберете "Параметры Excel",

- установите "галочку" в параметрах "Показывать вкладку "Разработчик" на ленте

- нажмите "Ок".

В ленте команд появится закладка "Разработчик",  с возможностью активации конструктора VBA.

 

В результате решения задачи:

1.     Рассчитан палиндром.

2.      Определено количество итераций переворота и сложения для получения палиндрома.

 

В расчетах использовались некоторые функции MS Excel, а именно:

ПСТР(B8;$Q$8;$Q$10)

СЦЕПИТЬ(B15;C15;D15;E15;F15;G15;H15;I15;J15;K15;L15;M15)

ЕСЛИ(M15="";"";M15)

ЕСЛИ(B17=B21;"Палиндром";"")

 

Тексты процедур VBA задачи приведены ниже.

 

Если в MS Excel макросы не работают, нужно их включить.

Для включения макросов в MS Excel 2007 проделайте следующее:

- кликните левой кнопкой мыши на значок     в левом верхнем углу MS Excel,

- выберете "Параметры Excel",

- кликните команду "Центр управления безопасностью",

- кликните команду "Параметры центра управления безопасностью",

- кликните команду "Параметры макросов",

- установите режим         включить все макросы.

 

 

 

Формулы для  расчета.

 

 

 

 

 

Тексты процедур VBA задачи.

    Процедура установки начальных значений.

Вызывается при нажатии кнопки "Начальные значения".

  Private Sub CommandButton2_Click()

      ' проверка наличия ошибки в заданных параметрах

   On Error GoTo Error              ' При ошибке, переход на вывод сообщения

    GoTo bigin:                       ' Если нет ошибки - переход на начало логики

  Error:                              ' Вывод сообщения об ошибке

    Range("b4").Value = "Ошибка данных, введите снова"

    Range("b4").Select

       GoTo End2:             ' Завершение процедуры

 bigin:                          ' типы данных :

    Dim big As Long             ' currency :   15 позиций целых и 4 после запятой,

                                               ' или Integer:  -32768 до 32767

                                              ' или Long:  целое число не более 10 знаков

    Range("b4:m4").Select

    Range("B8:M8").Select

     big = Range("b4").Value     '   Присвоение переменной big значения ячейки

    Range("b8").Value = big     '   Присвоение ячейке значения переменной big

    Range("a8").Select

    ActiveCell = 0              '   Присвоение активной ячейке значения 0

End2:

        Range("b4:m4").Select

        Application.CutCopyMode = False             ' Сброс

End Sub

 

 

 

Процедура расчета цикла задачи пошагово.

Вызывается при нажатии кнопки "Расчет задачи пошагово".

Private Sub CommandButton1_Click()

    Range("n8:p8").Select

    Selection.Copy            ' Мигает активная ячейка

    Range("B8").Select

    ActiveSheet.Paste

    Range("a8").Select

    Selection.Copy            ' Мигает активная ячейка

    x = Selection

     x = x + 1

    Range("a8").Select

    ActiveCell = x

        Range("b4:m4").Select

        Application.CutCopyMode = False             ' Сброс

End Sub

 

 

 

Процедура расчет палиндрома автоматически.

Вызывается при нажатии кнопки "Расчет циклов автоматически".

  Private Sub CommandButton3_Click()

    On Error GoTo Error               ' При ошибке переход на вывод сообщения

  GoTo Cyrcl:                       ' Если нет ошибки - переход дальше

Error:                              ' Вывод сообщения об ошибке

    Range("ae20").Value = "Задано неверное значение"

    GoTo End3:                      ' Завершение процедуры

Cyrcl:

    ' Установить начальные значения ?

If Range("ai12").Value = "да" Then

    Call CommandButton2_Click       ' вызов процедуры установки начальных значений

    If Range("b4").Value = "Ошибка данных, введите снова" Then GoTo End3 

      ' Завершение процедуры

   Else

End If

       ' Расчет цикла

    Range("ae20").Value = ""        ' Очистка зоны сообщения

Dim x As Integer

Dim wa As Integer

Dim i As Integer

    If (Range("ag18").Value = " " Or Range("ag18").Value = "") Then

        Range("ae20").Value = "Задано неверное число циклов"

        Application.CutCopyMode = False           ' Сброс

        Exit Sub                                               ' Выход из процедуры

       Else

        wa = Range("ag18").Value        ' В ячейке должно быть число !!!

         If (wa < 1 Or wa > 1000) Then

          Range("ae20").Value = "Задано неверное число циклов"

          Application.CutCopyMode = False          ' Сброс

          Exit Sub                                             ' Выход из процедуры

         Else

        End If

   End If

  For i = 1 To wa

    Range("n8:p8").Select

    Selection.Copy

    Range("b8").Select

    ActiveSheet.Paste

    Range("a8").Select

    Selection.Copy

    x = Selection

     x = x + 1

    Range("a8").Value = x

         If Range("b25").Value <> "" Then

          Application.CutCopyMode = False          ' Сброс

          Exit Sub                                             ' Выход из процедуры

          Else

        End If

  Next i

End3:

        Range("b4:m4").Select

        Application.CutCopyMode = False            ' Сброс

 

End Sub

 


 

Заключение

 

Предложенное решение задачи в среде MS Excel призвано продемонстрировать широкие возможности редактора "Электронная таблица" и Visual Basic Application по алгоритмизации и программированию.

Считаю возможным и допустимым использовать не только в чистом виде языки программирования, но и  программный комплекс MS Excel  и VBA при решении олимпиадных задач.

Решение задач в среде MS Excel с использованием VBA формирует навыки логического мышления, математического подхода и искусства программирования.

MS Excel в сочетании с языком Visual Basic Application  является мощным инструментом для развития математических и логических способностей одаренных детей – участников олимпиад.

 

Ссылка на решение задачи в среде MS Excel

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Решение Всероссийской олимпиадной задачи математического типа в среде MS Excel «Расчет палиндрома» 10 - 11 класс"

Получите профессию

Интернет-маркетолог

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Выбранный для просмотра документ ‚ ¦­®!.txt

Данный материал был скачан с сайта www.metod-kopilka.ru

============================================================

 

!!!!!!!!Орфография и форматирование автора материала!!!!!!!!!!

 

========================================

Образовательно-информационный ресурс для учителей информатики,

учащихся и всех-всех, кто интересуется ИТ:

http://www.metod-kopilka.ru Методическая копилка учителя информатики

 

Организационные, методические и нормативные документы,

лабораторно-практические работы (комплекс занятий по MS Word, MS Excel,

MS Access, MS PowerPaint, Paint, Move Maker и др. прикладным программам),

лекции,конспекты, дидактический материал, занимательная информатика,

экзамен, проектная деятельность, презентации.

Все в свободном доступе! Без регистрации!

 

 

=========================================

P.S. Единственным источником дохода сайта является переход по рекламным ссылкам.

Если ресурс оказался Вам полезен, потратьте 1 минуту времени и кликните любой рекламный блок на сайте.

Заранее благодарна.

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Решение Всероссийской олимпиадной задачи математического типа в среде MS Excel «Расчет палиндрома» 10 - 11 класс"

Получите профессию

Экскурсовод (гид)

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Получите профессию

Методист-разработчик онлайн-курсов

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Краткое описание документа:

Задача C. Переворот и сложение (расчет палиндрома) Входной файл:Выходной файл:Время:Память: input.txt output.txt не более 10 сек не более 64 Мб Функция изменения порядка и сложения начинает с числа, меняет порядок его цифр на противоположный и складывает получившееся число с начальным. Если сумма не является палиндромом (то есть не дает одно и то же число, будучи прочитанной слева направо и справа налево), мы повторяем эту процедуру до тех пор, пока она им не станет. Например, если мы начнем с числа 195, то получим 9339 в качестве итогового палиндрома после четвертого сложения: Этот метод сходится к палиндрому за несколько итераций практически для всех целых чисел. Но существуют интересные исключения. 196 является первым числом, для которого не было обнаружено палиндрома. Но тем не менее не было доказано, что такого палиндрома не существует. Вы должны написать программу, которая для заданного числа выдает итоговый палиндром (если он существует) и число итераций/сложений, которые потребовались, чтобы его найти. Вы можете считать, что все числа, задаваемые в качестве тестовых данных, сойдутся к ответу за менее чем 1000 итераций (сложений) и приведут к итоговому палиндрому, не превышающему 4 294 967 295.Вход Первая строка содержит целое число N (0 N 100), задающее число тестовых случаев, а каждая из следующих N строк содержит одно целое число Р, чей палиндром вы должны найти.Выход Для каждого из N целых чисел выведите строку, содержащую минимальное число итераций, необходимых для нахождения палиндрома, один пробел и затем собственно итоговый палиндром.

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 660 662 материала в базе

Скачать материал

Другие материалы

Вам будут интересны эти курсы:

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

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 11.10.2020 739
    • ZIP 1.4 мбайт
    • Оцените материал:
  • Настоящий материал опубликован пользователем Бакшеева Людмила Викторовна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Бакшеева Людмила Викторовна
    Бакшеева Людмила Викторовна
    • На сайте: 3 года и 3 месяца
    • Подписчики: 0
    • Всего просмотров: 88887
    • Всего материалов: 232

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Методист-разработчик онлайн-курсов

Методист-разработчик онлайн-курсов

500/1000 ч.

Подать заявку О курсе
  • Сейчас обучается 123 человека из 43 регионов

Курс профессиональной переподготовки

Информационные технологии в профессиональной деятельности: теория и методика преподавания в образовательной организации

Преподаватель информационных технологий

300/600 ч.

от 7900 руб. от 3950 руб.
Подать заявку О курсе
  • Сейчас обучается 191 человек из 54 регионов
  • Этот курс уже прошли 971 человек

Курс профессиональной переподготовки

Математика и информатика: теория и методика преподавания в образовательной организации

Учитель математики и информатики

500/1000 ч.

от 8900 руб. от 4450 руб.
Подать заявку О курсе
  • Сейчас обучается 682 человека из 79 регионов
  • Этот курс уже прошли 1 806 человек

Курс профессиональной переподготовки

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

Преподаватель математики и информатики

500/1000 ч.

от 8900 руб. от 4450 руб.
Подать заявку О курсе
  • Сейчас обучается 41 человек из 23 регионов
  • Этот курс уже прошли 53 человека

Мини-курс

Современные подходы к духовно-нравственному воспитанию дошкольников

6 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Этот курс уже прошли 12 человек

Мини-курс

Раннее развитие: комплексный подход к развитию и воспитанию детей от 0 до 7 лет.

5 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 48 человек из 23 регионов
  • Этот курс уже прошли 25 человек

Мини-курс

Нейропсихология в школе: путь к успеху и благополучию детей

6 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 78 человек из 33 регионов
  • Этот курс уже прошли 55 человек