Содержание Билет №1 3

Вид материалаДокументы

Содержание


Билет № 6
Причины, по которым прибегают к моделированию
Информационная модель
Примеры вербальных моделей
Основные этапы решения задач на ЭВМ
Постановка задачи
Математическая формализация
Выбор компьютерного метода
Разработка алгоритма
Составление программы.
Отладка и тестирование программы.
Анализ полученных результатов.
Понятие алгоритма. Свойства алгоритмов, исполнители алгоритмов. Способы записи алгоритмов.
Виды алгоритмических структур и их реализация на языке программирования TPascal (с примерами)
Командой повторения
Цикл с предусловием
Цикл с постусловием
Запись циклов на языках программирования
Подобный материал:
1   2   3   4   5   6   7   8   9   ...   14

Билет № 6

Понятие модели. Натурные и информационные модели (с примерами). Моделирование и формализация


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

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

Моделирование – построение моделей для изучения объектов, процессов, явлений.

Причины, по которым прибегают к моделированию

1. В реальном времени оригинал может уже не существовать или его нет в действительности (теория вымирания динозавров, теория гибели Атлантиды, «модель ядерной зимы»).

2. Оригинал либо очень велик, либо очень мал (глобус, модель атома, солнечной системы).

3. Процесс протекает очень быстро или очень медленно (модель развития вселенной).

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

5. Исследование объекта может привести к разрушению (модель самолета, модель здания во время землетрясения).

Что можно моделировать?

1. Объекты, например модели объектов:
        • копии архитектурных сооружений;
        • наглядные пособия;
        • глобус;
        • детская игрушка;
        • манекен.

2. Явления, например, модели явлений:
        • модели физических процессов (грозового разряда);
        • геофизические модели (модели землетрясений, оползней);

3. Процессы, например:
        • модель развития вселенной;
        • модель экономического или экологического процесса

Классификация моделей

Рассмотрим наиболее распространенные признаки, по которым можно классифицировать модели.
  1. С учетом фактора времени модели делят на статические и динамические.

    Модели

    Определение

    Пример

    Статические

    одномоментный (на данный момент времени) срез информации по объекту

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

    Динамические

    изменения состояния объекта во времени

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

Модели

Определение

Пример

Материальные

(натурные)

воспроизводят геометрические и физические свойства объекта и имеют реальное воплощение
  1. Детские игрушки (куклы, мягкие игрушки, машинки)
  2. Глобус
  3. Школьные пособия (скелет человека, модель атома кислорода и т.д.)
  4. Физические и химические опыты

Информационные

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

Описание объекта на любом естественном или формальном языке

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

К информационным моделям можно отнести вербальные и знаковые модели.

Вербальная модель – информационная модель в мысленной или разговорной форме.

Примеры вербальных моделей:
  • Модель поведения человека при переходе через улицу. Человек анализирует ситуацию на дороге (сигналы светофора, наличие и скорость машин и вырабатывает модель своего движения)
  • Идея, возникшая у изобретателя - модель изобретения.
  • Музыкальная тема, промелькнувшая в голове композитора – модель будущего музыкального произведения.

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

Примеры знаковых моделей:
  • Чертеж кухонной мебели – модель мебели для кухни.
  • Схема Московского метрополитена – модель метро г. Москвы.
  • График изменения курса евро – модель роста курса евро.

Вербальные и знаковые модели, как правило, взаимосвязаны. Мысленный образ (например, пути по определенному адресу), может быть облечен в знаковую форму, например, в схему. И наоборот, знаковая модель помогает сформировать в сознании верный мысленный образ.
  1. По способу реализации информационные
    знаковые модели делятся на
    компьютерные и некомпьютерные.

Компьютерная модель – это модель, реализованная средствами программной среды.


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


§6-8 в учебнике Информатика 9 (Семакин И.Г.)

Билет № 7

Основные этапы решения задач на ЭВМ


При решении задач на ЭВМ можно воспользоваться готовой программой, если у нас есть право на ее использование. Такие программы применяются для работы с текстом, графикой, для проведения типовых расчетов. Но если для решения задачи хотят прибегнуть к использованию компьютера, а готовой программы нет, то понадобится освоить весь процесс решения задачи на компьютере, создав свою оригинальную программу. Чаще всего при написании реальной прикладной программы (здесь речь не идет об учебных упражнениях типа “в массиве найти максимальный элемент”) требуется не только программирование. Дело в том, что взятая из жизни задача обычно не представлена в форме, немедленно готовой к решению на компьютере: приходится сначала получать ее, выбирая при этом подходящий метод. Кроме того, когда программа будет написана, введена и отлажена, потребуется провести анализ полученных числовых результатов и сделать выводы относительно исходной задачи.

В этом случае процесс решения задачи сводится к следующим этапам:

1. Постановка задачи (выяснение наиболее существенных ее параметров и закономерностей, влияющих на изучаемую ситуацию; формулировка целей решения и определение необходимых для этого данных). Необходимо четко представлять, чем мы располагаем - какие есть исходные данные, каковы ограничения на них. Нужно четко понимать, что будет являться решением задачи, что должно стать результатом всего процесса решения. Если задача конкретная (например, решение уравнения), то под постановкой задачи будет пониматься ответ на вопросы: какие исходные данные известны, что требуется определить? Если задача обобщенная, то необходимо определиться и с вопросом о том, какие данные допустимы.

