
- •Билет 1
- •Билет 2
- •Билет 3
- •Методика изучения электронных таблиц
- •1 Вопрос – см. 13 вопрос тимои (экзамен)
- •1. Постановка задачи:
- •Билет 4
- •Билет 5
- •Билет 6
- •Билет 7
- •Билет 8
- •1. Этапы математического моделирования:
- •2. Классификация м.М.:
- •Билет 9
- •Основные этапы математического моделирования:
- •Построение модели;
- •Билет 10
- •Основные этапы математического моделирования:
- •Построение модели;
- •Билет 11
- •Билет 12
- •Основные этапы математического моделирования:
- •Построение модели;
- •Билет 13
- •Вычисление числа π методом Монте-Карло
- •Ответы на вопросы:
- •Алгоритм метода статистических испытаний (метод Монте-Карло):
- •Билет 14
- •Ответы на вопросы:
- •Формальная модель «Определение площади круга методом Монте-Карло»
- •Билет 15
- •Методика изучения текстового редактора.
- •Билет 16
- •Билет 17
- •Билет 18
- •3. Наиболее эффективны в борьбе с компьютерными вирусами антивирусные программы. Антивирусные программы могут использовать различные принципы для поиска и лечения зараженных файлов.
- •Билет 19
- •3. Файловая система – это функциональная часть ос, обеспечивающая выполнение операций с файлами. Билет 20
- •2. Форматы графических файлов
- •Рассмотрим некоторые форматы графических файлов более подробно.
Билет 6
Задание 1.
Что нарисует Черепашка по команде REPEAT 4 [TR RIGHT 90], где
TO TR
REPEAT 3 [ FORWARD 40 RIGHT 120]
END?
Вопросы:
При изучении какой темы школьного курса информатики встречаются задачи подобные данной?
Сформулируйте этапы решения этой задачи учащимися.
Сформулируйте задачи, при решении которых может быть использован результат данной задачи.
В чем заключается достоинство учебных исполнителей типа Черепашки.
Задание 2.
Составить компьютерную программу, сортирующую двумерный, случайным образом сформированный массив, состоящий из заданного количества чисел в диапазоне от - 10 до 10, по возрастанию столбца, номер которого задается с клавиатуры. Составьте блок-схему алгоритма сортировки двумерного массива.
Вопросы:
В чем суть понятий алгоритма и исполнителя? Перечислите их основные свойства.
Каковы особенности различных подходов и парадигм в развитии программирования? Приведите классификацию языков программирования.
Алгоритм – это точное и понятное предписание исполнителю совершить некоторую последовательность действий на решение поставленной задачи.
Свойства алгоритма:
1) Описываемый процесс должен быть разбит на последовательность отдельных шагов (дискретность);
2) Алгоритмы составляются с ориентацией на определенного исполнителя (нужно знать, какие команды этот исполнитель может понять и исполнять, а какие не может);
3) Будучи понятным, алгоритм не должен содержать предписаний, смысл которых может воспринимать неоднозначно, т.е. одна и та же команда, будучи понятна разным исполнителям, после исполнения каждым из них должна давать одинаковый результат (определенность или детерминированность). Четкость записи алгоритма.
4) Результативность (за конечное число шагов должен получиться определенный результат);
5) Массовость (наиболее распространены алгоритмы, обеспечивающие решение не одной конкретной задачи, а некоторого класса задач данного типа)
Любой алгоритм для своего исполнения требует исполнителя.
Исполнитель – это объект (или субъект) для управления которым составляется алгоритм.
Исполнитель – тот, кто исполняет. Вся совокупность команд, которые данный исполнитель умеет выполнять, называется системой команд исполнителя (СКИ). Блок-схема – это графическое описание алгоритма. Важнейшее свойство исполнителя – умение выполнять некоторые команды. Исполнитель не вникает в смысл того, что делает, но получает необходимый результат, т.е. исполнитель действует формально (отвлекается от содержания поставленной задачи и только строго выполняет некоторые правила и инструкции).
Основная характеристика исполнителя: система команд исполнителя – это конечное множество команд, которое понимает исполнитель.
Понятие исполнителя выполняет в информатике несколько функций:
Дидактическое средство для придания процессу исполнителя
алгоритма наглядности (понятности).
Понятие позволяет с единых позиций трактовать многие вопросы
информатики.
Исполнителем алгоритма может быть человек, компьютер и другое устройство, умеющее выполнять определенный набор действий. Каждое действие, которое он способен выполнять называется командой, а вся совокупность действий – системой команд исполнителя. Приказ на выполнение действий называется вызовом команды. Понятность алгоритма заключается в том, что каждая команда должна входить в систему команд исполнителя. Состояние, когда команда не может быть выполнена, называется отказом. Объекты, над которыми исполнитель может совершать действия, образуют среду исполнения.
В практике алгоритмизации принято делить все алгоритмы на 2 класса:
Алгоритмы “в обстановке”;
Алгоритмы работы с величинами.
Под алгоритмами “в обстановке” понимаются те, которые не содержат
вершин, а также не содержат команд изменения значений каких-то величин.
Примерами таких исполнителей явл-ся: машинист, чертёжник, робот.
В курсе инф-ки исп-ся такие исполнители, в которых рассмотрение алгоритма “в обстановке” логически доводится до понятия полного алгоритмического языка.
Существуют и вспомогательные алгоритмы в роли, которых могут выступать любые алгоритмы, если их не снабдить заголовком, позволяющим вызывать их из других алгоритмов.
Таким образом, алгоритм – понятное и точное предписание исполнителю выполнить конечную последовательность команд, приводящих от исходных данных к искомому результату.
2. Парадигма – это некоторый набор идей и рекомендация, определяющих стиль написания программ.
Структурный подход. С появлением массовых ЭВМ 3-го поколения устаревшая технология программирования оказалась основным фактором, сдерживающим развитие и распространение компьютерных (информационных) технологий, что подтолкнуло ведущие в этой сфере деятельности фирмы, в первую очередь IBM, к разработке новых методологий программирования. Появившийся в начале 1970-х годов новый подход к разработке алгоритмов получил название структурного.
С появлением структурного программирования описанные выше трудности были во многом преодолены. В основе технологических принципов структурного программирования лежит утверждение о том, что логическая структура программы может быть выражена комбинацией трех базовых структур: следования, ветвления и цикла (это содержание теоремы Бема-Якопини).
Следование - самая важная из структур. Она означает, что действия могут быть выполнены друг за другом, рис. 1.19:
Эти прямоугольники могут представлять как одну единственную команду, так и множество операторов, необходимых для выполнения сложной обработки данных.
Ветвление - это структура, обеспечивающая выбор между двумя альтернативами. Выполняется проверка, а затем выбирается один из путей (рис. 1.20).
Эта структура называется также «ЕСЛИ - ТО - ИНАЧЕ», или «развилка». Каждый из путей (ТО или ИНАЧЕ) ведет к общей точке слияния, так что выполнение программы продолжается независимо от того, какой путь был выбран.
Может оказаться, что для одного из результатов проверки ничего предпринимать не надо. В этом случае можно применять только один обрабатывающий блок, рис. 1.21:
Цикл (или повторение) предусматривает повторное выполнение некоторого набора команд программы. Если бы циклы не существовали, вряд ли занятие программированием было бы оправданным: циклы позволяют записать длинные последовательности операций обработки данных с помощью небольшого числа повторяющихся команд. Разновидности цикла изображены на рис. 1.22 и рис. 1.23.
Ц
икл
начинается с проверки логического
выражения. Если оно истинно, то
выполняется «я», затем все повторяется
снова, пока логическое выражение
сохраняет значение «истина». Как только
оно становится ложным, выполнение
операций «а» прекращается
и управление передается по программе
дальше.
Эти структуры можно комбинировать одну с другой - как путем организации их следований, так и путем создания суперпозиций (вложений одной структуры в другую) - сколь угодно разнообразно для выражения логики алгоритма решения любой задачи. Используя описанные структуры, можно полностью исключить использование каких-либо еще операторов условного и безусловного перехода, что является важным признаком структурного программирования.
Направление выполнения команд часто изображают сверху вниз.
Существуют различные парадигмы программирования, и преподавание каждой из них имеет свои особенности. К основным парадигмам программирования
относятся: а процедурное программирование (Паскаль, Бейсик. Фортран, Си, Ассемблеры); D логическое программирование (Пролог); □ функциональное программирование (Лисп); D объектно-ориентированное программирование (Смолток, Си++, Делфи).
В скобках приведены примеры языков программирования, в которых реализована соответствующая парадигма.
Классической, универсальной и наиболее распространенной является процедурная парадигма. Наибольшее количество существующих языков программирования относятся к этой линии. Поэтому чаще всего в учебных заведениях изучается процедурное программирование. А наиболее часто изучаемыми в школе языками программирования являются Паскаль и Бейсик. В дальнейшем под словом «программирование» мы будем подразумевать именно процедурную парадигму. Процесс изучения и практического освоения программирования можно разделить на три части: D изучение методов построения вычислительных алгоритмов;
D изучение языка программирования; а изучение и практическое освоение определенной системы программирования.
Здесь и в дальнейшем термин «вычислительные алгоритмы» будем понимать в самом широком смысле как алгоритмы работы с величинами любых типов, ориентированные на исполнителя — ЭВМ.
Процедурные (или алгоритмические) программы представляют из себя систему предписаний для решения конкретной задачи. Роль компьютера сводится к механическому выполнению этих предписаний.
Процедурные языки разделяют на языки низкого и высокого уровня.
Я
зыки
низкого уровня (машинно-ориентированные)
позволяют создавать про граммы из
машинных кодов, обычно в шестнадцатеричной
форме. С ними трудна работать, но
созданные с их помощью высококвалифицированным
программистом программы занимают
меньше места в памяти и работают быстрее.
С помощью этил языков удобнее разрабатывать
системные программы, драйверы (программы
для управления устройствами компьютера),
некоторые другие виды программ.
Программы на языках высокого уровня близки к естественному (английскому) языку и представляют набор заданных команд.
Перечислим наиболее известные системы программирования:
1. Фортран (FORmula TRANslating system - система трансляции формул); старейший и по сей день активно используемый в решении задач математической ориентации язык.
2. Бейсик (Beginner's All-purpose Symbolic Instruction Code - универсальный символический код инструкций для начинающих); несмотря на многие недостатки и изобилие плохо совместимых версий - самый популярный по числу пользователей.
3. Алгол (ALGOrithmic Language - алгоритмический язык); сыграл большую роль в теории, но для практического программирования сейчас почти не используется.
4. ПЛ/1 (PL/1 Programming Language - язык программирования первый). Многоцелевой язык; сейчас почти не используется.
5. Си (С - «си»); широко используется при создании системного программного обеспечения.
6. Паскаль (Pascal - назван в честь ученого Блеза Паскаля); чрезвычайно популярен как при изучении программирования, так и среди профессионалов. На его базе созданы несколько более мощных языков (Модула, Ада, Дельфи).
7. Кобол (COmmon Business Oriented Language - язык, ориентированный на общий бизнес); в значительной мере вышел из употребления.
3. Дельфи (Delphi) - язык объектно-ориентированного «визуального» программирования; в данный момент чрезвычайно популярен.
9. Джава (Java) - платформенно-независимый язык объектно-ориентированного программирования, чрезвычайно эффективен для создания интерактивных вебстраниц.
Среди непроцедурных языков наиболее известны
1. Лисп (Lisp);
2. Пролог (PROgramming in LOGic);
3. Оккам (назван в честь философа У. Оккама).
Программирование разделяется:
1) процедурное: операциональное (Ассемблер, Бейсик) и структурное (Паскаль);
2) непроцедурное: объектное (Смолток, Делфи), логическое (Пролог), функциональное (Лисп).