Je suis en difficulté sur un projet de collège.Le projet doit être fait en utilisant C# comme un langage de programmation et fait sous Windows Form comme. Le programme s'exécute. Je sais qu'il a des défauts mais au moins je veux savoir comment obtenir de cette erreur: http://postimg.org/image/gwuzmyc73/. Pour le problème, j'ai besoin de plier un vecteur en utilisant le Divide et Impera. J'ai besoin d'insérer un nombre à partir du clavier n, le vecteur généré serait comme a = (1,2,3,4,5,6,7) et les éléments finaux sont 1,3,5,7. Le problème ressemble à: Un vecteur de n éléments.Nous définissons son pliage en chevauchant les 2 demi, si n est impair.Les 2 demi sont repliés jusqu'à ce que de subvector atteigne 1 élément.Utiliser Divide et Impera.Vecteur se pliant en utilisant Divide et Impera dans C#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Plierea_Vectorilor
{
public partial class Form1 : Form
{
public int n;
public int i;
public int[] efinal = new int[50];
public string m = new string(new char[50]);
public int Ls, Ld;
public char[] aux = new char[50];
public Form1()
{
InitializeComponent();
}
public void Pliaza(int p,int q)
{
if (p == q)
{
efinal[p] = 1;
}
else
{
if ((q - p + 1) % 2 != 0)
{
Ls = (p + q)/2 - 1;
}
else
{
Ls = (p + q)/2;
}
Ld = (p + q)/2 + 1;
}
Pliaza(p, Ls);
Pliaza(Ld, q);
/*
string ss = Ls.ToString();
string sd = Ld.ToString();
for (i = p; i <= Ls; i++)
{
aux[0] = 'S';
string.Concat(aux, ss);
string.Concat(aux, " ");
string m = aux.ToString();
string.Concat(aux, m[i]);
}
for (i = Ld; i <= q; i++)
{
aux[0] = 'D';
string.Concat(aux,Ld);
string.Concat(aux, " ");
string m = aux.ToString();
string.Concat(aux, m[i]);
}
*/
}
private void button1_Click(object sender, EventArgs e)
{
Pliaza(1, n);
for (i = 1; i <= n; i++)
{
if (efinal[i]!=0)
{
label2.Text = Convert.ToString(i);
}
}
}
private void label2_Click(object sender, EventArgs e)
{
}
}
}
'Plierea_Vectorilor.Form1.Pliaza (int, int)': tous les chemins de code ne retournent pas une valeur –
C'est idiot - c'est un vide, pourquoi devrait-il retourner une valeur? –
J'ai changé "public void Pliaza" en "public int Pliaza" et j'obtiens cette erreur.je ne suis pas si bête ... J'ai essayé de mettre un commentaire le premier "si" mais je vois que j'ai la même erreur , et je suppose que le problème n'est pas là. –