Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Itzhack

#1
Me respondo yo mismo, la verificación se hace en el programa principal (main) y no al interior de la clase. Anduve un poco confundido al respecto.
#2
Hola, tengo una consulta, y no sé si sea necesario introducir mi código aquí, pues son varios ficheros, y ahí justo le problema. Comienzo:

Primero desarrollé dos ficheros: verificarNombre.h y verficarNombre.cpp. Son ficheros solo con funciones, nada de clases y que son funciones para validar el formato de nombres(solo letras y espacios) y retornar verdadero o falso. por ejemplo:

int main(){
    validarnombre(Jorge Luis) //retorna true
    validarNombre(J0rg3 Lu1S) //Retorna false.
}

Ahora comienza mi problema, estoy ahora viendo clases, y estoy desarrollando la clase Obra en los ficheros obras.h y obras.cpp. Esto consiste en crear metodos para introducir, validar, dar formato e imprimir titulos de obras. por ejemplo: crear el objeto Quijote, que al final debe imprimir:

Miguel de Cervantes. Don Quijote de la Mancha. Editorial La lengua ardiente.

Ahora, para validar que el usuario ingrese solo letras y espacios, y considerando que ya tengo otro programa que ya hace eso. Cómo lo puedo reutilizar? Cómo reutilizar validarNombre.cpp y validarNombre.h en los ficheros obras.cpp y obras.h que contienen mi clase?

Les dejo el prototipo de mi clase obra.h (cambie la nomenclatura de los getter y setter por req(get) y asg(set))



#ifndef OBRA_H_
#define OBRA_H_

namespace util {

class obra {
public:
obra( const std::string& p_autor,
const std::string& p_titulo,
const std::string& p_editor);
virtual ~obra();

const std::string& regAutor() const;
void asgAutor(const std::string& p_autor);
const std::string& regEditor() const;
void asgEditor(const std::string& p_editor);
const std::string& regTitulo() const;
void asgTitulo(const std::string& p_titulo);


void asgAuteurs(const std::string& p_auteurs);
std::string reqOuvrageFormate() const;

private:
std::string m_autor;
std::string m_titulo;
std::string m_editor;
};

} /* namespace util */

#endif /* OBRA_H_ */



Gracias y espero sus comentarios,

Saludos
#3
Scripting / Re: DuDas sobre funciones Python"
9 Febrero 2015, 14:47 PM
Muchas Gracias GonzaFZ!!!

Sos Grande!!!  ;-)
#4
Scripting / Re: DuDas sobre funciones Python"
9 Febrero 2015, 13:29 PM
Si, te entiendo lo de concadenar los string. Pero no sé como hacerlo, me podrias dejar un ejemplo pequeño, para luego yo poder aplicarlo en mis dos programas: Por favor!!!  :silbar:
#5
Scripting / Re: DuDas sobre funciones Python"
9 Febrero 2015, 12:11 PM
Hola GonzaFZ,

Muchas gracias por la rápida respuestas. Lo de la listas, pasa que llevo un curso a distancia en programacion en Python, y el profe dejo como tarea eso, hacer un programa que pida un número y retorne sus factores. (pero como aun no vemos listas, dejo una nota: "Prohibido utilizar listas, diccionarios u otro que aun no hayamos visto en clase:". Bueno, voy a seguir intentando a ver si hay otra manera.

Con respecto a mi segunda pregunta. En la misma tarea, no pide hacer de introducir un numero impar y que no devuelva una figura de un reloj de arena, solo con los simbolos "-" y " *".

Aquí lo que logré hasta ahora (puedo ver el reloj y todo, pero como no acabo con ´return´, en mi resultado me arroja NONE.

Código (python) [Seleccionar]

def afficher_sablier(dimension):
   
    print ("Afficher un sablier de N lignes et N colonnes")
    dimension = int(input("Entrez s.v.p. un nombre entre 3 et 59: "))
   
    if dimension % 2 == 0:
        return "***Dimension invalide, Entrez un nombre impair***"

    else:
        i = 0
        j = 0
        while i < int((dimension + 1)/2):
            print ("-"*i + "*"*(dimension - 2*i) + "-"*(i))
            i += 1

        while j < int((dimension - 1)/2):
            print ("-"*(i - 2) + "*"*(3 + 2*j) + "-"*(i - 2))
            j += 1
            i -= 1


El curso lo llevo en francés, por eso las entradas en este idioma, pero creo se entiende.  :)

Y de nuevo Gracias!!!

Itzhack
#6
Scripting / DuDas sobre funciones Python"
9 Febrero 2015, 04:39 AM
Hola, acabo de acabar dos pequeños programas, pero tengo una duda para cada uno:

Primero:

Código (python) [Seleccionar]
def factores(nb):
   
   print ("Los factores positivos de un numero entero." )
   nb = int(input("Entra un numero entre 1 y 20: "))
   res = []
   i = 1
   while i <= nb:
       if nb % i == 0:
           res.append(i)
       i += 1

   return "Los factores de {} son: {}".format(nb, res)


(Aquí para afichar los resultados utilizo una lista, pero yo busco otro metodo en el que pueda afichar los factores, pero no como lista)


Segundo:

Cuando hago una funcion, y no le pongo return sino print, me aparece mi resultado, pero también "None". Como hago para que no me salga "None"?. Ojo, mi correcto resultado de varios valores me sale con print, si pongo return, me muestra solo un resultado.

Uso python 3.4

Saludos mis amigos y desde ya gracias por su ayuda!!!  ;-)

Mod: Usa etiquetas GeSHi cuando publiques codigo
#7
Hola todo el mundo! Estoy tratando de programar una multiplicación de dos matrices, que antes debe validar si las dos matrices son validas (matrices completas) y validar si las dos matrices se pueden multiplicar(requisito que el número de columnas de la Matriz 1 sea igual al numero de filas de la matriz 2), por el momento llegué a esto, pero obtengo el error abajo descrito:
-------------------------------------------------------------------------------------------------------------
A = [[1, 2], [3, 4]]           # matriz 2x2
B = [[1, 2, 3], [4, 5, 6]]   # matriz 2x3

def produitMatriciel (A,B):
   fila_A = len(A)
   columna_A = len(A[0])
   fila_B = len(B)
   columna_B = len (B[0])

   if columna_A != fila_B:
       print ('None')
       return

   C = []
   for i in range(len(A)):
       C.append([0]*(len(B[0])))

   for i in range(len(A)):
       for j in range(len(B)):
           for k in range(len(B[0])):
               C [ i ] [j] += A[ i ][k]*B[k][j]

   print (C)
------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------
<ipython-input-1-484d674c941c> in productoMatricial(A, B)
    18         for j in range(len(B)):
    19             for k in range(len(B[0])):
---> 20                 C[ i ] [ j ] += A[ i ][k]*B[k][j]
    21
    22     print (C)

IndexError: list index out of range
#8
Ejercicios / Re: Ejercicio de novato en Python3
24 Septiembre 2014, 16:35 PM
Finalemente encontré la solución!!! Me estaba complicando mucho y la solución era mas sencilla de lo que pensé!!!
#9
Ejercicios / Re: Ejercicio de novato en Python3
18 Septiembre 2014, 07:00 AM
Por ahora tengo esto, pero como podran ver, cuando hago correr el programa, en las sumas, se agrega tambien el numero de elementos de la primera solucion, como si lNombres = lSommes... En cuanto a las dos ultimas, no tengo idea, se que debo utilizar los condiciones if y el operador %, pero no sé como comenzar, añguién que me de los primeros pasos, no pido la solucion, sino unas indicaciones.
------------------------------------------------------------------
ListaDeLista = [[0, 1, 2, -5],[-1, 3, 0, 4],[5,-4,8,11]]

# Agregar el numero de elementos
lNombres = []
for lNombres in ListaDeLista:
    i = len(lNombres);
    lNombres.append(i)
    print (lNombres)

# Agregar la suma de sus elementos
lSommes = []
for lSommes in ListaDeLista:
    Sommes = 0
    for x in lSommes:
        Sommes = Sommes + x
    lSommes.append(Sommes)
    print (lSommes)
----------------------------------------------------
Al correr el programa obtengo:

[0,1,2,-5,4]
[-1,3,0,4,4]
[5,-4,8,11,4]
[0,1,2,-5,4,2]
[1,3,0,4,4,10]
[5,-4,8,11,4,24]
#10
Ejercicios / Ejercicio de novato en Python3
16 Septiembre 2014, 16:35 PM
Tengo la siguiente Lista:

ListaDeLista = [[0, 1, 2, -5], [-1, 3, 0, 4], [5, -4, 8, 11]]

Para cada una de las listas:

- En una lista llamada lNombres, agregar el número de elementos;
- En una lista llamada lSumas, agregar la suma de sus elementos;
- En una variable llamada lPar, determinar en porcentaje el número de listas de largo par.
- En una variable llamada lNeg, determinar en porcentaje el número de sumas negativas.

Intento, pero aún no tengo la respuesta correcta.  :-[