Aprendiendo C (2da Parte)
2007-10-24 09:35:21-05
Software
Bueno ya conocemos la estructura básica de un programa en C, ahora aprenderemos sobre algunas cosas mas. modificaremos el programa Hola Nena de la entrada anterior para probar mas características:
#include<stdio.h>
int main() //inicio función principal
{
int besos; //declaración de la variable tipo entero "besos"
printf("Cuantos Besos quieres darle a la nena??"); /*Despliega letrero*/
scanf("%d", &besos); /*Recibe datos de la entrada estándar, los transforma y guarda en la variable besos*/
printf("Hola Nena quiero darte %d besos", besos); /*saluda a la nena y le dice cuantas veces quieres besarla*/
return 0; /*terminación exitosa del programa */
} //fin función principal
ahora compila...
De inicio tenemos la declaración de la variable "besos" le antecede la palabra reservada "int", en C TODAS las variables deben ser declaradas antes de ser usadas, existen diferentes tipos de datos como enteros, números de punto flotante y tipo carácter. Una formalidad muy importante,una variable es un espacio de memoria donde la computadora puede guardar un dato para utilizarlo durante el programa.
El nombre de la variable es una combinación de caracteres alfanuméricos pero cuenta con algunas restricciones:
1.-Toda variable (o constante simbólica, de esto les platico luego) debe empezar con letra.
2.- '_' cuenta como letra, sin embargo, debe evitarse por que muchas subrutinas de la biblioteca estándar empiezan con ese carácter.
3.-Las letras mayúsculas y minúsculas son DISTINTAS.
Esta ultima siempre merece un poco mas de explicación, BEsos es distinto de besos o BESOS o bEsOs. puedes comprobarlo cambiando el nombre de la variable en cualquier lugar del programa y compilarlo.
El nombre de la variable es una combinación de caracteres alfanuméricos pero cuenta con algunas restricciones:
1.-Toda variable (o constante simbólica, de esto les platico luego) debe empezar con letra.
2.- '_' cuenta como letra, sin embargo, debe evitarse por que muchas subrutinas de la biblioteca estándar empiezan con ese carácter.
3.-Las letras mayúsculas y minúsculas son DISTINTAS.
Esta ultima siempre merece un poco mas de explicación, BEsos es distinto de besos o BESOS o bEsOs. puedes comprobarlo cambiando el nombre de la variable en cualquier lugar del programa y compilarlo.
Toda variable corresponde a un tipo de datos, veamos algunos tipos de datos
| Tipo de dato | descripción | especificador de conversión |
| int | Números enteros | %d |
| float | Números de punto flotante | %f |
| double | Números de punto flotante de doble precisión | %f |
| char | carácter ascii | %c |
Sigamos, la función printf definida en la biblioteca de entrada y salida estándar "stdio.h" "imprime" su argumento con o sin formato, en el segundo "printf" podemos ver un %d, esto es un especificador de conversion, indica que va a imprimir un valor de tipo int, también podemos ver de nuevo a '\n'. En general, la funcion "printf" tiene como primer argumento una cadena de caracteres entre comillas dobles ("), con cada % uno de los argumentos siguientes seran sustituidos por su correspondiente, deben ser iguales en numero y tipo.
Existen caracteres que por su naturaleza o por tener algún significado especial, requieren ser escritos de una manera un poco distinta, como por ejemplo el carácter nueva linea (un enter, pues), aqui hay una pequeña lista de los caracteres que se muestran con secuencias de escape, notece que cada uno cuenta como un solo carácter.
\a Alerta Emite un aviso sonoro
\b Espacio atras
\" Imprime comillas
\n Nueva Linea
\r Retorno de carro
\t Tabulacion
\% Imprime simbolo "por ciento" (%)
\\ Imprime diagonal invertida
\0 Carácter Nulo (MUY IMPORTANTE)
Ahora veremos la funcion "scanf", esta funcion "lee" un dato de la entrada estandar (normalmente el teclado) y lo asigna al espacio de memoria apuntado por una variable, el simbolo '&' es necesario para indicar la asignacion del espacio de memoria.
Probemos otro ejemplo para reafirmar y utilizar nuevos conceptos
#include<stdio.h>
int main()
{
float desayuno, comida, cena, total;
printf("Dime cuanto gastas en el desayuno,comida y cena\n");
scanf("%f%f%f", &desayuno, &comida, &cena); /*Lee 3 numeros flotantes*/
total=desayuno+comida+cena; //Operaciones aritmeticas
printf("Gastas en total: %f\n",total);
return 0;
}/*fin del programa*/
¿Que hay de nuevo aqui? pues usamos el especificador de conversion %f para indicar que recibimos e imprimimos numeros de punto flotante (¿por que conversion? lo explicare con mas detalle despues, pero recibimos una secuencia de caracteres desde el teclado, cuando scanf lee algo, lo convierte para poder trabajar con el).Tambien usamos opereciones aritmeticas, en C hay definidas opereraciones aritmeticas, logicas, de comparacion entre otras. veamos la siguiente tabla:
Si no entiendes el uso de alguno de estos simbolos, no te preocupes,apenas vamos empezando, con ejemplos y ejercicios los aprenderas en poco tiempo. es importante anotar que en C el valor falso corresponde a 0, el verdadero es cualquier otro numero,no existe un tipo bool como en otros lenguajes,pero la verdad no es necesario.
Haremos un programa pequeño programa que nos sirva de ayuda para entender como se usan los operadores aritmeticos, cuando veamos la instruccion if mostraremos e luso de las demas.
#include<stdio.h>
int main()
{
int a, b, suma, resta, mult, div, mod, comp; /*declaramos la variables que vamos a usar*/
printf("Escribe dos enteros, pueden ser negativos:");
scanf("%d %d",&a, &b);
suma=a+b;
resta=a-b;
mult=a*b;
div=a/b;
mod=a%b;
printf("a + b=%d \na - b=%d \na * b=%d,a / b=%d \na mod b= %d\n",suma,resta,mult,div,mod);
printf("Veamos por son importantes los parentesis\n");
comp=a*b-suma;
printf("a * b - (a+b)= %d \n",comp);
comp=a * (b - sum);
printf("a*(b - (a + b)=%d\n",comp);
printf("Notaste alguna diferencia ????\n);
return 0;
} //Fin programa principal
compila.....
OK, hoy vimos:
1.-Defincion de variables.
2.-Tipos basicos de datos.
3.-printf y secuancias de escape.
4.-scanf y especificadores de conversion basicos.
5.-operadores aritmeticos (mencionamos de comparacion y logicos)
La siguiente entrada seran ejercicios, si tienes dudas o sugerencias o dije algo mal y estas enojado por eso, comentalo, tratare de responder lo mas pronto posible.
Existen caracteres que por su naturaleza o por tener algún significado especial, requieren ser escritos de una manera un poco distinta, como por ejemplo el carácter nueva linea (un enter, pues), aqui hay una pequeña lista de los caracteres que se muestran con secuencias de escape, notece que cada uno cuenta como un solo carácter.
\a Alerta Emite un aviso sonoro
\b Espacio atras
\" Imprime comillas
\n Nueva Linea
\r Retorno de carro
\t Tabulacion
\% Imprime simbolo "por ciento" (%)
\\ Imprime diagonal invertida
\0 Carácter Nulo (MUY IMPORTANTE)
Ahora veremos la funcion "scanf", esta funcion "lee" un dato de la entrada estandar (normalmente el teclado) y lo asigna al espacio de memoria apuntado por una variable, el simbolo '&' es necesario para indicar la asignacion del espacio de memoria.
Probemos otro ejemplo para reafirmar y utilizar nuevos conceptos
#include<stdio.h>
int main()
{
float desayuno, comida, cena, total;
printf("Dime cuanto gastas en el desayuno,comida y cena\n");
scanf("%f%f%f", &desayuno, &comida, &cena); /*Lee 3 numeros flotantes*/
total=desayuno+comida+cena; //Operaciones aritmeticas
printf("Gastas en total: %f\n",total);
return 0;
}/*fin del programa*/
¿Que hay de nuevo aqui? pues usamos el especificador de conversion %f para indicar que recibimos e imprimimos numeros de punto flotante (¿por que conversion? lo explicare con mas detalle despues, pero recibimos una secuencia de caracteres desde el teclado, cuando scanf lee algo, lo convierte para poder trabajar con el).Tambien usamos opereciones aritmeticas, en C hay definidas opereraciones aritmeticas, logicas, de comparacion entre otras. veamos la siguiente tabla:
| simbolo | tipo | descripcion | ejemplo |
| + | Aritmetico | Suma | a + b |
| - | Aritmetico | Resta | c - d |
| * | Aritmetico | Multiplicacion | a * d |
| / | Aritmetico | Divicion | e / r |
| % | Aritmetico | Modulo (resto) | a%2 |
| ( ) | ---- | Parentesis | (a+b)*c |
| == | Comparacion | Igualdad | a == b |
| != | Comparacion | Desigualdad | c != d |
| < | Comparacion | Menor que | a < b |
| > | Comparacion | Mayor que | a > b |
| >= | Comparacion | Mayor o igual que | a >= b |
| <= | Comparacion | Menor o igual que | a <= b |
| && | Logico | AND logico | si && si |
| || | Logico | Or logico | Si || No |
| ! | Logico | Not logico | !NO |
Si no entiendes el uso de alguno de estos simbolos, no te preocupes,apenas vamos empezando, con ejemplos y ejercicios los aprenderas en poco tiempo. es importante anotar que en C el valor falso corresponde a 0, el verdadero es cualquier otro numero,no existe un tipo bool como en otros lenguajes,pero la verdad no es necesario.
Haremos un programa pequeño programa que nos sirva de ayuda para entender como se usan los operadores aritmeticos, cuando veamos la instruccion if mostraremos e luso de las demas.
#include<stdio.h>
int main()
{
int a, b, suma, resta, mult, div, mod, comp; /*declaramos la variables que vamos a usar*/
printf("Escribe dos enteros, pueden ser negativos:");
scanf("%d %d",&a, &b);
suma=a+b;
resta=a-b;
mult=a*b;
div=a/b;
mod=a%b;
printf("a + b=%d \na - b=%d \na * b=%d,a / b=%d \na mod b= %d\n",suma,resta,mult,div,mod);
printf("Veamos por son importantes los parentesis\n");
comp=a*b-suma;
printf("a * b - (a+b)= %d \n",comp);
comp=a * (b - sum);
printf("a*(b - (a + b)=%d\n",comp);
printf("Notaste alguna diferencia ????\n);
return 0;
} //Fin programa principal
compila.....
OK, hoy vimos:
1.-Defincion de variables.
2.-Tipos basicos de datos.
3.-printf y secuancias de escape.
4.-scanf y especificadores de conversion basicos.
5.-operadores aritmeticos (mencionamos de comparacion y logicos)
La siguiente entrada seran ejercicios, si tienes dudas o sugerencias o dije algo mal y estas enojado por eso, comentalo, tratare de responder lo mas pronto posible.
Permalink: http://www.mononeurona.org/users/entry/vendaval/884
Comentblogs:1.-
cibat wrote:
Hacia rato que tenia ganas de volver a agarrar C, espero poder darme chance para volver a codear con él :) gracias por el material!.
2007-10-25 09:43:22-05
Hacia rato que tenia ganas de volver a agarrar C, espero poder darme chance para volver a codear con él :) gracias por el material!.
2007-10-25 09:43:22-05










