Лекция 1. Основные понятия. Данные. Консольное приложение (1272448)
Текст из файла
1Воробьева И.А. «Информатика. Язык Паскаль»ВВЕДЕНИЕЯзык Паскаль создан швейцарским ученым Никлаусом Виртом примерно к1970-му году. Язык назван в честь французского математика, физика и философаБлеза Паскаля, который создал первую механическую машину, складывающую двачисла. Вирт, представляя язык, в качестве цели его создания указывал построениеязыка, способствующего хорошему стилю программирования, использующемуструктурное программирование и структурированные данные. Еще одинважный разработчик концепции структурного программирования, работавший сВиртом в одну пору – это нидерландский учёный Эдсгер Дейкстра.Паскаль – язык структурного программирования.
Что же это такое.Принципы структурного программированияБазовые принципы таковы: Преимущественное использование базовых алгоритмическихструктур: следование, развилка, цикл→ограниченноеиспользование операторов безусловного перехода, таких какGoto, Break, Continue, Exit. Метод нисходящего проектирования алгоритмов → см. ниже. Использование обозначений, соответствующих содержанию задачии облегчающих понимание программы → все имена сначалаописываются (объявляются), а потом используются.Обратим особое внимание на первый основополагающий пункт.
Историческистановление концепции структурного программирования можно описать тремявехами:классическая теорема Боэма и Джакопини (в 1966 г.) о структурномпрограммированииТеоремаБоэма-Джакопини —положениеструктурногопрограммирования, согласно которому любой исполняемый алгоритмможет быть преобразован к структурированному виду, то естьтакому виду, когда ход его выполнения определяется только припомощи трёх структур управления: следования, развилки и цикла.12Воробьева И.А. «Информатика.
Язык Паскаль»Эдсгер Дейкстра (в 1975 г.) развил серьезную критику относительнооператора безусловного перехода Goto, предложил отказаться от него,ограничившись тремя конструкциями - последовательность, выбор и цикл, исформулировал теорему о структурном программировании Для любой неструктурной программы существует эквивалентнаяей структурная программа. Две программы эквивалентны, если для любых входных данныхрезультаты их работы совпадают (выдают одинаковые выходныеданные, завершаются по одной и той же ошибке временивыполнения или зависают). Структурная программа состоит только из следующихконструкций:− следование (операторы присваивания и вызова процедуры);− ветвление (условный оператор);− повторение (оператор цикла). Для любой (не обязательно осмысленной!) программы соператорами Goto существует эквивалентная ей программа безоператоров Goto.Дональд Кнут (известный американский математик и программист,автор издательских систем TeX и METAFONT), в свою очередь,подверг критике утверждение Дейкстры и продемонстрировалслучаи, в которых оператор безусловного перехода оказывалсяполезным, например, выход из нескольких вложенных циклов.Существуют, как яростные противники оператора Goto, так ипрограммисты, считающие этот оператор полноправной инструкциейязыка.
Лично я, склонна согласиться с Кнутом и считаю следующееутверждение наиболее верным:«Структурное программирование - не самоцель, его основноеназначение - получение хорошей программы. Однако даже в самойхорошей программе операторы перехода требуются, например,при выходе из множества вложенных циклов».23Воробьева И.А. «Информатика. Язык Паскаль»Метод нисходящего проектирования алгоритмовМетод нисходящего проектирования алгоритмов включает следующиепункты: разделение задачи на связанные между собой подзадачи; алгоритм каждой подзадачи имеет один вход и один выход; разбиение на подзадачи отражает логику программы; алгоритм, устанавливающий связи между подзадачами, строится сиспользованием базовых алгоритмических структур; подзадачи автономны - кодируются как подпрограммы,преимущественно использующие локальные переменные.1.
ОСНОВНЫЕ ПОНЯТИЯ1.1. Спецификация1Спецификация – важная часть технической документации, которая содержитнабор требований и параметров к объекту (формальное определение требований кпрограмме, полная постановка задачи: определение исходных данных, формырезультата, исключительных ситуаций, особых реакций и т.п.). При выполнениилабораторных работ, под спецификацией часто понимают объединение этихтребований с отчетом, т.е.
кроме собственно спецификации туда включают:алгоритм, полный код программы или ее фрагмент, таблицу проведенных тестов.Возьмем типичную формулировку задачи, которую надо «решить» припомощи написания программы и рассмотрим, какие требуются уточнения дляполной постановки задачи.Задача 1. Даны n точек. Подсчитать среднее арифметическое тех точек,которые попадут в отрезок [-10; 5].1В общей энциклопедии этот термин означает перечисление подробностей, на которые необходимо обратить особоевнимание.34Воробьева И.А.
«Информатика. Язык Паскаль»Спецификация должна дать ответы на следующие вопросы:В этой задаче мы видим три типа обозначения данныхКаковы допустимыеодновременно: буквенное – «n», словесное «среднеесокращения,арифметическое» и числовое «[-10; 5]».
Уместнопереименования,привести все к единому виду. Число точек – n изменятьобозначения вне будем, так как это общепринятое понятноеформулировкеобозначение. Ведем «говорящее» сокращение Meanзадачи?(the arithmetic mean) для вычисляемого среднегоарифметического. Отрезок также можно обозначитьбуквами: [A; B], где A=-10, B=5. Максимальное значение n влияет на выбор типаКаков диапазон n?переменных (тип данных, переменных, рассмотримподробнее в п.
1.3). В программировании естьразница: придется складывать 10 чисел или 1035. Еслиже придется их перемножать, то влияние n станетгораздо существенней. Если мы допускаем, что n может быть равно нулю,тогда следует учесть и то, что это особая ситуация дляпрограммы, так как нет данных (точек) дляпроведения вычислений.Если речь в задаче об отрезке, то почти наверняка речьКакой тип данных уидет о вещественных числах, хотя это, строго говоря, неточек?обязательно.
Если точки есть вещественные числа, то скакой точностью они заданы, после запятой одинразряд или все десять? Даже если точки будут целые числа – их среднееКакой тип данных уарифметическое обязано иметь вещественный типMean?(например,).Каково его Предельные значения Mean напрямую зависят от n имаксимальное играниц отрезка:. Заметьте,минимальноечто все вычисления усложнятся, а количествозначение?вопросов увеличится, если отрезок будет задан непараметрами-константами,апараметрами-переменными [A; B] (забегая вперед –существенно увеличится и число необходимыхпроверочных тестов).А что, если ни однаточка не попадет взаданный отрезок?Тогда программа столкнется с еще однойособой ситуацией, когда алгоритм не можетотработать «в лоб» без ошибки, так как,пытаясь вычислить Mean, мы попытаемсяподелить на ноль.45Воробьева И.А.
«Информатика. Язык Паскаль»Каким образомзаданы точки? Откудамы их получаем? Естьли гарантия, что точкизаданы верно? Точки могут быть заданы, например, втекстовом файле или их вводят с клавиатуры,генерируют программой случайным образом,вычисляют программой на предыдущихэтапах, – вариантов много. Частоприходитсяпредусматриватьвозможность ошибки ввода, особенно, еслиспособ ввода предполагает участие человека(клавиатура, файл).В результате, мы получаем так называемую уточненную постановку задачи:Даны n целочисленных точек, где.
Подсчитать среднееарифметическое (Mean) тех точек, которые попадут в отрезок [A; B], гдеA=-10, B=5. Число n и значения точек (x,) вводить с клавиатуры.Результат работы программы вывести на экран:1. При нарушении диапазонов n и x вывести сообщение: «Нарушендиапазон входных данных». Завершить работу.2. Если ни одна точка не попадет в заданный отрезок вывестисообщение: «Нет точек на отрезке, величина Mean неподсчитана». Завершить работу.3. Вывести значение Mean = ____, где– этодиапазон и точность результата.Почти всегда начинающий программист использует только третий пункт вкачестве результата работы программы.
Более того, он и программу пишет так,будто первых двух пунктов не существует. Это неверный подход, так как, поизвестному выражению: «Ты суслика видишь? — Нет. — И я нет. А он есть!». Идаже есть определение для описанных ситуаций: Аномальная ситуация – вынужденное прерывание работыпрограммы из-за невозможности реализовать основной алгоритм наполученных данных, когда данные ошибочны (соответствует п. 1),не входят в диапазон разрешенных значений. Альтернативная ситуация – ветвление программы, зависящее отпромежуточного результата работы (соответствует п. 2), например,когда все входные данные верны (точки х из диапазона:),56Воробьева И.А.
«Информатика. Язык Паскаль»но попытка продолжить работу по основному алгоритму приведет кошибке (деление на ноль). Альтернативная ситуация не обязательнодолжна приводить к ошибке, это может быть просто отсутствие среди всехдопустимых объектов тех, которые удовлетворяют условиям дляпродолжения основного вычисления программы. Это, по сути, один извариантов решения задачи, а аномалия – ситуация, когда решение неопределено. Приведем еще пример: «подсчитать число K точек, иззаданных на отрезке [-5; 5] случайным образом n точек, попавших в отрезок[0; 1]». Решение в форме основного будет выглядеть, как: «Число искомыхточек равно <k>», гдеРешениев форме основного иальтернативного будет выглядеть:«Число искомых точек равно» для«Искомых точек на отрезкенет»для1.2. Алгоритм.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.