elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


  Mostrar Mensajes
Páginas: 1 ... 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [18] 19
171  Programación / Programación C/C++ / Re: Orden de ejecucuion de sentencias en: 18 Enero 2019, 14:27 pm
Creo que tienes razon, hay algo en eso del buffer stdout....

Concretamente en el programa que estaba haciendo, hay algo asi:

Código
  1.  
  2. void ingresarNota(){
  3.  
  4.     unsigned int opcion = 9;    
  5.     char * asignatura = new char[16];
  6.  
  7.     cout << "Menu: " << endl;
  8.     cout << "1- Matematicas " << endl;
  9.     cout << "2- Historia " << endl;
  10.     cout << "3- Ingles " << endl;
  11.  
  12.     cout << "Opcion (0 = Regresa al menu principal) : ";
  13.     cin >> opcion;
  14.  
  15.  
  16.     switch (opcion){
  17.  
  18.          case 0:
  19.              cout << string(100, '\n');     //limpiar pantalla
  20.              mostrarMenuPrincipal();
  21.              break;
  22.  
  23.          case 1:
  24.               strcpy (asignatura, "Matematicas");
  25.               break;
  26.  
  27.          case 2:
  28.               strcpy (asignatura, "Historia");
  29.               break;
  30.  
  31.          case 3:
  32.               strcpy (asignatura, "Ingles");
  33.               break;
  34.  
  35.  
  36.     }
  37.  
  38.     cout << endl << "Asignatura seleccionada : " << asignatura << endl;
  39.  
  40.     //otra instruccion 1
  41.     //otra instruccion 2
  42.     //ciclo for 3
  43.     //ciclo for 4
  44. }
  45.  
  46. void mostrarMenuPrincipal(){
  47.  
  48.     unsigned int opcion = 9;
  49.  
  50.     cout << "Menu Principal: " << endl;
  51.     cout << "-----------------------" << endl;
  52.     cout << "1- Ingrese Alumno nuevo " << endl;
  53.     cout << "2- Seleccionar alumno " << endl;
  54.     cout << "3- Ingrese nota" << endl;
  55.     cout << "4- Salir" << endl;
  56.  
  57.     cout << "Opcion: ";
  58.     cin >> opcion;
  59.  
  60.     switch (opcion){
  61.  
  62.          case 1:
  63.               nuevoAlumno();
  64.               break;
  65.  
  66.          case 2:
  67.               seleccionaAlumno();
  68.               break;
  69.  
  70.          case 3:
  71.               ingresarNota();
  72.               break;
  73.  
  74.          case 4:
  75.               exit(0);
  76.  
  77.     }
  78.  
  79. }
  80.  
  81.  


En el codigo, cuando el programa pasa por ingresarNota() y si yo selecciono 0, lo que hace es entrar a mostrarMenuPrincipal() pero alcanza a salir de switch-case y alcanza a ejecutar la linea "cout << endl << "Asignatura seleccionada : " << asignatura << endl"  luego de eso ya no sigue ejecutando nada, es decir, la instruccion "//otra instruccion 1" ya no es ejecutada..
172  Programación / Programación C/C++ / Orden de ejecucuion de sentencias en: 18 Enero 2019, 12:48 pm
Buenas

Cuando estamos dentro de una funcion y llamamos a otra  que pasa en la ejecucion?

Ejemplo:

Código
  1. Void sumar(){
  2.     // hace una cosa 1
  3.     // hace otra.cosa mas 2
  4.     MostrarMenuPrincipal();
  5.     // hace otra.cosa 3
  6.     // hace 4
  7.  
  8.     Int valor;
  9.     std::cout << "ingrese valor: ";
  10.     Std::cin >> valor;
  11.  
  12.     Switch (valor){
  13.         case 1:
  14.               Cout << "es uno ";
  15.               Break;
  16.      }
  17. }
  18.  
  19. Void MostrarMenuPrincipal(){
  20.       // hace otras cosas 5
  21. }
  22.  

Que sucede?
1. Cuando se ejecuta la funcion sumar() va a llegar hasta la llamada a la funcion MostrarMenuPrincipal() y esperara a que esa funcion devuelva un valor o termine, por lo que la linea «hacer otra.cosa 3» no sera ejecutada al intante...

2. Cuando se ejecuta la funcion sumar() va a llegar hasta la llamada a la funcion MostrarMenuPrincipal() y al instante continuara paralelamente ejecutando ambas funciones....

Les pregunto esto ya que en un programa de practica que realice ayer me paso algo extraño, cuando la funcion que llamaba dentro de otra tenia un menu y una interaccion con el usuario mediante cin, la ejecucion de la funcion anterior (en este caso.sumar() ) no se ejecutaba mas quedaba bloqueada por la llamada a la nueva funcion, sin embargo, si esta nueva funcion no.tenia cin, la ejecutaba y luego volvia a la funcion anterior..

173  Programación / Programación C/C++ / Re: cin >> respuesta es ignorado.. en: 14 Enero 2019, 03:59 am
Ya esta, acabo de entender como funciona...
Si el objeto cin intenta guardar un valor tipo entero y yo le paso un flotante, el siguiente objeto cin será omitido..

