Лабораторная работа 1. Федеральное государственное бюджетное образовательное учреждение высшего образования Тульский государственный университет
Скачать 444.05 Kb.
|
МИНОБРНАУКИ РОССИИ Федеральное государственное бюджетное образовательное учреждение высшего образования «Тульский государственный университет» Институт высокоточных систем им. В.П. Грязева Кафедра Системы автоматического управления Семашкина И.С. доцент каф. САУ МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ЛАБОРАТОРНОЙ РАБОТЕ № 1 ОБЩАЯ СТРУКТУРА ПРОГРАММЫ НА ЯЗЫКЕ ПАСКАЛЬ. ОПЕРАТОР ПРИСВАИВАНИЯ. ВЫРАЖЕНИЯ. СТАНДАРТНЫЕ ФУНКЦИИ. ВВОД И ВЫВОД ДАННЫХ. по дисциплине ИНФОРМАТИКА Тула 2016 г. 2 Цель и задачи работы: Изучить общую структуру программы на языке Паскаль, простые и составные операторы, выражения и стандартные функции, ввод и вывод данных. Теоретические сведения Общая структура Паскаль - программы Общая структура программы на языке Паскаль схематично представлена на рис. 1. Рис. 1. Общая структура программы Заголовок программы: program имя_программы; Раздел определений и описаний: • label - для описания меток, использующихся в операторах goto; • const — для определения имен констант; • type — для определения типов данных, которые задаются пользователем; • var - для описания переменных всех типов; • procedure и function - для описания подпрограмм, представленных процедурами и функциями. Программа может не содержать каких-либо из перечисленных разделов (или даже всех). Раздел операторов обязателен, но может быть пустым, т.е. содержать только служебные слова begin и end. Пример 1. Написать программу вычисления площади треугольника по трем сторонам (a, b и с) в предположении, что такой треугольник существует. program square; { Программа вычисления площади треугольника по формуле Герона } var а, b, с, р, s: real; begin writeln('Введите значения сторон треугольника: '); read(a,b,c); p:=0.5*(a+b+c); s:=sqrt(p*(p-a)*(p-b)*(p-c)); write('Площадь треугольника равна ',s:6:2) end. Заголовок программы включает в себя служебное слово program (оно должно быть первым), за ним следует имя программы — square. Имя программы обычно выбирается программистом с расчетом, чтобы оно отражало главную задачу, выполняемую программой. Строка под заголовком является комментарием. 3 Раздел определений и описаний представлен только разделом описания переменных (все переменные, которые используются в программе, должны быть описаны ! ). Он начинается служебным словом var, за которым следует список имен (идентификаторов) переменных. Имена переменных (а, b, с, р, s ) разделяются запятыми. Список заканчивается двоеточием, после которого указывается тип перечисленных переменных (в данном примере это real — вещест- венный). Раздел операторов начинается служебным словом begin. Операторы программы отделяются друг от друга точкой с запятой. Операторы целесообразно располагать так, чтобы сделать запись программы более наглядной и понятной. Раздел операторов заканчивается служебным словом end, за которым следует точка. Оператор присваивания Общий вид оператора присваивания: имя_ переменной := выражение; где имя_ переменной - представляет переменную, которой необходимо присвоить значение, а выражение — выражение, значение которого присваивается переменной (тип значения выражения должен соответствовать типу переменной). Выражения Выражения определяют последовательность вычисления значения. Выражения могут включать в себя константы, переменные, вызовы функций, которые разделяются скобками и знаками операций. Порядок вычисления выражения определяется скобками, а при их отсутствии — в соответствии со старшинством операций: 1. операции отрицания (not); 2. мультипликативные операции: * (умножение), / (деление), div (целочисленное деление), mod (остаток от целочисленного деления), and (логическое И); 3. аддитивные операции: + (сложение), — (вычитание), or (логическое ИЛИ), xor (логическое исключающее ИЛИ); 4. операции отношения: > (больше), < (меньше), < = (меньше или равно), > = (больше или равно), = (равно), <> (не равно), in (содержится в). Тип результата выражения зависит от типов операндов, участвующих в операции. Тип результата операций "+", "-", "*" является integer, если оба операнда имеют тип integer, и real - в противном случае. Результатом операции "/" всегда является тип real, а результат операций div и mod всегда имеет тип integer, так как операнды могут быть только типа integer. Результат выполнения логических операций not, or, and всегда имеет тип boolean. Операнды операций отношения могут иметь любой тип данных, а результат всегда имеет тип boolean. Примеры записи выражений: sqr(a)-sqrt(x*x*z) соответствует xyz a 2 , a*x*x+ln(x-a) соответствует ) ln( 2 a x ax Стандартные функции Часто используемые стандартные функции приведены в табл. 1. Вызов или обращение к функции представляется именем функции, за которым в скобках указывается аргумент. 4 Таблица 1. Часто используемые стандартные функции языка PascalABC.NET Назначение функции Обращение к функции Тип аргумента Тип результата Абсолютное значение числа abs (x) integer, real тип аргумента Квадрат числа sqr(x) integer, real тип аргумента Квадратный корень из числа sqrt(x) real real Возведение числа x в степень y power(x,y) real real Экспонента е x eхр (х) real real Натуральный логарифм ln(x) real real Десятичный логарифм log10(х) real real Выделение дробной части аргумента frас (х) real real Выделение целой части аргумента int(x) real real Значение числа = 3.141592653... pi - real Проверка числа на нечетность odd(x) integer boolean возвращает true, если аргумент - нечетное число Синус sin(x) real real Косинус cos (х) real real Тангенс tan(x) real real Арксинус arcsin(x) real real Арккосинус arccos(x) real real Арктангенс аrстаn (х) real real Инициация генератора псевдослучайных чисел randomize - - Псевдослучайное число, равномерно распределенных в random(x) integer integer 5 диапазоне 0…(x-1) Псевдослучайное число, равномерно распределенных в диапазоне 0…[1] random - real ФУНКЦИИ ПРЕОБРАЗОВАНИЯ ТИПОВ Возвращает символ по его коду chr(x) integer char Возвращает порядковый номер значения x (для типа char преобразует символ в код в кодировке Windows) ord(x) порядковый тип integer Возвращает целую часть числа x trunc(x) real integer Возвращает x, округленное до ближайшего целого round(x) real integer ПОРЯДКОВЫЕ ФУНКЦИИ Возвращает предшествующее X значение pred(x) любой порядковый тип аргумента Возвращает следующее за x значение succ(x) любой порядковый тип аргумента Уменьшает значение x на i, а при отсутствии i -на 1 dec (x[, i] ) char, integer тип аргумента Увеличивает значение x на i, а при отсутствии i - на 1 inc(x[, i] ) char, integer тип аргумента 6 Примеры обращений к стандартным функциям и возвращаемые ими результаты: abs(-5.5)=5.5, abs(65)=65, sqrt(16)=4, sqr(1.3)=1.69, pred(5)=4, succ(5)=6, pred(‘N’)=’M’, succ(‘S’)=’T’, trunc(5.8)=5, round(5.8)=5, chr(68)=’D’, chr(ord(‘C’))=’C’, ord(‘R’)=82, odd(2)=false, odd(5)=true. Примечание. Система программирования PascalABC.NET не имеет стандартных функций для вычисления z a log . Для их вычисления можно использовать следующие математические выражения. a z z a ln ln log Пример 2. Программа вывода двух различных псевдослучайных чисел в диапазоне от 0 до 100 и одного в диапазоне от 0 до 1. begin randomize; {Инициализация генератора псевдослучайных чисел} writeln(random(100),' ',random(100),' ',random) {оператор вывода} end. Ввод и вывод данных Для ввода данных используются операторы: read(bl,b2,...,bn); readln(bl,b2,...,bn); readln; где bl,b2,...,bn - имена переменных, значения которых вводятся. Суффикс "In" (line new - новая строка) предполагает переход к новой строке после выполнения оператора. Для вывода данных используются операторы: write(bl,b2,...,bn); writeln(bl,b2,...,bn); writeln; где bl,b2,...,bn - имена переменных, значения которых выводятся. Общий вид операторов для вывода значений целого типа: write (b:m); writeln (b:m); а для вывода значений вещественного типа: write (b:m:n); writeln (b:m:n); где b - имя выводимой переменной; m – ширина поля вывода, отводимого под значение и зада- ваемое константой или выражением целого типа; n - часть поля, отводимого под дробную часть числа. Например, оператор вывода write (x:8, y:4); 7 выделяет на строке под значения переменных целого типа x и y соответственно 8 и 4 позиции. Оператор вывода write (sum:10:5); выделяет под значение sum десять позиций, из которых 5 позиций отводится под дробную часть числа, 3 позиции на представление целой части, одну позицию для десятичной точки и одну позицию для знака «минус», если число отрицательное или пробела, если положительное. Задания 1-3 для самостоятельной работы. Задание 1. Написать программу в соответствии с заданным вариантом (вариант - номер задачи выдается преподавателем). Указание: результат выводится с округлением до 2-х знаков после запятой. Вариант Задача 1. Найти длину окружности L и площадь круга S заданного радиуса R: L = 2·π·R, S = π·R 2 2. Вычислить площадь трапеции со сторонами основания а и b и высотой h по формуле: s = c*h, где с - средняя линия трапеции с = (а+b)/2. 3. Даны длины ребер a, b, c прямоугольного параллелепипеда. Найти его объем V = a·b·c и площадь поверхности S = 2·(a·b + b·c + a·c). 4. Найти объем, площадь боковой поверхности шара по заданному радиусу шара. 5. Даны катеты прямоугольного треугольника a и b. Найти его гипотенузу c и периметр P: c = (a 2 + b 2 ) 1/2 , P = a + b + c. 6. Дана длина L окружности. Найти ее радиус R и площадь S круга, ограниченного этой окружностью, учитывая, что L = 2·π·R, S = π·R 2 7. Дана площадь S круга. Найти его диаметр D и длину L окружности, ограничивающей этот круг, учитывая, что L = π·D, S = π·D 2 /4. 8. Даны два круга с общим центром и радиусами R1 и R2 (R1 > R2). Найти площади этих кругов S1 и S2, а также площадь S3 кольца, внешний радиус которого равен R1, а внутренний радиус равен R2: S1 = π·(R1) 2 , S2 = π·(R2) 2 , S3 = S1 − S2. 9. Даны координаты трех точек A, B, C на числовой оси. Найти длины отрезков AC и BC и их сумму. Расстояние между двумя точками с координатами (x 1 , 0) и (x 2 , 0) вычисляется по формуле 1 2 x x d 10. Даны координаты трех точек A, B, C на числовой оси. Точка C расположена между точками A и B. Найти произведение длин отрезков AC и BC. Расстояние между двумя точками с координатами (x 1 ,0) и (x 2 ,0) вычисляется по формуле 1 2 x x d 11. Зная радиус, вычислить длину окружности, площадь круга и объем шара по формулам: l = 2г, s =г 2 , v = (4/3)г 3 8 12. Найти объем, площадь полной и боковой поверхности цилиндра по заданным радиусу и высоте цилиндра. , S p = 2πR(h + R), S b = 2πRh 13. Найти объем, площадь полной и боковой поверхности конуса по заданным радиусу, высоте и образующей конуса. Задание 2. Написать программу вычисления заданных функций. На экран вывести значения x, y, z в следующем виде: x | y | z ------------------------------ 0.5 | 3.56 | 0.25 Примечание. Для вывода результатов использовать заданный самостоятельно формат вывода данных. Например, writeln('x=',x:6:3). Таблица2. Варианты индивидуальных заданий. 9 Задание 3. Вариант Задача 1. Дано трехзначное число. Найти число, полученное при прочтении его цифр справа налево 2. Дано четырехзначное число. Найти сумму его цифр 3. Дано трехзначное число. Найти сумму его крайних цифр 4. Дано четырехзначное число. Найти произведение и сумму второй и последней цифр заданного числа 5. Даны два целых числа. Разделить каждое число на целое число d. Найти произведение их остатков от деления 6. Даны два целых числа. Переменой d присвоить результат деления первого числа на второе число, а переменой f присвоить результат деления второго числа на первое число. Найти произведение их остатков от деления 7. Дано четырехзначное число. Найти произведение его цифр 8. Дано натуральное число n (n > 99). Найти число десятков в нем 9. Даны два целых числа. Разделить каждое число на целое число d. Найти сумму их целой части от деления 10. Дано трехзначное число. Найти число, полученное при перестановке первой и последней цифр заданного числа 11. Дано четырехзначное число. Найти сумму и произведение второй и третьей цифр заданного числа 12. Дано трехзначное число. Найти число, полученное при перестановке первой и второй цифр заданного числа 10 Порядок выполнения работы. Для выполнения первого задания необходимо войти в среду программирования PascalABC.NET и в окне редактирования ввести текст программы, произвести ее отладку и выполнение. Правила выполнения и содержание отчета по лабораторной работе Отчет должен содержать: Номер и название лабораторной работы. Цель и задачи лабораторной работы. По заданию №1 Условие задачи. Текст программы. Результат работы программы. По заданию №2 Условие задачи. Текст программы. Результат работы программы. По заданию №3 Условие задачи. Текст программы. Результат работы программы. Контрольные вопросы 1. Из каких разделов состоит программа, написанная на языке программирования Pascal? 2. Какие разделы в программе обязательны? 3. Что такое идентификатор? 4. Какие ограничения накладываются на идентификатор? 5. Как оформляется программа на языке программирования Pascal? 6. Назовите известные вам арифметические операции и функции. 7. Как объявляются целые и вещественны е переменные? 8. Как определить значение переменной? 9. Опишите операторы ввода информации. 10. Опишите операторы вывода информации. 11. Опишите оператор присваивания и правила его использования. Библиографический список рекомендуемой литературы. Основной. 1. Вирт Н. Алгоритмы и структуры данных с примерами на Паскале / Н. Вирт; пер.с англ. Д.Б. Подшивалова .— 2-е изд. — СПб. : Невский диалект, 2007 .— 352с. 7 экз. 2. Епанешников А.М., Епанешников В.А. Программирование в среде TURBO PASCAL 7.0. – 3-е изд., стер. – М.: «ДИАЛОГ-МИФИ», 2004 – 367с. 3 экз. 11 3. Фаронов, В.В. Турбо Паскаль 7.0.Начальный курс : учеб. пособие для вузов.— М. : Кнорус, 2006.— 576с. 25 экз. Дополнительный. 1. Маркова, Татьяна Николаевна. Основы программирования : учеб. пособие / Т. Н. Маркова ; ТулГУ .— Тула : Изд-во ТулГУ, 2009 .— 106 с. 11 экз. 2. Новичков, В.С. Алгоритмизация и программирование на Турбо Паскале : учеб.пособие для вузов / В.С.Новичков, Н.И.Парфилова, А.Н. Пылькин .— М. : Горячая Линия-Телеком, 2005 .— 438с. 3 экз. 3. Немнюгин, С. А. Turbo Pascal. Программирование на языке высокого уровня : учебник для вузов / С. А. Немнюгин .— 2-е изд. — М. [и др.] : Питер, 2006 .— 544 с. 6 экз. 4. Павловская, Т.А. Паскаль. Программирование на языке высокого уровня : учебник для вузов / Т.А.Павловская .— М.[и др.] : Питер, 2007 .— 393с. 1 экз. |