Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Язык Turbo Pascal: структура программы, простой и составной оператор. Операторы переходов: условный оператор, оператор выбора (переключения).



Читайте также:
  1. I. Общая концепция выведения на рынок сотовой связи нового оператора
  2. II. ДОБРОВОЛЬНАЯ НАРОДНАЯ ДРУЖИНА И ЕЕ СТРУКТУРА
  3. II.Структура характера
  4. IV. Структура психодиагностического процесса.
  5. V3: Функциональная структура психодиагностического обследования
  6. Автоматические выключатели (Условия выбора)
  7. Адміністративно-правові норми: поняття, особливості, структура, види.

Язык программирования: понятие оператора, программы, программы линейного типа. Алгоритмизация решения задачи. Блок-схемы алгоритмов. Стандартные алгоритмические конструкции. Языки программирования: обзор, классификация, примеры. Среда программирования, её основные функции и компоненты. Интерпретаторы и компиляторы. Отладка, тестирование и трансляция программ. Отладка и тестирование программ в среде Delphi.

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

Алгоритмизация решения задачи: решение задачи с помощью алгоритма.

Алгоритм имеет необходимые и сравнительные св-ва. Необх-е должны быть у всех алг-ов, сравнит-е рассм-ся для сравнения алг-ов.

Необх. св-ва:

1. Дискретность. Алгор. разбивается на конеч. число операций или шагов, каждый шаг при этом определен и 1значен.

2. Детерменированность (определенность) – существ-ние на каж. шаге алгора 1значного выбора и отсутствие не1значных конструкций.

3. Результативность (конечность) – за конеч. число шагов алгор. должен всегда давать рез-т.

Сравнит. св-ва:

1. Массовость опр-ся классом данных, к кот-м применим данный алгор. Чем > область примен-я, тем выше массовость.

2. Формальностью и простота. Формализация предполагает использ-е при построении алгора стандартных конструкций, усложняющих понимание смысла алгора.

3. Рекурсивность – многократность использования отдельных частей алгора (циклы, процедуры, функции,…).

4. Эффективность. Для опред-я эфф-ти алгора небх. опред-ть числовой критерий эфф-ти так, чтобы алгор с >им критерием считался бы >ее эфф-ным. Или наоборот, эфф-ным будет считаться алгор с <им значением дан. критерия.

Наиболее распространенные способы задания: словесный, табличный и блок-схема.

Словесное описание позвол. описать алг-м с пом-ю слов и предложений.

Табличное задание служит для представления алгоритма в виде таблицы и расчетных формул.

Блок-схема – это графическое представление алг-ма, каждое действие алг-ма записыв-ся соответствующей геометрической фигурой.

Начало алг-ма

Конец алг-ма

Арифметическое действие или группа действий

Выбор действия в зависимости от истинности или ложности; в программе соотв.

Операторам условного перехода и конструкциям цикла while и Repeat.

Повторение действий заданное кол-во раз;

в программе соответствует конструкции цикла FOR.

ввод значений переменных с клавиатуры

вывод значений переменных и текста на экран

направление вычисления сверху вниз или слева направо

направление вычисления снизу вверх и справа налево

точка разрыва в схеме

Различают следующие типы алгоритмов: линейный, разветвляющийся, циклический.

Линейный алгоритм не содержит логических условий и им одну ветвь вычислений

Разветвляющийся алгоритм содержит одну или несколько ветвей вычисления.

Циклический алгоритм содержит многократно повторяемые части.

Составить алгоритм и написать программу, которая выводят y=x2 в диапазоне от -10 до 10, с шагом 0,5.

Алгоритм, заданный словесно, в виде таблицы или графически (блок-схемой), может быть обработан с помощью ЭВМ только в том случае, если он переведен на некоторый язык программирования. Выбор языка зависит от многих факторов как объективных, так и субъективных: наличие техники, ПО, наличия литературы.

Программирование – раздел информатики, который изучает методы и средства, создание, тестирование и использование программ.

Программирование подразделяется на следующие этапы:

1. Постановка задачи.

2. Разработка алгоритма.

3. Программирование алгоритма на языке программирования.

