Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Расчетное задание Барсуков А.Г. МС-12.doc
Скачиваний:
4
Добавлен:
04.12.2018
Размер:
176.13 Кб
Скачать

Функциональные возможности языка программирования паскаль

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

Исторически первой была идея структурирования программ, в соответствии с которой программист должен был решить, какие именно процедуры он будет использовать в своей программе, а затем выбрать наилучшие алгоритмы для реализации этих процедур. Появление этой идеи было следствием недостаточной изученности алгоритмической стороны вычислительных процессов, столь характерной для ранних программных разработок (сороковые — пятидесятые годы). Типичным примером процедурно-ориентированного языка является Фортран – первый и всё ещё один из наиболее популярных языков программирования. Последовательное использование идеи процедурного структурирования программ привело к созданию обширных библиотек программирования, содержащих множество сравнительно небольших процедур, из которых, как из кирпичиков, можно строить «здание» программы.

По мере прогресса в области вычислительной математики акцент в программировании стал смещаться с процедур в сторону организации данных. Оказалось, что эффективная разработка сложных программ нуждается в действенных способах контроля правильности использования данных. Контроль должен осуществляться как на стадии компиляции, так и при прогоне программ, в противном случае, как показала практика, резко возрастают трудности создания крупных программных проектов. Отчётливое осознание этой проблемы привело к созданию Ангола-60, а позже Паскаля, Модулы-2, Си и множества других языков программирования, имеющих более или менее развитые структуры типов данных. Логическим следствием развития этого направления стал модульный подход к разработке программ, характеризующийся стремлением «спрятать» данные и процедуры внутри модуля.

Возможные алгоритмы решения задач

Алгоритм — это понятное и точное предписание исполнителю для совершения последовательности действий, направленных на решение определённой задачи. Свойства алгоритма:

  • понятность(единственность толкования);

  • детерминированность(обязательное завершение каждого из действий);

  • массовость применение для целого класса задач;

  • результативность.

Способы записи алгоритмов:

  1. естественный язык;

  2. блок — схемы;

  3. учебный алгоритмический язык;

  4. языки программирования.

Типы алгоритмов.

Алгоритмы бывают трёх типов:

  1. последовательный — действия выполняются по порядку друг за другом;

  2. циклический — организовывает повторение действий;

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

Последовательный алгоритм

Циклические алгоритмы

Безусловный оператор цикла FOR

Условный оператор цикла с предусловием WHILE

Условный оператор цикла с постусловием REPEAT

Разветвляющиеся алгоритмы

Условный оператор IF (полная запись)

Условный оператор IF (краткая запись)

Оператор выбора CASE

Логическая связь

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

Логический тип данных

С логическим типом данных мы уже неоднократно встречались при изучении свойств объектов. Этот тип данных состоит всего из двух значений: истина и ложь. На языке Pascal (а также на многих других языках) это соответственно True и False. В некоторых языках допускается использование чисел вместо этих переменных: 1 - истина, 0 - соответственно ложь. Итак, логический тип данных указывает, есть ли что-то или его нет, верно ли что-то или неверно. В Pascal логический тип данных носит название Boolean (англ. - логический). Значения, как уже было сказано – True и False. Простой пример объявления логической переменной и присвоения ей значения "ложь":

Var X: Boolean; X:=False;

Операции над логическими выражениями

А вот и самое интересное. Для логических выражений введены 4 операции. Работа с ними чем-то похожа на работу с числами. Рассмотрим подробно эти операции.

1. Отрицание: NOT ("не")

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

k:=True; m:=not(k); n:=not m; p:=not(not(m));

Подразумевается, что все переменные описаны типом данных Boolean. Итак, разберём, что здесь происходит:

  • Сначала мы присваиваем переменной k значение True;

  • Далее, выполняя NOT для k получаем False: m становится равным False;

  • N становится противоположным m, т.е. True;

  • Над m делается двойное отрицание, т.е. значение p станет также False.

2. Логическое умножение (конъюнкция) – AND ("и")

В отличие от рассмотренного выше NOT, оператор AND работает уже с двумя (и более) выражениями. Логическое умножение равно истине тогда и только тогда, когда все выражения, связанные этим оператором, истинны. Если хотя бы один является ложью, то весь результат будет также ложью. Поэтому, собственно, операция и называется умножением: если истину обозначить за 1, а ложь - за 0, а числа перемножить, то при наличии хотя бы одного нуля весь результат будет нулевым. Примеры:

a:=True; b:=False; c:=True; d:=a and b; e:=a and c; f:=not(b) and c;

Значение d будет False, т.к. один из операндов (операнды - выражения, которыми управляют операторы) равен False (b). Переменная e примет значение True, ведь и a и c истинны. Наконец, f тоже станет True, ведь not(b)- это истина и c тоже истина.

3. Логическое сложение (дизъюнкция) -OR("или")

Как и AND,ORработает с несколькими операндами. Название "или" уже отвечает на вопрос "что будет в итоге": если хотя бы один из операндов - истина, то всё выражение будет истиной. Результат False будет только в случае, если все операнды будут ложными.

a:=False; b:=True; c:=a or b; d:=not(b) or a;

Значение переменной c станет True, а переменной d - False.

4. Исключающее "или" - XOR

Данная операция выдает результат True, если один из операндов является истиной, а другой - ложью, т.е. выражения не должны быть одинаковыми.

a:=True; b:=False; c:=a xor b; d:=not(a) xor b; e:=not(a) xor not(b);

Переменная c станет истиной, ведь a и b различны, а d - ложью, т.к. под сравнение попадут два значения False. Наконец, e станет истиной.