Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Этапы решения задач на компьютереСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте Процесс решения задачи на компьютере включает в себя следующие ос- новные этапы: 1) содержательная постановка задачи; 2) математическая постановка задачи (формализация задачи); 3) разработка алгоритма (алгоритмизация); 4) кодирование; 5) реализация программы на компьютере; 6) тестирование и отладка программы. Цель постановки задачи (этапы 1–2) – сформулировать задачу предельно четко, наметить сначала общий подход к ее решению, а затем и строгий мате- матический метод. Ни одну серьезную задачу нельзя решить без ее правильной постановки. Этот процесс составляют три этапа решения задачи на ЭВМ. Содержательная постановка задачи – это формулировки задачи, изла- гаемая в терминах некоторой конкретной предметной области. В ней содержат- ся все необходимые для решения задачи сведения. Следует сказать, что этап содержательной постановки задачи необходим при решении задачи любым об- разом, а не только в случае использования ЭВМ. Грамотная постановка задачи существенно облегчает решение, позволяет выявить противоречивость некото- рых требований, оценить реальность некоторых из них, а иногда даже позволя- ет выявить нецелесообразность решения задачи в целом. Математическая постановка задачи – это формулировка задачи, как некото- рого раздела математики. На этом этапе рассматриваются те же вопросы, что и в содержательной постановке задачи, однако сформулированы они на языке мате- матики. И поскольку при этом используются только математические термины, имеющие каждый точное определение, то ответы на них получаются строго одно- значные. Переход к математической задаче дает возможность подобрать и приме- нить для ее решения математические методы. ЭВМ может работать с данными только в том случае, если они организо- ваны строго определенным образом. Так, во многих языках программирования (ЯП) данные должны быть представлены в виде значений отдельных перемен- ных, либо сгруппированы в массивы, над которыми можно выполнять в основ- ном лишь ограниченный набор операций: арифметические; вычисления эле- ментарных функций; сравнения величин (логические операции). Преобразование задачи, полученной на этапе математической постановки в формализованный вид, называется формализацией задачи. Этот процесс вы- полняется в два шага. Шаг 1. Выбор структуры данных, т. е. представление данных и результа- тов задачи в виде, допустимом для обработки на ЭВМ (как правило, в виде со- вокупности переменных, массивов, файлов и т. д.). Шаг 2. Выбор способа (порядка) решения задачи, который включал бы только те операции над элементами данных, которые допустимы в ЯП. Таким образом, постановка задачи включает в себя четкую формулиров- ку, которую необходимо решить. Ставит задачу специалист в той предметной области, для которой решается задача. На этом этапе должно быть однозначно определено, какие исходные данные имеются для решения задачи, и какой ре- зультат должен быть получен. При этом должно быть определено, какие свой- ства (параметры, характеристики) объекта важны для решения задачи, а какие нет. Например, для вычисления площади поверхности письменного стола необ- ходимо знать форму столешницы и ее габариты. Такие характеристики, воз- можно, существенные при решении других задач, как высота, цвет, материал из которого сделан стол, являются неважными для решения поставленной задачи; т. е. данные по этим характеристикам не нужны при выполнении следующих этапов. Нечеткая или некорректная формулировка задачи может привести к ее неправильному решению. Формализация задачи заключается в подборе адекватного математическо- го объекта, соответствующего изучаемому предмету или явлению, определении типов и структур данных, необходимых для его описания. На этом этапе осуще- ствляется выбор идентификаторов1 данных и описание математических соотно- шений (метода решения), позволяющих получить требуемый результат. Этап формализации выполняет человек, способный разработать математическое опи- сание задачи. От степени сложности задачи зависит, кто из специалистов должен выполнять этот этап. Если задача простая и не требует специальных математиче- ских знаний, то достаточно квалификации постановщика задачи. Вернемся к нашему примеру. Для определения площади поверхности письменного стола, если он имеет прямоугольную форму, то измеряют его дли- ну и ширину, а затем перемножают полученные числа. В этом случае в качестве модели стола выбирают математический объект – прямоугольник. При более высоких требованиях к точности решения задачи прямоугольник придется за- менить другой моделью и учесть, например, закругления углов стола. Заметим, что модель не определяется объектом однозначно, но главное – надо быть уве- ренным, что она соответствует реальному объекту и отражает все его свойства, которые необходимы для решения поставленной задачи. Модель всегда осно- вана на некотором упрощении, однако, благодаря замене реального объекта со- ответствующей ему моделью появляется возможность сформулировать задачу его изучения как математическую и воспользоваться для ее решения средства- ми математики. Для повышения точности результатов модель приходится ус- ложнять, учитывая все новые и новые особенности изучаемого объекта. Для нашего примера модель выглядит следующим образом: Исходные данные: a – ширина стола (см), b – длина стола (см). Выходные данные: S – площадь поверхности. Математические соотношения: S = a · b.
1 Идентификатор – символьное обозначение единицы данных. Если же поверхность стола считать не точным прямоугольником, то по- требуются другие исходные данные и появятся другие соотношения. Фактически, построение модели задачи начинается уже на предыдущем этапе, когда определяются исходные и выходные данные. На этапе моделиро- вания важным является выбор удобных и адекватных математических обозна- чений исходных данных и результатов, а также построение формул, уравнений, неравенств, используемых для решения поставленной задачи. Итак, создавая модель объекта, нужно: 1) выделить предположения, на которых будет основываться модель; 2) обозначить исходные и выходные данные, определить их структуру, тип и область допустимых значений; 3) выбрать метод решения задачи; 4) записать математические соотношения в соответствии с выбранным методом, связывающие результаты с исходными данными. Выполнив «перевод» постановки задачи на язык математики, получают то, что называют математической постановкой задачи. Такая постановка задачи содержит описание исходных и выходных данных; математических выражений, по которым вычисляются выходные данные из исходных, возможно с исполь- зованием промежуточных вычислений, результаты которых должны заноситься в так называемые рабочие переменные. Описанные два этапа решения задачи на компьютере являются достаточ- но важными во всем процессе, так как во многих случаях неверная формули- ровка задачи или неадекватная математическая модель влекут за собой ошибки на следующих этапах решения задачи, что приводит к неверным результатам. В таких случаях все приходится начинать сначала. Рассмотрим еще один пример математической модели задачи. Допустим, нужно вычислить среднюю скорость движения автомобиля, если известно рас- стояние и время, за которое автомобиль его проехал. Заметьте, что при поста- новке задачи точно указывается, что нужно вычислить – именно среднюю ско- рость, так как фактически ясно, что скорость автомобиля на всем участке не- равномерная. Далее указывается скорость чего – автомобиля. Эта информация нужна для того, чтобы определить, какие исходные данные нам необходимы для решения задачи. В данном случае нас не интересует такая исходная инфор- мация, как цвет, марка, номер автомобиля, т. е. эти несущественные черты ис- следуемого объекта для этой задачи отбрасываются (хотя для другой задачи они могут пригодиться). Во внимание принимается только то, что для вычисле- ния скорости автомобиля на участке нужно знать длину участка и время в пути. Из чего делаем вывод, что постановка задачи сформулирована корректно. Да- лее реальный объект – автомобиль заменяется абстрактной моделью – движу- щимся телом. В качестве удобных обозначений исходных данных и результатов выбираем общепринятые обозначения: скорость – V, расстояние – S, время – t. Таким образом, теперь мы можем записать математическую модель задачи: Исходные данные: S – расстояние (км), t – время (ч). Выходные данные: V – скорость (км/ч). Математические соотношения: V = S/t. Рассмотрим пример уточнения постановки задачи и ее формализацию. Задача 1.
а) количество краски в килограммах, необходимое для покраски пола и двери одинаковой краской; в) количество обоев в погонных метрах, необходимое для оклейки стен. Какие данные еще необходимы для решения задачи? Описать формализо- ванную постановку задачи. Очевидно, что для решения задачи нужно вычислить площадь обрабаты- ваемых поверхностей. Для проведения расчетов по условию задачи имеются необходимые данные. Для определения количества краски в килограммах необ- ходимо знать норму ее расхода. Для определения количества обоев, например, в погонных метрах, необходимо знать ширину погонного метра. Опишем формализованную постановку задачи, т. е. определим обозначе- ния переменных для исходных, выходных данных, а также для промежуточных расчетов. Исходные данные: a – ширина комнаты (м), b – длина комнаты (м), h – высота стен (м), da – ширина двери (м), dh – высота двери (м), fa – ширина окна (м), fh – высота окна (м), nrk – норма расхода краски, (кг/м2), bo – ширина погонного метра обоев (м). Выходные данные: kk – количество краски (кг), ko – количество обоев (пог. м). Рабочие переменные: sp – площадь пола, sd – площадь двери, sf – площадь одного окна, ss – площадь стен. Кроме этого, математическая модель задачи включает описание расчет- ных формул: sp = a · b; sd = da · dh; sf = fa · fh; ss = 2(a · h) + 2(b · h) – 2sf – sd; kk = (sp + sd)·nrk; ko = ss / bo. Третий, не менее важный, этап решения задачи на компьютере – алгорит- мизация. Алгоритмизация – процесс разработки и описания алгоритма решения какой-либо задачи. После того, как описана математическая модель задачи, не- обходимо, взяв ее за основу, разработать и записать алгоритм решения задачи. Алгоритм – это инструкция о том, в какой последовательности нужно выполнить действия при переработке исходного материала в требуемый результат. Каждый из нас ежедневно использует различные алгоритмы: инструкции, правила, рецепты и т. п. Например, открывая ключом дверь, никто не размыш- ляет над тем, в какой последовательности выполнять действия. Однако, чтобы научить ребенка открывать дверь, придется четко указать и сами действия, и порядок их выполнения: 1) достать ключ; 2) вставить ключ в замочную скважину; 3) повернуть ключ два раза против часовой стрелки; 4) вынуть ключ; 5) толкнуть дверь. Или, например, Вы собрались в гости. Тогда Вам потребуется алгоритм того, как добраться до нужного дома. Он может состоять из следующих шагов: 1) выйти из дома; 2) повернуть налево; 3) пройти до автобусной остановки; 4) дождаться автобус № 20, идущий к центру города; 5) сесть в автобус № 20; 6) проехать три остановки; 7) выйти из автобуса; 8) перейти улицу; 9) пройти влево три квартала. Несмотря на различие этих алгоритмов, изучив их, можно выявить общие свойства. Прежде всего, это строгий порядок выполнения действий. Давайте переставим в первом алгоритме второе и третье действие. Вы, конечно, сможе- те выполнить этот алгоритм, но дверь вряд ли откроется. А что произойдет, ес- ли поменять местами пятое и шестое действие во втором алгоритме? Он станет невыполнимым! Итак, для алгоритма важен не только набор действий, но и то, в каком порядке они выполняются. Так же важным является то, что каждое по- следующее действие выполняется только после завершения предыдущего. На- пример, если нужно прийти в гости вовремя, то лучше не пытаться во втором алгоритме выполнить седьмое действие, не закончив шестое. В зависимости от контекста используют разные определения алгоритма. Учитывая рассмотренные понятия исходных и выходных данных, алгоритм можно определить как точное описание последовательности действий над ис- ходными данными, выполнение которой обеспечивает получение искомого ре- зультата (выходных данных). Для решения задачи на компьютере наряду с по- нятием алгоритма используют термин алгоритмизация, под которой понимают совокупность приемов и способов составления алгоритмов. Для больших задач алгоритмизация – весьма трудоемкий процесс, тре- бующий четкого представления процесса решения задачи, приводящего от ис- ходных данных к конечному результату. Сущность алгоритмизации проявляет- ся в выполнении ряда действий: - разделение всего процесса решения задачи на локально-законченные части; - определение последовательности выполнения каждой выделенной час- ти процесса; - описание всех частей и правил перехода от одной части к другой; - проверка правильности алгоритма. Этап алгоритмизации выполняет человек, имеющий представление о про- граммировании. Уровень его квалификации определяет эффективность разра- ботанного алгоритма. Кодирование (программирование) – описание алгоритма на каком-либо языке программирования, т. е. составление программы по разработанному на предыдущем этапе алгоритму. Программа – это представление алгоритма с по- мощью специальных символов, образующих последовательность команд, вос- принимаемых компьютером. Для составления программ существуют различные языки программирования. Язык программирования – это формальный язык, с помощью которого составляется набор команд для управления вычислительной машиной и процессом решения задачи. Результатом кодирования является ис- ходный текст программы, зафиксированный на каком-либо материальном носи- теле. Если текст программы набирается на компьютере, то это – обычный тек- стовый файл. Этап кодирования выполняет программист – человек, умеющий программировать на выбранном языке программирования. Реализация программы на компьютере. Написанную программистом про- грамму необходимо записать в виде текстового файла. Но этого еще недостаточно для того, чтобы программа могла выполняться компьютером. Для получения ис- полняемого файла нужно выполнить еще несколько шагов. Весь процесс разра- ботки и выполнения программы на компьютере осуществляется в соответствую- щей языку системе программирования. Этот этап состоит из четырех шагов: - ввод исходного текста программы; - компиляция (трансляция); - построение; - выполнение. На шаге компиляции осуществляется поиск и исправление синтаксиче- ских ошибок, допущенных на этапе составления программы, или при вводе ис- ходного текста. Если ошибок в исходном тексте нет, то программа транслиру- ется (переводится) в машинные коды. После успешной компиляции создается объектный модуль программы. На следующем шаге, называемом построение, подсоединяются библиотеки программ, данной системы программирования. После него создается загрузочный модуль (исполняемый файл), который затем и запускается на выполнение. Тестирование и отладка программы часто оказывается самым трудоем- ким этапом работы. Для того чтобы убедиться в правильности составленной программы, необходимо выполнить процесс тестирования и отладки. Отладка – это процесс исправления синтаксических и логических ошибок. Тестирование – это процесс обнаружения логических ошибок. Для проведения тестирования составляют тестовую задачу, которая позволит осуществить проверку правиль- ности работы программы. Тестовая задача состоит из набора тестов (контроль- ных примеров), т. е. совокупности таких исходных данных, на основании кото- рых заранее определяются значения выходных данных. Если результаты рабо- ты программы на заданных исходных данных не совпадают с ожидаемыми ре- зультатами, это означает, что была допущена логическая ошибка на этапе со- ставления программы, а чаще всего на этапе алгоритмизации. В этом случае следует исправить алгоритм, затем выполнить 4, 5, 6 этапы. Таким образом, видно, что решение задачи на компьютере представляет собой сложный многоэтапный процесс, в котором возможно возвращение к предыдущим этапам и их переработка. Для того чтобы минимизировать возвра- ты, и тем самым увеличить продуктивность работы, необходимо четко и внима- тельно выполнять каждый из этапов. Свойства алгоритмов Согласно Государственному стандарту под алгоритмом понимается «точное предписание, определяющее вычислительный процесс, ведущий от варьируемых начальных данных к искомому результату» (ГОСТ 19.781-74). Алгоритм включает систему правил, определяющих содержание и конечную последовательность дей- ствий (шагов и операций), выполняемых над некоторыми объектами с целью пе- реработки исходных и промежуточных данных в искомый результат. Это предпи- сание конкретному исполнителю о том, какие действия, над какими объектами и в каком порядке следует выполнять для решения поставленной задачи. Дадим еще одно определение алгоритма, включающее описание его свойств: алгоритм – это система точных и простых предписаний о содержании и последовательности выполнения конечного числа действий, необходимых для решения поставленной задачи при любых значениях исходных данных. Правильно составленный алгоритм должен удовлетворять ряду свойств, некоторые из которых уже заложены в определении алгоритма. К свойствам ал- горитма относятся. 1. Дискретность. Заключается в том, что весь описываемый процесс должен быть разбит на последовательность отдельных шагов. Возникающая в результате такого разбиения запись представляет собой упорядоченную сово- купность четко разделенных друг от друга предписаний (директив, команд), образующих прерывную (или, как говорят, дискретную) структуру алгоритма: только выполнив требования одного предписания, можно приступить к выпол- нению следующего. Каждое последующее действие выполняется лишь после завершения предыдущего, т. е. алгоритм выполняется пошагово. 2. Массовость. Означает пригодность алгоритма для решения задач дан- ного типа при разных наборах значений исходных данных. Это свойство обес- печивается использованием в алгоритмах буквенных обозначений данных (пе- ременных). В связи с этим, возможны разные результаты работы алгоритма. Ре- зультат зависит от того, какие именно значения исходных данных были заданы. 3. Результативность (конечность). Смысл этого требования состоит в том, что при точном исполнении всех предписаний алгоритма, процесс должен прекратиться за конечное число шагов и при этом должен быть получен какой- либо определенный ответ. К результату, цели приходим за конечное число действий. Встречаются случаи, когда алгоритм не может быть выполнен, на- пример, возникает ошибка деления на 0. В этом случае результатом работы ал- горитма должно быть соответствующее сообщение. 4. Понятность. Алгоритм всегда формируется в расчете на конкретного исполнителя, понимающего его команды и выполняющего их чисто механиче- ски без каких-либо отклонений от предписаний. Исполнителем может быть че- ловек, робот, автоматическое устройство, ПЭВМ или любой другой объект, способный воспринять предписания и выполнить указанные в них действия. Используемые на практике записи алгоритмов составляются с ориентацией на определенного исполнителя1. У исполнителя имеется перечень предписаний, которые он может исполнять. Такой перечень называется системой команд. Та- ким образом, алгоритм должен быть записан в рамках данной системы ко- манд, с тем, чтобы он был понятен исполнителю. 5. Детерминированность (определенность, однозначность). Это свойст- во означает, что запись алгоритма должна быть настолько четкой и понятной, чтобы у исполнителя не возникло затруднений в осмыслении и выполнении каждой команды. То есть, будучи понятным, алгоритм не должен содержать предписаний, смысл которых может восприниматься неоднозначно, например, «Умножить число х на одно из двух чисел а или b». Кроме этого, в алгоритмах недопустимы ситуации, когда после выполнения очередного действия исполни- телю неясно, какое действие должно выполняться на следующем шаге. Говоря иначе, алгоритм не должен давать исполнителю возможности выбора, а должен четко указывать на каком шаге, при каких условиях какие действия выполнять. Важен не только набор действий, но и то, в каком порядке они выполняются. Если порядок действий нарушается, то алгоритм либо может стать невы- полнимым, либо приведет к неправильным результатам. Таким образом, свойство определенности означает, во-первых, каждый шаг алгоритма точно определяет, что именно нужно сделать, и, во-вторых, в процессе решения задачи согласно составленному алгоритму после выполнения какого ли- бо шага однозначно определяется, какой шаг будет выполняться следующим. 6. Инвариантность по отношению к исполнителю. Означает, что алгоритм должен оставаться неизменным при выполнении его разными исполнителями. 7. Эффективность. Алгоритм должен быть составлен так, чтобы резуль- тат получался при использовании наименьшего количества наиболее простых операций. Свойства дискретности, результативности, детерминированности и по- нятности являются обязательными для любого алгоритма. Разработчик алго- ритма должен следить за тем, чтобы алгоритм удовлетворял этим свойствам.
1 Исполнитель алгоритма – это некоторая абстрактная или реальная (техническая, биологическая или биотехническая) система, способная выполнить действия, предписываемые алгоритмом [10]. Способы записи алгоритма В зависимости от сложности решаемой задачи и того, для кого и чего описывается алгоритм, используются разные способы записи алгоритма: - вербальный (словесный, записанный на естественном языке); - структурно-стилизованный; - графический; - программный. Вербальный способ записи алгоритмов представляет собой словесное описание последовательности шагов для решения поставленной задачи. Необ- ходимые действия формулируются на языке, понятном человеку. Но для техни- ческой системы такое описание алгоритма является неприемлемым, оно не формализуемо, страдает многословностью. Этот способ удобен, например, для описания так называемых «бытовых» алгоритмов: как позвонить по междуго- родному телефону-автомату, как пользоваться стиральной машиной и т. п. При описании алгоритма с целью его дальнейшего кодирования для выполнения на вычислительной машине данный способ не имеет широкого распространения, но используется в учебной литературе для объяснения сути алгоритма. При этом способе отсутствует наглядность вычислительного процесса, так как нет достаточной формализации. Для вычислительных задач используется словесно-формульное описание алгоритма, т. е. описание алгоритма с помощью слов и формул. Это наиболее простой способ. Для его понимания рассмотрим пример. Задача 2.
900, если Кп = 100 % ST = 600, если 50% ≤ Кп < 100 %, 400, если Кп < 50 % где ST – размер стипендии; Кп – количество пятерок по результатам сессии. Словесно-формульное описание алгоритма решения задачи: 1. Ввести Кп, перейти к п. 2. 2. Если Кп = 100 %,то ST = 900, перейти к п. 4, иначе – перейти к п. 3. 3. Если 50 % ≤ Кп < 100 %, то ST = 600, перейти к п. 4, иначе ST = 400, перейти к п. 4. 4. Вывести (отпечатать) значение ST, перейти к п. 5. 5. Вычисления прекратить. На примере видно, что словесно-формульное описание алгоритма – это задание инструкций с использованием математических символов и выражений в сочетании со словесными пояснениями. При использовании этого способа может быть достигнута любая степень детализации, нагляднее, чем в словесном способе, но не строго формально. Структурно-стилизованный способ записи алгоритмов основан на фор- мализованном представлении предписаний, задаваемых путем использования ограниченного набора типовых синтаксических конструкций. Разновидностями структурно-стилизованного способа являются псевдокод, построчная алгорит- мическая нотация, структурные диаграммы. Структурные диаграммы могут ис- пользоваться в качестве структурных блок-схем, для показа межмодульных связей, для отображения структур данных, программ и систем обработки дан- ных. Существуют различные структурные диаграммы: диаграммы Насси- Шнейдермана, диаграммы Варнье, Джексона, МЭСИД и др. Псевдокод позво- ляет формально изображать логику программы, не заботясь при этом о синтак- сических особенностях конкретного языка программирования. Обычно пред- ставляет собой смесь операторов языка программирования и естественного языка. Является средством представления логики программы, которое можно применять вместо блок-схемы. Примером такого способа является предложенный академиком А. П. Ер- шовым алгоритмический язык в русской нотации (АЯРН), описание которого дано в приложении. Алгоритм решения этой задачи на АЯРН выглядит следующим образом: НАЧАЛО ВЕЩЕСТВЕННОЕ Кп, ST ВВОД Кп ЕСЛИ Кп = 100 ТО ST:= 900 ИНАЧЕ ЕСЛИ Кп > 50.И. Кп < 100 ТО ST:= 600 ИНАЧЕ ST:= 400 КОНЕЦ развилки; КОНЕЦ развилки; ВЫВОД ST КОНЕЦ.
Графический способ описания алгоритма представляет собой схему, по- строенную с использованием взаимосвязанных графических блоков, называе- мую блок-схемой. Каждый блок обозначает определенный тип инструкции. Блок-схемы используются для компактного и наглядного изображения алго- ритма. Кроме этого, блок-схемы позволяют разрабатывать структурированные алгоритмы, что упрощает процесс написания программы и ее отладку. Графи- ческий способ описания алгоритмов в виде блок-схем используется в данном пособии как основной, поскольку блок-схемы не устаревают и их удобно «пе- реводить» на любой язык программирования. Программный способ записи алгоритмов – написание алгоритма на языке программирования, т. е. составление программы. Структура программы на любом языке программирования в общем слу- чае выглядит следующим образом <Заголовок> – начало программы. <Операторы описания> – невыполняемые операторы, предназначенные для объявления используемых в программе данных. <Ввод исходных данных> – операторы или функции ввода исходных данных. <Выполняемые операторы> – последовательность операторов непосред- ственно, реализующих алгоритм <Вывод результатов> – операторы или функции вывода на экран, печать или в файл выходной информации. <Конец> – завершение программы. Программа на языке программирования – последовательность операторов языка. Оператор – это основной объект программы, который указывает, какие действия должны быть реализованы на определенном этапе работы. Операторы описания необходимы для задания характеристик данных, а выполняемые опе- раторы – для описания процесса их обработки. Операторы строятся с помощью служебных слов и выражений. Основные понятия, используемые при разработке алгоритма К основным понятиям, используемым при разработке алгоритма решения задачи на компьютере, относятся термины: данные, константы, переменные, выражения, инструкции (операции, операторы, действия). При составлении ал- горитма важным является выбор структур и типов данных. Данные, с которыми работает алгоритм, обозначаются, чаще всего с помощью переменных, т. е. бу- квенного обозначения данных. Любая переменная имеет имя (обычно начина- ется с буквы) и значение, соответствующего типа. Данные, с которыми работает алгоритм и программа, различаются по ти- пу и назначению и структуре. Наиболее часто используются четыре основных типа данных: целые (integer), вещественные (real), логические (logical), сим- вольные (character). Переменная целого типа может принимать только целочис- ленные значения (положительные, отрицательные, ноль). Переменная вещест- венного типа принимает любые числовые значения (целые, дробные). Перемен- ная логического типа может принимать одно из двух значений: «истина» или «ложь». Переменная символьного типа в качестве значения может содержать любой символ; в алгоритмах символьное значение записывается в апострофах. По назначению данные могут быть константами и переменными. Кон- станта – это такой объект, значение которого остается неизменным при вы- полнении алгоритма. Константы могут использоваться в виде конкретных зна- чений, либо с помощью именованных констант. Для именованных констант имя и значение определяется в начале алгоритма. В форме переменных пред- ставляют поименованные данные, характеризующиеся постоянным типом и изменяющимся в процессе выполнения операций значением Переменная – это такой объект, значение которого в ходе выполнения алгоритма может неодно- кратно меняться (а может и не изменяться). Значения переменных могут вво- диться, либо вычисляться в ходе выполнения алгоритма. Таким образом, каж- дая переменная имеет имя (идентификатор) и значение. По структуре различают простые данные (переменные) – одно значение, и составные данные (переменные) – множество значений (массивы). Для того чтобы ясно представить как «работает» алгоритм с данными, опишем простейший автомат, который предназначен для выполнения операций, предписанных этим алгоритмом В состав такого автомата входят: - память, состоящая из отдельных ячеек; - считывающая/записывающая головка; - процессор, т. е. устройство, способное выполнять операции, в том числе математические, и отдавать головке указания читать данные из ячеек или за- писывать данные в ячейки памяти автомата. Головка, получив указание от процессора, может записывать в ячейку или считывать из нее одну константу. В простейшем случае константой является любое арифметическое чис- ло. Например, 12, 0.78, 0, – 45.33 и т. д. Под простой переменной, или просто переменной, будем понимать некоторую ячейку памяти, т. е. отдельное место для хранения одной константы. В отдельной ячейке за время работы алгоритма может побывать множество различных констант (отсюда название – перемен- ная). Такими ячейками (электронными, магнитными, оптическими) снабжен ре- альный компьютер. Переменные имеют буквенно-символьное обозначение. Например, 1, n, a, a1, b, H2 – переменные. Одновременно обозначение переменной является ин- дексом ячейки, в которую будут записываться константы. Любая из таких кон- стант называется значением переменной. Например, Z является переменной и адресом ячейки Z одновременно. С алгоритмической точки зрения понятия “переменнаяˮ и “адрес ячейкиˮ памяти являются идентичными. Запись вида Y:= 5.5 следует понимать так: записать константу 5.5 в ячей- ку с адресом Y (если до этой операции в ячейку была записана константа, то она будет затерта, а на ее место будет помещена константа 5.5). Произносить эту запись следует так: “переменной Y присвоить значение 5.5ˮ. Запись вида L:= M следует понимать так: прочитать константу, располо- женную по адресу M и скопировать эту константу в ячейку с адресом L (при этом константа из ячейки M не удаляется, а остается такой, какой она была до чтения). Произносить эту запись нужно так: «переменной L присвоить значение переменной M (или просто: L присвоить M)». Большинство действий в алгоритмах используют выражения. Выражение определяет, какие операции, в какой последовательности и со значением каких переменных и констант требуется выполнить для получения нового значения. Выражения состоят из операндов (переменных, констант) и знаков операций (+, -, *, /, **, >, <, =, <>)1. Выражения показывают, какие операции следует вы- полнять над операндами. Выражения, в зависимости от входящих в него опера- ций и типов данных, бывают арифметические, логические, строковые. Пример арифметических выражений: 5 + 8; 2 * (a - b); x**2 / (c + d). Пример логических выражений: 5 < 7; a = b; 2 > 200; (a > b).И.(d < c). Значения второго и четвертого логических выражений зависят от значений входящих в него переменных. Зна- чение первого выражения – ИСТИНА, значение третьего выражения – ЛОЖЬ. Действия, которые выполняются над данными, записываются в виде ин- струкций. Для конкретного исполнителя набор инструкций ограничен. Для языков программирования – это набор операторов языка. Для алгоритмов, за- писанных в виде блок-схем, это набор блоков. Каждый блок определяет опре- деленный тип инструкции.
|
||||||||
|
Последнее изменение этой страницы: 2021-07-18; просмотров: 796; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.014 с.) |