4. Набор программ в среде программирования.

5. Запуск программы и ее отладка.

6. Тестирование работы программы.

7. Использование программы для решения задач.

Отладка программы – исправление ошибок: логических и синтаксических (проверка работоспособности программы).

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

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

Метка – это последовательность цифр в диапазоне от 0 до 9999 или идентификатор.

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

Процедурный язык – программа строится как алгоритм действия (процедура) компьютера. Примеры: Fortran, C, Basic, Pascal.

Линейная структура программы – последовательное выполнение операторов.

Тело программы можно представить как – последовательность операторов. Каждый оператор закрывается точкой с запятой.

Существует два основных вида операторов: простые операторы и структурные операторы.

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

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

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

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

Пример операторов в Pascal.

Ввод данных

Для ввода исходных данных чаще всего используется процедура ReadLn:

ReadLn(A1,A2,...AK); Процедура производит чтение К значений исходных данных и присваивает эти значения переменным А1, А2,..., АК.

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

Не допускается разделение вводимых чисел запятыми!

Вывод данных

Для вывода результатов работы программы на экран используются процедуры:

Write(A1,A2,...AK);

WriteLn(A1,A2,...AK);

Первый из этих операторов производит вывод значений переменных А1, А2,...,АК в строку экрана. Второй оператор, в отличие от первого, не только производит вывод данных на экран, но и производит переход к началу следующей экранной строки. Если процедура writeln используется без параметров, то она просто производит пропуск строки и переход к началу следующей строки.

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

Форма представления значений в поле вывода соответствует типу переменных и выражений: величины целого типа выводятся как целые десятичные числа, действительного типа - как действительные десятичные числа с десятичным порядком, символьного типа и строки - в виде символов, логического типа - в виде логических констант TRUE и FALSE.

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

Для величин действительного типа элемент списка вывода может иметь вид А:К:М, где А - переменная или выражение действительного типа, К - ширина поля вывода, М - число цифр дробной части выводимого значения. К и М - выражения или константы целого типа. В этом случае действительные значения выводятся в форме десятичного числа с фиксированной точкой.

Пример записи операторов вывода:

var rA, rB: Real;

iP,iQ:Integer;

bR, bS: Boolean;

chT, chV, chU, chW: Char;

begin

...

WriteLn(rA, rB:10:2);

WriteLn(iP, iQ:8);

WriteLn(bR, bS:8);

WriteLn(chT, chV, chU, chW);

end.

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

Развитие языков программирования привело к формированию двух основных направлений – процедурного и декларативного программирования.

Процедурное программирование основано на представлении алгоритма работы программы в терминах процедур работы компьютера как устройства-автомата (проверка условия, цикл и т.д.). Построение такой программы требует определенных знаний о функционировании и составе ЭВМ. Развитие этого подхода привело к созданию методов структурного, объектно-ориентированного и визуального программирования. К процедурным языкам следует отнести языки Basic, Pascal, Fortran, Си.

Декларативное программирование реализацию процедур решения задачи отводит специальной программе языка программирования, которая сама выбирает методы и средства решения задачи. Программисту в этой ситуации остается только правильно описать (создать декларативное описание) область знаний задачи и требования к решению. Развитие декларативного программирования привело к созданию функциональных и реляционных языков:

1) Функциональные языки. Конструкции в функциональном языке определяются в терминах поиска значения функции по ее описанию. К функциональным языкам относят например различные варианты языка язык Lisp. Программа в языке Lisp фактически является списком, который содержит другие списки и т.д. Определение функции здесь связано с поиском соответствия между элементом и списком в котором этот элемент содержится.

3) Реляционные языки. Реляционный язык строит область описания задачи в терминах отношения между объектами. Таким образом, этот подход является родоначальником объектно-ориентированного описания задачи в языках программирования. Пример: Prolog (Пролог), ParLog и т.д.. Следует учитывать, что современные языки программирования не является чисто процедурными или декларативными. В стандартные процедурные языки закладывается возможности объектно-ориентированного программирования, чисто функциональных или реляционных языков так же не существует.

