Студопедия — Задача 1. Вычислить площадь четырёхугольника со сторонами a,b,c,d и диагональю e.
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Задача 1. Вычислить площадь четырёхугольника со сторонами a,b,c,d и диагональю e.






ПОВТОРЕНИЕ

  1. Базовые алгоритмические структуры – следование, ветвление, цикл.
  2. Типы алгоритмов – линейный, разветвляющийся, циклический.
  3. Суть метода последовательной (пошаговой) детализации – сначала общий план, а затем – детали.
  4. Вспомогательный алгоритм – алгоритм, описывающий решение какой-либо подзадачи и, как правило, вызываемый многократно.
  5. Подпрограмма – часть программы, которая реализует вспомогательный алгоритм. Основная программа реализует основной алгоритм решения задачи и содержит в себе обращения к подпрограммам.
  6. Подпрограммы предназначены для разбиения задачи на подзадачи. Позволяют экономить память (программа становится короче), ускоряют написание и отладку программ.
  7. Подпрограммы в Паскале – стандартные функции и процедуры (sqr, sqrt, readln, write…) и функции и подпрограммы пользователя.

ФУНКЦИИ

Рассмотрим задачу вычисления суммы тангенсов трёх чисел x,y,z. Для её решения можно воспользоваться следующей программой:

Program tangens;

Var x,y,z:real;

Begin

ReadLn(x,y,z);

Writeln((sin(x)/cos(x)+sin(y)/cos(y)+sin(z)/cos(z)):8:2)

End.

В операторе вывода три раза повторяется одно и то же выражение с разными значениями параметра. Это выражение - sin(x)/cos(x), которое вычисляет тангенс числа, так как в Паскале нет стандартной функции для его вычисления. Но эту функцию можно написать самим и в этом случае программа будет иметь следующий вид:

Program tangens;

Var x,y,z:real;

Function tan(a:real):real;

Begin

tan:=sin(a)/cos(a)

End;

 

Begin

ReadLn(x,y,z);

Writeln((tan (x)+ tan (y)+ tan (z)):8:2)

End.

Функция – это подпрограмма, в результате работы которой получается скалярная величина (т.е. одно значение), которая обязательно присваивается переменной с тем же именем, что и имя функции. Вызов функций, созданных пользователем, производится аналогично вызову стандартных функций, то есть внутри выражений либо в операторе присваивания, либо в операторе вывода.

Описание функций:

Function < имя функции > ( < список формальных параметров > ):< тип результата >;

< описательная часть >

Begin

< тело функции >

< имя функции >:=< выражение >;

end;

 

Описание функции идет после описания переменных, до начала основной части.

Значения, передаваемые в функцию, называются фактическими параметрами. В предыдущей задаче в качестве фактических параметров использовались переменные x,y,z. Параметры, описываемые внутри функции, называются формальными. Желательно, чтобы их имена не совпадали с именами фактических во избежание путаницы. При вызове функции формальному параметру присваивается значение фактического. Имя функции одновременно является и именем переменной, которой будет присвоен результат выполнения функции, поэтому необходимо, чтобы был описан её тип. Если имя функции используется в левой части оператора присваивания, то оно играет роль обычной переменной и пишется без параметров: tan:=sin(a)/cos(a). Это можно делать только внутри самой функции.

Если имя функции записывается в правой части оператора присваивания или внутри оператора вывода, то это означает вызов функции и наличие параметров необходимо:

b:=tan(x) или write(tan(x)).

В качестве фактических параметров могут использоваться не только переменные, но и выражения: writeln(tan((x+y+z)*2)). В этом случае при вызове функции формальный параметр получит значение этого выражения. В нашем случае переменная a получит значение (x+y+z)*2.

Задача 1. Вычислить площадь четырёхугольника со сторонами a,b,c,d и диагональю e.

Чтобы вычислить площадь такого четырёхугольника, необходимо вычислить площади двух треугольников, из которых он состоит, а затем сложить. Для вычисления площади отдельного треугольника воспользуемся формулой Герона.

Program geron;

Var a,b,c,d,e:real;

Function S(x,y,z:real):real;

Var p:real; { локальная переменная. Память выделяется тогда, когда функция начинает свою работу. После завершения работы эта часть памяти освобождается, и значение переменной будет снова неопределено }

Begin

p:=(x+y+z)/2;

S:=sqrt(p*(p-x)*(p-y)*(p-z))

End;

 

Begin

Readln(a,b,c,d,e);

Writeln(‘S=’,(S (a,b,e)+ S (c,d,e)):8:2)

End.

Внутри функции мы использовали локальную переменную p, которая видна только внутри этой функции и не оказывает никакого влияния на переменные, описанные в основной программе.

Задача 2. Найти наибольший общий делитель для значений a+b, |a-b| и a*b.

Будем использовать функцию для вычисления наибольшего общего делителя двух произвольных чисел. Для этого воспользуемся правилом Эвклида:

НОД(M-N,N), если M>N

НОД(M,N)= НОД(M,N-M), если N>M

N, если N=M

Проверим эту формулу на числах 24 и 40.

НОД(24,40)=НОД(24,16)=НОД(8,16)=НОД(8,8)=8

Запишем программу:

Program NOD;

Var a,b,rez:integer;

 

Function Evklid(M,N:integer):integer;

Begin

While M<>N do

If M<>N then M:=M-N

Else N:=N-M;

Evklid:=N

End;

 

Begin

ReadLn(a,b);

Rez:= Evklid (Evklid (a+b,abs(a-b)),a*b);

Writeln(‘НОД=’,Rez)

End.

В данной программе мы воспользовались так же правилом:

НОД(x,y,z)=НОД(НОД(x,y),z).







Дата добавления: 2015-08-12; просмотров: 381. Нарушение авторских прав; Мы поможем в написании вашей работы!



Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Кран машиниста усл. № 394 – назначение и устройство Кран машиниста условный номер 394 предназначен для управления тормозами поезда...

Приложение Г: Особенности заполнение справки формы ву-45   После выполнения полного опробования тормозов, а так же после сокращенного, если предварительно на станции было произведено полное опробование тормозов состава от стационарной установки с автоматической регистрацией параметров или без...

Измерение следующих дефектов: ползун, выщербина, неравномерный прокат, равномерный прокат, кольцевая выработка, откол обода колеса, тонкий гребень, протёртость средней части оси Величину проката определяют с помощью вертикального движка 2 сухаря 3 шаблона 1 по кругу катания...

Почему важны муниципальные выборы? Туристическая фирма оставляет за собой право, в случае причин непреодолимого характера, вносить некоторые изменения в программу тура без уменьшения общего объема и качества услуг, в том числе предоставлять замену отеля на равнозначный...

Тема 2: Анатомо-топографическое строение полостей зубов верхней и нижней челюстей. Полость зуба — это сложная система разветвлений, имеющая разнообразную конфигурацию...

Виды и жанры театрализованных представлений   Проживание бронируется и оплачивается слушателями самостоятельно...

Studopedia.info - Студопедия - 2014-2024 год . (0.008 сек.) русская версия | украинская версия