Что такое команда алгоритма
Что такое команда алгоритма
Уважаемый подписчик! Сразу же вынужден извиниться за некорректную ссылку, указанную в материалах предыдущего занятия. С сылка http://a-morgun.narod.ru/a08-01/a0008-0001-0001-0001.html – правильная.
Нам уже известно, что написанию программы решения задачи предшествует разработка соответствующего алгоритма. Поэтому сегодня мы с вами приступаем к рассмотрению достаточно эффективного современного способа представления алгоритмов в виде словесных описаний на, так называемом, алгоритмическом языке (АЯ).
Зап омните! Только алгоритмы на АЯ допускают практически формальное (понятное, простое и удобное) своё преобразование в подпрограммы на языке Паскаль.
ОСНОВНЫЕ ПОНЯТИЯ АЛГОРИТМИЧЕСКОГО ЯЗЫКА
К основным понятиям алгоритмического языка относятся алгоритм, команда, служебный объект, величина и имя.
Алгоритмом на АЯ будем называть определённый текст, представляющий с использованием формальных правил условие и процесс решения некоторой задачи, и состоящий из заголовка и основной части .
Говорят, что заголовок алгоритма определяет его с внешней стороны. Для этого заголовок содержит имя алгоритма, перечень параметров, распределённых на аргументы и результаты, указание типа каждого из параметров, а также произвольный комментарий к решаемой задаче.
Основная часть алгоритма передаёт его внутреннее содержание. Она содержит в себе последовательность команд , реализующих процесс решения задачи, а также перечень вспомогательных промежуточных переменных с указанием их типов.
Команда алгоритма – это указание исполнителю на выполнение некоторых действий. Различают простые и структурные команды. Разные команды отличаются между собой правилом записи и правилом выполнения.
Последовательность нескольких команд алгоритма, начало и конец которой отмечены служебными словами нс и кс, называют серией . Серию можно рассматривать как единую составную команду.
Служебные объекты алгоритмического языка предназначены для записи команд и для оформления алгоритмов. Основная особенность любого служебного объекта состоит в том, что его смысл и способ употребления в алгоритме однозначно определён заранее. Среди служебных объектов различают служебные слова и служебные знаки .
Величиной называется любой объект алгоритма, несущий информацию об определённом значении. Если величина принимает участие в выполнении команд, то это может сопровождаться преобразованием формы её представления, а также образованием нового значения для этой величины.
Важнейшей характеристикой величины является её тип . В общем случае тип величины определяет количество и характер отдельных элементарных значений в её составе, а также порядок доступа к ним. Различают простые и структурированные типы. Величина простого типа представляет собой элементарное (единственное, отдельное и неделимое) значение. Величина структурированного типа представляет собой совокупность значений.
Все величины могут быть распределены на постоянные и переменные. Постоянной величиной называется та, значение которой не может быть изменено посредством выполнения какой-то из команд алгоритма и всегда остаётся одним и тем же. Переменной величиной называется такая величина, значение которой может измениться вследствие выполнения определённой команды алгоритма.
Среди постоянных величин выделяют константы . Константа обладает тем свойством, что её значение указывается в тексте алгоритма непосредственно. При этом тип константы можно определить по её внешнему виду.
Среди переменных величин особо выделяют переменные (термин употребляется как имя существительное). Для переменных в алгоритме используют обозначения, которые называют именами переменных. Типы переменных в алгоритме указывают с помощью стандартных имён типов.
Выше упоминались некоторые объекты алгоритма, с которыми должны быть связаны определённые имена . Такие объекты алгоритма называются именованными. К ним относятся сами алгоритмы, а также типы, переменные и константы. Имена могут быть стандартными или выбранными произвольно.
Слишком много новых терминов! Не правда ли? А ведь это пока только алгоритмический язык. В реальном Паскале их ещё больше. Кстати, АЯ тем и хорош, что позволяет нам, в отличие от Паскаля, ограничиться самым главным.
Теперь приведём пример алгоритма, в котором можно было бы обнаружить всё вышеупомянутое.
дано произвольные значения уровней x и y
надо значение суммы уровней z и сообщение s об их допустимости
нач p: вещ
если ( p p > 5 + 5 )
то s := ”выход уровней за допустимые пределы”
иначе нс z := x + y ; s := ”уровни в норме” кс
кон
2. Остальные шесть строк, начинающиеся словом нач и заканчивающиеся словом кон, являются основной частью алгоритма, передающей его внутреннее содержание. Здесь мы видим вспомогательную промежуточную переменную p, имеющую вещественный тип. Кроме того, основная часть алгоритма содержит последовательность из двух команд : команды присваивания p := Ln ( x ) + Ln ( y ) и команды ветвления если ( p 5 ) или ( p > 5 + 5 ) то s := “выход уровней за допустимые пределы” иначе нс z := x + y ; s := “уровни в норме” кс.
4. В составе команды ветвления имеется последовательность двух команд присваивания z := x + y ; s := “уровни в норме”, начало и конец которой отмечены служебными словами нс и кс. Такая последовательность, рассматриваемая как единая составная команда, называется серией .
5. Служебными объектами алгоритма являются служебные слова алг, арг, рез, цел, лит, вещ, дано, надо, нач, кон, предназначенные для оформления алгоритма, служебные слова если, то, иначе, :=, нс, кс, предназначенные для записи команд, а также служебное слово или, предназначенное для указания операции. Кроме того, служебными объектами данного алгоритма являются следующие служебные знаки : знаки препинания точка с запятой и двойные кавычки <; ” >, знаки операций сложения и сравнения < + >, а также круглые скобки < ( ) >.
8. В нашем алгоритме использованы постоянные величины 5, 5 + 5, ”выход уровней за допустимые пределы” и ”уровни в норме”. Их значения соответствуют тому, что написано, и считать их иными невозможно. Все остальные являются переменными величинами . Например, значение величины x + y может быть разным в зависимости от значений величин x и y. Постоянная величина 5 является константой . По её внешнему виду мы легко определяем, что она имеет целочисленный тип. Постоянные величины ”выход уровней за допустимые пределы” и ”уровни в норме” – тоже константы . Вполне очевидно, что они имеют литерный тип.
Обратите внимание, что необходимость истолковать основные понятия АЯ повлекла за собой использование целой группы других новых понятий. Это значит, что между всеми ними существует чрезвычайно тесная взаимосвязь. Невозможно понять что-то одно, не затрагивая при этом другое.
Чтобы получить более подробное изложение материала занятия №3 “Основные понятия алгоритмического языка”, перейдите по ссылке http://a-morgun.narod.ru/a06-01/a0006-0001-0002.html
Информатика
Именная карта банка для детей
с крутым дизайном, +200 бонусов
Закажи свою собственную карту банка и получи бонусы
План урока:
Начнем урок с простой задачи. Что нужно сделать, если хочется выпить чая?
Один человек сразу включает чайник, потом начинает искать чашки, заварку, сахар.
Второй действует согласно плану:
Первый человек сразу бежит к цели, сломя голову, а второй – определяется с целью, разбивает сложный процесс на простые этапы и шаг за шагом идти к результату. Такой линейный алгоритм из жизни позволяет не запутаться, не пропустить что-то важное. Второй подход рациональнее, логичнее и удобнее, позволяет сложную задачу разбить на более простые.
Система команд или алгоритм, не просто удобнее, она позволяет выполнить задачу даже тому, кто не делает это часто, то есть новичку.
Алгоритмы, которыми мы пользуемся
Алгоритм – конечная последовательность действия, пошаговый план, инструкция, способ действия позволяющие достичь желаемого результата. Состоит из простейших команд.
Такие удобные инструкции мы используем постоянно, даже не осознавая это.
Давайте вспомним, какими детальными инструкциями мы пользуемся:
Имея цель, мы обрабатываем входные данные и получаем результат или объяснение, почему результат не может быть получен. Это напоминает функцию, но в случае с алгоритмами даны четкие рекомендации, что и как делать.
Пример в виде красочной инструкции и сухой пошаговой рекомендации:
Работа за компьюетром Инструкция по настройке
А в информатике без них не обойтись – именно на алгоритмах основано программирование.
При написании такой последовательности команд важно разбивать процесс на самые простые действия, которые понимаются однозначно как разработчиком, так и тем, кто будет ими пользоваться.
Если действия однотипные, например, «набрать ковш воды и вылить» или «взять яблоко и проверить, есть ли червоточина», то его записывают 1 раз и повторяют конечное число раз.
Когда все задания/этапы будут выполнены, они должны привести к желаемому результату.
Исполнители, система команд исполнителя (СКИ)
Алгоритм разрабатывается с учетом определенного исполнителя. Это означает, что инструкция для пользователя спутниковой антенны и рекомендации для инженера-настройщика будут совершенно разными, хотя в обоих случаях каждый этап будет элементарный.
Исполнитель – субъект/объект, который может выполнить команды данного алгоритма.
Исполнителем может быть живое существо и неживой механизм. Человек, животное, которое понимает команды, робот, станок, компьютер – все они могут быть исполнителями.
Компьютер (ПК) – автоматизированный исполнитель команд. Алгоритмы программ для ПК пишут на языках программирования (С++, Basic, Pascal, Delphi, Ассемблер, Фортран).
Для каждого типа и уровня исполнителей существует своя система команд исполнителя (СКИ).
Свойства алгоритмов
Независимо от того, разрабатывается ход приготовления яичницы или запуска космического корабля, они должны обладать 5 основными свойствами:
Понятность – процедура должна быть на языке, который понятен той категории исполнителей, для которых она пишется.
Для ребенка 2 лет обучение пользованию игрушкой будет происходить простыми словами, с минимумом этапов (возьми, нажми эту кнопочку, поставь на пол). А для ребенка 10 лет инструкция уже будет включать проверку и замену батареек, установку отпавшей части.
Точность – команды должны быть конкретными, понятными, однозначными.
Пример непонятного и неточного задания мы помним из сказки: “Пойди туда, не знаю куда. Принеси то, не знаю что”.
Пример бесконечного алгоритма
В этом примере нет конечных команд: вымыть руки и выключить воду. Пользователь по этой инструкции будет бесконечно мыть руки, точить воду.
Классификация алгоритмов
Если выполняемые действия идут одно за другим, то инструкция будет последовательной, линейной. Если же операции повторяются при разных условиях, то порядок действия будет меняться. Следует использовать различные виды алгоритмов.
Виды алгоритмов:
Чаще используют алгоритмы повторения с условием, так как идеальные условия встречаются редко.
Линейная модель подходит для простых задач, когда нет условий или повторений. Для нее важна последовательность команд алгоритма. Например, вычисление среднего арифметического, площади фигуры. В обычной жизни – это список действий, которые нужно выполнить, чтобы купить хлеб, сварить яйцо или сделать бутерброд.
Запишем схему линейного алгоритма (покупки чая):
Для многих задач важно выполнение определенного условия.
Пример алгоритма ветвления – если нужного сорта нет, то процесс покупки чая усложняется:
Эту же задачу можно описать при помощи циклического алгоритма, если есть повторение определенной операции.
Данный пример включает в себя ветвление «если» и повторение команд:
Цикличные инструкции следует писать так, чтобы не было вечного цикла или зацикливания – бесконечного повторения операции без достижения результата.
Виды записи алгоритмов
Самый простой способ записать алгоритм построчно – словесно. Но текстовая форма оформления подобных детальных инструкций не всегда наглядна и удобна из-за большого количества вспомогательных слов.
Легче воспринимается такой план, если его дополнять картинками.
Особенно неудобно описывать словами математические, физические и химические процессы. Без специальных символов, формул не обойтись. Поэтому используются отраслевые сокращения и обозначения.
Но все эти способы записи алгоритмов уступают формальному, схематическому. Именно такой обобщенный подход позволяет пользователям и исполнителям со всего мира лучше понимать друг друга.
Блок-схема – графическая форма представления алгоритмов при помощи геометрических объектов и стрелок.
Блок схема линейного алгоритма вычисления площади прямоугольника:
Алгоритм – это инструкция к решению определенной задачи. А на этом основании можно написать программу вычисления алгоритма, которая реализует данный вариант решения, плюс ее можно установить, проверить и выполнить на ПК.
Пример алгоритма на Turbo Pascal
При программировании на компьютерных языках используется такой же подход, как и при написании инструкций вручную.
Для примера попробуем программирование линейных алгоритмов при помощи языка Turbo Pascal.
Запустить среду программирования следующими шагами:
Меню Пуск → Все программы → Turbo Pascal
На экране монитора появится оболочка, которая позволяет освоить азы программирования и даже реализовывать непростые проекты.
Оболочка разработана под DOS, что объясняет необычную реализацию интерфейса.
Пишем самый простой алгоритм программы для выведения на экран слов приветствия.
На латинской раскладке набираем в синем окне такие команды:
program Test;
begin
write(‘Доброе утро!’);
Учитываем важные моменты при использовании языка Турбо Паскаль:
Как видим, в программе есть свои слова-команды, как в письменных алгоритмах. Слово program – как заголовок, название объекта, а тest – непосредственно название программы.
Началом является команда begin, end – окончанием, а между ними стоят операторы или команды-действия («write» – напиши на экране). А текст, который нужно выводить на экране берется в скобки и ’….’.
Чтобы запустить программу, следует нажать Ctrl+F9 или набор команд Run Run.
Если нет ошибок в командах, появится такой результат:
Чтобы выйти обратно, можно нажать любую кнопку клавиатуры.
При каждом запуске будет новая запись, на той же строке. Если заменить write на writeln, то текст будет выводиться в новой строчке:
Изучение алгоритмов не только позволяет применять их во всех сферах жизни, начиная с ежедневных домашних дел и заканчивая учебой. Это первый и один из важнейших шагов понимания работы программируемой техники, в том числе ПК. Понимание простейших, линейных алгоритмов, умение их создавать позволяет узнать, как компьютер обрабатывает данные, находит верный результат и выдает его. Далее следует осваивать варианты с ветвлением или повторением.
Без умения создавать алгоритмы в виде блок-схемы, знания их видов и принципов создания невозможно начать изучение языков программирования.
Информатика. 7 класс
Электронное приложение к учебному пособию
Напишите нам
белый — основные материалы, обязательные для изучения;
голубой — примеры, иллюстрирующие основные материалы;
желтый — определения основных понятий;
светло-зеленый — исторические сведения, информация об ученых, внесших вклад в развитие информатики, и другие интересные факты.
В учебном пособии используются следующие условные обозначения:
— вопросы и задания для проверки знаний;
— раздел «Упражнения» содержит задания, при выполнении которых используется компьютер;
— раздел «Упражнения» содержит задания для выполнения в тетради;
— раздел «Упражнения» содержит задания, при выполнении которых может быть использована информация, размещенная на Национальном образовательном портале;
* — задание или пример для любознательных.
§ 8. Алгоритмы и исполнители
8.1. Понятие алгоритма
Вспомним некоторые понятия, с которыми вы познакомились в 6-м классе.
Алгоритм — понятная и конечная последовательность точных действий (команд), формальное выполнение которых позволяет получить решение поставленной задачи.
Исполнитель алгоритма — человек (группа людей) или техническое устройство, которые понимают команды алгоритма и умеют правильно их выполнять.
Система команд исполнителя — команды, которые понимает и может выполнить исполнитель.
Любой исполнитель имеет ограниченную систему команд. Все команды исполнителя можно разделить на группы:
Компьютер является универсальным исполнителем.
Запись алгоритма в виде последовательности команд, которую может выполнить компьютер, называют программой.
Существуют следующие способы представления алгоритмов:
(Схематически данные способы представлены в примере 8.1.)
8.2. Исполнитель Чертежник
В прошлом учебном году вы познакомились с исполнителем Чертежник, который предназначен для построения рисунков и чертежей на координатной плоскости (пример 8.2).
Чертежник имеет перо, с помощью которого он может рисовать отрезки на плоскости. Исходное положение пера исполнителя Чертежник поднято и находится над точкой (0, 0) — началом координат. После завершения рисования перо также должно быть поднято.
Напомним систему команд исполнителя Чертежник:
Переместить перо Чертежника в точку (x,y)
Поднять перо Чертежника
Опустить перо Чертежника
Создать поле размером N x M
Сместить перо Чертежника на а единиц по горизонтали и b единиц по вертикали
Пример 8.3. Составим алгоритм решения задачи.
Прямоугольный участок, длина которого в 2 раза больше ширины, огородили забором длиной 120 м. Определите длину и ширину участка. Напишите программу, выполнив которую исполнитель Чертежник построит чертеж забора этого участка. Масштаб: 1 клетка равна 10 м.
Словесное описание алгоритма:
8.3. Алгоритмическая конструкция следование
Существует большое количество алгоритмов, в которых все команды выполняются последовательно одна за другой в том порядке, в котором они записаны. В подобных алгоритмах отсутствуют команды, меняющие порядок выполнения других команд. Такие программы вы составляли в прошлом году для исполнителя Чертежник.
Алгоритмическая конструкция следование — последовательность команд алгоритма, которые выполняются в том порядке, в котором они записаны.
Следование использовалось в примере 8.3, в котором описывались алгоритмы вычисления длины и ширины участка и построения прямоугольника исполнителем Чертежник.
Алгоритмическая конструкция следование представлена в примере 8.4 и примере 8.5.
8.4. Вспомогательные алгоритмы
Нередко в одной программе приходится рисовать одно и то же изображение несколько раз. Получение этого изображения удобно оформить в виде вспомогательного алгоритма, который можно использовать нужное число раз, обращаясь к его названию.
Вспомогательный алгоритм — алгоритм, целиком используемый в составе другого алгоритма.
Вспомогательный алгоритм решает некоторую подзадачу основной задачи. Вызов вспомогательного алгоритма в программе заменяет несколько команд одной командой.
Пример 8.6. Напишем программу, выполнив которую исполнитель Чертежник нарисует следующий рисунок:
Описание основного алгоритма будет следующим:
При решении задач над проектом могут работать несколько человек (или десятков человек). Каждый из членов коллектива делает часть своей работы и оформляет ее как отдельный вспомогательный алгоритм.
Алгоритмы построения чертежей человек разрабатывает с глубокой древности. Появление чертежей связано с практической деятельностью человека — возведением укреплений и городских построек. Первые сведения о чертежах, напоминающих современные, связаны с именем Леонардо да Винчи (1452—1519) —итальянского ученого и художника, который в технических рисунках и эскизах раскрывал свои идеи в области техники и строительства.
В настоящее время чертежи широко применяются в различных отраслях строительства, сельского хозяйства, промышленности и т. д. Сегодня для построения чертежей используются специальные программы, позволяющие автоматизировать процесс черчения. Для применения таких программ специалист должен овладеть навыками работы с имеющимися в них инструментами и алгоритмами построения различных чертежей. Вот логотипы подобных программ:
Пример 8.2. Поле исполнителя Чертежник.
Пример 8.3. Запись алгоритма по действиям:
Исполнитель Чертежник должен нарисовать прямоугольник длиной 4 клетки и шириной 2 клетки. Программа для исполнителя Чертежник :
Глава 7. Алгоритмы. Алгоритмизация. Алгоритмические языки
7.1. Что такое алгоритм?
Алгоpитм точное и понятное пpедписание исполнителю совеpшить последовательность действий, направленных на решение поставленной задачи. |
Название «алгоритм» произошло от латинской формы имени среднеазиатского математика аль-Хорезми Algorithmi. Алгоритм одно из основных понятий информатики и математики.
7.2. Что такое «Исполнитель алгоритма»?
Исполнитель алгоритма это некоторая абстрактная или реальная (техническая, биологическая или биотехническая) система, способная выполнить действия, предписываемые алгоритмом. |
Отказы исполнителя возникают, если команда вызывается пpи недопустимом для нее состоянии сpеды.
Обычно исполнитель ничего не знает о цели алгоpитма. Он выполняет все полученные команды, не задавая вопросов «почему» и «зачем». |
7.3. Какими свойствами обладают алгоpитмы?
Основные свойства алгоритмов следующие:
Понятность для исполнителя т.е. исполнитель алгоритма должен знать, как его выполнять.
Дискpетность (прерывность, раздельность) т.е. алгоpитм должен пpедставлять пpоцесс pешения задачи как последовательное выполнение пpостых (или pанее опpеделенных) шагов (этапов).
Опpеделенность т.е. каждое пpавило алгоpитма должно быть четким, однозначным и не оставлять места для пpоизвола. Благодаpя этому свойству выполнение алгоpитма носит механический хаpактеp и не тpебует никаких дополнительных указаний или сведений о pешаемой задаче.
Pезультативность (или конечность). Это свойство состоит в том, что алгоpитм должен пpиводить к pешению задачи за конечное число шагов.
7.4. В какой форме записываются алгоритмы?
7.5. Что такое словесный способ записи алгоритмов?
Словесный способ записи алгоритмов представляет собой описание последовательных этапов обработки данных. Алгоритм задается в произвольном изложении на естественном языке. |
Например. Записать алгоритм нахождения наибольшего общего делителя (НОД) двух натуральных чисел.
Описанный алгоритм применим к любым натуральным числам и должен приводить к решению поставленной задачи. Убедитесь в этом самостоятельно, определив с помощью этого алгоритма наибольший общий делитель чисел 125 и 75.
7.6. Что такое графический способ записи алгоритмов?
Графический способ представления алгоритмов является более компактным и наглядным по сравнению со словесным.
При графическом представлении алгоритм изображается в виде последовательности связанных между собой функциональных блоков, каждый из которых соответствует выполнению одного или нескольких действий. |
В таблице 7.1 приведены наиболее часто употребляемые символы.
Название символа | Обозначение и пример заполнения | Пояснение |
Процесс | Вычислительное действие или последовательность действий | |
Решение | Проверка условий | |
Модификация | Начало цикла | |
Предопределенный процесс | Вычисления по подпрограмме, стандартной подпрограмме | |
Ввод-вывод | Ввод-вывод в общем виде | |
Пуск-останов | Начало, конец алгоритма, вход и выход в подпрограмму | |
Документ | Вывод результатов на печать |
Блок «процесс» применяется для обозначения действия или последовательности действий, изменяющих значение, форму представления или размещения данных. Для улучшения наглядности схемы несколько отдельных блоков обработки можно объединять в один блок. Представление отдельных операций достаточно свободно.
Блок «решение» используется для обозначения переходов управления по условию. В каждом блоке «решение» должны быть указаны вопрос, условие или сравнение, которые он определяет.
Блок «модификация» используется для организации циклических конструкций. (Слово модификация означает видоизменение, преобразование). Внутри блока записывается параметр цикла, для которого указываются его начальное значение, граничное условие и шаг изменения значения параметра для каждого повторения.
Блок «предопределенный процесс» используется для указания обращений к вспомогательным алгоритмам, существующим автономно в виде некоторых самостоятельных модулей, и для обращений к библиотечным подпрограммам.
7.7. Что такое псевдокод?
Псевдокод представляет собой систему обозначений и правил, предназначенную для единообразной записи алгоритмов. |
Он занимает промежуточное место между естественным и формальным языками.
С одной стороны, он близок к обычному естественному языку, поэтому алгоритмы могут на нем записываться и читаться как обычный текст. С другой строны, в псевдокоде используются некоторые формальные конструкции и математическая символика, что приближает запись алгоритма к общепринятой математической записи.
Примером псевдокода является школьный алгоритмический язык в русской нотации (школьный АЯ), описанный в учебнике А.Г. Кушниренко и др. «Основы информатики и вычислительной техники», 1991. Этот язык в дальнейшем мы будем называть просто «алгоритмический язык».
7.8. Как записываются алгоритмы на школьном алгоритмическом языке?
Основные служебные слова
алг (алгоритм) | сим (символьный) | дано | для | да |
арг (аргумент) | лит (литерный) | надо | от | нет |
рез (результат) | лог (логический) | если | до | при |
нач (начало) | таб (таблица) | то | знач | выбор |
кон (конец) | нц (начало цикла) | иначе | и | ввод |
цел (целый) | кц (конец цикла) | все | или | вывод |
вещ (вещественный) | длин (длина) | пока | не | утв |
Общий вид алгоритма: |
Команды школьного АЯ
Пример записи алгоритма на школьном АЯ
7.9. Что такое базовые алгоритмические структуры?
Логическая структура любого алгоритма может быть представлена комбинацией трех базовых структур: следование, ветвление, цикл. |
Характерной особенностью базовых структур является наличие в них одного входа и одного выхода.
Предписывает выполнять тело цикла для всех значений некоторой переменной (параметра цикла) в заданном диапазоне.
Примеры команд пока и для
Школьный алгоритмический язык | Язык блок-схем |
7.10. Какие циклы называют итерационными?
На каждом шаге вычислений происходит последовательное приближение и проверка условия достижения искомого результата.
Пример. Составить алгоритм вычисления суммы ряда
с заданной точностью (для данного знакочередующегося степенного ряда требуемая точность будет достигнута, когда очередное слагаемое станет по абсолютной величине меньше ).
Вычисление сумм типичная циклическая задача. Особенностью же нашей конкретной задачи является то, что число слагаемых (а, следовательно, и число повторений тела цикла) заранее неизвестно. Поэтому выполнение цикла должно завершиться в момент достижения требуемой точности.
При составлении алгоритма нужно учесть, что знаки слагаемых чередуются и степень числа х в числителях слагаемых возрастает.
Сравните эти два подхода по числу операций.
Алгоритм на школьном АЯ | Блок-схема алгоритма |
Пример вложенных циклов пока
Вычислить произведение тех элементов заданной матрицы A(10,10), которые расположены на пересечении четных строк и четных столбцов.
7.12. Чем отличается программный способ записи алгоритмов от других?
При записи алгоритма в словесной форме, в виде блок-схемы или на псевдокоде допускается определенный произвол при изображении команд. Вместе с тем такая запись точна настолько, что позволяет человеку понять суть дела и исполнить алгоритм.
Однако на практике в качестве исполнителей алгоритмов используются специальные автоматы компьютеры. Поэтому алгоритм, предназначенный для исполнения на компьютере, должен быть записан на «понятном» ему языке. И здесь на первый план выдвигается необходимость точной записи команд, не оставляющей места для произвольного толкования их исполнителем.
7.13.Что такое уровень языка программирования?
В настоящее время в мире существует несколько сотен реально используемых языков программирования. Для каждого есть своя область применения.
Любой алгоритм, как мы знаем, есть последовательность предписаний, выполнив которые можно за конечное число шагов перейти от исходных данных к результату. В зависимости от степени детализации предписаний обычно определяется уровень языка программирования чем меньше детализация, тем выше уровень языка.
Языки же высокого уровня имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы. Эти языки более удобны для человека.
7.14. Какие у машинных языков достоинства и недостатки?
Каждый компьютер имеет свой машинный язык, то есть свою совокупность машинных команд, которая отличается количеством адресов в команде, назначением информации, задаваемой в адресах, набором операций, которые может выполнить машина и др.
При программировании на машинном языке программист может держать под своим контролем каждую команду и каждую ячейку памяти, использовать все возможности имеющихся машинных операций.
Поэтому в случае, когда нужно иметь эффективную программу, в максимальной степени учитывающую специфику конкретного компьютера, вместо машинных языков используют близкие к ним машинно-ориентированные языки (ассемблеры).
7.15. Что такое язык ассемблера?
Язык ассемблера это система обозначений, используемая для представления в удобочитаемой форме программ, записанных в машинном коде. |
Перевод программы с языка ассемблера на машинный язык осуществляется специальной программой, которая также называется ассемблером и является, по сути, простейшим транслятором.
7.16. В чем преимущества алгоритмических языков перед машинными?
7.17. Какие компоненты образуют алгоритмический язык?
Алгоритмический язык (как и любой другой язык) образуют три его составляющие: алфавит, синтаксис и семантика. |
Алфавит это фиксированный для данного языка набор основных символов, т.е. «букв алфавита», из которых должен состоять любой текст на этом языке никакие другие символы в тексте не допускаются.
Семантика определяет смысловое значение предложений языка. Являясь системой правил истолкования отдельных языковых конструкций, семантика устанавливает, какие последовательности действий описываются теми или иными фразами языка и, в конечном итоге, какой алгоритм определен данным текстом на алгоритмическом языке.
7.18. Какие понятия используют алгоритмические языки?
Каждое понятие алгоритмического языка подразумевает некоторую синтаксическую единицу (конструкцию) и определяемые ею свойства программных объектов или процесса обработки данных.
Понятие языка определяется во взаимодействии синтаксических и семантических правил. Синтаксические правила показывают, как образуется данное понятие из других понятий и букв алфавита, а семантические правила определяют свойства данного понятия |
Основными понятиями в алгоритмических языках обычно являются следующие.
Имена (идентификаторы) употpебляются для обозначения объектов пpогpаммы (пеpеменных, массивов, функций и дp.).
Выражения записываются в виде линейных последовательностей символов (без подстрочных и надстрочных символов, «многоэтажных» дробей и т.д.), что позволяет вводить их в компьютер, последовательно нажимая на соответствующие клавиши клавиатуры.
Операторы подpазделяются на исполняемые и неисполняемые. Неисполняемые опеpатоpы пpедназначены для описания данных и стpуктуpы пpогpаммы, а исполняемые для выполнения pазличных действий (напpимеp, опеpатоp пpисваивания, опеpатоpы ввода и вывода, условный оператор, операторы цикла, оператор процедуры и дp.).
7.19. Что такое стандартная функция?
При решении различных задач с помощью компьютера бывает необходимо вычислить логарифм или модуль числа, синус угла и т.д.
Таблица стандартных функций школьного алгоритмического языка
Название и математическое обозначение функции | Указатель функции | |
Абсолютная величина (модуль) | | х | | abs(x) |
Корень квадратный | sqrt(x) | |
Натуральный логарифм | ln x | ln(x) |
Десятичный логарифм | lg x | lg(x) |
Экспонента (степень числа е » 2.72) | e x | exp(x) |
Знак числа x (-1,если х 0) | sign x | sign(x) |
Целая часть х (т.е. максимальное целое число,не превосходящее х) | int(x) | |
Минимум из чисел х и y | min(x,y) | |
Максимум из чисел х и y | max(x,y) | |
Частное от деления целого х на целое y | div(x,y) | |
Остаток от деления целого х на целое y | mod(x,y) | |
Случайное число в диапазоне от 0 до х-1 | rnd(x) | |
Синус (угол в радианах) | sin x | sin(x) |
Косинус (угол в радианах) | cos x | cos(x) |
Тангенс (угол в радианах) | tg x | tg(x) |
Котангенс (угол в радианах) | ctg x | ctg(x) |
Арксинус (главное значение в радианах) | arcsin x | arcsin(x) |
Арккосинус (главное значение в радианах) | arccos x | arccos(x) |
Арктангенс (главное значение в радианах) | arctg x | arctg(x) |
Арккотангенс (главное значение в радианах) | arcctg x | arcctg(x) |
В качестве аргументов функций можно использовать константы, переменные и выражения. Например:
sin(3.05) min(a, 5) | sin(x) min(a, b) | sin(2*y+t/2) min(a+b, a*b) | sin((exp(x)+1)**2) min(min(a,b),min(c,d)) |
Каждый язык программирования имеет свой набор стандартных функций.
7.20. Как записываются арифметические выражения?
Примеры записи арифметических выражений
Математическая запись | Запись на школьном алгоритмическом языке |
x*y/z | |
x/(y*z) или x/y/z | |
(a**3+b**3)/(b*c) | |
(a[i+1]+b[i-1])/(2*x*y) | |
(-b+sqrt(b*b-4*a*c))/(2*a) | |
(x | 0.49*exp(a*a-b*b)+ln(cos(a*a))**3 |
x/(1+x*x/(3+(2*x)**3)) |
Типичные ошибки в записи выражений:
5x+1 a+sin x ((a+b)/c**3 | Пропущен знак умножения между 5 и х Аргумент x функции sin x не заключен в скобки Не хватает закрывающей скобки |
7.21. Как записываются логические выражения?
В записи логических выражений помимо арифметических операций сложения, вычитания, умножения, деления и возведения в степень используются операции отношения (больше), >= (больше или равно), = (равно), <> (не равно), а также логические операции и, или, не.
Примеры записи логических выражений, истинных при выполнении указанных условий.
7.22. Упражнения
7.1. Запишите по правилам алгоритмического языка выражения:
a) | e) |
б) | ж) |
в) | з) |
г) | и) |
д) | к) |
[ Ответ ]
7.2. Запишите в обычной математической форме арифметические выражения:
а) a/b**2; б) a+b/c+1; в) 1/a*b/c; г) a**b**c/2; д) (a**b)**c/2; е) a/b/c/d*p*q; ж) x**y**z/a/b; з) 4/3*3.14*r**3; и) b/sqrt(a*a+b); к) d*c/2/R+a**3; | л) 5*arctg(x)-arctg(y)/4; м) lg(u*(1/3)+sqrt(v)+z); н) ln(y*(-sqrt(abs(x)))); о) abs(x**(y/x)-(y/x)**(1/3)); п) sqrt((x1-x2)**2+(y1-y2)**2); р) exp(abs(x-y))*(tg(z)**2+1)**x; c) lg(sqrt(exp(x-y))+x**abs(y)+z); т) sqrt(exp(a*x)*sin(x)**n)/cos(x)**2; у) sqrt(sin(arctg(u))**2+abs(cos(v))); ф) abs(cos(x)+cos(y))**(1+sin(y)**2); |
[ Ответ ]
7.3. Вычислите значения арифметических выражений при x=1:
а) abs(x-3)/ln(exp(3))*2/lg(10000);
Решение: abs(1-3)=2; ln(exp(3))=3; lg(10000)=4; 2/3*2/4=0.33;
7.4. Запишите арифметические выражения, значениями которых являются:
а) площадь треугольника со сторонами a, b, c (a, b, c>0) и полупериметром p;
Ответ: sqrt(p*(p-a)*(p-b)*(p-c));
б) среднее арифметическое и среднее геометрическое чисел a, b, c, d;
в) расстояние от точки с координатами (x,y) до точки (0,0);
г) синус от x градусов;
д) площадь поверхности куба (длина ребра равна а);
е) радиус описанной сферы куба (длина ребра равна а);
ж) координаты точки пересечения двух прямых, заданных уравнениями
a 1 x+b 1 y+c 1 =0 и a 2 x+b 2 y+c 2 =0 (прямые не параллельны).
[ Ответ ]
7.7. Начертите на плоскости (x,y) область, в которой и только в которой истинно указанное выражение. Границу, не принадлежащую этой области, изобразите пунктиром.
а) (x =0) Ответ: | е) ((x-2)**2+y*y x/2) Ответ: |
б) (x>=0) или (y =0 г) (x+y>0) и (y =1 | ж) (x*x+y*y x*x); з) (y>=x) и (y+x>=0) и (y 1); |
[ Ответ ]
7.8. Запишите логическое выражение, которое принимает значение «истина» тогда и только тогда, когда точка с координатами (x, y) принадлежит заштрихованной области.
[ Ответ ]
в противном случае
[ Ответ ]
7.12. Постройте графики функций y(x), заданных командами если:
а) | в) |
Решение | г) |
б) | д) |
[ Ответ ]
7.13. Определите значение целочисленной переменной S после выполнения операторов:
а) | Решение
| г) | Решение
| |||||||||||||||||||||||||
б) | д) | |||||||||||||||||||||||||||
в) | е) |
[ Ответ ]
7.14. Определите значение переменной S после выполнения операторов:
а) | г) | ||||||||||||||||||||||||||||||
Решение
| Решение
| ||||||||||||||||||||||||||||||
б) | д) | ||||||||||||||||||||||||||||||
в) | е) |
[ Ответ ]
7.15. Составте алгоритмы решения задач линейной структуры (условия этих задач заимствены из учебного пособия В.М. Заварыкина, В.Г. Житомирского и М.П. Лапчика «Основы информатики и вычислительной техники», 1989):
в) в треугольнике известны три стороны a, b и c; найти радиус описанной окружности и угол A (в градусах), используя формулы: где
г) в правильной треугольной пирамиде известны сторона основания a и угол A (в градусах) наклона боковой грани к плоскости основания; найти объем и площадь полной поверхности пирамиды, используя формулы:
V=S ocн · H/2; | |
где |
д) в усеченном конусе известны радиус оснований R и r и угол A (в радианах) наклона образующей к поверхности большого основания; найти объем и площадь боковой поверхности конуса, используя формулы:
где |
e) в правильной четырехугольной пирамиде сторона основания равна a, а боковое ребро наклонено к плоскости основания под углом A; найти объем и площадь полной поверхности пирамиды и площадь сечения, проходящего через вершину пирамиды и диагональ основания d; использовать формулы:
[ Ответ ]
7.16. Составте алгоритм решения задач развлетвляющейся структуры:
а) определить, является ли треугольник с заданными сторонами a, b, c равнобедренным;
Решение:
б) определить количество положительных чисел среди заданных чисел a, b и c;
в) меньшее из двух заданных неравных чисел увеличить вдвое, а большее оставить без изменения;
г) числа a и b катеты одного прямоугольного треугольника, а c и d другого; определить, являются ли эти треугольники подобными;
д) данны три точки на плоскости; определить, какая из них ближе к началу координат;
е) определить, принадлежит ли заданная точка (x,y) плоской фигуре, являющейся кольцом с центром в начале координат, с внутренним радиусом r1 и внешним радиусом r2;
ж) упорядочить по возрастанию последовательность трех чисел a, b и c.
[ Ответ ]