Определение линейный алгоритм: Понятие алгоритма
Линейные алгоритмы и алгоритмы с ветвлениями — урок. Информатика, 6 класс.
Линейные алгоритмы
Любой алгоритм можно составить из нескольких базовых структур. Простейшей из них является линейная (следование).
Алгоритм, в котором команды выполняются в порядке их записи, то есть последовательно друг за другом, называется линейным.
Например, линейным является следующий алгоритм посадки дерева:
- выкопать в земле ямку;
- опустить в ямку саженец;
- засыпать ямку с саженцем землёй;
- полить саженец водой.
С помощью блок-схемы данный алгоритм можно изобразить так:
Алгоритмы с ветвлениями
Ситуации, когда заранее известна последовательность требуемых действий, встречаются крайне редко.
В жизни часто приходится принимать решение в зависимости от сложившейся обстановки.
Если идёт дождь, мы берём зонт и надеваем плащ; если жарко, надеваем лёгкую одежду.
Встречаются и более сложные условия выбора. В некоторых случаях от выбранного решения зависит дальнейшая судьба человека.
Логику принятия решения можно описать так: ЕСЛИ <условие> ТО <действие \(1\)> ИНАЧЕ <действие \(2\)>.
Форма организации действий, при которой в зависимости от выполнения некоторого условия совершается одна или другая последовательность шагов, называется ветвлением.
Составим алгоритм покупки мороженого, учитывая наличие нужной суммы денег.
А вот так, с помощью блок-схемы, можно очень наглядно представить рассуждения при решении следующей задачи.
Из трёх монет одинакового достоинства одна фальшивая (более лёгкая). Как её найти с помощью одного взвешивания на чашечных весах без гирь?
Источники:
Босова Л. Л., Босова А. Ю., Информатика: учебник для 6 класса. М.: БИНОМ. Лаборатория знаний, 111 с.
Основы алгоритмизации. Линейный алгоритм. Разветвляющийся алгоритм
Алгоритмы
Изучив эту тему, вы узнаете:
— назначение алгоритма и его основные свойства;
— формы представления алгоритма;
— типовые алгоритмические конструкции и виды алгоритмов;
— разновидности циклических алгоритмов и их особенности;
— назначение вспомогательных алгоритмов;
— основные стадии создания алгоритма.
12.4. Линейный алгоритм
В основе линейных алгоритмов лежит структура «последовательность». Покажем это на примерах.
Пример 12.6
В своей книге «Арифметика» Леонтий Филиппович Магницкий привел следующий способ отгадывания задуманного двузначного числа: «Если кто задумает двузначное число, то ты скажи ему, чтобы он увеличил число десятков задуманного числа в 2 раза, к произведению прибавил бы 5 единиц, полученную сумму увеличил в 5 раз и к новому произведению прибавил сумму 10 единиц и числа единиц задуманного числа, а результат произведенных действий сообщил бы тебе. Если ты из указанного тебе результата вычтешь 35, то узнаешь задуманное число».
Представим предлагаемые JI. Ф. Магницким действия в виде алгоритма в словесной форме. В предлагаемом процессе должны участвовать два человека: загадывающий число и отгадывающий его. Поэтому алгоритмов тоже будет два.
Алгоритм для загадывающего число
1. Задумайте двузначное число.
2. Умножьте число десятков на 2.
3. К полученному произведению прибавьте 5.
4. Полученную сумму умножьте на 5.
5. К полученному произведению прибавьте 10.
6. К полученной сумме добавьте количество единиц задуманного числа.
7. Сообщите полученное число отгадывающему. Конец алгоритма
Алгоритм для отгадывающего число
1. Отнимите от сообщенного числа 35.
2. Сообщите результат. Конец алгоритма
В этих двух алгоритмах действия выполняются в том порядке, в котором записаны.
Пример 12.7
Требуется найти вес любого продукта, который должен быть закуплен для туристического похода.
Для исходных данных алгоритма будем использовать следующие обозначения:
п — норма расхода продукта на человека в сутки;
k — количество участников похода;
d — количество дней.
Результат работы алгоритма (рассчитанный вес продукта) будет занесен в переменную m (рисунок 12.6).
Рис. 12.6. Алгоритм решения задачи «Вес продукта» в двух формах представления: в виде блок-схемы и в виде программы на школьном алгоритмическом языке
Приведенные ранее в п. 12.3 алгоритмы разведения костра, приготовления каши, измерения расстояния до предмета являются линейными или последовательными.
Линейный алгоритм — алгоритм, в котором действия выполняются последовательно одно за другим.
12.5. Разветвляющийся алгоритм
Вспомним сюжет из русской сказки. Царевич останавливается у развилки дороги и видит камень с надписью: «Пойдешь направо — коня потеряешь, налево — сам пропадешь…»
Подобная ситуация, заставляющая нас принимать решения или делать выводы в зависимости от некоторого условия, постоянно встречается в повседневной жизни. Это отражается и в народных приметах, поговорках и пословицах.
— Если закат красный, то жди ветреной погоды.
— Нет дыма без огня (если есть дым, то ищи источник возгорания).
— Кончил дело — гуляй смело (если работа закончена, то можно отдыхать).
— Если вы нашли в лесу муравейник, то его местоположение относительно дерева указывает на юг.
Здесь условиями, позволяющими делать выводы или влияющими на принятие решений, являются слова, расположенные между «если» и «то»:
— в первом примере — красный закат;
— во втором примере — дым;
— в третьем примере — окончание работы;
— в четвертом примере — муравейник.
Условие может принимать значение «истина», когда оно выполнено, или «ложь», когда оно не выполнено. От значения условия зависит наше дальнейшее поведение. Например, в предложении «Если закат красный, то ‘жди ветреной погоды» условие «закат красный» может быть или истинным, или ложным. Если условие истинно, то следует ждать ветреной погоды, иначе (если условие ложно) ничего о погоде сказать нельзя.
В одних случаях анализ ситуации и сам выбор не вызывают затруднений, а в других сделать это очень трудно. Приходится продумывать каждый возможный вариант и последствия принимаемого решения. Шахматист, перед тем как сделать очередной ход, анализирует позицию на несколько ходов вперед. Компьютерные игры также построены на анализе ситуации и выборе действий.
Рассмотрим примеры алгоритмов, содержащих анализ условия.
Пример 12.8
Существует неписанное правило — собранные грибы должен проверить человек, разбирающийся в грибах.
Алгоритм проверки можно записать так:
Если гриб съедобный, то положить его в котелок для варки, иначе — выбросить в костер.
В приведенной записи в зависимости от значения условия выполняется либо действие, указанное после слова «то» — положить гриб в котелок, либо другое действие, указанное после слова «иначе» — выбросить в костер. На рисунке 12.7 представлен фрагмент блок-схемы алгоритма сортировки грибов для варки супа по признаку съедобный-несъедобный.
Рис. 12.7. Алгоритм проверки грибов, в котором использована полная форма ветвления
Пример 12.9
Вы идете в гости и вам необходимо перевязать коробку с подарком красивой лентой, длина которой d. Но хватит ли этой ленты?
Представим решение этой задачи на школьном алгоритмическом языке. Исходными данными для решения этой задачи являются размеры коробки и длина ленточки. Примем для них следующие обозначения: а, b, с — соответственно длина, ширина и высота коробки; d — длина ленточки.
алг Подарок
нач вещ a,b,c,d
вывод «Введите размеры коробки» ввод а,b,с
вывод «Введите размеры ленты» ввод d
если (a+b+2*c)*2 <= d то
вывод «Ленты хватит» иначе
вывод «Ленты не хватит» все кон
В примерах 12.8 и 12.9 при описании алгоритмов в виде блок- схемы и программы на школьном алгоритмическом языке использовалась конструкция «ветвление».
Различают полную и неполную форму ветвления.
При полной форме ветвления действия выполняются в обоих случаях: и при истинности, и при ложности условия. Вспомните кота из сказки А. С. Пушкина: «идет направо — песнь заводит, налево — сказку говорит ». В рассмотренных выше примерах использовалась полная форма ветвления, которой соответствует выражение
если <условие>, то <действие 1>9 иначе <действие 2>.
Неполной форме ветвления соответствует выражение
если <условие>9 то <действия>
Неполная форма предполагает отсутствие действий в случае невыполнения условия. Например: среднесуточная температура воздуха ниже +8 °С, приступить к протапливанию помещений.
На рисунке 12.8 представлен фрагмент блок-схемы алгоритма, описывающего поведение участников туристского похода, покидающих стоянку: если костер горит, то необходимо залить его водой.
Рис. 12.8. Алгоритм тушения костра, в котором используется неполная форма ветвления
Пример 12.10
Известно, что в аэропорту существуют ограничения на бесплатный провоз багажа. Если вес багажа превышает норму, то за каждый килограмм сверх нормы необходимо доплачивать. Исходными данными для решения задачи являются: v — вес багажа; vn — разрешенная норма провоза багажа; st — стоимость килограмма сверх нормы. Результат будем записывать в переменную s — сумму выплат сверх нормы.
Алгоритм «Доплата за багаж» представим на школьном алгоритмическом языке.
алг Доплата за багаж
нач вещ v, vn, st, s
вывод «введите вес багажа, норму, стоимость кг»
ввод v, vn, st
если v>vn
то s:=(v-vn)*st
вывод «Доплата составляет», s
все
кон
Во всех приведенных алгоритмах анализ условия приводит к выполнению тех или иных действий. Если представить алгоритм в виде дороги, ведущей к достижению поставленной цели, то условный блок «если…, то…, иначе…» является развилкой на этой дороге.
На приведенных выше блок- схемах хорошо видны подобные развилки. Они создаются при помощи структуры ветвления, имеющей полную и неполную форму. Подобные алгоритмы называются разветвляющимися.
Разветвляющийся алгоритм — алгоритм, содержащий структуру ветвления.
12.6. Циклический алгоритм
Общее представление
Многие процессы в окружающем мире основаны на многократном повторении одной и той же последовательности действий.
Каждый год наступают весна, лето, осень и зима. Жизнь растений в течение года проходит одни и те же циклы. Подсчитывая число полных поворотов минутной или часовой стрелки, человек измеряет время.
Алгоритмы, которые содержат описания повторяющихся действий, принято называть циклическими.
Циклические алгоритмы могут содержать разные типы циклов. Классификация типов циклов представлена на рисунке 12.9 и подробно рассмотрена далее.
Циклический алгоритм — алгоритм, содержащий типовую конструкцию «цикл».
Тело цикла — описание действий, повторяющихся в цикле.
Рис. 12.9. Типы циклов
Цикл с известным числом повторений
Цикл с известным числом повторений часто называют «циклом ДЛЯ». Рассмотрим примеры циклических алгоритмов с известным числом повторений.
Пример 12.11
В различных журналах приводятся упражнения, которые необходимо повторять заданное число раз. Рассмотрим пример упражнения для глаз. Особенно это полезно тем, кто долго сидит за компьютером. Подобные алгоритмы чаще всего представляются в словесной или графической форме.
Алгоритм «Упражнение для глаз»
1. Возьмите карандаш.
2. Установите его в исходное положение у кончика носа.
3. Повторите 10 раз, следя за движением карандаша:
a. Переместите карандаш на расстояние вытянутой руки;
b. Верните карандаш в исходное положение.
4. Положите карандаш. Конец алгоритма
В этом примере заранее известно число повторений. Цикл закончится, когда действия пунктов а и b повторятся 10 раз. Действия а и Ь, повторяющиеся в цикле, определяют тело цикла.
Пример 12.12
Требуется подвести итоги контрольной работы.
Исходными данными для этой задачи являются:
b — балл теущего ученика;
n — количество учеников.
Расчетные данные:
s — сумма баллов;
sr — средний балл.
Решение этой задачи представим на школьном алгоритмическом языке в таблице 12.3.
Таблица 12.3. Алгоритм «Итоги» на школьном алгоритмическом языке
Здесь нц, кц — служебные слова, обозначающие соответстенно начало и конец цикла.
В этом примере повторяются следующие операции:
♦ ввод оценки каждого ученика;
♦ добавление ее к общей сумме.
Эти операции составляют тело цикла. Число повторений в цикле равно количеству учащихся в классе.
Цикл с постусловием
Не всякую циклическую задачу можно решить с помощью цикла с известным числом повторений. В некоторых задачах число повторений заранее неизвестно. Для организации циклической последовательности действий и выхода из нее к другому фрагменту алгоритма используется условие, которое ставится в конце тела цикла.
Цикл с неизвестным числом повторений, в котором выход из цикла осуществляется при выполнении условия, принято называть «циклом с постусловием» или «циклом ПРИ».
Рассмотрим алгоритмы решения циклических задач с неизвестным числом повторений.
Пример 12.13
После соревнований по бегу рекомендуется измерить пульс. Измерение пульса можно описать следующим алгоритмом.
Алгоритм «Пульс»
1. Удобно положите левую руку ладонью вверх.
2. Два пальца правой руки положите на запястье левой руки.
3. Заметьте положение секундной стрелки.
4. Сосчитайте очередной удар.
5. Посмотрите на часы.
6. Если секундная стрелка прошла полный круг, то закончите действия, иначе перейдите к п. 4.
Конец алгоритма
В этом примере действия закончатся, когда секундная стрелка пройдет полный круг, то есть условие «Стрелка прошла полный круг» будет выполнено, в противном случае действия будут продолжаться. На рисунке 12.10 приведена блок-схема этого алгоритма. На блок-схеме видно, что проверка условия стоит в конце цикла.
Рис. 12.10. Блок-схема алгоритма «Пульс»
Пример 12.14
Требуется рассчитать время работы батарейки в часах с кукушкой, если известно, что заряда хватает примерно на 1000 звуковых сигналов «ку-ку». Однократный звуковой сигнал звучит, когда минутная стрелка показывает 30 минут. Начало каждого часа сопровождается повторением сигнала столько раз, сколько показывает часовая стрелка (от 1 до 12).
Расчетными данными для этой задачи являются:
t — обозначение текущего часа;
к — количество звуковых сигналов.
Алгоритм «Кукушка» представим на школьном алгоритмическом языке в таблице 12.4.
В этом алгоритме повторяются следующие действия:
♦ определение значения текущего часа;
♦ определение количества звуковых сигналов.
Эти действия составляют тело-цикла.
Цикл заканчивается, если количество поданных звуковых сигналов превысило 1000, что является признаком выработки ресурса батарейки.
Таблица 12.4. Алгоритм «Кукушка» на школьном алгоритмическом языке
Из рассмотренных примеров 12.13 и 12.14 видно, что цикл с постусловием имеет следующие особенности:
♦ проверка условия осуществляется в конце цикла, поэтому тело цикла выполняется хотя бы один раз;
♦ цикл заканчивается по выполнению условия.
Цикл с предусловием
Рассмотрим другой тип цикла, в котором проверка условия осуществляется в начале цикла. Для организации циклической последовательности действий и выхода из нее к другому фрагменту алгоритма используется условие, которое ставится в начале тела цикла. Цикл с неизвестным числом повторений, в котором цикл продолжается, пока выполняется условие, принято называть «циклом с предусловием» или «циклом ПОКА».
Пример 12.15
На даче требуется наполнить бочку водой. Действия по наполнению бочки можно описать следующим алгоритмом.
Алгоритм «Бочка»
1. Подойдите к бочке.
2. Если бочка неполная (есть место для воды), то перейдите к п. 3, иначе конец алгоритма.
3. Наберите ведро воды.
4. Вылейте ведро в бочку.
5. Перейдите к п. 2. Конец алгоритма
На блок-схеме (рис. 12.11) видно, что условие проверки стоит в самом начале цикла.
Рис. 12.11. Блок-схема алгоритма «Бочка»
Такой цикл получил название цикла с предусловием.
Возможна ситуация, что цикл закончится так и не начавшись, например, если бочка наполнилась из-за прошедшего накануне дождя. В этом цикле при выполнении условия «есть место для воды» действия продолжаются, при невыполнении — заканчиваются.
Пример 12.16
Требуется проверить число на симметричность (примеры симметричных чисел: 12321, 8668).
Исходными данными для этой задачи является введенное число n.
Для промежуточных вычислений будут использоваться переменные:
s — для записи цифр числа п в обратном порядке;
nl — для дублирования введенного числа п.
В алгоритме используются функции:
mod — вычисление остатка от деления на 10;
div — определение целой части числа.
Решение этой задачи представим в виде программы на школьном алгоритмическом языке в таблице 12.5.
Таблица 12.5. Алгоритм «Симметричное число» на школьном алгоритмическом языке
В этом алгоритме в цикле получается перевернутое число, которое затем сравнивается с введенным. Если они равны, то введенное число симметрично. Цикл выполняется до тех пор, пока nl при целочисленном делении на 10 не превратится в 0. Если введенное число равно 0, то цикл не выполнится ни разу, но будет выдан ответ «Число симметричное».
Из рассмотренных примеров 12.15 и 12.16 видно, что цикл с предусловием имеет следующие особенности.
— проверка условия осуществляется в начале цикла, поэтому тело цикла может не выполниться ни одного раза;
— цикл заканчивается при невыполнении условия;
— цикл является универсальным, так как с помощью этого цикла можно решить любую циклическую задачу.
Практикум
Линейные алгоритмы
Выполнив задания этой темы, вы научитесь:
— представлять линейный алгоритм в различных формах;
— использовать линейные алгоритмы при решении задач;
— применять переменные для хранения данных; осуществлять ввод-вывод информации.
Как вам уже известно, существуют различные типы алгоритмов и разные формы их представления.
Для представления линейного алгоритма в виде блок-схемы используются блоки ввода-вывода, выполнения действий, вызова вспомогательного алгоритма.
Для представления линейного алгоритма в виде программы используются операторы ввода-вывода, оператор присваивания, оператор вызова вспомогательного алгоритма.
Задание 8.1
Коллекция Эрмитажа содержит более 2 800 ООО единиц хранения. Если у каждого музейного экспоната задержаться всего на 5 минут и проводить в Эрмитаже по 8 часов каждый день, то может не хватить жизни, чтобы ознакомиться со всей коллекцией. Требуется вычислить суммарное время просмотра всей коллекции в минутах, часах, днях, годах, «жизнях», считая, что средняя продолжительность жизни в Роcсии составляет 70 лет.
Словесный алгоритм Начало алгоритма
• в минутах;
|
Алгоритм в виде программы
В табл. 8.1 приведена программа к заданию на школьном алгоритмическом языке Кумир (с пояснениями). В табл. 8.2 приведены тексты программ на языках программирования Паскаль и Visual Basic.
Таблица 8.1. Программа на Кумире с пояснениями (к заданию 8.1)
Таблица 8.2. Примеры программ на Паскале и Visual Basic (к заданию 8.1)
Задание 8.2
Требуется рассчитать параметры прямоугольного треугольника с углом 30° по заданному катету, лежащему против угла 30°.
Словесный алгоритм
|
Алгоритм в виде программы
В табл. 8.3 приведена программа к заданию на школьном алгоритмическом языке Кумир. В табл. 8.4 приведены тексты программ на языках программирования Паскаль и Visual Basic.
Таблица 8.3. Программа на Кумире с пояснениями (к заданию 8.2)
Таблица 8.4. Примеры программ на Паскале и Visual Basic (к заданию 8.2)
Задание 8.3
На памятнике Пифагору высечен чертеж вписанного в цилиндр шара, так как Пифагор нашел соотношение между их объемами. Современный почитатель гения Пифагора решил создать объемный памятник в честь этого открытия. Городские власти определили статус памятника — скульптура малой формы, и выделили для него небольшую площадь. Требуется рассчитать объем цилиндра и вписанного в него шара по заданной площади основания памятника (цилиндра) и убедиться в правильности выведенного Пифагором соотношения.
Словесный алгоритм
| Рис. 8.3. К заданию 8.3 |
Алгоритм в виде программы
В табл. 8.5 приведена программа к заданию на школьном алгоритмическом языке Кумир. В табл. 8.6 приведены тексты программ на языках программирования Паскаль и Visual Basic.
Таблица 8.5. Программа на Кумире с пояснениями (к заданию 8.3)
Таблица 8.6. Примеры программ на Паскале и Visual Basic (к заданию 8.3)
Контрольные вопросы и задания
К заданию 8.1
1. Разработчик алгоритма к заданию 8.1 (рис. 8.1), введя переменную п, хотел придать алгоритму свойство массовости. Какие еще переменные следует ввести, чтобы алгоритм соответствовал этому свойству в полной мере?
2. В приведенном последовательном алгоритме порядок вывода расчетных данных можно изменять. Какие команды в приведенных программах нельзя переставлять? Почему?
3. На блок-схеме представлены два блока вывода информации на экран. В чем их различие?
4. Запишите в тетради имена переменных, которые были использованы в процессе решения задания. Напишите под ними значения переменных, полученные в результате тестирования.
5. Что происходит в результате выполнения блока 3 представленного алгоритма?
6. Добавьте в программу блок вычислений, определяющий, сколько экспонатов в день удастся посмотреть посетителю.
К заданию 8.2
1. Замените в программе формулу расчета катета b = a-j3 и убедитесь, что результат от этого не изменится.
2. Используя готовый каркас блок-схемы, заполните его таким образом, чтобы по новой блок-схеме вычислялись высота и площадь равнобедренной трапеции с углом при основании 45° (рис. 8.5). Задание выполните в тетради.
3. Напишите текст программы на Кумире или другом языке для полученной блок-схемы.
4. Что надо изменить в условии задачи, чтобы расширить границы применимости алгоритма?
5. Из пояснительного рисунка видно, что а > b. Что произойдет, если при вводе а и b это соотношение будет нарушено?
К заданию 8.3
1. При расчетах радиуса и объемов используется константа 3,1415926. Что нужно изменить в программе, чтобы не набирать ее каждый раз заново?
2. В примере программы на языке Кумир тип используемых переменных описан следующим образом: вещ r, s, vshara, veil, k. Что означает эта запись? Почему для переменных выбран такой тип?
3. В формуле вычисления объема шара используется формула V — r3. В примерах программ на разных языках она записана по-разному. Есть ли здесь ошибки? Объясните, что означают разные записи? Придумайте такой вид записи, который будет верен для всех языков.
Рис. 8.5. Чертеж для вычисления высоты и площади равнобедренной трапеции
4. Можно ли изменить последовательность операторов расчета?
Разветвляющиеся алгоритмы
Выполнив задания этой темы, вы научитесь:
— использовать различные структуры ветвления;
— использовать простые и сложные условия;
— использовать вложенные ветвления;
— использовать структуру множественного выбора при наличии более чем двух ситуаций;
— тестировать алгоритм в пошаговом режиме для проверки всех его ветвей.
Для представления разветвляющегося алгоритма в виде блок-схемы используются блоки принятия решения. Для представления разветвляющегося алгоритма в виде программы используются условные операторы и операторы выбора (если вариантов выбора больше двух).
Задание 8.4
Требуется разработать алгоритм проверки принадлежности введенного числа данной арифметической прогрессии. Прогрессия задается двумя последовательными членами.
Словесный алгоритм
Начало алгоритма
1. Введите два последовательных члена арифметической
прогрессии.
2. Введите произвольное целое число.
3. Найдите разность (d) арифметической прогрессии.
4. Найдите разность между введенным числом и
членом арифметической прогрессии.
5. Найдите остаток от деления нацело найденной
разности на d.
6. Организуйте проверку остатка:
— если остаток от деления равен 0, выведите сообщение:
«Число принадлежит рассматриваемой арифметической
прогрессии»;
— иначе выведите сообщение:
«Число не принадлежит рассматриваемой
арифметической прогрессии».
Конец алгоритма
Алгоритм в виде блок-схемы
Алгоритм в виде программы
В табл. 8.7 приведена программа к заданию на алгоритмическом языке Кумир. В табл. 8.8 приведены тексты программ на языках программирования Паскаль и Visual Basic.
Таблица 8.7. Программа на Кумире с пояснениями (к заданию 8.4)
Таблица 8.8. Примеры программ на Паскале и Visual Basic (к заданию 8.4)
Задание 8.5
Из «Арифметики» таджикского ученого Авиценны (X-XI вв.) известно следующее свойство целых чисел: если число, будучи разделено на 9, дает в остатке 1 или 8, то квадрат этого числа, деленный на 9, даст 1. Требуется подтвердить верность свойства или опровергнуть его.
Словесный алгоритм
Начало алгоритма
1. Введите целое число.
2. Найдите остаток от деления этого числа на 8.
3. Организуйте проверку остатка на равенство 1 или 8:
• если остаток от деления равен 1 или 8, то:
а) найдите квадрат введенного числа;
б) найдите остаток от деления квадрата числа на 9;
в) организуйте проверку остатка от деления:
если остаток равен 1, то выведите сообщение «Свойство верно»,
иначе выведите сообщение «Свойство не верно»;
• иначе (остаток от деления не равен 1 и остаток от деления
не равен 8) выведите сообщение «Остаток от деления < > 1
и Остаток от деления < > 8».
Конец алгоритма
Алгоритм в виде блок-схемы
Рис. 8.7. Блок-схема алгоритма (к заданию 8.5)
Алгоритм в виде программы
В табл. 8.9 приведена программа к заданию на алгоритмическом языке Кумир. В табл. 8.10 приведены тексты программ на языках Паскаль и Visual Basic.
Таблица 8.9. Программа на Кумире с пояснениями (к заданию 8.5)
Таблица 8.10. Примеры программ на Паскале и Visual Basic (к заданию 8.5)
Задание 8.6
Требуется определить тип треугольника по двум введенным углам. При выполнении задания необходимо учесть ситуации некорректного ввода данных, например: 90, 90 или 120, 80.
Словесный алгоритм
Начало алгоритма
1. Введите два угла треугольника в градусах.
2. Организуйте проверку типа треугольника:
• если сумма двух углов меньше 180°, то вычислите значение
третьего угла и рассмотрите три ситуации:
а) если все углы острые, то выведите сообщение
«Треугольник остроугольный»;
б) если один из углов равен 90°, то выведите сообщение
«Треугольник прямоугольный»;
в) в противном случае выведите сообщение
«Треугольник тупоугольный »;
• иначе (если сумма углов больше 180°) выведите сообщение
«Некорректный ввод».
Конец алгоритма
Алгоритм в виде блок-схемы
Фраза «один из углов равен 90°» в словесном алгоритме понятна человеку. Для компьютера ее следует детализировать, рассмотрев три ситуации (для каждого из углов ul, u2, u3). На алгоритмическом языке эта проверка может выглядеть следующим образом: ((ul = 90) и (и2 о 90) и (иЗ < > 90)) или ((и2 = 90)
и (ul о 90) и (u3 < > 90)) или ((иЗ = 90) и (ul < > 90) и (и2 < > 90)).
Чтобы упростить проверку, в алгоритм должен быть введен блок, обеспечивающий условие «сумма углов = 180». После этого достаточно рассмотреть выполнение условия «(ul = 90) или (и2 = 90) или (иЗ = 90)».
Алгоритм в виде программы
В табл. 8.11 приведена программа к заданию на алгоритмическом языке Кумир. В табл. 8.12 приведены тексты программ на языках Паскаль и Visual Basic.
Таблица 8.11. Программа на Кумире с пояснениями (к заданию 8.6)
Таблица 8.12. Примеры программ на Паскале и Visual Basic (к заданию 8.6)
Контрольные вопросы и задания
К заданию 8.4
1. Какое сообщение будет получено в результате выполнения алгоритма и программ, если введенное число с будет равно al или а2?
2. Могут ли быть введены различающиеся по знаку или отрицательные числа al и а2?
3. Что надо изменить в блок-схеме и программе, чтобы они работали с тремя последовательными членами геометрической прогрессии (al, а2 — являются членами, с — следует проверить)?
4. Найдите на блок-схеме (см. рис. 8.6) блок ветвления и определите, является ли ветвление полным или нет.
К заданию 8.5
1. Заполните таблицу тестирования для числа 10 (см. табл. 8.9).
2. Почему в 7-й строке табл. 8.9 тестирования (первый тест) ничего нет?
3. Достаточно ли представленных в табл. 8.9 тестов, чтобы проверить все ситуации, которые могут возникнуть при выполнении программ (все ветви алгоритма)?
4. Можно ли объединить оба условия проверки (пп. 5 и 8) в одно сложное условие? Напишите логическое выражение для подобной проверки.
5. Составьте самостоятельно фрагмент блок-схемы алгоритма для приема менеджера на работу по следующим условиям:
• возраст от 30 до 40 лет;
• знание персонального компьютера или стаж работы по специальности не менее 5 лет.
К заданию 8.6
1. Почему при формировании сложного условия (см. табл. 8.11, п. 6) использована логическая связка И, а не ИЛИ?
2. Почему при формировании сложного условия (см. табл. 8.11, п. 8) использована логическая связка ИЛИ, а не И?
3. В алгоритме и программе тупоугольный треугольник определяется по веткам «иначе» (не прямоугольный и не остроугольный). Напишите самостоятельно сложное условие, определяющее, является ли треугольник тупоугольным.
4. Выполните тестирование программы для угла 900.
5. Дополните алгоритм и программу блоком проверки положительных значений углов.
Линейный и разветвляющийся алгоритмы
Основные задачи урока:
- Образовательные: Продолжить формировать у учащихся представление
об алгоритме. Познакомить учащихся с типами и способами записи алгоритмов.
Научить составлять и выполнять алгоритмы. - Воспитательные: Содействовать воспитанию таких личностных
качеств, как чувство ответственности, самостоятельности, инициативы,
бережного отношения к технике. - Развивающие: Развивать у школьников логическое мышление, память,
внимание, воображение, познавательную активность, способность быстро
воспринимать информацию, умение слушать, вникать в суть изученного
материала, вести диалог, делать обобщения, развивать познавательные
интересы, используя разные формы закрепления изученного материла. - Здоровьесберегающие: Формировать у учащихся основы здорового
образа жизни и добиться выполнения элементарных правил здоровьесбережения.
Тип урока : Комбинированный
Оборудование урока: ЭВМ, м/м установка, раздаточные карточки
Ход урока
1. Организационная часть (2 мин)
– Здравствуйте! Желаю всем здоровья! Такими словами приветствуют друг друга,
справляясь о здоровье. А здоровы ли вы, дорогие друзья? Хорошее ли у вас сегодня
настроение? У вас на столе лежат карточки с изображением солнца и тучи.
Покажите, какое у вас настроение. Я очень рада, что у вас все отлично! В народе
говорят: “Здоровому все здорово”. Здоровый человек красив и приятен в общении,
легко преодолевает трудности, умеет по-настоящему и работать, и отдыхать.
– В ходе урока вы будете сами себе выставлять оценки по каждому виду
деятельности в лист самопроверки. За каждый правильный ответ нужно поставить
“+”. Пять плюсов соответствует оценке “5”. Подпишите свой листок. В ходе урока
вы так же можете поднимать сигналы-карточки с изображением солнца– если
справились с заданием и, если кто-то испытывает затруднение, тот поднимает
сигнал с изображением тучи.
Лист самопроверки.
ФИО ______________________________
№ | Вид деятельности | Итог (+,-) | Оценка |
1 | Разминка | ||
2 | Работа по карточке | ||
3 | Практическая работа на компьютере |
2. Актуализация опорных знаний (5 мин)
– Но, а вначале проведем небольшую разминку и вспомним с вами правила техники
безопасности при работе на ЭВМ.
Разминка (вопросы на м/м, слайды )
– Определите, по какому признаку объединены термины в каждой группе, и
найдите термин, логически не связанный с другими.
- Мухаммед аль– Хорезми, физкультурник, алгоритм, математика
- Пуск, программы, Стандартные , Microsoft WORD
- Надпись , заливка, распылитель, щетка
- Жирные, руки, работать, компьютер
- Самостоятельно, включать, указания,
соблюдать - Неисправность, сообщить, самостоятельно, устранить.
– Ребята, посмотрите на тему урока. Какие новые слова вам встретились? Как вы
думаете, о чем мы с вами будем говорить сегодня на уроке? (Дети формулируют цель
урока)
Итак, поставим пред собою цель,
чтоб после этого урока
мог каждый другу рассказать,
как составлять алгоритмы,
рисовать блок – схемы,
и конечно, получить при этом 5!
У вас на столе лежат карточки со словами. Попробуйте из них выстроить эпиграф
нашего урока:
Здоровье – это вершина, на которую человек должен подняться сам.
И. Брехман.
А как вы думаете, почему взяты эти слова?
Запишите число, тему урока.
Любой сложный алгоритм можно составить, используя в разных комбинациях
типовые алгоритмические конструкции: линейную, разветвляющуюся, циклическую и
вспомогательную.
Сегодня мы с вами рассмотрим линейный и разветвляющийся алгоритмы.
Линейный алгоритм – это такой алгоритм, при выполнении которого
исполнитель выполняет одну команду за другой в порядке их следования. .
(определение в тетрадь)
Каждый день вы выполняете множество линейных алгоритмов, даже не подозревая
об этом. Например, алгоритм отпирания дверей, включения телевизора,
приготовления бутерброда.
Существуют также разные способы описания алгоритма: на естественном языке
(словесный способ) с помощью слов и предложений. Давайте устно составим
словесный алгоритм “Открывание двери”.
Для более наглядного представления алгоритма широко используется графическая
форма – блок – схема, которая составляется из стандартных графических объектов
(рис. 1).
Рис. 1
Слайд Алгоритм “Соберись в школу” (разбор вместе с детьми).
Приложение
Шаг за шагом,
Шаг за шагом
Я команды выполняю,
Никуда не отклоняюсь,
По линеечке иду.
И зовут меня
Все мои друзья –
Алгоритм Линейный, —
Это, братцы, я!
Это все были линейные алгоритмы
3. Объяснение нового материала. (10 мин)
Давайте посмотрим на картину Виктора Васнецова “Витязь на распутье” (рис. 2).
Рис. 2
– Что мы здесь видим?
– Почему витязь задумался и остановил своего коня?
– Сколько дорог лежит перед витязем?
– Какую дорогу на ваш взгляд выберет витязь?
– А теперь представьте, ребята, что нам необходимо написать программу выбора
пути для героя Васнецова. Сможем ли мы это сделать при помощи линейной
структуры?
– Камень, перед которым замер витязь, очень похож на новую алгоритмическую
структуру “Ветвление в алгоритмах”, изображаемую при помощи блок-схемы – это
ромб (рис. 3).
Рис. 3
Данная фигура вводится в блок-схему тогда, когда появляется некоторое
условие.
В нашем случае это может быть вопрос: Витязь поедет направо? И тогда на этот
вопрос мы можем дать только два ответа: “ДА” или “НЕТ”. Вот поэтому у ромба две
ветви, на одну можно вступить, ответив “ДА”, на другую – “НЕТ”.
Разветвляющийся алгоритм – алгоритм, в котором в зависимости от условия
выполняется либо одна, либо другая последовательность действий. (определение
в тетрадь)
(рис. 4).
Рис. 4
Я зовусь Ветвление,
Милые друзья!
Зависит от условия
Вся судьба моя:
Если ты ответишь “ДА”,
Буду вычитать,
А иначе, а иначе –
Песни распевать.
Слайд Алгоритм “ Цирк ” (разбор вместе с детьми)
4. Закрепление материала (5 мин) “Сенсорный крест”. На доске висят
карточки разных цветов, Выберите понравившуюся и выполните задание.
Карточка 1. Выполни алгоритм (рис. 5).
Рис. 5
Карточка 2. Расставь в алгоритме действия (рис. 6).
Карточка 3 (рис. 7)
Рис. 7
Придумай и напиши вопрос, который может отменить прогулку.
Карточка 4
Составь алгоритм “Заваривание чая”, расставь действия в нужном порядке:
- Залить кипятком заварной чайник.
- Вскипятить воду.
- Накрыть чайник специальной грелкой.
- Ополоснуть кипятком заварной чайник.
- Засыпать в чайник заварку.
- Подождать до полного заваривания 5 минут.
- Приготовить заварку.
5. Физкультминутка. (2 мин)
Комплекс упражнений для глаз под мелодию вальса.
6. Практическая работа на компьютере. (10 мин)
Задание 1: с помощью программы Paint, используя элементы меню готовых
форм, составьте блок – схему алгоритма “Собери портфель” (рис. 8).
Задание 2 (рис. 9)
Рис. 9
Сравните полученные результаты с образцом. (Слайд)
Приложение
7. Рефлексия результативности, настроения. (3 мин)
(Звучит мелодия).
Ребята, давайте еще раз вспомним , какая цель нашего урока?
Подсчитайте количество “+” и поставьте себе оценку за урок. Передайте мне
листочки.
Оценки.
А раз цель урока была научиться составлять и выполнять алгоритмы, поэтому
итог урока мы подведем тоже с помощью алгоритма. Перед вами на слайде алгоритм,
выполните его! (Рис. 10) . У вас на столах лежат
фигурки человечков.
Рис. 10
Я себя нарисовала на вершине горы, потому что организовала вашу работу так,
что вы самостоятельно добыли знания, научились составлять и исполнять алгоритмы.
Рефлексия настроения. (Звучит мелодия). Ребята, поскольку мы достигли
цели нашего урока, то настроение у меня вот такое: (показываю солнце).
А какое настроение у вас?
Домашнее задание (1 мин): Составить линейный и разветвляющийся
алгоритмы в словесной форме и в виде блок – схемы.
Спасибо за урок, всем доброго здоровья.
Презентация. Приложение.
Линейный алгоритм
Линейный
алгоритм(следование) состоит из
последовательности операций, выполняющихся
только один раз в порядке их следования.
Рис.
1 Линейная структура алгоритма
Разветвляющийся алгоритм
Разветвляющийся
алгоритм(ветвление) обеспечивает
выбор между двумя альтернативами.
Выполняется проверка, а затем выбирается
один из путей.
Подобная
структура называется также «ЕСЛИ – ТО
– ИНАЧЕ», или «развилка». Каждый из
путей (ТО или ИНАЧЕ) ведет к общей точке
слияния, так что выполнение программы
продолжается независимо от того, какой
путь был выбран.
Может
оказаться, что для одного из результатов
проверки ничего предпринимать не надо.
В этом случае можно применять только
один обрабатывающий блок.
Рис. 2 | Рис. 3 Структура |
Циклический алгоритм
Циклический
алгоритм(Цикл) содержит некоторую
последовательность операций, выполняемую
многократно. Основной блок цикла, тело
цикла, производит требуемые вычисления.
Остальные блоки организуют циклический
процесс: устанавливают начальные и
новые значения данных, проверяют условия
окончания или продолжения циклического
процесса.
Различают
два типа структур цикла: цикл с
параметромилис повторением ицикл с условием. Циклический алгоритм
позволяет компактно описать большое
число одинаковых вычислений над разными
данными для получения необходимого
результата.
Циклы
с параметромиспользуют тогда, когда
количество повторов тела цикла заранее
известно. Схематично такой цикл и
зображен на рис. 6.
Циклы
с условиемиспользуются тогда, когда
число повторений заранее неизвестно,
но задано условие окончания цикла.
Причем, если условие окончания цикла
проверяется перед выполнением тела
цикла, то такие циклические структуры
называют цикламис предусловием(«Выполнять пока» рис. 4), а если проверка
условия происходит после выполнения
тела цикла – цикламис постусловием(«Выполнять до тех пор пока не» рис.5).
Рис. 4 | Рис. 5 | Рис. 6 |
Объекты алгоритма
Решение
любой задачи предполагает наличие
реальных объектов – объектов задачи.
Например.
При решении задачи о начислении зарплаты
сотрудникам предприятия объектом задачи
могут быть: табельный номер сотрудника,
его фамилия, имя, отчество, оклад,
отработанное время и т.д. При решении
системы уравнений объектами задачи
являются – число уравнений, коэффициенты
уравнений, правые части.
Каждый
объект задачи имеет свои характеристики
(атрибуты). Фамилии и наименования –
это строки символов, а коэффициенты
уравнений, количество выпускаемой
продукции – это числовые константы,
представленные арифметическими
выражениями или числами.
Если
выполнение алгоритма возложено на ЭВМ,
необходима строгая формализация задачи.
Она предполагает замену объектов задачи
– объектами алгоритма, которые должны
наследовать их атрибуты. При разработке
алгоритма могут появиться вспомогательные
объекты не соответствующие никаким
объектам задачи.
В
практике программирования число базовых
объектов невелико. Это константы,
переменные массивы, файлы и некоторые
другие.
Понятие
константы. Например, в задаче нужно
вычислить длину окружностиL= π *D, здесьLиD– объекты задачи,
а π – величина постоянная в любой задаче,
т.е. это константа.
Константа
может быть не только числом. Например,
в некотором списке фамилий определяется
наличие фамилии Иванов. В алгоритме
фамилия – это объект, а Иванов –
символьная константа.
Константа
– это объект алгоритма. Каждая константа
как объект алгоритма имеет фиксированный
тип (арифметический, символьный или
другой) и имеет фиксированное, неизменяемое
в данном алгоритме значение, соответствующее
ее типу. Значение константы обычно
определено в условии задачи и известно
до начала разработки алгоритма.
Понятие
переменной. Переменная – это объект
алгоритма, который имеет определенный
фиксированный тип (арифметический,
символьный или другой) и который в каждый
момент исполнения алгоритма имеет
единственное значение соответствующего
типа. К моменту использования переменной
в алгоритме ее значение должно быть
определено. В ходе выполнения алгоритма
значение переменной может изменяться.
Например,
требуется вычислить и напечатать
значение функции при изменении аргумента
от заданного начального значения до
заданного конечного значения с заданным
шагом. Начальное значение, конечное
значение, шаг – объекты задачи, которые
в условии задачи не определены. Эти
значения станут известны по ходу
выполнения алгоритма: введены пользователем
или получены в результате вычислений.
Если не предусмотреть механизм их
определения, исполнение алгоритма будет
невозможно.
Имя
объекта алгоритма. Каждый объект
в алгоритме фигурирует под своим именем.
Имя это неизменно, фиксировано и
уникально. Имена для объектов устанавливает
автор алгоритма. Рекомендуется выбирать
мнемонические имена, которые отражают
суть объекта.
Понятие
массива. Массив – объект алгоритма.
Во многих случаях разрозненные переменные
удобно объединить в совокупность –
массив, именуя все коэффициенты общим
именем (именем массива) и индексами
(номерами в массиве).
Индекс
элемента массива позволяет обратиться
к элементу массива «напрямую». По индексу
массив строго упорядочен.
Массивом называется
конечная упорядоченная совокупность
данных одного типа, доступ к каждому
осуществляется по его индексу.
В
задачах используются как одномерные,
так и многомерные массивы. Для указания
положения элемента в двумерном массиве
используют два индекса – сначала номер
строки, затем номер столбца. Массивы
могут быть как числовыми, так и символьными.
В любом
алгоритме всегда присутствует раздел
инструкций (выполнения действий), который
имеет одну точку входа (НАЧАЛО) и одну
точку выхода (КОНЕЦ). Закодированная
форма инструкции, несущая определенный
смысл называется оператором.
Рис.
7 – Пример записи алгоритм сортировки
выбором с помощью блок-схемы
Типы алгоритмов
Что такое алгоритм?
Определение 1
Алгоритм — это некоторый набор инструкций, описание действий исполнителя для достижения поставленной цели/результата за определенное количество так называемых шагов (итераций).
Понятие алгоритма появилось еще в IX веке нашей эры и произошло от имени его создателя, известного математика Мухаммеда ибн Муса ал-Хорезми (Alhorithmi). Наука, занимающаяся формированием и созданием алгоритмов, называется алгоритмикой.
Классификация алгоритмов
Как правило, основой для классификации алгоритмов является порядок выполнения команд (шагов). На основании данного признака специалисты в данной области выделяют три основных типа алгоритмов:
- Линейные алгоритмы;
- Алгоритмы с разветвлением;
- Циклические алгоритмы.
Каждый из типов алгоритмов имеет свои особенности, которые будут рассмотрены далее.
Линейные алгоритмы
Линейным алгоритмом называется алгоритм, в котором последовательность записанных команд (действий) осуществляется строго согласно порядка их записи без каких-либо изменений. Как правило, такой алгоритм составляется из нескольких базовых структур следования.
Готовые работы на аналогичную тему
Простым примером линейного алгоритма может выступить алгоритм утренних действия:
- Проснуться;
- Встать с постели;
- Обуть тапочки;
- Зайти в ванную;
- Почистить зубы;
- Вернуться в комнату;
- Застелить постель;
- Одеться;
- Приготовить завтрак;
- Позавтракать.
Т. е. действия выполнятся последовательно, одно за другим. Пример записи линейного алгоритма представлен на рисунке 1.
Рисунок 1. Линейный алгоритм. Автор24 — интернет-биржа студенческих работ
Для составления линейного алгоритма необходимо:
- Определить тип и присвоить имена переменных;
- Определить тип окончательного результата, присвоить имя этой переменной;
- Определить и обозначить связь между исходными переменными и переменной результата;
- При необходимости ввода промежуточных переменных, определить их тип, присвоить имена, обозначить связь с исходными переменными и переменной результата;
- Записать алгоритм, который отражает ввод данных, вычисление, вывод окончательного результата;
- Протестировать полученный алгоритм на предмет его корректного функционирования.
Замечание 1
Исключительно линейные алгоритмы применяются достаточно редко, обычно при расчете простых формул и решения простейших задач.
Алгоритмы с разветвлением
Как отмечено ранее, ситуации, когда применение линейных алгоритмов целесообразно, встречаются достаточно редко. Они применяются, как правило, для элементарных вычислений, гораздо чаще возникают задачи, когда необходимо принятие решения в зависимости от сложившихся обстоятельств (условий). Для решения таких задач и используются алгоритмы с ветвлением.
Разветвляющиеся алгоритмы представляют собой алгоритм, последовательность выполнения команд которого находится в зависимости от соответствия заявленному условию. Команда «ветвления» относится к структурным командам. Выполнение такой команды всегда происходит в несколько шагов: проверка заданного условия и дальнейшее исполнение команд по одной из ветвей: «да» или «нет».
Простым примером разветвляющегося алгоритма может выступить алгоритм выбора одежды перед выходом на улицу:
- Есть ли на улице дождь?
- Если дождь идет, то необходимо надеть плащ.
- Если дождя нет, холодно на улице?
- Если холодно, надеть джемпер;
- Если не холодно, надеть футболку.
Замечание 2
В структуре такого алгоритма может быть любое количество условий. Таким образом, сначала проверяется выполнение логического выражения (Есть ли на улице дождь?), затем выполняется одно из условий в соответствии с выбором ответа.
Пример записи разветвляющегося алгоритма представлен на рисунке 2.
Рисунок 2. Автор24 — интернет-биржа студенческих работ
Алгоритм с разветвлением
Для составления разветвляющегося алгоритма необходимо:
- Установить какие могут быть варианты операций и их количество;
- Количество условных операторов (которые и отражают заданное условие) должно быть на одну единицу меньше, чем количество существующих вариантов;
- Понять, при соответствии каким из условий будет реализован каждый их установленных вариантов;
- Если в алгоритме существует больше двух условий, то необходимо задать и последовательность проверки данных условий;
- Записать алгоритм, который отражает ввод данных, вычисление, вывод окончательного результата;
- Протестировать полученный алгоритм на предмет его корректного функционирования.
Стоит отметить, разветвляющиеся алгоритмы могут быть как полными, так и неполными. Пример таких алгоритмов представлен на рисунках 3-4.
Рисунок 3. Алгоритм с полным разветвлением. Автор24 — интернет-биржа студенческих работ
Рисунок 4. Алгоритм с неполным разветвлением. Автор24 — интернет-биржа студенческих работ
Разветвляющие алгоритмы встречаются чаще линейных, но не являются самыми популярными и используемыми в сфере программирования.
Циклические алгоритмы
Чаще всего автоматизируют процессы, выполнение которых необходимо большое количество раз. Поэтому для целей автоматизации наиболее часто используют циклические алгоритмы. Такие алгоритмы используют для решения задач, в которых действия необходимо повторить несколько раз, до тех пор, пока соблюдается заданное ранее условие (выполнение цикла).
Циклические алгоритмы представляют собой алгоритмы, которые обеспечивают выполнение заранее заданного цикла.
Простым примером циклического алгоритма может выступить необходимость посещений школы или университета в будние дни. Данный цикл прекращается при выполнении условия наступления выходных или праздничных дней.
Пример записи циклического алгоритма представлен на рисунке 5.
Рисунок 5. Циклический алгоритм. Автор24 — интернет-биржа студенческих работ
Для составления циклического алгоритма необходимо:
- Установить, какая из последовательностей операций должна быть в основе цикла;
- Определить вводные данные о количестве повторений тела цикла до начала цикла. Исходя из этих данных, определить какой из видов циклического цикла наиболее целесообразно использовать: цикл с параметром, постусловием или предусловием;
- Установить условие окончания выполнения заданного цикла;
- Установить вводные переменные;
- Записать алгоритм, который отражает ввод данных, вычисление, вывод окончательного результата;
- Протестировать полученный алгоритм на предмет его корректного функционирования.
Линейные алгоритмы паскаль примеры
Линейный алгоритм
Линейным называется алгоритм, в котором команды выполняются последовательно друг за другом. Это самая простая конструкция. Программирование линейных алгоритмов освоить очень легко. Для написания простых программ на паскале разберем основные правила записи кода.
Структура программы на языке Паскаль
Прежде чем самостоятельно писать программы, разберем ее структуру на примере. Ниже приведен код программы, которая вычисляет сумму двух чисел и выводит ее на экран.
program primer1; var х,у,z:integer; { описание переменных } begin { начало программы } х := 3; { установка значения х } у := 5; { установка значения у } z := х + у; { вычисление суммы } write(z); {вывод результата вычисления на экран } end. { конец программы }
Заголовок программы
Текст программы начинается со слова program. После него записывается имя программы. Данная строка носит информативный характер и ее можно не писать.
Раздел подключения модулей начинается со служебного слова uses, за которым следует список имен модулей, перечисляемых через запятую.
Раздел описаний может включать разделы описания переменных, констант, меток, типов, процедур и функций, которые следуют друг за другом в произвольном порядке. Раздел подключения модулей и раздел описаний меток, констант и др. могут отсутствовать.
Раздел описания переменных
Раздел программы, обозначенный служебным словом var, содержит описание переменных с указанием их типов. Они используются для хранения исходных данных, результатов вычисления и промежуточных результатов.
Комментарии в программе можно записывать внутри фигурных скобок. Они игнорируются во время выполнения программы. Эти пояснения вы пишите только для себя.
В нашем примере переменные с именами X и Y используются для хранения исходных данных. Переменная с именем Z используется для хранения результата вычислений.
Имя переменной может записываться большими или маленькими латинскими буквами. Имя может содержать цифры, знак подчеркивания и не должно начинаться с цифры. Прописные и строчные символы считаются одинаковыми. В качестве имени нельзя использовать служебное слово языка Pascal.
Переменные одного типа можно указать в одной строке через запятую. После ставится двоеточие и указывается тип, к которому принадлежат переменные. Тип определяет допустимый диапазон значений.
Принадлежность переменной к типу integer означает, что она может хранить только целые числа. Если требуется хранить действительные (дробные) числа, тогда используется тип real.
Тело программы
Все что находится между служебными словами Begin и end — тело программы. Здесь записываются основные команды.
Оператор присваивания значений переменным имеет следующую структуру: переменная := выражение
Значок : = (двоеточие, равно) читается как «присвоить».
Умножение обозначается символом * (звездочка), деление — символом / (слеш).
Вывод результата выполняет команда write.
Каждая строка содержащая команду на языке Паскаль обязательно заканчивается символом «точка с запятой».
Команды ввода и вывода
Команда Read
В первом примере мы присвоили значения переменным непосредственно в тексте программы. Но так как программа пишется для решения множества однотипных задач, то удобнее задавать значения переменным во время ее работы. Для этого применяется команда read, которая позволяет ввести текстовые или числовые данные с клавиатуры.
Модифицируем код программы из примера выше.
program primer1; var х,у,z:integer; { описание переменных } begin { начало программы } read(x,y); { ввод значений х и y с клавиатуры } z := х + у; { вычисление суммы } write(z); {вывод результата вычисления на экран } end. { конец программы }
Теперь ввод значений переменных Х и У будет осуществляться по запросу работающей программы. В этот момент нужно будет с клавиатуры ввести два числа через пробел и нажать клавишу Enter, чтобы продолжить выполнение программы.
При работающей программе в системе программирования PascalABC появится строка ввода данных. Там и пишутся значения переменных.
Команда Write
В предыдущем примере, при работе программы, не совсем понятно, что нужно вводить и что за числа появляются на экране по завершению работы программы. Поэтому изменим код программы, чтобы у нее появился минимальный пользовательский интерфейс. Для этого задействуем уже знакомую нам команду Write.
program primer1; var х,у,z:integer; { описание переменных } begin { начало программы } writeln('Вычисление суммы двух чисел'); write('Введите два целых числа через пробел'); readln(x,y); { ввод значений х и y с клавиатуры } z := х + у; { вычисление суммы } write('Сумма = ',z); {вывод результата вычисления на экран } end. { конец программы }
Теперь посмотрите, как добавленные строки повлияли на работу программы.
У нас появились подсказки. Посмотрите на команду write. В качестве ее аргумента был использован текст, заключенный в апострофы. И еще, появилось окончание ln у оператора write. Именно оно заставляет последующий вывод информации делать с новой строки. Это же окончание можно использовать совместно с оператором read.
Также поменялся вывод результата. Здесь тоже появилась подсказка.
Примеры программ на паскале — задания на линейные алгоритмы
Задание 1. Модифицировать программу так, чтобы она вычисляла и выводила на экран сумму и произведение трех целых чисел.
Решение:
program zadanie1; var х,у,k,z,p:integer; { описание переменных } begin { начало программы } writeln('Вычисление суммы и произведения трех чисел'); write('Введите три целых числа через пробел'); readln(x,y,k); { ввод значений х,y,k с клавиатуры } z := x + y + k; { вычисление суммы } p := x * y * k; { вычисление произведения } write('Сумма = ',z); {вывод результата сложения на экран } write('Произведение = ',p); {вывод результата произведения на экран } end. { конец программы }
Задание 2. Дана длина ребра куба а. Найти объем куба V=a3 и площадь его поверхности S=6a2.
Решение:
program zadanie2; var a,v,s:real; { описание переменных } begin { начало программы } writeln('Вычисление объема и площади поверхности куба'); write('Введите длину ребра куба'); readln(a); { ввод значения a с клавиатуры } v := a * a * a; { вычисление объема } s := 6 * a * a; { вычисление площади } write('Объем куба = ',v); {вывод результата объем куба } write('Площадь поверхности = ',s); {вывод результата площадь поверхности } end. { конец программы }
Посмотрите еще примеры линейных алгоритмов.
Хотите подробнее узнать о системе PascalABC и начать писать в ней свои первые программы, тогда статья «Знакомство с PascalABC» для вас.
Следующая тема для изучения Условный оператор
Тест «Линейный алгоритм»
Лимит времени: 0
Информация
Проверь свои знания по теме «Линейный алгоритм»
Вы уже проходили тест ранее. Вы не можете запустить его снова.
Тест загружается…
Вы должны войти или зарегистрироваться для того, чтобы начать тест.
Вы должны закончить следующие тесты, чтобы начать этот:
Правильных ответов: 0 из 5
Ваше время:
Время вышло
Вы набрали 0 из 0 баллов (0)
Средний результат |
|
Ваш результат |
|
Рубрики
-
Линейный алгоритм
0%
Место | Имя | Записано | Баллы | Результат |
---|---|---|---|---|
Таблица загружается | ||||
Нет данных | ||||
Ваш результат был записан в таблицу лидеров
-
С ответом -
С отметкой о просмотре
План-конспект урока (информатика и икт, 6 класс) по теме: Линейный алгоритм
Чтобы составить алгоритм, необходимо знать систему команд предполагаемого исполнителя, правила записи отдельных команд и всего алгоритма в целом.
Будем рассматривать алгоритмы, исполнителем которых является человек. Последовательность шагов, которые выполняются человеком при решении некоторой задачи, удобно записывать в виде нумерованного списка (словесная форма), таблицы или изображать с помощью блок-схемы.
Слайд 4. Прежде всего определим понятие блок-схемы. Блок-схема – это наглядная графическая форма для записи алгоритма. Каждая команда записывается внутри графического блока, переход от одной команды к другой указывается стрелочками. Изображается блок-схема с помощью блоков (фигур).
Слайд 5
| Овал обозначает начало или конец алгоритма |
| Прямоугольник – выполнение действий |
| В форме параллелограмма рисуется ввод или вывод |
| Ромб – принятие решения |
Слайд 6. Вот так, например, с помощью блок-схемы можно представить алгоритм действий человека при переходе улицы:
Подойти к переходу |
Дождаться зеленого цвета |
Перейти улицу |
В алгоритмах команды записываются друг за другом в определенном порядке. Выполняются они не обязательно в записанной последовательности. Слайд 7. В зависимости от порядка выполнения команд можно выделить 3 типа алгоритма: линейные алгоритмы; алгоритмы с ветвлениями; алгоритмы с повторениями.
Сегодня мы с вами познакомимся с линейным алгоритмом.
Линейный алгоритм
Слайд 8 Алгоритм, где каждая команда выполняется последовательно в том порядке в каком она записана и только один раз называется линейным.
Слайд 9. Например, линейным является следующий алгоритм посадки дерева:
1) выкопать в земле ямку;
2)опустить в ямку саженец;
3)засыпать ямку с саженцем землей;
4) полить саженец водой.
Слайд 10. С помощью блок-схемы данный алгоритм можно изобразить так:
Выкопать в земле ямку
|
опустить в ямку саженец |
засыпать ямку с саженцем землей |
полить саженец водой |
np complete — В чем разница между «комбинаторным алгоритмом» и «линейным алгоритмом»?
Переполнение стека
- Около
Продукты
- Для команд
Переполнение стека
Общественные вопросы и ответыПереполнение стека для команд
Где разработчики и технологи делятся частными знаниями с коллегамиВакансии
Программирование и связанные с ним технические возможности карьерного ростаТалант
Нанимайте технических специалистов и создавайте свой бренд работодателяРеклама
Обратитесь к разработчикам и технологам со всего мира- О компании
.Линейный алгоритм
— определение — Английский
Примеры предложений с «линейным алгоритмом», память переводов
WikiMatrix Модель оценивается с помощью стандартных линейных алгоритмов.QEDТаким образом, это линейный алгоритм, и его сложность порядка n. Обычное сканирование Линейный алгоритм Кнута, Морриса и Пратта для поиск шаблонов в строках (не только в тексте) .WikiMatrixИспользуя линейный алгоритм для единичного распространения, алгоритм является линейным по размеру формулы. sppringerВторое доказательство показывает геометрическую сходимость линейного алгоритма с использованием только элементарной матричной алгебры.Дайте и возьмите несколько, вы знаете, что такое, несколько операций, и это дает нам линейный алгоритм. Спрингер В этой статье рассматриваются четыре алгоритма для дробно-линейного программирования и показано, что все они являются алгоритмами линеаризации типа Фрэнка Вульфа. Методы патентов-wipoKernel позволяют создание нелинейных обобщений линейных алгоритмов, которые могут быть записаны исключительно в терминах точечных произведений. WikiMatrix В 1970 году Дэнни Коэн представил на конференции «Компьютерная графика 1970» в Англии линейный алгоритм для рисования эллипсов и кругов.Алгоритмы Giga-frenLinear более точны, но не могут учитывать некоторые искажения, обнаруженные при МРТ. Это может привести к получению менее точных результатов. Springer Обсуждается выбор обучающих выборок, метод сканирования спектрографа, представление необработанных данных, оценка линейных алгоритмов и тестирование производительности. Springer Линейный алгоритм, разработанный для метода разделенного окна, был протестирован с использованием высококачественных материалов. данные in situ, полученные в ходе кампании ADRIA-84.springer В этой статье представлена мультиспектральная система для выявления линейных алгоритмов прогнозирования характеристик поверхности древесины, важных для автоматического контроля пиломатериалов.WikiMatrix Несмотря на то, что большинство алгоритмов декорреляции являются линейными, существуют и нелинейные алгоритмы декорреляции. WikiMatrix Kooshesh & Moret (1992) дали алгоритм линейного времени, используя краткое доказательство Фиска и алгоритм линейной триангуляции во временной плоскости Бернарда Шазелла. сопоставление суммы неотрицательных экспоненциальных составляющих с помощью гибридного эволюционно-линейного алгоритмаWikiMatrixАлгоритм проверки планарности Хопкрофта-Тарьяна был первым алгоритмом линейного времени для проверки планарности.Springer Приведен пример, показывающий эволюцию линейных алгоритмов для прогнозирования сжатия древесины у хвойных пород (Picea abies, Pinus sylvestris), показывающий подтвержденную правильную классификацию на 92–94%. WikiMatrixAlgorithms с квадратичной сложностью O (n2) не масштабируются, и даже линейные алгоритмы вызывают проблемы при многократном вызове и обычно заменяются постоянными или логарифмическими, если это возможно.
Показаны страницы 1. Найдено 842 предложения с фразой линейный алгоритм.Найдено за 14 мс.Накопители переводов создаются человеком, но выравниваются с помощью компьютера, что может вызвать ошибки.Найдено за 0 мс.Накопители переводов создаются человеком, но выравниваются с помощью компьютера, что может вызвать ошибки. Они поступают из многих источников и не проверяются. Имейте в виду.
.
Страница не найдена · GitHub Pages
Страница не найдена · GitHub Pages
Файл не найден
Сайт, настроенный по этому адресу, не
содержать запрошенный файл.
Если это ваш сайт, убедитесь, что регистр имени файла соответствует URL-адресу.
Для корневых URL (например, http://example.com/
) вы должны предоставить
index.html
файл.
Прочтите полную документацию
для получения дополнительной информации об использовании GitHub Pages .
.
Определение алгоритма
Алгоритм — это набор инструкций, предназначенных для выполнения определенной задачи. Это может быть простой процесс, например умножение двух чисел, или сложная операция, например воспроизведение сжатого видеофайла. Поисковые системы используют собственные алгоритмы для отображения наиболее релевантных результатов из своего поискового индекса по конкретным запросам.
В компьютерном программировании алгоритмы часто создаются как функции. Эти функции служат небольшими программами, на которые может ссылаться более крупная программа.Например, приложение для просмотра изображений может включать в себя библиотеку функций, каждая из которых использует собственный алгоритм для визуализации различных форматов файлов изображений. Программа редактирования изображений может содержать алгоритмы, предназначенные для обработки данных изображения. Примеры алгоритмов обработки изображений включают кадрирование, изменение размера, повышение резкости, размытие, уменьшение эффекта красных глаз и улучшение цвета.
Во многих случаях существует несколько способов выполнения определенной операции в программе. Поэтому программисты обычно стремятся создать максимально эффективные алгоритмы.Используя высокоэффективные алгоритмы, разработчики могут обеспечить максимально быструю работу своих программ и минимальное использование системных ресурсов. Конечно, не все алгоритмы создаются с первого раза идеально. Поэтому разработчики часто улучшают существующие алгоритмы и включают их в будущие обновления программного обеспечения. Когда вы видите новую версию программного обеспечения, которая была «оптимизирована» или имеет «более высокую производительность», это больше всего означает, что новая версия включает более эффективные алгоритмы.
Обновлено: 2 августа 2013 г.
TechTerms — Компьютерный словарь технических терминов
Эта страница содержит техническое определение алгоритма.Он объясняет в компьютерной терминологии, что означает алгоритм, и является одним из многих программных терминов в словаре TechTerms.
Все определения на веб-сайте TechTerms составлены так, чтобы быть технически точными, но также простыми для понимания. Если вы найдете это определение алгоритма полезным, вы можете сослаться на него, используя приведенные выше ссылки для цитирования. Если вы считаете, что термин следует обновить или добавить в словарь TechTerms, напишите в TechTerms!
.