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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2013, 20:13   #1
Petyu
Пользователь
 
Регистрация: 04.12.2012
Сообщений: 23
По умолчанию Подпрограмма

Ребят помогите разобраться с подпрограммой что в ней не так??? если можете исправьте пожалуйста
Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
#include <math.h>
void __fastcall TForm1::Button1Click(TObject *Sender)
{
const pi=3.14;
const int n=20;
double sum,z,c,q,y;
int j,r;
double x;
void f1(double x);
{
   int s=0,c=0;
   for(int i=1;i<=n;i++)
   {
      int on=n%2?-1:1;
      c=on*cos(i*x)/(i*i);
      s+=c;
   }
}
int main()
{
   for(int r=0;r<=10;r++)
   {
      z=pi/5+(r*4*pi)/50;
      y=1/4*(z*z-pi*pi/3);
      f1(sum,z,c,q,y);
      Label1->Caption=FloatToStr(z);
   }
}
}
//---------------------------------------------------------------------------
Petyu вне форума Ответить с цитированием
Старый 22.03.2013, 06:27   #2
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

А разве мейна уже в другом файле нет (в котором форма создается)? И что вообще должна делать ваша прога?
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Старый 22.03.2013, 12:44   #3
Petyu
Пользователь
 
Регистрация: 04.12.2012
Сообщений: 23
По умолчанию

Цитата:
Сообщение от Ezhik Kihze Посмотреть сообщение
А разве мейна уже в другом файле нет (в котором форма создается)? И что вообще должна делать ваша прога?
я составляю программу вычисления функции y и суммы s представляющей собой формулу разложения заданной функции у в ряд.
Petyu вне форума Ответить с цитированием
Старый 22.03.2013, 12:46   #4
Petyu
Пользователь
 
Регистрация: 04.12.2012
Сообщений: 23
По умолчанию

[C++ Error] Unit1.cpp(41): E2193 Too few parameters in call to 'f1(double)'
[C++ Warning] Unit1.cpp(45): W8004 'y' is assigned a value that is never used
выдаёт такие ошибки.(((
Petyu вне форума Ответить с цитированием
Старый 22.03.2013, 13:26   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

эту программу Вы сами писали?
объясните (себе в первую очередь), что означает строчка
Цитата:
Код:
void f1(double x);
{
Особенно то, что в скобочках (double x)

а теперь, внимание, что такое:
Цитата:
Код:
      f1(sum,z,c,q,y);
что в скобочках?!

Цитата:
[C++ Warning] Unit1.cpp(45): W8004 'y' is assigned a value that is never used
это вообще не ошибка - предупреждение - Y присваиваете и не негде после этого назначенное значение не используется!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.03.2013, 13:38   #6
Petyu
Пользователь
 
Регистрация: 04.12.2012
Сообщений: 23
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
эту программу Вы сами писали?
объясните (себе в первую очередь), что означает строчка

Особенно то, что в скобочках (double x)

а теперь, внимание, что такое:

что в скобочках?!


это вообще не ошибка - предупреждение - Y присваиваете и не негде после этого назначенное значение не используется!
я переписывал её с кода паскаля в с++
Код:
program podprograma2;
    const n=20;
  var sum,z,c1,q,y:real; j,r:integer;
  procedure f1(x:real;var c,s:real;var i:integer);
   begin
     s:=0; c:=0;
     for i:=1 to n do
       begin
       c:=power((-1),i)*(cos(i*x))/(i*i);
             s:=s+c;
       end;
   end;
   begin

   for r:=0 to 10 do
   begin
   z:=pi/5+(r*4*pi)/50;
   y:=1/4*(z*z-pi*pi/3);
   f1(z,c1,sum,j);
   writeln('x=',z,'   y=',y,'   s=',sum);
   end;
   end.
я с++ не очень хорошо знаю
Petyu вне форума Ответить с цитированием
Старый 22.03.2013, 13:49   #7
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

Цитата:
объясните (себе в первую очередь), что означает строчка
и еще, что в данном месте точка с запятой не нужна... ибо сделает не то, что вы планировали

2 Petyu
Объясните, как связан ваш ответ с моим вопросом?
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Старый 22.03.2013, 13:52   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

я тоже не знаю C/C++
но и того, что я знаю, мне достаточно, чтобы увидеть, что в программе на Паскаль в процедуре f1 было описано 4(четыре) параметра:
Цитата:
Код:
procedure f1(x:real;var c,s:real;var i:integer);
и вызывалась она так же с четырьмя (фактическими) параметрами:
Цитата:
Код:
  f1(z,c1,sum,j);
у Вас же при описании процедуры f1 описан один параметер.
А при вызове - ПЯТЬ!
Это ошибка.



p.s. а ещё, не знаю, понимаете ли Вы или нет, но не только количество, но порядок параметров в описании (формальные параметры) и при вызове (фактические параметры) должен СТРОГО совпадать! у Вас в Паскале f1(z,c1,sum,j) а в C: f1(sum,z,c,q,y);
согласитесь, что это, мягко говоря, не совпадает..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.03.2013, 15:18   #9
FataLL
Форумчанин
 
Аватар для FataLL
 
Регистрация: 29.01.2013
Сообщений: 319
По умолчанию

Ну и контрольный.. :-) В С++ нет внутренних процедур и функций. В Паскале есть, а в С - нет.
FataLL вне форума Ответить с цитированием
Старый 22.03.2013, 18:56   #10
Petyu
Пользователь
 
Регистрация: 04.12.2012
Сообщений: 23
По умолчанию

ну переписал я её что в ней не так???
Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
#include <math.h>
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 const pi=3.14;
 const n=20;
 void f1(float x,float c,float s,int i);
 void main()
{
float sum,z,c1,q,y;
int j,r;
   for (r=0;r<10;r++){

   z=pi/5+(r*4*pi)/50;
   y=1/4*(z*z-pi*pi/3);
   f1(z,c1,sum,j);

   Label1->Caption=FloatToStr(z);
   Label2->Caption=FloatToStr(y);
   Label3->Caption=FloatToStr(sum);
   }
 }
  void f1(float x,float c,float s,int i)
  {
   s=0; c=0;
     for (i=1;i<=n;i++)
       {
       c=pow((-1),i)*(cos(i*x))/(i*i);
             s=s+c;
           }
}
}
//---------------------------------------------------------------------------
Petyu вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подпрограмма Seferus Паскаль, Turbo Pascal, PascalABC.NET 1 09.12.2011 20:20
Подпрограмма на С++ serega260394 Помощь студентам 2 23.12.2010 09:37
Подпрограмма serega260394 Помощь студентам 1 18.12.2010 07:26
Подпрограмма peter065 Помощь студентам 10 11.10.2010 22:51
Подпрограмма Maks6169 Помощь студентам 4 13.02.2010 12:30