Ознакомление с понятием циклов в школьном курсе информатики на примере языка F#
Цикл как разновидность управляющей конструкции в высокоуровневых языках программирования, предназначенной для организации многократного исполнения набора инструкций. Разработка циклических алгоритмов при помощи блок схем и алгоритмического языка.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 17.07.2018 |
Размер файла | 16,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Ознакомление с понятием циклов в школьном курсе информатики на примере языка F#
Векслер Виталий Абрамович, кандидат наук, доцент, доцент
Саратовский государственный университет им Н. Г. Чернышевского
Статья рассматривает инвариантные возможности изучения циклических конструкций в школьном курсе информатики на примере языка F# сочетающего в себе множество технологий программирования.
Цикл -- это разновидность управляющей конструкции в высокоуровневых языках программирования, предназначенная для организации многократного исполнения набора инструкций. Также циклом может называться любая многократно исполняемая последовательность инструкций, организованная любым способом (например, с помощью условного перехода). Команда цикла является структурной командой в отличие от простых команд. Структурная команда включает в себя несколько действий: проверка условия, выполнение тела цикла, которое, в свою очередь, может состоять из нескольких команд.
Для составления циклических алгоритмов, следует сначала теоретически подготовить школьников. Необходимо подробно разобрать циклические алгоритмы при помощи блок схем и алгоритмического языка. После полного понимания смысла циклических конструкций, можно переходить к их программированию. Язык F# сочетает в себе как несколько парадигм программирования, так и множество структурных конструкций, может помочь взглянуть на проблемную ситуацию с разных сторон.
В языке F#, циклы представлены тремя конструкциями:
1. Выражение for...to
Несмотря на то, что технически for...to является выражением, оно больше похоже на традиционный оператор в императивном языке программирования. Эта конструкция используется для перебора данных в строго определенном диапазоне.
2. Выражение for...in
Эта конструкция для организации циклов используется для перебора в перечислимой коллекции при соответствии шаблона, например, в выражении диапазона, в последовательности, в списке, в массиве или в другой конструкции, поддерживающей перечисление.
3. выражение while...do (F#)
Выражение while...do используется для выполнения итерации (в цикле), пока заданное проверяемое условие истинно.
Продемонстрируем примеры использование циклов при решении следующих задач:
1. Все числа от 5 до 17 необходимо возведите в квадрат, от полученных значений отнимите единицу.
Вариант 1.
let seq1 = seq { for i in 5.. 17-> (i, i*i-1) }
for (a, asqr) in seq1 do
printfn "%d squared is %d" a asqr
Вариант 2.
let funn () =
for i=5 to 17 do
let d1 = i * i - 1
printf "%d " d1
printfn ""
Вариант 3.
let mutable i = 5
while i < 17 do
i <- i + 1
let d1=i*i-1
printfn "i = %d" d1
2. Числа от 100 до 80 увеличить на 5 и найти квадрат.
Вариант 1.
let function2() =
for i in 100.. -1.. 80 do
let d1 = (i+5)*(i+5)
printf "%d " d1
printfn ""
function2()
Вариант 2.
let mutable i = 101
while i > 80 do
i <- i - 1
let d1 = int ((float i+5.)**2.)
printfn "i = %d" d1;;
Вариант 3.
let List1 = [ 100.. -1.. 80]
for a in List1 do
let d = (a+5)*(a+5)
printfn "%d " d
Вариант4.
for i=100 downto 80 do
let d1 = (i+5)*(i+5)
printfn "%d" d1
3. Отобранные числа от 1 до 50 через каждые 4, умножить на 8.
Вариант 1.
let mutable r = 0
for i=1 to 50 do
if r%4= 0 then let d = i * 8
printfn "%d" d
r<-r+1
Вариант 2.
for i=1 to 50 do
if i%4= 1 then let d = i * 8
printfn "%d" d
4. Выведите все нечетные числа от 15 до 29, предварительно возведя их в куб и отняв единицу.
Вариант 1.
let function2() =
for i in 15.. 2.. 29 do
printf "%d " (i*i*i-1)
printfn ""
function2()
Вариант 2.
let seq1 = seq { for i in 15.. 2.. 29-> i }
for i in seq1 do
printfn "%d" (i*i*i-1)
5. Создайте программу, которая выводила бы произвольные числа от 1 до 100 до тех пор, пока она не выдаст число введенное пользователем.
open System
let lookForValue value =
let mutable continueLooping = true
let randomNumberGenerator = new Random()
while continueLooping do
let rand = randomNumberGenerator.Next(100)
printf "%d " rand
if rand = value then
printfn "\nFound a %d!" value
continueLooping <- false
6. Выведите все заглавные буквы русского алфавита.
Вариант 1.
let function3() =
for c in 'А'.. 'Я' do
printf "%c " c
printfn ""
function3()
Вариант 2.
let list1 = ['А'.. 'Я']
for i in list1 do
printfn "%A" i
7. Подсчитайте количество элементов в списке чисел от 100 до 1 (шаг -3).
let list1=[100..-7..1]
let mutable count = 0
for _ in list1 do
count <- count + 1
printfn "Number of elements in list1: %d" count
8. Подсчитайте количество элементов в списке чисел от 1 до 100 (шаг 3).
let list1=[1..3..100]
let mutable count = 0
for _ in list1 do
count <- count + 1
printfn "Number of elements in list1: %d" count
Решение задач несколькими способами, помогает развивать и инвариантность в поиске решения проблемных ситуаций, нахождения оптимальных подходов. Язык F# объединяя в себе императивную, объектно-ориентированную и функциональную технологии программирования позволяют предоставить инвариантные возможности решения одной и той же задачи. Предложенные алгоритмы являются простыми, но, тем не менее, позволяют школьнику продемонстрировать широту знаний и глубину мышления. программирование алгоритм язык цикл
Таким образом, изучение циклов поможет комплексно развить у школьников когнитивное, алгоритмическое и логическое мышление. Предложенные методические материалы предназначаются для изучения в углубленном или профильном курсах информатики и ИКТ.
Список литературы
1. Александрова Н. Организация самостоятельной деятельности студентов с применением ДО / С. Галаев, Н. Александрова, А. Букушева // Высшее образование в России. 2007. № 10. С. 141-143.
2. Александрова Н.А. Об использовании технологических средств и информационно-коммуникационных технологий в инклюзивном обучении студентов / Н.А. Александрова, Е.А. Гаврилова // В сборнике: Информационные технологии в образовании Материалы VI Всероссийской научно-практической конференции. Саратовский государственный университет имени Н.Г. Чернышевского. 2014. С. 61-63.
3. Векслер В.А. Принципы регулирования рынка образовательных услуг // Л.Б. Рейдель, В.А. Векслер // Правовая политика и правовая жизнь. 2013. № 2. С. 36-41.
4. Векслер В.А. Содержание и организация обучения взрослых основам информационных технологий в системе дополнительного образования: региональный аспект // диссертация на соискание ученой степени кандидата педагогических наук / Амур. гуманитар.-пед. гос. ун-т. Комсомольск-на-Амуре, 2009.
Размещено на Allbest.ru
...Подобные документы
Разновидности управляющей конструкции в высокоуровневых языках программирования. Организация многократного исполнения набора инструкций. Основные виды циклических конструкций. Арифметический оператор цикла Pascal с произвольным шагом и с постусловием.
курсовая работа [38,4 K], добавлен 18.03.2013Язык BASIC как семейство высокоуровневых языков программирования. Средства алгоритмического языка программирования и их типы. Способы ввода исходных данных. Особенности оператора условного перехода. Детальная характеристика циклических вычислений.
реферат [64,4 K], добавлен 02.05.2015Разработка теории и методики преподавания раздела "Алгоритмизация и программирование" в школьном курсе информатики. Методические проблемы изучения алгоритмов работы с величинами. Требования к знаниям учащихся по линии алгоритмизации и программирования.
курсовая работа [70,2 K], добавлен 09.07.2012Изучение общей структуры языка программирования Delphi: главные и дополнительные составные части среды программирования. Синтаксис и семантика языка программирования Delphi: алфавит языка, элементарные конструкции, переменные, константы и операторы.
курсовая работа [738,1 K], добавлен 17.05.2010Изучение некоторых аспектов языка Ассемблера и ЭВМ в целом. Построение алгоритмов решения поставленной задачи на языках программирования Си, Ассемблер УМ и IBM PC. Составление блок-схем решений и написание программ на каждом из перечисленных языков.
курсовая работа [691,5 K], добавлен 20.10.2014Системы программирования и их графические возможности. Разработка мультимедиа курса, способствующего эффективному усвоению учащимися базовой школы темы "Графические возможности языка программирования" (на примере языков программирования Basic и Pascal).
дипломная работа [588,3 K], добавлен 29.12.2010Разработка простейших линейных алгоритмов (составление логических выражений), программ с ветвлениями, циклических программ и составление их блок-схем. Практическое выполнение обработки массивов на примере вычисления элементов квадратной матрицы.
контрольная работа [173,3 K], добавлен 01.03.2010Характеристика сущности и свойств алгоритма - последовательности действий для решения поставленной задачи. Особенности алгоритмического языка, представляющего собой систему обозначений и правил для единообразной и точной записи алгоритмов и их исполнения.
реферат [35,2 K], добавлен 24.07.2010Классификация языков программирования. Использование циклических конструкций и выполнение итерационных процессов. Алгоритмические структуры циклов языков C, C++, Java, C#. Особенности современных языков программирования высокого уровня и их применение.
курсовая работа [345,6 K], добавлен 13.11.2009Изучение элементов языка С++, программирование разветвлений и циклов с использованием операторов условного и перехода. Обработка одномерных массивов. Поиск максимального элемента массива с заданной размерностью. Листинги программы и результатов.
курсовая работа [647,7 K], добавлен 05.02.2013Описание конструкций языка программирования Паскаль, обеспечивающих ветвление. Организация циклических процессов. Создание программы для ввода последовательности вещественных чисел до появления 0, расчет среднего арифметического данной последовательности.
лабораторная работа [189,8 K], добавлен 17.04.2012Требования по разработке программы часов, особенности и преимущества языка Delphi 7. Разработка блок-схем алгоритмов и описание процесса программирования. Основные процедуры для реализации, назначение, функционирование и условие работы с программой.
курсовая работа [1,2 M], добавлен 14.07.2012Основные типы циклов программирования. Методы применения специальных функций break, continue и цикла while. Обработка массивов информации. Условия применения циклических алгоритмов на языке программирования С++. Инициализация одномерного массива.
курсовая работа [1,7 M], добавлен 06.01.2014Понятие и специфические особенности языка программирования Си, история его создания. Интегрированная система Borland C. Процесс программирования с помощью данного языка. Графические примитивы в языках программирования. Преобразования на плоскости.
курс лекций [782,2 K], добавлен 04.10.2011Характеристика основных способов вычисления определителя матрицы с помощью языка программирования СИ. Выбор инструментальных и аппаратных средств, его обоснование. Общая структура и принцип действия программного модуля, описание блок-схем алгоритмов.
курсовая работа [262,4 K], добавлен 08.06.2010Логические конструкции в системе программирования Паскаль. Команды языка программирования, использование функций, процедур. Постановка и решение задач механики в среде системы Паскаль. Задачи статики, кинематики, динамики решаемые с помощью языка Паскаль.
курсовая работа [290,9 K], добавлен 05.12.2008Теоретические основы преподавания раздела информатики "Моделирование и формализация" в школе. Разработка системы задач по моделированию в различных средах (графический и текстовый редакторы, электронные таблицы, система программирования Visual Basic).
курсовая работа [127,2 K], добавлен 26.09.2012Описание особенностей программирования циклических алгоритмов на С/С++. Использование операторов цикла для организации повтора в программе определенных действий. Создание и реализация программы приближенного вычисления интеграла методом трапеций.
лабораторная работа [86,3 K], добавлен 25.03.2019Исторические аспекты развития линии "Алгоритмизация и программирование" в старшей школе. Изучение языка программирования Python с применением дистанционных курсов Coursera. Методическая система обучения программированию с использованием Coursera.
дипломная работа [808,8 K], добавлен 13.12.2017Понятие и внутренняя структура языка программирования как формальной знаковой системы, предназначенной для записи компьютерных программ. Его цели и функции, предъявляемые требования и принципы исполнения. Классификация и типы, сравнительное описание.
презентация [125,1 K], добавлен 15.04.2014