Студопедия — Задача 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; просмотров: 386. Нарушение авторских прав; Мы поможем в написании вашей работы!



Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

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

Прием и регистрация больных Пути госпитализации больных в стационар могут быть различны. В цен­тральное приемное отделение больные могут быть доставлены: 1) машиной скорой медицинской помощи в случае возникновения остро­го или обострения хронического заболевания...

ПУНКЦИЯ И КАТЕТЕРИЗАЦИЯ ПОДКЛЮЧИЧНОЙ ВЕНЫ   Пункцию и катетеризацию подключичной вены обычно производит хирург или анестезиолог, иногда — специально обученный терапевт...

Ситуация 26. ПРОВЕРЕНО МИНЗДРАВОМ   Станислав Свердлов закончил российско-американский факультет менеджмента Томского государственного университета...

Тема 5. Анализ количественного и качественного состава персонала Персонал является одним из важнейших факторов в организации. Его состояние и эффективное использование прямо влияет на конечные результаты хозяйственной деятельности организации.

Билет №7 (1 вопрос) Язык как средство общения и форма существования национальной культуры. Русский литературный язык как нормированная и обработанная форма общенародного языка Важнейшая функция языка - коммуникативная функция, т.е. функция общения Язык представлен в двух своих разновидностях...

Патристика и схоластика как этап в средневековой философии Основной задачей теологии является толкование Священного писания, доказательство существования Бога и формулировка догматов Церкви...

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