Exemple #1
0
/**
 * Call this method to generate Pascal code for a UMLClassifier.
 * @param c   the class to generate code for
 */
void PascalWriter::writeClass(UMLClassifier *c)
{
    if (!c) {
        uDebug() << "Cannot write class of NULL concept!";
        return;
    }

    const bool isClass = !c->isInterface();
    QString classname = cleanName(c->name());
    QString fileName = qualifiedName(c).toLower();
    fileName.replace(QLatin1Char('.'), QLatin1Char('-'));

    //find an appropriate name for our file
    fileName = overwritableName(c, fileName, QLatin1String(".pas"));
    if (fileName.isEmpty()) {
        emit codeGenerated(c, false);
        return;
    }

    QFile file;
    if (!openFile(file, fileName)) {
        emit codeGenerated(c, false);
        return;
    }

    // Start generating the code.

    QTextStream pas(&file);
    //try to find a heading file(license, comments, etc)
    QString str;
    str = getHeadingFile(QLatin1String(".pas"));
    if (!str.isEmpty()) {
        str.replace(QRegExp(QLatin1String("%filename%")), fileName);
        str.replace(QRegExp(QLatin1String("%filepath%")), file.fileName());
        pas << str << endl;
    }

    QString unit = qualifiedName(c);
    pas << "unit " << unit << ";" << m_endl << m_endl;
    pas << "INTERFACE" << m_endl << m_endl;
    // Use referenced classes.
    UMLPackageList imports;
    findObjectsRelated(c, imports);
    if (imports.count()) {
        pas << "uses" << m_endl;
        bool first = true;
        foreach (UMLPackage* con, imports) {
            if (con->baseType() != UMLObject::ot_Datatype) {
                if (first)
                    first = false;
                else
                    pas << "," << m_endl;
                pas << "  " << qualifiedName(con);
            }
        }
        pas << ";" << m_endl << m_endl;
    }
Exemple #2
0
void adaline(base_t * data,double seuil){
   	int j,i,test=0,compteur=0;
   	double o=0;
	double copie[(data->n)];
	double descente[(data->n)];	
	double epsilon;
	srand(time(0));
   	for(i=0;i<(data->n);i++)
		(data->w)[i]=rand()%10;
	j=0;
	
	
	
	do{
		for(i=0;i<(data->n);i++)
			copie[i]=(data->w)[i];									
		o=produitScalaire((data->x)[j],data->w,(data->n));
		
		
		for(i=0;i<(data->n);i++)
		{
					
			descente[i]=(((data->c)[j]-o)*((data->x)[j][i]));
			/*printf("sur l'échantillon %d, la direction sur %d est %lf\n",j,i,descente[i]);*/
		}
		
		epsilon=pas(data,descente);
		/*printf("epsilon %e\n",epsilon);*/
		for(i=0;i<data->n;i++){
			
			data->w[i]=data->w[i]+descente[i]*epsilon;
		}
		j=(j+1)%(data->p);
		
		compteur++;
		/*printf(" Le pas vaut %lf, echantillon %d\n",epsilon,j);*/
		
		
		if(j==0){
			
			test=testb(copie,data->w,data->n,seuil);

		}
			
		
		
	}while(compteur<data->p*20||!test);
	afficherW(data);
	printf("%d corrections avec adaline\n",compteur);
}
 vector<int> getRow(int rowIndex) {
     if (rowIndex < 0) return vector<int>();
     if (rowIndex == 0) return vector<int>(1, 1);
     
     vector<int> prev = vector<int>(2, 1);
     for (int i=2; i<=rowIndex; i++) {
         vector<int> pas(prev.size() + 1, 1);
         for (int p=1; p < prev.size(); p++) {
             pas[p] = prev[p-1] + prev[p];
         }
         prev = pas;
     }
     return prev;
 }
Exemple #4
0
void descenteGradient(base_t * data,double seuil){

	int i,j,compteur=0;
	double copie[(data->n)];
	double descente[(data->n)];
	double o[(data->p)];
	double epsilon;
	srand(time(0));
	for(i=0;i<(data->n);i++){
		(data->w)[i]=rand()%100;
	}
	
	do{
		
		for(i=0;i<(data->n);i++){
			descente[i]=0;
			copie[i]=data->w[i];
		}

		for(i=0;i<data->p;i++){
			
			
			
			for(j=0;j<(data->n);j++){
				
				descente[j]=descente[j]+(data->c[i]-produitScalaire((data->x)[i],data->w,(data->n)))*data->x[i][j];
			}
		}
		epsilon=pas(data,descente);
		/*printf("epsilon %e\n",epsilon);*/
		
		for(i=0;i<data->n;i++){
			
			data->w[i]=data->w[i]+descente[i]*epsilon;
			/*descente[i]=descente[i]*epsilon;*/
		}
		compteur++;
		
		
		
		
	}while(!testb(copie,data->w,(data->n),seuil)||compteur<data->p);
	afficherW(data);	
	printf("On a %d corrections avec descente de gradient\n",compteur*(data->n));
	
}
TEST(IEStackString, ConcatIndexOf)
{
	// Concat
	IEStackString<7> string1 = "123";
	IEStackString<7> string2 = "568";
	IEStackString<7> result = string1.Concatenate<7>(string2);
	IEStackString<7> death;

	EXPECT_EQ('1', result.CharAt(0));
	EXPECT_EQ('2', result.CharAt(1));
	EXPECT_EQ('3', result.CharAt(2));
	EXPECT_EQ('5', result.CharAt(3));
	EXPECT_EQ('6', result.CharAt(4));
	EXPECT_EQ('8', result.CharAt(5));
	EXPECT_EQ(6, result.Length());
	EXPECT_DEATH(death = result.Concatenate<7>(string1), IE_TEST_ASSERT_FAIL_STRING);
	
	// First Index Of
	IEStackString<> findString = "kas takas as pas lapas";
	// Char
	EXPECT_EQ(1, findString.FirstIndexOf('a'));
	EXPECT_EQ(0, findString.FirstIndexOf('k'));
	EXPECT_EQ(-1, findString.FirstIndexOf('1'));

	// C String
	EXPECT_EQ(1, findString.FirstIndexOf("as", 2));
	EXPECT_EQ(13, findString.FirstIndexOf("pas", 3));
	EXPECT_EQ(4, findString.FirstIndexOf("takas", 5));
	EXPECT_EQ(-1, findString.FirstIndexOf("stuff", 5));
	EXPECT_DEATH(findString.FirstIndexOf("stuff", -1), IE_TEST_ASSERT_FAIL_STRING);

	// Stack String
	IEStackString<> as("as");
	IEStackString<> pas("pas");
	IEStackString<> takas("takas");
	IEStackString<> stuff("stuff");
	EXPECT_EQ(1, findString.FirstIndexOf(as));
	EXPECT_EQ(13, findString.FirstIndexOf(pas));
	EXPECT_EQ(4, findString.FirstIndexOf(takas));
	EXPECT_EQ(-1, findString.FirstIndexOf(stuff));
	EXPECT_EQ(0, findString.FirstIndexOf(findString));

	// Last Index Of
	// Char
	//IEStackString<> findString = "kas takas as pas lapas"
	EXPECT_EQ(20, findString.LastIndexOf('a'));
	EXPECT_EQ(6, findString.LastIndexOf('k'));
	EXPECT_EQ(-1, findString.LastIndexOf('1'));

	// C String
	EXPECT_EQ(20, findString.LastIndexOf("as", 2));
	EXPECT_EQ(19, findString.LastIndexOf("pas", 3));
	EXPECT_EQ(4, findString.LastIndexOf("takas", 5));
	EXPECT_EQ(-1, findString.LastIndexOf("stuff", 5));
	EXPECT_DEATH(findString.LastIndexOf("stuff", -1), IE_TEST_ASSERT_FAIL_STRING);

	// Stack String
	EXPECT_EQ(20, findString.LastIndexOf(as));
	EXPECT_EQ(19, findString.LastIndexOf(pas));
	EXPECT_EQ(4, findString.LastIndexOf(takas));
	EXPECT_EQ(-1, findString.LastIndexOf(stuff));
	EXPECT_EQ(0, findString.LastIndexOf(findString));
}