2. Математическая формализация (запись основных закономерностей в математической форме: в виде уравнений, соотношений, связей, условий). Решение задачи на ЭВМ возможно только в том случае, если все действия, необходимые для решения задачи, формализованы, то есть, представлены как математические операции и соотношения между входящими в них переменными.

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

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

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

6. Отладка и тестирование программы. Отладка означает не только устранение синтаксических ошибок, в поиске которых помогает транслятор. Также обязательно должна проводиться проверка работы программы на конкретных вариантах исходных данных, подобранных так, чтобы охватить все возможные для данной задачи случаи. Необходимо проверить все альтернативные ветви от начальной команды до выхода из программы, в том числе проверку отсутствия неправильной организации циклов (зацикливания), логические ошибки.

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

Билет № 8

Понятие алгоритма. Свойства алгоритмов, исполнители алгоритмов. Способы записи алгоритмов.


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

Термин имеет интересное историческое происхождение. В IX веке великий узбекский математик аль-Хорезми разработал правила арифметических действий над десятичными числами. Совокупность этих правил в Европе стали называть “алгоризм”. Впоследствии слово трансформировалось до известного нам сейчас вида и, кроме того, расширило свое значение: алгоритмом стали называть любую последовательность действий (не только арифметических), которая приводит к решению той или иной задачи. Можно сказать, что понятие вышло за рамки математики и стало применяться в самых различных областях.

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

Дискретность

Процесс решения задачи должен быть разбит на последовательность отдельных шагов, каждый из которых называется командой. Примером команд могут служить пункты инструкции, нажатие на одну из кнопок пульта управления, рисование графического примитива (линии, дуги и т.п.), оператор языка программирования. Наиболее существенным здесь является тот факт, что алгоритм есть последовательность четко выделенных пунктов — такие “прерывные” объекты в науке принято называть дискретными.

Понятность

Каждая команда алгоритма должна быть понятна тому, кто исполняет алгоритм; в противном случае эта команда и, следовательно, весь алгоритм в целом не могут быть выполнены. Данное требование можно сформулировать более просто и конкретно. Составим полный список команд, который умеет делать исполнитель алгоритма, и назовем его системой команд исполнителя (СКИ).

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

Одним из таких (вернее, основным из них) “бездушных” исполнителей является ЭВМ. Вообще ЭВМ является универсальным исполнителем алгоритмов. Это связано с тем, что любой алгоритм, составленный для ЭВМ, в конечном итоге транслируется в ее СКИ и, таким образом, становится доступным для исполнения.

Определенность (детерминированность)

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

Результативность (конечность)

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

Массовость

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

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

Из возможности формального исполнения алгоритма следует очень важное следствие: поскольку осознавать содержание алгоритма не требуется, его исполнение вполне можно доверить автомату или ЭВМ. Таким образом, составление алгоритма является обязательным этапом автоматизации любого процесса. Как только разработан алгоритм, машина может исполнять его лучше человека — быстрее и, что очень важно, не ошибаясь.

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


Примеры записи алгоритмов:
  1. словесно-формульный способ

Для робота составлен следующий алгоритм:

1. Покрасить доску.

2. Переместиться к следующей доске.

3. Перейти к действию 1.

  1. н
    Результатами будут числа:

    1 9 25 49 81
    а алгоритмическом языке

алг Квадраты нечетных чисел

арг i

нач

для i от 1 до 9 шаг 2

нц

вывод i2

кц

кон

  1. графический (блок-схема)



§27 глава 5 в учебнике
Информатика 9 (Семакин И.Г.)

Билет №9

Виды алгоритмических структур и их реализация на языке программирования TPascal (с примерами)


Основными алгоритмическими структурами (ОАС) являются следование, развилка и цикл. Ниже приведены графические обозначения (обозначения на блок-схемах) ОАС.







На схемах СЕРИЯ обозначает один или несколько любых операторов; ЛВ — логическое выражение (если его значение ИСТИНА, переход происходит по ветви ДА, иначе — по НЕТ). На схеме цикла с параметром использованы обозначения: ПЦ — параметр цикла, НЗ — начальное значение параметра цикла, КЗ — конечное значение параметра цикла, Ш — шаг изменения параметра цикла.

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

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

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

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

Приведем также полную форму ветвления в Pascal:

IF <ЛВ> THEN

оператор1

ELSE

оператор2;

Достаточно часто при организации алгоритма решения задачи необходимо одну и ту же определенную последовательность команд выполнить несколько раз подряд. Конечно, самый простой способ — записать эти команды несколько раз друг за другом, и необходимое повторение действий будет организовано. Но как быть в тех случаях, когда количество команд, которые исполняются несколько раз, слишком велико? Или само количество повторений команд огромно? Или вообще неизвестно, а сколько же раз нужно повторить последовательность команд? Решить все эти проблемы можно, если использовать алгоритмическую структуру “цикл”.

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

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

Различают циклы с известным числом повторений (цикл с параметром) и итерационные (с пред- и постусловием).

Опишем схематично, как выполняется каждый из циклов.

Цикл с предусловием:

1) вычисляется значение логического выражения;

2) если значение логического выражения “истина”, переход к следующему пункту, иначе к пункту 5);

3) выполняется тело цикла;

4) переход к п. а);

5) конец цикла.

Цикл с постусловием:

1) выполняется тело цикла;

2) вычисляется значение логического выражения;

3) если значение логического выражения “ложь”, то переход к п.1), иначе к следующему пункту;

4) конец цикла.

Запись циклов на языках программирования:



§30-31 глава 5 в учебнике Информатика 9 (Семакин И.Г.)