Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Iniciacin a la Programacin
con Lenguaje C
Objetivos:
Iniciarse en el anlisis de problemas, en el diseo de soluciones y la codificacin de
programas bsicos en lenguaje C.
Debes comprender las estructuras y procesos elementales de la programacin en general,
lo que te permitir ir avanzando no solo como programador de aplicaciones, si no en la
comprensin del cmputo y su funcionamiento en general. Al programar una computadora
comprendes la lgica de los sistemas computacionales, por lo que eres capaz de
comprender su uso adecuado en distintas circunstancias de aplicacin, adems de tener la
facilidad de aprender otros lenguajes.
2.1
La Programacin
La palabra programacin o el efecto de programar, se refiere al hecho mental de idear y ordenar una
secuencia de acciones de computadora y que son necesarios para satisfacer una necesidad o propsito a
travs de un programa de software.
La programacin es un proceso abstracto, que se basa en la formacin de imgenes en el cerebro que te
permiten idear y visualizar los elementos que contendr un programa
Pasos
Para
programar
debemos
1.
2.
3.
necesitaremos.
Expresarnos en la forma apropiada.
Para realizar un programa de computadora no necesariamente tienes a la mano los objetos fsicos que
vas a describir por medio del sistema computacional, para ello utilizas:
RECUERDOS, EXPERIANCIA e IMAGINACION
Mismos que organizas a travs de un proceso mental llamado ABSTRACCION.
Para transmitir lo que tienes en la mente es necesario VERBALIZAR las ideas, para ello utilizas algn
tipo de LENGUAJE, ya sea con tus propias palabras, con grficas, con esquemas o algn otro tipo de
lenguaje, como puede ser un lenguaje de programacin.
Este jarrn es un modelo, en el que empleaste el lenguaje pictrico para expresar la idea,
para dibujarlo no tenas el objeto presente por lo que usaste abstraccin, tuviste que emplear tu
conocimiento previo para saber que es un jarrn, para que sirve y cules son sus partes.
De la misma forma como elaboraste el diseo del jarrn, se elaboran los programas de
computadora tambin denominados aplicaciones.
SON LAS APLICACIONES QUE TU ESTAS ACOSTUMBRADO A UTILIZAR
La programacin es un arte y una ciencia que requiere de conocimientos y habilidades que solo
se adquieren con la PRCTICA, mismas que esperamos apoyar a travs de este cuaderno de
trabajo.
SIGUELO CON UNA BUENA ACTITUD Y CONSULTA LAS DUDAS CON TU PROFESOR
Las Aplicaciones
Inicialmente las computadoras surgieron como una herramienta para el clculo numrico, sin
embargo a travs de su evolucin, el nmero de aplicaciones de procesamiento
de datos incluyeron infinidad de propsitos
que manejan todo tipo de
informacin.
Las aplicaciones permiten "extender las capacidades" de las personas, indica lo siguiente:
Con un Procesador de Textos las personas son CAPACES de:
Investiga una aplicacin que nos permite llevar la contabilidad de una empresa y elaborar estados
financieros:
Las personas hacemos referencia a las cosas, personas o hechos (entidades) por medio de los datos.
Observa a la siguiente persona, por medio de sus atributos sabemos de qu entidad se trata. Los valores
posibles de cada atributo, por ejemplo Grado que cursa: 1. 2. 3. se llaman valores del dominio o
simplemente dominio.
MODELO DE DATOS
Entidad
Lista de Atributos
Define algunas entidades, atributos y sus valores de dominio, para el problema de informacin
para una concesionaria de autos.
Entidad
Atributos
Valores de dominio
Los programadores de aplicaciones aprenden como es que trabajan las personas en cada una
de sus reas: contadores, fiscalistas, abogados, qumicos, economistas, escuelas,
hospitales, casas de bolsa, bancos, Etc.
#include<stdio.h>
int main( ) {
printf(Hola
Mundo);
return
0;
main->principal
printf->imprimir return->regresa
Requerimos de compiladores debido a que la mayora de los lenguajes o cdigos de mquina son
demasiado elementales, es decir que trabajan a bajo nivel, que es el nivel en que se programa a nivel de
registros y direcciones de una mquina especfica, resultan muy complejos e ineficientes para la
programacin de aplicaciones, aunque son necesarios para la programacin de sistemas.
Un lenguaje est formado por un conjunto de smbolos y reglas sintcticas y semnticas que definen su
estructura y el significado de sus elementos y expresiones.
Programacin es el proceso por medio del cual se escribe, se prueba, se depura, se compila (de ser
necesario) y se mantiene el cdigo fuente de un programa informtico.
Los lenguajes ms prximos a la arquitectura hardware se denominan lenguajes de bajo nivel y los que se
encuentran ms cercanos a los programadores y usuarios se denominan lenguajes de alto nivel.
Generaciones de Lenguajes.
La evolucin de los lenguajes de programacin se puede dividir en 5 etapas o generaciones.
Primera generacin: lenguaje mquina programado directamente por medio de switches.
Segunda generacin: se crearon los primeros lenguajes ensambladores (y compiladores).
Tercera generacin: se crean los primeros lenguajes de alto nivel. Ej. C, Pascal, Cobol
Cuarta generacin: Se refieren a las IDE1 (Medio ambiente integrado de desarrollo) que son visuales (tienen
paletas de componentes) y por lo mismo son capaces de generar cdigo por si solas. Estas herramientas se
desarrollaron principalmente gracias al paradigma Orientado a Objetos que hace posible la reutilizacin y la
modulacin de cdigo. Estas herramientas se basan en principios de ingeniera de software para
implementar sistemas complejos de manera rpida y eficaz, RAD (Rapid Aplication Development) a travs
de los cuales se pueden realizar aplicaciones sin ser un experto en el lenguaje.
Quinta generacin: aqu se encuentran los lenguajes orientados a la inteligencia artificial.
Paradigmas de Programacin.
Este diagrama
una
Qu es un compilador?
Qu es un intrprete?
Qu es un ensamblador?
Qu es un lenguaje de programacin?
Qu es un proceso?
Qu es un cdigo fuente?
Qu es el cdigo de mquina?
Archivo C - contiene
cdigo fuente escrito en C
2.
3.
4.
5.
6.
7.
8.
9.
10.
2.3 El Lenguaje C.
En el ao 1967 Martin Richard creo el lenguaje BCPL (Basic Combined Programming Language) que fue la
base para la creacin de un lenguaje llamado b escrito por Ken Thompson en 1970 con la intencin de
recodificar el sistema operativo UNIX, que en su fase de arranque estaba codificado en lenguaje
ensamblador; como una sucesin del lenguaje b, Dennis Ritchie crea el lenguaje C en los laboratorios Bell
Telephone en 1972, ya especficamente para el diseo del sistema operativo UNIX.
La novedad que proporcion el lenguaje C sobre el b fue el diseo de tipos y dos estructuras de datos: las
uniones, y los arreglos (arrays), entre otras cosas. Por su clara estructura, potencia y flexibilidad su uso el
lenguaje C se difundi muy rpidamente ms all de los laboratorios Bell. Los programadores de todo el
mundo comenzaron a usarlo para escribir todo tipo de programas.
En 1983, el American National Standards (ANSI) formo un comit en para establecer una definicin estndar
del C, que llego a ser conocida como C estndar ANSI. Con algunas excepciones, los compiladores del C
modernos de adhieren a este estndar.
int main( ){
printf(Mi nombre es Juan);
printf( ) - Es una funcin de salida que sirve para
mostrar en pantalla el contenido de una cadena
con formato. En las funciones los parntesis sirven para encerrar los valores (denominados
argumentos) que son valores que se envan a la funcin para que trabaje:
printf ( ) es una funcin
printf( hola);
Cadena - Es un conjunto de caracteres encerrados por comillas, indica que su contenido se usa
literalmente como texto:
Mi nombre es Juan
HOLA
El resultado es 25
5 + 2 = 7
);
int main( ){
//Programa que escribe un
\"
\%
Comillas dobles
Smbolo de porcentaje
_____la letra es n
_____1
2, 3
_____esta es una cadena
_____ - - - - |
|
----_____Incremento de ventas: 5%
_____c = 1 + 2
int
suma;
Es la lnea que debes agregar para poder almacenar en la memoria en este caso
un nmero entero (int) en una variable a la que llamamos suma.
#include<stdio.h>
int main( ){
int
suma;
suma = 5 + 2;
printf(La suma de 5 + 2 es
es el operador de asignacin
(Nota: NO se lee como Igual)
La palabra int (integer entero) indica que reservamos 4 bytes = 32 bits (ver tabla de tipos) para
almacenar un nmero en la memoria RAM con representacin entera, tal como se vio en el captulo anterior.
Expresin Aritmtica: esta se forma como un conjunto de constantes, variables y operadores
aritmticos, su solucin computacional tiene un orden o precedencia.
3 + k / 10 * 25 + (-8 - m) _________
5 * (8 / 2) + 6 + (9 - 18) _________
Escribe la expresin:
El 5% de la suma de tres nmeros: _____________________________________
El rea de un tringulo: _______________________________________________
( 3x )
2 xy +
___________________________________________________
( y 1 )2
Formateador
Salida
%d %i
entero en base 10 con signo (int)
%o
entero en base 8 sin signo (int)
%X
entero en base 16, letras en mayscula (int)
%f
decimal de precisin simple (float)
%e
notacin cientfica (decimal simple doble) minscula
%c
caracter (char)
Formateador Salida
%u
entero en base 10 sin signo (int)
%x
entero en base 16, letras en minscula (int)
%lf
decimal de precisin doble
%E
notacin cientfica (decimal simple doble) mayscula
%s
cadena de caracteres (string)
Con los tipos de datos que utilizamos en el lenguaje C, es posible el almacenamiento en las distintas
representaciones que conoces, iniciaremos con tres tipos elementales:
Tipo de
Dato
int
float
char
o
Descripcin
Entero
Real (Nmero en
coma flotante)
Carcter
Nmero de
Rango de Valores que permite
bytes tpico
4
-2147483648 a +2147483647
Positivos: 3.4E-38 a 3.4E38
4
Negativos: -3.4E-38 a -3.4E38
1
-128 a 127
Ejemplo
32123
32123.0
Nota que el caracter se encierra en una sola comilla, la cadena en doble comilla.
int edad;
float precio;
char respuesta;
edad = 10.0;
precio = 22.50;
respuesta = s;
Usa la cadena con formato para dar una adecuada salida a los datos.
En estos ejemplos se ve como se declara e inicializa al mismo tiempo. Que salida tiene?
int suma = 5 + 2;
int edad = 25;
float precio= 10 * 1.1;
char resp1 = A;
char resp2 = B;
printf( %d + %d = %d , 5,2,suma);
printf( La edad es: \n
%d, edad);
printf( 5 + 2 = %f ,5.0 + 2);
printf( El resultado es: %f, precio );
________________________
________________________
________________________
________________________
int main( ){
scanf( ) - Detiene la ejecucin del programa para esperar el ingreso de datos desde el teclado.
El buffer de teclado se vaca al oprimir<enter> llevando el dato a travs de los buses para ponerlo en la
memoria que indica la variable asociada. La cadena de control del scanf( ) solo tiene caracteres de control.
Uso del & Observa que la variable asociada utiliza el smbolo &, esto indica que la funcin scanf( ) tendr la
capacidad de poner el valor ingresado en la direccin de memoria de dicha variable.
Escribe un programa para calcular reas de tringulos: rea = base por altura entre 2.
2.4
Elementos de la programacin en C.
Sintaxis del lenguaje c se basa principalmente en el estndar ANSI2. A continuacin se proporcionan los
elementos de programacin que generalmente se utilizan en los libros y la mayora de los compiladores.
[ <directivas_del_preprocesador> ]
int main(){
[ <declaracion_de_variables> ]
<bloque_de_instrucciones>
}
#include <stdio.h>
#include<string.h>
#include<math.h>
unsigned long
signed char
unsigned char
4
1
1
0 a 4294967295
-128 a 127
0 a 255
El calificador signed se utiliza por omisin, es decir que no necesitas escribirlo (observa).
El calificador unsigned si se require especificar y se utiliza cuando los valores posibles no incluyen
nmeros negativos, observa que al no utilizar el bit de signo la capacidad es mayor.
La forma de utilizarlo es: unsigned int x;
equivale a
unsigned x;
Descripcin
Nmero de
bytes tpico
float
double
long
double
10
Rango
Positivos: 3.4E-38 a 3.4E38
Negativos: -3.4E-38 a -3.4E38
Positivos: 1.7E-308 a 1.7E308
Negativos: -1.7E-308 a -1.7E308
Positivos: 3.4E-4932 a 1.1E4932
Negativos: -3.4E-4932 a -1.1E4932
Identificadores
Son los nombres que los programadores asignamos a las variables, constantes o funciones.
Todo identificador debe cumplir las siguientes reglas de sintaxis:
1. Consta de uno o ms caracteres.
2. El primer carcter debe ser una letra o el carcter subrayado _, mientras que, todos los dems
pueden ser letras, dgitos o el carcter subrayado _. Las letras pueden ser minsculas o maysculas
del alfabeto ingls. As pues, no est permitido el uso de las letras '' y ''.
3. No pueden existir dos identificadores iguales, es decir, dos elementos de un programa no pueden
nombrarse de la misma forma. Lo cual no quiere decir que un identificador no pueda aparecer ms de
una vez en un programa.
De la segunda regla se deduce que un identificador no puede contener caracteres especiales, salvo el
carcter subrayado. Es importante resaltar que las vocales no pueden llevar tilde ni diresis.
Reglas de Estilo
La lectura de cdigo es fundamental para los programadores, de manera que se siguen algunas reglas de
estilo que favorecen la comprensin de cdigo.
Escribe un identificador con significado:
suma
ventas
nombre
TOTAL
PI
ventasMensuales
areaTrabajo
totalVentas( ) suma( )
Palabras Reservadas
Las palabras reservadas son identificadores predefinidos (tienen un significado especial). En todos
los lenguajes de programacin existe un conjunto de palabras reservadas. En lenguaje C (ANSI C89), existen
las siguientes:
auto
const
double
float
int
short
struct
unsigned
break
continue
else
for
long
signed
switch
void
case
default
enum
goto
register
sizeof
typedef
volatile
char
do
extern
if
return
static
union
while
Declaracin de Constantes
Una constante simblica representa (sustituye) a una secuencia de caracteres, en vez de representar a un
valor (dato almacenado en memoria), para declarar una constante simblica, en C, se utiliza la
directiva del preprocesador #define, nota que no usa ni el operador = ni punto y coma al final.
#define <nombre_de_la_constante> <secuencia_de_caracteres>
Ejemplos:
#define PI 3.14159265359
#define N 10
Comentarios
Los comentarios se escriben en el cdigo para recordar cosas, por lo que no son instrucciones.
Comentario de bloque:
/*
#define
#elif
#endif
#error
#ifdef
#ifndef
#line
#pragma
#else
#if
#include
#undef
todos los operadores tanto aritmticos, lgicos y de tratamiento de bits, esta lista est en orden de
precedencia, es decir, es el orden en que se realizan las operaciones de una expresin.
2.5
A la solucin de un problema se le conoce como algoritmo, para desarrollar algoritmos se utilizan 4 niveles
de abstraccin:
1 interfaz
2 datos
3 procesos
4 mdulos .
Una vez que conoces la solucin podrs codificar (escribir cdigo) con gran soltura y facilidad!!
Por ejemplo: Un estudiante requiere calcular el permetro y el rea de un crculo, por lo que un programa que
calcule permetros y reas de crculos le sera de gran utilidad, no solo para una vez si no para todas las
ocasiones que as lo requiera.
Primero debemos conocer que es y cmo se calculan el permetro y rea de un crculo:
Permetro = 2 x x r
en donde r es el radio del crculo
rea = x r2
1. Diseemos entonces una interfaz (primera abstraccin) en papel, aqu debemos detectar si el
programa requiere:
entrada de datos
el proceso es una caja negra: por el momento nos olvidamos de cmo se realizan los procesos
diseamos la salida:
T decides la colocacin y redaccin de los enunciados, esto debe ser preciso y comprensible.
Este es el modelo de informacin que define la solucin que t le estas dando al problema.
2. Usamos la interfaz anterior para descubrir algunas de las variables (memoria RAM)
requieren para almacenar los datos del programa (segunda abstraccin).
Recuerda que no necesariamente son todas las variables.
que se
3. Igualmente usamos la interfaz y la T de variables para mecanizar las acciones que requiere el
proceso (tercera abstraccin), aqu el proceso deja de ser una caja negra y segn sea la dificultad se
puede proceder a la codificacin directa o al empleo de otras herramientas grficas como son los
diagramas de flujo para establecer los procesos.
CIRCULO \n\n);
return 0;
}
Usando
tu
compilador
simplemente transcribes el programa que has codificado, una vez que no tenga errores de sintaxis
podrs ejecutarlo.
Errores de Lgica: Si al ejecutar un programa los resultados o el comportamiento del programa no
son los esperados, significa que existe algn error lgico.
Mecanizacin: es el proceso de leer y seguir el cdigo de un programa tal y como lo hace la
computadora, en una mecanizacin proporcionas valores a las variables para ver su comportamiento y
as poder detectar posibles desviaciones en el flujo del proceso. En los compiladores existe una
herramienta para este propsito llamado debugger. En este cuaderno usaremos la mecanizacin como
medio de comprensin de los flujos de instrucciones en un programa.
4. Las pruebas: una buena prueba consiste en ejecutar varias veces el programa usando datos buenos y
datos malos, con lo que podrs ver como se porta tu programa en todas las situaciones y en todo caso
poder detectar posibles errores de lgica
En adelante debemos
presentar SIEMPRE los
programas con todos los
pasos.
Un diagrama
proceso para
Es una de
programa.
Se
En este
Siguiendo el mtodo, elabora un programa que dado grados Celsius muestre grados Fahrenheit
y dado grados Fahrenheit muestre grados Celsius.
o
o
F = 1.8 C * + 32
C = (oF 32) / 1.8
RAM
En una tienda se requiere un programa para elaborar facturas (notas) con IVA.
Se venden tres productos: gomas a $2.00 lpices a $6.00 cuadernos a $20.00
El IVA se calcula como el 12% del total de la compra
Se requiere mostrar desglosado:
Venta total,
IVA y Total a Pagar.
RAM
Escribe un programa que pida los coeficientes de una ecuacin de segundo grado y
calcule sus soluciones (ax + bx + c = 0).
RAM
Funcin principal
Sentencia de salida de funcin
Estructuras de Control
El paradigma de programacin estructurada se basa en el uso de tres estructuras de control
que permiten tres formas nicas para el control de la ejecucin de un programa, su forma
diagramtica se ve como sigue:
La secuencia
La condicin
if ( ) {
if ( ) { } else {
La repeticin
for( ) { }
while( ){ }
do{ }while( )
Observa que cada estructura tiene la caracterstica de tener un nico punto de entrada y un nico punto de
salida. Esto te permite pensar en trminos de procesos independientes,
es decir que termina un proceso y empieza otro.
Secuencia: Como se ha visto en los programas anteriores (secuenciales), la ejecucin de un programa se
realiza de arriba hacia abajo, es decir pasa secuencialmente de una instruccin a la siguiente y a la siguiente
o de una estructura condicional o de repeticin a lo que
#include <stdio.h>
sigue, que puede ser otra clusula secuencial, un condicin o
int main (){
repeticin.
int x;
Sentencias condicionales
printf(Dame un numero: );
scanf(%d,&x);
if (x > 0) {
printf(El numero %d es positivo,x);
}
return 0;
}
La sentencia
if
menor
y menor igual
igual
no igual
mayor
mayor igual
not (negacin)
<=
==
!=
>
>=
!
Conectores lgicos:
&& and
||
or
y (and)
V
V
F
F
&&
&&
&&
&&
a< b
a <= b
c == a
c != a
b > a
b >= a
!(c > 5)
(y)
()
equivale
c <= 5
o (or)
V
F
V
F
V
F
V
F
Ejemplo:
#include <stdio.h>
void main (){
int x;
V
V
F
F
||
||
||
||
V
F
V
F
V
F
V
F
Identacin de instrucciones
Identar es recorrer o dejar una pequea sangra cada que se inicia un bloque hasta que termina.
La identacin es necesaria para identificar las estructuras que integran los distintos procesos al momento de
leerlos.
La forma de identacin es:
#include<stdlib.h>
int main( ){
float nota;
Instruccin 1
{
Instruccin 2
Instruccin 3
..
}
Instruccin 4
}else{
}else{
printf ("Reprobado);
} else if ( ){
Expresin lgica
verdadero/falso
22 es mayor que 13
22.5 no es menor que 3.44
'c' no es mayor que 'f'
"coche" no es igual que "Coche"
33 mayor igual que 34 y 22 no es menor que 14
Dados tres nmeros enteros, utiliza la clusula if para imprimirlos en orden ascendente
(no usar vectores). Ej.
dados
10 3 5
imprime
3 5 10
RAM
Elaborar programa si a, b y c son las longitudes de los lados de un tringulo, entonces el rea del
tringulo se puede calcular mediante la frmula de Hern como:
en donde
s=
a+ b+c
2
RAM
Elabora un programa para calcular el rea de un tringulo conociendo las coordenadas de sus
vrtices. (Investiga la solucin)
RAM
1
area= . a . b . sen C
2
RAM