Алгоритм можно записать разными способами и даже на разных языках. Хотя при этом исполнитель может, конечно, их не понять. Вы знаете, что есть специальные виды исполнителей алгоритмов — компьютеры. Они выполняют программы.
- Программа – это алгоритм, записанный в форме, понятной компьютеру.
Существуют специальные правила записи программ для компьютеров. На рисунке вверху страницы их характерные элементы выделены в рамках:
- любой алгоритм имеет название;
- алгоритм начинается с открывающей фигурной скобки “ и заканчивается закрывающей фигурной скобкой “>”; команды, расположенные между этими скобками, называются телом алгоритма;
- в алгоритм могут входить только те команды, которые есть в СКИ исполнителя;
- каждая команда заканчивается знаком “;”, который обозначает конец команды;
- для того, чтобы нам было легче разбираться в программах, используют комментарии — текстовые пояснения, которые начинаются знаками /* и заканчиваются знаками */; исполнитель не обращает внимания на комментарии в алгоритме.
Задача о перевозчике
Давно известна старинная задача о крестьянине, которому надо перевезти на другой берег реки волка, козу и капусту на лодке, в которую помещается сам крестьянин и на одно свободное место он может взять или волка, или козу, или капусту. Сложность заключается в том, что коза и волк ведут себя прилично только в присутствии крестьянина, в его отсутствие коза съест капусту, а волк съест козу.
АЛГОРИТМЫ в ПРОГРАММИРОВАНИИ для новичков | Левенштейн, Фибоначчи, Факториал и т.д.
Когда крестьянин едет на другой берег в первый раз, он может взять козу, так как только волк и капуста могут остаться наедине.
Затем он возвращается и берет с собой волка (или капусту — второй вариант решения). Но он не может оставить волка (или капусту) с козой на другом берегу и поэтому вынужден взять с собой козу обратно.
Вернувшись назад и высадив козу, он забирает волка (или капусту) и перевозит его. Теперь на другом берегу снова останутся волк с капустой и крестьянину останется только забрать козу.
Источник: studfile.net
Уроки 24 — 25
Понятие о программировании
(§ 9. Алгоритмы работы с величинами)
Алгоритмы работы с величинами: константы, переменные, основные типы, присваивание, ввод и вывод данных
Вам уже известно, что всякий алгоритм составляется для конкретного исполнителя. Теперь в качестве исполнителя мы будем рассматривать компьютер, оснащенный системой программирования на определенном языке.
Компьютер-исполнитель работает с определенными данными по определенной программе. Данные — это множество величин.
Величины: константы и переменные
Компьютер работает с информацией, хранящейся в его памяти. Отдельный информационный объект (число, символ, строка, таблица и пр.) называется величиной.
Программа для написания программ не зная языка программирования.
Всякая обрабатываемая программой величина занимает свое место (поле) в памяти компьютера.
Значение величины — это информация, хранимая в этом поле памяти.
Существуют три основных типа величин, с которыми работает компьютер: числовой, символьный и логический. Изучая базы данных и электронные таблицы, вы уже встречались с этими типами. В данной главе мы будем строить алгоритмы, работающие с числовыми величинами.
Числовые величины в программировании, так же как и математические величины, делятся на переменные и константы (постоянные). Например, в формуле (а 2 — 2аb + b 2 ) а, b — переменные, 2 — константа.
Константы записываются в алгоритмах своими десятичными значениями, например: 23, 3.5, 34. Значение константы хранится в выделенной под нее ячейке памяти и остается неизменным в течение работы программы.
Переменные в программировании, как и в математике, обозначаются символическими именами. Эти имена называют идентификаторами (от глагола «идентифицировать», что значит «обозначать», «символизировать»). Идентификатор может быть одной буквой, множеством букв, сочетанием букв и цифр и т. д. Примеры идентификаторов: А, X, B3, prim, r25 и т. п.
Система команд
Вам известно, что всякий алгоритм строится исходя из системы команд исполнителя, для которого он предназначен. Любой алгоритм работы с величинами может быть составлен из следующих команд:
• присваивание; • ввод; • вывод; • обращение к вспомогательному алгоритму; • цикл; • ветвление.
Эти команды существуют во всех языках, поддерживающих структурное программирование: в Паскале, Си и др.
Команда присваивания
Команда присваивания — одна из основных команд в алгоритмах работы с величинами. Записывать ее мы будем так:
Значок «:=» читается «присвоить». Например:
Z:=X + Y
Компьютер сначала вычисляет выражение, затем результат присваивает переменной, стоящей слева от знака «:=».
Если до выполнения этой команды содержимое ячеек, соответствующих переменным X, Y, Z, было таким:
Прочерк в ячейке Z обозначает, что начальное число в ней может быть любым. Оно не имеет значения для результата данной команды.
Если слева от знака присваивания стоит числовая переменная, а справа — выражение, определяющее порядок вычисления числовой величины, то такую команду называют арифметической командой присваивания, а выражение — арифметическим выражением.
В частном случае арифметическое выражение в правой части оператора присваивания может быть представлено одной переменной или одной константой.
Х:= 5
Y:= Х
Команда ввода
Значения переменных, являющихся исходными данными решаемой задачи, как правило, задаются вводом.
Команда ввода в описаниях алгоритмов выглядит так:
ввод А, Б, С
Пользователю удобно, если ввод данных организован в режиме диалога, когда по команде ввода компьютер прерывает выполнение программы и ждет действий пользователя. Пользователь должен набрать на клавиатуре вводимые значения переменных и нажать клавишу . Введенные значения присвоятся соответствующим переменным из списка ввода, и выполнение программы продолжится.
Вот схема выполнения приведенной выше команды.
1. Память до выполнения команды:
2. Процессор компьютера получил команду ввод А, Б, С, прервал свою работу и ждет действий пользователя.
3. Пользователь набирает на клавиатуре:
1 3 5
4. Память после выполнения команды:
5. Процессор переходит к выполнению следующей команды программы.
При выполнении пункта 3 вводимые числа должны быть отделены друг от друга какими-нибудь разделителями. Обычно это пробелы. Из сказанного выше можно сделать вывод:
Переменные величины получают конкретные значения в результате выполнения команды присваивания или команды ввода.
Если переменной величине не присвоено никакого значения (или не введено), то она является неопределенной. Иначе говоря, ничего нельзя сказать о том, какое значение имеет эта переменная.
Команда вывода
Результаты решения задачи сообщаются компьютером пользователю путем выполнения команды вывода.
Команда вывода в алгоритмах записывается так:
вывод X1, Х2
По этой команде значения переменных X1 и Х2 будут вынесены на устройство вывода (чаще всего это экран).
О других командах, применяемых в алгоритмах работы с величинами, вы узнаете позже.
Коротко о главном
Любой алгоритм работы с величинами может быть составлен из следующих команд: присваивание; ввод; вывод; обращение к вспомогательному алгоритму; цикл; ветвление.
Программа для компьютера — это алгоритм, записанный на языке программирования.
Язык программирования — это фиксированная система обозначений для описания алгоритмов и структур данных.
Всякая обрабатываемая программой величина занимает оцреде- ленное поле в памяти компьютера. Значение величины — это информация, хранимая в этом поле.
Переменная величина получает значение в результате выполнения команды присваивания или команды ввода.
Формат команды присваивания:
Сначала вычисляется выражение, затем полученное значение присваивается переменной.
Ввод — это занесение данных с внешних устройств в оперативную память компьютера. Исходные данные для решения задачи обычно задаются вводом.
Результаты решения задачи выносятся на устройства вывода (монитор, принтер) по команде вывода.
Вопросы и задания
1. Что такое величина? Чем отличаются переменные и постоянные величины?
2. Чем определяется значение величины?
3. Какие существуют основные типы величин в программировании?
4. Как записывается команда присваивания?
5. Что такое ввод? Как записывается команда ввода?
6. Что такое вывод? Как записывается команда вывода?
7. В схематическом виде (как это сделано в параграфе) отразите изменения значений в ячейках, соответствующих переменным А и B, в ходе последовательного выполнения команд присваивания:
8. Вместо многоточия впишите в алгоритм несколько команд присваивания, в результате чего должен получиться алгоритм возведения в четвертую степень введенного числа (дополнительные переменные не использовать):
ввод А . вывод А
Следующая страница Компьютерный практикум ЦОР. Алгоритмы работы с величинами
Источник: xn—-7sbbfb7a7aej.xn--p1ai
Основы алгоритмизации
Здравствуйте, сегодня мы поговорим о том, что же такое основы алгоритмизации? Я познакомлю с определением алгоритма, и мы узнаем почему алгоритмизация и алгоритм так нам нужны в программировании.
Начнем с того что узнаем, что же такое алгоритм?
Алгоритм — это определенная последовательность (порядок) действий, строгое выполнение которых приведет к выполнению поставленной цели.
т. е. это какое-то количество четких шагов, которые если мы выполним правильно, то придем к поставленной цели, решению задачи в зависимости от того что нам нужно.
Существуют различные типы алгоритмов или как еще их называют основные алгоритмические конструкции.
Типичным представлением линейного алгоритма можем представить себе допустим алгоритм кипячения воды. Что нам для этого нужно?
- Взять чайник
- Наполнить водой
- Зажечь огонь
- Поставить чайник на огонь
- Подождать
И вода будет вскипячена. Наша цель кипяченная вода выполнена, если все шаги мы четко выполним. В таком алгоритме все идет как бы по одной линии никаких ответвлений, кривых у нас не получается поэтому такие алгоритмы называются линейными.
Следующий тип алгоритма, который мы рассмотрим это разветвляющийся. Тут давайте представим такой алгоритм. Что нам одеть на улицу?
Если на улице идет дождь, то мы берем зонт или еще что-то делаем. Если на улице не идет зонт, то мы не берем зонт.
Что у нас происходит? Идут действия алгоритма, и у нас появляется условие. Что мы видим в условии? На улице идет дождь — это какое-то определенное высказывание, если оно истинно, то мы идем по одному пути, если оно ложно, то мы идем по другому пути.
Это пример разветвляющегося алгоритма.
Далее у нас есть еще алгоритм циклический.
Представить его мы можем как алгоритм поднятия по ступенькам. Что мы делаем что бы подняться по лестнице. Поднимаем левую ногу, ставим ее на ступеньку, потом поднимаем правую ногу ставим ее на следующую ступеньку, снова левую, снова правую и т. д.
У нас получается, как бы линейный алгоритм, мы делаем одно действие за другим. Писать такой алгоритм долго, потому что мы видим, что определенные действия с левой и правой ногой они повторяются. Можно это записать по-другому. Мы убираем действия, которые у нас повторяются оставляем его только один раз.
И далее мы представляем идут действия подошли к повторяющимся действиям и эти действия мы зацикливаем. Мы можем записать условие какое нам нужно, например, повторять 8 раз. После выполнения 8 раз условия алгоритм пойдет дальше.
Существуют различные способы записи алгоритма или форма записи.
- Словесная
- Графическая
- Псевдокоды
- Программная
Словесная форма представляет собой, например ваш распорядок дня записанный на бумаге.
Графический способ — это такой способ формы представления алгоритма, который мы будем использовать для записи алгоритма на бумаге. Это блок — схема затронем их поподробнее позднее.
Псевдокоды они включают в себя обычные словесные, элементы программы, математические функции.
Программная это алгоритм, записанный на языке программирования.
Какой вывод можно сделать. Программа — это алгоритм, записанный на специальном языке, который понимает компьютер. Поэтому нам так важна тема алгоритмы для того что бы начать программировать. Программа это и есть алгоритм просто представленная в той форме которой понимает компьютер.
Теперь давайте познакомимся со способом записи алгоритма с блок — схемой.
Блок-схема — это графический способ представления алгоритма. Он состоит из различных геометрических фигур, и каждая эта фигура что-то обозначает.
Блок Начало/Конец представляет собой что среднее между овалом и прямоугольником с закругленными углами и в нем пишется начало или конец алгоритма. Ставится в самом начале и в конце алгоритма. Следующий блок — это параллелограмм в нем записывается ввод/вывод данных.
Он нужен нам, например, мы хотим проделать какие-то действия допустим математическую операцию сложения двух чисел. Что бы сложить числа нам нужно три переменные. Переменная а это первое число, переменная b это второе число и переменная с это число, которое уже будет являться суммой. Подробней про переменные.
Здесь мы просто обозначаем эти переменные вводим данные и выводим данные, например, сумма переменная с .
В прямоугольнике у нас описывается действие. Допустим те же сложения.
Для разветвления у нас существует такой ромбик.
В правую сторону идет одно ответвление, а в левую другое ответвление. В одну сторону мы пойдем если условие истинно или в другую сторону если условие ложно. Условие записывается в ромбе.
Давайте разберем пример алгоритма сложение двух чисел.
Первое с чего начинается любой алгоритм это — начало, затем в параллелограмме пишется ввод данных, мы используем 3 переменные a, b, c . Далее идет действие переменной а присваивается значение 3 , b присваивается значение 4 , а переменной с присваивается значение a + b . Затем идет опять параллелограмм — это вывод данных. И в конце ставится конец.
На этом все, мы разобрали основы алгоритмизации.
Источник: murnik.ru