Autor |
Mensaje |
df
Nivel 9
Edad: 32
Registrado: 15 May 2010
Mensajes: 2298
Carrera: Civil
|
|
No tiene sentido eso, probá sin el return. Eso o.. esperá a algún infoñoño.
|
|
|
|
_________________
|
|
|
|
|
Cachengue
Nivel 4
Registrado: 31 Ago 2009
Mensajes: 112
Carrera: Industrial
|
|
Ahi va mejor..
Si le pongo la variable n=4 antes del for me lo calcula bien..
Bueno, ahora pido una aclaracion de cuando se usa for, y como lo procesa la maquina porque no me cierra.
Gracias
|
|
|
|
|
|
|
|
|
koreano
Nivel 9
Registrado: 15 Jul 2010
Mensajes: 1796
Carrera: No especificada
|
|
El for es básicamente un while con steroids, te permite agrupar 3 cosas que se usan cuando se buclea un bloque de código pero en una una sola línea: consideraciones previas, condición de corte, el código actual y la condición de avance.
Código:
|
FOR( A ; B ; C) {
D;
}
|
Se traduce a:
Código:
|
A;
WHILE(B) {
D;
C;
}
|
PS: usar return en cualquier lugar en main() es para devolver valores de error/success al sistema, y te aborta la ejecución del programa ahí mismo (respetando RIAA).
|
|
|
|
|
|
|
|
|
Cachengue
Nivel 4
Registrado: 31 Ago 2009
Mensajes: 112
Carrera: Industrial
|
|
En este ej:
void main ()
{int factorial (int)
int n, r
cin>>n
r=factorial(n)
cout<<r
}
{
int factorial(iint n)
{
if(n==1)
f=1;
else
f=n*factorial(n-1)
return f;
}
Lo que hace el return es terminar la funcion y volver al programa, o ejecutar nuevamente la funcion (hasta que f=1)?
me reconoce que factorial(n)=f o hay que aclararlo?
|
|
|
|
|
|
|
|
|
Sebastian Santisi
Administrador Técnico
Edad: 42
Registrado: 23 Ago 2005
Mensajes: 17451
|
|
Lo que ejecuta nuevamente la función es la línea "f = n * factorial(n - 1)". El return, es el mecanismo para que la función devuelva algún valor (en particular, el que está después del return).
Tal vez queda más claro qué hace si se escribe así:
int factorial(n) {
if (n == 1) return 1;
else return n * factorial(n - 1);
}
¿Se parece mucho a esto, no?
|
|
|
|
_________________
|
|
|
|
|
Cachengue
Nivel 4
Registrado: 31 Ago 2009
Mensajes: 112
Carrera: Industrial
|
|
Guau, clarisimo, impecable!
Gracias SS, koreano y df..
molestare nuevamente a la brevedad
|
|
|
|
|
|
|
|
|
ignaciogb
Nivel 3
Registrado: 15 Oct 2009
Mensajes: 32
Ubicación: Capital Federal
Carrera: Industrial
|
|
Tengo esta duda de vectores:
Me dice diseñar una funcion que ordene el vector V de N elementos.
se puede poner una variable en la dimensión del vector??, o sea,
int n,
cout << "ingrese numero de elementos" <<endl>> n;
int V[n];
y de esta forma poder variar la dimension del vector.
Porque intento y me tira error.
O tengo que declarar una dimension "maxima" y de ahi teniendo como tope esta usar las casillas que necesite?
|
|
|
|
|
|
|
|
|
ignaciogb
Nivel 3
Registrado: 15 Oct 2009
Mensajes: 32
Ubicación: Capital Federal
Carrera: Industrial
|
|
escribi mal...
int n;
cout << "ingrese cantidad de variables" <<endl>> n;
int V[n];
|
|
|
|
|
|
|
|
|
ignaciogb
Nivel 3
Registrado: 15 Oct 2009
Mensajes: 32
Ubicación: Capital Federal
Carrera: Industrial
|
|
bue.. nose porque no me toma el ; cin despues del endl
|
|
|
|
|
|
|
|
|
df
Nivel 9
Edad: 32
Registrado: 15 May 2010
Mensajes: 2298
Carrera: Civil
|
|
Poder.. podés (no me preguntes como). Ponele int V[9999]={0} y cargalo hasta n=loquesea.
|
|
|
|
_________________
|
|
|
|
|
ignaciogb
Nivel 3
Registrado: 15 Oct 2009
Mensajes: 32
Ubicación: Capital Federal
Carrera: Industrial
|
|
claro.. aunque ahi estaria ocupando mucho espacio al dope pero me parece que no hay otra forma..
gracias df
|
|
|
|
|
|
|
|
|
Amadeo
Nivel 9
Registrado: 20 Oct 2008
Mensajes: 1436
Carrera: No especificada
|
|
ignaciogb escribió:
|
se puede poner una variable en la dimensión del vector??, o sea,
int n,
cout << "ingrese numero de elementos" <<endl>> n;
int V[n];
y de esta forma poder variar la dimension del vector.
Porque intento y me tira error.
|
Si, se puede
Código:
|
#include <iostream>
using namespace std;
int main() {
int cantElementos;
cout << "ingrese numero de elementos";
cin >> cantElementos;
int V[cantElementos];
}
|
Esto te debería compilar.
|
|
|
|
|
|
|
|
|
ignaciogb
Nivel 3
Registrado: 15 Oct 2009
Mensajes: 32
Ubicación: Capital Federal
Carrera: Industrial
|
|
Amadeo escribió:
|
ignaciogb escribió:
|
se puede poner una variable en la dimensión del vector??, o sea,
int n,
cout << "ingrese numero de elementos" <<endl>> n;
int V[n];
y de esta forma poder variar la dimension del vector.
Porque intento y me tira error.
|
Si, se puede
Código:
|
#include <iostream>
using namespace std;
int main() {
int cantElementos;
cout << "ingrese numero de elementos";
cin >> cantElementos;
int V[cantElementos];
}
|
Esto te debería compilar.
|
mm.. no, me compila.
me tira:
error:ISO C++ forbids variable length array 'V'
|
|
|
|
|
|
|
|
|
ignaciogb
Nivel 3
Registrado: 15 Oct 2009
Mensajes: 32
Ubicación: Capital Federal
Carrera: Industrial
|
|
omitir leer la coma... jaja ando con problemas de teclado
|
|
|
|
|
|
|
|
|
Amadeo
Nivel 9
Registrado: 20 Oct 2008
Mensajes: 1436
Carrera: No especificada
|
|
Que raro... a mi me tira un warning, pero no un error. Como dice el error, parece que según el standard de C++ no es muy copado usar variables para definir el tamaño de un arreglo así nomás (ahora que lo pienso tienen razón, es más seguro crearlo con new, porque chequea cosas como por ejemplo que no hayas ingresado un número negativo).
Fijate si ahora te compila:
Código:
|
#include <iostream>
using namespace std;
int main() {
int cantElementos;
cout << "ingrese numero de elementos";
cin >> cantElementos;
int* V = new int[cantElementos];
}
|
|
|
|
|
|
|
|
|
|
|