Foros del Web » Programación para mayores de 30 ;) » C/C++ »

pregunta simple...lenguiaje c programa basico

Estas en el tema de pregunta simple...lenguiaje c programa basico en el foro de C/C++ en Foros del Web. buenas , como quiero saber cada detalle de este lenguaje , pregunto nomas... a este simple programa de suma de dos numeros. #include<conio.h> #include<stdio.h> #include<math.h> ...
  #1 (permalink)  
Antiguo 21/06/2010, 10:41
 
Fecha de Ingreso: julio-2009
Mensajes: 29
Antigüedad: 14 años, 9 meses
Puntos: 0
pregunta simple...lenguiaje c programa basico

buenas , como quiero saber cada detalle de este lenguaje , pregunto nomas...

a este simple programa de suma de dos numeros.

#include<conio.h>
#include<stdio.h>
#include<math.h>
main ()
{
int a=0,b=0,sum=0;
printf("Ingrese un numero: ");
scanf ("%d",&a);
printf ("ingrese otro numero: ");
scanf ("%d",&b);
sum=a+b;
printf("\nel resultado de la suma es: %d",sum);
getch ();
}


1) si finaliza con getch(); , si no lo pongo tambien funciona normal...?
2) getch (); es lo mismo que poner system("pause");¿¿¿
3) que funcion cumple los return (variable)? me gustaria que hagan ejemplos...
4) los void, siempre que escucho por ahi dicen." no devuelve ningun valor " no se cuando colocarlos... ¿ como un programa no devuelve valor??, veo en los libros no logro enterlo bien,...
5) siempre que se utiliza caracteres char... se coloca #include <iostream.h>?

6) este programa que .... la consigna dice... (las dudas marcadas en rojo )

"Leer caracter hasta hasta ingresar e caracter '?'. imprimir cuantas vocales fueron ingresadas."


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

int vocal(const char); /*como int vocal ? que seria const char. ¿constante, a que se refiere?*/
main()
{
char c;
int contar=0;
while((putchar(c=getch()))!='?') /*¿putchar? getch , se refiere a entrada de datos? */

if(vocal(c))contar++;
printf("\nNumero de vocales: %d",contar);
}

int vocal(const char c) /* ¿que seria const ? */
{
int i;
char vocales[]={'A','E','I','O','U',
'a','e','i','o','u'};
for(i=0; i<10; i++)
if(c==vocales[i])
return 1; /* ¿y estos return que tampoco sé que son... ¿getch( );?*/
return 0;
}


creo que en las dudas de este programa esta muy "cientifico" si me pueden decir mas basico .. estaria bueno,, asi lo entiendo....

gracias "
  #2 (permalink)  
Antiguo 22/06/2010, 22:54
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 13 años, 10 meses
Puntos: 95
Respuesta: pregunta simple...lenguiaje c programa basico

1) si finaliza con getch(); , si no lo pongo tambien funciona normal...?
Si, también funciona normal. Lo único que hace esa instrucción, es pedir una entrada del teclado para finalizar el programa

2) getch (); es lo mismo que poner system("pause");¿¿¿
Asi es, es exactamente lo mismo. La diferencia es que getch() es mas genérico, en otras palabras, si tratas de compilar dicho programa en Unix/Linux, la linea system("pause"); te mandaría error porque esa instrucción es nativa de windows.

3) que funcion cumple los return (variable)? me gustaria que hagan ejemplos...
return, lo unico que hace es regresar un valor a la computadora, cuando se termina de ejecutar una función. En la pregunta 4 te lo explico mas detalle.
Por ejemplo si tienes una función
Código C:
Ver original
  1. char funcion_caracter(char caracter)
  2. {
  3. if(caracter=='a')
  4. {
  5. printf("Escribiste una a\n");
  6. }
  7. else
  8. {
  9. printf("Escribiste algo diferente a \'a\' \n");
  10. }
  11. return caracter;
  12. }
verás que estoy regresando una variable tipo char... debido a que declaré una función de tipo char.



4) los void, siempre que escucho por ahi dicen." no devuelve ningun valor " no se cuando colocarlos... ¿ como un programa no devuelve valor??, veo en los libros no logro enterlo bien,...
Cuando una función le precede la palabra reservada "void" quiere decir que no regresa ningun valor a la memoria.

En otras palabras,
Cuando creamos una función, el procesador asigna un espacio en la memoria para dicha función.
Al leer el procesador que se trata una función de tipo entero, el procesador, espera un valor entero al final de dicha función.
Por ejemplo:

Código C++:
Ver original
  1. int suma(int a, int b)
  2. {
  3. return a+b;
  4. }

Si llamamos a la función de la siguiente manera:
suma(3,2);
El procesador recibirá 5,
porque estaoms estableciendo return 3+2;
return 5;

Siempre debemos devolver el mismo tipo de dato que estamos utilizando para declarar la función.

También lo podemos ver como un servicio de "renta"

El procesador, le "renta" a nuestro programa un espacio en la memoria para que ponga su función. Cuando nuestro programa termina de utilizar la función, el programa le debe regresar ese espacio al procesador para que se lo pueda asignar a otros programas que lo puedan requerir; Entonces nuestro programa le "paga" al procesador por el espacio rentado, con algo del mismo valor.

Un compilador estandar de C++, asigna a los números enteros (short int o simplemente int) un espacio de 16 bits, proporcionandonos un rango de números enteros (short int) de -32768 a 32767 (2 elevado a la potencia 15)
Al momento de declarar una función de tipo int (como en nuestro ejemplo int suma(int a, int b) ), el procesador, al finalizar nuestra función espera que le regresemos un valor dentro del rango previmanete establecido. Dicho rango varía de acuerdo al tipo de dato que estamos utilizando para nuestra función.


Ahora, si utilizamos la palabra reservada void, antes de la funcion
como:

Código C++:
Ver original
  1. void suma(int a, int b)
  2. {
  3. int sumita = a+b;
  4. std::cout<<sumita<<endl;
  5. }

Notaras la ausencia de la palabra reservada return.
No hay necesidad de regresar ningun valor al compilador. Cuando utilizamos la palabra reservada void para declarar una función, el procesador le sigue presetando ese espacio de memoria a nuestro programa para que almacene su función, pero ya no se la cobra.


5) siempre que se utiliza caracteres char... se coloca #include <iostream.h>?
No, iostream es la librería que se encarga del flujo de input y output del teclado. Si quieres utilizar las instrucciones cout y cin, entonces debes incluir iostream.
Char es un tipo de dato nativo del lenguaje.
Cuando digo tipo de dato, es el tipo de información que el compilador espera encontrar el variable asociada.

En el programa

int vocal(const char c)

cuando declaras una variable "constante" (valgase la redundancia), quiere decir que el valor de esa variable no va a cambiar a lo largo del programa.. siempre se va a mantener igual.

en int vocal(const char c)
Estas declarando una función entera, la cual acepta como argumento una constante de tipo caracter, llamada c.
Los argumentos de la funcion, ya sean pasados por referencia o por valor, lo que hacen es poder usar esos valores pasados a la funcion, en la funcion misma sin tener que ser declarados.

Etiquetas: basico, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:04.