Arreglos, calcular cuantas consonantes... (solucionado por lluvplay).

Iniciado por Alex Seahorse, 19 Abril 2012, 07:17 AM

0 Miembros y 1 Visitante están viendo este tema.

Alex Seahorse

Hola amigos del foro, bueno el motivo de este tema era para pedir un poco de ayuda sobre el tema ya mencionado.

Lo que pasa es que en la escuela me han pedido hacer este programa pero con arreglos, anteriormente yo ya lo había realizado pero ya agregándole lo que son los arreglos se me ha complicado mucho.

Espero que alguien me pueda ayudar un poco, dejo mi código anterior para así poder entender su lógica de programación con arreglos, de antemano gracias.

Saludos.

Alex Seahorse

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    char c='l',texto[200];
    int x=0, cont_voc=0, cont_cons=0, cont_pal=0, cont_car=0,a=0,e=0,i=0,o=0,u=0;
    while(c!='.')
    {
          c=getchar();
          texto
  • =c;
              x++;
             
              if(c==' '||c=='.')
              cont_pal = cont_pal +1;
              if(c=='a'||c=='e'||c=='i'||c=='o'||c=='u'||c=='A'||c=='E'||c=='I'||c=='O'||c=='U')
              cont_voc = cont_voc +1;
              else
              cont_cons = cont_cons +1;
              switch(c)
              {
              case 'a':
              case 'A':
              a=a+1;
              break;
              case 'e':
              case 'E':
              e=e+1;
              break;
              case 'i':
              case 'I':
              i=i+1;
              break;
              case 'o':
              case 'O':
              o=o+1;
              break;
              case 'u':
              case 'U':
              u=u+1;
              break;                             
              }
        }
        cont_cons = cont_cons - cont_pal;
        texto
  • ='\0';
        system("cls");
        printf("\n\n%s\n\n",texto);
        printf("TOTAL DE VOCALES: %d\n",cont_voc);
        printf("TOTAL DE CONSONANTES: %d\n",cont_cons);
        printf("TOTAL DE PALABRAS: %d\n\n\n",cont_pal);
        printf("TOTAL DE LETRAS A: %d\n",a);
        printf("TOTAL DE LETRAS E: %d\n",e);
        printf("TOTAL DE LETRAS I: %d\n",i);
        printf("TOTAL DE LETRAS O: %d\n",o);
        printf("TOTAL DE LETRAS U: %d\n",u);               
        system("PAUSE");
        return EXIT_SUCCESS;
    }

adrianmendezRap

Una pregunta. ¿A que te refieres con arreglos? ¿Os mandaron ampliar el código introduciendo nuevas funciones?
No es antiguo... es de coleccionista.

flony

la idea es que haga el mismo programa pero usando matrices, algunos le llaman arreglos, que va a salir mas cortito el codigo ponele la firma
si un problema no tiene solucion entonces no es un problema...es algo inevitable

lluvplay

hola chico !!! segun lo que veo necesitas algo como esto !!! pero en verdad no se si salio mas corto !!! cualquiera consulta estamos aqui !!!
#include<iostream.h>
#include<stdio.h>
#include <cstdlib>

int main ()
{
char vector[100];
int a=0,e=0,i=0,o=0,u=0, con,b;     
/// en el lenguaje C o C++ los vectores necesitan ser incializados porque estan
/// llenos de basura
/// Inciando vector

for (con=0;con<100;con++)
vector[con]=' '; // lo incializo con espacis en blanco

printf("Introduzca la Palabra: ");     
for (con=0;con<100;con++)
{
scanf("%c",&vector[con]);/// leemos la palabra
if (vector[con]=='\n')/// cuando presionamos enter fin e lectura
{
b=con;/// desimos hasta donde vamos a revisar el vector para no tener q revisar las 100 casillas
con=con+1111;    // salimos de la lectura
}// fin del if
}// fin del for
/// For del conteo normal mente tu profesor debio explicarte que no siempre son necesarios los else
/// como nosotros solo estamos buscando vocales listo solo vocales el signo "||" significa O
for (con=0;con<=b;con++)
{
if (vector[con]=='a'|| vector[con]=='A')
a=a+1;   
if (vector[con]=='e'|| vector[con]=='E') 
e=e+1;
if (vector[con]=='i'|| vector[con]=='I')
i=i+1;   
if (vector[con]=='o'|| vector[con]=='O') 
o=o+1;
if (vector[con]=='u'|| vector[con]=='U') 
u=u+1;
}
    printf("TOTAL DE VOCALES: %d\n",a+e+i+o+u);/// contamos las vocales
    printf("TOTAL DE CONSONANTES: %d\n",b-(a+e+i+o+u));// b es el total de la palabra - las vocales sobran las consonates
    printf("TOTAL DE PALABRAS: %d\n\n\n",b);// total de la palabra contado arriba
    printf("TOTAL DE LETRAS A: %d\n",a);
    printf("TOTAL DE LETRAS E: %d\n",e);
    printf("TOTAL DE LETRAS I: %d\n",i);
    printf("TOTAL DE LETRAS O: %d\n",o);
    printf("TOTAL DE LETRAS U: %d\n",u);           
system("PAUSE");
return 0;
}

anexo esto solo corre en Dev C !!! si bien usas borland C q no lo usas ( lo deduzco del codigo que mostraste arriba ) no va  a correr xq el enter se toma con el getch(); y su valor es el enter !!! para lo demas espero haber podido ayudar.
* Determinismo Causal !! Estamos Programados Para Necesitar Respuestas!!

* No deberías copiar un código, sin antes haber comprendido porque funciona de esa manera !

Alex Seahorse

lluvplay

¡Muchas gracias por la ayuda, de verdad eres un maestro!

Ahora solo me queda estudiar más esa parte de arreglos (matrices), me has salvado la vida...

Saludos.  ;-)

durasno

Los arreglo no son matrices, una matriz es bidimensional o mas.

array=arreglo=vector      (unidimensional)


Saludos
Ahorrate una pregunta, lee el man

flony

para que lo sepas un vector es una matriz que tiene la particularidad de ser unidimensional, pero no por ello deja de ser una matriz...no quise ponerlo la primera vez, por no iniciar una discusión teórica que no llevaba a la resolución de este problema en particular
si un problema no tiene solucion entonces no es un problema...es algo inevitable