КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Циклические алгоритмы
Разветвляющиеся алгоритмы Линейные алгоритмы В линейном алгоритме отсутствуют разветвления и все операции выполняются однократно. Пример: выполнить функцию y = [2 (x + 10) + 3 (x3 +5) ] / [4(x2 + 10) + 5(x3 + 5)] Изобразим одну из возможных блок-схем алгоритма.
В разветвляющемся алгоритме имеются два или более направлений хода вычислений. Пример: вычислить функцию
В циклическом алгоритме некоторые операции выполняются многократно. Циклический алгоритм одновременно является и разветвляющимся. Пример: вычислить сумму из n слагаемых, если i-е по порядку слагаемое определяется выражением: yi(x) = (x + i) / (i + 1), т.е. y = (x +1) / 2 + (x + 2) / 3 + … + (x + n) / (n + 1) Эту сумму можно вычислить, предусмотрев в алгоритме для каждого слагаемого свой вычислительный блок типа "процесс". Однако при большом n этот путь чрезвычайно нерационален. А другой путь, основанный на том факте, что каждое слагаемое рассматриваемой суммы y рас-падается на n этапов, на каждом из которых выполняются одни и те же действия. При этом на i-м этапе вычисляется i-е по порядку слагаемое и сумма yi первых i слагаемых. Только эти действия для i-го слагаемого и i-й суммы дополненные операциями по изменению и проверке значения номера i и составляют содер-жание циклического алгоритма. При за-писи алгоритма опускаются индексы, отмечающие предыдущие и последую- щие значения y и i, то есть пишут: y = y + u и i = i + 1. Переменную принято называть счетчиком или параметром цикла.
2.4. ЯЗЫКИ ПРОГРАММИРОВАНИЯ
Для представления алгоритма в виде понятном компьютеру, служат языки программирования, на одном из которых и должен быть записан алгоритм. В результате алгоритм превращается в компьютерную программу. Однако лишь единственный язык программирования понятен компьютеру без переводчика – это язык его машинных команд (кодов). Команды, как и любая другая информация в машине, представляются в виде двоичных кодов. Машинные коды – это двоичные коды, которыми кодируются команды ЭВМ. Эти коды содержат две части, в одной из которых размещается код операции, в другой – адреса операндов и результата. Приведем учебный пример машинных кодов ЭВМ: В современных ПЭВМ реали-зуется, как правило, порядка 200 различных команд. Прог-раммированию на языке ма-шинных кодов свойственны 2 недостатка: 1) высокая тру-доемкость программирования, 2) необходимость знания устройства ЭВМ. Достоинством такого подхода к программированию является возможность получения наиболее компактных программ. В этом случае процесс общения человека с машиной можно представить рисунком:
Развитие языков программирования всегда осуществлялось и продолжает осуществляться в направлении исключения указанных недостатков. Первый шаг в этом направлении – это переход к языку ассемблера. Отличие ассемблера от языка машинных кодов заключается лишь в том, что двоичный код операции в ассемблере заменяется на ее символьное имя. В результате при записи в программе команды "сложение" при использовании ассемблера пишется ее имя "Add", а не код 0001. Однако при программировании на ассемблере программисту также необходимо знание устройства ЭВМ. Эти недостатки исчезают лишь при использовании так называемых языков высокого уровня. Примерами таких языков являются BASIC, C, Pascal и т.д. Эти языки гораздо более понятны человеку, нежели машинные коды, они не требуют знания устройства ЭВМ. Однако при использовании, как и в случае ассемблера, требуются спецпрограммы-переводчики с языка высокого уровня (ЯВУ) на язык машинных кодов. Эти программы называются трансляторами, а процесс перевода – трансляцией. В результате схема общения человека с ЭВМ приобретает следующий вид:
Трансляция Существуют трансляторы 2-х типов: компиляторы и интерпретаторы. Компиляторы до использования программы переводят текст программы с ЯВУ на язык машинных команд целиком. Результат перевода – программа в машинных кодах – называется объектным модулем. Для ее исполнения в дальнейшем не нужен компилятор. Интерпретаторы переводят текст программы не целиком, а покомандно и не создают объектного модуля. Для исполнения программы в этом случае всегда нужен интерпретатор. Последнее свойство является явным недостатком. Однако отладка программы при использовании интерпретатора резко упрощается. Для некоторых языков разработаны как компиляторы, так и интерпретаторы. К числу таких языков относится QuickBasic. На практике вы будете работать с его усеченной по числу операторов версией QBASIC, для которого существует лишь интерпретатор. Для разработки и отладки программ на языках высокого уровня используются системы программирования, которые состоят из следующих компонентов: 1) текстовый редактор для подготовки текста программы на ЯВУ 2) транслятор для перевода исходного текста программы на язык машинных кодов 3) средства для отладки программ. Процесс отладки предназначен для обнаружения и исправления ошибок в программе и предполагает предварительную разработку проверочных исходных данных для программ – названных тестами.
ТЕМА 3. ОСНОВНЫЕ ПРИЕМЫ ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ BASIC
3.1. ОПИСАНИЕ ДАННЫХ
Дата добавления: 2014-01-06; Просмотров: 525; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |