Sunteți pe pagina 1din 6

Entienda y Aprenda el Lenguaje C

Desarrollo de un programa:
Escriba el programa fuente en el editor:
// saludo.c, autor C. Bazn, enero 20XX
#include<stdio.h>
void main(void){
char gente[ ]= Mundo!;
printf(Hola %s\n, gente);
}
Notas:
1)

2)
3)
4)

Escribir el programa en forma ORDENADA, lo cual no solo es una cuestin de estilo, sino que sirve para hacerlo legible (suelen
ser una chorrera de letras y cosas raras encapsuladas unas dentro de otras y usted no sabe donde comienzan y terminan, ni
para qu sirven, ni a quien referirse). El orden hace visible el rango de las instrucciones, atento:
Preferentemente escriba una instruccin en cada lnea
Indente usando el tabulador, no la barra espaciadora
El orden es un tem para la calificacin de las pruebas.
La distincin entre letras maysculas y minsculas es muy importante; por ejemplo: include es algo totalmente distinto a Include;
Las palabras toman colores distintos, por qu ser?
Comentarios: Son textos, dentro del programa, que sirven para hacer aclaraciones al lector humano; pero no son ledos por el
computador (son invisibles para l), Hay dos tipos de comentarios:
De fin de lnea:
#include<stdio.h>
// esto es un comentario de fin de lnea
De varias lneas:
/* El comentario inicia ac
sigue varias lneas, al final cierra.
*/

El escrito final + comentarios agregados, ser similar a:


01 // mundo.c, autor C. Bazn, enero 20XX
02 #include<stdio.h>
// Incluye librera estndar que permite activar el teclado y el monitor
03 void main(void){
// Inicia la funcin main <principal en ingls> que inicia la ejecucin del programa
04
char gente[ ]= Mundo!;
// Define la cadena de caracteres gente
05
printf(Hola %s\n, gente);
// Imprime el saludo en el monitor.
06 }
// Finaliza la funcin main.

Definiciones:

A cada lnea (o ms de una) que termina en ; se le llama instruccin o sentencia (viene del ingls sentence). Los comentarios
solo aparecen en este libro.
Programas
Programa fuente
: Conjunto de instrucciones, en lenguaje C, entendibles por el usuario, parecido a saludo.c
Programa Objeto
: Conjunto de instrucciones entendibles por el sistema operativo, le falta otros programas auxiliares que
estn en libreras
Programa Ejecutable : Conjunto de instrucciones completo listo para ejecutar.

PGINA: 1

Entienda y Aprenda el Lenguaje C

Ciclo de desarrollo de un programa:


Computador
Escribir en el editor

Programa Fuente
(source program)

Errores de sintaxis

Compilar: Revisa la sintaxis


Depurar: corregir errores de sintaxis

Programa Objeto
(Object program)
Orden de ejecutar

Programa Ejecutable
(Executable program)
Computador ejecuta

Resultado de la ejecucin
Comprobar resultados

Depurar: Corregir errores de lgica

Salvar, Compilar, Depurar, Ejecutar y Comprobar la lgica un programa


Ya tenemos el programa fuente saludo.c.
Salvar saludo.c
Compilar saludo.c
Si no hay errores de sintaxis obtendremos el programa objeto correspondiente saludo.exe y no ser necesario depurar.
Si hay errores de sintaxis no obtendremos el programa objeto y ser necesario depurar.
Depurar saludo.c: Es el proceso de corregir los errores de concepcin, sintaxis y/o de lgica; ver ms, al final de este captulo.
Ejecutar saludo.c:
El hecho de que compile y ejecute un programa significa nicamente que no hay errores de sintaxis; pero no garantiza que el
programa sea correcto lgicamente, o que no requiere de modificaciones de forma.
Ejercicios:
1) Cambie la salida del programa saludo.c a: Hola amigos
2) Edite, compile, depure y ejecute el programa cincunferencia.c, el cual lee un radio y calcula el permetro y rea de la
circunferencia.
Edicin:
01
// circunferencia.c, autor C. Bazn, enero 20XX
02
#include<stdio.h>
03
#define PI 3.1416
04
void main(void){
05
float r;
06
printf(Permetro y rea de una circunferencia\n);
// escribe en el monitor
07
printf(Ingrese un nmero mayor que 0: );
08
scanf(%f, &r);
// lee del teclado
09
printf(El dimetro de la circunferencia es: %f, 2 * PI * r);
10
printf(\nEl rea de la circunferencia es: %f, PI * r * r);
11
}

Programacin estructurada
Es un paradigma (forma) de programar similar al ejemplo anterior; en general usa 4 tipos de instruccin:
1) instrucciones que se ejecutan en secuencia como en saludo.c
2) Instrucciones de decisin:
if (a==0) b= 1;
// Si a = 0
b= 1;
else
b = 2;
// En caso contrario b = 2;
Segn el valor de a decide si b= 1 2.
PGINA: 2

Entienda y Aprenda el Lenguaje C


3)

4)

Instrucciones que se repiten (iteracin):


for (i = 1; i < 5; i= i+1) {
// repetir para i = 1, 2, 3 y 4 la siguiente instruccin
printf(\ni = %d, i+2 = %d, i, i+2); // imprimir i , i+2
}
Instrucciones que son funciones como: void main(void) {}

Estructura del programa fuente


Estructura
Documentacin del
programa
Incluir programas auxiliares
Definir constantes y
variables de uso global
(opcional)
Prototipo de funciones
(opcional)
funcin main (principal)

Otras funciones (opcional)


Elementos
Identificadores

Tipos de datos
Variables
Constantes
Palabras reservadas
operadores
Expresiones
Expresin condicional
Alcance de variables y
constantes

Instruccin

Bloque (de instrucciones)

Programa

Ejemplo
// mundo, autor C. Bazn, enero 20XX
#include<stdio.h> // incluye rutinas de entrada/salida estndar
#include<math.h> // incluye rutinas para clculos matemticos
#define PI 3.1416
int m, n;
int miFuncion(float x);

Ejercicio: Identifique
todos la estructura del
programa
circunferencia.c

Elementos de
programacin

void main(void){
Inicio
char gente[ ]= Mundo!;
Cuerpo
printf(Hola %s\n, gente);
}
Fin
int miFuncion(float x) { }
Definicin
Ejemplos
Secuencia de letras maysculas y minsculas (no , ni acentos),
gente, n, N, n1, n1A, n1_a,
subguin _ y nmeros. No comienza en nmero. Son sensibles al tipo
suma, masGrande, _a
de letra: ma es distinto de Ma
NO: 12abc, $uno
Un identificador identifica datos y funciones.
Entero, real, carcter
int, float, char
Dato que vara
char gente;
Dato que no vara
#define PI 3.1416
Palabras que no pueden ser usadas como identificadores; al escribirlas
Int, char, float
toman un color
Signos que para operaciones
+ - / * % = < > >=
Combinacin de variables y operadores aritmticos
a+b
Combinacin de variables y operadores de relacin y/o lgicos, que da
a>b
un valor verdadero o falso
Las variables y constantes se definen en diferentes partes de un
void main(void){
programa y son alcanzables (leer y modificar) en esas partes:
char gente[ ]= Mundo!;
Fuera de las funciones: Su alcance es global (todo el programa)
printf(Hola %s\n, gente);
En el inicio de una funcin: Su alcance es local (en la funcin)
}
En el cuerpo de una funcin: Su alcance es la funcin
Dentro de un bloque: Solo el bloque
Orden para que el computador ejecute una accin; las instrucciones
printf(El nmero es: %d, n);
terminan en ;
En una sola lnea de programa se pueden escribir varias instrucciones:
inst1; inst2;
Una instruccin puede escribirse en ms de una lnea, se salta lnea con
<enter>
0, 1 ms instrucciones:
0 instrucciones: ;
1 instruccin:
printf(Hola);
1 ms instrucciones:
{ inst1;
Inst2;
}
Conjunto de instrucciones (y bloques) para ejecutar una tarea compleja

Ejercicio: Identifique todos los elementos del programa circunferencia.c


Entrada/Salida de datos/informacin desde el computador
Entrada: Utilizando la funcin scanf( ), ingresamos datos desde el teclado (stdin) de acuerdo a un formato de izquierda a derecha.
Salida: Utilizando la funcin printf( ), imprimimos informacin en el monitor (stdout) de acuerdo a un formato de izquierda a derecha.
PGINA: 3

Entienda y Aprenda el Lenguaje C


Veamos el programa entradaSalida.c, el cual lee e imprime un nmero entero n
01 // entradaSalida.c, autor C. Bazn, enero 20XX
02 #include<stdio.h>
// incluye rutinas estndar de Entrada/Salida
03 void main(void){
04
int n;
// entero n
05
printf(Escriba un nmero entero de un dgito: );
// escribe en el monitor
06
scanf(%d, &n);
// Entrada: Lee del teclado
07
printf(\nUsted escribi el nmero: %d, n);
// Salida : Escribe en el monitor
08 }
Ejercicio: escriba y procese el programa anterior:
Escritura y lectura de datos:
Para escribir en el monitor hemos utilizado la funcin : printf(\nUsted escribi el nmero: %d, n);
La expresin entre comilla doble se llama patrn y puede estar compuesto de:
Control de edicin : \n indica salto de lnea \t indica salto de tabulacin
Mensaje
: Usted escribi el nmero:
Formato de dato a n : en %d, % es el comienzo del formato; d tipo de dato entero, que se aplica a n
Los componentes anteriores se pueden entremezclar, por ejemplo:
printf(\nUsted escribi el nmero: %d \t y nada ms, n);
Puede escribir varios datos: indique los formatos y datos ordenadamente, por ejemplo, si: j es entero y k es float (nmero real),
puede imprimir:
Printf(Dato entero: %d; dato real: %f, j, k);
Formatos ms usados:
%d
para nmero entero
%f
para nmero real (flotante)
%c
para caracter
%s
para cadena de caracteres.
\n
indica salto de lnea
\t
indica salto de tabulacin
Para leer datos desde el teclado hemos utilizado la funcin: scanf(%d, &n);
%d
Es el formato para n
&
Indica el valor ledo ser guardado en la posicin de memoria de n
Se pueden leer varios datos, por ejemplo si j es un dato entero y k uno real, podemos leerlos del teclado as:
scanf(%d %f, j, k);
teclee los dos nmeros, por ejemplo: 5 3.2; lo puede hacer de dos modos:
5 3.2 <enter>
5<enter>
3.2<enter>
Como puede ver, los datos se separan por <espacios en blanco> o por <enter>

Tipos de datos y conversin


Todos los datos en C son de un tipo especfico. En cuanto al espacio de memoria ocupado (lo cual es inflexible en computacin) y otros
detalles de precisin, de menor a mayor rango, los tipos de datos son:
char short int long float double long double
Los programas a menudo combinan los tipos en expresiones, asignaciones y declaraciones. Al momento de clculo, debidos a los
diferentes rangos, se pueden ocasionar desbordamientos (los datos no alcanzan en la memoria) e imprecisin (los datos significativos se
pierden). El computador no suele avisar de estos dos eventos, es tarea del desarrollador controlar que no ocurran:
La precisin se mejora: asignando correctamente los tipos de datos; secuencia adecuada de clculos y/o utilizar algoritmos de
alta precisin.
El desbordamiento se controla: aumentando el rango del dato, dentro de su tipo; para clculos con nmeros grandes se utilizan
algoritmos especiales.
Soluciones:
Promover por rango de datos (en expresiones): un ejemplo lo explica fcilmente, sean a int; b long; al calcular la expresin a
+ b; a (de menor rango) es promovida a long y se ejecuta la operacin; esto resuelve el problema la gran mayora de veces;
pero podra producir errores por imprecisin. Esta promocin la ejecuta en forma automtica el computador;
Conversin por asignacin: un ejemplo lo explica fcilmente, sean a int; b long; al asignar a = b; el computador convierte b
a int y lo asigna a a. Esto podra causar la prdida de dgitos.
Conversin de tipos explcita: la hace el programador para evitar resultados errneos, utilizando el operador typecast,
veamos un ejemplo:
int i = 5, j = 2;
float k;
PGINA: 4

Entienda y Aprenda el Lenguaje C


k = i/j; // resultado 2 (se hizo una divisin de enteros), diferente al esperado 2.5
Haga el Typecasting (se pronuncia taipcasting, la i es seca, hacia la e; significa forzar el tipo) a float :
k = (float)i/j;
// k = i/(float)j; tambin funciona.
El operador typecast (sobre una variable var) tiene la sintaxis: (type)var.

Depurar un programa
Depurar es, corregir los errores de un programa; para traducir al ingls se escribe debug y se pronuncia dibg; la traduccin literal en el
argot popular sera eliminar insectos o microbios (algo molestoso).
Ya hablamos anteriormente sobre la depuracin, esperamos un poco para que usted tenga ms material de computacin que le ayudar
a entender este tema.
Depurar es el proceso de corregir 4 tipos de error:
1) Anlisis y diseo: Especifica el qu hacer y cmo mostrarlo. Para hacer un programa intervienen, cuando menos: El usuario y el
desarrollador (programador); es frecuente que el usuario no especifique o no sepa con claridad lo que necesita; que no se entiendan
bien el usuario y el desarrollador, ya que son de formacin distinta; o que se equivoque el desarrollador. Los problemas suelen ser
de presentacin de resultados, errores en las frmulas, o lo ms grave, errores de tipo estructural en problemas complejos. Este
error se suele detectar al momento de la entrega del programa; para prevenirlo, haga participar al usuario en la medida que desarrolla,
para que se integren como un equipo de trabajo y para que confirme el buen desarrollo.
2) Sintaxis: Son errores de sintaxis que comete el desarrollador, los detecta el compilador y se muestran en la ventana inferior: Logs
& others Build log, los errores y la lnea donde ocurren se reportan en color rojo, haga click sobre el error y el cursor saltar a la
lnea de cdigo del programa donde est el error. No es necesario corregir todos los errores; ya que es muy frecuente que un error
de cdigo genere muchos errores de sintaxis; as es que corrija 1, 2, 3 errores de sintaxis y vuelva a compilar.
3) Ejecucin: El programa compila sin errores, al momento de ejecutar se pueden producir diferentes eventos, en muchos casos es
necesario escribir trazas en el programa. Una traza es un mensaje (que se imprime en pantalla y lo ves), se escribe en partes
estratgicas del programa, hay dos tipos:
De recorrido del programa: printf(1: aaaaaaa); printf(2: aaaaaaa); // usa cualquier smbolo repetido
El nmero sirve para identificar el mensaje.
El aaaaaaa sirve para distinguir en pantalla el mensaje, muchas aparecen un montn de letras y no se sabe donde
aparece el mensaje.
De valores: printf(aaaaaaa: x = %d, y = %d, x, y); // se usa para conocer los valores que toman las variables
Los eventos de error suelen ser:
a. El computador muestra errores: depure y recompile.
b. El programa no hace nada y termina: escriba trazas
c. El programa procesa y no termina nunca (se cuelga, entra en loop, ): Mtelo (en ingls se escribe kill it, al pronunciar las i
suenan pacidas a la e): presione las teclas ctrl+c y luego ponga trazas y recompile.
4) Lgica: El computador hace lo que usted ordena (escribe), no lo que usted quiere; este es el error ms frecuente y ms difcil de
resolver, ya que no hay mensaje de error y los resultados se muestran; pero son incorrectos y muchas veces usted no lo sabe. Para
superar este problema se suelen hacer dos procesos:
Revisar la lgica del programa, es mi preferido.
Preparar una matriz de casos de prueba con las entradas de casos lmite, por ejemplo, si su problema es ver si un nmero es
primo o no, la matriz sera:
Casos de Prueba
Caso
Entrada(s)
Salida(s)
Nmero
Resultado
1
-1
El nmero debe ser mayor que 0
2
0
El nmero debe ser mayor que 0
3
1
Si
4
2
No
5
3
Si
.
Ejecute el programa para cada caso de prueba: Ingrese los datos de entrada y verifique que la salida concuerda con la esperada. Si no
es as; corrija el programa, recompile, ejecute y verifique nuevamente los casos de prueba. Sea cuidadoso al depurar, ya que al corregir
un error puede producir otro y usted no lo sabe, lo cual quiere decir que debieran repetirse todos los casos de prueba; afortunadamente,
la experiencia y la buena lgica nos permiten correr el riesgo de no probarlo todo, una y otra vez: Atento, sea cuidadoso.
Al inicio la depuracin parece un proceso tedioso, pero con la prctica se facilita. Este proceso de control y correccin, en el mundo virtual
(el desarrollador tiene el poder de ordenar y tiene facilidades para convertirse en un trabaholico; la computadora obedece es rpida, pero
bruta, y muy trabajadora; el problema es complejo; se puede trabajar 24/24), consume tiempos y recursos y, es similar en la lgica, al que
ejecutamos en el mundo real, con la diferencia de que en el mundo real, los recursos son muy caros, y los tiempos son muy largos,
podemos sacar varias conclusiones, entre otras:
Programar y depurar es una gran herramienta que facilita el desarrollo del pensamiento organizado en el mundo real.
La velocidad del mundo virtual, revela con nitidez los problemas invisibilizados por la lentitud del mundo real.
PGINA: 5

Entienda y Aprenda el Lenguaje C

Toda la batera de metodologas y pruebas desarrolladas garantizan velocidad y precisin en las soluciones.
Tomando en cuenta los indicadores adecuados, se puede recomendar virtualizar muchas actividades del mundo real.

Uso de internet
Internet, por medio de sus buscadores, es una gran fuente de informacin, sobre temas puntuales de computacin, inclusive ofrece libros.
Por ejemplo para buscar informacin sobre tipo de datos, visite google y teclee:
Lenguaje C tipo de dato
Aparecer una gran lista de ayudas. El mayor inconveniente con internet es que la ayuda suministrada no suele integrar conceptos, y
obviamente no hay interacciones.

Ejercicios
Escriba, compile y ejecute programas que hagan lo siguiente:
1)

Solicite la temperatura en grados Celcius tgc, luego calcule la temperatura en grados Farenheit tgf mediante la frmula: tgf = 1.8 *
tgc + 32 y finalmente la muestre.
Sugerencia:
Defina tgc y tgf
Lea tgc, calcule tgf, imprima tgc y tgf

2)

Solicite la temperatura en grados Farenheit tgf, luego calcule la temperatura en grados Celcius tgc mediante la frmula: tgf = 1.8 *
tgc + 32 y finalmente la muestre.
Sugerencia:
Defina tgf y tgc
Lea tgf, calcule tgc, imprima tgf y tgc

3)

Lea un nmero entero ne de tres cifras y muestre las unidades u, decenas d, y centenas c.
Sugerencia, si: ne = 437;
u = ne%10;
// 7
ne = (ne u)/10; d = ne%10
// 43, 3
c = ne/10
// 4

4)

Solicite un nmero de segundos nst y reporte el nmero de horas nh, minutos nm y segundos ns equivalentes.
Sugerencia, si: ns = 4560:
nh = nst/3600;
// 1
nsf = nst nh * 3600;
nm = nst/60;
// 962; 16
ns = ns nm * 60
// 2

5)

Solicite un nmero flotante x y calcule e imprima x, su cuadrado y su raz. Utilice el include #include<math.h>

PGINA: 6

S-ar putea să vă placă și