Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lekcii_1_10 / Лекция 01.docx
Скачиваний:
52
Добавлен:
21.05.2015
Размер:
226.02 Кб
Скачать

Найти сумму элементов массива

В качестве примера рассмотрим нахождение суммы элементов массива. В блоке 2 введем переменную s, в которой будем копить искомую сумму. Чтобы найти действие, которое

s=0

s=0+a1

s=0+a1 +a2

s=0+a1 +a 2+ a3

s=0

s=s+a1

s=s+a2

s=s+a3

надо повторить для каждого элемента массива (блок 5), рассмотрим, что находится в s при прибавлении к сумме каждого следующего элемента. Из таблицы справа видно, что в s каждый раз заносится то, что там было после предыдущего шага (под­черкнуто), плюс текущий элемент, т.е. s=s+ai . В блоке анализа результатов (блок 8) просто напечатаем значение s.

Найти максимальный элемент массива.

Рассмотрим нахождение максимального элемента массива. Для определения повторяющегося для каждого элемента действия представим массив в виде набора ячеек, содержащих указанные справа значения. Ниже укажем переменную amax, в которой будет находиться значение макси-

  1. мального из уже рассмотренных элементов.

Вначале занесем туда первый элемент, как наибольший из рассмотренных (блок 2). На каждой итерации (блок 5) будем заносить туда текущий элемент ai, если он больше предыдущего максимального (при этом старое значение стирается), если же нет, то оставлять там то, что было. После окончания обработки массива в amax останется самый большой элемент. В блоке 8 анализа результатов  просто напечатаем значение amax .

Использование флага наступления события

В некоторых задачах требуется обработать не все элементы массива, а только соответствующие некоторому условию. В этом случае после обработки массива иногда неизвестно, были найдены такие элементы или нет. Чтобы узнать это, используют прием алгоритмизации, называемый флагом. Перед обработкой массива (в блоке 2) в некоторую переменную (назовем ее flag) заносят число 0. В процессе обработки элементов (блок 5) в эту переменную заносят число 1, если обрабатываемый элемент удовлетворяет заданному условию. Тогда после окончания обработки до­статочно проверить значение этой переменной - если там остался ноль, то подходящих

элементов не нашлось.

В качестве примера рассмотрим поиск первого четного элемента массива. Перед циклом в блоке 2 занесем в переменную flag число 0. При обработке i-го элемента массива (блок 5) в случае его четности занесем в flag число 1 и сделаем досрочный выход из цикла, передав управление на блок 9, в противном случае продолжим цикл, перейдя на блок 6.

После окончания обработки (блок 8) проверим значение переменной flag. Если оно не 0, значит четные элементы были, поэтому выводим ai.

Системы программирования

Состав.

Система программирования – это комплекс программ, предназначенный для автоматизации процесса создания новых программ. Они освобождают проблемного пользователя или прикладного программиста от необходимости написания программ решения своих задач на неудобном для них языке машинных команд и предоставляют им возможность использовать специальные языки более высокого уровня.

В состав системы программирования обычно входят:

  1. описание применяемого языка программирования;

  2. тестовый редактор, позволяющий ввести текст программы и записать его в файл на диске;

  3. программы-трансляторы, переводящие исходный текст программы в машинный код;

  4. развитую библиотеку стандартных подпрограмм;

  5. дополнительные сервисные программы, в частности, отладчик, позволяющий ускорить процесс отладки программы, а также специальные визуальные компоненты в современных системах, позволяющие быстро создать удобный интерфейс пользователя.

Язык программирования, алфавит, синтаксис, семантика.

Программа – набор команд на понятном ЭВМ языке, реализующих заданный алгоритм.

Язык программирования – это набор правил, определяющих систему записей, составляющих программу в некотором алфавите. Алфавит – набор символов, используемых для записи конструкций языка в программе. Язык состоит из синтаксиса и семантики.

Синтаксис – это набор правил написания языковых конструкций.

Семантика – набор правил, определяющих последовательность действий компьютера при выполнении синтаксических конструкций языка.

Реализация языка

Реализация языка (транслятор) - это программа, которая переводит (преобразует) записи на языке высокого уровня в последовательность машинных команд.

Имеются два основных вида средств реализации языка: компиляторы и интерпретаторы.

Компилятор транслирует весь текст программы, написанной на языке высокого уровня, в ходе одного непрерывного процесса. При этом создается полная программа в машинных кодах, которую затем ЭВМ выполняет без участия компилятора.

Интерпретатор последовательно анализирует по одному оператору программы, превращая при этом каждую синтаксическую конструкцию, записанную на языке высокого уровня, в машинные команды и выполняя их одна за другой. Интерпретатор должен постоянно присутствовать в оперативной памяти вместе с интерпретируемой программой, что требует значительных объемов памяти.

В принципе любой язык программирования может быть как интерпретируемым, так и компилируемым, но в большинстве случаев у каждого языка есть свой предпочтительный способ реализации. Языки Фортран, Си, Паскаль в основном компилируют, языки Бейсик и Лисп широко используют оба способа.

Основным преимуществом компиляции является скорость выполнения готовой программы. Интерпретируемая программа неизбежно выполняется медленнее, чем компилируемая, поскольку интерпретатор должен строить соответствующую последовательность команд в момент, когда инструкция предписывает выполнение.

В то же время интерпретируемый язык часто более удобен для программиста, особенно начинающего. Он позволяет проконтролировать результат каждой операции. Особенно хорошо такой язык подходит для диалогового стиля разработки программ, когда отдельные части программы можно написать, проверить и выполнить в ходе создания программы, не отключая интерпретатора. Когда же найдена ошибка, ее можно исправить немедленно, при этом нет необходимости возвращаться к программе редактирования текста и затем снова компилировать программу.

Соседние файлы в папке lekcii_1_10