Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2010, 14:00   #1
stud3nt
Пользователь
 
Регистрация: 26.06.2010
Сообщений: 17
По умолчанию процедуры и функции

Уважаемые члены клуба программистов, помогите пожалуйста решить с помощью процедур и функций.
Заранее спасибо!
Изображения
Тип файла: jpg zadacha.jpg (67.9 Кб, 78 просмотров)
stud3nt вне форума Ответить с цитированием
Старый 29.06.2010, 15:00   #2
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

Ну и трудно чтоли функцию сделать?
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Старый 29.06.2010, 15:54   #3
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию

Если перевод из градусов в радианы (т.е. значение принимаем в радианах) не нужен - выкинуть функцию SinDeg и вместо SinDeg(c) использовать sin(c)
Код:
program MyProgram;
uses crt;

//Sin угла в градусах (по умолчанию в паскале
//тригонометрические функции принимают параметр в радианах)
function SinDeg(deg : real) :real;
var
  rad : real;
begin
  rad := deg * pi / 180;
  result := sin(rad);
end;

//функция для формулы в задании
function GetValue(a, b, c : real) : real;
begin
  result :=  (2*a - b - SinDeg(c)) / (5 +  abs(c));
end;

//процедура расчета итогового значения
procedure ResultValue;
var
  s, t, sum : real;
begin
  clrscr;
  writeln('Vvedite s');
  readln(s);
  writeln('Vvedite t');
  readln(t);
  sum := GetValue(t, -2 * s, 1.17) + GetValue(2.2, t, s - t);
  writeln('Itogovoe zna4enie= ', sum);
  readln;
end;

begin
 ResultValue;
end.
Изо всей благодати
В руках крепко сжатых
Я донесу только капли

Последний раз редактировалось Roof; 30.06.2010 в 01:37.
Roof вне форума Ответить с цитированием
Старый 29.06.2010, 22:52   #4
stud3nt
Пользователь
 
Регистрация: 26.06.2010
Сообщений: 17
По умолчанию

Спасибо! в проц и функц-ях я не совсем шарю..
тоесть ф-ция sindeg это перевод в градусы я так понял, а что за ф-ция sin?
и GetValue, rad, ResultValue?
stud3nt вне форума Ответить с цитированием
Старый 29.06.2010, 22:56   #5
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

sin-это синус.А над остальными функциями и процедурами коментарии подписаны.
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Старый 30.06.2010, 01:04   #6
stud3nt
Пользователь
 
Регистрация: 26.06.2010
Сообщений: 17
По умолчанию

result я отнес к real, ибо ругается на него.
программа ошибки пишет, не могу понять что нужно исправить
перевод в градусы не нужен все таки..
stud3nt вне форума Ответить с цитированием
Старый 30.06.2010, 01:49   #7
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию

sin - стандартная функция в паскале. Вычисляет синус угла. Значение угла принимается в радианах.
sindeg - это я сам придумал название и написал функцию перевода из градусов в радианы.
rad - просто вспомогательная переменная в функции sindeg.
GetValue - это я сам написал функцию и придумал ей название, она считает по заданной формуле значение.
ResultValue - эту процедуру я написал сам и название ей придумал тоже сам. Считает итоговое значение по твоему заданию.
Делал в PascalABC, думал все поймешь . Вот переделал для TurboPascal.
Если нужно без перевода из градусов в радианы не нужен, то будет так:
Код:
program MyProgram;
uses crt;

{procedura dlya formuli v zadanii}
function GetValue(a, b, c : real) : real;
begin
  GetValue :=  (2*a - b - Sin(c)) / (5 +  abs(c));
end;

{procedura ras4eta itogovogo zna4eniya}
procedure ResultValue;
var
  s, t, sum : real;
begin
  clrscr;
  writeln('Vvedite s');
  readln(s);
  writeln('Vvedite t');
  readln(t);
  sum := GetValue(t, -2 * s, 1.17) + GetValue(2.2, t, s - t);
  writeln('Itogovoe zna4enie= ', sum:4:3); {4 - do to4ki i 3 - posle to4ki}
  readln;
end;

begin
 ResultValue;
end.
Вот тебе дельный совет - изучай программирование, по учебникам. Иначе ни я ни кто-либо не сможет тебе объяснить.
Изо всей благодати
В руках крепко сжатых
Я донесу только капли

Последний раз редактировалось Roof; 30.06.2010 в 01:55.
Roof вне форума Ответить с цитированием
Старый 30.06.2010, 19:14   #8
stud3nt
Пользователь
 
Регистрация: 26.06.2010
Сообщений: 17
По умолчанию

Спасибо!!!
stud3nt вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
процедуры/функции vihlyaev Паскаль, Turbo Pascal, PascalABC.NET 3 07.06.2010 23:43
процедуры и функции barby-Nastya Помощь студентам 2 25.04.2010 18:46
Процедуры и функции junkie Паскаль, Turbo Pascal, PascalABC.NET 5 27.04.2009 19:05
Процедуры и функции J0n1cK Паскаль, Turbo Pascal, PascalABC.NET 5 22.04.2009 16:57
Функции и процедуры _Антон_ Помощь студентам 4 15.11.2008 19:58