Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Программирование линейных алгоритмов
Линейным алгоритмом называют такую алгоритмическую конструкцию, которая реализована в виде последовательности действий, причем каждое действие выполняется один раз. Чаще всего линейные программы создают и используют для вычисления значений выражений, заданных формулами. Раздел операторов линейной программы формируется из операторов присваивания и вызова процедур, которые выполняются в том порядке, в котором встречаются в тексте программы. Не забывайте, операторы отделяются друг от друга точкой с запятой! 1.3.1 Операторы языка программирования Pascal Все операторы языка Pascal можно подразделить на простые (присваивания, вызова процедуры, безусловного перехода, пустой) и структурированные (составной, условия, выбора, повтора). Оператор присваивания.Формат оператора: <имя переменной> := <выражение> Принцип действия: вычисляется выражение, находящееся в правой части оператора, и его значение присваивается переменной в его левой части. Тип выражения в правой части оператора присваивания и переменной в левой его части должны быть совместимы по типу. Например, недопустимо присваивать вещественное число переменной целого или символьного типа. Если в правой части − алгебраическое выражение, то оно может содержать переменные и константы как целого, так и вещественного типа. При этом тип результата будет вещественным. Пример 1. Соответствие и несовместимость типов данных в выражениях с оператором присваивания. Program types; Var x : real; n : integer; ch : char; st : string; Begin n:=5; x:=n; {правильно, вещественной переменной присваивается целое значение} n:=3.4; {ошибка, целой переменной присваивается вещественное значение} n:=4/2; {ошибка, результат операции деления всегда вещественного типа} n:=cos(x); {ошибка, результатом вычисления функции косинус является вещественное число} ch:=’a’; st:=ch; {правильно, строковой переменной присваивается символьное значение} ch:=’Pascal’; {ошибка, символьной переменной присваивается строковое значение} n:=ch; {ошибка, целой переменной присваивается символьное значение} End. Процедуры ввода-вывода. Ввод данных с клавиатуры во время работы программы реализуется с помощью обращений к процедурам: read(список переменных, перечисленных через запятую) readln(список переменных, перечисленных через запятую) Принцип действия: выполнение программы приостанавливается, и компьютерная система переходит в режим ожидания (отображается мигающий курсор) ввода пользователем значения переменной или значений переменных. При использовании в программе процедуры ввода read пользователь должен вводить значения переменных, отделяя их пробелом, а при использовании процедуры ввода readln после ввода каждого значения переменной необходимо нажать клавишу Enter. После ввода пользователем значений всех указанных в списке процедуры ввода переменных выполнение программы возобновляется, а введенные значения присваиваются этим переменным. Для вывода информации (сообщений или результатов работы программы) используют обращение к процедурам: write(список переменных, констант, выражений через запятую) writeln(список переменных, констант, выражений через запятую) Например, при обращении к процедуре writeln('x=',x,' sin x =',sin(x)) выводятся последовательно строковая константа из двух символов x= (без кавычек и апострофов), значение переменной x, строковая константа sin x = (без кавычек и апострофов, первый символ пробел) и вычисленное значение выражения sin(x). Принцип действия: значения констант, переменных и выражений выводятся на экран (в файл, на печать), причем при использовании в программе процедуры write курсор остается в конце текущей строки, и следующие выходные данные будут печататься в той же строке, а при использовании процедуры writeln курсор переходит на новую строку. Примечание− Вызов процедуры writeln без параметров используется для перехода на новую строку или для пропуска строки. Процедуры write и writeln предоставляют возможность форматирования выходных данных, т. е. представления результатов в удобном для пользователя виде (F-формат, формат с фиксированной точкой). Минимальное количество позиций, которое должно занимать при выводе значение целого или строкового типа указывается форматом :n, например: writeln(k:5)– для отображения переменной k целого или строкового типа при выводе выделяется 5 позиций; writeln(a,' ':3,b)– значения переменных a и b при выводе разделяются тремя пробелами. Количество позиций, отводимое при выводе для вещественного числа, указывается форматом :n:m, где n − общее число позиций, m − число позиций для дробной части, например: writeln(y:6:2) − для отображения вещественной переменной у при выводе отводится 6 позиций, из них 2 − после десятичной точки, причем одну позицию занимает символ точка, т. е. значение y = 23.17445 будет выведено как 23.17 с пробелом впереди числа. Форматирование результатов не является обязательным. Но тогда для данных целого типа при выводе выделяется 15 позиций, а для данных вещественного типа − 18 позиций, что часто бывает чрезмерным. При этом вещественные числа представляются в E-формате (другими словами, в экспоненциальной форме, формате с плавающей точкой, в виде мантиссы и порядка), например: −3.456000000E+02 Такие числа иногда трудны для восприятия и могут сливаться друг с другом, что является недочетом, иногда приводящим к неправильному толкованию результата. Поэтому рекомендуется не только форматировать результаты при выводе, но и отделять значения выводимых переменных и выражений пробелами. Например, при выводе значения переменной p = 2,74 и выражения y, зависящего от p (получено значение y = 16,570824), есть несколько способов, представленных в таблице 6. Таблица 6 − Форматирование выходных данных в языке Pascal
Составной оператор объединяет в одно целое группу операторов, которые после этого могут считаться одним оператором. Свое применение он находит в структурированных операторах ветвления и цикла. Составной оператор начинается зарезервированным словомbegin, затем следуют операторы, перечисленные через точку с запятой, и оканчивается зарезервированным словом end. Пара служебных (ключевых) слов beginиendназывается операторными скобками. Составной оператор может включать другой составной оператор, причем следует помнить о правильном вложении пар операторных скобок, например: Оператор безусловного перехода.Операторы в программе выполняются в том порядке, в котором они записаны. Чтобы изменить последовательность выполнения операторов, необходимо использовать оператор безусловного переходаgoto, действие которого состоит в передаче управления оператору, снабженному меткой, который может находиться в любой строке раздела операторов программы. Формат оператора безусловного перехода: goto<метка> Метку можно установить перед любым оператором основной программы (кроме операторов в составе составного), отделив её двоеточием: <метка> : <оператор> В качестве метки можно использовать как имя, предложенное пользователем, так и число от 0 до 9999. Все метки, встречающиеся в программе, надо предварительно указать в разделе описаний после зарезервированного слова Label (см. структуру простейшей программы на языке Pascal): Label <список меток>; Оператор безусловного перехода рекомендуется использовать только для обработки исключений (аварийных ситуаций, ошибок). |
||||||||||
Последнее изменение этой страницы: 2018-05-10; просмотров: 211. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |