Алгоритмика программы это инструмент для обработки файлов
Роль алгоритмов в программировании. В настоящее время наибольшей популярностью пользуются системы объектно-ориентированного программирования (Visual Basic, Delphi). Разработка программы с помощью такой системы программирования состоит из двух этапов: 1) создание в визуальном режиме элементов графического интерфейса программы; 2) разработка программного кода. Такой подход существенно облегчает создание программ, так как разработка графического интерфейса вручную (в процедурных языках) сложный и трудоёмкий процесс.
Первый шаг к пониманию важности изучения и знания алгоритмов это дать точное определение тому, что понимается под алгоритмом. Алгоритм в программировании- это понятная и точная последовательность действий , записанных на языке программирования. Согласно популярной книге Алгоритмы: построение и анализ (Кормен, Лейзерсон, Ривест, Штайн)"алгоритм (algorithm) - это любая корректно определенная вычислительная процедура, на вход (input) которой подается некоторая величина или набор величин, и результатом выполнения которой является выходная (output) величина или набор значений". Другими словами, алгоритмы похожи на дорожные карты для достижения четко определенной цели. Код, для вычисления членов последовательности Фибоначчи - это реализация конкретного алгоритма. Даже простая функция сложения двух чисел является алгоритмом, хотя и простым.
Для создания алгоритма (программы) необходимо знать:
полный набор исходных данных задачи (начальное состояние объекта);
цель создания алгоритма (конечное состояние объекта);
систему команд исполнителя (то есть набор команд, которые исполнитель понимает и может выполнить).
Полученный алгоритм (программа) должен обладать следующим набором свойств:
дискретность (алгоритм разбит на отдельные шаги - команды);
однозначность (каждая команда определяет единственно возможное действие исполнителя);
понятность (все команды алгоритма входят в систему команд исполнителя);
результативность (исполнитель должен решить задачу за конечное число шагов).
Большая часть алгоритмов обладает также свойством массовости (с помощью одного и того же алгоритма можно решать множество однотипных задач).
Некоторые алгоритмы, к примеру, для вычисления последовательности Фибоначчи, являются интуитивно понятными и относятся к врожденным навыкам логического мышления и решения задач. Тем не менее, большинству из нас будет не лишним изучить и сложные алгоритмы, чтобы в будущем можно было использовать их в качестве строительных блоков для более эффективного решения логических задач. В действительности можно удивиться, узнав как много сложных алгоритмов используется людьми при проверке электронной почты или прослушивании музыки. В этой статье представлены некоторые основные идеи анализа алгоритмов с практическими примерами, иллюстрирующими важность изучения алгоритмов.
Язык программирования - набор правил записи алгоритмических структур и данных.
Анализ времени выполнения алгоритма
Одним из наиболее важных аспектов алгоритма является его скорость. Часто бывает легко придумать алгоритм решающий задачу, но если алгоритм слишком медленный, то он возвращается на доработку. Поскольку точная скорость алгоритма зависит от того где запускается алгоритм, а также деталей реализации, компьютерные специалисты обычно говорят о времени выполнения относительно входных данных. Например, если вход состоит из N целых чисел, то алгоритм может иметь время выполнения пропорциональное N 2 , что представляется как O(N 2 ). Это означает, что если вы запустите реализацию алгоритма на компьютере с входом размером в N, то это займет C*N 2 секунд, где C-некоторая константа, которая не меняется с изменением размера входа.
Тем не менее, время выполнения многих сложных алгоритмов зависит не только от размера входных данных, но и от множества других факторов. Например, алгоритм сортировки множества целых чисел может работать намного быстрее, если это множество уже отсортировано. Принято говорить о наихудшем случае выполнения, и среднем случае выполнения. Наихудшее время выполнения - это максимальное время работы алгоритма при самом "плохом" из всех возможных входов. Средний случай выполнения - это среднее время работы алгоритма на всех возможных входах. Из этих двух типов времени выполнения, легче всего рассуждать о наихудшем случае и поэтому его используют чаще в качестве эталона для заданного алгоритма. Процесс определения наихудшего и среднего случая времени выполнения алгоритма может быть достаточно сложным, т.к. обычно невозможно запустить алгоритм для всех возможных входов.
Выше отмечалось, что один и тот же алгоритм может быть записан по-разному. Можно записывать алгоритм естественным языком. В таком виде мы используем рецепты, инструкции и т.п. Для записи алгоритмов, предназначенных формальным исполнителям, разработаны специальные языки программирования . Любой алгоритм можно описать графически в виде блок-схемы . Для этого разработана специальная система обозначений:
Начало и конец алгоритма
Ввод и вывод данных.
Вывод данных иногда обозначают иначе:
В вычислительных алгоритмах так обозначают присваивание
Развилка - компонент, необходимый для реализации ветвлений и циклов
Начало цикла с параметром
В программировании - процедуры или подпрограммы
Переходы между блоками
Приведем пример описания алгоритма суммирования двух величин в виде блок-схемы:
Такой способ описания алгоритм наиболее нагляден и понятен человеку. Поэтому, алгоритмы формальных исполнителей обычно разрабатывают сначала в виде блок-схемы, и только затем создают программу на одном из языков программирования.
Сортировка
Сортировка является хорошим примером алгоритма, который часто используется программистами. Самый простой способ отсортировать группу элементов это начать с удаления наименьшего элемента из группы, и поставить его первым. Затем удаляется второй по величине элемент и ставится вторым и т.д. К сожалению, время работы этого алгоритма составляет O(N 2 ), а это означает, что потребуется количество времени пропорциональное количеству элементов в квадрате. Если бы нам пришлось сортировать млрд. элементов, то этот алгоритмы бы потребовал 10 18 операций. Если считать что обычные настольные ПК делают примерно 10 9 операций в секунду, то потребуются годы чтобы закончить сортировку этого млрд. элементов.
К счастью существует ряд более совершенных алгоритмов, например, быстрая сортировка (quicksort), пирамидальная сортировка (heapsort) и сортировка слияния(mergesort). Эти алгоритмы имеют время выполнения O(N * Log(N)). Таким образом, число операций необходимых для сортировки млрд. элементов сокращается до таких разумных пределов, что даже самый дешевый настольный ПК способен провести такую сортировку. Вместо млрд. в квадрате операций (10 18 ) эти алгоритмы требуют только 10 млрд. операций (10 10 ), т.е. в 100 млн. раз быстрее.
Кратчайший путь
Алгоритмы поиска кратчайшего пути из одной точки в другую исследуются уже на протяжении многих лет. Примеров прикладного применения этих алгоритмов предостаточно, однако для простоты изложения будем придерживаться следующей постановки: требуется найти кратчайший путь из точки А в точку Б в городе с несколькими улицами и перекрестками. Существует много разных алгоритмов для решения этой задачи и все они со своими преимуществами и недостатками. Прежде чем мы углубимся в их изучение, давайте рассмотрим время выполнения простого алгоритма перебором. Если алгоритм рассматривает каждый возможный путь от А до Б (который не образует циклов) он вряд ли закончится при нашей жизни, даже если А и Б находятся в маленьком городке. Время выполнения этого алгоритма является экспоненциальным, что обозначается как O(C N ) для некоторого C. Даже для малых значений C, C N становится астрономическим числом, когда N принимает умеренно большое значение.
Один из самых быстрых алгоритмов для решения этой задачи имеет время выполненияO(E+V*Log(V)), где E число дорожных сегментов, а V число пересечений. Алгоритм займет около 2 секунд времени, для поиска кратчайшего пути в городе из 10000 пересечений и 20000 дорожных сегментов (обычно бывает около 2 дорожных сегментов на одно пересечение). Этот алгоритм известен как алгоритм Дейкстры, он является довольно таки сложным и требует использования структуры данных очередь с приоритетом (priority queue). Однако в некоторых случаях даже такое время выполнения является слишком медленным (взять например нахождение кратчайшего пути от Нью-Йорка до Сан-Франциско - в США есть миллионы пересечений), в таких случаях программисты пытаются улучшить время выполнения с помощью так называемой эвристики. Эвристика - это приближенное значение чего-то, что имеет отношение к задаче. В задаче поиска кратчайшего пути, например, может оказаться полезным знать, как далеко находится точка от пункта назначения. Зная это можно разработать более быстрый алгоритм (например алгоритм поиска А* в некоторых случаях работает значительно быстрее чем алгоритм Дейкстры). Такой подход не всегда улучшает время выполнения алгоритма в наихудшем случае, но в большинстве реальных приложений алгоритм начинает работать быстрее.
Приближенные алгоритмы
Иногда даже самый продвинутый алгоритм с самой продвинутой эвристикой работает слишком медленно на самом быстром компьютере. В таких случаях приходится снижать точность конечного результата. Вместо того чтобы пытаться получить кратчайший путь, можно ограничиться путем, который например на 10% больше чем кратчайший путь.
На самом деле есть немало важных задач, для которых известные на сегодня алгоритмы выдают оптимальный результат слишком медленно. Наиболее известная группа из этих задач называется NP (non-deterministic polynomial). Если задача называется NP-полной или NP-трудной, то это означает, что никто не знает достаточно хорошего способа для получения оптимального решения. Кроме того, если кто-то разработает эффективный алгоритм для решения одной NP-трудной задачи, то этот алгоритм можно будет применить ко всем NP-трудным задачам.
Хорошим примером NP-трудной задачи является задача коммивояжёра. Продавец хочет посетить N городов, и он знает, сколько времени занимает перемещение из одного города в другой. Вопрос в том насколько быстро он сможет посетить все города? Самый быстрый из известных алгоритмов для решения этой задачи является слишком медленным - и многие считают, что так будет всегда - поэтому программисты ищут достаточно быстрые алгоритмы, дающие хорошее решение, но часто не оптимальное.
Случайные алгоритмы
Еще один подход, применяемый для решения некоторых задач, заключается в том, чтобы сделать алгоритм случайным. Данный подход не улучшает время алгоритма в худшем случае, но довольно часто хорошо работает в среднем случае. Алгоритм быстрой сортировки является хорошим примером использования рандомизации. В худшем случае, алгоритм быстрой сортировки сортирует группу элементов за O(N 2 ), где N количество элементов. Если в этом алгоритме использовать рандомизацию, то шансы на худший случай становятся незначительно малыми, и в среднем случае алгоритм быстрой сортировки работает за время O(N*Log(N)). Другие алгоритмы даже в худшем случае гарантируют время работы O(N*Log(N)), однако они медленнее в среднем случае. Хотя оба алгоритма имеют время работы пропорциональное N*Log(N), алгоритм быстрой сортировки имеет более меньший постоянный коэффициент (constant factor) - т.е. он требует C*N*Log(N), в то время как другие алгоритмы требуют более 2*C*N*Log(N) операций.
Другой алгоритм, использующий случайные числа ищет медиану для группы чисел и его время работы в среднем случае составляет O(N). Это намного быстрее по сравнению с алгоритмом, который сортирует числа и выбирает среднее, и работает за O(N*Log(N)). Существуют детерминированные алгоритмы (не случайные) которые позволяют найти медиану за время O(N), однако случайный алгоритм проще для понимания и часто работает быстрее этих детерминированных алгоритмов.
Основная идея алгоритма поиска медианы это выбрать среди чисел случайное, и посчитать, сколько чисел в группе меньше чем выбранное число. Допустим, есть N чисел, K из них меньше или равно выбранному числу. Если K меньше чем половина N, тогда мы знаем что медиана это (N/2-K)-е число которое больше чем случайно выбранное число, так что мы отбрасываем K чисел меньших или равных случайному числу. Теперь допустим мы хотим найти (N/2-K)-е наименьшее число, вместо медианы. Алгоритм такой же, мы просто случайно выбираем число и повторяем описанные шаги.
Сжатие
Еще один класс алгоритмов предназначен для сжатия данных. Этот алгоритм не имеет ожидаемого результата (как например, алгоритм сортировки), но вместо этого делается оптимизация по некоторым критериям. В случае сжатия данных, алгоритм (например, LZW) пытается сделать так чтобы данные занимали как можно меньше байтов, но в то же время, чтобы можно было распаковывать их до первоначальной формы. В некоторых случаях этот тип алгоритмов использует те же методы что и другие алгоритмы, что приводит к хорошему результату, но неоптимальному. Например, JPG и MP3 сжимают данные таким образом, что конечный результат получается более низкого качества, чем оригинал, однако и размер меньше. MP3 сжатие не сохраняет каждую особенность оригинального аудио файла, но пытается сохранить достаточно деталей, чтобы обеспечить приемлемое качество и в то же время значительно сократить размер файла. Формат JPG следует тому же принципу, но детали существенно отличаются, т.к. целью является сжатие изображения, а не аудио.
Зачем нужно знать всякие алгоритмы
Чтобы использовать алгоритмы должным образом, важно знать все упомянутые типы алгоритмов. Если вам придется разрабатывать важную часть программного обеспечения, то вы должны быть в состоянии оценить скорость работы вашего алгоритма. Точность вашей оценки зависит от того насколько вы владеете анализом времени исполнения алгоритмов. Кроме этого, необходимо знать детали алгоритмов, что позволит предсказывать особые случаи, в которых программа не будет работать быстро, или будет давать неприемлемые результаты.
Конечно, будут моменты, когда вы будете натыкаться на ранее не изучавшиеся проблемы. В таких случаях нужно придумать новый алгоритм, или по-новому применить старый алгоритм. Чем больше вы знаете об алгоритмах, тем больше у вас шансов найти хорошее решение проблемы. Во многих случаях новая задача легко сводится к старой, но для этого нужно иметь фундаментальное понимание старых задач.
Реальные примеры
Примеров решений реальных задач требующих новейших алгоритмов предостаточно. Почти все, что вы делаете на компьютере зависит от алгоритмов, которые кто-то очень долго разрабатывал. Даже самых простых программ не существовало бы без алгоритмов, которые работают "за сценой" управляя памятью и загружая данные с жесткого диска.
Существуют десятки примеров применения сложных алгоритмов, но обсудим две задачи, решение которых требует таких же навыков, как для решения некоторых задач на TopCoder. Первая задача известна как задача о максимальном потоке, а вторая связана с динамическим программированием - методом который часто позволяет решать задачи с казалось бы невозможной молниеносной скоростью.
Алгоритм поиска максимального потока
Задача поиска максимального потока состоит в том, чтобы посредством имеющейся сети наилучшим образом переместить что-то из одного места в другое. Конкретно такая проблема впервые возникла в 1950-х в связи с железнодорожными путями Советского Союза. США хотели знать, как быстро Советский Союз может подвозить материалы к государствам-сателлитам в Восточной Европе через свою сеть железных дорог.
Кроме того США хотели знать какую часть рельсов можно наиболее легко уничтожить чтобы отрезать государства-сателлиты от остальной части Советского Союза. Оказалось, что эти две задачи тесно связаны и что решение задачи поиска максимального потока также решает задачу о минимальном разрезе, что, в конечном счете, позволит выяснить самый дешевый способ отрезать Советский Союз от своих спутников.
Первый эффективный алгоритм для поиска максимального потока был придуман учеными Фордом и Фалкерсоном. Алгоритм впоследствии был назван алгоритмом Форда - Фалкерсона и является одним из наиболее известных алгоритмов в области компьютерной науки. В последние 50 лет алгоритм претерпел ряд улучшений, что сделало его быстрее (правда, некоторые из этих улучшений устрашают своей сложностью).
Сравнение последовательностей
Многим кодерам за всю свою карьеру ни разу не приходилось реализовывать алгоритм, использующий динамическое программирование. Тем не менее, динамическое программирование применяется в ряде важных алгоритмов. Один из алгоритмов это нахождение различий между двумя последовательностями, который большинство программистов наверняка использовали, хотя возможно и не разбирались в нем. Этот алгоритм вычисляет минимальное количество вставок, удалений, редактирований необходимых для преобразования последовательность A в последовательность B.
Например, рассмотрим последовательности "AABAA" и "AAAB". Для преобразования первой последовательности во вторую самое простое, что нужно сделать это удалить B в середине и изменить последнюю A на B. Этот алгоритм имеет множество применений, включая некоторые задачи связанные с ДНК и обнаружением плагиата. Однако многие программисты используют его в основном для сравнения версий одного и того же файла с исходным кодом. Если элементы последовательности это строки в файле, тот этот алгоритм позволяет узнать какие строки надо удалить, вставить, изменить чтобы преобразовать одну версию файла в другую.
Без динамического программирования приходится перебирать экспоненциальное число преобразований, чтобы перейти от одной последовательности к другой. Однако динамическое программирование сокращает время выполнения алгоритма до O(N*M), где N и M количество элементов в двух последовательностях.
Заключение
Сколько существует различных задач, столько существует и различных алгоритмов для их решения. Тем не менее есть большая вероятность того что задача которую вы пытаетесь решить в некотором смысле похожа на другую задачу. Развивая глубокое понимание широкого диапазона алгоритмов, вы сможете выбрать верный алгоритм и применить его для решения задачи. Кроме того решение задач в соревнованиях на TopCoder поможет вам отточить свои навыки в этой области. Многие из этих задач кажутся искусственными и не реалистичными, но они требуют такого, же набора алгоритмических знаний который требуется каждый день в реальном мире.
Обращаем Ваше внимание, что в соответствии с Федеральным законом N 273-ФЗ «Об образовании в Российской Федерации» в организациях, осуществляющих образовательную деятельность, организовывается обучение и воспитание обучающихся с ОВЗ как совместно с другими обучающимися, так и в отдельных классах или группах.
Рабочие листы и материалы для учителей и воспитателей
Более 2 500 дидактических материалов для школьного и домашнего обучения
- Онлайн
формат - Диплом
гособразца - Помощь в трудоустройстве
Видеолекции для
профессионалов
- Свидетельства для портфолио
- Вечный доступ за 120 рублей
- 311 видеолекции для каждого
«Как закрыть гештальт: практики и упражнения»
Свидетельство и скидка на обучение каждому участнику
Описание презентации по отдельным слайдам:
Модуль 1. Урок 4.
Текстовый редактор
Ссылка на методичку
Повторение
Модуль 1. Урок 4. Текстовый редактор
Повторение
пройденного материала
На прошлом уроке.
Кто помнит, чем мы занимались на прошлом уроке?
Повторение
пройденного материала
На прошлом уроке.
На прошлом уроке мы работали с файлами и папками!
Посмотрите на подписи. Всё ли тут верно?
Это файл.
В нём хранятся папки.
Это папка.
В ней хранится информация.
Повторение
пройденного материала
Всё наоборот!
Файл — это «порция» информации. А папка — это место, где хранится файл!
Это файл.
В нём хранится информация.
Это папка.
В ней хранятся файлы.
Повторение
пройденного материала
Как создать папку?
Посмотрите на иллюстрацию из прошлого урока и опишите порядок действий:
Повторение
пройденного материала
Как создать папку?
Нажать правую кнопку мыши.
Выбрать пункт меню «Создать».
Выбрать пункт меню «Папку».
Ввести имя папки, нажать Enter.
Повторение
пройденного материала
Как открыть папку?
Дважды щёлкнуть по папке.
Выбрать папку.
Нажать клавишу Enter.
Прочитайте инструкцию.
Верно ли указан порядок действий?
Все ли действия необходимы для того, чтобы открыть папку?
Повторение
пройденного материала
Как открыть папку?
Выбрать папку.
Дважды щёлкнуть по папке.
Нажать клавишу Enter.
Теперь инструкция верна!
Зачем может понадобиться текстовый файл?
Модуль 1. Урок 4. Текстовый редактор
Как составить объявление?
Повторение
пройденного материала
Сегодня мы.
создадим текстовый файл;
напишем объявление о пропаже котика;
отправим файл на платформу «Алгоритмика»!
Модуль 1. Урок 4. Текстовый редактор
Если бы у нас не было компьютеров, объявление мы писали бы на бумаге.
Создание объявления — это информационный процесс. Но какой?
Нам нужно написать объявление
Здесь входные данные — воспоминания о коте, а выходные — текст объявления. Значит, это обработка.
Чтобы обработать информацию, нам нужны инструменты. Какие?
Ручка, бумага, собственные руки и голова — вот инструменты, которые использует человек для обработки информации!
А что ещё нам помогает обрабатывать, хранить и передавать информацию?
Инструменты для работы с информацией
Это книги, тетради, краски, карандаши.
Инструменты для работы с информацией
Тетради, краски, карандаши мы используем для обработки информации.
Книги — для хранения.
Письма — для передачи.
А компьютер может это всё. Но с помощью чего?
Инструменты для работы с информацией
Программы
Компьютер использует свои инструменты.
Для хранений информации — файлы.
А для её обработки — программы!
Программы
Программы — это инструменты компьютера для работы с информацией.
Чтобы зайти в Интернет, мы уже использовали одну программу. Такие программы называются браузеры.
Google Chrome — программа-браузер.
Разбор
новой темы
Чтобы написать текст нашего объявления на компьютере, нужен другой инструмент — текстовый редактор.
Блокнот — программа-текстовый редактор.
Разбор
новой темы
С чего нужно начать наше объявление?
Составим текстовое описание нашего котика
Что можно написать про самого котика?
Нужно ли описывать его внешность, привычки?
Нужно ли написать его кличку?
Составим текстовое описание нашего котика
Как зовут котика?
Как он выглядит?
Что он любит?
Как найти хозяина?
Разбор
новой темы
Составим текстовое описание нашего котика
Остаётся набрать этот текст в программе Блокнот.
Как это сделать?
Разбор
новой темы
Составим текстовое описание нашего котика
Как создать текстовый файл?
Чтобы создать текстовый файл — нажимаем правой кнопкой мыши и выбираем «Создать» — «Текстовый документ».
Как открыть текстовый файл?
Файл открывается так же, как папка. Надо просто навести курсор на значок и щёлкнуть левой кнопкой мыши два раза:
Блокнот — текстовый редактор
Открывается окно программы «Блокнот», в котором можно сразу брать и писать текст — то есть редактировать текстовый файл!
Редактирование текстового файла:
Как писать заглавные буквы?
Как выглядит клавиша «пробел»?
Как начать писать новый абзац?
Как удалить символ?
Чтобы ввести заглавную букву, сначала зажимаем , а потом нажимаем клавишу с нужной буквой.
Это самая длинная клавиша на клавиатуре. Она расположена в нижнем ряду клавиш:
Пробел
Чтобы начать печатать новый абзац, нажимаем клавишу Enter. Её очень легко узнать:
Клавиша Enter на большинстве клавиатур — изогнутая.
Клавиша Backspace удаляет букву слева от курсора
Backspace — это клавиша со стрелкой «Влево»!
Как сохранить файл:
Когда объявление будет написано — его надо сохранить. Иначе пропадёт вся информация о нашем котике!
Для этого нажимаем «Файл». Выпадает меню, то есть список команд. В нём выбираем команду «Сохранить» — как на рисунке:
Как загрузить файл на платформу:
Нажимаем на кнопку «+» и выбираем нужный файл!
Обратите внимание:
В открывающемся окне надо выбрать Рабочий стол и папку, в которой лежит текстовый файл!
Что нужно запомнить:
Компьютерная программа — это инструмент компьютера для работы с информацией.
С помощью программ можно создавать, редактировать и сохранять файлы.
Работаем
на платформе
Модуль 1. Урок 4. Текстовый редактор
Подведение
итогов занятия
В конце урока
Подведение
итогов занятия
Оцените, как прошёл урок!
Урок понравился, всё было интересно и понятно.
Не всё на уроке было интересно и понятно.
Урок был скучным и непонятным.
Знакомство с платформой
Как зайти на платформу?
Как открыть программу Google Chrome?
Надо навести указатель мыши на значок программы и дважды нажать на левую кнопку!
Знакомство с платформой
Работа на
платформе
Знакомство с платформой
Как зайти на платформу
Знакомство с платформой
Как зайти на платформу?
Работа на
платформе
Каждый вводит свой логин и пароль
Вводим логин и пароль
Логины и пароли должны быть записаны у вас в тетрадях!
Знакомство с платформой
Как зайти на платформу
Работа на
платформе
Краткое описание документа:
Материал к внеурочной деятельности программирование Алгоритмика. Курс программирования в школе «Алгоритмика»Модуль 1 Введение в ИКТ. 1. Правила безопасности. Знакомство с платформой.2. Информация. Виды информации и информационные процессы.3. Файлы и папки.4. Текстовый редактор5. Итоговое тестирование-1Модуль 2 Алгоритмы. Введение в Scratch1. Блок-схемы2. Алгоритмы. Языки программирования3. Scratch. Знакомство4. Scratch Скрипты5. Scratch Скрипты. Закрепление. ДОПОЛНИТЕЛЬНЫЙ6. Итоговое тестирование-27. Помоги роботу починить станциюМодуль 3 Scratch1. Scratch Циклы.2. Scratch. Повороты и вращение3. Scratch. Повороты и движение4. Закрепление: циклы, повороты и движение. ДОПОЛНИТЕЛЬНЫЙ5. Проект. Открытка. ДОПОЛНИТЕЛЬНЫЙ6. Итоговое тестирование - 3Модуль 4 Редактор презентаций.1. Знакомство с редактором презентаций.2. Объекты на слайде3. Учимся оформлять слайды.4. Оформление презентаций.5. Проект. ДОПОЛНИТЕЛЬНЫЙ6. Презентация проектов. ДОПОЛНИТЕЛЬНЫЙ7. Итоговое тестирование
Обращаем Ваше внимание, что в соответствии с Федеральным законом N 273-ФЗ «Об образовании в Российской Федерации» в организациях, осуществляющих образовательную деятельность, организовывается обучение и воспитание обучающихся с ОВЗ как совместно с другими обучающимися, так и в отдельных классах или группах.
Рабочие листы и материалы для учителей и воспитателей
Более 2 500 дидактических материалов для школьного и домашнего обучения
Столичный центр образовательных технологий г. Москва
Получите квалификацию учитель математики за 2 месяца
от 3 170 руб. 1900 руб.
Количество часов 300 ч. / 600 ч.
Успеть записаться со скидкой
Форма обучения дистанционная
- Онлайн
формат - Диплом
гособразца - Помощь в трудоустройстве
Видеолекции для
профессионалов
- Свидетельства для портфолио
- Вечный доступ за 120 рублей
- 311 видеолекции для каждого
Образовательная программа «Алгоритмика» имеет отношение к образовательным областям «Математика» и «Информатика и ИКТ» направленность по уровню освоения для учащихся 5-6 классов.
Принципы построения курса.
Одним из важнейших условий реализации данного курса является системный подход к изучаемому материалу, к применению уже полученных знаний и «наращивании» информации в соответствии с возрастом учащегося, в интегрировании этих знаний с новой «взрослой» областью применения этих знаний - обработкой информации.
Все компоненты педагогического процесса: организационные методы, приемы, средства и содержание обучения базируются на принципах целеполагания, научности, последовательности, системности, доступности; соответствуют логике процесса обучения и ориентируются на мотивацию учащихся на познание этого вида деятельности.
Курс построен таким образом, что начать работать на любом этапе его прохождения «никогда не поздно».
Специфика этого курса заключается в тесной взаимосвязи содержания и средств обучения.
Актуальность этого курса очевидна для учащихся, избравших своим видом деятельности информатику.
Расширенное знакомство с прикладными программами осуществляется не в ущерб изучению фундаментальных понятий информатики. Содержание обучения не зависит от вида техники. В основу структуризации курса положен принцип дидактической спирали. В течение всего курса происходит последовательное раскрытие основных понятий информатики. На каждом этапе эти понятия освещаются с новой стороны с дополнительной степенью подробности.
Для учащихся 5-6 классов курс носит пропедевтический характер. К пропедевтическим элементам компьютерной грамотности относится умение работать с прикладным программным обеспечением (ППО). Получение навыков работы с ППО идет вместе с продолжением развития логического, системного, алгоритмического мышления.
Цель данного курса:
· научить учащихся алгоритмическому мышлению, т.е. искусству правильно мыслить и разумно планировать свои действия.
· Научить работать с информацией
· Способствовать приобретению навыков работы с современным программным обеспечением.
Задача курса:
· Образовательная задача:знакомство с основами информационной культуры, с фундаментальными понятиями о компьютерах, с основами программирования, с информацией и способами ее обработки.
· Развивающая задача: развитие алгоритмического и логического мышления учащихся; развитие памяти, внимания, познавательного интереса;
· Воспитательная задача: воспитание у учащихся умений самостоятельно работать, делать выводы, грамотно излагать свои мысли.Обучение созданию моделей (поиск закономерностей, рассуждения по аналогии, по индукции, правдоподобные догадки, развитие творческого воображения и др.).
Дополнительные задачи программы:
· освоение системы базовых знаний, отражающих вклад информатики в формирование современной научной картины мира, роль информационных процессов в обществе;
· овладение умениями применять, анализировать, преобразовывать информационные модели реальных объектов и процессов, используя при этом информационные и коммуникационные технологии (ИКТ), в том числе при изучении других школьных дисциплин;
· развитие познавательных интересов, интеллектуальных и творческих способностей путем освоения и использования методов информатики и средств ИКТ при изучении различных учебных предметов;
· приобретение опыта использования информационных технологий в индивидуальной и коллективной учебной и познавательной, в том числе проектной деятельности.
· развитие коммуникативной компетентности через парную и групповую работу.
Отличительные особенности программы
В содержании курса интегрированы задания из различных областей знаний: русского языка, литературы, математики, окружающего мира. Особое внимание обращено на развитие логического мышления и получения навыков работ с различным программным обеспечением.
Возраст детей
Программа адресована детям (мальчикам и девочкам) 11-12 лет.
Условия набора детей в коллектив: принимаются все желающие (не имеющие медицинских противопоказаний). Наполняемость в группах зависит от количества используемых компьютеров в классе.
СРОКИ РЕАЛИЗАЦИИ ПРОГРАММЫ
Программа рассчитана на 1 год: 2 часа в неделю 68 часов в год,
ФОРМЫ И РЕЖИМ ЗАНЯТИЙ
Форма организации занятий групповая. Материал рассчитан на 1/3 часов теоретических и 2/3 - практических.
Занятия проводятся в машинном варианте с использованием программного обеспечения, соответствующего возрасту ребенка и проблемам изучаемого материала.
Занятия групп 5-6 класса обучения проводится 2 раз в неделю по 35 мин
Ожидаемые результаты и способы определения их результативности.
Ожидаемый результат по образовательному компоненту программы:
· к концу 6 класса учащиеся должны уметь использовать разнообразное программное обеспечение для решения своих информационных задач, а также уметь программировать на языке Pyton . Учащиеся должны уметь решать логические задачи разного уровня.
Ожидаемый результат по развивающему компоненту программы: Курс предполагает возможность использования знаний и практических навыков, полученных при обучении, во внеучебное время для реализации различных проектов, участия в олимпиадах и конкурсах.
Ожидаемый результат по воспитательному компоненту программы: соблюдать технические инструкции по эксплуатации компьютеров, правила поведения в компьютерном классе и работе на компьютере.
Способы определения результативности: проверочные задания, выполнение творческих работ, методы педагогического наблюдения, опрос, участие в конкурсах.
Формы подведения итогов реализации программы
Для подведения итогов реализации программы предусмотрено выполнение итоговой творческой работы, с последующей защитой.
ИНФОРМАТИКА- НАУКА, ИЗУЧАЮЩАЯ СПОСОБЫ АВТОМАТИЗИРОВАННОГО СОЗДАНИЯ, ХРАНЕНИЯ, ОБРАБОТКИ, ИСПОЛЬЗОВАНИЯ, ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ.
ИНФОРМАЦИЯ – ЭТО НАБОР СИМВОЛОВ, ГРАФИЧЕСКИХ ОБРАЗОВ ИЛИ ЗВУКОВЫХ СИГНАЛОВ, НЕСУЩИХ ОПРЕДЕЛЕННУЮ СМЫСЛОВУЮ НАГРУЗКУ.
ЭЛЕКТРОННО-ВЫЧИСЛИТЕЛЬНАЯ МАШИНА (ЭВМ) ИЛИ КОМПЬЮТЕР (англ. computer- -вычислитель)-УСТРОЙСТВО ДЛЯ АВТОМАТИЗИРОВАННОЙ ОБРАБОТКИ ИНФОРМАЦИИ. Принципиальное отличие использования ЭВМ от всех других способов обработки информации заключается в способности выполнения определенных операций без непосредственного участия человека, но по заранее составленной им программе. Информация в современном мире приравнивается по своему значению для развития общества или страны к важнейшим ресурсам наряду с сырьем и энергией. Еще в 1971 году президент Академии наук США Ф.Хандлер говорил: "Наша экономика основана не на естественных ресурсах, а на умах и применении научного знания".
В развитых странах большинство работающих заняты не в сфере производства, а в той или иной степени занимаются обработкой информации. Поэтому философы называют нашу эпоху постиндустриальной. В 1983 году американский сенатор Г.Харт охарактеризовал этот процесс так: "Мы переходим от экономики, основанной на тяжелой промышленности, к экономике, которая все больше ориентируется на информацию, новейшую технику и технологию, средства связи и услуги.."
2. КРАТКАЯ ИСТОРИЯ РАЗВИТИЯ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ.
Вся история развития человеческого общества связана с накоплением и обменом информацией (наскальная живопись, письменность, библиотеки, почта, телефон, радио, счеты и механические арифмометры и др.). Коренной перелом в области технологии обработки информации начался после второй мировой войны.
В вычислительных машинах первого поколения основными элементами были электронные лампы. Эти машины занимали громадные залы, весили сотни тонн и расходовали сотни киловатт электроэнергии. Их быстродействие и надежность были низкими, а стоимость достигала 500-700 тысяч долларов.
Появление более мощных и дешевых ЭВМ второго поколения стало возможным благодаря изобретению в 1948 году полупроводниковых устройств- транзисторов. Главный недостаток машин первого и второго поколений заключался в том, что они собирались из большого числа компонент, соединяемых между собой. Точки соединения (пайки) являются самыми ненадежными местами в электронной технике, поэтому эти ЭВМ часто выходили из строя.
В ЭВМ третьего поколения (с середины 60-х годов ХХ века) стали использоваться интегральные микросхемы (чипы)- устройства, содержащие в себе тысячи транзисторов и других элементов, но изготовляемые как единое целое, без сварных или паяных соединений этих элементов между собой. Это привело не только к резкому увеличению надежности ЭВМ, но и к снижению размеров, энергопотребления и стоимости (до 50 тысяч долларов).
История ЭВМ четвертого поколения началась в 1970 году, когда ранее никому не известная американская фирма INTEL создала большую интегральную схему (БИС), содержащую в себе практически всю основную электронику компьютера. Цена одной такой схемы (микропроцессора) составляла всего несколько десятков долларов, что в итоге и привело к снижению цен на ЭВМ до уровня доступных широкому кругу пользователей.
СОВРЕМЕННЫЕ КОМПЬТЕРЫ- ЭТО ЭВМ ЧЕТВЕРТОГО ПОКОЛЕНИЯ, В КОТОРЫХ ИСПОЛЬЗУЮТСЯ БОЛЬШИЕ ИНТЕГРАЛЬНЫЕ СХЕМЫ.
90-ые годы ХХ-го века ознаменовались бурным развитием компьютерных сетей, охватывающих весь мир. Именно к началу 90-ых количество подключенных к ним компьютеров достигло такого большого значения, что объем ресурсов доступных пользователям сетей привел к переходу ЭВМ в новое качество. Компьютеры стали инструментом для принципиально нового способа общения людей через сети, обеспечивающего практически неограниченный доступ к информации, находящейся на огромном множестве компьюторов во всем мире - "глобальной информационной среде обитания".
6.ПРЕДСТАВЛЕНИЕ ИНФОРМАЦИИ В КОМПЬЮТЕРЕ И ЕЕ ОБЪЕМ.
ЭТО СВЯЗАНО С ТЕМ, ЧТО ИНФОРМАЦИЮ, ПРЕДСТАВЛЕННУЮ В ТАКОМ ВИДЕ, ЛЕГКО ТЕХНИЧЕСКИ СМОДЕЛИРОВАТЬ, НАПРИМЕР, В ВИДЕ ЭЛЕКТРИЧЕСКИХ СИГНАЛОВ. Если в какой-то момент времени по проводнику идет ток, то по нему передается единица, если тока нет- ноль. Аналогично, если направление магнитного поля на каком-то участке поверхности магнитного диска одно- на этом участке записан ноль, другое- единица. Если определенный участок поверхности оптического диска отражает лазерный луч- на нем записан ноль, не отражает- единица.
ОБЪЕМ ИНФОРМАЦИИ, НЕОБХОДИМЫЙ ДЛЯ ЗАПОМИНАНИЯ ОДНОГО ИЗ ДВУХ СИМВОЛОВ-0 ИЛИ 1, НАЗЫВАЕТСЯ 1 БИТ (англ. binary digit- двоичная единица). 1 бит- минимально возможный объем информации. Он соответствует промежутку времени, в течение которого по проводнику передается или не передается электрический сигнал, участку поверхности магнитного диска, частицы которого намагничены в том или другом направлении, участку поверхности оптического диска, который отражает или не отражает лазерный луч, одному триггеру, находящемуся в одном из двух возможных состояний.
Итак, если у нас есть один бит, то с его помощью мы можем закодировать один из двух символов- либо 0, либо 1.
Если же есть 2 бита, то из них можно составить один из четырех вариантов кодов: 00 , 01 , 10 , 11 .
Если есть 3 бита- один из восьми: 000 , 001 , 010 , 100 , 110 , 101 , 011 , 111 .
1 бит- 2 варианта,
2 бита- 4 варианта,
3 бита- 8 вариантов;
Продолжая дальше, получим:
4 бита- 16 вариантов,
5 бит- 32 варианта,
6 бит- 64 варианта,
7 бит- 128 вариантов,
8 бит- 256 вариантов,
9 бит- 512 вариантов,
10 бит- 1024 варианта,
N бит - 2 в степени N вариантов.
В обычной жизни нам достаточно 150-160 стандартных символов (больших и маленьких русских и латинских букв, цифр, знаков препинания, арифметических действий и т.п.). Если каждому из них будет соответствовать свой код из нулей и единиц, то 7 бит для этого будет недостаточно (7 бит позволят закодировать только 128 различных символов), поэтому используют 8 бит.
ДЛЯ КОДИРОВАНИЯ ОДНОГО ПРИВЫЧНОГО ЧЕЛОВЕКУ СИМВОЛА В КОМПЬЮТЕРЕ ИСПОЛЬЗУЕТСЯ 8 БИТ, ЧТО ПОЗВОЛЯЕТ ЗАКОДИРОВАТЬ 256 РАЗЛИЧНЫХ СИМВОЛОВ.
СТАНДАРТНЫЙ НАБОР ИЗ 256 СИМВОЛОВ НАЗЫВАЕТСЯ ASCII ( произносится "аски", означает "Американский Стандартный Код для Обмена Информацией"- англ. American Standart Code for Information Interchange).
ОН ВКЛЮЧАЕТ В СЕБЯ БОЛЬШИЕ И МАЛЕНЬКИЕ РУССКИЕ И ЛАТИНСКИЕ БУКВЫ, ЦИФРЫ, ЗНАКИ ПРЕПИНАНИЯ И АРИФМЕТИЧЕСКИХ ДЕЙСТВИЙ И Т.П.
A - 01000001, B - 01000010, C - 01000011, D - 01000100, и т.д.
Таким образом, если человек создает текстовый файл и записывает его на диск, то на самом деле каждый введенный человеком символ хранится в памяти компьютера в виде набора из восьми нулей и единиц. При выводе этого текста на экран или на бумагу специальные схемы - знакогенераторы видеоадаптера (устройства, управляющего работой дисплея) или принтера образуют в соответствии с этими кодами изображения соответствующих символов.
Набор ASCII был разработан в США Американским Национальным Институтом Стандартов (ANSI), но может быть использован и в других странах, поскольку вторая половина из 256 стандартных символов, т.е. 128 символов, могут быть с помощью специальных программ заменены на другие, в частности на символы национального алфавита, в нашем случае - буквы кириллицы. Поэтому, например, передавать по электронной почте за границу тексты, содержащие русские буквы, бессмысленно. В англоязычных странах на экране дисплея вместо русской буквы Ь будет высвечиваться символ английского фунта стерлинга, вместо буквы р - греческая буква альфа, вместо буквы л - одна вторая и т.д.
ОБЪЕМ ИНФОРМАЦИИ, НЕОБХОДИМЫЙ ДЛЯ ЗАПОМИНАНИЯ ОДНОГО СИМВОЛА ASCII НАЗЫВАЕТСЯ 1 БАЙТ.
Очевидно что, поскольку под один стандартный ASCII-символ отводится 8 бит,
Остальные единицы объема информации являются производными от байта:
1 КИЛОБАЙТ = 1024 БАЙТА И СООТВЕТСТВУЕТ ПРИМЕРНО ПОЛОВИНЕ СТРАНИЦЫ ТЕКСТА,
1 МЕГАБАЙТ = 1024 КИЛОБАЙТАМ И СООТВЕТСТВУЕТ ПРИМЕРНО 500 СТРАНИЦАМ ТЕКСТА,
1 ГИГАБАЙТ = 1024 МЕГАБАЙТАМ И СООТВЕТСТВУЕТ ПРИМЕРНО 2 КОМПЛЕКТАМ ЭНЦИКЛОПЕДИИ,
1 ТЕРАБАЙТ = 1024 ГИГАБАЙТАМ И СООТВЕТСТВУЕТ ПРИМЕРНО 2000 КОМПЛЕКТАМ ЭНЦИКЛОПЕДИИ.
Обратите внимание, что в информатике смысл приставок кило- , мега- и других в общепринятом смысле выполняется не точно, а приближенно, поскольку соответствует увеличению не в 1000, а в 1024 раза.
СКОРОСТЬ ПЕРЕДАЧИ ИНФОРМАЦИИ ПО ЛИНИЯМ СВЯЗИ ИЗМЕРЯЕТСЯ В БОДАХ.
1 БОД = 1 БИТ/СЕК.
В частности, если говорят, что пропускная способность какого-то устройства составляет 28 Килобод, то это значит, что с его помощью можно передать по линии связи около 28 тысяч нулей и единиц за одну секунду.
7. СЖАТИЕ ИНФОРМАЦИИ НА ДИСКЕ
ИНФОРМАЦИЮ НА ДИСКЕ МОЖНО ОБРАБОТАТЬ С ПОМОЩЬЮ СПЕЦИАЛЬНЫХ ПРОГРАММ ТАКИМ ОБРАЗОМ, ЧТОБЫ ОНА ЗАНИМАЛА МЕНЬШИЙ ОБЪЕМ.
Существуют различные методы сжатия информации. Некоторые из них ориентированы на сжатие текстовых файлов, другие - графических, и т.д. Однако во всех них используется общая идея, заключающаяся в замене повторяющихся последовательностей бит более короткими кодами. Например, в романе Л.Н.Толстого "Война и мир" несколько миллионов слов, но большинство из них повторяется не один раз, а некоторые- до нескольких тысяч раз. Если все слова пронумеровать, текст можно хранить в виде последовательности чисел - по одному на слово, причем если повторяются слова, то повторяются и числа. Поэтому, такой текст (особенно очень большой, поскольку в нем чаще будут повторяться одни и те же слова) будет занимать меньше места.
Сжатие информации используют, если объем носителя информации недостаточен для хранения требуемого объема информации или информацию надо послать по электронной почте
Программы, используемые при сжатии отдельных файлов называются архиваторами. Эти программы часто позволяют достичь степени сжатия информации в несколько раз.
Первая часть пособия предназначена для изучения базовых приемов программирования. Она последовательно знакомит читателя с азами программистского искусства, начиная с простейших расчетов, состоящих из нескольких формул, и заканчивая применением циклов и массивов.
1. Алгоритм и программа
Написанию программы всегда предшествует разработка некоторого плана (алгоритма) решения задачи. Кратко опишем основные понятия теоретической информатики, связанные с алгоритмами.
1.1. Алгоритм
Алгоритм -- это однозначно определенная последовательность действий, записанная на понятном исполнителю алгоритмическом языке и определяющая процесс перехода от исходных данных к результату.
В этом определении уже указаны основные свойства алгоритма. Во-первых, алгоритм состоит из конечного набора инструкций или шагов, во-вторых, каждый шаг трактуется исполнителем единственным образом, что позволяет гарантированно получить решение для некоторого набора входных данных, в-третьих, алгоритм всегда сводится к некоторому преобразованию исходных данных в результат или результаты. В этом смысле формулы для решения квадратного уравнения или даже четко составленную инструкцию по варке кофе можно считать алгоритмами, выполнимыми исполнителем-человеком. Для машины, разумеется, требуется более четкая формализация задачи, чем для человека, понимать естественный язык компьютеры пока неспособны, отсюда необходимость учета при составлении алгоритма ограниченного набора инструкций ЭВМ.
1.2. Свойства алгоритма
Перечислим выделенные в п. 1.1 свойства алгоритма.
· Дискретность -- алгоритм состоит из отдельных инструкций (шагов).
· Однозначность -- каждый шаг понимается исполнителем единственным образом.
· Массовость -- алгоритм работает при меняющихся в некоторых пределах входных данных.
· Результативность -- за конечное число шагов достигается некоторый результат.
1.3. Формы записи алгоритма
Принято выделять 2 основных формы записи алгоритма.
Графическая форма записи (блок-схема) характерна тем, что отдельные шаги алгоритма изображаются геометрическими фигурами, а последовательность выполнения шагов -- связями между этими фигурами. На рис. 1.1 указаны основные элементы блок-схем.
Рис. 1.1. Основные элементы блок-схем
Указанные на рис. 1.1 геометрические фигуры интерпретируются так:
Прямоугольник -- любая последовательность действий; внутри прямоугольника записываются формулы или словесное описание выполняемых действий;
Ромб -- блок проверки условия; так как любое условие может быть только истинно или ложно, у блока 1 вход и 2 выхода, соответствующие действиям, выполняемым в случаях, когда условие истинно и когда оно ложно. Выходы подписывают символами "+" и "-", "да" и "нет", "1" и "0" и т. п.
Параллелограмм -- блок ввода исходных данных. Внутри фигуры обычно пишется, какие именно данные должны быть введены;
Закругленные прямоугольники -- необязательные блоки начала и конца программы, внутри блоков обычно указываются ключевые слова "нач" и "кон" соответственно;
Последняя фигура служит для изображения циклов, как правило, у нее 2 входа (первый и повторный вход в цикл) и 1 выход, соответствующий завершению циклического процесса.
На рис. 1.2 приведен пример блок-схемы, иллюстрирующей известный процесс решения квадратного уравнения.
Язык блок-схем довольно громоздок, как правило, он не применяется профессионалами, однако, на начальном этапе обучения программированию планирование несложных программ в виде блок-схем может оказаться весьма полезным.
Текстовая форма записи алгоритма (псевдокод) характерна тем, что шаги алгоритма и последовательность их выполнения задаются с помощью набора специальных ключевых слов. Эта форма ближе к реальным языкам программирования. Существует много различных вариантов псевдокода, например, в русскоязычной литературе по программированию распространен следующий вариант псевдокода:
· нач -- начало программы;
· кон -- конец программы;
· если . то . иначе -- проверка условия;
· ввод -- ввод данных;
· вывод -- вывод данных;
· для . от .. до . нц . кц -- цикл со счетчиком (нц -- начало цикла, кц -- конец);
· пока . нц . кц -- цикл с предусловием;
· нц . кц . пока -- цикл с постусловием.
Рис. 1.2. Блок-схема решения квадратного уравнения
Все алгоритмические конструкции, соответствующие ключевым словам псевдокода, будут изучены нами в этом пособии. Как правило, программисты используют элементы псевдокода при планировании частей своей будущей программы.
1.4. Программа и программное обеспечение
Программа -- это реализация алгоритма на конкретном языке программирования. Совокупность существующих программ образует программное обеспечение (ПО). ПО принято делить на 2 вида.
Системное ПО обеспечивает работу компьютера и внешних устройств, а также поддержку прикладных программ. Оно разрабатывается квалифицированными специалистами на машинно-ориентированных языках программирования, дающих доступ к аппаратуре компьютера. Примерами системного ПО могут служить операционная система Windows (или любая другая), драйверы внешних устройств компьютера, утилиты для его технического обслуживания, системы программирования, применяемые для разработки собственных приложений.
Прикладное ПО предназначено для решения конкретных задач пользователя. Оно разрабатывается на языках высокого уровня, облегчающих процесс программирования за счет множества готовых решений. К одному из таких языков относится и Паскаль, который мы будем изучать.
1.5. Этапы разработки программы
Разработка любой программы, от несложной учебной задачи до профессионального приложения, может быть разбита на ряд этапов. Кратко опишем и охарактеризуем их.
1. Определение входных и выходных данных, требований к программе.
На первом этапе определяются входные и выходные данные программы, способ ее взаимодействия (интерфейса) с пользователем, язык и среда программирования, в которой она будет разрабатываться, а также требования к аппаратному и системному программному обеспечению компьютеров, на которых будет работать приложение.
2. Разработка алгоритма.
На этом шаге производится определение последовательности действий, ведущих к решению задачи и запись их в одной из указанных в п. 1.3 форм.
3. Кодирование (программирование).
Третий этап -- это перевод алгоритма на язык программирования и создание исходного текста программы в одной из систем программирования. Программа на любом языке состоит из операторов -- так называются отдельные действия, разрешенные в языке. Число операторов в любом языке ограничено и правила их написания жестко заданы.
4. Компиляция и отладка.
Исходный текст на Паскале не будет непосредственно исполняться компьютером -- для работы программы ее требуется откомпилировать, т. е., перевести в машинный код. Эту работу выполняет специальная программа-компилятор или оболочка языка. Оболочка Паскаля, с помощью которой мы будем разрабатывать свои программы, называется Turbo Pascal 7.1, она разработана компанией Borland International в 1983-97 гг. В результате преобразования компилятором исходного текста программы в машинный код получается исполняемый файл с расширением exe , который можно запустить (выполнить) в той операционной системе (ОС), для которой разработан компилятор. Наша оболочка Паскаля создавалась для ОС MS - DOS , однако, в современных ОС семейства Windows программа, написанная на Паскале, работать все же будет, правда, без удобных интерфейсных возможностей Windows .
Итак, компиляция -- это процесс преобразования программы в машинный код. Программа, которую удалось откомпилировать, не обязательно работает правильно. Она может содержать ошибки, для выявления которых предназначен этап отладки -- поиска ошибок в программе. Как правило, компиляция и отладка выполняются программистом в тесной взаимосвязи.
Возможны программные ошибки трех видов:
· синтаксические (ошибки в правилах языка);
· алгоритмические (ошибки в логике программы);
· ошибки времени исполнения , возникающие в процессе работы запущенной программы.
Компилятор способен найти только синтаксические ошибки, для выявления же алгоритмических ошибок служит этап тестирования программы. Ошибки времени исполнения возникают как результат некорректных действий пользователя, недопустимых операций над данными (например, попытки извлечь квадратный корень из отрицательного числа, поделить на ноль) или ошибок программного и аппаратного обеспечения ЭВМ. Об их обработке будет рассказано в гл. 8.
Тестированием называют проверку правильности работы программы на наборах "пробных" (тестовых) данных с заранее известным результатом. Конечно же, тестирование всей программы сразу возможно лишь для несложных учебных задач. Реальные программы, как правило, тестируются "по частям" -- отдельными функциями и модулями.
6. Документирование и поддержка.
Этот этап включает в себя создание справочной системы и документации к программе, возможно, расширение ее функциональности, выпуск новых версий, исправление ошибок, которые практически неизбежны в любой сложной программной системе. В наших учебных задачах этап поддержки будет отсутствовать.
Читайте также: