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

#71
Error, mensaje duplicado.

Solicito por favor a algun moderador que tenga la amabilidad de borrarlo.

Saludos.
#72
Hola.

Una función recursiva se llama a si misma por su nombre y si la funcion es "funcion_recursiva_potencia2"[1], no se puede invocar como "potencia2"[2]:

int (funcion_recursiva_potencia2(int x,int n)); [1]
{
  int numero;
  if (n==0)
     return 1;
  else
    return x*potencia2(x, n-1); [2]
}

Es inncecesario encerrar entre paréntesis a la función, así también como la variable local "numero".

Entonces sería:

int potencia(int x,int n) {
 if (n==0)
   return 1;
 else
   return x * potencia(x, n-1);
}


Saludos.

#73
Hola Caster.

Otra opción es:


#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)
   printf("Son %d minutos y %d segundos.", segundos / 60, segundos % 60);
 else
   printf("Son exactamente %d minutos.", segundos / 60);

 getchar();
 return 0;
}


Saludos.
#74
Programación C/C++ / Re: Ayuda fseek ó ftell
25 Octubre 2012, 13:20 PM
Hola estivinho.

Suponiendo que el código de estudiante coincida con su posición en el archivo de acceso aleatorio tendrías que usar fseek.


 fseek(fichero_estudiante, posicion * sizeof(struct registro_estudiante), SEEK_SET);


De ser código un dato que no se corresponda con la posición en el archivo y siendo pocos datos (10 como comentas), lo más sencillo es que realizes una búsqueda secuencial por ese campo.

Saludos.
#75
Hola.

Si solo tenes que mostrar el mayor valor y su posición (índice) no es necesario realizar intercambio alguno.

Código (cpp) [Seleccionar]

#include<iostream>

using namespace std;

int main()
{
  int array[10];

  for(int i=0; i<10; i++)
  {
    cout << endl << "ingrese valor de array[" << i << "]= ";
    cin >> array[i];
  }

  int may=0, pos = 0;
  for(int i=0; i<10; i++)
    if (array[i] > may) 
    {
      may = array[i];
      pos = i;
    }
  cout << endl << "Valor mayor= " << may << " En la posicion array[" << pos <<"]";
  cout << endl << endl;
  cin.get();
  cin.get();
}


Saludos.
#76
Hola soyloqbuskas.

Otra forma de asignar la cadena enviada como argumento puede ser usando strncpy:

...
#include <string.h>

...

int funcion(char *paths[8]){
   strncpy(pathGroup, paths, 8);
...


Saludos.
#77
Programación C/C++ / Re: El lenguaje C es bajo nivel?
26 Septiembre 2012, 20:41 PM
Hola.

La calificación de los lenguajes en niveles máquina, bajo, medio o alto, se corresponde con la mayor o menor cercanía que sus sentencias tengan con la arquitectura del hardware.

Tomando esa categorización, el lenguaje C sería de nivel medio. Siendo, por ejemplo, el Assembler de bajo nivel y el C++ de alto nivel

Cuanto mas bajo nivel se obtiene código mas compacto y veloz, no hay nada más rápido que el código generado por un buén programador en Assembler. Pero esta velocidad se paga con mayor complejidad, tiempo de desarrollo y falta de portabilidad dado su apego al hardware, por lo que en general se utiliza sólo en rutinas donde la velocidad es crítica.

Saludos.
#78
Programación C/C++ / Re: RETOS C++
22 Septiembre 2012, 01:33 AM
Citarno entiendo como declaras un string si no lo has incluido, en los otros pasan cossas similares
Hola Stakewinner00.

En Builder C++ 6 funciona perfectamente tál y como lo he publicado, por otro lado las inclusiones de librerías no hacen a la esencia del algorítmo.

Tampoco tomes en serio el comentario que hice sobre los puntos, entendí los desafios como una diversion y bajo ningún motivo esperaba recompensa alguna.

Saludos. :)

EI: juntando mensajes.

Hola Stakewinner00.

Me quedé con la duda de que fuera una característica del compilador de Borland y tuviera incompatibilidad con otros, por lo que descargué Code::Blocks (GNU GCC Compiler) y probé los códigos que mencionas:
1)
Código (cpp) [Seleccionar]

#include <iostream>

using namespace std;

int main(int argc, char* argv[]) {
  char frase[100];
  int i=0;
  const char *num[10] = {"cero","uno","dos","tres","cuatro","cinco",
                         "seis","siete","ocho","nueve" };
  cout << "Frase: ";
  cin >> frase;

  while (frase[i]) {
    if (isdigit(frase[i]))
      cout << num[frase[i]-48] << " ";
    i++;
  }

  while(cin.get()!='\n');
  cin.get();
  return 0;
}


2)
Código (cpp) [Seleccionar]

#include<iostream>

using namespace std;

int main() {
  string texto;

  cout << "Texto: ";
  getline(cin, texto);
  cout << "El texto tiene " << texto.length() << " caracteres.";
  cin.get();
  return 0;
}


3)
Código (cpp) [Seleccionar]

#include <iostream>
#define MAX_PALABRAS 4

using namespace std;
int main() {
  string vec[MAX_PALABRAS], min;

  cout << "Ingrese " << MAX_PALABRAS << " palabras" << endl;
  cout << "-----------------" << endl;

  min.assign(255,255);
  for(int i = 0; i < MAX_PALABRAS; i++) {
    cout << "Palabra " << i+1 << " :";
    cin >> vec[i];
    if (vec[i] < min)
      min = vec[i];
  }
  cout << endl << "Primer palabra por orden alfabetico: " << min;

  while(cin.get()!='\n');
  cin.get();
  return 0;
}


Los tres se compilan y ejecuntan sin problemas...

¿ Con que compilador tuviste problemas ?

Saludos.
#79
Programación C/C++ / Re: RETOS C++
21 Septiembre 2012, 19:43 PM
Hola Stakewinner00.

Citarecfisa, en tu codigo falta un include despues lo añado

Los tres códigos que publiqué están probados y funcionan, lo que sí noto que faltan son los 41 puntos... :D

Saludos. :)
#80
Programación C/C++ / Re: RETOS C++
21 Septiembre 2012, 04:43 AM
Cita de: Stakewinner00 en 20 Septiembre 2012, 21:04 PM
ecfis de lo que se trataba es de lo siguiente

entrada

HOLA

salida

el texto tiene 4 caracteres o simplemente un 4

otro ejemplo

entrada
________

hola k tal estas

salida
________

el texto tiene 16 caracteres o un 16


Entiendo, pero por el texto de la consigna "Un programa que diga el nombre de dígitos que tiene el texto introducido ", no interpreté que se tratase de la cantidad de caracteres de la cadena ingresada.

Entonces:
Código (cpp) [Seleccionar]

#include<iostream>

using namespace std;

int main() {
 string texto;

 cout << "Texto: ";
 getline(cin, texto);
 cout << "El texto tiene " << texto.length() << " caracteres.";
 cin.get();
 return 0;
}


Saludos.

EI: juntando mensajes.

Hola.

Para el punto 4 podría ser:

Código (cpp) [Seleccionar]

#include <iostream>
#define MAX_PALABRAS 4

using namespace std;
int main() {
  string vec[MAX_PALABRAS], min;

  cout << "Ingrese " << MAX_PALABRAS << " palabras" << endl;
  cout << "-----------------" << endl;

  min.assign(255,255);
  for(int i = 0; i < MAX_PALABRAS; i++) {
    cout << "Palabra " << i+1 << " :";
    cin >> vec[i];
    if (vec[i] < min)
      min = vec[i];
  }
  cout << endl << "Primer palabra por orden alfabetico: " << min;

  while(cin.get()!='\n');
  cin.get();
  return 0;
}


Saludos.