Смекни!
smekni.com

Методические рекомендации по организации изучения дисциплины (стр. 5 из 9)

Решение

Основная идея решения заключается в упорядочивании сторон кирпича и отверстия по возрастанию. Если меньшая сторона кирпича меньше меньшей стороны отверстия, а вторая по размеру сторона кирпича меньше большей стороны отверстия, то кирпич пройдет, иначе — нет. Таким образом, требуется решить подзадачи упорядочивания сторон кирпича и сторон отверстия. Поскольку цель задачи — дать ответ "пройдет" или "не пройдет", будем выполнять упорядочивание, не вводя новых переменных. Для сторон отверстия задача решается просто: если X>Y, то обменять значения X и Y. Упорядочить стороны кирпича можно за три обмена: A и B, B и C и вновь A и B. Блок-схема алгоритма решения задачи показана на рис. 1.


Задача 4

Последовательность значений Xi, Yi вычисляется по формулам:

Вычислить

при X0=X1=1 и Y0=Y1=2.

Решение

В данной задаче не следует применять массивы — лучше использовать простые переменные. Поэтому для численного эксперимента введем следующие обозначения: X2, X1, X0, Y2, Y1, Y0 – соответственно для Xi, Xi-1, Xi-2, Yi, Yi-1, Yi-2. Результаты численного эксперимента показаны в таблице.

i

0

1

2

3

4

X0

1

1

1,1

X1

1

1

1,1

1,01

X2

1

1

1,1

1,01

1,007

Y0

2

2

1,4

Y1

2

2

1,4

1,32

Y2

2

2

1,4

1,32

0,987

Сумма

3

6

8,5

10,83

12,925

Таким образом, в задаче 4 в качестве контрольного примера можно использовать следующий: при N=4 должны получить сумму S=12.925.

Из таблицы видно, что после вычисления очередных значений X2 и Y2 и добавления их к сумме, необходимо изменить значения X1, Y1, X0, Y0 для подготовки очередного цикла. При этом следует начинать с X0 и Y0: X0=X1; Y0=Y1, а затем изменить X1 и Y1: X1=X2: Y1=Y2. Следует также учесть, что для вычисления суммы может быть задано любое целое N>=0, но применение формул начинается только c N=2. Блок-схема алгоритма решения показана на рис. 4.

Лекция 4 Программирование на алгоритмическом языке

История создания языка.

Первая версия языка Паскаль была разработана в 1968 году. Ее разработчиком является швейцарский ученый Никлаус Вирт. Свое название язык получил в честь создателя первой механической вычислительной машины француза Блеза Паскаля. На основе языка Паскаль в 1985 г. фирма Borland выпустила версию Turbo Pascal версии 3.0. С этого времени язык Паскаль используется во всем мире в учебных заведениях в качестве первого изучаемого языка программирования.
В пакете Turbo Pascal 4.0 были устранены ошибки и ограничения компилятора предыдущей версии. Наиболее важным нововведением была unit-концепция, позаимствованная из языка МОДУЛА-2. Это позволило разрабатывать крупные программные продукты. В версии 5.0 появился интегрированный отладчик. Был реализован аппарат перекрытий overlays. В этой версии были исправлены и улучшены библиотеки графических процедур, которым была обеспечена совместимость с графическими адаптерами класса VGA. Появились новые возможности справочной системы Help.
В версии 6.0 была реализована концепция объектно-ориентированного программирования с полным набором прикладных задач для пользователя. В оболочку был встроен интегрированный текстовый редактор. В этой версии впервые использовалась мышь для управления работой.
В 1992 г. появилась последняя на сегодняшний день версия языка Turbo Pascal - 7.0. В ней сохранились все достоинства предыдущих версий:

  • многооконный режим работы
  • возможность использования мыши
  • возможность использования Ассемблера
  • возможность создавать объектно-ориентированные программы

К улучшениям этой версии относятся:

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



Алфавит и программа на Паскале(Турбо Паскаль -ТП).

