Лекция 1. Основные понятия. Данные. Консольное приложение (Воробьева И.А. - Информатика. Язык Паскаль), страница 2
Описание файла
Файл "Лекция 1. Основные понятия. Данные. Консольное приложение" внутри архива находится в папке "Воробьева И.А. - Информатика. Язык Паскаль". PDF-файл из архива "Воробьева И.А. - Информатика. Язык Паскаль", который расположен в категории "". Всё это находится в предмете "информатика" из 2 семестр, которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 2 страницы из PDF
Блок-схема{пропуск части материла}В блок-схемах (один из способов описания алгоритма) общепринятыследующие графические символы:Начало / завершениеВыполнение инструкций,действий, вычислений.Ввод исходных данных /Вывод результатаВыбор, принятиерешений, ветвление.С помощью организации связей между этими четырьмя типами символовможно описать любой алгоритм в программировании, однако частоприменяют еще два удобных символа, которые позже используем и мы:Блок выделенной локальнойподзадачи в схемеЦикл с t-шагом изn-числа шагов67Воробьева И.А.
«Информатика. Язык Паскаль»Пример.1.1. Построим блок-схему решения задачи: «Клиент заполняет поля формыпараметрами А и B. Параметру С присвоить значение большего из введенныхзначений А и B. Все параметры – целые числа».началоввод А, BДаНетA>B?С=AC=BконецЗамечание 1.2. Блок «Ввод А, В» скрывает одну из возможных подзадач длякаждой величины А и В: «Проверить, что вводимые в поля формы данные являютсяцелыми числами со знаком». Блок-схема такой проверки будет намного сложнееблок-схемы примера 1.1. Чтобы это показать достаточно привести пример 1.2.,который отражает только малую часть алгоритма проверки ввода: без циклов,правил преобразования «набора символов» в число, специальных буферов и т.п.Пример.1.2. Блок-схема «Реакция на нажатие клавиши клавиатуры»:началоДаклавиша «цифра»или «-» ?Нетклавиша«Backspace»?ДаНетклавиша«Enter»?Нетсимвол не вводитьконецстереть символДазафиксироватьпараметр78Воробьева И.А. «Информатика.
Язык Паскаль»В примерах 1.1 и 1.2 хорошо видно, что простая словесная инструкция водном алгоритме скрывает множество инструкций в другом, болеедетализированном; и такое вложение может повторяться, пока не дойдет доинструкций (операторов), которые нужно будет реализовывать при кодированииалгоритма на языке программирования. Это лучшая иллюстрация того факта, чтоалгоритм представляет из себя набор ключевых (укрупненных) действий, которыенеобходимо совершить для решения задачи. Подобное укрупнение облегчаетпонимание логики решения, позволяет избегать ошибок. И именно поэтомуразработка алгоритма является необходимым этапом написания программы прирешении большинства не элементарных задач.1.3. Данные. Классификация данныхЛюбая программа оперирует с данными (параметрами): получаетизвне, вычисляет в процессе работы, передает в качестве результата.
Впервую очередь их делят на классы по смыслу и типы по возможностямобработки (например, в программе).По смыслу данные делятся на: входные, выходные ипромежуточные(хранениепромежуточныхрезультатовпривычислениях, в процессе решения задачи).Условие задачи (ввод и инициализация): входные данные –они известны заранее в том смысле, что не получив их,алгоритм попросту не начнет решение задачи.Решениезадачи(алгоритмрешениязадачи):включаетрешениевнутреннихподзадач–входные + промежуточные данные.Вывод результата (сохранение): выходные данные.Важно научиться четко распределять смысловое значение данных, так какодна и та же переменная может относиться к разным классам данных взависимости от того по отношению к какой задаче мы ее рассматриваем: исходнойили внутренней подзадаче (вспомогательная задача основного алгоритма).Например, промежуточное данное внутри алгоритма решения основной задачиможет одновременно являться входным/выходным по отношению к выделенной внем подзадаче (вернитесь к примерам 1.1 и 1.2).Пример.1.3.
Любая знакомая из математики сложная функция вида.y=sin(z), где z=ln(x): x – входной параметр, y – выходной параметр, z=ln(x) –промежуточный для и входной для .89Воробьева И.А. «Информатика. Язык Паскаль»Входные данные задачи по смыслу могут являться и выходными для нееже. Например, если задача требует изменить заданный массив, по какому-то правилу, тогда измененный массив –будет результатом работы алгоритма и, следовательно, выходнымданным задачи.Рассмотрение данных с привязкой к языку ПаскальВо время работы программы, входные данные могут являться ивыходными в прямом смысле физического размещения информации,т.е.
переменная (специально выделенная ячейка памяти), котораясодержала первоначальное значение, после выполнения нужныхдействий может быть заполнена результирующим значением.Правомерна запись x:=sin(x), если первоначальное значение x непотребуется в дальнейшем. Это позволительно, так как порядоквыполнения оператора x:=sin(x) в Паскале определен так: сначалавыполнить выражение справа от знака операции присвоения “:=” итолько потом присвоить значение операнду слева.Таблица 1.1Полезно запомнить основные понятия в языках программирования и ихсинонимы: инструкция языка – оператор – директива (например, :=, if, do,for); параметр – аргумент – переменная (например, y:=sin(x) – здесьпараметры это x и y); операция – конструкция языка программирования, сходная сматематическими операциями (например, a+b, a/b, NOT a, a OR b –это операции сложения, деления и логические операции«отрицание» и «ИЛИ»); подобных конструкций в языкахпрограммирования гораздо больше, они описывают различныедействия над переменными; операнд – это объекты, над которыми или при помощи которыхвыполняются действия, задаваемые инструкциями или операциямив выражениях (например, a:=b; (a+b); 3 * 4; y:=sin(x) – здесьоперанды a, b, 3, 4, y и sin(x)).910Воробьева И.А.
«Информатика. Язык Паскаль»В языке Паскаль с любой величиной связаны характеристики: имя – это идентификатор, связывающий величину с физическойячейкой памяти, где будет храниться ее значение; тип – определяет множества допустимых значений переменнойи операций над ней; значение (рассмотрим подробнее в следующем разделе): переменное – эта характеристика может изменяться во времяработы программы (в Паскале называется «переменная» иобозначается «var»); постоянное – полученное значение не изменяется на всемпротяжении работы программы (в Паскале называется«константа» и обозначается «const»).Что касается имени переменной (или константы), можно датьосновные рекомендации:− не экономьте на именах, старайтесь давать имена, которыеуказывают о назначении переменной, например, Count – длясчетчика, Num – для номера, Sum – для суммы.
Можно даватьдлинные имена, например, Name_Client_Node3 – для строковойпеременной, хранящей «имя клиента телефонного узла №3».Придумывать имена бывает довольно сложно, но надозапомнить правило – если сэкономишь время на именованиипеременных, потеряешь гораздо больше и времени, и сил, когдапридется вернуться к программе через некоторый период (вцелях ее доработки, модификации). Еще сложнее, если придетсяиметь дело с подобными «экономными программистами» присовместной разработке программных продуктов в команде.− допустимо использовать краткие обозначения, принятые вматематике: A, B, C – для массивов и матриц; x, y, z – длякоординат плоскости или аргументов функций; n, m – дляобозначения размерности массивов;− язык Паскаль не различает регистров в именах ( sUm и SUM вПаскале – это одно и то же), но есть и языки, чувствительные крегистру (С, Java, Perl), поэтому лучше сразу приучать себя ксоблюдению единообразия.1011Воробьева И.А.
«Информатика. Язык Паскаль»Основные базовые типы переменных в Паскале: целые со знаком(integer), целые без знака (byte), вещественные (real), символьные (char),строковые (string), логические (boolean). Тип переменной определяетдиапазон допустимых значений, принимаемых величинами этого типа;набор операций, допустимых над данной величиной и объем памяти,отводимой под эту переменную.Целых, вещественных, а на текущий момент даже строковых и символьныхтипов, на самом деле гораздо больше. В качестве примера, приведем некоторые издоступных типов в среде программирования Delphi, которая поддерживаетпрограммирование на языке Паскаль2:Таблица 1.2Длина,байтЦЕЛЫЕ ТИПЫsmallint2Диапазон значенийОперации–32768..32767+, –, /, *, Div, Mod,>=, <=, =, <>, <, >+, –, /, *, Div, Mod,>=, <=, =, <>, <, >+, –, /, *, Div, Mod,word20..65535>=, <=, =, <>, <, >+, –, /, *, Div, Mod,shortint1–128..127>=, <=, =, <>, <, >longint=+, –, /, *, Div, Mod,4–2147483648..2147483647integer>=, <=, =, <>, <, >–+, –, /, *, Div, Mod,Int6489223372036854775808..9223372036854775807 >=, <=, =, <>, <, >ВЕЩЕСТВЕННЫЕ ТИПЫ+, –, /, *, >=, <=, =,single41,5*10–45 — 3,481038, (7-8 знач.цифр)<>, <, >double=+, –, /, *, >=, <=, =,85*10–324 — 1,7*10308 , (15-16 знач.цифр)real<>, <, >+, –, /, *, >=, <=, =,extended103,4*10–4932 — 1,1*104932, (19-20 знач.цифр)<>, <, >byte10..2552Поддерживаемые типы, их обозначение и диапазоны нужно сверять в справочной системе той среды разработкипрограмм, в которой вы работаете; также есть зависимость количества выделяемых байт под переменную отразрядности операционной системы, например, 32-разряда или 64-разряда.1112Воробьева И.А.
«Информатика. Язык Паскаль»ЛОГИЧЕСКИЙ ТИПboolean1Not, And, Or, Xor,>=, <=, =, <>, <, >true, falseСИМВОЛЬНЫЙ ТИПAnsiChar=все символы кодировки ASCII3, которым1charсоответствуют числа от 0 до 255СТРОКОВЫЙ ТИПот 0 до массив символов типа char, где в нулевомstring255байте хранится реальная длина строкиDiv – целочисленное деление: результат целоебез дробной части (она отбрасывается, а неокругляется)25 Div 5 результат равен 524 Div 5 результат равен 421 Div 5 результат равен 4+, >=, <=, =, <>, <, >+, >=, <=, =, <>, <, >Mod – остаток отцелочисленного деления25 Mod 5 результат равен 024 Mod 5 результат равен 421 Mod 5 результат равен 1Замечание 1.3. Операции Not, And, Or и Xor определены также для целых типов,они работают поразрядно в двоичной записи целого числа в отведенных, подцелый тип байтах.
Например, еслипеременные целого беззнаковоготипа byte, тогда:.Замечание 1.4.Обратите внимание на возможную ошибкуиспользования операции деления «/», когда она приводит к совершенноразному результату для целых и вещественных типов:var− z1, z2 будут равны 1.0, так как сначалаz1, z2, z3, z4:вычисляется выражение справа (а в нем всеreal;числа целые) и только потом присваиваетсяA: integer;переменной z1 (z2);…a:=3;− z3, z4 будут равны 1.5;z1:= A/2;z2 := 3/2;− чтобы гарантированно избежать ошибки в…разных компиляторах, надежнее использоватьz3:= (real)A/2;запись, как она указана для переменных z3, z4.z4 := 3.0/2.0;…3https://ru.wikipedia.org/wiki/ASCII1213Воробьева И.А.
«Информатика. Язык Паскаль»1.4. Данные. Диапазоны данныхОпределение диапазонов для входных данных и вычисление для выходных –еще одно важное умение, которое начинающие программисты недооценивают илиигнорируют. В задаче 1 уже был затронут вопрос выбора типов и диапазонов. Изтаблицы 1.1 также видно, что выбор типа данных может быть обоснован не толькосмысловой нагрузкой задачи, но и предельными диапазонами исходныхпараметров.В практических задачах на исходные данные накладываются естественныеограничения.