Duda en programa

Iniciado por Black Lotus, 22 Diciembre 2012, 23:49 PM

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

Black Lotus

Hola como veran soy relativamente en el foro y en c++..
No le entiendo a una parte de este programa... el programa nos lo compartio nuestro maestro de clases para que lo vieramos y analizaramos pero solo lo que medio se lo expuse ahi el resto no le entiendo me ayudarian?? EL PROGRAMA DEBE DE CONTAR CARACTERES DE UNA PALABRA O FRASE
Código (cpp) [Seleccionar]

#include<iostream.h> //libreria principal a usar
#include<conio.h> //segun yo para usar getch ()
#include<stdlib.h> //lo unico que se de esta libreria que ayuda a gestión de memoria dinámica, control de procesos
#include<stdio.h>//libreria para usar la función gets ()
#include<string.h> //entiendo qeu es para usar la funcion strlen
#include<ctype.h> //entiendo que es para usar la funcion isalpha

void main() //estuve leyendo en su foro que no es muy bueno comenzar un programa asi
{
clrscr(); //borrar pantalla
char palabra[25]; //declarar la variable palabra y tendra un valor maximo de 25
int total=0; //almanecera el total de caracteres en una frase y se comienza a contar en 0
cout<<"Ingrese nombre o una frase..: ";gets(palabra);//pide la frase que se va a contar las letras o caracteres
for(int i=0;i<strlen(palabra);i++){//esta parte no la entiendo
if(!isalpha(palabra[i])){//esta parte no la entiendo

}
else total++;//esta parte no la entiendo
}

cout<<total; //muestra el total de vocales
getch();
}


rir3760

No es por desanimar pero deberías recomendarle a tu profesor que lea |Lo que no hay que hacer en C/C++. Nivel basico|, eso porque casi todo el programa deja mucho que desear (desde la perspectiva de enseñar bien el lenguaje C++).

Código (cpp) [Seleccionar]
for(int i=0;i<strlen(palabra);i++){//esta parte no la entiendo
Revisa tu material de referencia, la sección sobre bucles. Si no tienes un buen curso o libro revisa las recomendaciones mediante el motor de búsqueda de los foros.

Código (cpp) [Seleccionar]
if(!isalpha(palabra[i])){//esta parte no la entiendo
La función isalpha retorna verdadero si el carácter pasado como argumento es alfabético.

Debido a que la condicion utiliza el operador de negacion "!" la puedes leer así: "Si el carácter en la posición 'i' de la cadena 'palabra' NO es alfabético entonces ...".

Código (cpp) [Seleccionar]
else total++;//esta parte no la entiendo
El operador "++" incrementa el valor de la variable en una unidad.

Por ultimo el comentario en el programa esta mal ya que este solo cuenta el numero de caracteres alfabéticos en la frase. De nuevo si no tienes un libro o curso de calidad a conseguir uno. Y dale un buen zape a tu profesor.

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

Black Lotus

Oh gracias rir3760 le entendi mucho a lo que me dijiste  :) :)