Алфавит языка состоит из нескольких разделов:

  1. Латинские буквы: A a B b…
  2. Цифры: 0 1 2..9
  3. Знаки математических операций: + - * /
  4. Знаки математических отношений: < > =
  5. Знаки препинания: . , : ;
  6. Специальные знаки: { } [ ] ( ) $ ^

Программа записанная на языке TP может содержать следующие разделы:

  1. Заголовок
  2. Раздел меток
  3. Раздел констант
  4. Раздел типов
  5. Раздел переменных
  6. Раздел процедур и функций
  7. Раздел операторов

Все программы обязательно имеют раздел заголовок и раздел операторов. Остальные составляющие могут отсутствовать. При отсутствии некоторых частей программы общий порядок их следования сохраняется.
Разделы между собой разделяются знаком ";"
Раздел операторов заключается в операторные скобки. Это зарезервированные слова begin, end. Раздел операторов заканчивается точкой. Запись внутри операторных скобок ведется с отступом в три знака.
Раздел "заголовок" начинается с зарезервированного слова, за которым указывается имя программы. В качестве имени может использоваться любой набор символов алфавита с несколькими исключениями:

  1. Нельзя использовать зарезервированные слова
  2. Нельзя начинать имя с цифры
  3. При использовании имени не используется пробел


Простые типы данных.

Любые данные ТП характеризуются своими типами. Тип определяет:

  1. Формат представления данных в памяти компьютера
  2. Множество допустимых значений, принимаемое переменной или константой, принадлежащей к выбранному типу
  3. Множество допустимых операций и функций применимых к этому типу

Тип переменной определяется при ее декларации. Одна из базовых концепций Паскаля заключается в жесткой проверке соответствия типов в операциях присваивания.
Типы данных в языке ТП делятся на 5 основных классов:

  1. Простые типы
  2. Структурированные типы
  3. Ссылочные типы
  4. Процедурные типы
  5. Объектные типы

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

  1. Все возможные значения данного порядкового типа представляют собой упорядоченное множество и каждое возможное значение связано с порядковым номером, который является целым числом
  2. Значения любого порядкового типа, за исключением целочисленного начинается с порядкового номера ноль (следующий порядковый номер 1, 2, 3…)
  3. Порядковым номером значения целочисленного типа является само значение
  4. В любом порядковом типе каждому значению кроме первого есть предыдущее и каждому значению кроме последнего есть последующее

К данным любого порядкового типа можно применить любую из пяти операций:

  1. Стандартная операция Ord возвращает порядковый номер указанного значения. Значение указывается в скобках
  2. Стандартная операция Pred возвращает значение, предшествующее указанному, если эта функция применяется к первому значению данного типа, то выдается сообщение об ошибке
  3. Стандартная операция Succ возвращает следующее значение за указанным, если операция применяется к последнему элементу типа, то выдается сообщение об ошибке
  4. Стандартная операция Low возвращает наименьшее значение в диапазоне порядкового типа, указанного данного
  5. Стандартная операция High возвращает наибольшее значение в диапазоне порядкового типа, указанного данного

В TP имеется 5 предопределенных, целочисленных типов. Каждый тип обозначает определенное подмножество целых чисел:

Тип Диапазон Формат
Короткое целое shortint -128..127 8 бит со знаком
Целое integer -32768..32767 16 бит со знаком
Длинное целое longint -2147483648..2147483647 32 бита со знаком
Длиной в байт byte 0..255 8 бит без знака
Длиной в слово word 0..65535 16 бит без знака


Верхнее граничное значение и нижнее граничное значение целочисленных типов задаются как константы и имеют соответствующее имя.
В тексте программы данные целочисленных типов записываются в десятичном или шестнадцатеричном формате и не должны содержать десятичные точки.
Пример:
1 - целый тип
1.0 - не целый тип
100 - десятичный формат (100)
#100 - шестнадцатеричный формат (256)
Над целочисленными данными возможно выполнение операций сложения, вычитания и умножения, а также операций сравнения. Арифметические действия над операндами целочисленного типа предполагают восьмибитовую, 16-битовую или 32-битовую точность вычислений, в соответствии со следующими правилами: