Скачать 0.87 Mb.
|
Тема : Организация и использование процедур. Цели работы: 1. Познакомиться с процедурами в паскале. 2. Научиться составлять процедуры в Паскале. Оборудование: IBM PC Программное обеспечение: WINDOWS, Pascal Контрольные вопросы:
Краткая теория. Процедуры и функции представляют собой важный инструмент Турбо Паскаля, позволяющий писать хорошо структурированные программы. В структурированных программах обычно легко прослеживается основной алгоритм, их нетрудно понять любому читателю, они проще в отладке и менее чувствительны к ошибкам программирования. Все эти свойства являются следствием важной особенности процедур (функций), каждая из которых представляет собой во многом самостоятельный фрагмент программы, связанный с основной программой лишь с помощью нескольких параметров. Самостоятельность процедур (функций) позволяет локализовать в них все детали программной реализации того или иного алгоритмического действия и поэтому изменение этих деталей, например, в процессе отладки обычно ве приводит к изменениям основной программы. Писать крупные программы в сотни, тысячи и десятки тысяч строк как нечто единое целое, без расчленения на относительно самостоятельные фрагменты, т.е. без структурирования, просто невозможно. Практически во всех языках программирования имеются средства структурирования. Языки, в которых предусмотрены такие механизмы, называются процедурно-ориентированными. К их числу принадлежит и Турбо Паскаль. Процедурой в Турбо Паскале называется особым образом оформленный фрагмент программы, имеющий собственное имя. Упоминание этого имени в тексте программы приводит к активизации процедуры и называется ее вызовом. Сразу после активизации процедуры начинают выполняться входящие в нее операторы, после выполнения последнего из них управление возвращается обратно в основную программу и выполняются операторы, стоящие непосредственно за оператором вызова процедуры. Синтаксис и вызов (в общем) процедур: Procedure <�имя процедуры> Uses <�имена модулей> Label <�имена меток> Const <�имена констант> Type <�имена типов> Var <�имена локальных переменных> <�раздел объявления подпрограмм> Begin <�операторы> End; Процедуры используются в случаях, когда в подпрограмме необходимо получить несколько результатов. В языке Паскаль существует два вида процедур: с параметрами и без параметров. Обращение к процедуре осуществляется по имени процедуры, за которым могут быть указаны фактические параметры. Все формальные параметры являются локальными для данной процедуры и глобальными для каждой процедуры в ней. При вызове процедуры устанавливаетcя взаимно однозначное соответствие между фактическими и формальными параметрами, затем управление передается процедуре. После выполнения процедуры управление передается следующему, после вызова процедуры, оператору вызывающей программы. Пример №1. Пример процедуры поиска uses crt; v Пример №2 Использование процедуры без параметров, необходимо вывести 135 звёздочек в строку program StarLine23; procedure StarLine; var i: integer; begin for i:=1 to 135 do write('*'); end; begin StarLine; end. ar a, b: integer; procedure poisk; begin if a>b then writeln ('Первое число больше второго') else if a writeln ('Первое число меньше второго') else writeln ('Оба числа равны'); end; begin clrscr; write(' Введите a, b '); readln(a, b); poisk; readln end. Пример №3. Процедура c параметрами. Даны 3 различных массива целых чисел (размер каждого не превышает 15). В каждом массиве найти сумму элементов и среднеарифметическое значение. program lab_6 ; var i, n, sum: integer; sr : real; procedure work (r:integer; var s:integer; var s1:real); {процедура work} var mas : array[1..15] ofinteger ; { объявление массива мas} j : integer; begin s:=0; for j:=1 to r do begin {ввод элементов массива mas} writeln(' Введи элемент - ', j); read(mas[j]); s:=s+mas [j]; end; s1:=s/r; end; begin { главная программа} for i:=1 to 3 do begin write ('введите размер',i, ' массива'); readln(n); work (n, sum, sr); {вызов процедуры work} writeln ('сумма элементов =',sum); writeln ('среднеарифметическое значение =',sr:4:1); end; end. В программе трижды вызывается процедура work, в которой формальные параметры r, s, s1 заменяются фактическими n, sum, sr. Процедура выполняет ввод элементов массива, вычисляет сумму и среднее значение. Переменные s и s1 возвращаются в главную программу, поэтому перед их описанием ставится служебное слово var. Локальные переменные mas, j действуют только в процедуре. Глобальные - i, n, sum, sr доступны во всей программе. Задание №1 1. Ввести три числа. У каждого числа поменять знак, использовать свою процедуру замены числа на такое же значение с изменением знака. 2. Ввести пять слов. В каждом слове заменить буквы А на О. Использовать процедуру замены в строке букв А на О. 3. Ввести три числа. Вывести первые цифры чисел. использовать процедуру замены числа на его первую цифру. 4. Ввести три числа. Каждое число заменить на остаток от деления числа на 8. Использовать процедуру замены числа остатком от деления на 8 (mod не использовать). 5. Ввести три числа. Каждое число заменить на целую часть от деления на 3. Использовать процедуру замены числа целой частью от деления на 3. 6. Ввести четыре цифры. Из цифр получить наименьшее число, которое можно получить из этих цифр, используя процедуру перестановки местами значений двух величин. 7. Ввести три слова. В каждом слове заменить буквы О на У. Использовать процедуру замены в строке букв О на У. 8. Разработать программу перестановки значений переменных A, B, C в порядке убывания возрастания, т.е. так, чтобы A>B>C , используя процедуру перестановки двух значений. 9. Ввести четыре числа. Каждое число заменить на остаток от деления числа на 7. Использовать процедуру замены числа остатком от деления на 7. 10. Ввести три целых числа каждое число заменить его модулем, используя свою процедуру замены числа на его модуль. (встроенной функцией ABS не пользоваться). 11. Разработать программу перестановки значений переменных A, B, C,D в порядке возрастания, т.е. так, чтобы A 12. Ввести три цифры. Из цифр получить наименьшее число, которое можно получить из этих цифр, используя процедуру перестановки местами значений двух величин. 13. Ввести три числа. Вывести последние цифры чисел. Использовать процедуру замены числа на его последнюю цифру. Задание №2 1. Ввести три даты (день, месяц). Для каждой даты вывести сообщение правильно ли дата определена (не существует 32 дня и 13 месяца). Использовать свою процедуру проверки и вывода сообщения. 2. Ввести три даты (день, месяц). Для каждой даты вывести дату предыдущего дня . Использовать свою процедуру замены введенной даты на дату предыдущего дня. 3. Ввести четыре слова. В каждом слове заменить буквы Е на Н. Использовать процедуру замены в строке букв Е на Н. 4. Ввести пять вещественных чисел. Каждое число округлить до ближайшего целого. Использовать процедуру замены числа результатом его округления (встроенной функцией ROUND не пользоваться). 5. Ввести три числа. Вывести сумму цифр каждого числа. Использовать процедуру замены числа на сумму его цифр. 6. Разработать программу перестановки значений переменных A, B, C,D в порядке возрастания, т.е. так, чтобы A>B>C>D. 7. Ввести три числа – номера месяцев. Вывести количество дней в каждом месяце. Использовать свою процедуру замены номера месяца на количество дней в нем. 8. Ввести три даты (день, месяц). Для каждой даты вывести дату следующего дня. Использовать свою процедуру замены введенной даты на дату следующего дня. 9. Ввести два числа. Найти сумму чисел из первых двух цифр каждого числа, используя процедуру , которая оставляет только первые две цифры числа. Например, даны 1234 и 5432,результат 12+54=66. 10. Отсортировать одномерный массив по убыванию, используя процедуру перестановки местами значений двух величин. 11. Ввести пять чисел. В каждом числе удалить «хвостовые» цифры 5. (например, дано 2355, результат 23). Использовать процедуру замены исходного числа на значение, полученное после удаления «хвостовых» 5. 12. Ввести три числа. Найти сумму первых цифр каждого числа, используя процедуру , которая оставляет только первую цифру числа. Например, даны 12 , 520, 231 ,результат 1+5+2=8 13. Отсортировать одномерный массив по возрастанию, используя процедуру перестановки местами значений двух величин. Задание №3 1. Описать процедуру PowerA3(A, B), вычисляющую третью степень числа A и возвращающую ее в переменной B (A — входной, B — выходной параметр; оба параметра являются вещественными). С помощью этой процедуры найти третьи степени пяти данных чисел. 2. Описать процедуру Mean(X, Y, AMean, GMean), вычисляющую среднее арифметическое AMean = (X+Y)/2 и среднее геометрическое GMean = двух положительных чисел X и Y (X и Y — входные, AMean и GMean — выходные параметры вещественного типа). С помощью этой процедуры найти среднее арифметическое и среднее геометрическое для пар (A,B), (A,C), (A,D), если даны A,B,C,D. 3. Описать процедуру TrianglePS(a, P, S), вычисляющую по стороне a равностороннего треугольника его периметр P = 3·a и площадь S = (a — входной, P и S — выходные параметры; все параметры являются вещественными). С помощью этой процедуры найти периметры и площади трех равносторонних треугольников с данными сторонами. 4. Описать процедуру PowerA234(A, B, C, D), вычисляющую вторую, третью и четвертую степень числа A и возвращающую эти степени соответственно в переменных B, C и D (A — входной, B, C, D — выходные параметры; все параметры являются вещественными). С помощью этой процедуры найти степени трёх чисел. 5. Описать процедуру AddRightDigit(D, K), добавляющую к целому положительному числу K справа цифру D (D — входной параметр целого типа, лежащий в диапазоне 0–9, K — параметр целого типа, являющийся одновременно входным и выходным). С помощью этой процедуры последовательно добавить к данному числу K справа данные цифры D1 и D2. Выводя результат каждого добавления. 6. Описать процедуру Swap(X, Y), меняющую содержимое переменных X и Y (X и Y — вещественные параметры, являющиеся одновременно входными и выходными). С ее помощью для данных переменных A, B, C, D последовательно поменять содержимое следующих пар: A и B, С и D, B и С и вывести новые значения A, B, C, D. 7. Описать процедуру Minmax(X, Y), записывающую в переменную X минимальное из значений X и Y, а в переменную Y — максимальное из этих значений (X и Y — вещественные параметры, являющиеся одновременно входными и выходными). Используя четыре вызова этой процедуры, найти минимальное и максимальное из данных чисел A, B, C, D. 8. Описать процедуру SortInc3(A, B, C), меняющую содержимое переменных A, B, C таким образом, чтобы их значения оказались упорядоченными по возрастанию (A, B, C — вещественные параметры, являющиеся одновременно входными и выходными). С помощью этой процедуры упорядочить по возрастанию два данных набора из трех чисел: (A1, B1, C1)и(A2, B2, C2) . 9. Описать процедуру SortDec3(A, B, C), меняющую содержимое переменных A, B, C таким образом, чтобы их значения оказались упорядоченными по убыванию (A, B, C — вещественные параметры, являющиеся одновременно входными и выходными). С помощью этой процедуры упорядочить по убыванию два данных набора из трех чисел: (A1, B1, C1)и(A2, B2, C2) . 10. Описать функцию RootCount(A, B, C) целого типа, определяющую количество корней квадратного уравнения A·x2 + B·x + C = 0 (A, B, C — вещественные параметры, A ? 0). С ее помощью найти количество корней для каждого из трех квадратных уравнений с данными коэффициентами. Количество корней определять по значению дискрименанта: D=B^2-4*A*C. 11. Описать функцию CircleS(R) вещественного типа, находящую площадь круга радиуса R (R — вещественное). С помощью этой функции найти площади трех кругов с данными радиусами. Площадь круга радиуса R вычисляется по формуле S = pi·R^2. В качестве значения pi использовать 3,14. 12. Описать функцию DigitCount(K) целого типа, находящую количество цифр целого положительного числа K. Используя эту функцию, найти количество цифр для каждого из пяти данных целых положительных чисел. 13. Описать функцию TriangleP(a, h), находящую периметр равнобедренного треугольника по его основанию a и высоте h, проведенной к основанию (a и h — вещественные). С помощью этой функции найти периметры трех треугольников, для которых даны основания и высота. Для нахождения боковой стороны b треугольника использовать теорему Пифагора: B^2=(a/2)^2+h^2. Порядок выполнения работы:
Литература.
Практическое занятие №8 Тема : "Организация и использование функций". Цели работы: 1. Познакомиться с функциями в паскале. 2. Научиться составлять программы с функциями в Паскале. Оборудование: IBM PC Программное обеспечение: WINDOWS, Pascal Контрольные вопросы:
Краткая теория (методические указания) Функцией в Паскале называется процедура, результатом выполнения которой является вычисление и передача в программу некоторого значения. Процедуры и функции представляют собой относительно самостоятельные фрагменты программы, оформленные особым образом и снабженные именем. Упоминание этого имени в тексте программы называется вызовом процедуры (функции). Отличие функции от процедуры заключается в том, что результатом исполнения операторов, образующих тело функции, всегда является некоторое единственное значение или указатель, поэтому обращение к функции можно использовать в соответствующих выражениях наряду с переменными и константами. Условимся далее называть процедуру или функцию общим именем «подпрограмма», если только для излагаемого материала указанное отличие не имеет значения. Описание функций производится в разделе описаний и имеет следующий общий вид: Function <�идентификатор>[(описание формальных параметров)]:<�тип результата>; <�раздел описаний> begin <�список команд> end; Для передачи результата в программу выполняется операция присваивания вида <�идентификатор>:=<�выражение>; Вызов функции в программе или другой функции или процедуре производится указанием ее идентификатора и перечислением в круглых скобках фактических параметров, если они есть: <�идентификатор>[(<�список фактических параметров>)]. Раздел описаний для функций и процедур имеет тот же смысл и структуру, что и для главной программы. Если в разделе описаний процедуры или функции описаны некоторые элементы, то они являются определенным только для этой процедуры или функции и вложенных в них элементов. Выполняется правило изменения описания элементов с одинаковыми идентификаторами во вложенных элементах. Действительным является самое последнее из предшествующих описаний. Приступая к решению задач данного типа , следует вспомнить, что:
Пример №1: "Найти максимальное из трех введенных чисел". Для решения воспользуемся описанием функции, принимающей значение максимального из двух чисел, которые передаются в нее в виде параметров. Program Fn; Var A,B,C :Real; Function Max(A,B:Real):Real; {Описываем функцию Max с формальными} Begin {параметрами A и B, которая принимает } If A>B Then Max:=A {значение максимального из них } Else Max:=B {Здесь A и B - локальные переменные } End; Begin Writeln('Введите три числа'); Readln(A,B,C); Writeln('Максимальным из всех является ', Max(Max(A,B),C)) End. Пример № 2. Вычислить: z=f(sin a, b) + f(cos a, b) + f (sin2 a, b-1) + f(sin a - cos a, b2 - 1) + f(sin2 a-1, cos a+b), где program pr2; var a,b,z:real; function fun(u,t:real):real; begin if u>0 then fun:=u+sin(t) else fun:=u+t; end; begin read (a,b); z:=fun(sin(a),b)+fun(cos(a),b)+fun(sqr(sin(a)),b-1)+fun(sin(a)-cos(a),b*b-1)+fun(sqr(sin(a))-1,cos(a)+b); writeln (z:8:2); end. Задание №1 1. Для следующей программы написать функцию, которая определяет выполняется ли теорема Пифагора для трех величин. 2. Треугольник задан своими координатами своих вершин. Вычислить площадь треугольника с использованием функции нахождения расстояния между двумя точками. 3. В пятиугольнике известны стороны и диагонали. Найти площадь пятиугольник, используя функцию вычисления площади треугольника по трем сторонам. 4. Ввести два числа. Найти количество цифр в двух числах, используя функцию вычисления количества цифр в одном числе. 5. Ввести стороны четырехугольника и его диагональ. Найти площадь четырехугольника, используя в качестве процедуры вычисление площади треугольника по трем сторонам (формула Геррона) 6. Даны стороны двух треугольников. Найти сумму их площадей, используя функцию вычисления площади треугольника по его сторонам. 7. В правильном треугольнике проведена средняя линия. Найти площадь образовавшейся трапеции, дважды используя функцию вычисления площади правильного треугольника 8. Для правильного треугольника со стороной а построены вписанная и описанная окружности. Найти площадь образовавшегося кольца, используя функцию вычисления площади круга S=πR2. 9. Дан квадрат со стороной а, диагональ этого квадрата является стороной второго квадрата, диагональ второго квадрата – стороной третьего. Найти длину стороны третьего квадрата, используя функцию вычисления длины диагонали квадрата по его стороне. 10. Даны длины a,b и c сторон некоторого треугольника. Найти медианы треугольника, сторонами которого являются медианы исходного треугольника. Длина медианы, проведенной к стороне a, равна 11. В круглой заготовке радиуса R вырезаны два круглых отверстия радиусы которых R1 и R2. Найти площадь круглой заготовки, используя функцию вычисления площади окружности. 12. Вычислить для треугольника ABC все стороны, все углы (в градусной мере), периметр и площадь, если известны: сторона BC и углы BAC, ACB. 13. В прямоугольный треугольник вписана окружность и вокруг него описана окружность. Найти площадь кольца заключённого между ними. Задание №2 1. Вычислить z=min(a,3b)*min(2a,-b,2b), используя функцию вычисления минимума из двух значений. 2. Ввести пять чисел. Найти сумму максимального и минимального, используя две функции: нахождения минимума из двух значений и максимума из двух значений. 3. Вычислить s=max(a,b)/min(a,c)+max(b,c). 4. Вычислить Y=MIN(A,3B)*MIN(2A-B, 2B), используя функцию нахождения минимума для двух чисел. 5. Даны шесть чисел. Найти максимальное, используя функцию нахождения максимума из двух значений. 6. Вычислить s=min(a,b,c)+ min(b,c)/min(a,c). 7. Вычислить z=sign(x)+sign(y), где Sign( a)= 8. Даны три квадратных уравнения AX2+BX+C=0 BX2+AX+C=0 CX2+AX+B=0 Определить, сколько из них имеют вещественные корни, используя функцию вычисления корней квадратного уравнения. 9. Вычислить s=max(a,b)+min(a,b,c)+max(a,c) 10. Написать Функцию перевода десятичного числа в 2-ю систему счисления. 11. Ввести восемь чисел. Найти максимальное, используя функцию нахождения максимума из двух значений. 12. Написать подпрограмму-функцию степени аx, где a, х – любые числа. Воспользуемся формулой: аx = ex ln a 13. Вычислить НОД(A,B)+НОД(C,B)+НОД(A,C), используя функцию нахождения НОД (наибольшего общего делителя) для двух чисел. Задание №3 1. Вычислить значения функции f(x)=2 cos x+3, при x={1; 4; 7,5; 20}. Вывести результаты в два столбца: в первом - значения x, во втором - значения f(x). 2. Ввести два числа. Определить в каком из них сумма цифр больше, используя функцию вычисления суммы цифр одного числа. 3. Вычислить ctg(x)+ctg2(5x)/ctg(x2), используя функцию вычисления котангенса 4. Найти tg(2x)+tg(3x)/tg(x2), используя функцию вычисления тангенса. 5. Используя подпрограмму нахождения факториала, вычислить число сочетаний из n по m по следующей формуле: 6. Даны действительные числа S и T. Получить: F(T,-2*S,1.17) + F(2.2,T,S-T), где 7. Вычислить N3+ M4+ K7, используя функцию возведения числа в степень. 8 Вычислить , используя функцию вычисления 9. Рассчитать значение х = 10. Вычислить , используя функцию вычисления 11. Вычислить N!+M!+K!, используя функцию вычисления факториала. 12. Вычислить , при Х=3 ,используя функцию с параметрами. 13. Найти сумму чисел ряда 1,2,3,... ,используя функцию. Порядок выполнения работы:
3. Выполнить Задание №1 4. Выполнить Задание № 2. 5. Выполнить Задание № 3 6. Оформить отчёт. 7. Сделать вывод. Литература.
Практическая работа №9 |
Методические указания по выполнению лабораторных работ Издательство Инженерная геодезия. Методические указания по выполнению лабораторных работ. Составители: Шешукова Л. В., Тютина Н. М., Клевцов Е.... |
Методические указания по выполнению лабораторных работ по дисциплине... Методические указания по выполнению лабораторных работ рассмотрены и утверждены на заседании кафедры «Безопасность труда и инженерная... |
||
Методические указания для студентов по выполнению лабораторных и... Методические указания для студентов по выполнению лабораторных и практических работ |
Методические указания по выполнению практических и лабораторных работ... Учебно-методическое пособие предназначенодля студентов 3 курса, обучающихся по профессии 23. 01. 03 Автомеханик. Пособие содержит... |
||
Сборник методических указаний для студентов по выполнению лабораторных работ дисциплина «химия» Методические указания для выполнения лабораторных работ являются частью основной профессиональной образовательной программы Государственного... |
Методические указания по выполнению лабораторных работ по дисциплине «Сметное дело» ... |
||
Методические указания по выполнению лабораторных работ Казань 201 Эксплуатация, диагностика и надежность гту: метод указания/ сост.: Б. М. Осипов, А. В. Титов, Р. Г. Сагадеев. Казань: Казан гос... |
Методические указания по выполнению лабораторных работ Казань 2013 Эксплуатация, диагностика и надежность гту: метод указания/ сост.: Б. М. Осипов, А. В. Титов, Р. Г. Сагадеев. Казань: Казан гос... |
||
Методические указания для студентов по выполнению Правила техники безопасности при выполнении лабораторных и практических работ по химии |
Методические указания по выполнению лабораторных работ по дисциплине... Государственное бюджетное профессиональное образовательное учреждение московской области |
||
Методические указания по выполнению лабораторных работ по дисциплине... Федерального государственного бюджетного образовательного учреждения высшего образования |
Лабораторная работа №7 Тема: «Арифметические операции. Битовые команды» Методические указания к выполнению лабораторных работ по мдк 01. 01 «Системное программирование» |
||
Методические указания по выполнению лабораторных работ по дисциплине... Федерального государственного бюджетного образовательного учреждения высшего образования |
Методические указания к выполнению лабораторных работ по дисциплине радиолокационные системы Лабораторная работа №1 «Изучение принципов построения штатной радиолокационной киа» |
||
Методические указания по выполнению лабораторных работ по междисциплинарному курсу мдк02. 01 ПМ02. Применение микропроцессорных систем, установка и настройка периферийного оборудования |
Методические указания по выполнению практических и лабораторных работ... Методические указания предназначены для обучающихся по специальностям технического профиля 21. 02. 08 Прикладная геодезия |
Поиск |