Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать пока времени и остановку по кнопке 
:(
    Опции темы
_OdinO4ka_
Дата 26.5.2008, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 8.11.2006
Где: Самара

Репутация: нет
Всего: нет



Вообщем вопрос следующий, имеется код для вычисления фазы ДОЭ

Код

//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "ImageBase.h"
#include "bmpfile.h"
#include <math.h>
#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

int rect_func(float x) {
          if( abs<float>(x) <= 0.5 )
            {
              return 1;
            }
          else
           {
             return 0;
           }
        };

        int N = 256;
        ImageBase arrayIn(N, N);
        ImageBase arrayIn_Copy(N, N);
        ImageBase CopyArr2(N, N);
        ImageBase value_of_intOut(N, N);
        ImageBase value_of_intIn(N, N);
        ImageBase phasaIn(N, N);
        int i, j, num_it;
        float x, y, epsOne, epsTwo, eps1, eps2;
        float value_of_phasa = 3*3.14/2;
        float intIn = 1.0;
        complex<float> imUnit = complex<float>(0, 1);


//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{

        int SIZE = N;

        for(i = 0; i < SIZE; i++) {
          for(j = 0; j < SIZE; j++) {
            value_of_intIn.ImageComplex[i][j] = intIn;
            }
        }

        for(i = 0; i < SIZE; i++) {
          for(j = 0; j < SIZE; j++) {
            phasaIn.ImageComplex[i][j] = value_of_phasa;
          }
        }


        num_it = 0;
        int it = StrToInt(Form1->Edit3->Text);
        float am, amTwo;
        do {
          num_it++;
          for(i = 0; i< SIZE; i++) {
            for(j = 0; j < SIZE; j++) {
              arrayIn.ImageComplex[i][j] = (value_of_intIn.ImageComplex[i][j])*exp(imUnit*phasaIn.ImageComplex[i][j]);
            }
          }




          arrayIn.fft(1);
          for(i = 0; i< SIZE; i++) {
            for(j = 0; j < SIZE; j++) {
             arrayIn_Copy.ImageComplex[i][j] = arrayIn.ImageComplex[i][j];
            }
          }

          for(i = 0; i< SIZE; i++) {
            for(j = 0; j < SIZE; j++) {
              arrayIn.ImageComplex[i][j] = abs(value_of_intOut.ImageComplex[i][j])*exp(imUnit*arg(arrayIn.ImageComplex[i][j]));
            }
          }

          arrayIn.fft(-1);
          for(i = 0; i< SIZE; i++) {
            for(j = 0; j < SIZE; j++) {
              CopyArr2.ImageComplex[i][j] = arrayIn.ImageComplex[i][j];
            }
          }

          for(i = 0; i< SIZE; i++) {
            for(j = 0; j < SIZE; j++) {
              phasaIn.ImageComplex[i][j] = arg(arrayIn.ImageComplex[i][j]);
            }
          }

          float s1;
          float s2;
          float arr;
          s1 = 0;
          s2 = 0;
          arr = 0;
          CopyArr2.Norm();
          arrayIn_Copy.Norm();
         for( i = 0; i < SIZE; i++) {
            for(j = 0; j < SIZE; j++) {
              arr = abs(CopyArr2.ImageComplex[i][j]) - sqrt(real(value_of_intIn.ImageComplex[i][j]));
              arr = (arr)*(arr);
              s1 += arr;
              s2 += real(value_of_intIn.ImageComplex[i][j]);
            }
          }

          eps1 = sqrt(s1)/sqrt(s2);

          s1 = 0;
          s2 = 0;
          arr = 0;
          for( i = 0; i < SIZE; i++) {
            for(j = 0; j < SIZE; j++) {
              arr = abs(arrayIn_Copy.ImageComplex[i][j]) - sqrt(real(value_of_intOut.ImageComplex[i][j]));
              arr = (arr)*(arr);
              s1 += arr;
              s2 += real(value_of_intOut.ImageComplex[i][j]);
            }
          }
          eps2 = sqrt(s1)/sqrt(s2);
          }
        while (num_it < it);


        phasaIn.ViewImageComplex(Image1, 0, 1.0, 1.0);

        value_of_intOut.ViewImageComplex(Image2, 0, 1.0, 1.0);
        arrayIn_Copy.ViewImageComplex(Image3, 0, 1.0, 1.0);


        Form1->Edit2->Text = eps2;
        Form1->Edit1->Text = eps1;
        Form1->Edit4->Text = num_it;

}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
     phasaIn.WriteFile("phasa.bmp", 1);
}
void __fastcall TForm1::Button4Click(TObject *Sender)
{
     value_of_intOut.WriteFile("image.bmp", 1);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button5Click(TObject *Sender)
{
        value_of_intOut.ReadFile("image.bmp");
        value_of_intOut.ViewImageComplex(Image2, 0, 1.0, 1.0);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button6Click(TObject *Sender)
{
     Form2->Show();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button7Click(TObject *Sender)
{

for(x = 0.0, i = 0; i < N; i++, x++) {
          for(y = 0.0,  j = 0; j < N; j++, y++) {
            value_of_intOut.ImageComplex[i][j] = 0;
          }
        }
        int b, s, d;
        b = StrToInt(Form2->Edit1->Text);
        s = 256 - b;
        d = s/2;
        for(x = 0.0, i = d; i < d + b; i++, x++) {
          for(y = 0.0,  j = d; j < d + b; j++, y++) {
            value_of_intOut.ImageComplex[i][j] = 1;
          }
        }
        value_of_intOut.ViewImageComplex(Image2, 0, 1.0, 1.0);

}
//---------------------------------------------------------------------------


void __fastcall TForm1::Button8Click(TObject *Sender)
{
        
for(x = 0.0, i = 0; i < N; i++, x++) {
          for(y = 0.0,  j = 0; j < N; j++, y++) {
            value_of_intOut.ImageComplex[i][j] = 0;
          }
        }
        int check, dlina, shirina, dl, shir;
        dlina = StrToInt(Form2->Edit3->Text);
        shirina = StrToInt(Form2->Edit2->Text);
        shir = (N - shirina)/2;
        dl = (N - dlina)/2;

        if(Form2->CheckBox1->Checked) {
              check = 1;
        }
        for(i = shir; i < shir + shirina; i++) {
          for(j = dl; j < dlina + dl; j++) {
            if(check == 1) {
                value_of_intOut.ImageComplex[i][j] = 1;
            }
            else {
            value_of_intOut.ImageComplex[j][i] = 1;
            }
          }
        }
        value_of_intOut.ViewImageComplex(Image2, 0, 1.0, 1.0);
}
//---------------------------------------------------------------------------


void __fastcall TForm1::Button9Click(TObject *Sender)
{
         for(x = 0.0, i = 0; i < N; i++, x++) {
          for(y = 0.0,  j = 0; j < N; j++, y++) {
            value_of_intOut.ImageComplex[i][j] = 0;
          }
        }
        int check, dlina, shirina, dl, shir;
        dlina = StrToInt(Form2->Edit4->Text);
        shirina = StrToInt(Form2->Edit5->Text);
        shir = (N - shirina)/2;
        dl = (N - dlina)/2;


        for(i = shir; i < shir + shirina; i++) {
          for(j = dl; j < dlina + dl; j++) {
                value_of_intOut.ImageComplex[i][j] = 1;
                value_of_intOut.ImageComplex[j][i] = 1;
            }

        }
        value_of_intOut.ViewImageComplex(Image2, 0, 1.0, 1.0);
}
//---------------------------------------------------------------------------




у меня возникло два вопроса, мне нужно что бы программа останавливалась по кнопке, а не по циклу while, и как только программа остановлена она показывала бы сколько времени она работала. Заранее спасибо.
PM MAIL   Вверх
mrbrooks
Дата 26.5.2008, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Ух жуть то какая. Без потока тормозит небось.

Используй компонент TTimer и тип данных TDateTime 
PM MAIL   Вверх
_OdinO4ka_
Дата 26.5.2008, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 8.11.2006
Где: Самара

Репутация: нет
Всего: нет



а можешь поподробнее описать, а то программист из меня никудышный )
PM MAIL   Вверх
mrbrooks
Дата 26.5.2008, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Тот код который у тебя в цикле можешь записать в цикл таймера в событие OnTimer. 
Свойство Enabled булево типа 0 - стоп 1 - запуск (false, true).
Interval задает время цикла

При нажатии кнопки "старт" первой переменной типа TDateTime присваиваешь время начала цикла, "стоп" соответственно конец и + время второй переменной типа TDateTime. Разница переменных TDateTime - есть то время сколько выполнялся цикл. Как я понимаю это тебе и нужно  smile 

Это в общих словах.

Лучше конечно было бы использовать потоки и собственно время вычилсять в зависимости от времени жизни потока - но судя по всему пока тебе стоит воздержаться от этого  smile 

Это сообщение отредактировал(а) mrbrooks - 26.5.2008, 13:57
PM MAIL   Вверх
SerK
Дата 26.5.2008, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 31.3.2007

Репутация: нет
Всего: нет



Объявить две переменные 
Код

TDateTime Т1, Т2;


При включении Button1Click-
Код

{
 Timer1->Enabled=true;
 Т1=Time();
}

При включении Button2Click-
Код

{
 Timer1->Enabled=false;//нужно прописать в другой кнопке.
}


В процедуре TimerTimer (дважды щелкнуть на значке Timer):
Код

{
 StringS;
 Т2=Time();
  DateTimeToString(S,"hh:mm:ss",T2-T1);
 //и вывести данные на экран
 Label1->Caption=S;
}





--------------------
Пусть будет миру хорошо!
PM MAIL   Вверх
mrbrooks
Дата 26.5.2008, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Serk нам надо работать в паре  smile 
PM MAIL   Вверх
SerK
Дата 26.5.2008, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 31.3.2007

Репутация: нет
Всего: нет



mrbrooks

Вот уж и вправду, мысли материальны, почти у нас совпали.


--------------------
Пусть будет миру хорошо!
PM MAIL   Вверх
_OdinO4ka_
Дата 26.5.2008, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 8.11.2006
Где: Самара

Репутация: нет
Всего: нет



Изменил код 

Код

//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "ImageBase.h"
#include "bmpfile.h"
#include <math.h>
#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

int rect_func(float x) {
          if( abs<float>(x) <= 0.5 )
            {
              return 1;
            }
          else
           {
             return 0;
           }
        };

        int N = 256;
        TDateTime Ò1, Ò2;
        ImageBase arrayIn(N, N);
        ImageBase arrayIn_Copy(N, N);
        ImageBase CopyArr2(N, N);
        ImageBase value_of_intOut(N, N);
        ImageBase value_of_intIn(N, N);
        ImageBase phasaIn(N, N);
        int i, j, num_it;
        float x, y, epsOne, epsTwo, eps1, eps2;
        float value_of_phasa = 3*3.14/2;
        float intIn = 1.0;
        complex<float> imUnit = complex<float>(0, 1);


//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
        Timer1->Enabled=true;
        Ò1=Time();

        int SIZE = N;

        for(i = 0; i < SIZE; i++) {
          for(j = 0; j < SIZE; j++) {
            value_of_intIn.ImageComplex[i][j] = intIn;
            }
        }

        for(i = 0; i < SIZE; i++) {
          for(j = 0; j < SIZE; j++) {
            phasaIn.ImageComplex[i][j] = value_of_phasa;
          }
        }


        num_it = 0;
        int it = StrToInt(Form1->Edit3->Text);
        float am, amTwo;
        do {
          num_it++;
          for(i = 0; i< SIZE; i++) {
            for(j = 0; j < SIZE; j++) {
              arrayIn.ImageComplex[i][j] = (value_of_intIn.ImageComplex[i][j])*exp(imUnit*phasaIn.ImageComplex[i][j]);
            }
          }




          arrayIn.fft(1);
          for(i = 0; i< SIZE; i++) {
            for(j = 0; j < SIZE; j++) {
             arrayIn_Copy.ImageComplex[i][j] = arrayIn.ImageComplex[i][j];
            }
          }

          for(i = 0; i< SIZE; i++) {
            for(j = 0; j < SIZE; j++) {
              arrayIn.ImageComplex[i][j] = abs(value_of_intOut.ImageComplex[i][j])*exp(imUnit*arg(arrayIn.ImageComplex[i][j]));
            }
          }

          arrayIn.fft(-1);
          for(i = 0; i< SIZE; i++) {
            for(j = 0; j < SIZE; j++) {
              CopyArr2.ImageComplex[i][j] = arrayIn.ImageComplex[i][j];
            }
          }

          for(i = 0; i< SIZE; i++) {
            for(j = 0; j < SIZE; j++) {
              phasaIn.ImageComplex[i][j] = arg(arrayIn.ImageComplex[i][j]);
            }
          }

          float s1;
          float s2;
          float arr;
          s1 = 0;
          s2 = 0;
          arr = 0;
          CopyArr2.Norm();
          arrayIn_Copy.Norm();
         for( i = 0; i < SIZE; i++) {
            for(j = 0; j < SIZE; j++) {
              arr = abs(CopyArr2.ImageComplex[i][j]) - sqrt(real(value_of_intIn.ImageComplex[i][j]));
              arr = (arr)*(arr);
              s1 += arr;
              s2 += real(value_of_intIn.ImageComplex[i][j]);
            }
          }

          eps1 = sqrt(s1)/sqrt(s2);

          s1 = 0;
          s2 = 0;
          arr = 0;
          for( i = 0; i < SIZE; i++) {
            for(j = 0; j < SIZE; j++) {
              arr = abs(arrayIn_Copy.ImageComplex[i][j]) - sqrt(real(value_of_intOut.ImageComplex[i][j]));
              arr = (arr)*(arr);
              s1 += arr;
              s2 += real(value_of_intOut.ImageComplex[i][j]);
            }
          }
          eps2 = sqrt(s1)/sqrt(s2);
          }
        while (num_it < it);


        phasaIn.ViewImageComplex(Image1, 0, 1.0, 1.0);

        value_of_intOut.ViewImageComplex(Image2, 0, 1.0, 1.0);
        arrayIn_Copy.ViewImageComplex(Image3, 0, 1.0, 1.0);


        Form1->Edit2->Text = eps2;
        Form1->Edit1->Text = eps1;
        Form1->Edit4->Text = num_it;

}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
//     phasaIn.WriteFile("phasa.bmp", 1);
        Timer1->Enabled=false;
}
void __fastcall TForm1::Button4Click(TObject *Sender)
{
     value_of_intOut.WriteFile("image.bmp", 1);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button5Click(TObject *Sender)
{
        value_of_intOut.ReadFile("image.bmp");
        value_of_intOut.ViewImageComplex(Image2, 0, 1.0, 1.0);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button6Click(TObject *Sender)
{
     Form2->Show();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button7Click(TObject *Sender)
{

for(x = 0.0, i = 0; i < N; i++, x++) {
          for(y = 0.0,  j = 0; j < N; j++, y++) {
            value_of_intOut.ImageComplex[i][j] = 0;
          }
        }
        int b, s, d;
        b = StrToInt(Form2->Edit1->Text);
        s = 256 - b;
        d = s/2;
        for(x = 0.0, i = d; i < d + b; i++, x++) {
          for(y = 0.0,  j = d; j < d + b; j++, y++) {
            value_of_intOut.ImageComplex[i][j] = 1;
          }
        }
        value_of_intOut.ViewImageComplex(Image2, 0, 1.0, 1.0);

}
//---------------------------------------------------------------------------


void __fastcall TForm1::Button8Click(TObject *Sender)
{
        
for(x = 0.0, i = 0; i < N; i++, x++) {
          for(y = 0.0,  j = 0; j < N; j++, y++) {
            value_of_intOut.ImageComplex[i][j] = 0;
          }
        }
        int check, dlina, shirina, dl, shir;
        dlina = StrToInt(Form2->Edit3->Text);
        shirina = StrToInt(Form2->Edit2->Text);
        shir = (N - shirina)/2;
        dl = (N - dlina)/2;

        if(Form2->CheckBox1->Checked) {
              check = 1;
        }
        for(i = shir; i < shir + shirina; i++) {
          for(j = dl; j < dlina + dl; j++) {
            if(check == 1) {
                value_of_intOut.ImageComplex[i][j] = 1;
            }
            else {
            value_of_intOut.ImageComplex[j][i] = 1;
            }
          }
        }
        value_of_intOut.ViewImageComplex(Image2, 0, 1.0, 1.0);
}
//---------------------------------------------------------------------------


void __fastcall TForm1::Button9Click(TObject *Sender)
{
         for(x = 0.0, i = 0; i < N; i++, x++) {
          for(y = 0.0,  j = 0; j < N; j++, y++) {
            value_of_intOut.ImageComplex[i][j] = 0;
          }
        }
        int check, dlina, shirina, dl, shir;
        dlina = StrToInt(Form2->Edit4->Text);
        shirina = StrToInt(Form2->Edit5->Text);
        shir = (N - shirina)/2;
        dl = (N - dlina)/2;


        for(i = shir; i < shir + shirina; i++) {
          for(j = dl; j < dlina + dl; j++) {
                value_of_intOut.ImageComplex[i][j] = 1;
                value_of_intOut.ImageComplex[j][i] = 1;
            }

        }
        value_of_intOut.ViewImageComplex(Image2, 0, 1.0, 1.0);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
StringS;
 Ò2=Time();
  DateTimeToString(S,"hh:mm:ss",T2-T1);
 //è âûâåñòè äàííûå íà ýêðàí
 Label1->Caption=S;
}
//---------------------------------------------------------------------------




выдает следующие ошибки

[C++ Error] Unit1.cpp(26): E2206 Illegal character 'Ò' (0xd2)
[C++ Error] Unit1.cpp(26): E2040 Declaration terminated incorrectly
[C++ Error] Unit1.cpp(26): E2206 Illegal character 'Ò' (0xd2)
[C++ Error] Unit1.cpp(50): E2206 Illegal character 'Ò' (0xd2)
[C++ Error] Unit1.cpp(50): E2277 Lvalue required
[C++ Error] Unit1.cpp(260): E2451 Undefined symbol 'StringS'
[C++ Error] Unit1.cpp(261): E2206 Illegal character 'Ò' (0xd2)
[C++ Error] Unit1.cpp(261): E2277 Lvalue required
[C++ Error] Unit1.cpp(262): E2451 Undefined symbol 'S'
[C++ Error] Unit1.cpp(262): E2451 Undefined symbol 'T2'
[C++ Error] Unit1.cpp(262): E2451 Undefined symbol 'T1'

Добавлено через 1 минуту и 56 секунд
если я правильно понял мы со вкладки system кидаем timer, так?
PM MAIL   Вверх
mrbrooks
Дата 26.5.2008, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



1. String S  а не StringS - описался человек
2. У тебя что - то с символами - Т -  не русское случем?
PM MAIL   Вверх
_OdinO4ka_
Дата 26.5.2008, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 8.11.2006
Где: Самара

Репутация: нет
Всего: нет



первую ошибку я уже пофиксил забыл описать, теперь подправил немного возникает вот что (я постоянно скидывать код тогда буду для ясности)

Код

//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "ImageBase.h"
#include "bmpfile.h"
#include <math.h>
#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

int rect_func(float x) {
          if( abs<float>(x) <= 0.5 )
            {
              return 1;
            }
          else
           {
             return 0;
           }
        };

        int N = 256;
        TDateTime T1, T2;
        ImageBase arrayIn(N, N);
        ImageBase arrayIn_Copy(N, N);
        ImageBase CopyArr2(N, N);
        ImageBase value_of_intOut(N, N);
        ImageBase value_of_intIn(N, N);
        ImageBase phasaIn(N, N);
        int i, j, num_it;
        float x, y, epsOne, epsTwo, eps1, eps2;
        float value_of_phasa = 3*3.14/2;
        float intIn = 1.0;
        complex<float> imUnit = complex<float>(0, 1);


//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
        Timer1->Enabled=true;
        T1=Time();

        int SIZE = N;

        for(i = 0; i < SIZE; i++) {
          for(j = 0; j < SIZE; j++) {
            value_of_intIn.ImageComplex[i][j] = intIn;
            }
        }

        for(i = 0; i < SIZE; i++) {
          for(j = 0; j < SIZE; j++) {
            phasaIn.ImageComplex[i][j] = value_of_phasa;
          }
        }


        num_it = 0;
        int it = StrToInt(Form1->Edit3->Text);
        float am, amTwo;
        do {
          num_it++;
          for(i = 0; i< SIZE; i++) {
            for(j = 0; j < SIZE; j++) {
              arrayIn.ImageComplex[i][j] = (value_of_intIn.ImageComplex[i][j])*exp(imUnit*phasaIn.ImageComplex[i][j]);
            }
          }




          arrayIn.fft(1);
          for(i = 0; i< SIZE; i++) {
            for(j = 0; j < SIZE; j++) {
             arrayIn_Copy.ImageComplex[i][j] = arrayIn.ImageComplex[i][j];
            }
          }

          for(i = 0; i< SIZE; i++) {
            for(j = 0; j < SIZE; j++) {
              arrayIn.ImageComplex[i][j] = abs(value_of_intOut.ImageComplex[i][j])*exp(imUnit*arg(arrayIn.ImageComplex[i][j]));
            }
          }

          arrayIn.fft(-1);
          for(i = 0; i< SIZE; i++) {
            for(j = 0; j < SIZE; j++) {
              CopyArr2.ImageComplex[i][j] = arrayIn.ImageComplex[i][j];
            }
          }

          for(i = 0; i< SIZE; i++) {
            for(j = 0; j < SIZE; j++) {
              phasaIn.ImageComplex[i][j] = arg(arrayIn.ImageComplex[i][j]);
            }
          }

          float s1;
          float s2;
          float arr;
          s1 = 0;
          s2 = 0;
          arr = 0;
          CopyArr2.Norm();
          arrayIn_Copy.Norm();
         for( i = 0; i < SIZE; i++) {
            for(j = 0; j < SIZE; j++) {
              arr = abs(CopyArr2.ImageComplex[i][j]) - sqrt(real(value_of_intIn.ImageComplex[i][j]));
              arr = (arr)*(arr);
              s1 += arr;
              s2 += real(value_of_intIn.ImageComplex[i][j]);
            }
          }

          eps1 = sqrt(s1)/sqrt(s2);

          s1 = 0;
          s2 = 0;
          arr = 0;
          for( i = 0; i < SIZE; i++) {
            for(j = 0; j < SIZE; j++) {
              arr = abs(arrayIn_Copy.ImageComplex[i][j]) - sqrt(real(value_of_intOut.ImageComplex[i][j]));
              arr = (arr)*(arr);
              s1 += arr;
              s2 += real(value_of_intOut.ImageComplex[i][j]);
            }
          }
          eps2 = sqrt(s1)/sqrt(s2);
          }
        while (num_it < it);


        phasaIn.ViewImageComplex(Image1, 0, 1.0, 1.0);

        value_of_intOut.ViewImageComplex(Image2, 0, 1.0, 1.0);
        arrayIn_Copy.ViewImageComplex(Image3, 0, 1.0, 1.0);


        Form1->Edit2->Text = eps2;
        Form1->Edit1->Text = eps1;
        Form1->Edit4->Text = num_it;

}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
//     phasaIn.WriteFile("phasa.bmp", 1);
        Timer1->Enabled=false;
}
void __fastcall TForm1::Button4Click(TObject *Sender)
{
     value_of_intOut.WriteFile("image.bmp", 1);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button5Click(TObject *Sender)
{
        value_of_intOut.ReadFile("image.bmp");
        value_of_intOut.ViewImageComplex(Image2, 0, 1.0, 1.0);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button6Click(TObject *Sender)
{
     Form2->Show();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button7Click(TObject *Sender)
{

for(x = 0.0, i = 0; i < N; i++, x++) {
          for(y = 0.0,  j = 0; j < N; j++, y++) {
            value_of_intOut.ImageComplex[i][j] = 0;
          }
        }
        int b, s, d;
        b = StrToInt(Form2->Edit1->Text);
        s = 256 - b;
        d = s/2;
        for(x = 0.0, i = d; i < d + b; i++, x++) {
          for(y = 0.0,  j = d; j < d + b; j++, y++) {
            value_of_intOut.ImageComplex[i][j] = 1;
          }
        }
        value_of_intOut.ViewImageComplex(Image2, 0, 1.0, 1.0);

}
//---------------------------------------------------------------------------


void __fastcall TForm1::Button8Click(TObject *Sender)
{
        
for(x = 0.0, i = 0; i < N; i++, x++) {
          for(y = 0.0,  j = 0; j < N; j++, y++) {
            value_of_intOut.ImageComplex[i][j] = 0;
          }
        }
        int check, dlina, shirina, dl, shir;
        dlina = StrToInt(Form2->Edit3->Text);
        shirina = StrToInt(Form2->Edit2->Text);
        shir = (N - shirina)/2;
        dl = (N - dlina)/2;

        if(Form2->CheckBox1->Checked) {
              check = 1;
        }
        for(i = shir; i < shir + shirina; i++) {
          for(j = dl; j < dlina + dl; j++) {
            if(check == 1) {
                value_of_intOut.ImageComplex[i][j] = 1;
            }
            else {
            value_of_intOut.ImageComplex[j][i] = 1;
            }
          }
        }
        value_of_intOut.ViewImageComplex(Image2, 0, 1.0, 1.0);
}
//---------------------------------------------------------------------------


void __fastcall TForm1::Button9Click(TObject *Sender)
{
         for(x = 0.0, i = 0; i < N; i++, x++) {
          for(y = 0.0,  j = 0; j < N; j++, y++) {
            value_of_intOut.ImageComplex[i][j] = 0;
          }
        }
        int check, dlina, shirina, dl, shir;
        dlina = StrToInt(Form2->Edit4->Text);
        shirina = StrToInt(Form2->Edit5->Text);
        shir = (N - shirina)/2;
        dl = (N - dlina)/2;


        for(i = shir; i < shir + shirina; i++) {
          for(j = dl; j < dlina + dl; j++) {
                value_of_intOut.ImageComplex[i][j] = 1;
                value_of_intOut.ImageComplex[j][i] = 1;
            }

        }
        value_of_intOut.ViewImageComplex(Image2, 0, 1.0, 1.0);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
TDateTime T1, T2;
String S;
 T2=Time();
  DateTimeToString(S,"hh:mm:ss",T2-T1);
 //è âûâåñòè äàííûå íà ýêðàí
 Label1->Caption=S;
}
//---------------------------------------------------------------------------


[Linker Error] Unresolved external '__fastcall TForm1::Edit5Change(System::TObject *)' referenced from D:\FLASH\ÊÎÏÈß ÑÒÀÐÎÃÎ ÍÈÐÀ\ÍÈÐ\UNIT1.OBJ

а вот собственно ошибка какая
PM MAIL   Вверх
mrbrooks
Дата 26.5.2008, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Почисти в хидаре к первой форме событие __fastcall TForm1::Edit5Change(System::TObject *)  - я полагаю ты в ручную удалил его.

Добавлено через 2 минуты и 6 секунд
Слушай а  у тебя в пути что кириллица присутствует?
PM MAIL   Вверх
_OdinO4ka_
Дата 27.5.2008, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 8.11.2006
Где: Самара

Репутация: нет
Всего: нет



ну да там что то типа Диплом бакалавра написано, проверь свои личные сообщения
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.1113 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.