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 - ecfisa

#61
Programación C/C++ / Re: codigo letras en ascii
24 Noviembre 2012, 09:21 AM
Cita de: mrstriker en 23 Noviembre 2012, 03:29 AM
...
se pide a y me tiene que mostrar la letra que sigue es decir b y asi sucesivamente

Hola mrstriker.

Podrías hacer:

#include<stdio.h>

int main( )
{
 char ch;

 printf("Ingresa una letra seguida de Enter (espacio termina)\n");
 do {
  ch = getchar();
  if(ch>='A' && ch<'Z' || ch>='a' && ch<'z') printf("%c+1: %c\n", ch, ch+1);
 } while ( ch != ' ');
 return 0;
}


Saludos.
#62
Programación C/C++ / Re: [C++] Matrices
20 Noviembre 2012, 02:26 AM
Hola.
CitarSólo me quedó una duda: Ya que la matriz se creó con new, ¿No es necesario poner en algun lado el comando delete para liberar memoria
Si, totalmente!! Te pido mil disculpas por el olvido. :(

Código (cpp) [Seleccionar]

 ...
 for(int i=0;i < n; i++) delete [] mat[i];
 delete [] mat;
 return 0;
}


Saludos.
#63
Programación C/C++ / Re: [C++] Matrices
19 Noviembre 2012, 12:24 PM
Hola.

Un ejemplo:
Código (cpp) [Seleccionar]

#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

void llenar(int **, int);
void mostrar(int **, int);

int main()
{
  int **mat, n, f;

  srand(time(NULL));
  do{
    cout << "Dimension de la matriz cuadrada: ";
    cin >> n;
  } while ( n < 5 || n == 0);
  if (n) {
    mat = new int*[n];
    for(int f=0; f < n; f++) mat[f] = new int[n];
    llenar(mat,n);
    mostrar(mat,n);
  }
  return 0;
}

void llenar(int **m, int n) {
  for(int i=0;i<n; i++)
    for(int j=0; j<n; j++) m[i][j] = rand()%99;
}

void mostrar(int **m, int n) {
  for(int i=0;i<n;i++) {
    for(int j=0;j<n;j++) {
      cout.width(4);
      cout << left << m[i][j];
    }
    cout << endl;
  }
}



Saludos.
#64
Programación C/C++ / Re: problema vectores en c
7 Noviembre 2012, 19:38 PM
Hola.

No vas nada mal encaminado... lo que si, se puede usar una sola funcion para generar ambos arreglos, así como también otra para que realize la suma.

Por ejemplo y mayormente basado en tu codigo:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define  NUM 10

void generar_vector(int *);  
void sumar_vectores(int *, int *, int *);
void imprimir_vectores(int *, int *, int *);

int main(void) {
 int v1[NUM], v2[NUM], v3[NUM];

 srand(time(NULL));
 generar_vector(v1);
 generar_vector(v2);
 sumar_vectores(v1,v2,v3);
  imprimir_vectores(v1,v2,v3);
 getchar();
return EXIT_SUCCESS;
}
void generar_vector(int *v) {
int i;
for(i=0;i<NUM;i++)
v[i]=(rand()%100+1)/10;
}

void sumar_vectores(int *v1, int *v2, int *v3) {
 int i;
 for(i=0;i<NUM;i++)
   v3[i] = v1[i]+v2[i];
}

void imprimir_vectores(int *v1, int *v2, int *v3)
{
int i;
for(i=0;i<NUM;i++)
 printf("%d %d %d\n",v1[i],v2[i],v3[i]);
}


La declaración de los parámetros como punteros es equivalente a la tuya podes usar la que prefieras, es decir:

