|
261
|
Programación / Programación C/C++ / Re: Extraño error, puedo imprimir el texto pero no copiarlo.
|
en: 29 Mayo 2010, 11:24 am
|
Mmmmm porque estas usando malloc como si fuera un calloc userSid = (UCHAR*) malloc(len+1, sizeof(UCHAR)); tendria que quedar asi... userSid = (UCHAR*) malloc((len+1) * sizeof(UCHAR)); No te dio ningun error al compilar? Otra pregunta windows.h sirve para las funciones printf(), malloc() y free(), porque de no ser asi te estarias olvidando de poner las librerias.. #include <stdio.h> #include <stdlib.h> Salu10.
|
|
|
262
|
Programación / Programación C/C++ / Re: No veo el valor de las variables
|
en: 29 Mayo 2010, 09:07 am
|
Mmmmm yo de C++ no conozco mucho, pero la libreria stdio.h no hace falta incluirla. Te faltaba agregar el namespace y la inclusion de la libreria iostream es sin el .h ( Link) El problema estaba en que si te fijas bien.. nacimiento = ( d * 365 ) + ( e * 30 ) + f; actual = ( a * 365 ) + ( b * 30 ) + c; las variables d, e y f hacen referencia a la fecha actual y vos al resultado de la operacion con esas variables se lo asignabas a nacimiento... Aca te dejo el codigo con algunas modificaciones... #include <iostream>
using namespace std;
void edad ( int a, int b, int c, int d, int e, int f );
int main( void ) { int ano_act, mes_act, dia_act, ano_nac, mes_nac, dia_nac; cout << "..........CALCULO DE LA EDAD DEL ALUMNO..........\n"; cout << "\nFECHA ACTUAL\n"; cout << "Entra el dia (1 - 31): "; cin >> dia_act; cout << "Entra el mes (1 - 12): "; cin >> mes_act; cout << "Entra el año (Ej: 1976): "; cin >> ano_act;
cout << "\nFECHA NACIMIENTO\n"; cout << "Entra el dia (1 - 31): "; cin >> dia_nac; cout << "Entra el mes (1 - 12): "; cin >> mes_nac; cout << "Entra el año (Ej: 1976): "; cin >> ano_nac; edad( ano_nac, mes_nac, dia_nac, ano_act, mes_act, dia_act );
return 0; }
void edad( int a, int b, int c, int d, int e, int f ) { long nacimiento, actual; int anos, meses, dias;
if ( b == 2 || b == 3 ) c = c - 1; if ( b == 4 || b == 5 ) c = c - 2; if ( b == 6 || b == 7 ) c = c - 3; if ( b == 8 ) c = c - 4; if ( b == 9 || b == 10 ) c = c - 5; if ( b == 11 || b == 12 ) c = c - 6;
actual = ( d * 365 ) + ( e * 30 ) + f; nacimiento = ( a * 365 ) + ( b * 30 ) + c;
anos = ( actual - nacimiento ) / 365; meses = (( actual - nacimiento ) % 365 ) / 30; dias = ( actual - nacimiento ) % 30;
cout << "\nLa Fecha de Nacimiento es: " << c << "/" << b << "/" << a << endl; cout << "La Fecha Actual es: " << f << "/" << e << "/" << d << endl; cout << "El Alumno tiene: " << anos << " años " << meses << " meses y " << dias << " dias" << endl; } Salu10.
|
|
|
263
|
Programación / Programación C/C++ / Re: Librería
|
en: 29 Mayo 2010, 07:42 am
|
La verdad esta buena la idea de definir las funciones de la manera que plantea vertex@SymphonyLo que no me convence mucho es la idea de poner la cantidad de parametros y el tipo, ya que seria feo y confuso de ver... Me lo imagino en una funcion que toma 3 parametros donde el tipo del primero es un char*, el segundo un char* y el tercero un int WTF Otro tema a tener en cuenta, es de que cada idea de alguna funcion que tenga un colaborador o un usuario que quiere aportar al proyecto, le mande un mp o un mail a GNU López para que el las vaya colocando en el post inicial. Ya que como bien decia Littlehorse el hilo se termina haciendo muy largo y va a ser muy molesto de seguir. Otra cosa que estaria buena, seria implementar un sistema de votos para las ideas que se vayan proponiendo. Salu10.
|
|
|
265
|
Programación / Programación C/C++ / Re: burbuja,insercion y seleccion
|
en: 27 Mayo 2010, 02:57 am
|
Aca te dejo un menu muy rudimentario , pero te va a servir para darte una idea Acordate de cuando hagas un post con codigo fuente utilizar las etiquetas GeSHI [code=c][/code] o la de codigo sola [code][/code] La libreria conio.h no hacia falta incluirla ya que no haces uso. Ademas tampoco es recomendable su uso ya que no es estandar. #include <stdio.h>
void mostrar( int a[], int n ); int* copia( int a[], int cp[], int n ); int* burbuja( int a[], int n ); int* insercion( int a[], int n ); int* seleccion( int a[], int n );
int main( void ) { int opcion, n = 8; int a[] = { 15, 56, 90, 0, 1, 6, 78, 65 }; int cp[n]; do { printf( "1. Burbuja\n" "2. Insercion\n" "3. Seleccion\n" "4. Salir\n" "> " ); fflush( stdout ); scanf( "%d", &opcion ); switch ( opcion ) { case 1: printf( "Original: " ); mostrar( a, n ); printf( "Ordenada: " ); mostrar( burbuja( copia( a, cp, n ), n ), n ); break; case 2: printf( "Original: " ); mostrar( a, n ); printf( "Ordenada: " ); mostrar( insercion( copia( a, cp, n ), n ), n ); break; case 3: printf( "Original: " ); mostrar( a, n ); printf( "Ordenada: " ); mostrar( seleccion( copia( a, cp, n ), n ), n ); break; case 4: printf( "Saliendo...\n" ); break; default: printf( "Opcion incorrecta\n" ); break; } } while ( opcion != 4 ); return 0; }
void mostrar( int a[], int n ) { int i; for ( i = 0; i < n; ++i ) printf( "%d ", a[i] ); putchar( '\n' ); }
int* copia( int a[], int cp[], int n ) { int i; for ( i = 0; i < n; ++i ) cp[i] = a[i]; return cp; }
int* burbuja( int a[], int n ) { int i, j, aux; for ( i = 1; i < n; i++ ) for ( j = 0; j < n - 1; j++ ) if ( a[j] > a[j + 1] ) { aux = a[j]; a[j] = a[j + 1]; a[j + 1] = aux; } return a; }
int* insercion( int a[], int n ) { int i, j, aux; for ( i = 1; i < n; i++ ) { j = i; aux = a[i]; while ( j > 0 && aux < a[j-1] ) { a[j] = a[j-1]; j--; } a[j] = aux; } return a; }
int* seleccion( int a[], int n ) { int i, j, indicemenor, aux; for ( i = 0; i < n - 1; i++ ) { indicemenor = i; for ( j = i + 1; j < n; j++ ) if ( a[j] < a[indicemenor] ) indicemenor = j; if ( i != indicemenor ) { aux = a[i]; a[i] = a[indicemenor]; a[indicemenor] = aux; } } return a; } Salu10.
|
|
|
|
|
|
|