1) Процедурные - основаны на понятии процедуры – алгоритма действия для исполнителя. Таким образом, конструкции процедурного языка считают исполнителем сам компилятор и конструкции формируются в терминах работы исполнителя;

2) Объектно – ориентированные. Объектно – ориентированный подход позволил объединить лучшие свойства реляционного и процедурного языков на основе реляционного и процедурного языков. Это наиболее качественный и современный язык программирования. Основывается на понятии объекта(С++, Visual C, Visual Basic, Delphi, Object Pascal).

Трансляция программ: компиляторы и интерпретаторы.

С помощью языка программирования создается не готовя программа, а только ее текст, описывающий ранее разработанный алгоритм. Чтобы получить работающую программу, надо этот текст либо автоматически перевести (транслировать) в машинный код (для этого служат программы-компиляторы) и затем использовать отдельно от исходного текста, либо сразу выполнять команды языка, указанные в тексте программы (этим занимаются программы-интерпретаторы).

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

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

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

Обзор языков программирования высокого уровня.

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

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

Примеры языков программирования высокого уровня:

1) FORTRAN (Фортран) – первый компилируемый язык, созданный Д. Бэркусом в 50-е годы. Основным критерием при разработке компиляторов Фортрана являлась эффективность исполняемого кода. Хотя в Фортране впервые был реализован ряд важнейших понятий программирования, удобство создания программ было принесено в жертву возможности получения эффективного машинного кода.

2) COBOL (Кобол) – компилируемый язык для применения в экономической области и решения бизнес-задач, разработанный в начале 60-х годов. Он отличается большой «многословностью» - его операторы иногда выглядят как обычные английские фразы. Реализованы очень мощные средства работы с большими объемами данных, хранящимися на различных внешних носителях.

3) ALGOL (Алгол) – компилируемый язык, созданный в 1960 году. Он был призван заменить Фортран, но из-за более сложной структуры не получил широкого распространения. В 1968 году была создана версия Алгол 68 с высокими возможностями, но для нее не удалось своевременно создать хорошие компиляторы.

4) PASCAL (Паскаль) – создан в конце 70-х годов основоположником многих идей современного программирования Н. Виртом, во многом напоминает Алгол, но в нем ужесточен ряд требований к структуре программы и имеются возможности, позволяющие успешно применять его при создании крупных проектов.

5) BASIC (Бейсик) – для него имеются и компиляторы, и интерпретаторы, а по популярности он занимает первое место в мире. Он создавался в 60-х годах в качестве учебного языка и очень прост в изучении.

6) C (Си) – создан в лаборатории Bell для замены ассемблера. Си во многом похож на Паскаль и имеет дополнительные средства для прямой работы с памятью (указатели). На этом языке в 70-х годах была написана операционная система Unix.

7) C++ (Си++) – это объектно-ориентированное расширение языка Си, созданное Б. Страуструпом в 1980 году. Множество новых возможностей наложилось на определенную низкоуровневость.

8) JAVA (Джава, Ява) – созданный компанией Sun в начале 90-х годов на основе Си++, призван упростить разработку приложений на основе Си++ путем исключения из него низкоуровневых возможностей. Главная особенность – компиляция не в машинный код, а платформно-независимый байт-код. Этот код может выполняться с помощью интерпретатора – виртуальной Java-машины JVM (Java Virtual Machine), версии которых созданы сегодня для любых платформ.

В процессе развития ЯВУ определились несколько направлений, по которым они развивались. Они разделились на компиляторы и интерпретаторы

Исторически сложилось два подхода к созданию трансляторов. В первом подходе транслятор переводит программу по командам (построчно), после чего она исполняется. Такие трансляторы называют интерпретаторами.

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

Ø Возможность определения ошибки в программе до её исполнения.

Ø Проще создать исполняемую программу в файле.

Ø Более развитый лексический анализ, учитывающий взаимодействие операторов.

Недостатком компилятора является то, что он сложнее при создании.

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

· Текстовый редактор – служит для написания текста программы на языке программирования;

· Компилятор – анализ программы и перевод ее в двоичный код;

· Компановщик;

· Загрузчик.

В состав среды программирования входит: редактор, меню, панели инструментов. Delphi многооконная система.

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

В главном окне располагается главное меню Delphi, набор пиктографических командных кнопок и палитра компонентов.

Главное меню содержит средства для управления проектом.

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

Инспектор объектов содержит две страницы - Properties (Свойства) и Events (События). Страница properties служит для установки нужных свойств компонента, страница Events позволяет определить реакцию компонента на то или иное событие.

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

Верификация – процесс проверки работоспособности и правильности программы. Верификацию делят на отладку и тестирование.

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

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

Любая система программирования имеет транслятор.

Трансляция – анализ программы и перевод её в двоичные коды командного процессора. Большинство трансляторов являются компиляторами, т. е. переводят одновременно всю программу, создавая двоичный исполняемый файл.

Пробный запуск программы можно выполнить непосредственно из Delphi, не завершая работу со средой разработки. Для этого нужно из меню Run выбрать команду Run или щелкнуть на соответствующей кнопке панели инструментов Debug

Команды меню Run (Запуск) используются для управления запуском приложения. Используя команды данного меню, можно запустить приложение на выполнение с компиляцией или без компиляции, приостановить или прервать выполнение приложения.

Понятия отладки и тестовой проверки программы.

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

Если требуется проверить удовлетворяет программа задачам которые перед ней стояли, то такая проверка называется тестированием.

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

Рассмотрим пример, связанный с проектом Project1. Добавим в обработчик списка действий AddAction следующие описание и оператор:

var Arr: array [1..10] of integer;

Begin

for I:=1 to 11 do

if i >3 then Arr[i]:=0

else Arr[i]:=1;

В данном месте программы скрывается ошибка. Чтобы перейти к выполнению этой подпрограммы по шагам, в ней надо создать точку остановки, встретив которую программа прервет свою работу и временно передаст управление системе Delphi 7.

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

В нашем случае точку прерывания можно поставить в строке с оператором цикла. Это делается нажатием клавиши F5 или щелчком мыши на синем маркере. При этом соответствующая строка выделяется красным цветом. Снимается точка прерывания аналогичным способом.

Если теперь запустить программу и выполнить операцию, то программа остановится и управление будет передано в систему Delphi 7, где строка с точкой прерывания помечается зеленой стрелкой на левом поле. В заголовке главного окна системы Delphi 7 появится информационное сообщение Project1 [Stopped] (Выполнение проекта Project1 остановлено).

Далее выполнение метода AddActionExecute можно продолжить по шагам. Для этого используются команда , клавиша F8 или кнопка Step Over.

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

Полностью остановить работу программы можно с помощью команды или комбинацией клавиш CTRL+F2.

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

Добавление новых переменных в такое окно осуществляется с помощью команды или нажатием клавиш CTRL+F5. В появившемся окне Watch Properies (Свойства слежения) имя переменной вводится в поле Expression (Выражение).

Команды меню Run (Запуск) используются для управления запуском приложения. Используя команды данного меню, можно запустить приложение на выполнение с компиляцией или без компиляции, приостановить или прервать выполнение приложения.С помощью языка програм-я созд-ся не готовая программа,а только ее текст,описывающ. ранее разработан.алгор-м.Чтобы получить работающую программу,надо этот текст либо автомат.перевести в машин.код(програм-компиляторы)и затем использ.отдельно от исходн.текста,либо сразу выполнять команды, указанные в тексте программы(програм-интерпретатор).компил. полностью обрабатывают весь текст программы.

Язык Turbo Pascal: структура программы, простой и составной оператор. Операторы переходов: условный оператор, оператор выбора (переключения).

Программа на языке Паскаль состоит из заголовка, разделов описаний и раздела операторов. Заголовок программы содержит имя программы, например:

Program PRIM;

Описания могут включать в себя: раздел подключаемых библиотек (модулей); раздел описания меток; раздел описания констант; раздел описания типов; раздел описания переменных; раздел описания процедур и функций.


Дата добавления: 2015-07-11; просмотров: 527 | Нарушение авторских прав






mybiblioteka.su - 2015-2024 год. (0.025 сек.)