Основным в
процессе программирования является разработка алгоритма. Это один из наиболее
сложных этапов решения задачи с использованием ЭВМ. В начале обучения
программированию, на наш взгляд, целесообразно не привязываться сразу к
какому-либо языку, разрабатывать алгоритмы без записи на ЯПВУ, а, например, с
помощью блок-схем или иным аналогичным способом. После такой "чистой"
алгоритмизации учащимся или студентам проще перейти к записи того же алгоритма
на определённом языке программирования. В настоящей публикации
продемонстрирован именно такой подход.
Напомним, что
основными алгоритмическими структурами (ОАС) являются следование, развилка и
цикл. В более сложных случаях используются суперпозиции (вложения) ОАС.
Ниже приведены
графические обозначения (обозначения на блок-схемах) ОАС.
Структура “следование”
|
Полная развилка
|
Неполная развилка
|
Цикл с предусловие (цикл ПОКА)
|
Цикл с постусловием (цикл ДО)
|
Цикл с параметром
|
На схемах СЕРИЯ
обозначает один или несколько любых операторов; УСЛОВИЕ есть логическое
выражение (ЛВ) (если его значение ИСТИНА, переход происходит по ветви ДА, иначе
— по НЕТ). На схеме цикла с параметром использованы обозначения: ПЦ — параметр
цикла, НЗ — начальное значение параметра цикла, КЗ — конечное значение
параметра цикла, Ш — шаг изменения параметра цикла.
Начало и конец
алгоритма на блок-схемах обозначают овалом, вводимые и выводимые переменные
записываются в параллелограмме.
В примерах мы
будем использовать запись алгоритмов с помощью блок-схем и словесное описание.
Линейные
алгоритмы
Простейшие задачи
имеют линейный алгоритм решения. Это означает, что он не содержит проверок
условий и повторений.
Пример 1.
Пешеход шел по пересеченной местности. Его скорость движения по равнине v1
км/ч, в гору — v2 км/ч и под гору — v3 км/ч. Время движения соответственно t1,
t2 и t3 ч. Какой путь прошел пешеход?
|
1.
Ввести v1, v2, v3, t1, t2, t3.
2. S1 := v1 * t1.
3. S2 := v2 * t2.
4. S3 := v3 * t3.
5. S := S1 + S2 + S3.
6.
Вывести значение S.
7. Конец.
|
Для проверки
работоспособности алгоритма необходимо задать значения входных переменных,
вычислить конечный результат по алгоритму и сравнить с результатом ручного
счета.
Пример 2. Дано
натуральное трехзначное число n, в записи которого нет нулей. Составить
алгоритм, который возвращает значение ИСТИНА, если верно утверждение:
"число n кратно каждой своей цифре", и ЛОЖЬ — в противном случае.
|
1.
Ввести число n
2. A :=
n mod 10 {разряд единиц}
3. B :=
n div 100 {разряд сотен}
4. C :=
n div 10 mod 10 {десятки}
5. L := (n mod A=0) and (n mod B=0) and
(n mod C=0)
6.
Вывод L
7.
Конец
|
На приведенной
выше схеме DIV и MOD соответственно операции деления нацело и получения остатка
от целочисленного деления. В фигурных скобках записаны пояснения (комментарии)
к операторам.
Развилка
Достаточно
часто то или иное действие должно быть выполнено в зависимости от значения
логического выражения, выступающего в качестве условия. В таких случаях
используется развилка.
Пример 1.
Вычислить значение функции
|
1.
Ввести x.
2. Если
x£–12, то y:=–x2
3. Если
x2 сумму тех ее членов, которые больше заданного числа e.
При решении задачи находится очередной член последовательно и,
если он больше e, добавляется к сумме.
|
1. Ввести e
2. S := 0
3. A := 1/4
4. n :=
3
5.
Сравнить А с e. Если A>=e, переход к п. 10
6. S := S + A
7. A := (n-1)/(n*n)
8. n :=
n + 1
9.
Переход к п. 5
10.
Вывод S
11.
Конец
|
В рассмотренных
выше примерах количество повторений заранее неизвестно. В первом оно зависит от
количества цифр в записи натурального числа, во втором — от числа e.
В тех же
случая, когда количество шагов известно из условия задачи, проще и
предпочтительней использовать цикл с параметром.
Пример 3. Найти
произведение первых k натуральных чисел, кратных трём.
При составлении
алгоритма учтем, что первое натуральное число, кратное 3, есть тройка, а все
последующие больше предыдущего на 3.
|
1. Ввод
k
2. P :=
1 {здесь накапливаем произведение}
3. T :=
0 {здесь будут числа, кратные 3}
4. I :=
1
5. Если
I > k, переход к п. 10
6. T := T + 3
7. P := P * T
8. I :=
I + 1
9.
Перейти к п. 5
10.
Вывод P
11.
Конец
|
Другие примеры
будут записаны уже на ЯПВУ. В настоящей же публикации предпринята попытка
продемонстрировать, что изучение программирования разумно начинать собственно с
разработки алгоритмов, не акцентируя первоначально внимания на записи алгоритма
на том или ином языке программирования. В то же время автор, являясь
сторонником структурного подхода к программированию, предлагает придерживаться
этого подхода и при программировании на уровне блок-схем.
Если Вам нужна помощь с академической работой (курсовая, контрольная, диплом, реферат и т.д.),
обратитесь к нашим специалистам. Более 90000 специалистов готовы Вам помочь.
Бесплатные корректировки и доработки. Бесплатная оценка стоимости работы.
Поможем написать работу на аналогичную тему
Получить выполненную работу или консультацию специалиста по вашему учебному
проекту
Нужна помощь в написании работы?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Пишем статьи РИНЦ, ВАК, Scopus.
Помогаем в публикации. Правки вносим бесплатно.
Похожие рефераты:
-
Простые операторы в Паскале
Операторы ввода-вывода данных. Операторы выбора и перехода. Операторы повтора.
-
Информатика и ВТ
Вычисление произведения элементов массива. Обсуждение алгоритма. Текст программы. Линейный, циклический и разветвляющийся вычислительные процессы.
-
Оператор цикла
Применение циклической управляющией структуры для организации многократного выполнения некоторого оператора. Конструкция цикла: заголовок и тело, и алгоритм выполнения операторов while, do while и for. Отличия циклов с постусловием и предусловием.
-
Команда ветвления, команда повторения
Рассмотрим процесс управления информационным процессом, в котором в качестве управляемого объекта выбран текст. Другими словами, рассмотрим информационный процесс, связанный с редактированием, т.е. изменением состояния текста.
-
Программирование на алгоритмическом языке Бейсик
Алгоритм решения задачи: расположение значений ветора в порядке возрастания методом "Всплывающих пузырьков". Блок-схема алгоритма решения задачи. Описание блок-схемы, распечатка программы. Операторы: rem, dim, print, input, lprint using, for-next.
-
Циклические алгоритмы
В реферате содержатся программы и блок-схемы, "циклических" алгоритм.
-
Условный оператор
Полная и неполная развилка. Оператор выбора.
-
Принципы разработки алгоритмов и программ для решения прикладных задач
Разработка алгоритма как конструктивный компонент программирования, не зависящий от особенностей синтаксиса языков программирования и специфики функционирования конкретных ЭВМ. Алгоритм - операциональный подход к программированию. Экономичность алгоритма.
-
Семантика оператора “case”
Одной из форм оператора выбора в языке Pascal является оператор сase.
-
Задачи на длинную арифметику
достаточно популярную в программировании задачу на работу с "длинными" числами. Реально с "астрономическими" или "микроскопическими" числами приходится сталкиваться не так уж и часто.
-
Операторы цикла
Задачи целочисленной арифметики.
-
Лабараторная работа №8
Цель работы: Получение навыков реализации циклических алгоритмов с неизвестным числом повторений цикла, операторов цикла с предусловием и постусловием и итерационных циклических алгоритмов.
-
Операторы цикла в языке программирования Си++"
Рассмотрение принципов работы операторов, реализующих циклические алгоритмы: while (выполнение условия, пока заданное выражение истинное), do-while, for, break (прекращение работы из-за обнаружения ошибки), continue (пропуск "оставшейся" части итерации).
-
Операторы цикла
Для реализации циклических алгоритмов, т.е. алгоритмов, содержащих многократно повторяющиеся одинаковые операции, применяются специальные операторы цикла. В Пас-кале есть три вида циклов: FOR, WHILE и REPEAT.
-
Операторы цикла. Задачи целочисленной арифметики
Командой повторения или циклом называется такая форма организации действий, при которой одна и та же последовательность действий повторяется до тех пор, пока сохраняется значение некоторого логического выражения.
-
Алгоритмы и блок-схемы
Понятие алгоритма, его назначение, представление (изобразительные средства для описания), типы, способы записи, схемы. Основные принципы разработки алгоритмов и программ. Характеристика языков программирования. Средства и правила построения блок-схем.
-
Лабораторная работа №7
Цель работы: Получение навыков реализации циклических алгоритмов с неизвестным числом повторений цикла, операторов цикла с предусловием и постусловием и итерационных циклических алгоритмов.
-
Основы алгоритмизации
Понятие алгоритма, его свойства. Дискретность, определенность, результативность, формальность как свойства алгоритма. Программа как описание структуры алгоритма на языке алгоритмического программирования. Основные структурные алгоритмические конструкции.
-
Циклы в Паскале
Операторы цикла, присутствующие в языках программирования. Простой арифметический оператор цикла Паскаля, управление циклом с помощью переменной порядкового типа. Арифметический оператор цикла Паскаля с произвольным шагом, оператор цикла с предусловием.
-
Подпрограммы (процедуры и функции)
Алгоритм, ранее разработанный и целиком используемый в составе других алгоритмов, называется вспомогательным. Применение вспомогательных алгоритмов позволяет разбить задачу на части, структурировать ее.
|