Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы алгоритмизации и программирование.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.73 Mб
Скачать
  1. Использование флага наступления события.

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

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

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

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

Построить таблицу значений функции на отрезке и найти ее максимальное значение.

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

1.3.1Состав.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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