Лекция 2011_Физика.ppt
- Количество слайдов: 110
Основы программирования (Конспект лекций) Ефремова Светлана Алексеевна 2012
Литература 1. 2. 3. 4. Культин Н. Б. Программирование в Turbo Pascal 7. 0 и Delphi – БХВ-Санкт-Петербург, СПб, 1999. Рапаков Г. Г. , Ржеуцкая С. Ю. Turbo Pascal для студентов и школьников - БХВ-Санкт. Петербург, СПб, 2005. Фаронов В. В. Турбо Паскаль. Начальный курс – ОМД групп, М. , 2003. Немнюгин С. А. Turbo Pascal – Питер, СПб, 2000
5. 6. 7. Культин Н. Б. Turbo Pascal в задачах и примерах - БХВ-Санкт-Петербург, СПб, 2000. Еремеев С. Н. , Шарин Е. П. , Яковлев Б. В. Основы программирования на языке Паскаль Якутск, 2008 Васильев П. П. Турбо. Паскаль в примерах и задачах – Москва «Финансы и статистика» , 2003
Алфавит языка n Алфавит включает: q Заглавные и строчные латинские буквы и символ подчеркивания ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz _ знак подчеркивания
q Цифры 0123456789
q Специальные символы + плюс – минус * звездочка / дробная черта (слэш) > больше < меньше = равно : двоеточие ; точка с запятой пробел ' апостроф , запятая. точка ^ крышка @ коммерческое а (эт) $ знак доллара # номер [ ] квадратные скобки { } фигурные скобки ( ) круглые скобки
Символы алфавита служат для построения: n n n идентификаторов служебных слов знаков операций разделителей комментариев
Идентификаторы Имена, даваемые программным объектам (константам, типам, переменным, функциям и процедурам, да и всей программе целиком) называются идентификаторами. Каждый объект программы должен иметь уникальный идентификатор. Вы можете давать программным объектам любые имена, но необходимо, чтобы они отличались от зарезервированных слов языка Паскаль, потому что компилятор все равно не примет переменные с "чужими" именами.
Идентификаторы Имена могут включать • латинские буквы (A-Z) заглавные и строчные буквы не различаются • цифры имя не может начинаться с цифры • знак подчеркивания _ Имена НЕ могут включать • русские буквы • пробелы • скобки, знаки +, =, !, ? и др.
Служебные слова (зарезервированные) n Служебные слова – это набор зарезервированных слов, смысл которых определен в языке
Служебные слова ABSOLUTE AND ARRAY ASM ASSEMBLER BEGIN CASE CONSTRUCTOR DESTRUCTOR DIV DO DOWNTO ELSE END EXTERNAL FAR FILE FORWARD FUNCTION GOTO IF IMPLEMENTATION IN INHERITED INLINE INTERFACE INTERRUPT LABEL MOD NEAR NIL NOT OBJECT OF OR PACKED PRIVATE PROCEDURE PROGRAM PUBLIC RECORD REPEAT SET SHL SHR STRING THEN TO TYPE UNIT UNTIL USES VAR VIRTUAL WHILE WITH XOR
Разделители формируются из одного или нескольких символов специальных символов и предназначены для наглядности программы
Знаки операций образуются из одного или нескольких специальных символов
Комментарии n Комментарии – это пояснения к программе, которые не меняют смысл программы.
Из чего состоит программа? Константа – постоянная величина, имеющая имя. Переменная – изменяющаяся величина, имеющая имя (ячейка памяти). Выражение состоит из констант, переменных, указателей функций, знаков операций и скобок и служит для задания правила вычисления некоторого значения. Комментарий – строка (или несколько строк) из произвольных символов, заключенная в фигурные скобки. Оператор – неделимый элемент программы, который позволяет выполнять определенные алгоритмические действия.
Из чего состоит программа? Процедура – вспомогательный алгоритм, описывающий некоторые действия (вычисление какой-либо функции). Функция – вспомогательный алгоритм для выполнения вычислений (вычисление квадратного корня, вычисление факториала).
Константы Константа - это объект, значение которого известно еще до начала работы программы. • необходимы для оформления наглядных программ, • незаменимы при использовании в тексте программы многократно повторяемых значений, • удобны в случае необходимости изменения этих значений сразу во всей программе.
n n целые константы: вещественные константы( Real ); логические (или булевские) константы (Boolean); символьные (или литерные) константы (Char);
Пример описания констант Вещественное число Целое число Строка символов Логическая константа
Целые константы - это целые числа без десятичной точки, которым может предшествовать знак «-» или «+» . Пример: 2; -3000; +35; Можно использовать целую константу в шестнадцатеричном виде. Шестнадцатеричное число состоит из шестнадцатеричных цифр(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F) , которым предшествует знак доллара $ Пример: $1 FF $10 A
Вещественные константы могут быть представлены в двух видах: с фиксированной и плавающей точкой Константа с фиксированной точкой – это число, содержащее точку, разделяющую целую и дробную часть Пример: -12. 0; 0. 001 Константа с плавающей точкой – это число, представленное с десятичным порядком: m. Ep (без пробелов). Здесь m – мантисса (как целые, так и вещественные числа с фиксированной точкой); n Е – признак записи числа с десятичным порядком; n р – порядок числа (только целые числа) Пример: -7. 78 E-3; 4. 9 E 5; -0. 785 E 02 n 3. 14 =>3. 14 E+00 n 3. 14=>0. 314 E+01 n 3. 14=>31. 4 -01
Логические константы могут принимать только два значения: True (истина) и False (ложь) Символьные константы последовательность заключенная в апострофы. Пример: 'ABC'; 'LAB'; 'EKVFR' это символов,
Формат описания констант: Const <идентификатор>=<значение константы>; Здесь <идентификатор> (имя) должен начинаться с буквы и может содержать буквы (латинские), цифры и знак подчеркивания
Пример описания констант
Переменные Переменная – это величина, имеющая имя, тип данных и значение. Значение переменной можно изменять во время работы программы. Тип данных - это характеристика диапазона значений, которые может принимать переменная, относящиеся к этому типу данных. Наиболее часто применяемые типы переменных: • integer { целая } • real { вещественная } • char { один символ } • string { символьная строка } • boolean { логическая }
Описание переменных Переменные могут менять свои значения в процессе выполнения программы Каждая переменная принадлежит к определенному типу данных. Это означает, что тип переменной задается при ее описании и не может быть изменен.
Формат описания переменных: Var <идентификатор 1, …, идентификатор N>: <тип>; Пример: Описание переменных целого, вещественного и логического типов Описание констант Описание переменных
Комментарии Комментарий представляет собой пояснительный текст, который можно записывать в любом месте программы, где разрешен пробел. Текст комментария ограничен символами { и } или (* и *). Может содержать любые комбинации латинских и русских букв, цифр и других символов алфавита языка Паскаль.
Типы данных и операции
Компиляторы языка Паскаль требуют, чтобы сведения об объеме памяти, необходимой для работы программы, были предоставлены до начала ее работы. Кроме того, необходимо также сообщить компилятору, сколько памяти каждая из этих переменных будет занимать. Все это можно сообщить программе, просто указав тип будущей переменной. Имея информацию о типе переменной, компилятор "понимает", сколько байт необходимо отвести под нее, какие действия с ней можно производить и в каких конструкциях она может участвовать.
Тип данных определяет: возможные значения переменных, констант, функций, выражений, принадлежащих к данному типу; внутреннюю форму представления данных в ЭВМ; операции и функции, которые могут выполняться над величинами, принадлежащими к данному типу.
Классификация типов данных Для удобства программистов существует множество стандартных типов данных и плюс к тому возможность создавать новые типы. Конструируя новые типы данных на основе уже имеющихся (стандартных или опять-таки определенных самим программистом), нужно помнить, что любое здание должно строиться на хорошем фундаменте. Поэтому сейчас мы и поговорим об этом "фундаменте". На основании базовых типов данных строятся все остальные типы языка Паскаль, которые так и называются: конструируемые.
Классификация типов данных Типы данных Скалярные Стандартные Структурированные Типы, определяемые пользователем Целый Вещественный Символьный Массивы Множества Записи Перечисляемый Файлы Интервальный Логический Адресный базовые типы конструируемые типы
Формат описания типа Типы данных, конструируемые программистом, описываются в разделе type по следующему шаблону: Type <Имя типа> = <описание типа>;
Целочисленные типы данных Целочисленные типы определяют константы, переменные и функции, значения которых реализуются множеством целых чисел. Тип данных BYTE Допустимые значения : от 0 до 255 Формат хранения в оперативной памяти: 1 байт без знаком Тип данных WORD Допустимые значения : от 0 до 65535 Формат хранения в оперативной памяти: 2 байт без знаком Тип данных SHORTINT Допустимые значения : от -128 до 127 Формат хранения в оперативной памяти: 1 байт со знаком
Целочисленные типы данных Тип данных INTEGER Допустимые значения : от -32768 до 32767 Формат хранения в оперативной памяти: 2 байт со знаком Тип данных LONGINT Допустимые значения : от -2147483648 до 2147483647 Формат хранения в оперативной памяти: 4 байт со знаком
Над целочисленными операндами выполняются арифметические операции, операции отношения. Арифметические операции + сложение, – вычитание, * умножение, MOD и DIV целочисленное деление: MOD – остаток от деления операндов DIV – целая часть частного. Результат выполнения операции является величиной целого типа. 21 Div 4 = 5 21 MOD 5 = 1 4 DIV 8 = 0 4 mod 8 = 4 (-2 mod 5)= -2
Операции отношения (сравнения) = равенство, < меньше, <= меньше или равно, <> неравенство, > больше, >= больше или равно Результат выполнения операции является величиной логического типа (True или False).
Вещественные типы данных Вещественные типы определяют константы, переменные и функции, значения которых реализуются множеством действительных (вещественных) чисел. Вещественный тип данных REAL Допустимые значения: от 2. 9 e– 39 до 1. 7 e+38 Пример: 5. 567 58 e– 3 1. 76 e+8 1. 0 Формат хранения в оперативной памяти: 6 байт, в том числе 11 цифр для мантисс Вещественный тип данных SINGLE Допустимые значения: от 1. 5 e– 45 до 3. 4 e+38 Формат хранения в оперативной памяти: 4 байта, в том числе 7 цифр для мантиссы
Вещественный тип данных DOUBLE Допустимые значения: от 5. 0 e– 324 до 1. 7 e+308 Формат хранения в оперативной памяти: 8 байт, в том числе 15 цифр для мантиссы Вещественный тип данных EXTENDED Допустимые значения: от 3. 4 e– 4932 до 1. 1 e+4932 Формат хранения в оперативной памяти: 10 байт, в том числе 19 цифр для мантиссы Вещественный тип данных EXTENDED Допустимые значения: от – 9. 2 e+18 до 9. 2 e+18 Формат хранения в оперативной памяти: 8 байт, в том числе 19 цифр для мантиссы
Вещественные типы данных Над вещественными операндами выполняются арифметические операции, операции отношения. Арифметические операции + сложение, – вычитание, * умножение, / деление. Результат выполнения операции является величиной вещественного типа. 3. 0+7. 51 6. 2– 10/33 5. 23*(– 10. 1 E 2) 21. 2/(11. 21 E– 2
Операции отношения (сравнения) = равенство < меньше <= меньше или равно <> неравенство > больше >= больше или равно Результат выполнения операции является величиной логического типа (True или False).
Логический тип данных BOOLEAN Данные, которые могут принимать логические значения True и False. Логические операции Not – логическое отрицание And – логическое И (конъюнкция) Or – логическое ИЛИ (дизъюнкция) Xor – логическое исключающее ИЛИ Таблицы истинности для операций: А В Not А А And В А Or В А Xor В False True False True False True True False
Операции отношения (сравнения) Логический тип определен таким образом, что True < False. Это позволяет применять к булевским операндам все операции сравнения: = равенство, <> неравенство, < меньше, > больше, <= меньше или равно, >= больше или равно
Символы Символьный тип данных CHAR Допустимые значения: один символ из кодовой таблицы (256 символов кода ASCII) Пример: а, d, c, {, ) Формат хранения в оперативной памяти: 1 байт Применимы все операции отношения, функции преобразования типов Ord() и Chr(), функции, которые определяют предыдущий и последующий символы Pred() и Succ().
46 Строковый тип данных STRING Строка типа String – это цепочка символов типа Char. String используется для хранения текстовых сообщений. Допустимые значения: любой текст длинной не более 255 символов Пример: город Якутск Формат хранения в оперативной памяти: 1 байт на каждый символ строки + 1 байт под длину строки © С. В. Кухта, 2009
Арифметические операции Операция сложения (+) n Операция вычитания (-) n Операция умножения (*) n Операция деления нацело (div) (14 div 3 = 4, 5 div 8 = 0) n Операция взятия остатка от деления (mod) (14 mod 3 = 2, 5 div 8 = 5) Операции отношения (=, <>, >, <, >=, <=) n
Вещественные типы изображаются двумя способами с фиксированной точкой n с плавающей точкой n
Числа с фиксированной точкой : Целая часть от дробной отделяется с помощью точки (4. 243, -0. 012, 600. 9) Числа с плавающей точкой : Запись числа состоит из двух элементов – мантиссы и порядка, между ними ставится символ Е (2. 8*109=2. 8 Е 9, -0. 1*10 -5=-0. 1 Е-5)
Арифметические операции n n Операция сложения (+) Операция вычитания (-) Операция умножения (*) Операция деления (/) Операции отношения (=, <>, >, <, >=, <=)
Результат типа после выполнения операций над данными целого и вещественного типа a b a+b a-b a*b a/b целое целое вещест вещест вещест вещест вещест
Функции преобразования типов n n Trunc(x) – отбрасывания вещественной части х, x-вещественное значение (trunc(5. 67)=5) Round(x) – операция округления вещественного числа х до ближайшего целого (round(5. 67)=6; round(5. 47)=5)
Арифметические выражения n строятся из числовых констант, переменных, стандартных функций и операций над ними. В арифметическом выражении принят следующий приоритет операций: n - вычисление значений стандартных функций; n - умножение и деление; n - сложение и вычитание. Порядок выполнения операций изменяются с помощью скобок.
n n n В языке Паскаль заданы стандартные функции для вычисления трех тригонометрических функций. Для вычисления остальных необходимо использовать известные математические соотношения, например: arcsinx=arctg(x/(1 -x 2 )1/2) arccosx= /2 -arcsinx arcctgx= /2 -arctgx Для вычисления логарифма с основанием а используются соотношение Logax=Lnx/lna Возведение х в степень а (y=xa , x≥ 0)осуществляется с использованием стандартных функций y=exp(a*ln(x))
Оператор присваивания Общий вид оператора присваивания имеет вид: <Имя> : = <Выражение>; Здесь <имя> – имя переменной, <выражение> – арифметическое или логическое выражение. Пример:
Ограниченные типы образуются из простых путем сужения их области допустимых значений. Для этого нужно задать максимальное и минимальное значения Пример:
Перечислимые типы задаются в виде перечисления. Пример:
Составной оператор – это группа операторов, выполняемых последовательно. Это группа операторов заключаются между Begin и End. Пример:
ПРОЦЕДУРЫ ВВОДА И ВЫВОДА ДАННЫХ
ПРОЦЕДУРЫ ВВОДА ДАННЫХ Для вызова процедуры ввода используются операторы Read, Read. Ln, которые обеспечивают ввод числовых данных, символов, строк и т. д. для последующей их обработки программой. Формат процедуры ввода: Read (x 1, x 2, …x. N) или Read(FV, x 1, x 2, …x. N); где x 1, x 2, …x. N – переменные допустимых типов данных, FV – переменная, связанная с файлом, откуда будет производиться чтение данных.
Процедуры вывода Для вывода используются операторы Write и Writeln, которые производят вывод числовых данных, символов, строк и булевских значений. Формат процедуры вывода: Write(x 1, x 2, …x. N); или Write(F, x 1, x 2, …x. N); где x 1, x 2, …x. N – выражения типа Integer, Real, Byte, Char и т. д. , F – переменная, связанная с файлом, куда будет производиться вывод.
Пример:
Форматы вывода данных
Бесформатный вывод Целые, символьные и логические типы данных – выводятся начиная с позиции курсора.
Пример: Рассмотрим пример вывода переменных целого, строкового и булевского типов
Вещественные данные – выводятся в поле шириной 17 позиций в формате с плавающей точкой. Дробная часть мантиссы содержит 10 цифр. Пример:
Форматный вывод Общий вид форматного вывода имеет форму Р : М; Здесь – Р – имя переменной; М – ширина поля вывода в позициях. Целые – выводятся в первые крайние позиции поля шириной М.
Пример: Рассмотрим вывод переменных целого типа
Вывод вещественных переменных Пример:
Пример выполнения Лабораторной работы № 1 Вычислить значения выражений W=lg|x 7|+(y-cos(x/y) Z=1/4 -(1/4)sin(5 /2 -8 )
Структура программы
Любая программа на языке Паскаль состоит из: n n n n - заголовка - раздела модулей; - раздела описания меток; - раздела описания констант; - раздела описания типов; - раздела описания переменных; - раздела описания процедур и функций; - раздела операторов;
В разделе модулей подключаются библиотечные модули из стандартного набора Турбо Паскаля или написанные самим пользователем. Этот раздел должен стоять перед прочими разделами и начинается со служебного слова Uses. Пример:
Раздел описания меток Разделов Label может быть несколько, и стоять они могут где угодно до начала основного блока. Общая форма записи: Label <список меток>; Пример:
Пример использования меток
Раздел описания типов В разделе описания типов описываются типы переменных, отличающиеся от стандартных, т. е. перечисляемые, интервальные, массивы, записи и т. д.
Раздел операторов – это собственно программа, использующая все, что было описано и объявлено. Он обязательно начинается словом Begin и заканчивается End с точкой.
Условный оператор Многие наши действия зависят от выполнения тех или иных условий. В математике часто встречаются следующие определенные функции
Структура оператора условного перехода IF <условие> then begin {операторы, выполняемые, если условие истинно} end else begin {операторы, выполняемые, если условие ложно} end;
Оператор IF выполняется следующим образом: n n Вычисляется значение выражения условия (выражение логического типа) Если значение выражения условия равно TRUE, то выполняются операторы, следующие за словом THEN. Если значение выражения условия равно FALSE, то выполняются инструкции, следующие за словом ELSE.
Если какое-либо действие нужно совершить только при выполнении условия, оператор IF может записан так: IF <условие> then begin {операторы, выполняемые, если условие истинно} end;
Пример выполнения Лабораторной работы № 2 Вычислить значения выражения
FIO 1 Ввод a, b, c, x x<0 в<>0 нет да f=a*x*x+b x>0 в=0 да f=(a-x)/(x-c) Вывод f Конец f=x/c нет
Пример прогаммы
Циклические вычислительные процессы В языке Паскаль имеются три вида операторов цикла: n While – оператор цикла с предварительным условием; n Repeat – оператор цикла с последующим условием; n For – оператор цикла с параметром.
Оператор цикла WHILE Оператор While используется в программе, если надо провести некоторые повторные вычисления, однако число повторов заранее неизвестно и определяется самим ходом вычисления. В общем виде оператор имеет вид: While <условие> do begin {последовательность операторов} end;
Работает этот оператор следующим образом: предварительно проверяется значение логического выражения. Пока оно истинно, выполняется оператор тела цикла (после do). Как только оно становится ложным, происходит выход из цикла.
Пример выполнения Лабораторной работы № 3 Составить программу вычисления и вывода на печать таблицы значений функции y(х)=exp(-x) при а<=x<=b с шагом dx. Здесь а=0; b=10; dx=1. 0.
Оператор REPEAT n Общий вид оператора: Repeat {последовательность операторов} Until <условие>;
Работает оператор цикла REPEAT следующим образом: выполняются операторы циклической части, проверяется значение условия: если оно ложно, то вновь выполняются операторы циклической части; если же оно истинно, то цикл заканчивается. Если значение условия истинно с самого начала, то операторы циклической части выполняются один раз. Если же условие никогда не принимает значение «истинно» , то операторы тела цикла выполняются бесконечное число раз, т. е. происходит зацикливание.
Оператор цикла FOR n В общем виде оператор выглядит так: For <счетчик цикла> : = N 1 To N 2 do Begin {последовательность операторов} End; Здесь N 1, N 2 -начальное и конечное значения счетчика цикла.
Пример выполнения Лабораторной работы № 3 Используя оператор цикла FOR составить программу вычисления и вывода на печать таблицы значений функции y(х)=exp(-x) при а<=x<=b с шагом dx. Здесь а=0; b=10; dx=1. 0.
Пример выполнения Лабораторной работы № 4 n Составить программу вычисления суммы ряда. Здесь х=0. 1 e=10 -7
МАССИВЫ
n Массив - это структура данных, которую можно рассматривать как совокупность переменных одинакового типа, имеющих имя. Массивы относятся к сложным типам данных. Имена массивов образуется также, как и имена простых переменных. Каждый элемент массива определяется своим индексом, по которому к нему осуществляется доступ.
Формат объявление одномерного массива Type <имя> = array[нижний индекс. . верхний индекс] оf <тип>; или Var <имя массива>: array[нижний индекс. . верхний индекс] оf <тип>; Здесь <имя> – имя переменной –массива; array –ключевое слово; нижний индекс. . верхний индекс – целые числа, определяющие диапазон изменения индексов элементов массива.
Описание многомерных массивов Type <имя> = array[нижний индекс1. . верхний индекс1, нижний индекс2. . верхний индекс2, . . . , нижний индекс. N. . верхний индекс. N] оf <тип>; или Var <имя массива>: arrayнижний индекс1. . верхний индекс1, нижний индекс2. . верхний индекс2, . . . , нижний индекс. N. . верхний индекс. N ] оf <тип>;
Пример: В следующей программе необходимо описать двухмерный массив A целых чисел: 1 3 6 -2 4 8 9 -5 6 7 -3 -2
Первый способ описания массива Второй способ описания массива
К типичным действиям с массивами можно отнести следующие: ввод массива n вывод массива n поиск в массиве заданного элемента n поиск в массиве максимального или минимального элемента n сортировка массива n
n Ввод массива Под вводом массива понимается ввод значений элементов массива. Чтобы пользователь программы знал, ввода какого элемента массива ожидает программа, следует организовать вывод подсказок перед вводом очередного элемента массива. n Вывод массива Под выводом массива понимается вывод на экран значений элементов массива. Если в программе необходимо вывести значения всех элементов массива, то для этого удобно использовать оператор FOR.


