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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2016, 14:56   #1
ZIQVK
Пользователь
 
Регистрация: 15.03.2016
Сообщений: 23
По умолчанию Функции

Прошу проверить, беспокоит оглавление функции и опись её
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Memo1: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
function FUT(u,t:real):real;
var max:real;
begin
if u>t then max :=u
else
max:=t;
if max>0 then result:=u+sin(sqr(t))
else result:= result*cos(sqr(u));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
var alfa,a,b,z,f1,f2,f3,f4:real;
begin
alfa :=StrToFloat(Edit1.Text);
a :=StrToFloat(Edit2.Text);
b :=StrToFloat(Edit3.Text);
fut(sin(alfa),a,f1);
fut(cos(sqr(alfa)),sqr(b),f2);
fut(sin(sqr(alfa)-1),a,f3);
fut(sqr(a-alfa),sqr(a+alfa),f4);
z:=f1+f2+f3+f4;
Memo1.Clear;
Memo1.Lines.Add('Результат');
Memo1.Lines.Add('z='+FloatToStr(z))

end;

end.
Не надо код цитировать. Для его выделения есть кнопочка #
Модератор

Последний раз редактировалось Аватар; 27.03.2016 в 16:15.
ZIQVK вне форума Ответить с цитированием
Старый 27.03.2016, 15:12   #2
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,987
По умолчанию

В этой функции 2 параметра:
Код:
function FUT(u,t:real):real;
А вызывается 3-мя:
Код:
fut(sin(alfa),a,f1);
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 27.03.2016, 15:12   #3
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

Вот тут:
Код:
else result:= result*cos(sqr(u));
- чему равен result справа ?

И вообще, нежелательно его в правую часть.
type_Oleg вне форума Ответить с цитированием
Старый 27.03.2016, 15:14   #4
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,987
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
 begin //УБРАТЬ эту строчку
 var alfa,a,b,z,f1,f2,f3,f4:real;
 begin
Чтобы программа была рабочей, надо переделать строчку
Код:
procedure FUT(u,t:real; var result:real);
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]

Последний раз редактировалось newerow1989; 27.03.2016 в 15:18.
newerow1989 вне форума Ответить с цитированием
Старый 27.03.2016, 15:19   #5
ZIQVK
Пользователь
 
Регистрация: 15.03.2016
Сообщений: 23
По умолчанию

Цитата:
Сообщение от newerow1989 Посмотреть сообщение
Код:
procedure TForm1.Button1Click(Sender: TObject);
 begin //УБРАТЬ эту строчку
 var alfa,a,b,z,f1,f2,f3,f4:real;
 begin
Чтобы программа была рабочей, надо переделать строчку
Код:
procedure FUT(u,t:real; var result:real);
хм, в методичке написано что после скобок нужно присваивать число которое будет возвратным
ZIQVK вне форума Ответить с цитированием
Старый 27.03.2016, 15:22   #6
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,987
По умолчанию

Код:
function FUT(u,t:real):real;

...

procedure TForm1.Button1Click(Sender: TObject);
 var alfa,a,b,z,f1,f2,f3,f4:real;
 begin
 alfa :=StrToFloat(Edit1.Text);
 a :=StrToFloat(Edit2.Text);
 b :=StrToFloat(Edit3.Text);
 f1:=fut(sin(alfa),a);
 f2:=fut(cos(sqr(alfa)),sqr(b));
 f3:=fut(sin(sqr(alfa)-1),a);
 f4:=fut(sqr(a-alfa),sqr(a+alfa));
 z:=f1+f2+f3+f4;
 Memo1.Clear;
 Memo1.Lines.Add('Результат');
 Memo1.Lines.Add('z='+FloatToStr(z))

 end;
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]

Последний раз редактировалось newerow1989; 27.03.2016 в 15:26. Причина: Если автор увидит!
newerow1989 вне форума Ответить с цитированием
Старый 27.03.2016, 15:23   #7
ZIQVK
Пользователь
 
Регистрация: 15.03.2016
Сообщений: 23
По умолчанию

Цитата:
Сообщение от type_Oleg Посмотреть сообщение
Вот тут:
Код:
else result:= result*cos(sqr(u));
- чему равен result справа ?

И вообще, нежелательно его в правую часть.
И вправду у меня тут ошибка
ZIQVK вне форума Ответить с цитированием
Старый 27.03.2016, 15:24   #8
ZIQVK
Пользователь
 
Регистрация: 15.03.2016
Сообщений: 23
По умолчанию

Цитата:
Сообщение от newerow1989 Посмотреть сообщение
Код:
procedure TForm1.Button1Click(Sender: TObject);
 var alfa,a,b,z,f1,f2,f3,f4:real;
 begin
 alfa :=StrToFloat(Edit1.Text);
 a :=StrToFloat(Edit2.Text);
 b :=StrToFloat(Edit3.Text);
 f1:=fut(sin(alfa),a);
 f2:=fut(cos(sqr(alfa)),sqr(b));
 f3:=fut(sin(sqr(alfa)-1),a);
 f4:=fut(sqr(a-alfa),sqr(a+alfa));
 z:=f1+f2+f3+f4;
 Memo1.Clear;
 Memo1.Lines.Add('Результат');
 Memo1.Lines.Add('z='+FloatToStr(z))

 end;
procedure FUT(u,t:real; var result:real); я про этот код, begin я убрал, то я уже наверное от спешки написал
ZIQVK вне форума Ответить с цитированием
Старый 27.03.2016, 16:21   #9
ZIQVK
Пользователь
 
Регистрация: 15.03.2016
Сообщений: 23
По умолчанию

Цитата:
Сообщение от type_Oleg Посмотреть сообщение
Вот тут:
Код:
else result:= result*cos(sqr(u));
- чему равен result справа ?

И вообще, нежелательно его в правую часть.
[Warning] Unit1.pas(40): Return value of function 'FUT' might be undefined можете помочь с этой ошибкой, в методичке такого не указывали, и в интернете много способов для разных случаев
ZIQVK вне форума Ответить с цитированием
Старый 28.03.2016, 16:02   #10
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,381
По умолчанию

Вам явно указали, что в правой части оператора result ставить не стоит.
Сообщение об ошибке/предупреждении следует перевести:
- открыть окно online переводчика
- слева выбираем английский и копируем туда текст ошибки
- справа выбираем русский и читаем:
Цитата:
Возвращаемое значение функции 'FUT' может быть не определено
[Warning] - это предупреждение. Т.е. программу можно запустить, но вот надежды на то, что будет получен правильный результат - нет.
Предупреждение вызвано тем обстоятельством, что на момент использования result не был инициализирован.
Для проверки вставь оператор типа:
Код:
result := 1;
перед строкой, в которой применяется result. Предупреждающее сообщение должно пропасть.

Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функции в языке С. Передача параметров в функции. Создание многофайловых проектов fifaman Общие вопросы C/C++ 6 28.12.2014 15:30
Табулирование заданной функции и определение максимального и минимального значения функции в таблице Марина1986 C/C++ Сетевое программирование 0 07.05.2013 11:31
Использование подпрограммы-функции: Вычислить значение функции (Турбо паскаль) RealUnited Паскаль, Turbo Pascal, PascalABC.NET 1 05.12.2012 20:34
Построение графика функции, мигание(затухание) шарика в минимумах функции kas1m_rus Паскаль, Turbo Pascal, PascalABC.NET 0 27.05.2012 20:28
Как подменить адрес возврата функции func на адрес функции f используя переполнение буфера buf и функции gets dmitrii6120 Помощь студентам 6 14.11.2011 20:10