def METHOD_NAME(isAnd):
    if isAnd:
        X = numpy.delete(AND_MATRIX,3,1)
        Y = numpy.delete(AND_MATRIX,(0,1,2),1)
    else:
        X = numpy.delete(OR_MATRIX,3,1)
        Y = numpy.delete(OR_MATRIX,(0,1,2),1)
    graphicList = []
    iterationsList = []
    eta = 0.5
    exitCondition = 0.01
    counter = 0
    exit = False
    wList = []
    #Creating first random weights
    for i in range(3):
        wList.append(random.randint(0,100)/100)
    W = numpy.asmatrix(wList)
    print("RANDOMLY GENERATED Weights: ")
    print(W)
    while not exit:
        #Cálculo de U
        print('********************************* ITERATION ' + str(counter))
        print("Weights: ")
        print(W)
        U = X * W.transpose()
        #Función de activación (para Yc)
        ycList = []
        for u in U:
            if(u <= 0):
                ycList.append(0)
            else:
                ycList.append(1)
        Yc = numpy.asmatrix(ycList).transpose()
        #Cálculo de la matriz de error
        E = Y - Yc
        #Cálculo de los nuevos pesos ( W(k+1) )
        W = W + (eta * (E.transpose() * X))
        #Cálculo de la norma euclidiana
        e = LA.norm(E)
        graphicList.append(e)
        if(e < exitCondition):
            exit = True
        print('U: ')
        print(U)
        print('Yc: ')
        print(Yc)
        print('E: ')
        print(E)
        print('e: ' + str(e))
        iterationsList.append(counter)
        counter += 1
    print("FINAL Weights: ")
    print(W)
    trainedNeuron = TrainedNeuron(W)
    testTrainedNeuron(trainedNeuron,graphicList,iterationsList)