Ознакомление с понятием циклов в школьном курсе информатики на примере языка 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.