void sumar_vectores(int *, int *, int *);
...
void sumar_vectores(int *v1, int *v2, int *v3) {

// Es equivalente a hacer:
void sumar_vectores(int [], int [], int []);
...
void sumar_vectores(int v1[], int v2[], int v2[]) {
...


Saludos.
#65
Hola SonaArtica.

Proba de este modo:


#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

void cargar(int **, int);
void ordenar(int **, int);
void mostrar(int *, int);

int main() {
 int i, largo, *vector1;
 printf("Ingrese el largo de su vector a ordenar: ");
 scanf("%d",&largo);
 vector1 = (int *)malloc(sizeof(int) * largo);

 cargar(vector1, largo);
 ordenar(vector1, largo);
 mostrar(vector1, largo);

 free(vector1);
 getch ();
 return 0;
}

void cargar(int **v, int largo) {
 int i;
 printf("\n");
 for(i=0;i<largo;i++) {
    printf("Ingrese el valor para la posicion [%d] de su vector: ",i);
   fflush(stdin);
   scanf("%d",&v[i]);
 }
}

void ordenar(int **v, int largo){
 int i, j, aux;
 for(i=0; i < largo-1;i++)
   for(j=i+1; j < largo; j++)
     if (v[i] > v[j]) {
       aux   = v[j];
       v[j]  = v[i];
       v[i]  = aux;
     }
}

void mostrar(int *v, int largo) {
 int i;
 printf("\nVector ordenado:\n");
 for(i=0; i < largo; i++)
   printf("Valor en la posicion[%d]:%d \n", i, v[i]);
}



Saludos.
#66
Programación C/C++ / Re: time() localtime()
3 Noviembre 2012, 07:52 AM
Hola soyloqbuskas.

No sé con que compilador estes trabajando, pero probé tu código en CodeBlocks (GNU GCC Compiler) y en Builder C++ 6 y en ambos funciona sin provocar error alguno. Pero de ese modo se te presenta el problema de como liberar la memoria asignada con malloc a la variable local fecha.

Quizá sería mejor:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void getDateTime(char **fecha) {
  time_t t = time(NULL);
  struct tm *tm = localtime(&t);
  char *dia = "";
  char *mes = "";

  switch(tm->tm_wday){
    case 0: dia="Sun"; break;
    case 1: dia="Mon"; break;
    case 2: dia="Tue"; break;
    case 3: dia="Wed"; break;
    case 4: dia="Thu"; break;
    case 5: dia="Fri"; break;
    case 6: dia="Sat"; break;
    default: dia="???"; break;
  }

  switch(tm->tm_mon){
    case 0: mes="Jan"; break;
    case 1: mes="Feb"; break;
    case 2: mes="Mar"; break;
    case 3: mes="Apr"; break;
    case 4: mes="May"; break;
    case 5: mes="Jun"; break;
    case 6: mes="Jul"; break;
    case 7: mes="Aug"; break;
    case 8: mes="Sep"; break;
    case 9: mes="Oct"; break;
    case 10: mes="Nov"; break;
    case 11: mes="Dec"; break;
    default: mes="???"; break;
  }
  sprintf(*fecha,"Date: %s , %d %s %d %d:%d:%d GMT",dia, tm->tm_mday, mes, tm->tm_year+1900, tm->tm_hour, tm->tm_min, tm->tm_sec);
}

int main() {
  char *fecha=(char*)malloc(200);

  getDateTime(&fecha);
  printf("%s", fecha);

  free(fecha);
  ...
}


Saludos.
#67
Hola.

Una función recursiva que calcula el producto de un número por otro:

int producto(int a, int b) {
 if (b>= 1)
   producto(a, b-1);
 return a*b;
}


Saludos.
#68
Cita de: carrlos en  2 Noviembre 2012, 03:09 AM
...
Realice una función recursiva que calcule el producto de un número N.
...
Hola.

Está mal desde el planteo.

Según la definición, Producto es: "Operación matemática que consiste en sumar un número tantas veces como indica otro número".


Saludos.
#69
Hola carrlos.

Por favor: nueva pregunta = nuevo hilo.

Gracias.
#70
Hola Caster.

Haa entiendo, no sabía lo del otro hilo...

En realidad, lo que quería destacar es que:  Para saber si la cantidad de segundos ingresada es un número exácto de minutos, basta con verificar que el resto de la división de la cantidad ingresada de segundos por 60, sea igual o distinta de 0. (1 minuto = 60 segundos)

El operador '%' devuelve el módulo (resto) de la división, entonces tu código podría haber quedado:

#include <stdio.h>

int main(int argc, char* argv[]) {
 int segundos;

 printf("Ingrese cantidad de segundos: ");
 scanf("%d",&segundos);
 while(getchar()!='\n');

 if (segundos % 60)   /* igual que: (segundos % 60 != 0) */
   printf("Numero entero de minutos: No");
 else
   printf("Numero entero de minutos: Si");

 getchar();
 return 0;
}


Saludos.  :)