En mi caso, el "cin >> respuesta" no estaba siendo leído porque el ingreso del cin anterior guardaba el ingreso como int, pero yo le estaba ingresando float mientras lo ejecutaba... es decir, la matriz TablaAsigNotas es de tipo INT, y en consola yo ponía valores flotantes...

Curiosa la forma en como trabaja el flujo de entrada con el buffer..

Gracias de todas formas..
174  Programación / Programación C/C++ / cin >> respuesta es ignorado.. en: 13 Enero 2019, 22:26 pm


Hola!, no me hace lógica ver que "cin >> respuesta", el programa al llegar a esa instancia pasa de largo como si nada..

Bajo qué circunstancias pasan estas omisiones ?

Saludos y gracias..


Ya esta, acabo de entender como funciona...
Si el objeto cin intenta guardar un valor tipo entero y yo le paso un flotante, el siguiente objeto cin será omitido..

En mi caso, el "cin >> respuesta" no estaba siendo leído porque el ingreso del cin anterior guardaba el ingreso como int, pero yo le estaba ingresando float mientras lo ejecutaba... es decir, la matriz TablaAsigNotas es de tipo INT, y en consola yo ponía valores flotantes...

Curiosa la forma en como trabaja el flujo de entrada con el buffer..

Gracias de todas formas..

MOD: Imagen adaptada a lo permitido. No hacer doble post. Usa el botón modificar.
175  Programación / Programación C/C++ / Re: Ayuda C++ en: 6 Enero 2019, 22:26 pm
No es necesario el espacio de nombre, te arroja alguna advertencia en tiempo de edición ?..

Puedes colgar el código para revisarlo?..

Saludos.
176  Programación / Programación C/C++ / Re: Ayuda C++ en: 6 Enero 2019, 17:33 pm
Hola, con qué IDE estas trabajando y que intentas hacer?....
saludos.
177  Programación / Programación C/C++ / Que es lo mas difícil de C++ ? en: 6 Enero 2019, 16:24 pm
Hola a todos..

Yo programaba en C# y no es para nada difícil, al pasar a C++ vi que ambos lenguajes compartían muchas cosas, la forma en que se declaran las variables, los bucles, en general la sintaxis es muy similar, y ambos son orientados a objetos..... hasta ahora, no he encontrado tan difícilmente el C++ llevo un año estudiándolo, entiendo que me falta mucho por aprender pero, quizá sea que C# me sirvió como base ? .. puede ser...

Pero por qué la gente le tiene tanto terror a C++ ?, qué es lo que piensan ustedes que es lo mas complicado, lo que te hace dejar C++, lo que puede desanimarte?, no croe que sean los punteros, si bien tienen una lógica un tanto compuesta, no son difíciles de aprender si entiendes como se maneja la memoria.. debe haber algo mas?..

Saludos.
178  Programación / Programación C/C++ / Re: Arreglos como parametros ... en: 6 Enero 2019, 16:19 pm
Hola, gracias por responder... MAFUS, agradezco el tiempo que te has hecho en la explicación, aunque eso ya lo tenía claro, tenía mas que nada la duda de como se pasaba realmente el arreglo, pero tiene sentido, porque al pasar solo el nombre del arreglo en realidad uno está pasando la memoria, es una referencia automática...

Saludos y gracias nuevamente a ambos
179  Programación / Programación C/C++ / Arreglos como parametros ... en: 3 Enero 2019, 22:11 pm
Hola amigos.

Una consulta, yo tengo entendido que en C++ los arreglos son como punteros, es decir, se apunta a la posición de memoria del primer indice en adelante hasta donde termina el array en la cantidad de bytes que ocupa por el tipo... vale

Que sucede en este caso ?

Código:
int main (){
int misNumeros[] = {0, 4, 1, 8, 3, 9};
OrdenaMayorAMenor(misNumeros);
}

void OrdenarMayorAMenor(int números[]){
//..blablabla

}

Que estoy haciendo aquí?.. estoy copiando el valor (duplicando el vector) ?
como puedo optimizar el uso de la memoria?.. puedo usar referencia o puntero aquí en el parámetro?

gracias.
180  Programación / Programación C/C++ / Re: Se puede acceder a la memoria de una variable tipo char ? en: 29 Diciembre 2018, 01:09 am
Saludos,

- Mira lo siguiente:

Código
  1. #include <iostream>
  2. using namespace std;
  3. int main() {
  4.  char vocal = 'a';
  5.  char *puntero = &vocal;
  6.  printf("%p\n", puntero);  // %p formato puntero
  7.  printf("%c\n", *puntero); // %c formato caracter (char)
  8. }

Código
  1. C:\Users\EdSon\Desktop>g++ prb.cpp -o prb.exe && prb.exe
  2. 0028FF2B
  3. a

También funciona, ese es el formato C.. pero funciona.. gracias.
Páginas: 1 ... 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [18] 19
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines