You are on page 1of 184

Manual Terico-Prctico del Mdulo

Autocontenido Especfico
Programacin Estructurada Codificada

PARA LA CARRERA DE
PROFESIONAL TCNICO-BACHILLER EN

INFORMTICA

ecbcc
Educacin Capacitacin
Basadas en Competencias
Contextualizadas

Capacitado por

Conalep

PARTICIPANTES
Director General
Efrn Castillo Saavedra
Secretario de Desarrollo Acadmico y de Capacitacin
Marco Antonio Norzagaray
Director de Diseo de Curricular de la Formacin Ocupacional
Gustavo Flores Fernndez
Coordinadores de rea:
Ma. Cristina Martnez Mercado
Grupo de Trabajo para el Diseo del Mdulo
Especialistas de Contenido
Consultores Formo Internacional,S.C.
Revisor de contenido
Sandra Luz Lozano Ramrez
Revisin Pedaggica
Patricia Toledo
Revisores de la Contextualizacin
Agustn Valerio
Armando Guillermo Prieto Becerril

Tecnologas de la informacin
Manual del curso mdulo Autocontenido Especfico Programacin
Estructurada Codificada
Informtica.
D.R. 2006 CONALEP.
Prohibida la reproduccin total o parcial de esta obra, incluida la
portada, por cualquier medio sin autorizacin por escrito del
CONALEP. Lo contrario representa un acto de piratera intelectual
perseguido por la Ley Penal.
E-CBCC
Av. Conalep N 5, Col. Lzaro Crdenas, C.P. 52140 Metepec, Estado de Mxico.

Programacin Estruccturada Codificada

NDICE
Participantes
I.
Mensaje al alumno
II.
Como utilizar este manual
III.
Propsito del mdulo
IV.
Especificaciones de evaluacin
V.
Mapa curricular del mdulo autocontenido transversal

5
6
8
9
10

Captulo 1 Manejo de sintaxis y elementos del lenguaje C.


Mapa curricular de la unidad de aprendizaje
1.1.1. Componentes de programacin
Algoritmo
Pseudocdigo
Diagramas de flujo
Codificacin en lenguaje C
Compilacin en C
Ejecucin de programa.
Documentacin
1.1.2. . Programacin en lenguaje C.
Propsito del lenguaje C.
Elementos
Tipos de datos
Declaraciones
1.2.1. Operadores y expresiones
Tipo de Operadores
Expresiones de asignacin
Expresiones condicionales
Precedencia y orden de evaluacin
1.2.2. Estructuras de control de flujo.
Proposiciones y bloques.
If-else.
Else-if
Ciclo While-for
Ciclo Do-while
Break y continue
Goto y etiquetas
Prcticas de ejercicio y Listas de Cotejo
Resumen
Autoevaluacin de conocimientos del captulo 1.

11
13
13
13
14
17
19
20
21
23
32
32
33
35
37
40
40
42
43
43
45
45
46
47
48
48
49
51
53
108
110

Captulo 2 Aplicacin de componentes de lenguaje C.


Mapa curricular de la unidad de aprendizaje
2.1.1
Funciones
Definicin
Declaracin
Llamadas a funciones

113
114
115
115
115
116

Programacin Estruccturada Codificada

2.1.2

Apuntadores y arreglos
Arreglos y cadenas
Arreglos unidimensionales
Cadenas
Arreglos multidimensiona-les
Punteros
Asignacin de punteros
Aritmtica de apuntadores
Punteros y arreglos.
2.2.1
Estructuras.
Concepto
Estructuras y funciones
Arreglos de estructuras
Estructuras autoreferenciadas
Bsqueda en tablas
2.2.2
Entrada y salida
E/S por consola
E/S por archivos
Preprocesador
Prcticas de ejercicio y Listas de Cotejo
Resumen
Autoevaluacin de conocimientos del captulo 2.
Glosario de Trminos E-CBNC
Glosario de Trminos Tcnicos
Referencias Documentales

119
119
119
121
123
125
125
126
127
132
132
135
136
137
137
140
140
141
143
145
157
158
162
164
184

Programacin Estruccturada Codificada

I. MENSAJE AL ALUMNO
CONALEP TE DA LA BIENVENIDA AL
CURSO-MDULO
AUTOCONTENIDO
ESPECFICO
PROGRAMACI[ON
ESTRUCCTURADA CODIFICADA
EL CONALEP, a partir de la Reforma
Acadmica 2003, disea y actualiza sus
carreras, innovando sus perfiles, planes y
programas
de
estudio,
manuales
terico-prcticos, con los avances
educativos, cientficos, tecnolgicos y
humansticos predominantes en el
mundo globalizado, acordes a las
necesidades del pas para conferir una
mayor competitividad a sus egresados,
por lo que se crea la modalidad de
Educacin y Capacitacin Basada en
Competencias Contextualizadas, que
considera las tendencias internacionales
y
nacionales
de
la
educacin
tecnolgica, lo que implica un reto
permanente en la conjugacin de
esfuerzos.
Este manual terico prctico que apoya
al mdulo autocontenido, ha sido
diseado bajo la Modalidad Educativa
Basada en Competencias

Programacin Estruccturada Codificada

Contextualizadas, con el fin de ofrecerte


una alternativa efectiva para el
desarrollo de conocimientos, habilidades
y actitudes que contribuyan a elevar tu
potencial productivo y, a la vez que
satisfagan las demandas actuales del
sector laboral, te formen de manera
integral con la oportunidad de realizar
estudios a nivel superior.
Esta modalidad requiere tu participacin
y que te involucres de manera activa en
ejercicios y prcticas con simuladores,
vivencias y casos reales para promover
un aprendizaje integral y significativo, a
travs de experiencias. Durante este
proceso debers mostrar evidencias que
permitirn evaluar tu aprendizaje y el
desarrollo de competencias laborales y
complementarias requeridas.
El conocimiento y la experiencia
adquirida se vern reflejados a corto
plazo en el mejoramiento de tu
desempeo laboral y social, lo cual te
permitir llegar tan lejos como quieras
en el mbito profesional y laboral.

II.

COMO UTILIZAR ESTE MANUAL

Las instrucciones generales que a


continuacin se te pide que realices
tienen la intencin de conducirte a
que
vincules
las
competencias
requeridas por el mundo de trabajo
con tu formacin de profesional
tcnico.
Redacta cules seran tus objetivos
personales al estudiar este mdulo
ocupacional.
Analiza el Propsito del mdulo
autocontenido que se indica al
principio del manual y contesta la
pregunta Me queda claro hacia
dnde me dirijo y qu es lo que voy a
aprender a hacer al estudiar el
contenido del manual? Si no lo tienes
claro, pdele al docente que te lo
explique.
Revisa el apartado especificaciones de
evaluacin; son parte de los requisitos
que debes cumplir para aprobar el
mdulo. En l se indican las evidencias
que debes mostrar durante el estudio
del curso -mdulo ocupacional- para
considerar que has alcanzado los
resultados de aprendizaje de cada
unidad.
Es fundamental que antes de empezar a
abordar los contenidos del manual,
tengas muy claros los conceptos que a
continuacin
se
mencionan:
competencia
laboral,
unidad
de
competencia
(bsica,
genricas
especficas), elementos de competencia,
criterio de desempeo, campo de
aplicacin, evidencias de desempeo,
evidencias de conocimiento, evidencias
por producto, norma tcnica de

institucin
educativa,
formacin
ocupacional,
mdulo
ocupacional,
unidad de aprendizaje y resultado de
aprendizaje.
Si
desconoces
el
significado de los componentes de la
norma, te recomendamos que consultes
el apartado glosario de trminos, que
encontrars al final del manual.
Analiza el apartado Normas Tcnicas
de competencia laboral, Norma tcnica
de institucin educativa.
Revisa el Mapa curricular del mdulo
autocontenido. Est diseado para
mostrarte
esquemticamente
las
unidades y los resultados de aprendizaje
que te permitirn llegar a desarrollar
paulatinamente
las
competencias
laborales que requiere la ocupacin
para la cual te ests formando.
Realiza la lectura del contenido de cada
captulo y las actividades de aprendizaje
que se te recomiendan. Recuerda que
en la educacin basada en normas de
competencia
laborales
la
responsabilidad del aprendizaje es tuya,
ya que eres el que desarrolla y orienta
sus conocimientos y habilidades hacia el
logro de algunas competencias en
particular.
En el desarrollo del contenido de cada
captulo, encontrars ayudas visuales
como las siguientes, haz lo que ellas te
sugieren efectuar. Si no haces no
aprendes, no desarrollas habilidades, y
te ser difcil realizar los ejercicios de
evidencias de conocimientos y los de
desempeo.

Programacin Estruccturada Codificada

Imgenes de Referencia

Estudio individual

Investigacin documental

Consulta con el docente

Redaccin de trabajo

Comparacin de resultados
con otros compaeros

Repeticin del ejercicio

Trabajo en equipo

Contextualizacin

Realizacin del ejercicio

Resumen

Observacin

Consideraciones sobre seguridad e


higiene

Investigacin de campo

Portafolios de evidencias

Programacin Estruccturada Codificada

III. PROPSITO DEL MDULO AUTOCONTENIDO

Al finalizar el mdulo, el alumno elaborar programas estructurados codificados,


mediante los elementos principales y la estructura modular del lenguaje de
programacin C, para la resolucin de algoritmos dados.

Programacin Estruccturada Codificada

IV. ESPECIFICACIONES DE EVALUACIN

Durante el desarrollo de las prcticas de


ejercicio, tambin se estar evaluando el
desempeo. El docente, mediante la
observacin directa y con auxilio de una lista
de cotejo, confrontar el cumplimiento de los
requisitos en la ejecucin de las actividades y
el tiempo real en que se realiz. En stas
quedarn registradas las evidencias de
desempeo.
Las autoevaluaciones de conocimientos
correspondientes a cada captulo, adems de
ser
un
medio
para
reafirmar
los
conocimientos sobre los contenidos tratados,
son tambin una forma de evaluar y recopilar
evidencias de conocimiento.

Al trmino del mdulo, debers presentar


un Portafolios de Evidencias1, el cual estar
integrado por las listas de cotejo
correspondientes a las prcticas de
ejercicio,
las
autoevaluaciones
de
conocimientos que se encuentran al final
de cada captulo del manual y muestras de
los trabajos realizados durante el desarrollo
del mdulo, con esto se facilitar la
evaluacin del aprendizaje para determinar
que se ha obtenido la competencia laboral.
Debers asentar datos bsicos, tales
como: nombre del alumno, fecha de
evaluacin, nombre y firma del evaluador
y plan de evaluacin.

1El portafolios de evidencias es una compilacin de


documentos que le permiten al evaluador, valorar los
conocimientos, las habilidades y las destrezas con que
cuenta el alumno y a ste le permite organizar la
documentacin que integra los registros y productos de
sus competencias previas y otros materiales que
demuestran su dominio en una funcin especfica
(CONALEP.
Metodologa
para
el
diseo
e
instrumentacin de la educacin y capacitacin basada
en competencias, Pg. 180).

Programacin Estruccturada Codificada

V.

MAPA CURRICULAR
ESPECFICO

DEL

MDULO

AUTOCONTENIDO

Programacin
Estructurada
Codificada

Mdulo

144 hrs.

Unidad de
Aprendizaje

1. Manejo de sintaxis
y elementos del
lenguaje C.

64 hrs.

Resultados
de
Aprendizaje

10

2. Aplicacin de
componentes de
lenguaje C.

80 hrs.

1.1 Identificar el entorno de programacin mediante los componentes de


programacin, tipos y datos del lenguaje C
1.2 Realizar interaccin de variables, produccin de nuevos valores y
especificacin de orden de procesamiento, usando operadores,
expresiones y control de flujo del lenguaje C.

24 hrs.

2.1 Elaborar rutinas de programacin, usando funciones, apuntadores y


arreglos codificados en lenguaje C.
2.2 Desarrollar programas en lenguaje C, aplicando estructuras, formatos
de entrada y salida codificados en lenguaje C

40 hrs.

40 hrs.

40 hrs.

Programacin Estruccturada Codificada

MANEJO DE SINTAXIS Y ELEMENTOS DEL LENGUAJE C.


Al finalizar la unidad, el alumno manejar la sintaxis de acuerdo con los
elementos del lenguaje C para la elaboracin de programas.

Programacin Estruccturada Codificada

11

MAPA CURRICULAR DE LA UNIDAD DE APRENDIZAJE


Programacin
Estructurada
Codificada

Mdulo

90 hrs.

Unidad de
Aprendizaje

1. Manejo de sintaxis
y elementos del
lenguaje C.

64 hrs.

Resultados
de
Aprendizaje

12

2. Aplicacin de
componentes de
lenguaje C

80 hrs.

1.1 Realizar la actualizacin de bienes utilizando el ndice Nacional de Precios.

24 hrs.

1.2 Determinar los factores de ajuste de conversin y las partidas de acuerdo


con las caractersticas de la empresa en pocas inflacionarias.

10 hrs.

Programacin Estruccturada Codificada

SUMARIO

COMPONENTES DE PROGRAMACIN
PROGRAMACIN EN LENGUAJE C
OPERADORES Y EXPRESIONES
ESTRUCTURAS DE CONTROL DE FLUJO

RESULTADO DE APRENDIZAJE
1.1.

Identificar el entorno de programacin mediante los componentes de programacin,


tipos y datos del lenguaje C.

1.1.1. COMPONENTES DE
PROGRAMACIN.

Algoritmo

Algoritmo, en matemticas, es un mtodo


de resolucin de clculos complicados
mediante el uso repetido de otro mtodo
de clculo ms sencillo. Ejemplos bsicos
son
los
mtodos
para
efectuar
operaciones aritmticas (multiplicacin,
divisin, obtencin de races cuadradas),
la obtencin del mximo comn divisor y
del mnimo comn mltiplo de un nmero
mediante su descomposicin en factores
primos, y la divisin de un polinomio por x
a mediante la regla de Ruffini. En la
actualidad, el trmino algoritmo se aplica
a muchos de los mtodos de resolucin de
problemas que emplean una secuencia
mecnica de pasos, como en el diseo de
un programa de computadora o
computadora. Esta secuencia se puede
representar en forma de un diagrama de
flujo para que sea ms fcil de entender.

Programacin Estruccturada Codificada

Al igual que los algoritmos usados en


aritmtica,
los
algoritmos
para
computadoraes pueden ser desde muy
sencillos hasta bastante complejos. En
todos los casos, sin embargo, la tarea que
el algoritmo ha de realizar debe ser
definible. Esta definicin puede incluir
trminos matemticos o lgicos, o una
compilacin de datos o instrucciones
escritas. Utilizando el lenguaje de la
informtica, esto quiere decir que un
algoritmo debe ser programable, incluso si
al final se comprueba que el problema no
tiene solucin.
En las computadoras con lgica de
microcomputadoraes incorporada, esta
lgica es un tipo de algoritmo. A medida
que los equipos informticos se hacen
ms complejos, ms y ms algoritmos del
software toman la forma del llamado
hard-software. Esto es, cada vez ms, se
estn convirtiendo en parte de los
circuitos bsicos de los computadoraes o
en mdulos auxiliares; tambin estn
apareciendo por s solos en mquinas
especficas como las calculadoras de
nminas.
13

Representacin grfica de algoritmos.


- Descripcin Narrada
- Pseudocdigo
- Diagramas de Flujo

Descripcin Narrada

Este algoritmo es caracterizado porque


sigue un proceso de ejecucin comn y
lgico, describiendo textualmente paso a
paso cada una de las actividades a realizar
dentro de una actividad determinada.
Ejemplo 1 Algoritmo para asistir a clases:
Paso 1. Levantarse
Paso 2. Baarse
Paso 3. Vestirse
Paso 4. DesayunarPaso
Paso 5. Cepillarse los dientes
Paso 6. Salir de casa
Paso 7. Tomar el autobs
Paso 8. Llegar al ITCA
Paso 9. Buscar el aula
Paso 10. Ubicarse en un asiento

Pseudocdigo

El vocablo Pseudo significa falso. El


pseudocdigo no es realmente un cdigo,
sino una imitacin y una versin abreviada
de
instrucciones
reales
para
las
computadoras. Es una tcnica para diseo
de programas que permite definir las
estructuras de datos, las operaciones que
se aplicarn a los datos y la lgica que
tendr el programa de computadora para
solucionar un determinado problema.
Utiliza un pseudolenguaje muy parecido a
nuestro idioma, pero que respeta las
directrices y los elementos de los lenguajes
de programacin. Se concibi para
superar las dos principales desventajas de
14

los flujogramas: lento de crear y difcil de


modificar sin un nuevo redibujo.
Ejemplo:
1. Disear un algoritmo que lea cuatro
variables y calcule e imprima su producto,
suma y media aritmtica.
Inicio
Leer (a, b, c, d)
producto <-- (a * b * c * d)
suma <-- (a + b + c + d)
media <-- (a + b + c + d) / 4
escribir (producto, suma, media)
fin

El pseudocdigo que a continuacin se


define fue tomado de la gua EGEL lnfoComp del CENEVAL. Sirve para escribir
programas de computadora en lenguaje
natural, de tal manera que se facilite la
comprensin,
prueba
y
posterior
codificacin
en
un
lenguaje
de
programacin especfico.
La relacin de convenciones empleadas en
el pseudocdigo es la siguiente:
El
pseudocdigo
se
escribe
empleando la fuente Times New
Roman. Las palabras reservadas del
pseudocdigo se muestran en
negritas.
Los
puntos
"..."
indican
la
posibilidad
de
repetir
algn
elemento del pseudocdigo.
Cuando exista la posibilidad de
elegir algn elemento a partir de un
conjunto de elementos, stos se
listarn separados por el smbolo
"|".
Las
diferentes
opciones
o
posibilidades
de
uso
del
pseudocdigo se listan con vietas.
El
pseudocdigo
posee
las
siguientes caractersticas:
o Se emplean oraciones en
lenguaje natural, donde cada
Programacin Estruccturada Codificada

una se refiere a una actividad


general o especfica.
o Se
utiliza
un
lenguaje
comn,
sin
palabras
rebuscadas.

Se
evitan
errores
gramaticales, abreviaciones y
puntuaciones.

REGLAS GENERALES PARA LA CONVERSION


DE PSEUDOCDIGO A LENGUAJE C
Tabla de Correspondencias:
PSEUDOCDIGO
La primera lnea de todo programa
PROGRAMA....
INICIO
FIN
int a,b
a=b
i=i+1
SI condicin
***
FINSI
SI condicion
***
SINO
***
FINSI
MIENTRAS condicion
***
FINM
HACER
***
MIENTRAS condicion
DESDE i=0 HASTA 9
***
FIND
SI a==b
***
FINSI
SI ab
***
FINSI
SI a b
***
FINSI
escribir("El valor de n es ",n)
leer(n)
int A[5]
float M[3][3];
a AND b
a OR b
NOT a

LENGUAJE C
#include <stdio.h>
No tiene correspondencia
void main(void){
}
int a,b;
a = b;
i = i + 1;
o bien
i++;
if (condicion){
***
}
if (condicion){
***
}
else{
***
}
while (condicion){
***
}
do{
***
} while (condicion);
for(i=0;i<=9;i++){
***
}
if (a==b){
***
}
if (a!=b){
***
}
if (a<=b){
***
}
printf("El valor de n es %d",n);
scanf("%d",&n);
int A[5];
float M[3][3];
(a && b)
(a || b)
(!a)

Reglas Generales:

Todas las instrucciones terminan en un punto y coma.

Todas las condiciones van entre parntesis.

Programacin Estruccturada Codificada

15

Los comentarios comienzan con /* y terminan con */


Los #include permiten usar funciones ya escritas incluidas en grandes colecciones denominadas libreras. Las ms
usuales son :
#include <stdio.h>
permite usar printf, scanf, fread, fwrite, fopen, etc.
#include <conio.h>
permite usar clrscr
#include <stdlib.h>
permite usar rand
#include <math.h>
permite usar funciones trigonomtricas
Las constantes se definen tras los #include, de la siguiente forma:
#define pi
3.1415
#define numero 2.71

Ejemplos de traducciones:
PROGRAMA prueba;
int i, n
INICIO
escribir("Escriba n : ")
leer(n)
DESDE i<-1 HASTA n
escribir(i*i)
FIND
FIN

#include <stdio.h>
int i, n;
void main(void){
printf("Escriba n : ");
scanf("%d",&n);
for(i=1;i<=n;i++){
printf("%d",i*i);
}
}

PROGRAMA prueba;
int i, n
INICIO
escribir("Escriba n : ")
leer(n)
DESDE i<-1 HASTA n
escribir(i*i)
FIND
FIN

#include <stdio.h>
int i, n;
void main(void){
printf("Escriba n : ");
scanf("%d",&n);
for(i=1;i<=n;i++){
printf("%d",i*i);
}
}

PROGRAMA prueba;
int i, n
INICIO
escribir("Escriba n : ")
leer(n)
DESDE i<-1 HASTA n
escribir(i*i)
FIND
FIN

#include <stdio.h>
int i, n;
void main(void){
printf("Escriba n : ");
scanf("%d",&n);
for(i=1;i<=n;i++){
printf("%d",i*i);
}
}

PROGRAMA prueba;
int i, n
INICIO
escribir("Escriba n : ")
leer(n)
DESDE i<-1 HASTA n
escribir(i*i)
FIND
FIN

#include <stdio.h>
int i, n;
void main(void){
printf("Escriba n : ");
scanf("%d",&n);
for(i=1;i<=n;i++){
printf("%d",i*i);
}
}

PROGRAMA prueba;
int i, n
INICIO
escribir("Escriba n : ")
leer(n)
DESDE i<-1 HASTA n
escribir(i*i)
FIND
FIN

#include <stdio.h>
int i, n;
void main(void){
printf("Escriba n : ");
scanf("%d",&n);
for(i=1;i<=n;i++){
printf("%d",i*i);
}
}

16

Programacin Estruccturada Codificada

Diagrama de flujo

El diagrama de flujo, o diagrama


secuencial, empleado en muchos campos
para
mostrar
los
procedimientos
detallados que se deben seguir al realizar
una tarea, como un proceso de
fabricacin. Tambin se utilizan en la
resolucin de problemas, como por
ejemplo en algoritmos. Los diagramas de
flujo se usan normalmente para seguir la
secuencia lgica de las acciones en el
diseo de programas de computadoras.
Son la representacin grfica de la
solucin algortmica de un problema. Para
disearlos se utilizan determinados
smbolos o figuras que representan una
accin dentro del procedimiento. Utilizan
unos smbolos normalizados, con los
pasos del algoritmo escritos en el smbolo
adecuado y los smbolos unidos con
flechas, denominadas lneas de flujo, que
indican el orden en que los pasos deben
ser ejecutados.
Para su elaboracin se siguen ciertas
reglas:

Se escribe de arriba hacia abajo y


de izquierda a derecha
Siempre se usan flechas verticales u
horizontales, jams curvas
Evitar cruce de flujos
En cada paso, expresar una accin
concreta

La secuencia de flujo normal en una


solucin de problema considera lo
siguiente:

Tiene un inicio.

Programacin Estruccturada Codificada

Una lectura o entrada de datos


El proceso de datos
Una salida de informacin
Un final

Simbologa para disear flujogramas.

Ventajas de usar flujogramas:

Rpida
comprensin
de
las
relaciones
Anlisis efectivo de las diferentes
secciones del programa
Pueden usarse como modelos de
trabajo en el diseo de nuevos
programas o sistemas
Comunicacin con el usuario
Documentacin adecuada de los
programas
Codificacin
eficaz
de
los
programas
Depuracin y pruebas ordenadas de
programas

Desventajas de los flujogramas

Los
diagramas
complejos
y
detallados suelen ser laboriosos en
su planteamiento y diseo.
17

Las acciones a seguir, tras la salida


de un smbolo de decisin, pueden
ser difciles de seguir si existen
diferentes caminos.
No existen normas fijas para la
elaboracin de los diagramas de
flujo que permitan incluir todos los
detalles que el usuario desee
introducir.

Representando
un
flujograma tenemos:

ejemplo,

como

debemos confundir, por tanto, el editor


con el compilador. Estos editores suelen
tener unas caractersticas que nos facilitan
mucho el trabajo: permiten compilar y
ejecutar el programa directamente,
depurarlo (corregir errores), gestionar
proyectos complejos.
Si el compilador no trae editor, la solucin
ms simple en MS-Dos puede ser usar el
edit, en windows el notepad. stos son
ms que editores sin ninguna otra
funcionalidad. Otra posibilidad es un
entorno de desarrollo llamado RHIDE, un
programa muy til que automatiza
muchas de las tareas del programador (del
estilo del Turbo C y Turbo Pascal). Si
queremos una herramienta muy avanzada
podemos usar Emacs, que es un editor
muy potente, aunque para algunos puede
parecer muy complicado.
Estos dos
programas estn disponibles tanto en
Linux como en MS-Dos.
Como recomendcin se puede buscar en
la web una lista de Compiladores y
editores actualizada.
El primer programa: Hola Mundo
#include <stdio.h>

Codificacin en lenguaje C
El compilador en s mismo slo es un
programa que traduce nuestro cdigo
fuente y lo convierte en un ejecutable.
Para
escribir
nuestros
programas
necesitamos un editor. La mayora de los
compiladores, al instalarse, incorporan ya
un editor; es el caso de los conocidos
Turbo C, Borland C, Visual C++. No
18

int main() {
printf("Hola mundo\n");
return 0;
}
Nota: Hay mucha gente que programa en
Windows que se queja de que cuando
ejecuta el programa no puede ver el
Programacin Estruccturada Codificada

resultado. Para evitarlo, se puede aadir


antes de return 0; la siguiente lnea:
system("PAUSE");
Si esto no funciona, pruebe aadir getch();
Otra nota: En compiladores MS Windows,
para poder usar la funcin system() se
debe aadir al principio del programa la
lnea: #include <windows.h>
Este programa lo nico que hace es sacar
por pantalla el mensaje:
Hola mundo

Vamos ahora a comentar el programa


lnea por lnea (Esto no va a ser ms que
una primera aproximacin).
#include <stdio.h>
#include es lo que se llama: una directiva.
Sirve para indicar al compilador que
incluya
otro
archivo.
Cuando
en
compilador se encuentra con esta
directiva, la sustituye por el archivo
indicado. En este caso, es el archivo
stdio.h, que es donde est definida la
funcin printf, que veremos luego.
int main()
Es la funcin principal del programa.
Todos los programas de C deben tener
una funcin llamada main. Es la que
primero se ejecuta. El int (viene de
Integer=Entero) que tiene al principio,
significa que cuando la funcin main
acabe devolver un nmero entero. Este
valor se suele usar para saber cmo ha
terminado el programa. Normalmente,
Programacin Estruccturada Codificada

este valor ser 0, si todo ha ido bien o un


valor distinto, si se ha producido algn
error.
Se puede usar la definicin 'void main()',
que no necesita devolver ningn valor,
pero se recomienda la forma con 'int' que
es ms correcta.
Falta el return 0; del final, el cdigo
funciona correctamente pero puede dar
un 'warning' al compilar es necesario
escribir:
{
Son las llaves que indican el comienzo de
una funcin, en este caso la funcin main.
/* Aqu va el cuerpo del programa */
Esto es un comentario, no se ejecuta. Sirve
para describir el programa. Conviene
acostumbrarse a comentar los programas.
Un comentario puede ocupar ms de una
lnea. Por ejemplo el comentario:
/* Este es un comentario
que ocupa dos filas */
es perfectamente vlido.
printf( "Hola mundo\n" );
Aqu es donde, por fin, el programa hace
algo que podemos ver al ejecutarlo. La
funcin printf muestra un mensaje por la
pantalla. Al final del mensaje "Hola
mundo" aparece el smbolo '\n'; ste hace
que despus de imprimir el mensaje se
pase a la lnea siguiente.

19

Fjate en el ";" del final. Es la forma que se


usa en C para separar una instruccin de
otra. Se pueden poner varias en la misma
lnea siempre que se separen por un punto
y coma.
return 0;
Como he indicado antes el programa al
finalizar develve un valor entero. Como en
este programa no se pueden producir
errores (nunca digas nunca jams) la
salida siempre ser 0. La forma de hacer
que el programa devuelva un 0 es usando
return. Esta lnea significa 'finaliza la
funcin main haz que devuelva un 0.
}
...y cerramos llaves con lo que termina el
programa. Todos los programas finalizan
cuando se llega al final de la funcin
main.

Si tenemos el cdigo fuente, podemos


modificar el programa tantas veces como
queramos (slo tenemos que volver a
compilarlo). Pero si tenemos el ejecutable
final, no podremos cambiar nada
(realmente s se puede pero es mucho ms
complicado
y
requiere
ms
conocimientos).
Si se va a programar en Windows es
recomendable usar el Dev-C++, de fcil
instalacin y manejo. Tambin se
recomienda usar el DJGPP para MS-Dos y
Windows y el GNU C (gcc.gnu.org) para
Linux. La informacin de la pgina est
ms actualizada.

Compilacin en C

Un compilador es un programa que


convierte nuestro cdigo fuente en un
programa ejecutable.
El procesador
trabaja con 0 y 1. Si se escribe un
programa en el lenguaje mquina, nos
volveramos locos. Para eso hay lenguajes
como el C. Nos permiten escribir un
programa de manera que sea fcil
entenderlo por una persona (el cdigo
fuente). Luego es el compilador el que se
encarga de convertirlo al complicado
idioma de un computadora.
En la prctica a la hora de crear un
programa, Se escribe el cdigo fuente, en
20

nuestro caso en C, que normalmente ser


un fichero de texto normal y corriente que
contiene las instrucciones de nuestro
programa. Luego se lo pasamos al
compilador y ste se encarga de
convertirlo en un programa.

Ejecucin de programa

Creacin del programa


Se puede crear un archivo que contenga el
programa completo, como en los
ejemplos que se muestran ms adelante.
Se puede usar cualquier editor de textos
ordinario con el que se est familiarizado.
Un editor disponible en la mayora de los
sistemas UNIX es vi, y en Linux se puede
usar pico.
Por convencin, el nombre del archivo
debe terminar con ``.c'' por ejemplo:
miprograma.c progprueba.c. El contenido
Programacin Estruccturada Codificada

del archivo deber obedecer la sintaxis de


C.
Compilacin
Existen muchos compiladores de C. El
es el compilador estndar de Sun.
compilador GNU de C es gcc, el cual
bastante popular y est disponible
varias plataformas.

cc
El
es
en

Existen
tambin
compiladores
equivalentes
de
C++
los
cuales
usualmente son nombrados como CC. Por
ejemplo, Sun provee CC y GNU GCC. El
compilador de GNU es tambin denotado
como g++.
Existen
otros
compiladores
menos
comunes de C y C++. En general, todos
los compiladores mencionados operan
esencialmente de la misma forma y
comparten muchas opciones comunes en
la lnea de opciones.
Para compilar el programa usaremos el
comando gcc. El comando deber ser
seguido por el nombre del programa en C
que se quiere compilar. Un determinado
nmero de opciones del compilador
puede ser indicado tambin.
El comando bsico de compilacin es:
gcc programa.c , donde programa.c es el
nombre del archivo.
Si hay errores obvios en el programa (tales
como palabras mal escritas, caracteres no
tecleados u omisiones de punto y coma),
el compilador se detendr y los reportar.

Programacin Estruccturada Codificada

Podra haber, desde luego, errores lgicos


que el compilador no podr detectar. En
el caso que est fuera la situacin, se le
estar indicando a la computadora que
haga las operaciones incorrectas.
Cuando el compilador ha terminado con
xito la versin compilada, o el ejecutable,
es dejado en un archivo llamado a.out, o
si la opcin -o es usada con el compilador,
el nombre despus de -o es el nombre del
programa compilado.
Se recomienda, y es ms conveniente, usar
la opcin -o con el nombre del archivo
ejecutable
como
se
muestra
a
continuacin:
gcc -o programa programa.c
el cual pone el programa compilado en el
archivo del programa sealado, en ste
caso en programa, en vez del archivo
a.out.
Ejecucin del programa
El siguiente paso es correr el programa
ejecutable. Para correr un ejecutable en
UNIX, simplemente se escribe el nombre
del archivo que lo contiene, en este caso el
programa (o a.out).
Con lo anterior, se ejecuta el programa,
mostrando algn resultado en la pantalla.
En ste estado, podra haber errores en
tiempo de ejecucin (run-time errors),
tales como divisin por cero, o bien,
podran hacerse evidentes al ver que el
programa no produce la salida correcta.
21

Si lo anterior sucede, entonces se debe


regresar a editar el archivo del programa,
recompilarlo y ejecutarlo nuevamente.

Documentacin

Es importante documentar cda uno de los


programas que se van elaborando, en
forma de comentario. Al principio se
puede poner comentarios sobre la funcin
que hace o reliza el programa.
Pero tambin existen otras tcnicas de
documentar los programas como son las
siguientes:

- Procesos que se ejecuten al mismo


tiempo
- Procesos
similares

que

ejecuten

tareas

- Procesos por lotes que pueden ser


combinados para un procesamiento
eficiente
- Procesos
que
pueden
ser
combinados en un programa para
tener consistencia de datos
- Procesos que pueden ser partidos
en diferente programas por razones
de seguridad.
Caractersticas comunes de los diagramas
de flujo de datos lgicos y fsicos.

Diagramacin
La explosin del diagrama de flujo original
permite que el analista de sistemas se
enfoque en representaciones cada vez ms
detalladas de los movimientos de datos
dentro del sistema. Luego, el analista
desarrolla un diagrama de flujo de datos
fsico a partir del diagrama de flujo de
datos lgico, particionndolo para facilitar
la programacin. Cada proceso es
analizado para determinar si debe ser un
procedimiento manual o automatizado.
Los
procesos
automatizados
son
agrupados subsecuentemente en una serie
de programas de computadora diseados
para ser por lotes o en lnea. Seis
consideraciones
para
particin
de
diagramas de flujo incluyen si hay:
- Procesos ejecutados por diferentes
grupos de usuarios
22

Programacin Estruccturada Codificada

El diagrama de flujo de datos fsico (abajo)


muestra determinados detalles que no se

"Djame echar una ojeada a las tarjetas de


inventario. Lstima, parece como si slo

encuentran en el diagrama de flujo de


datos lgico (arriba).

hubiera dos trajes de oso macho en el


inventario, con una expresin de
extraeza. Tenemos gran cantidad de

Caso
No hay negocio como el negocio de flujos
Suena el telfono de Merman, y Annie
Oakiea, jefa del inventario de vestidos, lo
levanta y responde a una pregunta
diciendo:

Programacin Estruccturada Codificada

osos. Cundo lo necesita? Tal vez


regresen uno. No, no puede hacerlo, lo
siento. Sin embargo, quisiera que le
enviara esos dos? Cul es el nombre de
su local? El teatro en la plaza? Correcto.
Qu bella compaa! Veo por nuestras
tarjetas de contabilidad que usted ya ha
rentado con nosotros antes. Cunto
tiempo necesitar los trajes?".
23

La figura es un diagrama de flujo de datos que pone los pasos


para el procesamiento de rentas de trajes de Merman. Muestra
rentas como la que Annie est haciendo para el teatro de la
plaza.

Diagrama de flujo de datos para la renta


de disfraces de la tienda Mermans
Costume Rentals

24

Programacin Estruccturada Codificada

Despus de conversar unos momentos


ms sobre la poltica de la tienda acerca
de alteraciones, Annie termina su
conversacin diciendo, "Tienen ustedes
mucha suerte para obtener los osos con
tan poco aviso. He estado en otra
compaa reservndolos desde la primera
semana de julio. Les enviar los trajes de
oso y se los llevar directamente nuestro
mensajero. Como siempre, el retorno
rpido nos ahorrar problemas enormes a
todos".
La empresa de renta de trajes de Merman
est ubicada en el distrito teatral West
End, de Londres, famoso mundialmente.
Cuando a una compaa de produccin de
teatro o televisin le faltan recursos (ya
sea por tiempo o experiencia) para
construir un traje en su propio taller, el
grito es "Hblenle a Merman!" y ellos
proceden a rentar lo que necesitan con el
mnimo de problemas.

Se dice que Western Costume Company


en Hollywood, Califorriiii, tiene ms de 1
milln de vestidos que valen cerua de $40
millones.

Diccionarios De Datos.
Usando un enfoque de arriba hacia abajo,
el analista de sistemas usa los diagramas
de flujo de datos para comenzar la
compilacin de un diccionario de datos,
que es una referencia que contiene datos
acerca de datos, o metadatos sobre
todos los datos de procesos, almacenes,
flujos, estructuras y los elementos lgicos
y fsicos dentro del sistema que est
siendo estudiado.
Una manera para
comenzar es incluyendo todos los
conceptos de datos de los diagramas de
flujo de datos.

La tienda (visualizada mejor como


bodega) est en tres pisos llenos de
percheros de trajes que tienen miles de
ellos colgados juntos por periodo
histrico, agrupados luego por si son para
hombre o mujer y luego por tamao de
traje.' La mayora de las compaas de
teatro
son
capaces
de
localizar
precisamente lo que necesitan por medio
de la asistencia capaz de Annie.
Ahora elabore a la medida la parte de
regreso de renta de diagrama de flujo
dado anteriormente. Recuerde que los
retornos a tiempo son crticos para
mantener la fama de los trajes rentados a
Merman.

Programacin Estruccturada Codificada

25

en

La
forma en que el diccionario de datos se
relaciona con el diagrama de flujo de
datos.
Una coleccin grande de la informacin
de proyecto es llamada un depsito. Las
herramientas CASE permiten que el
analista cree un depsito, que puede
incluir informacin acerca de los flujos,
almacenes, estructuras de registro y
elementos de datos, la lgica de
procedimiento de diseos de pantalla y
reporte,
relaciones
de
datos,
requerimientos del proyecto y lo que
produce el sistema final e informacin
sobre la administracin de proyecto.

todas las fases del anlisis, diseo y


documentacin ltima, debido a que es la
fuente autorizada sobre la manera en que
es usado y definido un elemento de datos
en el sistema. Muchos sistemas grandes
tienen
diccionarios
de
datos
computarizados que tienen referencias
cruzadas con todos los programas de la
base de datos que usan un elemento de
datos particular.

Cada entrada del diccionario de datos


contiene: el nombre del concepto, una
descripcin verbal, alias, elementos de
datos relacionados, rango, longitud,
codificacin y la informacin de edicin
necesaria. El diccionario de datos es til
26

Programacin Estruccturada Codificada

Dos diagramas de flujo de datos y sus


entradas del diccionario de datos
correspondientes para la produccin de
un cheque de pago a un empleado.
LA
MANERA
EN
QUE
LAS
ESPECIFICACIONES DE PROCESO SE
RELACIONAN CON EL DIAGRAMA DE
FLUJO DE DATOS.

estructuras secuenciales, estructuras de


decisin, estructuras de caso o iteraciones.
El lenguaje estructurado usa palabras
reservadas aceptadas, tales como SI,
ENTONCES,
SINO,
HACER,
HACER
MIENTRAS y HACER HASTA para describir
la lgica usada y usa sangras para indicar
la estructura jerrquica del proceso de
decisin.

Una forma para describir las decisiones


estructuradas
es
usar
el
mtodo
mencionado como lenguaje estructurado,
donde la lgica es expresada en
Programacin Estruccturada Codificada

27

Las tablas de decisin proporcionan otra


forma para examinar, describir y
documentar
decisiones.
Cuatro
cuadrantes (vistos en sentido del reloj a
partir de la esquina superior izquierda)
son usados para: (1)
describir
las
condiciones,
(2)
identificar
alternativas
de
decisin
posibles
(tales como S o N),
(3) indicar cules
acciones deben ser
ejecutadas y (4)
describir
las
acciones. Las tablas
de
decisin
son
ventajosas, debido a
que las reglas para
desarrollar la tabla
misma, as como las
reglas para eliminar
redundancia,
contradicciones
y
situaciones
imposibles
son
directas
y
manejables. El uso
de tablas de decisin
promueve
la
integridad
y
precisin
en
el
anlisis de decisin
estructuradas.
Figura.- Lenguaje
estructurado para el
sistema de
procesamiento de reclamaciones mdicas. Lo
subrayado significa que esos trminos han sido
definidos en el diccionario de datos.

28

Cada uno de los mtodos de anlisis de


decisin tiene sus propias ventajas y debe
ser usado de acuerdo con ellas.
El
lenguaje estructurado es til cuando

muchas acciones son repetidas y cuando


es importante la comunicacin con otros.
Las tablas de decisin proporcionan
Programacin Estruccturada Codificada

anlisis completo de situaciones complejas


y a la vez limitan la necesidad por cambios
atribuibles a situaciones imposibles,
redundancias o contradicciones.
Los
rboles de decisin son importantes
cuando es crtica la secuencia adecuada de
condiciones y acciones y cuando cada
condicin no es relevante para cada
accin.

Las especificaciones de proceso pueden


ser usadas para analizar el diagrama de
flujo de datos y el diccionario de datos por
Programacin Estruccturada Codificada

medio de un mtodo llamado balanceo


horizontal, que indica que todos los
elementos del flujo de datos de salida
deben ser obtenidos a partir de elementos
de entrada y lgica de proceso. Las reas
no resueltas pueden ser planteadas como
preguntas en entrevistas de averiguacin.

Figura: Uso de una tabla de decisin para


ilustrar una poltica de tienda para la salida de
un cliente con cuatro juegos de reglas y cuatro
acciones posibles.

29

Figura: Trazado de un rbol de decisin para


mostrar las acciones de aprobacin de una
compra que no es en efectivo en una tienda de
departamentos.

30

Programacin Estruccturada Codificada

CONTEXTUALIZACIN
Competencia
analtica
Promover habilidades cognitivas que les
permitan utilizar hbitos y tcnicas de
estudio que potencialicen su estilo de
aprendizaje.
Los sistemas de informacin se han
convertido en el pilar de toda
organizacin, porque en ellos se
encuentran automatizados los procesos y
el flujo de informacin, adem de que
dichos sistemas informticos pueden estar
comunicados entres s desde una red LAN
(Local Area Network), hasta una red
remota que puede ser conectada por un
servidor desde Internet.

Recopilar informacin sobre la


evolucin de los lenguajes de
programacin estructurada desde su
surgimiento hasta la actualidad.

Para mayor informacin puede consultar


las siguientes direcciones electrnicas:
http://www.monografias.com/trabajos/anaydisesis/an
aydisesis.shtml
http://comunidad.uach.mx/marana/materias/adsi/adsi.
htm

El Analista-Programador tiene como


funcin realizar todos los estudios
necesarios de una organizacin en lo que
refiere a las actividades operativas y
administrativas, para as presentar una
propuesta cercana al diseo de un Sistema
Informtico.
El alumno:
Comparar
qu
avances
tecnolgicos se han dado a travs
del tiempo con el uso de los
distintos
lenguajes
de
programacin.
Competencia de informacin
Buscar
fuentes
de
informacin
bibliogrfica, hemerogrfica, Internet
y videotecas que ample el acervo de
conocimientos.
El alumno:
Programacin Estruccturada Codificada

31

1.1.2 PROGRAMACIN EN LENGUAJE C.

Propsito del lenguaje C

C es un lenguaje de programacin
desarrollado
en
1972
por
el
estadounidense Dennis Ritchie en los
Laboratorios Bell. Debe su nombre a que
su predecesor inmediato haba sido
llamado lenguaje de programacin B.
Aunque muchos consideran que C es un
lenguaje ensamblador ms independiente
de la mquina que un lenguaje de alto
nivel, su estrecha asociacin con el
sistema operativo UNIX, su enorme
popularidad y su homologacin por el
American National Standards Institute
(ANSI) lo han convertido quiz en lo ms
cercano a un lenguaje de programacin
estandarizado
en
el
sector
de
microcomputadoraes
o
microcomputadoras y estaciones de
trabajo. C es un lenguaje compilado que
contiene un pequeo conjunto de
funciones incorporadas dependientes de
la mquina. El resto de las funciones de C
son independientes de la mquina y estn
contenidas en bibliotecas a las que se
puede acceder desde programas escritos
en C. Estos programas estn compuestos
por una o ms funciones definidas por el
programador, por lo que C es un lenguaje
de programacin estructurada. Vase
tambin C++.
C++, en informtica (lase C plus plus), es
una versin orientada a objetos derivada
del lenguaje de programacin de
aplicacin
general
denominado
C,
desarrollada por Bjarne Stroustrup en los
Bell Laboratories de la compaa American
Telephone and Telegraph (AT&T); en un
32

principio tambin fue conocido como C


with Classes (C con clases, alusin a las
clases de la programacin orientada a
objetos). Comenz a desarrollarse en 1980
y se nombr C++ en 1983. El primer
manual y su primera implementacin
como producto comercial aparecieron en
1985. Versiones sucesivas se publicaron en
1989 y 1990, siendo sus referencias
oficiales, adems de las publicaciones de
su versin estandarizada, las obras The
C++ Programming Language (El lenguaje
de
programacin
C++,
1985)
y
Annotated C++ Reference Manual
(Manual de referencia comentado de
C++, 1990).
El lenguaje tiene como conceptos clave,
entre otros, la clase (class), que facilita la
creacin de tipos de datos definidos por el
usuario conjuntamente con funciones o
mtodos para tratar con ellos, la
encapsulacin de datos, la asignacin
dinmica de memoria y la sobrecarga de
operadores. Se dise explcitamente para
lograr una mayor flexibilidad en la
programacin
avanzada,
aunque
manteniendo un grado de simplicidad
apreciable, basndose para todos los
efectos en el lenguaje C, de ya muy amplia
difusin, y en la metodologa bsica del
lenguaje Simula, en lo referente a la
programacin orientada a objetos.
A mediados de 1998, fue publicado como
un estndar oficial del comit ANSI X3J16
(American National Standards Institute) y
de la ISO, International Standards
Organization (Asociacin Internacional
para la Estandarizacin).

Programacin Estruccturada Codificada

Fue a partir de 1990 cuando se extendi


su uso, tanto como lenguaje para el
desarrollo de aplicaciones como para
sistemas operativos. Muy ligado a UNIX en
sus orgenes, su uso es, hoy da,
prcticamente general. Las versiones ms
utilizadas en computadoraes personales
son Visual C++ de Microsoft y C++

Builder de Borland (actualmente Inprise


Corp.). Tambin ha tenido una gran
influencia en el desarrollo del lenguaje
JAVA, con el que mantiene similitudes en
cuanto a la sintaxis y estructura de la
programacin.

Elementos

Programacin Estruccturada Codificada

33

Sistema informtico
Un sistema informtico suele estar
compuesto por una unidad central de
proceso (CPU), dispositivos de entrada,
dispositivos
de
almacenamiento
y
dispositivos de salida. La CPU incluye una
unidad aritmtico-lgica (ALU), registros,
seccin de control y bus lgico. La unidad
aritmtico-lgica efecta las operaciones
aritmticas y lgicas. Los registros
almacenan los datos y los resultados de
las operaciones. La unidad de control
regula y controla diversas operaciones. El
bus interno conecta las unidades de la
CPU entre s y con los componentes
externos del sistema. En la mayora de las
computadoras, el principal dispositivo de
entrada es el teclado. Los dispositivos de
almacenamiento son los discos duros,
flexibles (disquetes) y compactos (CD) y
qu hay del chunche (USB). Los
dispositivos de salida que permiten ver los
datos son los monitores e impresoras.
Dentro de la programacin del lenguaje C,
partamos ahora a la
progracin
estructurada enlenguaje C
Paradigma
de
estructurada:

la

programacin

Algoritmos+estructuras de datos =
programas.
Estructuras de datos

34

Literales
Tipos bsicos (todos numricos)
Tipos enumerados
Tipos estructurados (struct, union)
Punteros y vectores

Construcciones algortmicas

Construcciones condicionales
(if,switch)
Construcciones
iterativas(while,for,do...while)
Subrutinas (funciones)

Adems de lo anterior, el C tiene otros


elementos:

Comentarios
Inclusin de ficheros
Macros
Compilacin condicional

El preprocesador normalmente se encarga


de interpretar estas construcciones. .

Estructura bsica de un programa en C


La mejor forma de aprender un lenguaje
es programando con l. El programa ms
sencillo que se puede escribir en C es el
siguiente:
main( )
{
}

Como nos podemos imaginar, este


programa no hace nada, pero contiene la
parte ms importante de cualquier
programa C y adems, es el ms pequeo
que se puede escribir y que se compile
correctamente. En l se define la funcin
main, que es la que ejecuta el sistema
operativo al llamar a un programa C. El
nombre de una funcin C siempre va
seguida de parntesis, tanto si tiene
Programacin Estruccturada Codificada

argumentos como si no. La definicin de


la funcin est formada por un bloque de
sentencias, que est encerrado entre llaves
{}.

\t

Tabulacin horizontal

\v

Tabulacin vertical

\\

Barra invertida

\'

Comilla simple

Un programa algo ms complicado es el


siguiente:

\"

Comillas dobles

\OOO

Visualiza un carcter cuyo cdigo ASCII


es OOO en octal

\xHHH

Visualiza un carcter cuyo cdigo ASCII


es HHH en hexadecimal

#include <stdio.h>
main( )
{
printf("Hola amigos!\n");
}

Con l visualizamos el mensaje Hola


amigos! en el terminal. En la primera
lnea indica que se tengan en cuenta las
funciones y tipos definidos en la librera
stdio (standard input/output). Estas
definiciones se encuentran en el fichero
header stdio.h. Ahora, en la funcin main
se incluye una nica sentencia que llama a
la funcin printf. sta toma como
argumento una cadena de caracteres, que
se imprimen van encerradas entre dobles
comillas " ". El smbolo \n indica un cambio
de lnea.
Hay un grupo de smbolos, que son
tratados como caracteres individuales, que
especifican algunos caracteres especiales
del cdigo ASCII. Los ms importantes
son:

Cdigo

Descripcin

\a

Alerta

\b

Espacio atrs

\f

Salto de pgina

\n

Salto de lnea

\r

Retorno de carro

Programacin Estruccturada Codificada

Un programa C puede estar formado por


diferentes mdulos o fuentes. Es
conveniente mantener las fuentes de un
tamao no muy grande, para que la
compilacin sea rpida. Tambin, al
dividirse un programa en partes, puede
facilitar la legibilidad del programa y su
estructuracin. Las diferentes fuentes son
compiladas
de
forma
separada,
nicamente las fuentes que han sido
modificadas desde la ltima compilacin,
y despus combinados con las libreras
necesarias para formar el programa en su
versin ejecutable.

Tipos de datos

Tipos bsicos y variables


Los tipos de datos bsicos definidos por C
son caracteres, nmeros enteros y
nmeros en coma flotante. Los caracteres
son representados por char, los enteros
por short, int, long y los nmeros en coma
flotante por float y double. Los tipos
bsicos disponibles y su tamao son:

Tipo de
Datos

Tamao

Descripcin

35

char

Normalmente 8 bits Carcter

short

Normalmente 16
bits

Entero corto con


signo

int

Depende de la
implementacin

Entero con signo

unsigned

Depende de la
implementacin

Entero sin signo

long

Normalmente 32
bits

Entero largo con


signo

float

Normalmente 32
bits

Flotante de
precisin simple

double

Normalmente 64
bits

Flotante de
precisin doble

La palabra unsigned en realidad es un


modificador aplicable a tipos enteros,
aunque si no se especifica un tipo se
supone int. Un modificador es una
palabra clave de C que indica que una
variable, o funcin, no se comporta de la
forma
normal.
Hay
tambin
un
modificador signed, pero como los tipos
son por defecto con signo, casi no se
utiliza.
Las variables son definidas utilizando un
identificador de tipo seguido del nombre
de la variable. Veamos el siguiente
programa:
#include <stdio.h>
main()
{
float cels, farh;
farh = 35.0;
cels = 5.0 * ( farh - 32.0 ) / 9.0;
printf("-> %f F son %f C\n", farh, cels );
}
En el programa anterior se definen dos
variables flotantes. Se asigna un valor a la
primera y se calcula la segunda mediante
36

una expresin aritmtica. En la instruccin


printf, el smbolo %f indica que se
imprime un nmero en coma flotante.
Hay un tipo muy importante que se
representa por void, que puede significar
dos cosas distintas, segn su utilizacin.
Puede significar nada, o sea que si una
funcin devuelve un valor de tipo void no
devuelve ningn resultado, o puede
significar cualquier cosa, como puede ser
un puntero a void es un puntero genrico
a cualquier tipo de dato.
Los tipos de datos SQL se clasifican en 13
tipos de datos primarios y de varios
sinnimos vlidos reconocidos por dichos
tipos de datos.
Las llamadas en C son por valor, lo que
permite modificar las copias privadas y
temporales, es decir, las variables
automticas. Cuando se usa un arreglo
como argumento, se pasa la direccin del
mismo.
Cadenas de caractere
Tienen un caracter nulo al final ('\0').
Ej. "hello\n" -> h e l l o \n \0
Tipos de variables
Entre los tipos de variables se cuentan:
Automticas
Externas
Las variables automticas...
Programacin Estruccturada Codificada

- aparecen y desaparecen con la llamada


de la funcin.
Las variables externas...
- se declaran globalmente: extern int max;
- se definen fuera de las funciones: int
max;
- se declaran dentro de las funciones:
extern int max;

Comentarios

Un comentario es una lnea que se incluye


en el programa, cuya misin consiste en
aclarar la funcin de una parte concreta
del programa a otro lector, o incluso al
mismo programador. En C, hay dos
formas de incluir estos comentarios. La
primera es incluir el texto que sirve de
comentario al principio de la seccin,
entre dos smbolos especiales: el /* o
principio de comentario y el */ o fin de
comentario. Todo el texto que incluyamos
entre ellos, el compilador lo ignora,
incluyendo los saltos de lnea. Por
ejemplo, si una seccin del programa se
encarga de ofrecer los resultados finales
del programa, podramos incluir en el
cdigo el siguiente comentario:
En el C original, tienen la forma /*
cualquier texto */
Los comentarios se pueden extender varias
lneas
No se pueden anidar comentarios
(comentarios dentro de otros)

/ cualquier texto
Todo lo que se escriba a partir de las dos
barras es un comentario. El comentario
termina con el final de la lnea.
Ejemplos:
{
/*Esto es un comentario
que ocupa varias lneas
*/
// esto es un comentario de C++
// y esto es otro comentario
}

Declaraciones:

Declaracin y comprobacin de tipos


Al igual que para las variables, cuando
una funcin se va a usar en un programa
antes del lugar donde se define, o cuando
una funcin se define en otro programa
(funciones externas), la funcin se debe
declarar.
La declaracin de una funcin consiste en
especificar el tipo de datos que va a
retornar la funcin. Esto es obligatorio
cuando vamos a usar una funcin que no
devuelve un entero. Adems en la
declaracin se puede especificar el
nmero de argumentos y su tipo. Una
declaracin tpica de funcin es:
tipo
identificador(lista_de_argumentos_con_tip
o);

En C++ se usan tambin comentarios de


una sola lnea. La sintaxis es
Programacin Estruccturada Codificada

37

Esto avisa al compilador de que la funcin


ya existe, o que la vamos a definir
despus.

Cada variable tiene un tipo.


Declaracin:
tipo nombre ;

La lista de argumentos con tipo difiere de


la lista de argumentos antes presentada
en que el tipo de cada argumento se
coloca dentro de la lista, antes de su
correspondiente
identificador,
como
hacamos en la definicin de variables. Por
ejemplo:

Ejemplo:

char print(int numero, int letra);


declara una funcin que devuelve un
carcter y tiene dos parametros, un entero
y un carcter.
La lista de argumentos permite al
compilador hacer comprobacin de tipos,
ya que el tipo y nmero de argumentos
debe coincidir en la declaracin, definicin
y llamada a una funcin.
Este tipo de especificacin del tipo de
argumentos tambin se puede emplear en
la definicin de las funciones, aunque lo
contrario no es posible. Asi:
char print(int numero, int letra)

int pepe;
Las variables globales se declaran justo
antes de main().
Se pueden declarar varias variables en
pocos renglones:
int lower,upper, step;
char c, line[1000];
Tambin se pueden escribir ms
explicitamente, para agregar comentarios:
int lower; /* algunos comentarios */
int upper;
int step;
char c;
char line[1000];
Inicializacin de variables:
char backslash='\\';
int i=0;

{
printf("%d, %c\c", numero, letra);
}
es otra definicin vlida para la funcin
print que hemos empleado.
Las variables se utilizan para guardar
datos dentro del programa.
Hay que declarar las variables antes de
usarlas.
38

Nombres de las variables


Letra (Letra o Dgito)* -> 31 caracteres
Las maysculas son diferentes de las
minsculas
Es prctica comn de C, denotar con
- MAYUSCULAS las constantes
- minsculas las variables
Programacin Estruccturada Codificada

Constantes
Simblicas (Preprocesamiento)
Ej. #define PI 3.14159265359
#define MAXLINE 1000
char line [MAXLINE+1]
#define FORMFEED '\014'
Variables constantes:
Ej. const float pi=3.14159265359;

Alfanumricas:
Se evalan en tiempo de compilacin, no
de ejecucin.
Ejs. 3.14159265359
123.456e-7
0.12E3
'0' -> ASCII 48, EBCDIC 240

CONTEXTUALIZACION
Competencias cientfico-terica

Aplicar conocimientos de aritmtica,

lgebra y lgica matemtica para la


elaboracin
de
rutinas
de
programacin.

Programacin Estruccturada Codificada

En los lenguajes de programacin existen


reglas y sintaxis para la creacin de
programas. Es de suma importacia que se
tenga conocimiento de las partes que
conforman la codificacin de un
programa.
Un programa C puede estar formado por
diferentes mdulos o fuentes. Es
conveniente mantener las fuentes de un
tamao no muy grande, para que la
compilacin sea rpida. Tambin, al
dividirse un programa en partes, puede
facilitar la legibilidad del programa y su
estructuracin
El alumno:
Identificar que la repeticin de
eventos en la
programacin
generan huellas de memoria que
hacen factible el reforzamiento en el
aprendizaje.
Competencia de informacin
Buscar
fuentes de informacin
bibliogrfica, hemerogrfica, Internet
y videotecas que ample el acervo de
conocimientos.
El alumno:
Consultar en Internet o revistas
especializadas material tcnico de
varios tipos de lenguajes de
programacin
estructurada
existentes en el mercado.
Para mayor informacin consulte las
siguientes direcciones electronicas
http://webpages.ull.es/users/fsande/talf/cursoc/
http://www.sisoft.ucm.es/Manuales/Lenguaje_C.pdf
http://labsopa.dis.ulpgc.es/cpp/intro_c/
http://correo.puj.edu.co/el982002/lenguajeC.htm
http://www.jeanpaul.com.ar/

39

RESULTADO DE APRENDIZAJE
1.2 Determinar los factores de ajuste de conversin y las partidas de acuerdo con las
caractersticas de la empresa en pocas inflacionarias.

1.2.1 OPERADORES Y EXPRESIONES.

Tipo de Operadores

Los distintos operadores permiten formar


expresiones tanto aritmticas como
lgicas. Los operadores aritmticos y
lgicos son:
+, ++, -*, /, %
>>, <<
&
|
^
~
!
==, !=
&&, ||
<, <=
>, >=

suma, resta
incremento, decremento
multiplicacin, divisin,
mdulo
rotacin de bits a la derecha,
izquierda.
AND booleano
OR booleano
EXOR booleano
complemento a 1
complemento a 2, NOT lgico
igualdad, desigualdad
AND, OR lgico
menor, menor o igual
mayor, mayor o igual

En estos operadores deben tenerse en


cuenta la precedencia de operadores y las
reglas de asociatividad, que son las
normales en la mayora de lenguajes. Se
debe consultar el manual de referencia
para obtener una explicacin detallada.
40

Adems hay toda una serie de operadores


aritmticos con asignacin, como pueden
ser += y ^=.
En la evaluacin de expresiones lgicas,
los compiladores normalmente utilizan
tcnicas de evaluacin rpida. Para decidir
si una expresin lgica es cierta o falsa
muchas veces no es necesario evaluarla
completamente.
Por
ejemplo
una
expresin formada <exp1> || <exp2>, el
compilador evala primero <exp1> y si es
cierta, no evala <exp2>.
Por ello se deben evitar construcciones en
las que se modifiquen valores de datos en
la
propia
expresin,
pues
su
comportamiento puede depender de la
implementacin del compilador o de la
optimizacin utilizada en una compilacin
o en otra. Estos son errores que se pueden
cometer fcilmente en C ya que una
asignacin es tambin una expresin.
Debemos evitar:
if (( x++ > 3 ) || ( x < y ))
y escribir en su lugar:
if (( x > 3 ) || ( x < y ))

x++;

Hay un tipo especial de expresin en C


que se denomina expresin condicional y
est representada por los operadores ? y
: . Su utilizacin es como sigue: <e> ?
<x> : <y>. Se evala si e entonces x; si
no, y.
Programacin Estruccturada Codificada

int mayor ( int a, int b )


{
return ( a > b ) ? TRUE : FALSE;
}
waste_time ()
{
float a, b = 0.0;
( b > 0.0 ) ? sin(M_PI / 8) : cos(M_PI / 4);
}

Expresiones de asignacin

El signo de igualdad, =, es el operador


bsico de asignacin en C. Un ejemplo de
asignacin es:
i=7
A la variable i se le asigno el valor 7, y la
expresin, como un todo, toma ese valor.
Cuando la expresin va seguida de un
punto y coma, se convierte en una
proposicin.
Algunos ejemplos de proposiciones son:
i = 7;
x = 3.1 + sin(22.2);
Se calcula el valor de la expresin que est
a la derecha del signo = y luego se asigna
a la variable del lado izquierdo. Por
ejemplo
int a, b, c
a = 7;
b = 2;
c = a + b;

Programacin Estruccturada Codificada

declara que las variables a, b y c son de


tipo int, luego asigna el valor 7 a a, el
valor 2 a b, y el valor de la expresin a
+ b a c.
Notacin compacta.
Una expresin como
k = k + 2;
sumar dos al antiguo valor de k y le
asignar el resultado; as la expresin,
como un todo, tendr ese valor. La
expresin
k += 2;
utiliza el operador de asignacin += para
ejecutar la misma tarea.
Otro ejemplo sera:
k *= 3 + x;
es equivalente a:
k = k * (3 + x);
Operadores aritmticos.
Los operadores aritmticos
+ - *
/
% corresponden a las operaciones
matemticas normales de suma, resta,
multiplicacin,
divisin
y
mdulo,
respectivamente. La divisin de enteros
devuelve el valor entero que obtuvo y
desecha cualquier fraccin restante.
Por ejemplo, 1 / 2 tiene el valor 0, 3 / 2
tiene el valor 1, y -7 / 3 tiene el valor -2. La
41

expresin a % b se lee "a modulo b". Si a y


b son enteros positivos, el resultado ser
el residuo de la divisin de a ante b. Por
ejemplo, 7 % 2 tiene el valor 1, y 12 % 3
tiene el valor 0; si a, b o ambos son
negativos, entonces a % b est definido,
pero el resultado es dependiente de la
mquina. El valor de b no puede ser cero,
porque eso nos conducira a dividir por
cero.
Operadores de incremento y
decremento.
Como operador de incremento tenemos el
++ y de decremento es el --. Tanto ++
como - - pueden aplicarse a variables,
pero no a constantes o a expresiones.
Algunos ejemplos son: ++y
--k
y++
k-La proposicin
++y; es equivalente a i = i + 1;
As, tambin la proposicin
y++; es equivalente a i = i + 1;
y de manera similar
--k; es equivalente a k = k - 1;
k--; es equivalente a k = k - 1;
Las expresiones ++a y a++ provocan que
a se incremente en 1. En forma similar, - a y a- - causan que a disminuya en 1. No
obstante, al usar ++a en una expresin, el
valor de a se aumenta antes de evaluar la
expresin, mientras que al emplear a++,
la expresin se evala con el valor actual
42

de a, incrementndolo despus. Lo mismo


ocurre con - -a y a- -.

Expresiones condicionales.

OPERADORES DE RELACION, IGUALDAD


Y LGICA.
Operadores y Expresiones de Relacin
Los operadores de relacin
< menor que
> mayor que
<= menor o igual que
>= mayor o igual que
son todos binarios. Cada uno de ellos
toma dos expresiones como operandos y
dan como resultado el valor INT 0 o el
valor INT 1.
Considrese una expresin de relacin
como a < b. Intuitivamente, si el valor de
a es menor que el de b, la expresin es
VERDADERA; y como en C lo VERDADERO
se representa con cualquier valor distinto
de 0, es natural que a < b tenga el valor
INT 1. Si el valor de a no es menor que el
de b, entonces la expresin es FALSA, y a
< b tendr el valor INT 0.
Algunos ejemplos son:
a <
a >
-7.7
-1.3

3
b
<= -99.335
>= (2.0 * x + 3.3)

Programacin Estruccturada Codificada

Operadores y Expresiones de Igualdad.

en lugar de

Los operadores de igualdad


== igual a
!= distinto de
son operadores binarios que actan sobre
expresiones, y producen valores INT 0 o 1.
Las conversiones usuales de aritmtica se
aplican a las expresiones que sean
operandos de los operadores de igualdad.
Algunos ejemplos son:

if (i == 1)
. . . .
/* hacer algo */
La expresin de la primera proposicin IF
siempre es VERDADERA, y ser muy difcil
encontrar un error de este tipo.
Operadores y Expresiones Lgicos.
Los operadores lgicos
! (unario) negacin
&& y lgico
|| o lgico

c == 'w'
x != -2.77
22 == 33
Intuitivamente, una expresin de igualdad
como a = = b es VERDADERA o FALSA. Si
el valor de a es igual al de b, entonces la
expresin producir el valor INT 1, en caso
contrario, si a no es igual b la expresin
producir el valor INT 0. La expresin a !=
b se evala de la misma manera.
Obsrvese que las expresiones
a == b

a=b

son similares A PRIMERA VISTA. Se


parecen en la forma, pero son
completamente distintas en cuanto a la
funcin. La expresin a = = b es una
prueba de igualdad, mientras que a = b
es una expresin de asignacin. Uno de
los errores ms comunes en programacin
es codificar algo como:
if (i = 1)
. . . .
/* hacer algo */
Programacin Estruccturada Codificada

se aplican a expresiones, producen los


valores INT 0 o bien 1.
Algunos ejemplos son:
!5
!'z'
!(x + 7.7)
2 || 3
a || b
a && 1
a && b

Precedencia
evaluacin.

orden

de

Lista en la que se muestra el Operador y la


Asociatividad
() [] De izquierda a derecha
-

++ -- ! ~ * & sizeof(tipo) De
derecha a izquierda
43

* / % De izquierda a derecha
+ - De izquierda a derecha
<< >> De izquierda a derecha
< <= > >= De izquierda a
derecha
== != De izquierda a derecha
& De izquierda a derecha
&& De izquierda a derecha
|| De izquierda a derecha
?: De derecha a izquierda
= *= /= %= += -= &= <<=
>>= De derecha a izquierda
, De izquierda a derecha
-

CONTEXTUALIZACIN
Competencia
analtica
Promover habilidades cognitivas que
les permitan utilizar hbitos y tcnicas
de estudio que potencialicen su estilo
de aprendizaje.

El alumno:
Comparar
mtodos
ordenamiento
aplicables
construccin de tablas.

de
la

Competencia para la vida


Razonar la importancia que ha tenido

el avance de las Tecnologas de


Informacin y Comunicaciones (TICs)
en el Acceso de la informacin.
El alumno:
Identificar
los
lenguajes
de
programacin
como
una
herramienta que se aplica en
cualquier mbito para el desempeo
laboral.
Para mayor informacin consulte
siguientes direcciones electrnicas

las

http://webpages.ull.es/users/fsande/talf/cursoc/
http://www.sisoft.ucm.es/Manuales/Lenguaje_C.pdf
http://labsopa.dis.ulpgc.es/cpp/intro_c/
http://correo.puj.edu.co/el982002/lenguajeC.htm
http://www.jeanpaul.com.ar/

Los distintos operadores permiten formar


expresiones tanto aritmticas como
lgicas. En estos operadores deben
tenerse en cuenta la precedencia de
operadores y las reglas de asociatividad,
que son las normales en la mayora de
lenguajes.
El signo de igualdad, =, es el operador
bsico de asignacin en C, son
operadores binarios que actan sobre
expresiones, y producen valores INT 0 o
1. Las conversiones usuales de aritmtica
se aplican a las expresiones que sean
operandos de los operadores de
igualdad.
44

Programacin Estruccturada Codificada

1.2.2 ESTRUCTURAS DE CONTROL DE


FLUJO

Control del flujo del programa

En C las sentencias se ejecutan


sucesivamente una tras otra. Esto define
un camino o direccin segn la cual se va
desarrollado el programa. Sin embargo,
habr momentos en que el programa
deba
ejecutar
determinadas
partes
dependiendo del estado en el que se halle
el programa o de las variables externas.
Esto permitir modificar el orden de la
ejecucin para adaptarse al estado del
programa y bifurcar hacia nuevas
subrutinas cuando se cumplan ciertas
condiciones, que el programador fija de
antemano.

Proposiciones y bloques.

La principal particularidad que posee C es


el manejo de rutinas que controlan el flujo
de datos que ingresan y egresan en cada
proceso, que se ejecuta bajo la estructura
de dicho lenguaje.
Las Proposiciones o sentencias son las que
van determinando el orden o camino de
ejecucin de un programa escrito en
lenguaje C.

Es de destacar que las proposiciones son


expresiones cuya escritura finaliza con un
Programacin Estruccturada Codificada

punto y coma (;) el que cumple la funcin


de terminador de sentencias y no la de un
separador de las mismas.
Las declaraciones y sentencias pueden ser
agrupadas en un bloque o proposicin
compuesta, encerrndolas entre llaves. No
est permitido colocar punto y coma
despus de la llave derecha.
Tambin es posible declarar variables
dentro de cualquier bloque.
A continuacin se desarrollan las
proposiciones que permiten la toma de
decisiones que marcarn el camino que
debe seguir un proceso dentro su
ejecucin.

Por ejemplo, la proposicin If Else, cuya


sintaxis se expresa de la siguiente manera:
If (expresin)
Prop. 1
Else
Prop. 2
Donde la parte Else es opcional.
La misma opera del siguiente modo: Se
evala la expresin; si sta es cierta, se
ejecuta la prop. 1. Por el contrario, si la
expresin es falsa y existe la parte Else, se
ejecuta la prop. 2.
Todo Else se asocia con el If interior ms
prximo, siendo conveniente observar el
sangrado en la escritura de cada
proposicin.
45

puts("la variable numero1 vale 1");


If-else.

La sentencia if
La primera sentencia de control es la
sentencia if. Admite dos tipos de sintaxis:
if (expresin1)
sentencia1;
o tambin:
if (expresin1)
sentencia1;
else
sentencia2;

else
puts("la variable numero1 no vale
1");
Tras evaluarse la expresin if y ejecutarse
la sentencia adecuada, el programa
contina con la lnea siguiente a la de la
ltima sentencia del if. Para la sentencia if,
vale como expresin cualquier expresin
vlida en C, incluso las asignaciones y
llamadas a funciones. El caso en que la
expresin es una asignacin, suele ser
sorprendente, ya que en la mayora de los
lenguajes este tipo de expresiones no es
vlido. Como sentencia vale cualquier tipo
de sentencia vlida en C, entre ellas la
propia sentencia if. En este caso
hablaremos de sentencias if anidadas. Por
ejemplo:
if (num > 0)

Esta sentencia es equivalente a la que


poseen la mayora de lenguajes de
programacin y sirve para bifurcar en un
punto de programa. La sentencia if
permite tomar decisiones al programa. En
su primera forma la sentencia1 slo se
ejecuta si el resultado de evaluar la
expresin1 es verdadero (distinto de cero).
En la segunda forma, tenemos dos
posibilidades: si al evaluar la expresiin1 el
resultado es verdadero, se ejecuta la
sentencia 1, pero si el resultado es falso,
se ejecuta la sentencia 2. En cualquier
caso, slo una de las dos sentencias se
ejecuta. Por ejemplo:
if (numero1 == 1)
46

if (num == 1)
puts("num es igual a 1")
else
puts("num es mayor que 1)
else
puts("num es menor que 1");
Cuando hay dos if anidados y a
continuacin hay un else, este else
pertenece al ltimo if. As, en el caso
anterior, el primer else corresponde al
segundo if. Si queremos que un else
Programacin Estruccturada Codificada

pertenezca al primer if de un if anidado


deberemos encerrar al segundo entre
parntesis. Por ejemplo:
if (num > 0)

Permite escribir condicionales de casos


EXCLUYENTES
if (expresin)

proposicin

if (num == 1)

else if (expresin)

puts("num es igual a 1");

proposicin

else

else

proposicin

puts("num es menor que 0");

Cuando necesitamos ejecutar varias


sentencias que dependen de un if,
utilizaremos la sentencia de tipo bloque
de sentencias. Un bloque de sentencias es
un grupo de sentencias encerradas entre
llaves { y }. Por ejemplo:
if (num >= 0) {
printf("num %d\n");
if (num == 0)
puts("num 0");
if (num >= 1)
puts("num mayor o igual a 1");
}

else if

El ciclo while

Un bucle es un conjunto de sentencias


que se ejecutan repetidamente hasta que
se alcanza una condicin de fin de bucle o
condicin de salida. El bucle while es el
tipo de bucle ms sencillo. En su modo
ms simple se escribe:
while (expresin1)
sentencia1;
El bucle while comienza por evaluar la
expresin1. Si es cierta se ejecuta la
sentencia1. Entonces se vuelve a evaluar la
expresin1. De nuevo si es verdadera se
vuelve a ejecutar la sentencia1. Este
proceso contina hasta que el resultado
de evaluar la expresin es falso. Por esto
se le llama a esta expresin la condicin
de salida. Por ejemplo:
int variable = 10;

Programacin Estruccturada Codificada

47

while (variable)
printf("la
variable
variable--);

vale

%d\n",

En este caso se imprime el valor de la


variable hasta que se llegue a 1.
Normalmente, en las sentencias del bucle
while se coloca alguna instruccin que
modifique la expresin de control. Lo ms
habitual es utilizar un bloque de
sentencias en vez de una sentencia nica.

evala al final del bucle. Esto nos


garantiza que el bucle do-while se ejecuta
al menos una vez. Es menos habitual que
el bucle while.
Podemos incluir dentro del bucle un grupo
de sentencias, en vez de la sentencia1.
Este es el nico bucle que no necesita
llaves para encerrar un grupo de
sentencias. Por ejemplo:
char c = '9';
do

Por ejemplo:

printf("numero actual %c\n", c);

int variable = 10;

--c; /* ahora la decrementamos como


si fuera entera */

while (variable) {

while (c >= '0');

printf("valor de la variable %d\n",


variable);
printf("valor tras decrementar
variable %d\n", variable);

la

El ciclo for

La sintaxis del bucle for es:


for (inicio, control, incremento)

El ciclo do-while

La sintaxis de este bucle es:


do
sentencia1;
while (expresin1);
Su funcionamiento es anlogo del bucle
while, salvo que la expresin de control se
48

sentencia1;
Este bucle se utiliza para realizar una
accin un nmero determinado de veces.
Est compuesto de tres expresiones: la de
inicio, la de control y la de incremento, y
una sentencia. Su versin ms sencilla es:
for (i =0; i < 10; i++)
printf("i vale %d\n", i);
Programacin Estruccturada Codificada

Esta versin del bucle imprime un mensaje


en la pantalla mientras que no se alcance
la condicin de salida, i == 10.
El funcionamiento del bucle for es el
siguiente:
-

Primero se ejecuta la expresin de


inicio. Normalmente sta es una
expresin de asignacin a una
variable, que le da un valor inicial.
Luego se comprueba la expresin
de control. Si esta expresin es
verdadera se ejecuta la sentencia, o
el grupo de sentencias. Si la
expresin es falsa el bucle finaliza.
Tras ejecutarse la sentencia se
evala la expresin de incremento.
Habitualmente, lo que hace esta
expresin es incrementar la variable
de control.
A continuacin se vuelve al
segundo paso. El bucle finaliza
cuando la expresin de control es
falsa

En un bucle for podemos omitir la


expresin de inicio, por ejemplo si
sabemos que la variable ya est
inicializada:
int i = 0;
for ( ; i <= 10; ++i)
printf("%d\n", i);
Tambin podemos omitir la expresin de
incremento. Esto es habitual cuando la
variable de control ya se modifica dentro
del bucle. Por ejemplo:
int i= 10;
Programacin Estruccturada Codificada

for ( ; i < 10; )


printf("i = %d\n", i++);
El bucle for es equivalente a un bucle
while escrito del siguiente modo:
inicio;
while (control) {
sentencia1;
incremento;
}
Este bucle while puede servirnos para salir
fcilmente de dudas al escribir un bucle
for, ya que se ve claramente el orden de
ejecucin de las expresiones y sentencias
dentro del bucle for. Como se ve, en cada
pasada del bucle for se sigue el orden:
evaluacin de control, ejecucin de
sentencia1 y evaluacin de incremento.

Las sentencias break y continue.

Hay veces en que interesa romper un


bucle en una determinada posicin para
ejecutar una nueva pasada del bucle o
para finalizar su ejecucin Esto suele ser
habitual cuando el bucle tiene una gran
complicacin o cuando necesitamos salir
"por las malas" del bucle. Esto ltimo,
suele ser frecuente cuando en el bucle se
producen "condiciones de error". Para
realizar estos dos tipos de salto,
disponemos de dos sentencias: la
sentencia break y la sentencia continue.
49

La sentencia break rompe la ejecucin de


un bucle o bloque de instrucciones y
contina en la instruccin que siga al
bucle o bloque. Por ejemplo:
int a = 10;
while (1) {
if (a-- <= 1)

La sentencia
switch

case exp1: sent1; break;


case exp2: sent2; break;

default sent0; break;


}
Su sintaxis es ms complicada que la de
anteriores bucles, ya que agrupa un mayor
nmero de acciones y posibilidades en
una sola sentencia. El modo de
funcionamiento es el siguiente:
-

int a = 1;
while (a < 10) {

printf("%d\n", a);
if (a==7)
continue;
}

50

mltiple

switch (control) {

printf("%d\n", a);

La sentencia continue rompe la ejecucin


habitual del bucle y procede a evaluar de
nuevo la expresin del bucle. Acta como
si se saltase al final del bloque de un
bucle. Por ejemplo:

seleccin

Esta sentencia sirve para agrupar varias


sentencias if en una sola, en el caso
particular en el que una variable es
comparada a diferentes valores, todos
ellos constantes, y que realiza acciones si
coincide con ellos. Su sintaxis es:

break;

Aunque en apariencia ste es un bucle sin


fin, ya que la condicin con while (1)
siempre es cierta, este bucle se acabar
cuando la variable a valga 1. El bucle
simplemente decrementa la variable e
imprime su valor.

de

Primero se evala la expresin de


control.
A continuacin se compara con la
expresin de la primera etiqueta
case. Si son iguales se ejecuta la
sentencia1.
Luego se vuelve a comparar la
expresin de control con la etiqueta
del segundo case de nuevo, si son
iguales se ejecuta la sentencia2.
Se repite el proceso hasta agotar
todas las etiquetas case. Si al llegar
a la etiqueta default no se ha
ejecutado ninguna otra sentencia.
(* revisar si esto es cierto o la
etiqueta default se ejecuta aun
Programacin Estruccturada Codificada

cuando se haya ejecutado otra *)


sta es la accin por defecto. La
etiqueta default es opcional. Si no
la
ponemos,
el
programa
simplemente salta a la lnea
siguiente.
Hay que tener cuidado con un aspecto de
este bucle. Cuando una expresin de una
etiqueta case es igual a la sentencia de
control, se ejecutan todas las sentencias
que sigan hasta que se alcance una nueva
etiqueta case, y luego se vuelve a
comparar la expresin de control. Este
mecanismo tiene una ventaja y un
inconveniente. La ventaja es que no
necesitamos encerrar entre llaves el grupo
de sentencias a ejecutar para cada
etiqueta. El inconveniente es que al agotar
las sentencias de una determinada
etiqueta la sentencia switch prosigue con
la siguiente etiqueta case. Habitualmente,
lo que se pretende es que tras ejecutar el
grupo de sentencias se finalice el switch.
Para evitar que se ejecuten ms
sentencias, habitualmente se acaba cada
grupo de sentencias con una sentencia
break. La sentencia break pasa entonces la
ejecucin a la siguiente lnea de programa
que prosiga al bucle switch.
Tambin se permite poner etiquetas
mltiples para un mismo grupo de
sentencias. Si dejamos una etiqueta case
sin sentencias a ejecutar, entonces se
asocia a la siguiente etiqueta. Esto es til
para ejecutar una misma accin para
distintos valores de la expresin.

Goto y etiquetas

Instruccin goto
Sirve para saltar incondicionalmente a un
punto cualquiera del programa. La sintaxis
es
goto etiqueta;
Etiqueta es un identificador que indica el
punto al que queremos saltar. La etiqueta
se define colocndola en el punto
adecuado seguida de dos puntos.
Slo se puede saltar a una etiqueta que se
encuentre en la misma funcin donde se
invoca a goto.
Ejemplo:
parriba:
etiqueta

// declaracin de

// salto directo a una etiqueta


if (error) goto pabajo;
...
if (repetir) goto parriba;
pabajo:
etiqueta

// declaracin de

Generalmente, es usada en el manejo de


errores. Se aconseja ser parcos en su uso.
Por ejemplo
/* muestra el primer valor negativo
de un */
/* arreglo multidimensional */

Programacin Estruccturada Codificada

51

for (i=0; i
for (j=0; j
if (v[i][j]<0)
goto found;
/* no se encontr */
found: /* se encontr en la posicin
i,j */
CONTEXTUALIZACIN
Competencia lgica
Resolver problemas que involucren el
razonamiento lgico, matemtico y
abstracto.
La principal particularidad que posee C es
el manejo de rutinas que controlan el flujo
de datos que ingresan y egresan en cada
proceso, que se ejecuta bajo la estructura
de dicho lenguaje.
Las proposiciones o sentencias son las que
van determinando el orden o camino de
ejecucin de un programa escrito en
lenguaje C
Las declaraciones y sentencias pueden ser
agrupadas en un bloque o proposicin
compuesta, encerrndolas entre llaves. No
est permitido colocar punto y coma
despus de la llave derecha.

A continuacin se desarrollan las


proposiciones que permiten la toma de
decisiones que marcarn el camino que
debe seguir un proceso dentro su
ejecucin
El alumno:
Interpretar la importancia del uso
de estructuras de datos lgicas al
elaborar soluciones de algoritmos en
programacin estructurada.
Competencia de calidad
Respetar y acatar lo establecido en el
manual del fabricante.
El alumno:
Cuidar que la utilizacin de
herramientas del lenguaje C se
realicen
con
los
lineamientos
establecidos en el manual del
fabricante.
Competencia para la vida
Realizar el trabajo en forma eficiente y

oportuna.
El alumno:
Cuidar la presentacin y legibilidad
en el diseo y elaboracin de
programas de cmputo
Para mayor informacin, consulte las
siguientes direcciones electrnicas
http://webpages.ull.es/users/fsande/talf/cursoc/
http://www.sisoft.ucm.es/Manuales/Lenguaje_C.pdf
http://labsopa.dis.ulpgc.es/cpp/intro_c/
http://correo.puj.edu.co/el982002/lenguajeC.htm
http://www.jeanpaul.com.ar/

Tambin es posible declarar variables


dentro de cualquier bloque.

52

Programacin Estruccturada Codificada

PRCTICAS DE EJERCICIO Y LISTA DE COTEJO


Unidad
aprendizaje:

de

Prctica nmero:

Nombre de la prctica:

Impresin de un mensaje

Propsito
prctica:

Al finalizar la prctica el alumno, elaborar un programa donde imprima un


mensaje con lenguaje de programacin C.

de

la

Escenario:

Laboratorio
Informtica.

Duracin:

2 hrs.

Materiales
Software
de
lenguaje
programacin C.
Manual de C.

de

de

Maquinaria y equipo
Computadora (Pentium II como

Herramienta

requerimiento mnimo).
Impresora.

Programacin Estruccturada Codificada

53

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
Disponer del manual de lenguaje de programacin C.
1.
2.
3.
4.

Encender equipo de cmputo.


Abrir sesin de ambiente grfico.
Accesar el subdirectorio donde se encuentra C.
Escribir un programa que imprima el mensaje "Primer programa", transcribiendo el siguiente algoritmo en
el editor de C.
/* Primer programa */
#include <stdio.h>
main()
{
printf("Primer programa");
}

5. Guardar el archivo que contiene el programa transcrito.


6. Compilar el programa.
7. De ser necesario, iniciar un proceso de depuracin del programa (correccin de errores) hasta cerciorarse
que el programa cumpla con el objetivo establecido.
8. Imprimir el resultado de la ejecucin del programa.
9. Repetir los procedimientos con asesora del PSP.
4

54

Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.

Programacin Estruccturada Codificada

Impresin de un mensaje.

Lista de cotejo de la prctica


Nmero 1:
Nombre del alumno:
Instrucciones:

A continuacin se presentan los criterios que van a ser verificados


en el desempeo del alumno mediante la observacin del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo.

Desarrollo

No

No
Aplica

Aplic las medidas de seguridad e higiene.

Evit la manipulacin de lquidos cerca del equipo.

No introdujo objetos extraos en los dispositivos de disco,

No utiliz imanes cerca de discos flexibles, discos compactos del


equipo.

Limpi el rea de trabajo.

Dispuso del manual de lenguaje de programacin C.


1. Encendi equipo de cmputo.
2. Abri sesin de ambiente grfico.
3. Acces el subdirectorio donde se encuentra C.
4. Escribi un programa que imprima el mensaje "Primer programa",
transcribiendo el algoritmo en el editor de C.
5. Guard el archivo que contiene el programa transcrito.
6. Compil el programa.
7. Inici un proceso de depuracin del programa (correccin de errores) hasta
cerciorarse que el programa cumpla con el objetivo establecido.
8. Imprimir el resultado de la ejecucin del programa.
9. Repetir los procedimientos con asesora del PSP.
4 Deposit los residuos recuperables.
Observaciones:
PSP:
Hora de
inicio:

Programacin Estruccturada Codificada

Hora de
trmino:

Evaluacin:

55

Unidad de aprendizaje:

Prctica nmero:

Nombre de la prctica:

Programa de un carcter

Propsito de la
prctica:

Al finalizar la prctica el alumno, elaborar un programa que lea y escriba un


carcter con lenguaje de programacin C.

Escenario:

Laboratorio de
Informtica.

Duracin:

2 hrs.

Materiales
Software de lenguaje

de

programacin C.

56

Manual de C.

Maquinaria y equipo
Computadora (Pentium

Herramienta
II

como requerimiento mnimo).

Impresora.

Programacin Estruccturada Codificada

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
Disponer del manual de lenguaje de programacin C.
1.
2.
3.
4.

Encender equipo de cmputo.


Abrir sesin de ambiente grfico.
Accesar el subdirectorio donde se encuentra C.
Escribir un programa que lea y escriba un carcter, transcribiendo el siguiente algoritmo en el editor de
C.
/* Leer y escribir un caracter */
#include <stdio.h>
main ()
{
char car;
printf("Escriba un carcter: ");
car=getchar();
printf("\nEl caracter introducido es %c.\n",car);
}

5.
6.
7.
8.
9.
10.

Accesar el subdirectorio donde se encuentra C.


Abrir el editor de C.
Transcribir el programa en el editor de C.
Guardar el archivo que contiene el programa transcrito.
Compilar el programa.
De ser necesario, iniciar un proceso de depuracin del programa (correccin de errores) hasta cerciorarse
que el programa cumpla con el objetivo establecido.
11. Imprimir el resultado de la ejecucin del programa.
12. Repetir los procedimientos con asesora del PSP.
4

Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.

Programacin Estruccturada Codificada

57

Lista de cotejo de la prctica


Nmero 2:

Programa de un carcter.

Nombre del alumno:


Instrucciones:

A continuacin se presentan los criterios que van a ser verificados


en el desempeo del alumno mediante la observacin del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo.
Desarrollo

No

No
Aplica

Aplic las medidas de seguridad e higiene.

Evit la manipulacin de lquidos cerca del equipo.

No introdujo objetos extraos en los dispositivos de disco,

No utiliz imanes cerca de discos flexibles, discos compactos del


equipo.

Limpi el rea de trabajo.

Dispuso del manual de lenguaje de programacin C.


1. Encendi equipo de cmputo.
2. Abri sesin de ambiente grfico.
3. Acces el subdirectorio donde se encuentra C.
4. Escribi un programa que lea y escriba un carcter, transcribiendo el
algoritmo en el editor de C.
5. Acces el subdirectorio donde se encuentra C.
6. Abri el editor de C.
7. Transcribi el programa en el editor de C.
8. Guard el archivo que contiene el programa transcrito.
9. Compil el programa.
10. Iniciar un proceso de depuracin del programa (correccin de errores) hasta
cerciorarse que el programa cumpla con el objetivo establecido.
11. Imprimi el resultado de la ejecucin del programa.
12. Repeti los procedimientos con asesora del PSP.
4 Deposit los residuos recuperables.
Observaciones:
PSP:
Hora de inicio:

58

Hora de
trmino:

Evaluacin:

Programacin Estruccturada Codificada

Unidad de aprendizaje:

Prctica nmero:

Nombre de la prctica:

Impresin de una agenda.

Propsito de la
prctica:

Al finalizar la prctica el alumno, elaborar una impresin de lista de amigos en


una agenda con lenguaje de programacin C.

Escenario:

Laboratorio de
Informtica.

Duracin:

3 hrs.

Materiales
Software de lenguaje

de

programacin C.

Manual de C.

Maquinaria y equipo
Computadora (Pentium

Herramienta
II

como requerimiento mnimo).

Programacin Estruccturada Codificada

Impresora.

59

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
Disponer del manual de lenguaje de programacin C.
1.
2.
3.
4.

Encender equipo de cmputo.


Abrir sesin de ambiente grfico.
Accesar el subdirectorio donde se encuentra C.
Escribir un programa que imprima una lista de amigos guardados en una agenda (tipo estructura),
transcribiendo el siguiente algoritmo en el editor de C.
/* Lista los campos de una agenda construida en el programa */
#include <stdio.h>
#define N 3
main()
{
struct agenda
{
char nombre[25];
char telefono[10];
int edad;
};
struct agenda
amigos[N]={{"Pepe","913472314",18},{"Juan","915547623",19},{"Rosa","917456778",21}};
int i;
for (i=0; i<N; ++i)
{
printf("\nAmigo %s\t telfono %s\t edad %d",amigos[i].nombre,
amigos[i].telefono,amigos[i].edad);
}
printf("\n");
}

5. Accesar el subdirectorio donde se encuentra C.

60

Programacin Estruccturada Codificada

Procedimiento
6.
7.
8.
9.

Abrir el editor de C.
Transcribir el programa en el editor de C.Guardar el archivo que contiene el programa transcrito.
Compilar el programa.
De ser necesario, iniciar un proceso de depuracin del programa (correccin de errores) hasta cerciorarse
que el programa cumpla con el objetivo establecido.
10. Imprimir el resultado de la ejecucin del programa.
11. Repetir los procedimientos con asesora del PSP.

Nota: El instructor deber adecuar la prctica al equipo con el que se cuenta.


4
Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.

Programacin Estruccturada Codificada

61

Lista de cotejo de la prctica


Nmero 3:

Impresin de una agenda.

Nombre del alumno:


Instrucciones:

A continuacin se presentan los criterios que van a ser verificados


en el desempeo del alumno mediante la observacin del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo.
Desarrollo

No

No
Aplica

Aplic las medidas de seguridad e higiene.

Evit la manipulacin de lquidos cerca del equipo.

No introdujo objetos extraos en los dispositivos de disco,

No utiliz imanes cerca de discos flexibles, discos compactos del


equipo.

Limpi el rea de trabajo.

Dispuso del manual de lenguaje de programacin C.


1. Encender equipo de cmputo.
2. Abrir sesin de ambiente grfico.
3. Acces el subdirectorio donde se encuentra C.
4. Escribi un programa que imprima una lista de amigos guardados en una
agenda (tipo estructura), transcribiendo el algoritmo en el editor de C.
5. Acces el subdirectorio donde se encuentra C.
6. Abri el editor de C.
7. Transcribi el programa en el editor de C.
8. Guard el archivo que contiene el programa transcrito.
9. Compil el programa.
10. Inici un proceso de depuracin del programa (correccin de errores) hasta
cerciorarse que el programa cumpla con el objetivo establecido.
11. Imprimi el resultado de la ejecucin del programa.
12. Repeti los procedimientos con asesora del PSP.
4 Deposit los residuos recuperables.
Observaciones:

PSP:
Hora de
inicio:

62

Hora de
trmino:

Evaluacin:

Programacin Estruccturada Codificada

Unidad de aprendizaje:

Prctica nmero:

Nombre de la prctica:

Programa de longitudes y valores mnimos del


byte.

Propsito de la
prctica:

Al finalizar la prctica el alumno, realizar un programa para ver longitudes y


valores mximos y mnimos del byte con lenguaje de programacin C.

Escenario:

Laboratorio de
Informtica.

Duracin:

4 hrs.

Materiales
Software de lenguaje

de

programacin C.

Manual de C.

Maquinaria y equipo
Computadora (Pentium

Herramienta
II

como requerimiento mnimo).

Programacin Estruccturada Codificada

Impresora.

63

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
Disponer del manual de lenguaje de programacin C.
1.
2.
3.
4.

Encender equipo de cmputo.


Abrir sesin de ambiente grfico.
Accesar el subdirectorio donde se encuentra C.
Escribir un programa para ver las longitudes y valores mximos y mnimos en bytes de los tipos bsicos de
programacin en C, transcribiendo el siguiente algoritmo en el editor de C.
/* Muestra las longitudes en longitudes en bytes
y los valores mximos y mnimos de los tipos bsicos */
#include <stdio.h>
#include <limits.h>
#include <float.h>
main()
char a;
short int b;
int c;
long int d;
unsigned char e;
unsigned short int f;
unsigned int g;
unsigned long int h;
float i;
double j;
long double k;
printf ("Longitud de cada uno de los tipos basicos \n\n");
printf ("La longitud de char a= %d\n",sizeof(a));
printf ("La longitud de short int b= %d\n",sizeof(b));
printf ("La longitud de int c= %d\n",sizeof(c));
printf ("La longitud de long int d= %d\n",sizeof(d));
Accesar el subdirectorio donde se encuentra C.

64

Programacin Estruccturada Codificada

Procedimiento
printf ("La longitud de unsigned char e= %d\n",sizeof(e));
printf ("La longitud de unsigned short int f= %d\n",sizeof(f));
printf ("La longitud de unsigned int g= %d\n",sizeof(g));
printf ("La longitud de unsigned long int h= %d\n",sizeof(h));
printf ("La longitud de float i= %d\n",sizeof(i));
printf ("La longitud de double j= %d\n",sizeof(j));
printf ("La longitud de long double k= %d\n",sizeof(k));
printf("\nValores minimos y maximos de cada uno de los tipos\n\n");
printf ("Minimo y maximo de char a= %d\t\t%d\n",CHAR_MIN,CHAR_MAX);
printf ("Minimo y maximo de short int b=%d\t\t%d\n",SHRT_MIN,SHRT_MAX);
printf ("Minimo y maximo de int c= %d\t\t%d\n",INT_MIN,INT_MAX);
printf ("Minimo y maximo de long int d=%d\t\t%d\n",LONG_MIN,LONG_MAX);
printf ("Maximo de unsigned char e= %d\n",UCHAR_MAX);
printf ("Maximo de unsigned short int f= %d\n",USHRT_MAX);
printf ("Maximo de unsigned int g= %d\n",UINT_MAX);
printf ("Maximo de unsigned long int h= %d\n",ULONG_MAX);
printf ("Minimo y maximo de float i= %d\t\t%d\n",FLT_MIN,FLT_MAX);
printf ("Minimo y maximo de double j= %d\t\t%d\n",DBL_MIN,DBL_MAX);
printf ("Minimo y maximo de long double k=%d\t\t%d\n",LDBL_MIN,LDBL_MAX);
}
5.
6.
7.
8.
9.
10.

Accesar el subdirectorio donde se encuentra C.


Abrir el editor de C.
Transcribir el programa en el editor de C.
Guardar el archivo que contiene el programa transcrito.
Compilar el programa.
De ser necesario, iniciar un proceso de depuracin del programa (correccin de errores) hasta cerciorarse
que el programa cumpla con el objetivo establecido.
11. Imprimir el resultado de la ejecucin del programa.
12. Repetir los procedimientos con asesora del PSP.
4

Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.

Programacin Estruccturada Codificada

65

Lista de cotejo de la prctica


Nmero 4:

Programa de longitudes y valores mnimos del byte.

Nombre del alumno:


Instrucciones:

A continuacin se presentan los criterios que van a ser verificados


en el desempeo del alumno mediante la observacin del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo.
Desarrollo

No

No
Aplica

Aplic las medidas de seguridad e higiene.

Evit la manipulacin de lquidos cerca del equipo.

No introdujo objetos extraos en los dispositivos de disco,

No utiliz imanes cerca de discos flexibles, discos compactos del


equipo.

Limpi el rea de trabajo.

Dispuso del manual de lenguaje de programacin C.


1. Encendi equipo de cmputo.
2. Abri sesin de ambiente grfico.
3. Acces el subdirectorio donde se encuentra C.
4. Escribi un programa para ver las longitudes y valores mximos y mnimos
en bytes de los tipos bsicos de programacin en C, transcribiendo el
algoritmo en el editor de C.
5. Acces el subdirectorio donde se encuentra C.
6. Abri el editor de C.
7. Transcribi el programa en el editor de C.
8. Guard el archivo que contiene el programa transcrito.
9. Compil el programa.
10. Inici un proceso de depuracin del programa (correccin de errores) hasta
cerciorarse que el programa cumpla con el objetivo establecido.
11. Imprimi el resultado de la ejecucin del programa.
12. Repeti los procedimientos con asesora del PSP.
4 Deposit los residuos recuperables.

Observaciones:

PSP:
Hora de
inicio:

66

Hora de
trmino:

Evaluacin:

Programacin Estruccturada Codificada

Unidad de aprendizaje:

Prctica nmero:

Nombre de la prctica:

Programa de mensaje de saludo

Propsito de la
prctica:

Al finalizar la prctica el alumno, programar un algoritmo que imprima un


mensaje que pregunte su nombre y mande un saludo con lenguaje de
programacin C.

Escenario:

Laboratorio de
Informtica.

Duracin:

2 hrs.

Materiales
Software de lenguaje de

programacin C.

Manual de C.

Maquinaria y equipo
Computadora (Pentium II

Herramienta

como requerimiento mnimo).

Programacin Estruccturada Codificada

Impresora.

67

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
Disponer del manual de lenguaje de programacin C.
1.
2.
3.
4.

Encender equipo de cmputo.


Abrir sesin de ambiente grfico.
Accesar el subdirectorio donde se encuentra C.
Escribir un programa que imprima un mensaje de presentacin, pregunte como te llamas y salude,
transcribiendo el siguiente algoritmo en el editor de C.
/* Saludo */
#include <stdio.h>
main()
{
char nombre[20];
printf("Hola, me llamo Ordenador, y tu?\n");
scanf("%s",&nombre[0]);
printf("Me alegro de conocerte %s\n",nombre);
}

5.
6.
7.
8.
9.
10.

Accesar el subdirectorio donde se encuentra C.


Abrir el editor de C.
Transcribir el programa en el editor de C.
Guardar el archivo que contiene el programa transcrito.
Compilar el programa.
De ser necesario, iniciar un proceso de depuracin del programa (correccin de errores) hasta cerciorarse
que el programa cumpla con el objetivo establecido.
11. Imprimir el resultado de la ejecucin del programa.
12. Repetir los procedimientos con asesora del PSP.
4
Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.

68

Programacin Estruccturada Codificada

Programa de mensaje de saludo

Lista de cotejo de la prctica


Nmero 5:
Nombre del alumno:
Instrucciones:

A continuacin se presentan los criterios que van a ser verificados


en el desempeo del alumno mediante la observacin del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo.
Desarrollo

No

No
Aplica

Aplic las medidas de seguridad e higiene.

Evit la manipulacin de lquidos cerca del equipo.

No introdujo objetos extraos en los dispositivos de disco,

No utiliz imanes cerca de discos flexibles, discos compactos del


equipo.

Limpi el rea de trabajo.

Dispuso del manual de lenguaje de programacin C.


1. Encendi equipo de cmputo.
2. Abri sesin de ambiente grfico.
3. Acces el subdirectorio donde se encuentra C.
4. Escribi un programa que imprima un mensaje de presentacin, te pregunte
como te llamas y te salude, transcribiendo el algoritmo en el editor de C.
5. Acces el subdirectorio donde se encuentra C.
6. Abri el editor de C.
7. Transcribi el programa en el editor de C.
8. Guard el archivo que contiene el programa transcrito.
9. Compil el programa.
10. Inici un proceso de depuracin del programa (correccin de errores) hasta
cerciorarse que el programa cumpla con el objetivo establecido.
11. Imprimi el resultado de la ejecucin del programa.
12. Repeti los procedimientos con asesora del PSP.
4 Deposit los residuos recuperables.
Observaciones:

PSP:
Hora de
inicio:

Programacin Estruccturada Codificada

Hora de
trmino:

Evaluacin:

69

Unidad de aprendizaje:

Prctica nmero:

Nombre de la prctica:

Programa de presentacin

Propsito de la
prctica:

Al finalizar la prctica el alumno, realizar una presentacin que salude con


nombre y apellidos con lenguaje de programacin C.

Escenario:

Laboratorio de
Informtica.

Duracin:

2 hrs.

Materiales
Software de lenguaje de

programacin C.

70

Manual de C.

Maquinaria y equipo
Computadora (Pentium II

Herramienta

como requerimiento mnimo).

Impresora.

Programacin Estruccturada Codificada

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
Disponer del manual de lenguaje de programacin C.
1.
2.
3.
4.

Encender equipo de cmputo.


Abrir sesin de ambiente grfico.
Accesar el subdirectorio donde se encuentra C.
Escribir un programa que escriba un saludo de presentacin que salude con nombre y apellidos,
transcribiendo el siguiente algoritmo en el editor de C.
* Saludo con Nombre y apellido (utilizacin de gets en lugar de scanf) */
#include <stdio.h>
void contestar (char []);
main()
{
char nombre[20];
printf("Hola, me llamo Iagoba, y tu?\n");
gets(nombre);
contestar(nombre);
}
void contestar(char *nombre)
{
printf("Me alegro de conocerte %s\n",nombre);
}

5.
6.
7.
8.
9.
10.

Accesar el subdirectorio donde se encuentra C.


Abrir el editor de C.
Transcribir el programa en el editor de C.
Guardar el archivo que contiene el programa transcrito.
Compilar el programa.
De ser necesario, iniciar un proceso de depuracin del programa (correccin de errores) hasta cerciorarse
que el programa cumpla con el objetivo establecido.
11. Imprimir el resultado de la ejecucin del programa.
12. Repetir los procedimientos con asesora del PSP.
4
Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.

Programacin Estruccturada Codificada

71

Lista de cotejo de la prctica


Nmero 6:

Programa de presentacin

Nombre del alumno:


Instrucciones:

A continuacin se presentan los criterios que van a ser verificados


en el desempeo del alumno mediante la observacin del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo.
Desarrollo

No

No
Aplica

Aplic las medidas de seguridad e higiene.

Evit la manipulacin de lquidos cerca del equipo.

No introdujo objetos extraos en los dispositivos de disco,

No utiliz imanes cerca de discos flexibles, discos compactos del


equipo.

Limpi el rea de trabajo.

Dispuso del manual de lenguaje de programacin C.


1. Encendi equipo de cmputo.
2. Abri sesin de ambiente grfico.
3. Acces el subdirectorio donde se encuentra C.
4. Escribi un programa que imprima un mensaje de presentacin, pregunte
como te llamas y salude, transcribiendo el algoritmo en el editor de C.
5. Accedi el subdirectorio donde se encuentra C.
6. Abri el editor de C.
7. Transcribi el programa en el editor de C.
8. Guard el archivo que contiene el programa transcrito.
9. Compil el programa.
10. Inici un proceso de depuracin del programa (correccin de errores) hasta
cerciorarse que el programa cumpla con el objetivo establecido.
11. Imprimi el resultado de la ejecucin del programa.
12. Repeti los procedimientos con asesora del PSP.
4 Deposit los residuos recuperables.
Observaciones:

PSP:
Hora de
inicio:

72

Hora de
trmino:

Evaluacin:

Programacin Estruccturada Codificada

Unidad de aprendizaje:

Prctica nmero:

Nombre de la prctica:

Programa de calculo del rea de triangulo.

Propsito de la
prctica:

Al finalizar la prctica el alumno, deber calcular el rea de un triangul rectngulo


con lenguaje de programacin C.

Escenario:

Laboratorio de
Informtica.

Duracin:

2 hrs.

Materiales
Software de lenguaje

de

programacin C.

Manual de C.

Maquinaria y equipo
Computadora (Pentium

Herramienta
II

como requerimiento mnimo).

Programacin Estruccturada Codificada

Impresora.

73

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
Disponer del manual de lenguaje de programacin C.
1.
2.
3.
4.

Encender equipo de cmputo.


Abrir sesin de ambiente grfico.
Accesar el subdirectorio donde se encuentra C.
Escribir un programa que calcule el rea de un tringulo rectngulo, dada la altura y la base,
transcribiendo el siguiente algoritmo en el editor de C.
/* Area de un triangulo rectangulo */
#include <stdio.h>
main()
{
float altura, base;
double area;
printf("\nBase del triangulo = ");
scanf("%f",&base);
printf("\nAltura del triangulo = ");
scanf("%f",&altura);
area= 0.5 * (double) altura * base;
printf("\nArea = %g\n",area);
}

5.
6.
7.
8.
9.
10.

Accesar el subdirectorio donde se encuentra C.


Abrir el editor de C.
Transcribir el programa en el editor de C.
Guardar el archivo que contiene el programa transcrito.
Compilar el programa.
De ser necesario, iniciar un proceso de depuracin del programa (correccin de errores) hasta cerciorarse
que el programa cumpla con el objetivo establecido.
11. Imprimir el resultado de la ejecucin del programa.
13. Repetir los procedimientos con asesora del PSP.
4
Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.

74

Programacin Estruccturada Codificada

Programa de calculo del rea de triangulo.

Lista de cotejo de la prctica


Nmero 7:
Nombre del alumno:
Instrucciones:

A continuacin se presentan los criterios que van a ser verificados


en el desempeo del alumno mediante la observacin del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo.
Desarrollo

No

No
Aplica

Aplic las medidas de seguridad e higiene.

Evit la manipulacin de lquidos cerca del equipo.

No introdujo objetos extraos en los dispositivos de disco,

No utiliz imanes cerca de discos flexibles, discos compactos del


equipo.

Limpi el rea de trabajo.

Dispuso del manual de lenguaje de programacin C.


1. Encendi equipo de cmputo.
2. Abri sesin de ambiente grfico.
3. Acces el subdirectorio donde se encuentra C.
4. Escribi un programa que calcule el rea de un tringulo rectngulo, dada la
altura y la base, transcribiendo el algoritmo en el editor de C.
5. Acces el subdirectorio donde se encuentra C.
6. Abri el editor de C.
7. Transcribi el programa en el editor de C.
8. Guard el archivo que contiene el programa transcrito.
9. Compil el programa.
10. Inici un proceso de depuracin del programa (correccin de errores) hasta
cerciorarse que el programa cumpla con el objetivo establecido.
11. Imprimi el resultado de la ejecucin del programa.
12. Repeti los procedimientos con asesora del PSP.
4 Deposit los residuos recuperables.

Observaciones:

PSP:
Hora de
inicio:

Programacin Estruccturada Codificada

Hora de
trmino:

Evaluacin:

75

Unidad de aprendizaje:

Prctica nmero:

Nombre de la prctica:

Programa de nmeros menores.

Propsito de la
prctica:

Al finalizar la prctica el alumno, realizar un programa que pida el menor de los


nmeros pedidos al usuario con lenguaje de programacin C.

Escenario:

Laboratorio de
Informtica.

Duracin:

6 hrs.

Materiales
Software de lenguaje

de

programacin C.

76

Manual de C.

Maquinaria y equipo
Computadora (Pentium

Herramienta
II

como requerimiento mnimo).

Impresora.

Programacin Estruccturada Codificada

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
Disponer del manual de lenguaje de programacin C.
1.
2.
3.
4.

Encender equipo de cmputo.


Abrir sesin de ambiente grfico.
Accesar el subdirectorio donde se encuentra C.
Escribir un programa que halle el menor de dos nmeros pedidos al usuario, transcribiendo el siguiente
algoritmo en el editor de C.
/* Calculo del menor de dos nmeros dados */
#include <stdio.h>
main()
{
int menor, numero1, numero2;
printf("\nEscriba el primer numero y pulso INTRO: ");
scanf("%d",&numero1);
printf("\nEscriba el segundo numero y pulso INTRO: ");
scanf("%d",&numero2);
if (numero1 < numero2) menor=numero1;
else menor=numero2;
/* la sentencia if-else es equivalente a: menor=numero1<numero2 ? numero1 : numero2; */
printf("\nEl menor de %d y %d es %d\n",numero1, numero2, menor);
}

5.
6.
7.
8.
9.
10.

Accesar el subdirectorio donde se encuentra C.


Abrir el editor de C.
Transcribir el programa en el editor de C.
Guardar el archivo que contiene el programa transcrito.
Compilar el programa.
De ser necesario, iniciar un proceso de depuracin del programa (correccin de errores) hasta cerciorarse
que el programa cumpla con el objetivo establecido.
11. Imprimir el resultado de la ejecucin del programa.
12. Repetir los procedimientos con asesora del PSP.
4
Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.

Programacin Estruccturada Codificada

77

Lista de cotejo de la prctica


Nmero 8:

Programa de nmeros menores.

Nombre del alumno:


Instrucciones:

A continuacin se presentan los criterios que van a ser verificados


en el desempeo del alumno mediante la observacin del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo.
Desarrollo

No

No
Aplica

Aplic las medidas de seguridad e higiene.

Evit la manipulacin de lquidos cerca del equipo.

No introdujo objetos extraos en los dispositivos de disco,

No utiliz imanes cerca de discos flexibles, discos compactos del


equipo.

Limpi el rea de trabajo.

Dispuso del manual de lenguaje de programacin C.


1. Encendi equipo de cmputo.
2. Abri sesin de ambiente grfico.
3. Acces el subdirectorio donde se encuentra C.
4. Escribi un programa que halle el menor de dos nmeros pedidos al usuario,
transcribiendo el algoritmo en el editor de C.
5. Acces el subdirectorio donde se encuentra C.
6. Abri el editor de C.
7. Transcribi el programa en el editor de C.
8. Guard el archivo que contiene el programa transcrito.
9. Compil el programa.
10. Inici un proceso de depuracin del programa (correccin de errores) hasta
cerciorarse que el programa cumpla con el objetivo establecido.
11. Imprimi el resultado de la ejecucin del programa.
12. Repiti los procedimientos con asesora del PSP.
4 Deposit los residuos recuperables.
Observaciones:

PSP:
Hora de
inicio:

78

Hora de
trmino:

Evaluacin:

Programacin Estruccturada Codificada

Unidad de aprendizaje:

Prctica nmero:

Nombre de la prctica:

Programa de repeticin de carcter.

Propsito de la
prctica:

Al finalizar la prctica el alumno, realizar un programa de repeticiones de carcter


en lenguaje de programacin C.

Escenario:

Laboratorio de
Informtica.

Duracin:

6 hrs.

Materiales
Software de lenguaje

de

programacin C.

Manual de C.

Maquinaria y equipo
Computadora (Pentium

Herramienta
II

como requerimiento mnimo).

Programacin Estruccturada Codificada

Impresora.

79

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
Disponer del manual de lenguaje de programacin C.
1.
2.
3.
4.

Encender equipo de cmputo.


Abrir sesin de ambiente grfico.
Accesar el subdirectorio donde se encuentra C.
Escribir un programa que pida al usuario un carcter y un nmero de repeticiones. Luego imprima el
carcter el nmero de veces especificado, transcribiendo el siguiente algoritmo en el editor de C.
/* Repetir un carcter un numero de veces */
main()
{
char ch;
int num_rep;
printf("\nEscriba el caracter a repetir: ");
scanf("%c",&ch);
printf("\nEscriba el numero de repeticiones: ");
scanf("%d",&num_rep);
while (num_rep>0)
{
printf("%c",ch);
--num_rep;
}
printf("\n");

}
Accesar el subdirectorio donde se encuentra C.
Abrir el editor de C.
Transcribir el programa en el editor de C.
Guardar el archivo que contiene el programa transcrito.
Compilar el programa.
De ser necesario, iniciar un proceso de depuracin del programa (correccin de errores) hasta cerciorarse
que el programa cumpla con el objetivo establecido.
11. Imprimir el resultado de la ejecucin del programa.
12. Repetir los procedimientos con asesora del PSP.
4
Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.
5.
6.
7.
8.
9.
10.

80

Programacin Estruccturada Codificada

Programa de repeticin de carcter.

Lista de cotejo de la prctica


Nmero 9:
Nombre del alumno:
Instrucciones:

A continuacin se presentan los criterios que van a ser verificados


en el desempeo del alumno mediante la observacin del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo.
Desarrollo

No

No
Aplica

Aplic las medidas de seguridad e higiene.

Evit la manipulacin de lquidos cerca del equipo.

No introdujo objetos extraos en los dispositivos de disco,

No utiliz imanes cerca de discos flexibles, discos compactos del


equipo.

Limpi el rea de trabajo.

Dispuso del manual de lenguaje de programacin C.


1. Encendi equipo de cmputo.
2. Abri sesin de ambiente grfico.
3. Acces el subdirectorio donde se encuentra C.
4. Escribi un programa que pida al usuario un carcter y un nmero de
repeticiones. Luego imprima el carcter el nmero de veces especificado,
transcribiendo el algoritmo en el editor de C.
5. Acces el subdirectorio donde se encuentra C.
6. Abri el editor de C.
7. Transcribi el programa en el editor de C.
8. Guard el archivo que contiene el programa transcrito.
9. Compil el programa.
10. Inici un proceso de depuracin del programa (correccin de errores) hasta
cerciorarse que el programa cumpla con el objetivo establecido.
11. Imprimi el resultado de la ejecucin del programa.
12. Repiti los procedimientos con asesora del PSP.
4 Deposit los residuos recuperables.

Observaciones:

PSP:
Hora de
inicio:

Programacin Estruccturada Codificada

Hora de
trmino:

Evaluacin:

81

Unidad de aprendizaje:

Prctica nmero:

10

Nombre de la prctica:

Programa de tabla con potencias.

Propsito de la
prctica:

Al finalizar la prctica el alumno, realizar una tabla de cuatro potencias del 1 al 10


con lenguaje de programacin C.

Escenario:

Laboratorio de
Informtica.

Duracin:

6 hrs.

Materiales
Software de lenguaje

de

programacin C.

82

Manual de C.

Maquinaria y equipo
Computadora (Pentium

Herramienta
II

como requerimiento mnimo).

Impresora.

Programacin Estruccturada Codificada

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
Disponer del manual de lenguaje de programacin C.
1.
2.
3.
4.

Encender equipo de cmputo.


Abrir sesin de ambiente grfico.
Accesar el subdirectorio donde se encuentra C.
Escribir un programa que imprima una tabla con las cuatro primeras potencias de los nmeros 1 a 10,
transcribiendo el siguiente algoritmo en el editor de C.
/* Imprime la tabla de las primera 4 potencias del 1 al 10 */
#include <stdio.h>
main()
{
int n;
puts(" numero\t exp2\t exp3\t exp4");
puts("------\t-----\t-----\t-----");
for (n=0; n<=10; ++n)
printf("%2d\t%5d\t%5d\t%5d\n",n,n*n,n*n*n,n*n*n*n);
}

5.
6.
7.
8.
9.
10.

Accesar el subdirectorio donde se encuentra C.


Abrir el editor de C.
Transcribir el programa en el editor de C.
Guardar el archivo que contiene el programa transcrito.
Compilar el programa.
De ser necesario, iniciar un proceso de depuracin del programa (correccin de errores) hasta cerciorarse
que el programa cumpla con el objetivo establecido.
11. Imprimir el resultado de la ejecucin del programa.
12. Repetir los procedimientos con asesora del PSP.
4
Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.

Programacin Estruccturada Codificada

83

Lista de cotejo de la prctica


Nmero 10:

Programa de tabla con potencias.

Nombre del alumno:


Instrucciones:

A continuacin se presentan los criterios que van a ser verificados


en el desempeo del alumno mediante la observacin del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo.
Desarrollo

No

No
Aplica

Aplic las medidas de seguridad e higiene.

Evit la manipulacin de lquidos cerca del equipo.

No introdujo objetos extraos en los dispositivos de disco,

No utiliz imanes cerca de discos flexibles, discos compactos del


equipo.

Limpi el rea de trabajo.

Dispuso del manual de lenguaje de programacin C.


1. Encender equipo de cmputo.
2. Abri sesin de ambiente grfico.
3. Acces el subdirectorio donde se encuentra C.
4. Escribi un programa que imprima una tabla con las cuatro primeras
potencias de los nmeros 1 a 10, transcribiendo el algoritmo en el editor de
C.
5. Acces el subdirectorio donde se encuentra C.
6. Abri el editor de C.
7. Transcribi el programa en el editor de C.
8. Guard el archivo que contiene el programa transcrito.
9. Compil el programa.
10. Inici un proceso de depuracin del programa (correccin de errores) hasta
cerciorarse que el programa cumpla con el objetivo establecido.
11. Imprimi el resultado de la ejecucin del programa.
12. Repeti los procedimientos con asesora del PSP.
4 Deposit los residuos recuperables.

Observaciones:

PSP:
Hora de
inicio:

84

Hora de
trmino:

Evaluacin:

Programacin Estruccturada Codificada

Unidad de aprendizaje:

Prctica nmero:

11

Nombre de la prctica:

Programa de clculo de factorial.

Propsito de la
prctica:

Al finalizar la prctica el alumno, realizar un programa que calcule el factorial de


un nmero con lenguaje de programacin C.

Escenario:

Laboratorio de
Informtica.

Duracin:

6 hrs.

Materiales
Software de lenguaje

de

programacin C.

Manual de C.

Maquinaria y equipo
Computadora (Pentium

Herramienta
II

como requerimiento mnimo).

Programacin Estruccturada Codificada

Impresora.

85

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
Disponer del manual de lenguaje de programacin C.
1.
2.
3.
4.

Encender equipo de cmputo.


Abrir sesin de ambiente grfico.
Accesar el subdirectorio donde se encuentra C.
Escribir un programa que calcule el factorial de un nmero, transcribiendo el siguiente algoritmo en el
editor de C.
/* Factorial de un numero */
#include <stdio.h>
main()
{
int i, numero, factorial=1;
printf("\nEscriba un numero entero para calcular su factorial: ");
scanf("%d",&numero);
for (i=numero; i>1; --i) factorial *= i;
printf("\n%d! = %d\n",numero,factorial);
}

5.
6.
7.
8.
9.
10.

Accesar el subdirectorio donde se encuentra C.


Abrir el editor de C.
Transcribir el programa en el editor de C.
Guardar el archivo que contiene el programa transcrito.
Compilar el programa.
De ser necesario, iniciar un proceso de depuracin del programa (correccin de errores) hasta cerciorarse
que el programa cumpla con el objetivo establecido.
11. Imprimir el resultado de la ejecucin del programa.
12. Repetir los procedimientos con asesora del PSP.
4
Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.

86

Programacin Estruccturada Codificada

Programa de clculo de factorial.

Lista de cotejo de la prctica


Nmero 11:
Nombre del alumno:
Instrucciones:

A continuacin se presentan los criterios que van a ser verificados


en el desempeo del alumno mediante la observacin del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo.
Desarrollo

No

No
Aplica

Aplic las medidas de seguridad e higiene.

Evit la manipulacin de lquidos cerca del equipo.

No introdujo objetos extraos en los dispositivos de disco,

No utiliz imanes cerca de discos flexibles, discos compactos del


equipo.

Limpi el rea de trabajo.

Dispuso del manual de lenguaje de programacin C.


1. Encendi equipo de cmputo.
2. Abri sesin de ambiente grfico.
3. Acces el subdirectorio donde se encuentra C.
4. Escribi un programa que calcule el factorial de un nmero, transcribiendo el
algoritmo en el editor de C.
5. Acces el subdirectorio donde se encuentra C.
6. Abri el editor de C.
7. Transcribi el programa en el editor de C.
8. Guard el archivo que contiene el programa transcrito.
9. Compilo el programa.
10. Inici un proceso de depuracin del programa (correccin de errores) hasta
cerciorarse que el programa cumpla con el objetivo establecido.
11. Imprimi el resultado de la ejecucin del programa.
12. Repiti los procedimientos con asesora del PSP.
4 Deposit los residuos recuperables.

Observaciones:

PSP:
Hora de
inicio:

Programacin Estruccturada Codificada

Hora de
trmino:

Evaluacin:

87

Unidad de aprendizaje:

Prctica nmero:

12

Nombre de la prctica:

Programa de tabla de conversiones.

Propsito de la
prctica:

Al finalizar la prctica el alumno, realizar una tabla de conversiones con lenguaje


de programacin C.

Escenario:

Laboratorio de
Informtica.

Duracin:

2 hrs.

Materiales
Software de lenguaje

de

programacin C.

88

Manual de C.

Maquinaria y equipo
Computadora (Pentium

Herramienta
II

como requerimiento mnimo).

Impresora.

Programacin Estruccturada Codificada

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
Disponer del manual de lenguaje de programacin C.
1.
2.
3.
4.

Encender equipo de cmputo.


Abrir sesin de ambiente grfico.
Accesar el subdirectorio donde se encuentra C.
Escribir un programa que muestre una tabla de conversiones de temperatura de grados Farenheit a grados
Celsius, de 0F a 300F de 20 en 20F, transcribiendo el siguiente algoritmo en el editor de C.
/* Sistema de temperaturas */
#include <stdio.h>
main()
{
int i;
float c;
for (i=0;i<=300;i+=20)
{
c=(5./9)*(i-32);
printf("%3d grados Farenheit equivalen a %4.4f grados Celsius\n",i,c);
}
}

5.
6.
7.
8.
9.
10.

Accesar el subdirectorio donde se encuentra C.


Abrir el editor de C.
Transcribir el programa en el editor de C.
Guardar el archivo que contiene el programa transcrito.
Compilar el programa.
De ser necesario, iniciar un proceso de depuracin del programa (correccin de errores) hasta cerciorarse
que el programa cumpla con el objetivo establecido.
11. Imprimir el resultado de la ejecucin del programa.
12. Repetir los procedimientos con asesora del PSP.
4
Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.

Programacin Estruccturada Codificada

89

Lista de cotejo de la prctica


Nmero 12:

Programa de tabla de conversiones.

Nombre del alumno:


Instrucciones:

A continuacin se presentan los criterios que van a ser verificados


en el desempeo del alumno mediante la observacin del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo.
Desarrollo

No

No
Aplica

Aplic las medidas de seguridad e higiene.


Evit la manipulacin de lquidos cerca del equipo.
No introdujo objetos extraos en los dispositivos de disco,
No utiliz imanes cerca de discos flexibles, discos compactos del equipo.
Limpi el rea de trabajo.
Dispuso del manual de lenguaje de programacin C.
1. Encendi equipo de cmputo.
2. Abri sesin de ambiente grfico.
3. Acces el subdirectorio donde se encuentra C.
4. Escribi un programa que muestre una tabla de conversiones de
temperatura de grados Farenheit a grados Celsius, de 0F a 300F de 20 en
20F, transcribiendo el algoritmo en el editor de C.
5. Acces el subdirectorio donde se encuentra C.
6. Abri el editor de C.
7. Transcribi el programa en el editor de C.
8. Guard el archivo que contiene el programa transcrito.
9. Compil el programa.
10. Inici un proceso de depuracin del programa (correccin de errores) hasta
cerciorarse que el programa cumpla con el objetivo establecido.
11. Imprimi el resultado de la ejecucin del programa.
12. Repeti los procedimientos con asesora del PSP.
4 Deposit los residuos recuperables.
Observaciones:

PSP:
Hora de
inicio:

90

Hora de
trmino:

Evaluacin:

Programacin Estruccturada Codificada

Unidad de aprendizaje:

Prctica nmero:

13

Nombre de la prctica:

Programa de tabla de ASCII.

Propsito de la
prctica:

Al finalizar la prctica el alumno, deber mostrar una tabla de ASCII con lenguaje
de programacin C.

Escenario:

Laboratorio de
Informtica.

Duracin:

2 hrs.

Materiales
Software de lenguaje

de

programacin C.

Manual de C.

Maquinaria y equipo
Computadora (Pentium

Herramienta
II

como requerimiento mnimo).

Programacin Estruccturada Codificada

Impresora.

91

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
Disponer del manual de lenguaje de programacin C.
1.
2.
3.
4.

Encender equipo de cmputo.


Abrir sesin de ambiente grfico.
Accesar el subdirectorio donde se encuentra C.
Escribir un programa que muestre la tabla ASCII, transcribiendo el siguiente algoritmo en el editor de C.
/* Tabla ASCII */
#include <stdio.h>
#define INI 33
#define FIL 15
#define COL 20
main()
int k, kk, i;
for (k=1; k<FIL; k++)
if (k==1) printf ("\t\t\t\t TABLA ASCII\n\n");
else printf("\n");
for (i=1; i<=COL; i++)
{
kk=INI+(k-1)*COL+i;
if (kk>255) break;
printf(" %c",kk);
}
printf("\n");
for (i=1; i<=COL; i++)
{
kk=INI+(k-1)*COL+i;
if (kk>255) return(1);
if (kk<100) printf(" %d",kk);
5. Accesar el subdirectorio donde se encuentra C.
6. Abrir el editor de C.

92

Programacin Estruccturada Codificada

Procedimiento
7.
8.
9.
10.

Transcribir el programa en el editor de C.


Guardar el archivo que contiene el programa transcrito.
Compilar el programa.
De ser necesario, iniciar un proceso de depuracin del programa (correccin de errores) hasta cerciorarse
que el programa cumpla con el objetivo establecido.
11. Imprimir el resultado de la ejecucin del programa.
12. Repetir los procedimientos con asesora del PSP.
4

Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.

Programacin Estruccturada Codificada

93

Lista de cotejo de la prctica


Nmero 13:

Programa de Tabla de ASCII.

Nombre del alumno:


Instrucciones:

A continuacin se presentan los criterios que van a ser verificados


en el desempeo del alumno mediante la observacin del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo.
Desarrollo

No

No
Aplica

Aplic las medidas de seguridad e higiene.

Evit la manipulacin de lquidos cerca del equipo.

No introdujo objetos extraos en los dispositivos de disco,

No utiliz imanes cerca de discos flexibles, discos compactos del


equipo.

Limpi el rea de trabajo.

Dispuso del manual de lenguaje de programacin C.


1. Encendi equipo de cmputo.
2. Abri sesin de ambiente grfico.
3. Acces el subdirectorio donde se encuentra C.
4. Escribi un programa que muestre la tabla ASCII, transcribiendo el algoritmo
en el editor de C.
5. Acces el subdirectorio donde se encuentra C.
6. Abri el editor de C.
7. Transcribi el programa en el editor de C.
8. Guard el archivo que contiene el programa transcrito.
9. Compil el programa.
10. Inici un proceso de depuracin del programa (correccin de errores) hasta
cerciorarse que el programa cumpla con el objetivo establecido.
11. Imprimi el resultado de la ejecucin del programa.
12. Repiti los procedimientos con asesora del PSP.
4 Deposit los residuos recuperables.

Observaciones:

PSP:
Hora de
inicio:

94

Hora de
trmino:

Evaluacin:

Programacin Estruccturada Codificada

Unidad de aprendizaje:

Prctica nmero:

14

Nombre de la prctica:

Programa de cantidad mnima.

Propsito de la
prctica:

Al finalizar la prctica el alumno, deber mostrar la cantidad mnima de las


monedas con lenguaje de programacin C.

Escenario:

Laboratorio de
Informtica.

Duracin:

3 hrs.

Materiales
Software de lenguaje

de

programacin C.

Manual de C.

Maquinaria y equipo
Computadora (Pentium

Herramienta
II

como requerimiento mnimo).

Programacin Estruccturada Codificada

Impresora.

95

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
Disponer del manual de lenguaje de programacin C.
1.
2.
3.
4.

Encender equipo de cmputo.


Abrir sesin de ambiente grfico.
Accesar el subdirectorio donde se encuentra C.
Escribir un programa que dndole el importe exacto de una cantidad te indica el mnimo nmero de
monedas que podras tener. Las monedas son de 1, 5, 10, 25, 50, 100, 200 y 500 pesos, transcribiendo el
siguiente algoritmo en el editor de C.
/* Cambio optimo de monedas */
#include <stdio.h>
#define LIM 8
int monedas[LIM]= {500, 200, 100, 50, 25, 10, 5, 1};
main()
{
int num, cantidad, numonedas;
printf ("Introduzca el importe exacto: ");
scanf ("%d", &cantidad);
printf ("El cambio optimo es el siguiente: \n");
for (num=0; num<LIM; num++)
{
numonedas=cantidad/monedas[num];
if (numonedas != 0) printf ("%d de %d.\n", numonedas, monedas[num]);
cantidad= cantidad % monedas[num];
}

5.
6.
7.
8.
9.
10.

Accesar el subdirectorio donde se encuentra C.


Abrir el editor de C.
Transcribir el programa en el editor de C.
Guardar el archivo que contiene el programa transcrito.
V Compilar el programa.
De ser necesario, iniciar un proceso de depuracin del programa (correccin de errores) hasta cerciorarse
que el programa cumpla con el objetivo establecido.
11. Imprimir el resultado de la ejecucin del programa.
12. Repetir los procedimientos con asesora del PSP.
4

96

Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.

Programacin Estruccturada Codificada

Programa de cantidad mnima.

Lista de cotejo de la prctica


Nmero 14:
Nombre del alumno:
Instrucciones:

A continuacin se presentan los criterios que van a ser verificados


en el desempeo del alumno mediante la observacin del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo.
Desarrollo

No

No
Aplica

Aplic las medidas de seguridad e higiene.

Evit la manipulacin de lquidos cerca del equipo.

No introdujo objetos extraos en los dispositivos de disco,

No utiliz imanes cerca de discos flexibles, discos compactos del


equipo.

Limpi el rea de trabajo.

Dispuso del manual de lenguaje de programacin C.


1. Encendi equipo de cmputo.
2. Abri sesin de ambiente grfico.
3. Acces el subdirectorio donde se encuentra C.
4. Escribi un programa que dndole el importe exacto de una cantidad te
indica el mnimo nmero de monedas que podras tener. Las monedas son
de 1, 5, 10, 25, 50, 100, 200 y 500 pesos, transcribiendo el algoritmo en el
editor de C.
5. Acces el subdirectorio donde se encuentra C.
6. Abri el editor de C.
7. Transcribi el programa en el editor de C.
8. Guard el archivo que contiene el programa transcrito.
9. Compil el programa.
10. Iniciar un proceso de depuracin del programa (correccin de errores) hasta
cerciorarse que el programa cumpla con el objetivo establecido.
11. Imprimi el resultado de la ejecucin del programa.
12. Repiti los procedimientos con asesora del PSP.
4 Deposit los residuos recuperables.
Observaciones:

PSP:
Hora de
inicio:

Programacin Estruccturada Codificada

Hora de
trmino:

Evaluacin:

97

Unidad de aprendizaje:

Prctica nmero:

15

Nombre de la prctica:

Programa de clculo de vector.

Propsito de la
prctica:

Al finalizar la prctica el alumno, realizar un vector por mtodo de la burbuja con


lenguaje de programacin C.

Escenario:

Laboratorio de
Informtica.

Duracin:

6 hrs.

Materiales
Software de lenguaje

de

programacin C.

98

Manual de C.

Maquinaria y equipo
Computadora (Pentium

Herramienta
II

como requerimiento mnimo).

Impresora.

Programacin Estruccturada Codificada

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
Disponer del manual de lenguaje de programacin C.
1.
2.
3.
4.

Encender equipo de cmputo.


Abrir sesin de ambiente grfico.
Accesar el subdirectorio donde se encuentra C.
Escribir un programa que ordene un vector (de dimensin mxima 15) por el mtodo de la burbuja,
transcribiendo el siguiente algoritmo en el editor de C.
/* Algoritmo de la burbuja (ordenacin de un vector) */
#include <stdio.h>
#define LIM 15
main ()
{
int i=0, j, tamanyo, aux;
int lista[LIM];printf("Longitud del vector a ordenar ");
scanf ("%d",&tamanyo);
if (tamanyo > LIM)
{
printf("El limite del vector se ha excedido");
printf(", por favor cambie el limite en el codigo\n");
return;
}
while (i<tamanyo)
i++;
printf("Numero %d: ",i);
scanf("%d",&lista[i-1]);
printf("\n El vector introducido es el siguiente:\n");
for (i=0; i<tamanyo; i++) printf("%d ",lista[i]);
for (i=0; i<tamanyo-1; i++)
for (j=i+1; j<tamanyo; j++)
if (lista[i] > lista[j])
aux=lista[i];
lista[i]=lista[j];
lista[j]=aux;
printf("\n El vector ordenado es el siguiente:\n");
for (i=0; i<tamanyo; i++) printf("%d ",lista[i]);
printf("\n");
scanf ("%d",&tamanyo);
if (tamanyo > LIM)

Programacin Estruccturada Codificada

99

Procedimiento

5.
6.
7.
8.
9.
10.

printf("El limite del vector se ha excedido");


printf(", por favor cambie el limite en el codigo\n");
return;
while (i<tamanyo)
i++;
printf("Numero %d: ",i);
scanf("%d",&lista[i-1]);
printf("\n El vector introducido es el siguiente:\n");
for (i=0; i<tamanyo; i++) printf("%d ",lista[i]);
for (i=0; i<tamanyo-1; i++)
for (j=i+1; j<tamanyo; j++)
aux=lista[i];
lista[i]=lista[j];
lista[j]=aux;
printf("\n El vector ordenado es el siguiente:\n");
for (i=0; i<tamanyo; i++) printf("%d ",lista[i]);
printf("\n");
printf("Longitud del vector a ordenar ");
scanf ("%d",&tamanyo);
if (tamanyo > LIM)
printf("El limite del vector se ha excedido");
printf(", por favor cambie el limite en el codigo\n");
return;
while (i<tamanyo)
if (lista[i] > lista[j])
aux=lista[i];
lista[i]=lista[j];
lista[j]=aux;
printf("\n El vector ordenado es el siguiente:\n");
for (i=0; i<tamanyo; i++) printf("%d ",lista[i]);
printf("\n");

Accesar el subdirectorio donde se encuentra C.


Abrir el editor de C.
Transcribir el programa en el editor de C.
Guardar el archivo que contiene el programa transcrito.
Compilar el programa.
De ser necesario, iniciar un proceso de depuracin del programa (correccin de errores) hasta cerciorarse
que el programa cumpla con el objetivo establecido.
11. Repetir los procedimientos con asesora del PSP.
4
Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.

100

Programacin Estruccturada Codificada

Programa de clculo de vector.

Lista de cotejo de la prctica


Nmero 15:
Nombre del alumno:
Instrucciones:

A continuacin se presentan los criterios que van a ser verificados


en el desempeo del alumno mediante la observacin del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo.
Desarrollo

No

No
Aplica

Aplic las medidas de seguridad e higiene.

Evit la manipulacin de lquidos cerca del equipo.

No introdujo objetos extraos en los dispositivos de disco,

No utiliz imanes cerca de discos flexibles, discos compactos del


equipo.

Limpi el rea de trabajo.

Dispuso del manual de lenguaje de programacin C.


1. Encendi equipo de cmputo.
2. Abri sesin de ambiente grfico.
3. Acces el subdirectorio donde se encuentra C.
4. Escribi un programa que ordene un vector (de dimensin mxima 15) por el
mtodo de la burbuja, transcribiendo el algoritmo en el editor de C.
5. Acces el subdirectorio donde se encuentra C.
6. Abri el editor de C.
7. Transcribi el programa en el editor de C.
8. Guard el archivo que contiene el programa transcrito.
9. Compil el programa.
10. Inici un proceso de depuracin del programa (correccin de errores) hasta
cerciorarse que el programa cumpla con el objetivo establecido.
11. Imprimi el resultado de la ejecucin del programa.
12. Repiti los procedimientos con asesora del PSP.
4 Deposit los residuos recuperables.
Observaciones:

PSP:
Hora de
inicio:

Programacin Estruccturada Codificada

Hora de
trmino:

Evaluacin:

101

Unidad de aprendizaje:

Prctica nmero:

16

Nombre de la prctica:

Uso de sentencia if-else.

Propsito de la
prctica:

Al finalizar la prctica el alumno, aplicar la sentencia if-else con el lenguaje de


programacin C.

Escenario:

Laboratorio de
Informtica.

Duracin:

6 hrs.

Software

Materiales
de lenguaje

programacin C.

de

Maquinaria y equipo
Computadora (Pentium II como

Herramienta

requerimiento mnimo).

Manual de C.

102

Programacin Estruccturada Codificada

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
Disponer del manual de lenguaje de programacin C.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
4

Encender equipo de cmputo.


Abrir sesin de ambiente grfico.
Emular MS-DOS, haciendo clic en su icono correspondiente.
Escribir un programa que emplee la sentencia if-else para determinar cundo un dgito escrito por el
usuario es par o impar e imprimir un mensaje que indique qu tipo de dgito fue el que introdujo el
usuario.
Elaborar en borrador del programa en lenguaje C para resolver el ejercicio propuesto.
Realizar una prueba de escritorio.
Accesar el subdirectorio donde se encuentra C.
Abrir el editor de C.
Transcribir el programa en el editor de C.
Guardar el archivo que contiene el programa transcrito.
Compilar el programa.
De ser necesario, iniciar un proceso de depuracin del programa (correccin de errores) hasta cerciorarse
que el programa cumpla con el objetivo establecido.
Repetir los procedimientos con asesora del PSP.
Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.

Programacin Estruccturada Codificada

103

Lista de cotejo de la prctica


Nmero 16:

Uso de sentencia if-else.

Nombre del alumno:


Instrucciones:

A continuacin se presentan los criterios que van a ser verificados


en el desempeo del alumno mediante la observacin del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo

Desarrollo

No

No
Aplica

Aplic las medidas de seguridad e higiene.


Evit la manipulacin de lquidos cerca del equipo.
No introdujo objetos extraos en los dispositivos de disco,
No utiliz imanes cerca de discos flexibles, discos compactos del equipo.
Limpi el rea de trabajo.
Dispuso del manual de lenguaje de programacin C.
1. Encender equipo de cmputo.
2. Abrir sesin de ambiente grfico.
3. Emul MS-DOS, haciendo clic en su icono correspondiente.
4. Escribi un programa que emplee la sentencia if-else para determinar
cundo un dgito escrito por el usuario es par o impar e imprimir un
mensaje que indique qu tipo de dgito fue el que introdujo el usuario.
5. Elabor en borrador del programa en lenguaje C para resolver el ejercicio
propuesto.
6. Realiz una prueba de escritorio.
7. Acces el subdirectorio donde se encuentra C.
8. Abri el editor de C.
9. Transcribi el programa en el editor de C.
10. Guard el archivo que contiene el programa transcrito.
11. Compil el programa.
12. ,Inici un proceso de depuracin del programa (correccin de errores) hasta
cerciorarse que el programa cumpla con el objetivo establecido.
13. Repiti los procedimientos con asesora del PSP.
4 Deposit los residuos recuperables.
Observaciones:

PSP:
Hora de
inicio:

104

Hora de
trmino:

Evaluacin:

Programacin Estruccturada Codificada

Unidad de aprendizaje:

Prctica nmero:

17

Nombre de la prctica:

Uso de sentencia bucle While

Propsito de la
prctica:

Al finalizar la prctica el alumno, aplicar el bucle while con el lenguaje de


programacin C.

Escenario:

Laboratorio de
Informtica.

Duracin:

6 hrs.

Software

Materiales
de lenguaje

de

Maquinaria y equipo
Computadora (Pentium II como

programacin C.

Herramienta

requerimiento mnimo).

Manual de C.

Programacin Estruccturada Codificada

105

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
Disponer del manual de lenguaje de programacin C.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.

Encender equipo de cmputo.


Abrir sesin de ambiente grfico.
Emular MS-DOS, haciendo clic en su icono correspondiente.
Escribir un programa que emplee el bucle while para controlar los clculos y la impresin de todas las
potencias de 2 empezando en 0 y terminando en 2 elevado a 8.
Elaborar en borrador del programa en lenguaje C para resolver el ejercicio propuesto.
Realizar una prueba de escritorio.
Accesar el subdirectorio donde se encuentra C.
Abrir el editor de C.
Transcribir el programa en el editor de C.
Guardar el archivo que contiene el programa transcrito.
Compilar el programa.
De ser necesario, iniciar un proceso de depuracin del programa (correccin de errores) hasta cerciorarse que
el programa cumpla con el objetivo establecido.
Apagar el equipo de cmputo.
Repetir los procedimientos con asesora del PSP.

4 Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.

106

Programacin Estruccturada Codificada

Lista de cotejo de la prctica


Nmero 17:

Uso de sentencia bucle While.

Nombre del alumno:


Instrucciones:

A continuacin se presentan los criterios que van a ser verificados


en el desempeo del alumno mediante la observacin del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo.
Desarrollo

No

No
Aplica

Aplic las medidas de seguridad e higiene.


Evit la manipulacin de lquidos cerca del equipo.
No introdujo objetos extraos en los dispositivos de disco,
No utiliz imanes cerca de discos flexibles, discos compactos del equipo.
Limpi el rea de trabajo.
Dispuso del manual de lenguaje de programacin C.
1. Encendi equipo de cmputo.
2. Abri sesin de ambiente grfico.
3. Emul MS-DOS, haciendo clic en su icono correspondiente.
4. Escribi un programa que emplee el bucle while para controlar los clculos y
la impresin de todas las potencias de 2 empezando en 0 y terminando en 2
elevado a 8.
5. Elabor en borrador del programa en lenguaje C para resolver el ejercicio
propuesto.
6. Realiz una prueba de escritorio.
7. Acces el subdirectorio donde se encuentra C.
8. Abri el editor de C.
9. Transcribi el programa en el editor de C.
10. Guard el archivo que contiene el programa transcrito.
11. Compil el programa.
12. Inici un proceso de depuracin del programa (correccin de errores) hasta
cerciorarse que el programa cumpla con el objetivo establecido.
13. Apag el equipo de cmputo.
14. Repiti los procedimientos con asesora del PSP.
4 Deposit los residuos recuperables disponiendo de 3 botes de reciclaje
tonner, discos y papel..
Observaciones:

PSP:
Hora de
inicio:
Programacin Estruccturada Codificada

Hora de
trmino:

Evaluacin:

107

RESUMEN
C es un lenguaje de programacin desarrollado en 1972 por el estadounidense Dennis
Ritchie en los Laboratorios Bell. Debe su nombre a que su predecesor inmediato haba sido
llamado lenguaje de programacin B. Aunque muchos consideran que C es un lenguaje
ensamblador ms independiente de la mquina que un lenguaje de alto nivel. Su estrecha
asociacin con el sistema operativo UNIX, su enorme popularidad y su homologacin por el
American National Standards Institute (ANSI) lo han convertido quiz en lo ms cercano a
un lenguaje de programacin estandarizado en el sector de microcomputadoraes o
microcomputadoras y estaciones de trabajo.
Fue a partir de 1990 cuando se extendi su uso, tanto como lenguaje para el desarrollo de
aplicaciones como para sistemas operativos. Muy ligado a UNIX en sus orgenes, su uso es,
hoy da, prcticamente general. Las versiones ms utilizadas en computadoraes personales
son Visual C++ de Microsoft y C++ Builder de Borland (actualmente Inprise Corp.).
Tambin ha tenido una gran influencia en el desarrollo del lenguaje JAVA, con el que
mantiene similitudes en cuanto a la sintaxis y estructura de la programacin.
Sistema informtico
Un sistema informtico suele estar compuesto por una unidad central de proceso (CPU),
dispositivos de entrada, dispositivos de almacenamiento y dispositivos de salida. La CPU
incluye una unidad aritmtico-lgica (ALU), registros, seccin de control y bus lgico. La
unidad aritmtico-lgica efecta las operaciones aritmticas y lgicas. Los registros
almacenan los datos y los resultados de las operaciones
Los Elementos utilizados en C para la elaboracaion de un programa se conforman por:
Operadores, Expresiones, Operadores y Expresiones Lgicos
En C, las sentencias se ejecutan sucesivamente una tras otra. Esto define un camino o
direccin segn la cual se va desarrollado el programa. Sin embargo, habr momentos en
que el programa deba ejecutar determinadas partes dependiendo del estado en el que se
halle el programa, o de las variables externas.
La principal particularidad que posee C es el manejo de rutinas que controlan el flujo de
datos que ingresan y egresan en cada proceso, que se ejecuta bajo la estructura de dicho
lenguaje.
Es de destacar que las proposiciones son expresiones cuya escritura finaliza con un punto y
coma (;), el que cumple la funcin de terminador de sentencias y no la de un separador de
las mismas.
Las estructuras de control de flujo son:
108

Programacin Estruccturada Codificada

If-else.
else if
El ciclo while
El ciclo do-while
El ciclo for
Las sentencias break y continue
La sentencia de seleccin mltiple switch
Goto y etiquetas

Programacin Estruccturada Codificada

109

AUTOEVALUACIN DE CONOCIMIENTOS DEL CAPITULO 1


1. Qu es algoritmo?
2. Qu es pseudocdigo?
3. Qu es diagrama de flujo?
4. Describa las consrucciones algoritmicas
5. Cules son los tipos de datos en C?
6. Cules son los tipos de variables?
7. Cules son los operadores aritmticos?
8. Cules son las expresiones condicionales?
9. Qu funcin tienen los operadores ++ y
10. Qu es control de flujo?
11. Cules son las preposiciones?
12. Cmo se utiliza la instruccin goto?

110

Programacin Estruccturada Codificada

RESULTADOS DE AUTOEVALUACIN DE CONOCIMIENTOS


Captulo 1
1. El trmino algoritmo se aplica a muchos de los mtodos de resolucin de problemas que
emplean una secuencia mecnica de pasos, como en el diseo de un programa de
computadora o computadora
2. Pseudo = falso. El pseudo cdigo no es realmente un cdigo sino una imitacin y una
versin abreviada de instrucciones reales para lenguaje de computadoras
3. Son la representacin grfica de la solucin algortmica de un problema
4. .
construcciones condicionales (if,switch)
construcciones iterativas(while,for,do...while)
subrutinas (funciones)
5. .
Tipo de Datos

6. .

7. .

Tamao

Descripcin

char

Normalmente 8 bits

Carcter

short

Normalmente 16 bits

Entero corto con signo

int

Depende de la implementacin Entero con signo

unsigned

Depende de la implementacin Entero sin signo

long

Normalmente 32 bits

Entero largo con signo

float

Normalmente 32 bits

Flotante de precisin simple

double

Normalmente 64 bits

Flotante de precisin doble

Automticas y Externas
Las variables automticas
- aparecen y desaparecen con la llamada de la funcin.
Las variables externas...
- se declaran globalmente: extern int max;
- se definen fuera de las funciones: int max;
- se declaran dentro de las funciones: extern int max;
+ (SUMA)
- (RESTA)
* (MULTIPLICACION)
/ (DIVISION)
% (PORCENTAJE)

Programacin Estruccturada Codificada

111

8. .

< menor que


> mayor que
<= menor o igual que
>= mayor o igual que

9. . Las expresiones ++a y a++ provocan que a se incremente en 1. En forma similar, - -a


y a- - causan que a disminuya en 1. No obstante, al usar ++a en una expresin, el valor
de a se aumenta antes de evaluar la expresin, mientras que al emplear a++, la
expresin se evala con el valor actual de a, incrementndolo despus. Lo mismo ocurre
con - -a y a- -.
10. Instrucciones que se ejecutan sucesivamente una tras otra. Esto define un camino o
direccin segn la cual se va desarrollado el programa.
11. .

12. .

If-else.
while
El ciclo do-while
El ciclo for
Las sentencias break y continue.
Goto y etiquetas

goto etiqueta;
parriba:// declaracin de etiqueta
...
// salto directo a una etiqueta
if (error) goto pabajo;
...
if (repetir) goto parriba;
pabajo:

112

// declaracin de etiqueta

Programacin Estruccturada Codificada

APLICACIN DE COMPONENTES DE LENGUAJE C.


Al finalizar la unidad, el alumno aplicar los elementos del lenguaje C
mediante estructura de datos para la elaboracin de programas estructurados

Programacin Estruccturada Codificada

113

MAPA CURRICULAR DE LA UNIDAD DE APRENDIZAJE

Programacin
Estructurada
Codificada

Mdulo

144 hrs.

Unidad de
Aprendizaje

1 Manejo de
sintaxis y
elementos del
lenguaje C.
64 hrs.

Resultados de
Aprendizaje

114

2 Aplicacin de
componentes de
lenguaje C.

80 hrs.

2.3 Elaborar rutinas de programacin usando funciones, apuntadores y


arreglos codificados en lenguaje C.

40 hrs.

2.4 Desarrollar programas en lenguaje C aplicando estructuras, formatos


de entrada y salida codificados en lenguaje C.

40 hrs.

Programacin Estruccturada Codificada

SUMARIO

FUNCIONES
APUNTADORES Y ARREGLOS
ESTRUCTURAS
ENTRADA Y SALIDA

RESULTADO DE APRENDIZAJE
2.1
Elaborar rutinas de programacin usando funciones, apuntadores y arreglos
codificados en lenguaje C
2.1.1 FUNCIONES
Un programa C est formado por un
conjunto de funciones que al menos
contiene la funcin main. Una funcin se
declara con el nombre de la funcin
precedido del tipo de valor que retorna y
una lista de argumentos encerrados entre
parntesis. El cuerpo de la funcin est
formado
por
un
conjunto
de
declaraciones
y
de
sentencias
comprendidas entre llaves.

Definicin

La definicin de una funcin especifica lo


siguiente:

Nombre de la funcin
Nmero de argumentos que lleva
y tipo de cada uno de ellos
Tipo de datos que devuelve
Cuerpo de la funcin (el cdigo
que ejecuta)

Programacin Estruccturada Codificada

Declaracin
tipo nombre ( arg1, arg2, ... )
{
... cuerpo ...
}

Cada argumento se especifica como en


una declaracin de variable. El cuerpo de
la funcin debera contener una sentencia
donde se devuelve el resultado de la
funcin, que se hace de esta forma:
return expresin;
La funcin devolver el resultado de la
expresin.
Ejemplo de funcin
Funcin que devuelve la suma de dos
enteros.
int suma ( int a, int b )
{
return a+b;
}

115

En C++ se declaran
parntesis, sin el void.

Llamadas a funciones

Para llamar a una funcin, se escribe su


nombre y entre parntesis los valores que
se deseen dar a los argumentos:
funcin ( expr1, expr2, ... )
Cada expresin se evala y su resultado se
pasa como argumento a la funcin. Las
expresiones han de tener el mismo tipo
del argumento correspondiente, o al
menos un tipo compatible.
x = suma ( 1, a+5 );
/* correcto */
y = suma ( hola, 5 );
incorrecto */

/* arg. 1

Una llamada a funcin es una expresin,


con todo lo que ello implica.
No es necesario recoger en una variable el
valor devuelto por la funcin.
(Por ejemplo, printf y scanf son funciones
que devuelven un entero).
Funciones sin argumentos
Se declaran con void entre parntesis
(slo en C).
int fecha (void)
{ ... }
Se las llama as:
dato = fecha();
Es decir, siempre hay que escribir los
parntesis aunque no haya argumentos.
116

slo

con

los

CONTEXTUALIZACIN
Competencia para la
vida
Razonar la importancia
que ha tenido el avance de las
Tecnologas
de
Informacin
y
Comunicaciones (TICs) en el Acces
de la informacin.
El PSP:
Resaltar el paralelismo que existe
en los avances de la informtica y
las diversas ciencias como; la
medicina, la fsica, la qumica, etc.
En relacin con la Integracin de la
Informtica Educativa en el aprender de
las ciencias, es necesario analizar la
integracin implcita y explcita de las
Nuevas Tecnologas de la Informacin y
Comunicacin (NTIC) como herramientas
de apoyo en la construccin del
significado de conceptos, procesos y
fenmenos cientficos.
El rol de la Informtica Educativa en el
aprender y construir de las Ciencias
Naturales (Biologa, Fsica y Qumica) no
se centra en el contexto de un contenido
especfico en el aprender de las ciencias,
sino que apunta a la integracin fluida de
un conjunto de nuevas herramientas que
apoyen un(os) mtodo(s) para construir
conceptos y procesos cientficos.
Estas herramientas constituyen un valor
agregado para la educacin de las
Programacin Estruccturada Codificada

ciencias, ya que son herramientas que


expanden y profundizan el campo de
accin
de
otras
herramientas
e
instrumentos
ms
tradicionales
empleados en las ciencias.

Las herramientas digitales permiten


registrar y concretar procesos tpicos de la
ciencia tales como el anlisis y revisin de
la literatura cientfica, recoleccin de
datos, contrastacin de hiptesis, etc. La
idea es que utilicemos la informtica
como un microscopio digital, que nos
abre las perspectivas de un mundo
globalizado
que
incrementa
la
construccin de los conceptos cientficos,
que
otorga
herramientas
para
comprender los fenmenos de la
naturaleza y que tambin presenta nuevos
desafos para la ciencia y la tecnologa.
As como escuchamos decir que el
computador permite a los alumnos
ingresar a un mundo ciberntico y digital,
podemos decir que las herramientas
digitales
permiten
acercar
tempranamente el hacer de las ciencias a
los nios desde el espacio donde ocurre
su aprender: en el aula.
Qu
se
persigue
en
la
enseanza/aprendizaje/educacin de la(s)
ciencia(s)?
Principalmente, en lo que compete a la
Informtica Educativa, lo que se persigue
es que los aprendices:
- Construyan
y
reconstruyan
conceptos y procesos cientficos.
- Reelaboren
sus
concepciones
erradas sobre cmo funcionan los
fenmenos cientficos.
Programacin Estruccturada Codificada

Utilicen en sus construcciones los


as
denominados
procesos
cientficos.
Apliquen la estrategia de resolucin
de problemas en ciencias.
Desarrollen
Microproyectos
de
investigacin cientfica.

Qu herramientas provee la Informtica


Educativa para apoyar el logro de los
objetivos anteriores?
Principalmente,
modalidades:

las

siguientes

1. Software educativo para apoyar el


aprendizaje de las ciencias, con nfasis
en: Ciencias Naturales
- Software
de
Modelacin
computacional y simulacin de
procesos cientficos, donde el
aprendiz pueda manipular y
controlar
variables,
resolver
problemas y tomar decisiones.
- Software de presentacin de
informacin y conocimiento, como
el cuerpo humano y viaje hacia la
vida, en los que los aprendices
pueden observar e interactuar con
procesos biolgicos imposibles de
observar directamente.
- Software para hacer cosas,
disear cosas, armar cosas,
construir cosas, por ejemplo, el
software cmo funcionan las cosas,
que permite que los aprendices se
involucren en proyectos cientficos,
aplicando los principios de la
ciencia y creando sus propios
inventos.

117

2. Construccin
de
prototipos
de
software multimediales con contenido
cientfico. Aqu la idea es que
utilizando software como Macromedia
Director, Delphi, html y otros, los
alumnos y profesores se involucran en
el proceso de produccin de software
sobre conceptos y procesos cientficos.
Esta produccin puede ser en el
mbito de un software convencional o
de un sitio Web. En este proceso de
construccin, los alumnos utilizan
destrezas y habilidades de anlisis y
sntesis de informacin cientfica,
recopilacin e interpretacin de datos,
elaboracin
de
conclusiones
y
discusiones,
as
como
tambin
habilidades
de
presentacin
y
confrontacin de ideas. Por cierto,
todas
ellas
son
habilidades
fundamentales en la educacin de la
ciencia.
3. Software de productividad para
apoyar el desarrollo de proyectos y
resolucin de problemas en ciencias;
por ejemplo, elaborando un boletn
informativo en Word de la relacin
entre grandes procesos qumicos
industriales y el desarrollo econmico
del pas, graficando la solubilidad y
realizando clculos estequiomtricos,
aplicando
funciones
en
Excel,
explicando la proporcin de elementos
constituyentes de la sangre a travs de
grficas
de
pay,
construyendo
animaciones en Power Point de
procesos biolgicos como mitosis y
meiosis, y presentando reacciones
qumicas espontneas de difcil
observacin a travs de secuencias de
diapositivas.
118

4. Laboratorios de ciencias basados en


microcomputadores
(micocomputerbaset Laboratory, MBL).
Actividades donde el computador
colecciona datos en tiempo real
mientras el alumno observa un
experimento
en
progreso.
El
microcomputador es usado como
instrumento poderoso y sensible para
adquirir datos, desplegar grficos y
realizar anlisis.
5. Telecomunicaciones, que se utilizan
para realizar actividades con el uso de
Internet y sus servicios (Email, FTP,
WEB,
NewsGroup,
Talk)
para
comunicar
informacin,
discutir,
diseminar resultados, generar ideas
colectivamente, para acceder a bases
de datos, servicios de informacin
cientficos, datos climticos, etc.
Grupos de inters, conferencias
electrnicas y foros. Acceso a pginas
de cientficos, bibliotecas, laboratorios,
etc.
Tambin
se
usan
las
telecomunicaciones para desarrollar
proyectos
colaborativos
de
investigacin cientfica en el aula y
resolucin cooperativa de problemas
en ciencias, con aprendices de otros
establecimientos y otros lugares
dentro y fuera del pas.

Programacin Estruccturada Codificada

2.1.2 APUNTADORES Y ARREGLOS


Un arreglo es un conjunto de celdas de
memoria relacionadas entre s, ya que
todos tienen el mismo nombre y
almacenan el mismo tipo de datos, para
referirse a una celda en particular, algn
elemento dentro del arreglo y, entre
corchetes [], el nmero de posicin del
elemento dentro del arreglo.
El primer elemento se almacena en la
posicin 0 del arreglo; es decir, el primer
elemento del arreglo se conoce como
a[0], el segundo como a[1], el sptimo
como a[7] y en general el elemento de
orden i del arreglo a se conoce como a[i1].
El nmero de posicin que aparece dentro
de los corchetes se conoce como ndice y
debe ser un nmero entero o una
expresin entera, por ejemplo:
Apuntadores y direcciones.
Los smbolos * y & pueden ser usados
para el contenido y la direccin de una
variable, respectivamente. Por ejemplo, si
"x" es una variable de tipo "int" y "y" es una
variable de tipo "int" y "px" es una variable
de tipo "apuntador a int" entonces, se
podra hacer lo siguiente:
Asignar la direccin de "x" al apuntador
"px" px = &x;
Aumentar en 1, el valor apuntado por "px"
(es decir, el valor de "x") y asignarlo a la
variable "y". y = *px+1;
Aumentar en 1, el valor del apuntador
"px" (es decir, el valor de una variable
desconocida) y asignarlo a la variable "y".
Programacin Estruccturada Codificada

Aumentar en 1 el valor apuntado por "px"


(es decir, el valor de "x"), *px+=1; o bien
(*px)++; notar que en este ltimo
ejemplo es necesario usar parntesis,
debido a que, aunque la prioridad de "*" y
"++" es igual, la asociatividad es de
DERECHA a IZQUIERDA. As, sin los
parntesis, la expresin "*px++;" se
entendera como: "*(px++);".

Arreglos y cadenas

Los arreglos permiten agrupar datos,


usando un mismo identificador. Todos los
elementos de un arreglo son del mismo
tipo y para acceder a cada elemento se
usan subndices. Mas adelante se
presentan los arreglos y las cadenas. Las
cadenas se consideran como un arreglo
de tipo char.
Se clasifican
continuacin:

como

se

describe

Arreglos
unidimensionales
bidimensionales

a
y

Los arreglos son una coleccin de


variables del mismo tipo que se
referencian utilizando un nombre comn.
Un arreglo consta de posiciones de
memoria contigua. La direccin ms baja
corresponde al primer elemento y la ms
alta al ltimo. Un arreglo puede tener una
o varias dimensiones. A los arreglos
unidimensionales se les conocen como
vectores y a los bidimensionales como
matrices. Para acceder a un elemento en
particular de un arreglo se usa un ndice.

119

El formato para declarar un arreglo


unidimensional es:

tipo nombre_arr [ tam1 ][ tam2 ] ... [


tamN];

tipo nombre_arr [ tamao ]

Por ejemplo un arreglo de enteros


bidimensionales se escribir como:

Por ejemplo, para declarar un arreglo de


enteros llamado listanum con diez
elementos se hace de la siguiente forma:
int listanum[10];
En C, todos los arreglos usan cero como
ndice para el primer elemento. Por tanto,
el ejemplo anterior declara un arreglo de
enteros con diez elementos desde
listanum[0] hasta listanum[9]. La forma
como pueden ser accesados los elementos
de un arreglo es como a continuacin se
muestra:
listanum[2] = 15; /* Asigna 15 al 3er
elemento del arreglo listanum*/
num = listanum[2]; /* Asigna el
contenido del 3er elemento a la variable
num */
El lenguaje C no realiza comprobacin de
contornos en los arreglos. En caso de que
sobrepase el final durante una operacin
de asignacin, entonces se asignarn
valores a otra variable, o a un trozo del
cdigo el cual es una condicion no
deseada. Como programador, se es
responsable de asegurar que todos los
arreglos sean lo suficientemente grandes
para guardar lo que pondr en ellos el
programa.

int tabladenums[50][50];
Observar que para declarar cada
dimensin lleva sus propios parntesis
cuadrados. Para acceder los elementos se
procede de forma similar al ejemplo del
arreglo unidimensional.
tabladenums[2][3] = 15; /* Asigna 15 al
elemento de la 3 fila y la 4 columna*/
num = tabladenums[25][16];
Si se desea inicializar arreglos, es decir
asignar valores al arreglo en el momento
de ser declarados, debe hacerse con el
siguiente formato:
tipo nombre_arr[ tam1 ][ tam2 ] ... [
tamN] = {lista-valores};
Ejemplo:
int i[10] = {1,2,3,4,5,6,7,8,9,10};
int
num[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};
Los valores para el nmero de elementos
deben ser constantes, y se pueden usar
tantas dimensiones como queramos,
limitado slo por la memoria disponible.

Para declarar arreglos con ms de una


dimensin, el formato general es:

120

Programacin Estruccturada Codificada

Cadenas

Las cadenas de caracteres son un tipo


especial de arreglo pues se trata de un
conjunto de datos de tipo char que
termina
con
un
caracter
nulo.
Bsicamente el manejo de cadenas es muy
similar al de los arreglos.
Ejemplo:
#include <stdio.h>
void main() {
char cadena[6]; /* Define una cadena de
caracteres */
cadena[0]='L';
cadena[1]='e';
cadena[2]='t';
cadena[3]='r';
cadena[4]='a';
cadena[5]='s';
cadena[6]=\0; /* Caracter nulo, significa el fin
del texto */
printf("La cadena es %s\n", cadena);
printf("La tercera letra de la cadena es: %c\n",
cadena[2]);
printf("Una parte de la cadena es : %s\n",
&cadena[3]);
getch();
}

La variable cadena es una cadena que


puede almacenar hasta seis caracteres,
tomando en cuenta que se requiere un
espacio para almacenar el caracter nulo al
final de la cadena. El smbolo %s,
mostrado en los enunciados printf( ), le
indica al sistema que despliegue una
cadena de caracteres empezando con el
elemento subndice cero, que en el cdigo
de ejemplo es la letra L, y continuando
hasta encontrar el caracter nulo. Observe
que en los enunciados printf( ), cuando se
indica la variable cadena sin corchetes,
indica que se despliegue la totalidad de la
cadena, en tanto que al indicar la variable
Programacin Estruccturada Codificada

cadena con algn valor entre corchetes se


refiere a un solo elemento de la cadena.
En este caso, debemos utilizar en el
enunciado printf( ) el smbolo %c que le
indica al sistema que despliegue un solo
caracter. El smbolo & especifica la
direccin en memoria de cadena[3]. A
continuacin se muestra un ejemplo del
manejo de cadenas.
Ejemplo:
#include <stdio.h>
#include <string.h>
void main() {
char cadena1[17], cadena2[13], titulo[26],
prueba[29];
strcpy(cadena1, "Pedro Picapiedra");
strcpy(cadena2, "Pablo Marmol");
strcpy(titulo, "- - -Los Picapiedra- - -");
printf("%s\n\n\n", titulo);
printf("Los personajes principales son: %s\n",
cadena1);
printf("y : %s\n\n", cadena2);
if(strcmp(cadena1, cadena2) > 0)
strcpy(prueba, cadena1);
else
strcpy(prueba, cadena2);
printf("La cadena mas grande es: %s\n\n",
prueba);
strcpy(prueba, cadena1);
strcat(prueba, " y ");
strcat(prueba, cadena2);
printf("%s son vecinos\n", prueba);
getch();
}

Como puedes ver, en este programa se


han definido cuatro arreglos de tipo char
de diferente longitud. Enseguida nos
encontramos con la funcin strcpy( ) que
sirve para copiar la cadena especificada en
la segunda entidad dentro del parntesis
de la funcin en un arreglo de tipo char
especificado por la primera entidad
dentro del parntesis de la funcin strcpy.
De esta forma, por ejemplo, la cadena
121

"Pedro Picapiedra" se copia en el arreglo


de tipo char llamado cadena1.
Ms adelante en el cdigo nos
encontramos con la funcin strcmp( ) que
como es fcil adivinar, sirve para
comparar, letra por letra, dos cadenas
especificadas dentro del parntesis. Esta
funcin devuelve 1, si la primera cadena
es mayor que la segunda; es decir, si tiene
mayor cantidad de letras. Si ambas
cadenas son iguales, la funcin devuelve
0, en tanto que si la primera cadena es
menor que la segunda entonces el valor
devuelto es -1.
Por ltimo, tenemos la funcin strcat( )
que ejecuta una concatenacin de
cadenas; es decir, copia la segunda
cadena especificada dentro del parntesis
de la funcin enseguida de la primera
cadena especificada, agregando un
caracter nulo al final de la cadena
resultante.
Como ya se mencion, se debe especificar
la terminacion de la cadena con el
carcter nulo '\0'. Por lo anterior, cuando
se declare un arreglo de caracteres, se
debe considerar un carcter adicional a la
cadena ms larga que se vaya a guardar.
Por ejemplo, si se quiere declarar un
arreglo cadena que guarde una cadena de
diez caracteres, se har como sigue:
char cadena[11];
Se pueden hacer tambin inicializaciones
de arreglos de caracteres en donde
automticamente C asigna el caracter
nulo al final de la cadena, de la siguiente
forma:
122

char nombre_arr[ tam ]="cadena";


Por ejemplo, el siguiente
inicializa cadena con ``hola'':

fragmento

char cadena[5]="hola";
El cdigo anterior es equivalente a:
char cadena[5]={'h','o','l','a','\0'};
Para asignar la entrada estndar a una
cadena, se puede usar la funcin scanf
con la opcin %s (observar que no se
requiere usar el operador &) de igual
forma para mostrarlo en la salida
estndar.
Por ejemplo:
void main() {
char nombre[15], apellidos[30];
printf("Introduce tu nombre: ");
scanf("%s",nombre);
printf("Introduce tus apellidos: ");
scanf("%s",apellidos);
printf("Usted es %s %s\n",nombre,apellidos);
getch();
}

Ahora podemos ver que las cadenas de


caracteres son un tipo especial de
arreglos. Se trata en realidad de arreglos
de una dimensin de tipo char.
Si definimos el arreglo de 10 enteros de la
siguiente manera: int a[10]; podemos
referenciar a[0] a[1] .. a[9]. Si adems
Programacin Estruccturada Codificada

definimos el apuntador a entero "pa" int


*pa; y le asignamos la direccin del
primer elemento del arreglo "a",
pa=&pa[0]; o bien pa=a; entonces, el
contenido de "a[i]" puede ser visto con
*(pa+i)
En apuntadores a arreglos de caracteres,
las 2 siguientes declaraciones son
equivalentes:
char s[];
char *s;

Aritmtica de direcciones. Son posibles las


siguientes operaciones con apuntadores:
- Sumar y restar un entero a un
apuntador.
- Restar y comparar 2 apuntadores.
- Comparar un apuntador con NULL.

while (*s++=*t++);
}

Arreglos Multidimensionales.

En C, los arreglos de 2 dimensiones se


implementan
como
arreglos
unidimensionales. Donde cada elemento
es, a su vez, un arreglo unidimensional.
Por lo anterior, la sintaxis en C es
day_tab[i][j]; /* [rengln] [columna] */en
lugar de:
day_tab[i,j]; /* INCORRECTO */

Los arreglos de 2 dimensiones pueden ser


inicializados como sigue:

Apuntadores a caracteres y a funciones.

static int day_tab[2][13] =

En el siguiente ejemplo, la variable


"mensaje" es SOLO UN APUNTADOR.

char *message="now is the time";


No se debe confundir el envo de un
APUNTADOR a un arreglo de caracteres
con el envo del ARREGLO de caracteres.
Por ejemplo, en la siguiente funcin se
envan los apuntadores a 2 arreglos de
caracteres (cuya memoria fue asignada en
otra parte del programa).
strcpy(s,t) /* copia t a s, con apuntadores
*/
Programacin Estruccturada Codificada

{0,31,28,..,31},
{0,31,29,..,31},
};

Arreglo de apuntadores. Apuntadores a


apuntadores. Inicializacin de arreglos de
apuntadores:
static char *name[]=
{
"mes ilegal",

123

"enero",...
"diciembre",

Para el arreglo "b", 200 enteros + 10


apuntadores.

};

Argumentos de la lnea de comandos.


Diferencia entre apuntadores y arreglos
multidimensionales.
No se deben confundir las declaraciones:
int a[10][20]; /* matriz de 10*20=200
enteros */
int *b[10]; /* vector de 10 apuntadores a
enteros */
/* o 10 apuntadores a arreglos a enteros
*/
Si consideramos que en los 2 arreglos
anteriores, usamos [rengln] [columna]
Entonces tenemos 2 diferencias bsicas:
1. En el arreglo "a", el nmero de
columnas (elementos) x rengln es 20
para todos los renglones. En el arreglo "b"
podemos tener un nmero diferente de
columnas x rengln para cada rengln.
Por ejemplo: 2 elementos en el rengln 0;
5 en el rengln 1; e incluso una matriz de
4x4 en el rengln 3, etc.
2. La memoria ocupada por los 2 arreglos
es diferente. Inclusive en el caso de que
los apuntadores del arreglo "b" apuntarn
a un arreglo de 20 elementos por rengln.
La memoria ocupada por los 2 arreglos
sera diferente.

Al correr el programa ejecutable


producido por un programa fuente escrito
en C, podemos agregar argumentos en la
lnea de comandos. Estos argumentos
pueden ser usados para producir efectos
diferentes al correr el mismo programa.
As, podramos usar opciones como las
usadas en los sistemas operativos:
C:> copy
C:> copy a:\arch1 b:
C:> copy a:\arch1 b:\arch2

El procesamiento de los argumentos de la


lnea de comandos se puede ejemplificar
con el siguiente programa en C, que
simplemente escribe los argumentos en la
salida estndard.

/* escribe los argumentos en la salida


estndard */
main(int argc, char *argv[])
{
while(--argc>0)
printf("%s%c",*++argv,(argc>1)?' ':'\n'); }

Para el arreglo "a", 200 enteros.


124

Programacin Estruccturada Codificada

"argc" y "argv" son palabras predefinidas.


"argc" indica el nmero de argumentos
(incluyendo el nombre del programa
ejecutable). "argv" es un arreglo de
apuntadores a arreglos de caracteres.
"argv[i]" es un apuntador al arreglo de
caracteres del argumento i.
Por ejemplo, si "echo.exe" es un programa
ejecutable producido por un programa
escrito en C, entonces al ser corrido con:
echo hello world, los valores que
tomaran "argc" y "argv" en caso de haber
sido usados son:
argc=3 *argv[0]=echo
*argv[2]=world

*argv[1]=hello

Punteros

Es una Variable que representa la posicin


(en vez del valor) de otro dato, tal como
una variable o un elemento de una
formacin. Los punteros son usados
frecuentemente en C y tienen gran
cantidad de aplicaciones, por ejemplo,
pueden ser usados para trasvasar
informacin entre una funcin y sus
puntos de llamada. En particular,
proporcionan una forma de devolver
varios datos desde una funcin a travs
de los argumentos de la funcin.

1 y 0. Pero trabajar con bits no es


prctico, y por eso se agrupan. Cada
grupo de 8 bits forma un byte u octeto.
En realidad, el microprocesador, y por lo
tanto nuestro programa, slo puede
manejar directamente bytes o grupos de
dos o cuatro bytes. Para acceder a lo bits
hay que acceder antes a los bytes. Cada
byte tiene una direccin, llamada
normalmente direccin de memoria.
Ahora veremos
punteros.

cmo

funcionan

los

Un puntero es un tipo especial de variable


que contiene una direccin de memoria.
Por supuesto, a partir de esa direccin de
memoria puede haber cualquier tipo de
objeto: un char, un int, un float, un array,
una estructura, una funcin u otro
puntero.
Seremos
nosotros
los
responsables de decidir ese contenido.

Asignacin de Punteros:

Los punteros se declaran igual que el


resto de las variables, pero precediendo
identificador con el operador de
indireccin, (*), que leeremos como
"puntero a".
Sintaxis:
<tipo> *<identificador>;

Para entender qu es un puntero,


veremos primero cmo se almacenan los
datos en un computadora. La memoria de
un computadora est compuesta por
unidades bsicas llamadas bits. Cada bit
slo
puede
tomar
dos
valores,
normalmente denominados alto y bajo,
Programacin Estruccturada Codificada

Ejemplos:
int *entero;
char *carcter;
struct stPunto *punto;

125

Los punteros siempre apuntan a un


objeto de un tipo determinado, en el
ejemplo, "entero" siempre apuntar a un
objeto de tipo "int".
Debes tener muy claro que "entero" es una
variable del tipo "puntero a int", y que
"*entero" NO es una variable de tipo "int".
Si "entero" apunta a una variable de tipo
"int", "*entero" ser el contenido de esa
variable, pero no olvides que "*entero" es
un operador aplicado a una variable de
tipo "puntero a int", es decir "*entero" es
una expresin, no una variable.
Para averiguar la direccin de memoria de
cualquier variable usaremos el operador
de direccin (&), que leeremos como
"direccin de". Aqu esta (&)
Declarar un puntero, no crear un objeto.
Por ejemplo, "int *entero" no crea un
objeto de tipo "int" en memoria, slo crea
una variable que puede contener una
direccin de memoria. Se puede decir que
existe fsicamente la variable "entero", y
tambin que esta variable puede contener
la direccin de un objeto de tipo "int". Lo
veremos mejor con otro ejemplo:
int A, B;
int *entero;
...
B = 213; /* B vale 213 */

entero = &A; /* entero apunta a la


direccin de la variable A */
*entero = 103; /* equivale a la lnea A =
103; */
126

B = *entero; /* equivale a B = A; */
...
En este ejemplo, vemos que "entero"
puede apuntar a cualquier variable de
tipo "int", y que podemos hacer referencia
al contenido de dichas variables usando el
operador de indireccin (*).
Como todas las variables, los punteros
tambin contienen "basura" cuando son
declaradas. Es costumbre dar valores
iniciales nulos a los punteros que no
apuntan a ningn sitio concreto:
entero = NULL;
caracter = NULL;
NULL es una constante que est definida
como cero en varios ficheros de cabecera,
como
"stdio.h"
o
"iostream.h",
y
normalmente vale 0L.

Aritmtica de apuntadores

Aunque
no
son
muchas
las
operaciones que se pueden hacer con
los punteros, cada una tiene sus
peculiaridades.
Asignacin: Ya hemos visto cmo
asignar a un puntero la direccin de
una variable. Tambin podemos
asignar un puntero a otro, esto har
que los dos apunten a la misma
posicin:
int *q, *p;
Programacin Estruccturada Codificada

int a;

mismo array. Existe otra comparacin


que se realiza muy frecuente con los
punteros. Para averiguar si estamos
usando un puntero es corriente hacer
la comparacin como sigue:

q = &a; /* q apunta al contenido de a */


p = q; /* p apunta al mismo sitio, es decir, al
contenido de a */

if(NULL != p)

Operaciones aritmticas: Tambin


hemos visto cmo afectan a los
punteros las operaciones de suma con
enteros. Las restas con enteros operan
de modo anlogo. Pero, qu
significan las operaciones de suma y
resta entre punteros?, por ejemplo:

o simplemente
if(p)
Y tambin:
if(NULL == p)

int vector[10];

O simplemente

int *p, *q;

if(!p)

p = vector; /* Equivale a p =
&vector[0]; */
q = &vector[4]; /* apuntamos al 5
elemento */
cout << q-p << endl;
El resultado ser 4, que es la
"distancia" entre ambos punteros.
Normalmente este tipo de operaciones
slo tendr sentido entre punteros que
apunten a elementos del mismo array.
La suma de punteros no est
permitida.
Comparacin entre punteros:
Comparar punteros puede tener
sentido en la misma situacin en la
que lo tiene restar punteros, es decir,
averiguar posiciones relativas entre
punteros que apunten a elementos del
Programacin Estruccturada Codificada

Punteros y arreglos

Existe una equivalencia casi total entre


arrays y punteros. Cuando declaramos un
array estamos haciendo varias cosas a la
vez:
Declaramos un puntero del mismo tipo
que los elementos del array, y que apunta
al primer elemento del array.
Reservamos memoria para todos los
elementos del array. Los elementos de un
array se almacenan internamente en el
computadora en posiciones consecutivas
de la memoria.
La principal diferencia entre un array y un
puntero es que el nombre de un array es
127

un puntero constante, no podemos hacer


que apunte a otra direccin de memoria.
Adems, el compilador asocia una zona
de memoria para los elementos del array,
cosa que no hace para los elementos
apuntados por un puntero autntico.
Ejemplo:

float real, imaginario;


} Complejo[10];
stComplejo *p;
p = Complejo; /* Equivale a p =
&Complejo[0]; */
p++; /* entero == &Complejo[1] */

int vector[10];
int *puntero;
puntero = vector; /* Equivale a puntero
= &vector[0]; esto se lee como "direccin
del elemento cero de vector" */

En este caso, al incrementar p


avanzaremos las posiciones de memoria
necesarias para apuntar al siguiente
complejo del array "Complejo". Es decir
avanzaremos sizeof(stComplejo) bytes.

*puntero++; /* Equivale a vector[0]++;


*/
puntero++;
&vector[1] */

/*

puntero

equivale

Apuntadores a funciones
En la definicin:
/* compara 2 cadenas */

Qu
hace
cada
instrucciones?:

una

de

estas

La primera incrementa el contenido de la


memoria apuntada por "puntero", que es
vector[0].
La segunda incrementa el puntero, esto
significa que apuntar a la posicin de
memoria del siguiente "int", pero no a la
siguiente posicin de memoria. El puntero
no se incrementar en una unidad, como
tal vez sera lgico esperar, sino en la
longitud de un "int".

int strcmp();
En la declaracin:
/* apuntador a funcin que devuelve un
entero */
int (* comp)();
/* funcin que devuelve apuntador a entero */
int *comp();

Otro ejemplo:
struct stComplejo {

128

Programacin Estruccturada Codificada

CONTEXTUALIZACIN

Competencia tecnolgica

Comparar herramientas de software

para la aplicacin de operaciones


automatizadas, obteniendo ventajas y
desventajas
Existen diversos problemas en los cuales
se requiere referenciar un dato. Por ejelo,
si tenemos la informacin de los alumnos
de Ingeniera y sus calificaciones:
Matrcula

Nombre

Carrera

123456

Juan

ISC

654321

Luis

ISE

333111

Pepe

IEC

Matrcula

Parcial

Calificacin

123456

80

123456

93

654321

87

333111

69

Por ejemplo, la primera tabla describe la


relacin entre los alumnos, su nombre y
su carrera, mientras que la segunda
describe la relacin entre los alumnos y
sus calificaciones.
En este contexto, la relacin entre los dos
arreglos que corresponderan a las tablas
en memoria, est dada por el campo de
Matrcula, que es tipo entero. En general,
en cualquier problema similar existir un
campo comn que permite relacionar los
dos arreglos.
En el ejemplo de arriba, la relacin es
eficiente y minimiza el gasto de memoria;
pero existen problemas en los que la
relacin requiere demasiada memoria,
adems de un algoritmo de bsqueda que
requerir ms tiempo para ejecutarse. Por
ejemplo:

Nombre

Carrera

Juan Pablo Contreras Luna

ISC

Luis Alberto Gutirrez de GomezLanda

ISE

Jos de Jess Echeverra de los Monteros

IEC

Nombre

Parcial Calificacin

Juan Pablo Contreras Luna

80

Juan Pablo Contreras Luna

93

Jos de Jess Echeverra de los Monteros

87

Luis Alberto Gutirrez de GomezLanda

69

Programacin Estruccturada Codificada

129

En este caso, el campo comn de los dos


arreglos es bastante largo; por ello, la
redundancia de ambos campos genera un
alto consumo de memoria. Especialmente
en los primeros tiempos del cmputo,
cuando se empezaban a desarrollar los
lenguajes de alto nivel, se tenan que
buscar soluciones para hacer ms
eficiente el uso de la memoria; y, como
consecuencia, tambin ms rpido el
procesamiento.
En
este
caso,
el
procesamiento resulta lento pues para
encontrar la correspondencia se tienen
que hacer comparaciones de cadenas, las
cuales son ms costosas y requieren ms
accesos a memoria que, por ejemplo, la
bsqueda de un entero que vimos en la
seccin previa (la matrcula).
La primera y ms directa solucin consiste
en sustituir el campo largo, en la segunda
tabla, por un entero que permita la
bsqueda ms eficientemente. Podramos
crear un cdigo que identifique a cada
elemento del arreglo, en forma nica,
como fue la matrcula en el primer
ejemplo. Sin embargo, no es necesario
hacerlo, pues el arreglo tiene ya un
identificador para cada elemento: el
ndice en el arreglo. Esto hace mucho ms
eficiente el acceso, pues ya no requiere
comparaciones sino solamente calcular,
en base al ndice almacenado, la localidad
donde est el elemento relacionado.
An no es la solucin ms eficiente,
puesto que se calcula la direccin destino,
cuando podra almacenarse directamente.
Por tanto, si en vez del ndice en el arreglo
guardamos la direccin de memoria
donde se encuentra el elemento
relacionado, no tendremos que hacer
operaciones. Esto tiene adems la ventaja
130

de que permite relacionar elementos que


no estn en un arreglo y, por lo tanto, no
se puede calcular tan eficientemente su
direccin. De hecho, por esta ltima
razn, los apuntadores son la solucin
natural para estructuras de datos como
los rboles y listas, que no siempre
tendrn un orden en sus elementos como
ocurre con los arreglos.

Acciones comunes con apuntadores:


Para ejemplificar el uso de apuntadores,
verificaremos dos casos comunes de
aplicacin:

a) Recorrido secuencial, apuntadores


contra arreglos
En diversos algoritmos, necesitamos
recorrer todos los elementos de un
arreglo, especialmente en cadenas. Como
ejemplo, veremos una funcin de
sumatoria, que suma todos los elementos
en un arreglo:
En lenguaje C, el cdigo sera:
int Arreglo[1000];
int Sumatoria()
{
int i, Temp;
Temp = 0;
for (i = 0; i<1000; i++)
Temp += Arreglo[i];
return Temp;
}

Programacin Estruccturada Codificada

En este caso, estamos haciendo el


recorrido de todos los elementos y para
cada elemento del arreglo se est
calculando su direccin, utilizando la
frmula que vimos en el tema de
"Representacin de datos". Esto es
ineficiente, por lo que en vez de
implementar el uso del arreglo en
ensamblador, usaremos un apuntador
para ir a travs de l.

Para mayor informacin consulte las


siguientes direcciones electrnicas
http://webpages.ull.es/users/fsande/talf/cursoc/
http://www.sisoft.ucm.es/Manuales/Lenguaje_C.pdf
http://labsopa.dis.ulpgc.es/cpp/intro_c/
http://correo.puj.edu.co/el982002/lenguajeC.htm
http://www.jeanpaul.com.ar/

.data
Arreglo DW 1000 DUP (?)
.code
...
MOV SI, OFFSET Arreglo
MOV AX, 0 ; AX va a tener el temporal para llevar el resultado
MOV CX, 0 ; CX la har de contador
CicloForI:
ADD AX, [SI]
; Avanzar el apuntador al siguiente elemento del arreglo
ADD SI, 2
INC CX
CMP CX, 1000
JNE CicloForI
...

El alumno:
Reflexionar qu digitalizacin
documentos ha sido pilar en
proceso de globalizacin, ya que
permitido entre otras cosas
traslado
e
intercambio
informacin rompiendo barreras
tiempo y espacio.

de
el
ha
el
de
de

Competencia para la vida

Fomentar la limpieza, la eficiencia y la

oportunidad en el desarrollo de sus


actividades.
El alumno:
Identificar
que los formatos
escritos y preestablecidos son
aplicados
para
fomentar
la
eficiencia de servicio a los usuarios.
Programacin Estruccturada Codificada

131

RESULTADO DE APRENDIZAJE

2.2. Desarrollar programas en lenguaje C aplicando estructuras, formatos de entrada y


salida codificados en lenguaje C

2.2.1. ESTRUCTURAS.

Concepto

Una estructura es un tipo de dato


definido por el usuario. Al utilizar una
estructura, se debe tener la habilidad para
definir un nuevo tipo de dato
considerablemente ms complejo que los
tipos que hemos utilizado hasta ahora.
Una estructura es una combinacin de
varios tipos de datos previamente
definidos, incluyendo otras estructuras
que hayamos definido previamente. Una
definicin simple es: "una estructura es un
grupo de datos relacionados en una
forma conveniente al programador y/o al
usuario del programa". Como es
costumbre, un ejemplo nos clarifica los
conceptos:
#include <stdio.h>
typedef struct {
char inicial; /* Letra inicial del apellido */
int edad; /* Edad */
int calificacion; /* Aprovechamiento */
}Estudiante;
Estudiante chico, chica;
Void main() {
chico.inicial = 'R';
chico.edad = 15;
chico.calificacion = 75;
chica.edad = chico.edad - 1; /* Ella es un
ao menor que l */
chica.calificacion = 82;
chica.inicial = 'H';

132

printf("%c tiene %d anos y su calificacion es


de %d\n",
chica.inicial, chica.edad, chica.calificacion);
printf("%c tiene %d anos y su calificacion es
de %d\n",
chico.inicial, chico.edad, chico.calificacion);

El programa empieza definiendo una


estructura, utilizando las palabras claves
typedef struct seguida de tres variables
sencillas encerradas entre llaves, las cuales
son los componentes de la estructura,
despus de la llave de cierre tenemos el
nombre del nuevo tipo de dato.
Posteriormente, se definen dos variables
llamadas chico y chica. De acuerdo a la
definicin de una estructura, chico es una
variable compuesta de tres elementos,
inicial, edad y, calificacion. Cada uno de
los tres campos estn asociados a chico y
cada uno almacena una variable de su
respectivo tipo, lo mismo se puede decir
para chica pero sus variables son
diferentes por lo tanto tenemos 6
variables agrupadas en dos, de tipo
struct.
Punteros A Estructuras:
Los punteros tambin pueden apuntar a
estructuras. En este caso, para referirse a
cada elemento de la estructura se usa el
operador (->), en lugar del (.).
Ejemplo:

#include <iostream.h>
struct stEstructura { int a, b;
} estructura, *e;
Programacin Estruccturada Codificada

int main() {
estructura.a = 10;
estructura.b = 32;
e = &estructura;
cout << "variable" << endl;
cout << e->a << endl;
cout << e->b << endl;
cout << "puntero" << endl;
cout << estructura.a << endl;
cout << estructura.b << endl;
return 0;
}

Ejemplos:
Veamos algunos ejemplos de cmo
trabajan los punteros. Primero un ejemplo
que ilustra la diferencia entre un array y
un puntero:
#include <iostream.h>
int main() {
char cadena1[] = "Cadena 1";
char *cadena2 = "Cadena 2";
cout << cadena1 << endl;
cout << cadena2 << endl;
//cadena1++; // Ilegal, cadena1 es
constante
cadena2++; // Legal, cadena2 es un
puntero
cout << cadena1 << endl;
cout << cadena2 << endl;
cout << cadena1[1] << endl;
cout << cadena2[0] << endl;
cout << cadena1 + 2 << endl;
cout << cadena2 + 1 << endl;
cout << *(cadena1 + 2) << endl;
cout << *(cadena2 + 1) << endl;

Aparentemente, y en la mayora de los


casos,
cadena1
y
cadena2
son
equivalentes.
Sin
embargo,
hay
operaciones que estn prohibidas con los
arrays, ya que son punteros constantes.
Otro ejemplo:
#include <iostream.h>
int main() {
char Mes[][11] = { "Enero", "Febrero",
"Marzo", "Abril", "Mayo", "Junio", "Julio",
"Agosto", "Septiembre", "Octubre",
"Noviembre", "Diciembre"};

Programacin Estruccturada Codificada

char *Mes2[] = { "Enero", "Febrero", "Marzo",


"Abril", "Mayo", "Junio", "Julio", "Agosto",
"Septiembre", "Octubre", "Noviembre",
"Diciembre"};
cout << "Tamao de Mes: " << sizeof(Mes)
<< endl;
cout << "Tamao de Mes2: " <<
sizeof(Mes2) << endl;
cout << "Tamao de cadenas de Mes2: "
<< &Mes2[11][10]-Mes2[0] << endl;
cout << "Tamao de Mes2 + cadenas : "
<< sizeof(Mes2)+&Mes2[11][10]-Mes2[0]
<< endl;
return 0;

En este ejemplo, declaramos un array


"Mes" de dos dimensiones que almacena
12 cadenas de 11 caracteres, 11 es el
tamao necesario para almacenar el mes
ms largo (en caracteres): "Septiembre".
Despus declaramos "Mes2" que es un
array de punteros a char, para almacenar
la misma informacin. La ventaja de este
segundo mtodo es que no necesitamos
contar la longitud de las cadenas para
calcular el espacio que necesitamos, cada
puntero de Mes2 es una cadena de la
longitud adecuada para almacenar cada
mes.
Parece que el segundo sistema es ms
econmico en cuanto al uso de memoria,
pero hay que tener en cuenta que,
adems de las cadenas, tambin se
almacenan los doce punteros.
El espacio necesario para almacenar los
punteros lo dar la segunda lnea de la
salida. Y el espacio necesario para las
cadenas lo dar la tercera lnea.
Si las diferencias de longitud entre las
cadenas fueran mayores, el segundo
sistema sera ms eficiente en cuanto al
uso de la memoria.
133

Variables Dinmicas:
Donde mayor potencia desarrollan los
punteros es cuando se unen al concepto
de memoria dinmica.
Cuando se ejecuta un programa, el
sistema operativo reserva una zona de
memoria para el cdigo o instrucciones
del programa y otra para las variables que
se usan durante la ejecucin. A menudo,
estas zonas son la misma zona; es lo que
se llama memoria local. Tambin hay
otras zonas de memoria, como la pila,
que se usa, entre otras cosas, para
intercambiar datos entre funciones. El
resto, la memoria que no se usa por
ningn programa, es lo que se conoce
como "heap" o montn. Cuando nuestro
programa
use
memoria
dinmica,
normalmente usar memoria del montn,
y no se llama as porque sea de peor
calidad, sino porque suele haber
realmente un montn de memoria de este
tipo.
C++ dispone de dos operadores para
acceder a la memoria dinmica, son "new"
y "delete". En C, estas acciones se realizan
mediante funciones de la librera estndar
"mem.h".
Hay una regla de oro cuando se usa
memoria dinmica. Toda la memoria que
se reserve durante el programa hay que
liberarla antes de salir del programa. No
seguir esta regla es una actitud muy
irresponsable, y en la mayor parte de los
casos tiene consecuencias desastrosas.
Los operadores "new" y "delete" veremos
un ejemplo:

int *a;
har *b;
loat *c;
struct stPunto {
float x,y;
} *d;
a = new int;
= new char;
= new float;
= new stPunto;
*a = 10;
b = 'a';
c = 10.32;
d->x = 12; d->y = 15;
out << "a = " << *a << endl;
out << "b = " << *b << endl;
out << "c = " << *c << endl;
out << "d = (" << d->x << ", " << d->y
<< ")" << endl;
delete a;
delete b;
delete c;
delete d;
return 0;

Y mucho cuidado: si pierdes un puntero a


una variable reservada dinmicamente,
porque no podrs liberarla.
Ejemplo:
int main() {
int *a;
a = new int; // variable dinmica
a = 10;
= new int; // nueva variable dinmica, se
pierde la anterior
a = 20;
elete a; // slo liberamos la ltima reservada
return 0;
}

En este ejemplo vemos cmo es imposible


liberar la primera reserva de memoria
dinmica. Si no la necesitbamos, habra
que liberarla antes de reservarla otra vez,
y si la necesitamos, hay que guardar su
direccin, por ejemplo con otro puntero.

#include <iostream.h>
int main() {

134

Programacin Estruccturada Codificada

Estructuras y funciones.

Paso de estructuras a funciones


Las estructuras se pueden pasar
directamente a una funcin igual que
hacamos con las variables. Por supuesto,
en la definicin de la funcin debemos
indicar el tipo de argumento que usamos:
int nombre_funcin ( struct
nombre_de_la_estructura nombre_de_la
variable_estructura )
En el ejemplo siguiente, se usa una
funcin llamada suma que calcula cul
ser la edad 20 aos ms tarde
(simplemente suma 20 a la edad). Esta
funcin toma como argumento la variable
estructura arg_amigo. Cuando se ejecuta
el programa, llamamos a suma desde
main y en esta variable se copia el
contenido de la variable amigo.
Esta funcin devuelve un valor entero
(porque est declarada como int) y el
valor que devuelve (mediante return) es la
suma.
#include <stdio.h>
struct estructura_amigo {
char nombre[30];
char apellido[40];
char telefono[10];
int edad;
};
struct estructura_amigo amigo = {
"Juanjo",
"Lopez",
"592-0483",
30
};
int suma( struct estructura_amigo arg_amigo )

return arg_amigo.edad+20;
Programacin Estruccturada Codificada

}
int main()
{
printf( "%s tiene ", amigo.apellido );
printf( "%i aos ", amigo.edad );
printf( "y dentro de 20 aos tendr %i.\n",
suma(amigo) );
}

Si dentro de la funcin suma hubisemos


cambiado algn valor de la estructura,
dado que es una copia, no hubiera
afectado a la variable amigo de main. Es
decir, si dentro de 'suma' hacemos
arg_amigo.edad = 20; el valor de
arg_amigo cambiar, pero el de amigo
seguir siendo 30.
Tambin se pueden pasar estructuras
mediante punteros o se puede pasar
simplemente un miembro (o campo) de la
estructura.
Si usamos punteros para pasar estructuras
como argumentos habr que hacer unos
cambios al cdigo anterior (en negrita y
subrrayado):
int suma( struct estructura_amigo *arg_amigo )
{
return arg_amigo->edad+20;
}
int main()
{
printf( "%s tiene ", amigo.apellido );
printf( "%i aos ", amigo.edad );
printf( "y dentro de 20 aos tendr %i.\n",
suma(&amigo) );
}

Lo primero, ser indicar a la funcin suma


que lo que va a recibir es un puntero. Para
eso, ponemos el * (asterisco). Segundo,
como dentro de la funcin suma usamos
un puntero a estructura y no una variable
estructura, debemos cambiar el '.' (punto)
por el '->'. Tercero, dentro de main
135

cuando llamamos a suma, debemos pasar


la direccin de amigo, no su valor; por lo
tanto, debemos poner '&' delante de
amigo.
Si usamos punteros a estructuras,
corremos el riesgo (o tenemos la ventaja,
segn cmo se mire) de poder cambiar
los datos de la estructura de la variable
amigo de main.
Pasar slo miembros de la estructura
Otra posibilidad es no pasar toda la
estructura a la funcin, sino tan slo los
miembros que sean necesarios. Los
ejemplos anteriores seran ms correctos
usando esta tercera opcin, ya que slo
usamos el miembro 'edad':
int suma( char edad )
{
return edad+20;
}
int main()
{
printf( "%s tiene ", amigo.apellido );
printf( "%i aos ", amigo.edad );
printf( "y dentro de 20 aos tendr
%i.\n", suma(amigo.edad) );
}
Por supuesto, a la funcin suma hay que
indicarle que va a recibir una variable tipo
char (amigo->edad es de tipo char).

Arreglos de estructuras

El siguiente programa es bsicamente el


mismo que el anterior, pero esta vez
definimos un array de 12 variables
llamadas chicos. Est claro que ste
136

programa contiene 12 veces 3=36


variables sencillas, cada una de las cuales
puede almacenar un tem de dato siempre
y cuando sea del tipo adecuado. Se define
adems una variable comn llamada
ndice para utilizarla en los bucles, estudia
el cdigo:
#include <stdio.h>
typedef struct {
char inicial;
nt edad;
nt calificacion;
}Estudiante;
Estudiante chicos[12];
void main() {
int indice;
or (indice = 0; indice < 12; indice++) {
hicos[ndice].inicial = 'A' + ndice;
hicos[ndice].edad = 16;
hicos[ndice].calificacion = 84;
}
chicos[3].edad = chicos[5].edad = 17;
hicos[2].calificacion = chicos[6].calificacion
= 92;
hicos[4].calificacion = 57;
/* Asignacion de estructura solo en
compiladores ANSI-C */
chicos[10] = chicos[4]; //Linea 16
for (ndice = 0; ndice < 12; indice++)
printf("%c tiene %d anos y una calificacion
de %d\n", chicos[ndice].inicial,
chicos[ndice].edad,
chicos[ndice].calificacion);
}
Para asignar un valor a cada uno de los
campos utilizamos un bucle for, en cada
ciclo del bucle se asignan todos los valores
para uno de los chicos. En una situacin
real, sta podra no ser la mejor manera de
asignar datos, pero un bucle puede leer los
datos de un archivo y almacenarlos en la
correcta ubicacin en un programa real.
Considera ste ejemplo como un inicio
burdo a una base de datos, pues eso es
justamente nuestro ejemplo. El cdigo
resulta fcil de entender, solo se har un
Programacin Estruccturada Codificada

comentario respecto a la lnea 16, en donde


podemos ver una asignacin de estructura.
En ste enunciado, los tres campos de
chicos[4] son copiados en los respectivos
campos de chicos{10], esto no siempre est
permitido en el lenguaje C, slo en los
compiladores que cumplen con la norma
ANSI-C.

Estructuras auto referenciadas

Es posible crear estructuras que tengan


como miembros otras estructuras. Esto
tiene diversas utilidades; por ejemplo,
tener la estructura de datos ms
ordenada. Imaginemos la siguiente
situacin: una tienda de msica quiere
hacer un programa para el inventario de
los discos, cintas y cd's que tienen. Para
cada ttulo se quiere conocer las
existencias en cada soporte (cinta, disco,
cd), y los datos del proveedor (el que le
vende ese disco). Podra pensar en una
estructura as:
struct inventario {
char titulo[30];
char autor[40];
int existencias_discos;
int existencias_cintas;
int existencias_cd;
char nombre_proveedor[40];
char telefono_proveedor[10];
char direccion_proveedor[100];
};

Sin embargo, utilizando estructuras


anidadas se podra hacer de esta otra
forma ms ordenada:
struct estruc_existencias {
int discos;
Programacin Estruccturada Codificada

int cintas;
int cd;
};
struct estruc_proveedor {
char proveedor[40];
char proveedor[10];
char proveedor[100];
};
struct estruc_inventario {
char titulo[30];
char autor[40];
struct estruc_existencias existencias;
struct estruc_proveedor proveedor;
} inventario;
Ahora, para acceder al nmero de cd de
cierto ttulo usaramos lo siguiente:
inventario.existencias.cd
y para acceder al nombre del proveedor:
inventario.proveedor.nombre

Bsqueda en tablas

Tablas o vectores
La declaracin de vectores en C. Se hace
mediante el siguiente formato:
tipo nombre_vector [dim]

Donde dim ha de ser un nmero entero y


denota la dimensin o longitud del
vector. As, las instrucciones siguientes:
int datos[10]:
char nombre[12], apellido[12];

137

declaran un vector de enteros de 10


elementos y dos vectores de caracteres de
12 elementos cada uno.
Una vez declarado un vector de n
elementos, se puede leer y escribir en sus
componentes teniendo en cuenta que
stas se numeran de la 0 a la n-1. Por
ejemplo, para referenciar la primera letra
de apellido se ha de escribir apellido[0] y
para referenciar el ltimo elemento de
datos se ha de escribir datos[9].
Para declarar variables indexadas con mas
de un ndice, el formato es
Tipo
nombre_variable[dim_1][dim_2]...[dim_
k]

Usualmente, se llama vector una variable


con un ndice y matriz una variable con
dos ndices. Adems, el primer ndice se
llama fila, el segundo columna y el tercero
pgina. A partir del cuarto ndice no se
utilizan nombres especficos.
Cadenas de caracteres
Es frecuente emplear vectores para la
manipulacin de cadenas de caracteres,
como nombres de personas, de calles, etc.
En estos casos, hemos de declarar la
variable con una longitud capaz de alojar
el nombre ms largo de entre los valores
posibles. As, para almacenar nombres de
personas, podemos declarar el vector
char nombre[15]

si se sabe que 15 es una cota para el


tamao de los nombres que aparecern
durante la ejecucin. Ahora bien, resulta
muy incmodo tener que rellenar con
138

espacios el resto de las letras hasta la 15,


cada vez que se lee un nombre desde el
teclado. Para facilitar el tratamiento de
estos vectores de caracteres con longitud
variable, C tiene un tipo predefinido que
resulta muy conveniente: el tipo string
(cadena de caracteres). Su declaracin es
la normal de un vector de caracteres. Lo
que cambia es su lectura y escritura. En el
momento de leer una cadena de
caracteres, el computador los leer uno a
uno hasta encontrar un cambio de lnea.
Cuando esto suceda, aadir al final de la
secuencia leda un carcter nulo (el
carcter con cdigo ASCII igual a 0). Esta
marca le permitira saber posteriormente
dnde se encuentra el fin de la cadena.
Cabe decir que si sabemos que la longitud
mxima de las cadenas a tratar es k, hace
falta declarar el vector de dimensin k+1
para poder alojar tambin esta marca. As,
en el ejemplo anterior se debera declarar:
char nombre[16]

La lectura de una cadena de caracteres se


realiza poniendo en el control el formato
%s y quitando del nombre de la variable
el prefijo & en la instruccin scanf. Existe
otra manera de leer una cadena desde el
teclado, usando la instruccin gets con el
formato
gets (nombre_cadena);

que lee todos los caracteres tecleados


hasta pulsar la tecla retorno. Para la
escritura, tambin hace falta utilizar el
formato %s en la parte de control del
printf.
C tambin posee una gran variedad de
funciones para manipular cadenas. Las
ms utilizadas son
Programacin Estruccturada Codificada

strcpy (cad_1, cad_2);


strcat (cad_1, cad_2);
res_comparacion = strcmp (cad_1, cad_2);
longitud = strlen (cad);

La primera copia el contenido de cad_2


sobre cad_1. La segunda aade el
contenido de cad_2 al final de cad_1. La
tercera compara lexicogrficamente los
contenidos de las cadenas que recibe
como entradas y retorna 0 si son la
misma. Si cad_1 es mayor que cad_2,
entonces retorna un nmero positivo y, si
es menor, uno negativo. Finalmente
strlen(cad) retorna la longitud de cad.
Para utilizar estas instrucciones hace falta
importarlas del mdulo string.
Finalmente, cabe destacar que las cadenas
constantes se encierran entre comillas
dobles ". Por ejemplo, en
strcpy (cad, "hola");

se asocia la cadena hola a la variable cad.

CONTEXTUALIZACIN
Competencia tecnolgica
Investigar usos y alcances
de diferentes tecnologas para
procesamiento de datos e insercin
de imgenes
Las estructuras C++ son una herencia de
C; existen (se implementaron) por
compatibilidad hacia atrs con el cdigo
del C clsico, pero en el contexto de C++
no tienen demasiado sentido ya que las
clases, un concepto mucho ms general,
Programacin Estruccturada Codificada

las engloban, dejndolas arrinconadas


como un caso particular de un mundo
mucho ms rico y potente.
Nota: De hecho, las estructuras C++ son una especie de
hbrido entre las estructuras C tradicionales (de las que son un
superconjunto) y las clases C++, de las que son una variedad
con propiedades muy especficas, por ejemplo, todos los
miembros son pblicos.
Realmente, el programador C++ no debera necesitar nunca
utilizar estructuras como tales, ya que pueden ser sustituidas
por clases definidas con ciertas peculiaridades. En concreto, las
estructuras C pueden ser consideradas como un tipo especial
de clases que no tienen mtodos, el acceso por defecto es
pblico, y para la clase base tambin es pblico por defecto.
Sin embargo, puesto que las clases C++ disponen de tres tipos
de modificadores de acceso: pblico, privado y protegido, el
considerarlas como tales permite un mayor control de acceso
de las estructuras que el ofrecido por el C clsico.

El alumno:
Identificar
que la aplicacin
tecnologa del procesador de texto
simplifica tareas, optimiza tiempo,
oportunidad y mejora en el trabajo.
Competencia de calidad
Acatar la normatividad en materia
informtica respetando el marco de la
legalidad en dicha rea.
El alumno:
Evitar el uso de software de
lenguaje C ilegal, garantizando su
funcionamiento y la calidad del
mismo.
Para mayor informacin consulte las
siguientes direcciones electrnicas
http://webpages.ull.es/users/fsande/talf/cursoc/
http://www.sisoft.ucm.es/Manuales/Lenguaje_C.pdf
http://labsopa.dis.ulpgc.es/cpp/intro_c/

139

2.2.2 ENTRADA Y SALIDA


En C no existe ninguna palabra clave para
realizar la entrada y salida de datos (E/S).
Se realizan a travs de funciones de
biblioteca (concretamente, la biblioteca
stdio.h,.

E/S por consola

Las funciones principales que realizan la


entrada y salida sin formato son:
getchar (): Lee un carcter del
teclado. Espera hasta que se pulsa una
tecla y entonces devuelve su valor.
putchar (): Imprime un carcter
en la pantalla en la posicin actual del
cursor.
gets ():
Lee una cadena de
caracteres introducida por el teclado y la
sita en una direccin apuntada por su
argumento de tipo puntero a carcter.
puts():
Escribe un argumento
de tipo cadena en la pantalla seguida de
su carcter de salto de lnea.
El siguiente fragmento de cdigo lee un
carcter del teclado y lo muestra por
pantalla. A continuacin lee una cadena
(de 10 caracteres incluido el carcter nulo)
y tambin la muestra por pantalla:
#include <stdio.h>
main()
{
char cadena[10];
int i;
i=getchar();
putchar(i);
gets(cadena);
puts(cadena),
}

Las funciones principales que realizan la


entrada y salida con formato se pueden
leer y escribir en distintas formas
controladoras, siendo stas:
printf()
:
Escribe datos en
la consola con el formato especificado.
scanf():
Funcin de entrada
por consola con el formato especificado
Sus prototipos son los siguientes:
int
printf(caracteres
de
transmisin
y
escape,
lista
de
argumentos);
int scanf(caracteres de transmisin
y escape, lista de argumentos);
En la funcin printf() (con scanf() no),
entre comillas se pueden poner rtulos
literales mezclados con los caracteres de
transmisin.
Los caracteres de transmisin son
precedidos de un % para distinguirlos de
los normales:
Caracteres de
transmisin

%c
%Ns

%Nd %Ni
%o
%x %X
%Nu
%N.Df
%N.De %N.DE
%N.De %N.DG

%p
%%

140

Argumento que
transmite
Int: un carcter simple.
Char *: una cadena de
caracteres
Int: un nmero decimal
Int: octal sin signo
Int: hexadecimal sin
signo
Int: decimal sin signo
Float o double con D
decimales el notacin
fija.
Float o double con D
decimales, en notacin
cientfica
Float o double en
notacin cientfica si el
exponente es menor de
diez a la menos cuatro,
o fija en caso contrario.
Void*:
escribe
el
nmero
que
corresponde al puntero.
Escribe un signo de %

Programacin Estruccturada Codificada

Donde aparezcan las letras N,D o no se


pone nada o sern en realidad dos
nmeros que dicen que la transmisin
total del valor al menos ocupar N
posiciones (si el nmero necesita ms de
N las tomar, si usa menos las dejar en
blancos, a menos que se quiera rellenar
con ceros, entonces se pone 0N) y que la
parte decimal tendr como mximo las D
posiciones despus de un punto.
Normalmente, el nmero se ajusta por la
derecha del campo de N posiciones que le
henos dicho que utilice; si deseamos el
ajuste por la izquierda, se aade un sino
menos precediendo al valor N (-N).
Una l precediendo a N (p.e. %l5d)
significa que transmitiremos un long int:
si, por el contrario, es una h significa que
transmitiremos un short int.
Existe otro tipo de carcter especial, los
caracteres de escape, que tienen un
significado especial. Los caracteres de
escape son los siguientes:
Caracteres de
escape
\n
\t
\b
\r
\f
\a
\
\
\\
\xdd

\ddd

Significado
Nueva lnea
Tabulador
Espacio atrs
Retorno de carro
Comienzo de pgina
Pitido sonoro
Comilla simple
Comilla doble
Barra invertida
Cdigo
ASCII
en
notacin
hexadecimal
(cada d representa un
dgito
Cdigo
ASCII
en
notacin octal (cada d
representa un dgito.

Programacin Estruccturada Codificada

La lista de argumentos estar separada


por
comas.
Debe
existir
una
correspondencia biyectiva entre los
caracteres de transmisin (aqullos que
comienzan con un %) y la lista de
argumentos a transmitir.
Cabe destacar una diferencia en la lista de
argumentos entre las funciones printf() y
scanf(). En sta ltima funcin (scanf()), la
lista de argumentos va precedida por el
operador de direccin (&), puesto que
scanf() requiere que los argumentos sean
las direcciones de las variables, en lugar
de ellas mismas.

E/S por archivos

En C, un archivo puede ser cualquier cosa,


desde un archivo de disco a una terminal
o una impresora. Se asocia una secuencia
con un archivo especfico, realizando una
operacin de apertura. Una vez que est
abierto, la informacin puede ser
intercambiada entre ste y el programa. El
puntero a un archivo es el hilo que unifica
el sistema de E/S con buffer. Un puntero a
un archivo es un puntero a una
informacin que define varias cosas sobre
l, incluyendo el nombre, el estado y la
posicin actual del archivo. En esencia, el
puntero a un archivo identifica un archivo
en disco especfico y utiliza la secuencia
asociada para dirigir el funcionamiento de
las funciones de E/S con buffer. Para
obtener una variable de tipo puntero a
archivo se debe utilizar una sentencia
como la siguiente:
FILE*punt;

141

La funcin fopen() abre una secuencia


para que pueda ser utilizada y la asocia a
un archivo.
Su prototipo es:
FILE*fopen(const
char*nombre_archivo,
const char*modo);
Donde nombre_archivo es un puntero a
una cadena de caracteres que representan
un nombre vlido del archivo y puede
incluir una especificacin de directorio. La
cadena que apunta modo determina
cmo se abre el archivo. Los modos son
los siguientes:
r: Abre un archivo de texto para lectura.
w. Crea un archivo de texto para escritura
a: Abre un archivo de texto para aadir.
r+: Abre un archivo de texto para
lectura/escritura.
w+: Crea un archivo de texto para
lectura/escritura.
a+: Aade o crea un archivo de texto para
lectura escritura.

Por ejemplo, si se desea abrir un archivo


llamado prueba para escritura, hay que
escribir:
FILE*fp
Fp= fopen(prueba,w);

La funcin fclose() cierra una secuencia


que fue abierta mediante una llamada
fopen(). Escribe toda la informacin que
todava se encuentre en el buffet del disco
y realiza un cierre formal del archivo a
nivel del sistema operativo. Tambin
libera el bloque de control de archivo
asociado con la secuencia, dejndolo libre
para su reutilizacin. A veces es necesario
cerrar algn archivo para poder abrir otro,
debido a la existencia de un lmite del
sistema operativo en cuanto al nmero de
archivos abiertos. Su prototipo es:
142

int fclose(FILE *fp):


La funcin putc() escribe caracteres en un
archivo
que
haya
sido
abierto
previamente
para
operaciones
de
escritura, realizando la funcin fopen(). Su
prototipo es:
int putc (int car, FILE *pf);

La funcin getc() escribe caracteres en un


archivo que haya sido abierto, en modo
lectura, mediante fopen(). Su prototipo
es:
int getc (FILE *pf);

La funcin fputs() escribe la cadena en la


secuencia especificada. Su prototipo es:
int fputs(const char * cad, FILE *pf);

La funcin fgets() lee una cadena de la


secuencia especificada hasta que se lee un
carcter de salto de lnea o hasta que se
han ledo longitud-1 caracteres. Su
prototipo es:
Int fgets(char *char, FILE *pf);

La funcin rewind() inicia el indicador de


posicin al principio del archivo indicado
por su argumento. Su prototipo es:
Void rewind(FILE *pf);

Existen otras muchas funciones en la


biblioteca estndar de C como pueden
ser:
remove(): Borra el archivo especificado.
fflux():
Vaca el contenido de
una secuencia de salida.
Programacin Estruccturada Codificada

Fread():
Lee tipos de datos que
ocupan ms de un byte. Permiten la
lectura de bloques de cualquier tipo de
datos.
fwrite():
Escribe tipos de datos que
ocupan ms de un byte. Permiten la
escritura de bloques de cualquier tipo de
datos.
fprint():
Hace las funciones de printf()
sobre un fichero.
fscan():
Hace las funciones de
scanf() sobre un fichero.
feof():
Detecta el final de un
fichero.
ferror():
Detecta un error en la
lectura/escritura de un fichero.

#error

#include
#undef
#if
#endif

#else

#elseif
#ifdef y #ifndef

Prepocesador

Se pueden incluir varias instrucciones


dirigidas al compilador en el cdigo
fuente de un programa en C. Se llaman
directivas de preprocesamiento y, aunque
no son realmente parte del lenguaje C,
amplan el mbito del entorno de
programacin en C.

#line

Fuerza al compilador a parar la


compilacin, mostrando un mensaje
de error.
P:e.: #error mensaje_de_error.
Incluye otro archivo fuente.
P.e.: #include <stdio.h>
Elimina una definicin de macro
previa
P.e.: #undef CIERTO
Permite la inclusin de texto en
funcin del valor de una expresin
test
Marca el final de un bloque #if.
P.e.: #if expresin-constante
Secuencia sentencias
#endif
Incluye un texto si el test establecido
en el comando #if, o #ifdef o
#ifndef que le precede ha dado
resultado falso.
Significa else if
Permite la inclusin de texto en
funcin de si ha sido definida o no
previamente un nombre de macro
respectivamente.
Cambia los contenidos de _LINE_ y
_FILE_, que son identificadores del
compilador predefinidos. _LINE_
contiene el nmero de lnea que se
est
compilando
actualmente.
_FILE_ es una cadena que contiene
el nombre del archivo fuente que se
est compilando.
P.e.; #line nmero nombre del
archivo.
Definida por la implementacin que
permite se den varias instrucciones
al compilador.

Se denomina prepocesador a un
programa que procesa macros. Una
macro
es
una
codificacin
de
instrucciones que implican una o varias
acciones. El preprocesador toma como
entrada el programa fuente en C antes
que el compilador y ejecuta todas las
macros que encuentra.

#pragma

Los comandos para el procesador se


ponen entre las lneas de cdigo fuente
pero se distinguen porque comienzan con
el smbolo #. La lista de comandos
normalizados del procesador son:

En la composicin de macros se pueden


utilizar todos los elementos bsicos del
lenguaje.

Comando
#define

Accin
Define una macro.
P.e.: #define CIERTO 1

Programacin Estruccturada Codificada

La lnea completa que comienza con # es


una lnea para el procesador. Si se desea
que la siguiente lnea del fichero sea
continuacin del anterior, sta debe
terminar con \.

Las expresiones que se pueden poner en


los comandos del preprocesador cuando
ponemos la frmula expresin, debe ser
143

una expresin que de los mismos


resultados que si la escribisemos en una
lnea de C. El resultado debe ser una
constante.

CONTEXTUALIZACIN
Competencia cientfica- terica
1. Aplicar
conocimientos
multidisciplinarios
para
la
comunicacin,
procesamiento
y
transmisin de la informacin.

de
sobres
y
etiquetas
direcciones impresas.

con

Para mayor informacin consulte las


siguientes direcciones electrnicas
http://webpages.ull.es/users/fsande/talf/cursoc/
http://www.sisoft.ucm.es/Manuales/Lenguaje_C.pdf
http://labsopa.dis.ulpgc.es/cpp/intro_c/
http://correo.puj.edu.co/el982002/lenguajeC.htm
http://www.jeanpaul.com.ar/

El preprocesador es una parte del


compilador que se ejecuta, en primer
lugar, cuando se compila un programa
fuente en C y que realiza determinadas
operaciones independientes del propio
lenguaje C. Estas operaciones se realizan a
nivel lxico y son: la inclusin de otros
textos en un punto del cdigo fuente,
realiza sustituciones o elimina ciertas
partes del fuente. Debemos tener en
cuenta que el preprocesador trabaja
nicamente con el texto del programa
fuente y no tiene en cuenta ningn
aspecto sintctico ni semntico del
lenguaje.
El control del preprocesador se realiza
mediante
determinadas
directivas
incluidas en el programa fuente. Una
directiva es una palabra que interpreta el
preprocesador, que siempre va precedida
por el smbolo # y que est situada a
principio de lnea.
El alumno:
Identificar
combinaciones
matemticas aplicadas en la emisin
144

Programacin Estruccturada Codificada

PRCTICAS DE EJERCICIO Y LISTA DE COTEJO


Unidad de aprendizaje:

Prctica nmero:

18

Nombre de la prctica:

Uso de funciones

Propsito de la
prctica:

Al finalizar la prctica, el alumno aplicar


funciones en una rutina de
programacin con el lenguaje de programacin C.

Escenario:

Laboratorio de
Informtica.

Duracin:

6 hrs.

Software

Materiales
de lenguaje

de

Maquinaria y equipo
Computadora (Pentium II como

programacin C.
Manual de C.

Herramienta

requerimiento mnimo).
Impresora.

Programacin Estruccturada Codificada

145

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
Disponer del manual de lenguaje de programacin C.
1. Encender equipo de cmputo.
2.

Abrir sesin de ambiente grfico.

3. Verificar que el equipo de cmputo se encuentre conectado.


4. Encender equipo de cmputo.
5. Abrir sesin de ambiente grfico.
6. Emular MS-DOS.
7. Escribir un programa que imprima el volumen de una esfera (cuatro veces pi por el cubo del radio) para
varios radios entre 0 y 4.0 en incrementos de 0.2.
8. Utilizar una funcin separada para calcular el volumen.
9. Elaborar en borrador del programa en lenguaje C para resolver el ejercicio propuesto.
10. Realizar una prueba de escritorio.
11. Accesar el subdirectorio donde se encuentra C.
12. Abrir el editor de C.
13. Transcribir el programa en el editor de C.
14. Guardar el archivo que contiene el programa transcrito.
15. Compilar el programa.
16. De ser necesario, iniciar un proceso de depuracin del programa (correccin de errores) hasta cerciorarse
que el programa cumpla con el objetivo establecido.
17. Apagar el equipo de cmputo.
18. Repetir los procedimientos con asesora del PSP.
4 Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.

146

Programacin Estruccturada Codificada

Uso de funciones

Lista de cotejo de la prctica


Nmero 18:
Nombre del alumno:
Instrucciones:

A continuacin se presentan los criterios que van a ser verificados


en el desempeo del alumno mediante la observacin del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo.
Desarrollo

Aplic las medidas de seguridad e higiene.


Evit la manipulacin de lquidos cerca del equipo.
No introdujo objetos extraos en los dispositivos de disco,
No utiliz imanes cerca de discos flexibles, discos compactos del equipo.
Limpi el rea de trabajo.
Dispuso del manual de lenguaje de programacin C.
1. Encendi equipo de cmputo.
2. Abri sesin de ambiente grfico.
3. Verific que el equipo de cmputo se encuentre conectado.
4. Encendi equipo de cmputo.
5. Abri sesin de ambiente grfico.
6. Emul MS-DOS.
7. Escribi un programa que imprima el volumen de una esfera (cuatro veces pi
por el cubo del radio) para varios radios entre 0 y 4.0 en incrementos de 0.2.
8. Utiliz una funcin separada para calcular el volumen.
9. Elabor en borrador del programa en lenguaje C para resolver el ejercicio
propuesto.
10. Realiz una prueba de escritorio.
11. Acces el subdirectorio donde se encuentra C.
12. Abri el editor de C.
13. Transcribi el programa en el editor de C.
14. Guard el archivo que contiene el programa transcrito.
15. Compil el programa.
16. Inici un proceso de depuracin del programa (correccin de errores) hasta
cerciorarse que el programa cumpla con el objetivo establecido.
17. Apag el equipo de cmputo.
18. Repiti los procedimientos con asesora del PSP.
4 Deposit los residuos recuperables disponiendo de 3 botes de reciclaje tonner,
discos y papel..

No

No
Aplica

Observaciones:
PSP:
Hora de
inicio:
Programacin Estruccturada Codificada

Hora de
trmino:

Evaluacin:

147

Unidad de aprendizaje:

Prctica nmero:

19

Nombre de la prctica:

Uso de arreglos

Propsito de la
prctica:

Al finalizar la prctica, el alumno aplicar arreglos con el lenguaje de programacin


C.

Escenario:

Laboratorio de
Informtica.

Duracin:

4 hrs.

Software

Materiales
de lenguaje

programacin C.

de

Maquinaria y equipo
Computadora (Pentium II como

Herramienta

requerimiento mnimo).

Manual de C.

148

Programacin Estruccturada Codificada

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
Disponer del manual de lenguaje de programacin C.
1. Encender equipo de cmputo.
2. Abrir sesin de ambiente grfico.
3. 3 Verificar que el equipo de cmputo se encuentre conectado.
4. Encender equipo de cmputo.
5. Abrir sesin de ambiente grfico.
6. Emular MS-DOS.
7. Escribir un programa que contenga un array inicializado con los siguientes valores 12, 34, 56 y 78 sumar los
elementos del array y calcular el valor medio. Imprimir la suma y la media.
8. Elaborar en borrador del programa en lenguaje C para resolver el ejercicio propuesto.
9. Realizar una prueba de escritorio.
10. Accesar el subdirectorio donde se encuentra C.
11. Abrir el editor de C.
12. Transcribir el programa en el editor de C.
13. Guardar el archivo que contiene el programa transcrito.
14. Compilar el programa.
15. De ser necesario, iniciar un proceso de depuracin del programa (correccin de errores) hasta cerciorarse que
el programa cumpla con el objetivo establecido.
16. Apagar el equipo de cmputo.
17. Repetir los procedimientos con asesora del PSP.
4 Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.

Programacin Estruccturada Codificada

149

Lista de cotejo de la prctica


Nmero 19:

Uso de arreglos

Nombre del alumno:


Instrucciones:

A continuacin se presentan los criterios que van a ser verificados


en el desempeo del alumno mediante la observacin del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo.
Desarrollo

Aplic las medidas de seguridad e higiene.


Evit la manipulacin de lquidos cerca del equipo.
No introdujo objetos extraos en los dispositivos de disco,
No utiliz imanes cerca de discos flexibles, discos compactos del equipo.
Limpi el rea de trabajo.
Consult el manual de Word.
Dispuso del manual de lenguaje de programacin C.
1. Encendi equipo de cmputo.
2. Abri sesin de ambiente grfico.
3. 3 Verific que el equipo de cmputo se encuentre conectado.
4. Encendi equipo de cmputo.
5. Abri sesin de ambiente grfico.
6. Emul MS-DOS.
7. Escribi un programa que contenga un array inicializado con los siguientes
valores 12, 34, 56 y 78 sumar los elementos del array y calcular el valor
medio. Imprimi la suma y la media.
8. Elabor en borrador del programa en lenguaje C para resolver el ejercicio
propuesto.
9. Realiz una prueba de escritorio.
10. Acces el subdirectorio donde se encuentra C.
11. Abri el editor de C.
12. Transcribi el programa en el editor de C.
13. Guard el archivo que contiene el programa transcrito.
14. Compil el programa.
15. Inici un proceso de depuracin del programa (correccin de errores) hasta
cerciorarse que el programa cumpla con el objetivo establecido.
16. Apag el equipo de cmputo.
17. Repiti los procedimientos con asesora del PSP.
4 Deposit los residuos recuperables disponiendo de 3 botes de reciclaje tonner,
discos y papel..

No

No
Aplica

Observaciones:
PSP:
Hora de
inicio:

150

Hora de
trmino:

Evaluacin:
Programacin Estruccturada Codificada

Unidad de aprendizaje:

Prctica nmero:

20

Nombre de la prctica:

Uso de punteros.

Propsito de la
prctica:

Al finalizar la prctica, el alumno aplicar punteros con el lenguaje de


programacin C.

Escenario:

Laboratorio de
Informtica.

Duracin:

4 hrs.

Software

Materiales
de lenguaje

de

Maquinaria y equipo
Computadora (Pentium II como

programacin C.

Herramienta

requerimiento mnimo).

Manual de C.

Programacin Estruccturada Codificada

151

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
Disponer del manual de lenguaje de programacin C.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.

Encender equipo de cmputo.


Abrir sesin de ambiente grfico.
Accesar el procesador de texto, haciendo clic en su icono correspondiente.
Abrir un documento.
Verificar que el equipo de cmputo se encuentre conectado.
Encender equipo de cmputo.
Abrir sesin de ambiente grfico.
Emular MS-DOS.
Escribir un programa que imprima el valor de cada elemento de un array, cada valor en una lnea de
salida. Utilizar un puntero, no un ndice, para acceder a cada elemento, y calcular el tamao del array en
lugar de emplear una constante definida.
Elaborar en borrador del programa en lenguaje C para resolver el ejercicio propuesto.
Realizar una prueba de escritorio.
Accesar el subdirectorio donde se encuentra C.
Abrir el editor de C.
Transcribir el programa en el editor de C.
Guardar el archivo que contiene el programa transcrito.
Compilar el programa.
De ser necesario, iniciar un proceso de depuracin del programa (correccin de errores) hasta cerciorarse
que el programa cumpla con el objetivo establecido.
Apagar el equipo de cmputo.
Repetir los procedimientos con asesora del PSP.

4 Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.

152

Programacin Estruccturada Codificada

Lista de cotejo de la prctica


Nmero 20:

Uso de punteros.

Nombre del alumno:


Instrucciones:

A continuacin se presentan los criterios que van a ser verificados


en el desempeo del alumno mediante la observacin del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo.
Desarrollo

No

No
Aplica

Aplic las medidas de seguridad e higiene.


Evit la manipulacin de lquidos cerca del equipo.
No introdujo objetos extraos en los dispositivos de disco,
No utiliz imanes cerca de discos flexibles, discos compactos del equipo.
Limpi el rea de trabajo.
Dispuso del manual de lenguaje de programacin C.
1. Encendi equipo de cmputo.
2. Abri sesin de ambiente grfico.
3. Acces el procesador de texto, haciendo clic en su icono correspondiente.
4. Abri un documento.
5. Verific que el equipo de cmputo se encuentre conectado.
6. Encendi equipo de cmputo.
7. Abri sesin de ambiente grfico.
8. Emul MS-DOS.
9. Escribi un programa que imprima el valor de cada elemento .
10. Elabor en borrador del programa en lenguaje C para resolver el ejercicio
propuesto.
11. Realiz una prueba de escritorio.
12. Acces el subdirectorio donde se encuentra C.
13. Abri el editor de C.
14. Transcribi el programa en el editor de C.
15. Guard el archivo que contiene el programa transcrito.
16. Compil el programa.
17. inici un proceso de depuracin del programa (correccin de errores) hasta
cerciorarse que el programa cumpla con el objetivo establecido.
18. Apagar el equipo de cmputo.
19. Repiti los procedimientos con asesora del PSP.
4 Deposit los residuos recuperables disponiendo de 3 botes de reciclaje tonner,
discos y papel..
Observaciones:
PSP:
Hora de
inicio:

Programacin Estruccturada Codificada

Hora de
trmino:

Evaluacin:

153

Unidad de aprendizaje:

Prctica nmero:

21

Nombre de la prctica:

Uso de ficheros.

Propsito de la
prctica:

Al finalizar la prctica, el alumno controlar el Acces y operaciones en un fichero a


travs de un programa en lenguaje C.

Escenario:

Laboratorio de
Informtica.

Duracin:

6 hrs.

Software

Materiales
de lenguaje

programacin C.

de

Maquinaria y equipo
Computadora (Pentium II como

Herramienta

requerimiento mnimo).

Manual de C.

154

Programacin Estruccturada Codificada

Procedimiento
Aplicar las medidas de seguridad e higiene.
Evitar la manipulacin de lquidos cerca del equipo.
No introducir objetos extraos en los dispositivos de disco.
No utilizar imanes cerca de discos flexibles, discos compactos del equipo.
Limpiar el rea de trabajo.
Disponer del manual de lenguaje de programacin C.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.

Encender equipo de cmputo.


Abrir sesin de ambiente grfico.
Verificar que el equipo de cmputo se encuentre conectado.
Encender equipo de cmputo.
Abrir sesin de ambiente grfico.
Emular MS-DOS.
Escribir un programa que muestre el contenido de un archivo de texto ASCII en pantalla lnea por lnea.
Elaborar en borrador del programa en lenguaje C para resolver el ejercicio propuesto.
Realizar una prueba de escritorio.
Accesar el subdirectorio donde se encuentra C.
Abrir el editor de C.
Transcribir el programa en el editor de C.
Guardar el archivo que contiene el programa transcrito.
Compilar el programa.
De ser necesario, iniciar un proceso de depuracin del programa (correccin de errores) hasta cerciorarse
que el programa cumpla con el objetivo establecido.
16. Apagar el equipo de cmputo.
17. Repetir los procedimientos con asesora del PSP.
4 Depositar los residuos recuperables disponiendo de 3 botes de reciclaje tonner, discos y papel.

Programacin Estruccturada Codificada

155

Lista de cotejo de la prctica


Nmero 21:

Uso de ficheros.

Nombre del alumno:


Instrucciones:

A continuacin se presentan los criterios que van a ser verificados


en el desempeo del alumno mediante la observacin del mismo.
De la siguiente lista marque con una 9 aquellas observaciones
que hayan sido cumplidas por el alumno durante su desempeo.
Desarrollo

No

No
Aplica

Aplic las medidas de seguridad e higiene.


Evit la manipulacin de lquidos cerca del equipo.
No introdujo objetos extraos en los dispositivos de disco,
No utiliz imanes cerca de discos flexibles, discos compactos del equipo.
Limpi el rea de trabajo.
Dispuso del manual de lenguaje de programacin C.
1. Encendi equipo de cmputo.
2. Abri sesin de ambiente grfico.
3. Verific que el equipo de cmputo se encuentre conectado.
4. Encendi equipo de cmputo.
5. Abri sesin de ambiente grfico.
6. Emul MS-DOS.
7. Escribi un programa que muestre el contenido de un archivo de texto ASCII
en pantalla lnea por lnea.
8. Elabor en borrador del programa en lenguaje C para resolver el ejercicio
propuesto.
9. Realiz una prueba de escritorio.
10. Acces el subdirectorio donde se encuentra C.
11. Abri el editor de C.
12. Transcribi el programa en el editor de C.
13. Guard el archivo que contiene el programa transcrito.
14. Compil el programa.
15. Inici un proceso de depuracin del programa (correccin de errores) hasta
cerciorarse que el programa cumpla con el objetivo establecido.
16. Apag el equipo de cmputo.
17. Repiti los procedimientos con asesora del PSP.
4 Deposit los residuos recuperables disponiendo de 3 botes de reciclaje tonner,
discos y papel..
Observaciones:
PSP:
Hora de
inicio:

156

Hora de
trmino:

Evaluacin:
Programacin Estruccturada Codificada

RESUMEN
Un programa C est formado por un conjunto de funciones que mnimo contiene la
funcin main. Una funcin se declara con el nombre de la funcin precedido del tipo de
valor que retorna y una lista de argumentos encerrados entre parntesis. El cuerpo de la
funcin est formado por un conjunto de declaraciones y de sentencias comprendidas
entre llaves.
Un arreglo es un conjunto de celdas de memoria relacionadas entre s, ya que todos tienen
el mismo nombre, y almacenan el mismo tipo de datos para referirse a una celda en
particular, algn elemento dentro del arreglo y entre corchetes [] el nmero de posicin del
elemento dentro del arreglo.
Un puntero es una variable que representa la posicin (en vez del valor) de otro dato, tal
como una variable o un elemento de una formacin. Los punteros son usados
frecuentemente en C y tienen gran cantidad de aplicaciones; por ejemplo, pueden ser
usados para trasvasar informacin entre una funcin y sus puntos de llamada. En
particular, proporcionan una forma de devolver varios datos desde una funcin a travs de
los argumentos de la funcin.
Una estructura es un tipo de dato definido por el usuario. Al utilizar una estructura, se
tiene la habilidad para definir un nuevo tipo de dato considerablemente ms complejo que
los tipos que hemos utilizado hasta ahora. Una estructura es una combinacin de varios
tipos de datos previamente definidos, incluyendo otras estructuras que hayamos definido
previamente.
Se llama vector a una variable con un ndice y matriz una variable con dos ndices. Adems,
el primer ndice se llama fila, el segundo columna y el tercero pgina. A partir del cuarto
ndice no se utilizan nombres especficos.

Programacin Estruccturada Codificada

157

AUTOEVALUACIN DE CONOCIMIENTOS DEL CAPITULO 2


1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.

158

Cules son las partes de una funcion?


Cual es procedimiento para la llamada de una funcion?
Como se declaran las funciones sin argumenos?
Que es un arreglo
Que es un puntero?
Como se declara un puntero?
Que es unas estructura?
Que es un vector?
Cuales son 2 de las funciones para la manipulacion de cadenas?
Cuales son las funciones principales de entrada y salida por consola?
Cuales son las funciones principales de entrada y salida por archivos?
Que es preprocesador?

Programacin Estruccturada Codificada

RESULTADOS DE AUTOEVALUACIN DE CONOCIMIENTOS


Capitulo 2
1. .

nombre de la funcin
nmero de argumentos que lleva y tipo de cada uno de ellos
tipo de datos que devuelve
Cuerpo de la funcin (el cdigo que ejecuta)

2. Para llamar a una funcin, se escribe su nombre y entre parntesis los valores que se
deseen dar a los argumentos:
funcin ( expr1, expr2, ... )
3. Para llamar a una funcin, se escribe su nombre y entre parntesis los valores que se
deseen dar a los argumentos:
funcin ( expr1, expr2, ... )
4. Es un conjunto de celdas de memoria relacionadas entre si ya que todos tienen el
mismo nombre y almacenan el mismo tipo de datos para referirse a una celda en
particular algn elemento dentro del arreglo y entre corchetes [] el numero de posicin
del elemento dentro del arreglo.
5. Es una Variable que representa la posicin (en vez del valor) de otro dato, tal como una
variable o un elemento de una formacin. Los punteros son usados frecuentemente en
C y tienen grana cantidad de aplicaciones.
6. .
Sintaxis:
<tipo> *<identificador>;
Ejemplos:
int *entero;
char *carcter;
struct stPunto *punto;
Estos factores nos servirn para hacer la conversin de las cifras histricas a cifras de poder
adquisitivo a la fecha en que se trate de reexpresar, este factor de ajuste se calcula en las
siguientes forma.
Programacin Estruccturada Codificada

159

7. Una estructura es una combinacin de varios tipos de datos previamente definidos


8. Se llama vector una variable con un ndice y matriz una variable con dos ndices.
Adems, el primer ndice se llama fila, el segundo columna y el tercero pgina. A partir
del cuarto ndice no se utilizan nombres especficos.
9. .
strcpy (cad_1, cad_2);
strcat (cad_1, cad_2);
10.
getchar()
Lee un carcter del teclado. Espera hasta que se pulsa una tecla y entonces devuelve
su valor
putchar():
Imprimie un carcter en la pantallaen la posicin actual del cursor
gets():
Lee una cadena de caracteres introducida por el teclado y la situa en una direccion
apuntada por su argumento de tipo puntero a carcter.
putc()
Escribe su argumento de tipo cadena e la pantalla seguida de un carcter de salto de
linea.
11. .
La funcin putc() escribe caracteres en un archivo que haya sido abierto previamente
para operaciones de escritura, utilizando la funcin fopen(). Su prototipo es:
Int put(int car, FILE * pf);
La funcin getc() escribe caracteresen un archivo que haya sido abierto, en modo
lectura, mediante fopen(). Su prototipo es:
Int getc(FILE *pf);
La funcin fputs() escribe la cadena en la secuencia especificada su prototipo es:
Int fputs(const char *cad, FILE *pf);
La funcin f gets() lee una cadena de la secuencia especificada hasta que se lee un
carcter de salto de linea o hasta que se han leido longitud-1 caracteres. Su
prototipo es:
Int fgets(char *cad, FILE *pf);
160

Programacin Estruccturada Codificada

La funcin rewind() inicia el indicdor de posicin al principio del archivo indicado


por su argumento. Su prototipo es:
Void rewind(FILE *pf)
12. Se denomina preprocesador a un programa que procesa macros .Una macro es una
codificacin de instrucciones que implican una o varias acciones. El proprocesador toma
como entrada el programa fuente en C entes que el compilador y ejecuta todas las
macros que encuentra.

Programacin Estruccturada Codificada

161

GLOSARIO DE TRMINOS DE E-CBNC


Campo de
aplicacin

Competencia
laboral

Criterio de
desempeo

Elemento de
Competencia.

Evidencia de
conocimiento.

Evidencia por
producto

162

Parte constitutiva de una Norma Tcnica de Competencia Laboral que


describe el conjunto de circunstancias laborales posibles en las que una
persona debe ser capaz de demostrar dominio sobre el elemento de
competencia. Es decir, el campo de aplicacin describe el ambiente
laboral donde el individuo aplica el elemento de competencia y ofrece
indicadores para juzgar que las demostraciones del desempeo son
suficientes para validarlo
Aptitud de un individuo para desempear una misma funcin productiva
en diferentes contextos y con base en los requerimientos de calidad
esperados por el sector productivo. Esta aptitud se logra con la
adquisicin y desarrollo de conocimientos, habilidades y capacidades que
son expresados en el saber, el hacer y el saber-hacer.
Parte constitutiva de una Norma Tcnica de Competencia Laboral que se
refiere al conjunto de atributos que debern presentar tanto los
resultados obtenidos, como el desempeo mismo de un elemento de
competencia; es decir, el cmo y el qu se espera del desempeo. Los
criterios de desempeo se asocian a los elementos de competencia. Son
una descripcin de los requisitos de calidad para el resultado obtenido en
el desempeo laboral; permiten establecer si se alcanza o no el resultado
descrito en el elemento de competencia.
Es la descripcin de la realizacin que debe ser lograda por una persona
en al mbito de su ocupacin. Se refiere a una accin, un
comportamiento o un resultado que se debe demostrar por lo tanto es
una funcin realizada por un individuo. La desagregacin de funciones
realizada a lo largo del proceso de anlisis funcional usualmente no
sobrepasa de cuatro a cinco niveles. Estas diferentes funciones, cuando
ya pueden ser ejecutadas por personas y describen acciones que se
pueden lograr y resumir, reciben el nombre de elementos de
competencia.
Parte constitutiva de una Norma Tcnica de Competencia Laboral que
hace referencia al conocimiento y comprensin necesarios para lograr el
desempeo competente.
Puede referirse a los conocimientos tericos y de principios de base
cientfica que el alumno y el trabajador deben dominar, as como a sus
habilidades cognitivas en relacin con el elemento de competencia al que
pertenecen.
Hacen referencia a los objetos que pueden usarse como prueba de que la
persona realiz lo establecido en la Norma Tcnica de Competencia
Laboral. Las evidencias por producto son pruebas reales, observables y
tangibles de las consecuencias del desempeo
Programacin Estruccturada Codificada

Evidencia de
Desempeo.

Evidencia de
actitud
Formacin
ocupacional

Parte constitutiva de una Norma Tcnica de Competencia Laboral, que


hace referencia a una serie de resultados y/o productos, requeridos por el
criterio de desempeo y delimitados por el campo de aplicacin, que
permite probar y evaluar la competencia del trabajador. Cabe hacer notar
que en este apartado se incluirn las manifestaciones que correspondan a
las denominadas habilidades sociales del trabajador. Son descripciones
sobre variables o condiciones cuyo estado permite inferir que el
desempeo fue efectivamente logrado. Las evidencias directas tienen que
ver con la tcnica utilizada en el ejercicio de una competencia y se
verifican mediante la observacin. La evidencia por desempeo se refiere
a las situaciones donde el individuo realiza la funcin y que puede usarse
como prueba de que el individuo cumple con los requerimientos de la
Norma Tcnicas de Competencia Laboral.
Las Normas Tcnicas de Competencia Laboral incluyen tambin la
referencia a las actitudes subyacentes en el desempeo evaluado
Proceso por medio del cual se construye un desarrollo individual referido
a un grupo comn de competencias para el desempeo relevante de
diversas ocupaciones en el medio laboral.

Unidad autnoma integrada por unidades de aprendizaje con la finalidad


de combinar diversos propsitos y experiencias de aprendizaje en una
secuencia integral de manera que cada una de ellas se complementa
hasta lograr el dominio y desarrollo de una funcin productiva.
Norma Tcnica Documento en el que se registran las especificaciones con base en las
cuales se espera sea desempeada una funcin productiva. Cada Norma
de
Tcnica de Competencia Laboral esta constituida por unidades y
Competencia
elementos de competencia, criterios de desempeo, campo de aplicacin
Laboral
y evidencias de desempeo y conocimiento.

Mdulo
ocupacional

Programacin Estruccturada Codificada

163

GLOSARIO DE TRMINOS TCNICOS


Abrir un archivo
Algoritmo
Archivo

Arreglo
Array
Asignacin
ADA
Administrador
ALGOL
Anlisis
ASCII.

Asignacin

Base de datos
Binario
BIT

164

Identificacin de un archivo para ver sus atributos.


Conjunto de pasos ordenados para resolver un problema. Los
trminos Algoritmo y Lgica son sinnimos (algorithm).
Conjunto de registros afines tratados como una unidad de
almacenamiento de datos; por ejemplo, archivos de direcciones,
archivos de agenda, etc. Tambin se les conoce como ficheros o
files.
Recorridos o accesos secuenciales de un vector o matriz. Sus
elementos se almacenan individualmente en celdas de memoria.
Vea Arreglo.
Dar valor a un identificador de variable o constante. Paso de
parmetros hacia una variable.
Lenguaje de programacin de diseo relativamente reciente.
Bautizado con el nombre de Ada Lovelace que vivi en el siglo
XVII y se le considera como la primera mujer programadora.
De bases de datos o de red. La persona encargada de definir los
entornos de trabajo y de dimensionar y repartir los recursos de
utilizacin.
Lenguaje de programacin. El primero de los lenguajes
estructurados. Origen de otros lenguajes como Pascal o Modula.
Con los trminos de anlisis de sistemas, funcional y orgnico se
entienden las tareas previas a la programacin que sirven para dar
solucin informtica a un problema.
American Standard Code for Information Interchange. Es un
cdigo muy utilizado para el intercambio de datos. Como los
computadoraes solo procesan dgitos binarios, cada letra, dgito o
carcter especial tiene su correspondiente cdigo binario.
Usado en programacin. Es la accin de poner en una variable un
valor, el contenido de otra variable o el resultado de evaluar una
expresin. En la mayora de los lenguajes se representa con el
signo igual.
Es un conjunto de datos estructurados de forma que se hagan
manejables de forma sencilla a pesar de su volumen o de la
complejidad de las relaciones entre ellos.
Sistema de numeracin en base dos. Sus nicos dgitos son el 0 y
el 1. Los computadoraes usan internamente este cdigo.
Contraccin de binary digit. Es la unidad elemental de
informacin en el computadora. Su valor es 0 1 puesto que
todos
los
dispositivos,
interruptores
y
unidades
de
almacenamiento disponen nicamente de dos estados.
Programacin Estruccturada Codificada

Bucle
Buffer
Bus
Byte

Buffer
C
Cadena

Cada

Campo
Canal de datos
Carcter
COBOL.
Codificar
Cdigo

En un programa es un grupo de instrucciones que se repiten


hasta que se cumple una condicin.
Repeticin dentro de un programa.
Area de almacenamiento temporal usado en la transferencia de
datos entre la memoria principal y los perifricos.
Conexin en paralelo por donde circulan los datos, las direcciones
o las seales de control en el interior del computadora. Todos los
componentes del computadora estn conectados mediante buses.
Conjunto de bits que contiene el cdigo para un carcter. El byte
de 8 bits, llamado octeto, es el ms usado actualmente. Las
capacidades de almacenamiento se miden en bytes o en sus
mltiples. 1 K (kilobyte) = 1024 bytes. 1 Mb (megabyte) =
1024K. 1Gb (Gigabyte) = 1024 Mb.
Segmento de memoria reservado para el almacenamiento de
datos mientras estos son procesados.
Lenguaje de programacin de alto nivel que posee caractersticas
de los de bajo nivel y esto lo hace adecuado para escribir software
de sistemas.
Tipo de estructura de datos que es un conjunto de caracteres
almacenados consecutivamente. Tambin recibe este nombre un
conjunto de programas relacionados lgicamente para realizar
una tarea.
Fallo del equipo o del programa que producen una parada en un
proceso. Tambin puede haber cadas por fallos del sistema de
comunicaciones cuando el computadora tiene terminales
conectados.
Son los elementos diferenciados de un registro de informacin.
Son los lugares destinados para contener un dato determinado en
un fichero o en una base de datos.
Parte del computadora que conecta la unidad central de proceso
(CPU) y los perifricos. Son las conexiones por las que circulan los
datos.
Dgito, letra o smbolo que puede ser tratado por un
computadora. Es la unidad elemental de informacin desde el
punto de vista externo.
Common Business Oriented Language. Lenguaje de programacin
de alto nivel orientado a los negocios. Aunque data de 1959 es de
los lenguajes ms usados.
Es la parte de la programacin consistente en escribir en un
lenguaje informtico el algoritmo que resuelve un problema.
Tabla de traduccin entre todos los posibles smbolos de dos
alfabetos. El ms conocido es el cdigo ASCII (American Standard
Code for Information Interchange).

Programacin Estruccturada Codificada

165

Cola

Comando
Compatibilidad

Configuracin

Consola

Contador
Coprocesador

CPU

Cursor
Cach
Codificacin

166

Estructura de informacin consistente en una lista lineal en la que


la nueva informacin se coloca en un extremo y la salida para
procesar es por el otro extremo. Ejemplos: la cola de trabajos
pendientes de ejecutar o la cola de espera de impresin de
resultados.
Mandato ejecutable por el computadora. Cada una de las
instrucciones que componen el sistema operativo y que el
computadora puede traducir en acciones especficas.
Dos computadoraes son compatibles cuando los programas que
funcionan en uno de ellos tambin lo hacen en el otro. Los
grandes fabricantes de computadoraes son quienes fijan los
estndares de compatibilidad.
Lista de especificaciones de la unidad central del computadora y
caractersticas de los perifricos que se le pueden conectar.
Determina el tipo de computadora de que se trata para resolver
problemas de compatibilidades.
Perifrico del computadora que controla su funcionamiento. En
grandes computadoraes puede haber consola central y consola de
perifricos. Las personas que las manejan reciben el nombre de
operadores.
Usado en programacin. Variable que contiene el nmero de
acciones realizadas.
Chip que se puede aadir en la configuracin de los
computadoraes personales colocndolo en su interior para
aumentar la potencia y precisin de clculo. Hay programas que
lo requieren para funcionar. Otros programas hacen uso de l
para aumentar la velocidad de los procesos, si est en la
configuracin del computadora.
Central Process Unity. Unidad central de proceso o procesador
(UCP). Es el corazn del computadora, la parte ms importante.
Los computadoraes personales tienen la CPU en un chip. Consta
de unidad aritmtico-lgica, unidad de control y memoria
principal. Contiene los componentes electrnicos (registros,
sumadores, flip-flops, puertas lgicas), en los que tienen lugar la
ejecucin de las instrucciones de los programas.
Indicativo luminoso que muestra la posicin de la pantalla en la
que se van a introducir datos.
Banco dedicado de memoria de alta velocidad o una seccin
reservada de la memoria regular que se utiliza para mejorar el
desempeo. (Ver Memoria Cach).
Expresar el algoritmo como un programa en un lenguaje de
programacin adecuado.
Programacin Estruccturada Codificada

Cdigo espagueti

Compilador
Computadora

Constante
Datos

Debugging
Declaracin
Diccionario de Datos
Digital
Direccin
Directorio
Directorio Raz
Disco Magntico
Diskette

Cdigo escrito sin seguir una estructura coherente. La lgica


puede moverse de rutina en rutina sin regresar al punto de origen
(salida desde la que se mand llamar a otra rutina). Usualmente el
uso de la instruccin GOTO es la que permite este tipo de
programacin.
Software capaz de traducir programas de alto nivel en un nivel de
representacin ms bajo. Usualmente genera primero un cdigo
ensamblador para despus traducirlo en lenguaje mquina.
Mquina de propsito general que procesa informacin de
acuerdo a un conjunto de instrucciones que estn almacenadas
internamente, de forma temporal o permanente. A la
computadora y a todo su equipo se le conoce como Hardware
(tambin llamado computadora). Software son las instrucciones
que le dicen a una computadora que hacer. El conjunto de
instrucciones que realiza una tarea en particular es llamado
programa.
Es una mquina que bajo el control de programas almacenados
es capaz de almacenar, recuperar y procesar datos. Constan de un
procesador, la memoria y las unidades de entrada y salida. Segn
el tipo de informacin que manejen pueden ser analgicos o
digitales. Segn su tamao se clasifican en microcomputadoraes,
minicomputadoraes y mainframes.
Es un dato que permanece sin cambios durante el desarrollo de
un algoritmo y la ejecucin de un programa. Ver Tipos de
Constantes.
La materia prima de que se nutren los programas para producir
resultados. Pueden ser de varios tipos: numricos, alfabticos,
alfanumricos (cualquier conjunto de smbolos) y lgicos (solo
dos valores posibles, verdadero o falso).
Depuracin. Proceso de eliminar errores de un programa.
Definicin del tipo de una variable en un programa.
Tabla con las propiedades y estructura de los ficheros que forman
una base de datos.
Es una cantidad que slo puede asumir valores discretos.
Etiqueta, nombre o nmero que identifica la posicin de un dato
en la memoria o en una unidad de almacenamiento.
Tabla de los ficheros que se encuentran en un disco.
Es el directorio de nivel ms alto en una estructura jerrquica de
directorios.
Dispositivo de almacenamiento de datos. Es una placa circular
recubierto de material magnetizable.
Disco flexible. Actualmente suelen ser de doble cara y pueden
tener doble densidad o alta densidad de grabacin. Los tamaos

Programacin Estruccturada Codificada

167

Dos

Data
Datos
Declaracin

habituales son de 5 1/4 y de 3 1/2 pulgadas. Estos ltimos van en


una carcasa de plstico y a pesar de su menor tamao tienen
mayor capacidad.
(Disk Operating System). Sistema operativo de disco. El ms
extendido de los sistemas operativos de computadoraes
personales. Fue desarrollado en 1979. Es un conjunto de
programas de utilidad que se ejecutan nombrndolos y dndoles
parmetros.
Vea Datos.
Cualquier forma de informacin ya sea en papel o en forma
electrnica. Esta ltima se refiere a archivos y bases de datos,
documentos de texto, imgenes y voz y video digitalizados.
Es una sentencia de una funcin o palabra reservada del lenguaje
C que permite realkizr una accin.
CASE.- Variacin de la declaracin IF-THEN-ELSE. Se utiliza cuando
el nmero de condiciones es muy grande.
1. IF-THEN-ELSE.- Permite la comparacin entre 2 o mas
condiciones de datos. Si el resultado es verdadero, entonces
(THEN) realiza una accin a seguir; en caso contrario (ELSE)
permite llevar a cabo otra accin distinta.

Encontrar errores en un programa lgico o computacional.


Usualmente se revisa el cdigo lnea por lnea.
Es una representacin que utiliza smbolos unidos por flechas
Diagrama de Flujo
denominadas lneas de flujo, que indican la secuencia en que se
deben ejecutar. Dentro de cada smbolo o caja se indican las
operaciones que deben ser realizadas.
Diagrama N-S (Nassi- Tambin conocidos como Diagramas de Chapin. Es como un
diagrama de flujo en el que se omiten las flechas de unin y las
Schneiderman)
cajas son contiguas. Las acciones sucesivas se escriben en cajas
sucesivas, y, como en los diagramas de flujo, se pueden escribir
diferentes acciones en una caja.
Documentacin
de Descripcin narrativa y grfica de un programa computacional. Se
usa para describir cada paso realizado por el programador, desde
Programas
la etapa de anlisis hasta la etapa de mantenimiento de un
programa
Programa que permite escribir y corregir ficheros de texto como
Editor
documentos o programas.
Realizar una instruccin en cdigo mquina o bien hacer que se
Ejecutar
realicen las instrucciones de un programa.
Debug

168

Programacin Estruccturada Codificada

Ensamblador

Eprom
Estructura De Datos

Expresin

E/S
EAPROM
EEPROM
Ejecucin De Programa
Entrada
Enunciado
Expresiones Aritmticas

Se conoce con este nombre tanto a un lenguaje de bajo nivel


(cercano al lenguaje mquina) como al programa que traduce a
lenguaje mquina los programas escritos en lenguaje
ensamblador.
(Erasable Programable Read Only Memory). Memoria slo de
lectura pero que se puede programar (cargarle informacin) y
mediante procesos especiales borrar para reprogramar.
Conjunto de datos en que sus componentes estn relacionados
entre s de una forma particular y sobre los que se pueden realizar
ciertas operaciones segn sea el tipo de relacin que hay entre
ellos.
Conjunto de variables, constantes, funciones y smbolos de
operacin que expresan un clculo a realizar. Proporcionan un
valor que ser del tipo (aritmtico, alfanumrico o lgico) de las
variables y constantes que contiene.
Siglas para indicar las operaciones de entrada o salida, es decir las
transferencias entre la CPU y los perifricos.
Memoria de slo lectura alterable electrnicamente. Puede ser
borrada y programada por el usuario. Ver Tipos de Memoria.
Memoria electrnicamente borrable (por medio de luz
ultravioleta). Ver Tipos de Memoria.
Lectura y realizacin de las instrucciones que forman un
programa (Run, correr el programa), se realiza en forma
secuencial.
Informacin que se introduce a un programa.
Unidad mnima que se puede ejecutar. Tambin llamado
instruccin, son los comandos que componen el programa.
Son anlogas a las frmulas matemticas. Las variables y
constantes son numricas y las operaciones son las aritmticas.
Los operadores ms comunes son:
Smbolo

Significado

()

Parntesis

Exponenciacin

DIV

Divisin entera

MOD

Mdulo

Multiplicacin

Divisin

Suma

Resta

Programacin Estruccturada Codificada

169

=
Expresiones lgicas
Expresiones Relacionales

Factor de Bloqueo
Fichero.

Floppy Disk
Fuente
Fichero
File
Generador De
Aplicaciones
Grficos De Alta
Resolucin
Grabacin
Hardware

Herramientas de
Desarrollo

Heurstico
Hoja De Clculo

170

Asignacin

Formato: Operador lgico . Ver Operadores lgicos


Permiten realizar comparaciones de valores de tipo numrico o
carcter. Sirven para expresar las condiciones en algoritmos o
programas. Formato: Operador relacional . Ver Operadores
relacionales.
Cantidad de registros lgicos que hay en cada registro fsico de
un fichero.
Conjunto organizado de informacin almacenado en un soporte.
Est formado por registros que contienen la informacin de cada
elemento del fichero. Los registros a su vez estn divididos en
campos, siendo cada campo uno de los datos del registro. Por
ejemplo en un fichero de clientes, cada cliente sera un registro y
tendramos los campos: nombre, apellidos, direccin, telfono,
etc.
Disco flexible. Ver diskette.
Origen. Se dice que un programa est en lenguaje fuente cuando
an no ha sido traducido por ningn compilador.
Vea Archivo.
Vea Archivo.
Software que genera un conjunto de programas a partir de las
especificaciones que se han dado.
De alto nivel de detalle. Son grficos obtenidos por programas de
computadora en los que la definicin normal de las pantallas, 24
X 80 caracteres, se ve ampliamente incrementada permitiendo
que cada punto (pixel) pueda tener un color diferenciado.
Escritura de un conjunto de datos en un soporte.
Los elementos que forman la parte fsica del computadora.
Constituye la parte tangible del sistema informtico. Es lo opuesto
al software que son los programas que hacen que el hardware
funcione.
Conjunto de programas para facilitar la programacin. Es un
campo de investigacin informtica de mxima actualidad.
Tambin reciben el nombre de tecnologas CASE (Computer Aided
Software Engeneering), ingeniera del software ayudado por el
computadora.
Es lo opuesto a algortmico. Es un mtodo de exploraciones
sucesivas para la resolucin de problemas. Usado en inteligencia
artificial.
Tambin conocida como hoja electrnica. Es un programa que
permite construir modelos compuestos de datos y de frmulas
que los relacionan. Visualmente aparece como un conjunto de
casillas formadas por interseccin de filas y columnas. En cada
Programacin Estruccturada Codificada

una de estas casillas podemos introducir un nmero, un texto o


una frmula que relaciona funciones predefinidas y otras casillas.
A lo que ms se puede parecer es a una gran calculadora
programable, pero ms sencilla de manejar y con muchas
utilidades de copia, grabacin, ordenacin, formateo de datos, y
construccin de grficos, entre otras.
Smbolo de Input/Output. Entrada/Salida desde o hacia un
I/O
computadora.
Instalar y hacer funcionar.
Implementar
Aparato utilizado para imprimir lo especificado desde un
Impresora
computadora. Segn la forma de escribir las hay que van carcter
a carcter, lnea a lnea o pgina a pgina.
Operacin que consiste en clasificar un fichero o una tabla segn
Indexacin
el valor de un ndice o de una clave.
Smbolo o nmero usado para identificar un elemento particular
ndice
en una tabla.
Estudia el tratamiento de la informacin de forma automtica.
Informtica
Trata tanto los algoritmos de resolucin de problemas, como el
diseo y el manejo de computadoraes, la estructura de los
sistemas informticos y los mtodos de programacin.
Nueva parte de la informtica dedicada a crear entornos de
Ingeniera De Software
desarrollo de software que adecuen la complejidad creciente de
los programas a presupuestos aceptables. Se ocupa de todas las
fases desde el diseo hasta el mantenimiento y usa nuevas
tcnicas y herramientas ms acordes con las nuevas generaciones
de hardware y software.
Ciencia que estudia los modos en que los computadoraes puedan
Inteligencia Artificial
realizar tareas que requeriran algo de inteligencia humana.
Aunque queda mucho por hacer, los principales avances han sido:
programas que juegan (ajedrez), programas que razonan
(representacin del conocimiento), reconocimiento del lenguaje
natural, reconocimiento de imgenes (visin artificial) y sistemas
expertos.
Interactivo
O Modo de trabajo con un computadora en el que ste ejecuta los
mandatos tal como se le van introduciendo. Es lo contrario a
Conversacional
ejecutar un proceso en diferido. En este modo de operacin hay
una sucesin de rdenes y contestaciones.
Dispositivo o elemento intermedio de hardware o de software
Interface
que permite conectar dos sistemas.
Programa que traduce instrucciones de lenguaje de alto nivel a
Intrprete
lenguaje mquina y las va ejecutando tras su traduccin.
Cada una de las repeticiones de las acciones contenidas en un
Iteracin
bucle de programa.
Programacin Estruccturada Codificada

171

Indexacin
Indexar
Informacin
Instruccin

JCL
Juego De Caracteres.
K o Kbyte.

Lpiz ptico

Lectora ptica

Lenguaje de
Programacin

Librera
Linkar
Lisp
Lista
172

Tcnica de acceso a los datos en base a la utilizacin de un ndice


o un registro de ndices.
Asociar un ndice a un dato para su acceso.
El conjunto de los datos.
Elemento bsico constitutivo de los programas. Una instruccin es
una formulacin de una orden a la computadora y que se
manifiesta en la expresin del conjunto de operaciones que debe
ejecutar la computadora.
Acrnimo de Job Control Language. Lenguaje de control de
procedimientos. Es un lenguaje (conjunto de comandos) utilizado
para comunicarse con el sistema operativo.
Conjunto de smbolos que pueden ser usados por un
computadora.
Es la unidad de medida de la capacidad de almacenamiento de
informacin, tanto de la memoria principal como de las memorias
auxiliares (discos y disquetes). 1 K son 1024 bytes, (2 elevado a 10
caracteres).
Dispositivo con forma de lpiz que permite seleccionar un punto
determinado de una pantalla de rayos catdicos. Con el programa
adecuado este aparato permitir hacer dibujos, contestar
cuestionarios, etc.
Dispositivo para entrada de datos. Interpreta los caracteres
impresos comparando niveles de luminosidad. Son lectores
pticos los perifricos llamados escner que permiten digitalizar
cualquier imagen.
Es un lenguaje, con su lxico y su sintaxis, que se emplea para que
el computadora ejecute las acciones que se han determinado en
un algoritmo y se han codificado en dicho lenguaje. Una primera
clasificacin de los lenguajes es en lenguajes de bajo nivel
(lenguajes mquina y ensambladores) y lenguajes de alto nivel
(Ada, Basic, Cobol, Fortran, Pascal, etc.). Estos ltimos, que son
independientes de una mquina particular, pueden clasificarse
como de propsito especial y general; tambin como lenguajes de
procedimiento y declarativos. Actualmente se evoluciona hacia
lenguajes de ms alto nivel o lenguajes de especificacin.
Conjunto de programas o mdulos almacenados generalmente
sobre un dispositivo magntico.
Encadenar. Juntar los programas en lenguaje mquina con los
mdulos de librera para ejecutarlos.
Lenguaje diseado para trabajar en Inteligencia Artificial. Su
objetivo es la manipulacin de smbolos.
Conjunto de elementos de datos organizados de modo que se
Programacin Estruccturada Codificada

Logicial
Logo

Longitud
Loop
Lenguaje de alto nivel

Lenguaje de bajo nivel


Lenguajes de
Programacin

conoce la posicin relativa de cada elemento.


Palabra en castellano equivalente a software.
Lenguaje de computadora diseado para acercar a los nios al
mundo de los computadoraes. Contiene el conjunto de rdenes
preciso para que un smbolo (tortuga) recorra la pantalla
haciendo dibujos.
Aplicado a una cadena de caracteres, a un campo o a un
registro, es el nmero de bytes que ocupa.
Bucle. Repeticin de un cierto nmero de instrucciones el nmero
de veces que indique un contador o bien mientras se cumpla una
condicin.
Permite generar cdigo mquina a partir de sentencias
independientes de la mquina y representar problemas de un
usuario de modo simple y claro. Una sentencia en lenguaje
evolucionado se traducir con frecuencia en una serie de
instrucciones mquina o de subprogramas en lenguaje mquina.
Lenguaje de programacin en cdigo mquina o en el que a cada
instruccin simblica le corresponde una en cdigo mquina
equivalente. El lenguaje de bajo nivel depende de la mquina.
Algunos de los ms comunes son...
Lenguaje ensamblador: dependiente del hardware (cada
tipo de CPU tiene su propio lenguaje ensamblador), por lo
que es difcil de mantener. No confundirlo con lenguaje
mquina. Cada declaracin es traducida a una instruccin
mquina por el ensamblador.
Ada: Lenguaje basado en Pascal.
ALGOL (ALGOrithmic Language): lenguaje de alto nivel.
BASIC (Beginners All purpose Symbolic Instruction Code):
Desarrollado a mediados de 1960. No es un lenguaje
estructurado y es fcil escribir cdigo espagueti que
dificuta su interpretacin por otros programadores.
C: Lenguaje de alto nivel desarrollado para que UNIX
corriera en varias plataformas (computadoras).
C++: Lenguaje orientado a objetos, basado en el lenguaje
C.
COBOL (COmmon Business Oriented Language): De alto
nivel, utilizado principalmente en negocios.
Eiffel: Lenguaje de programacin orientado a objetos. Su
compilador genera cdigo en C.
FORTH (FOuRTH-generation language): lenguaje de alto
nivel para proporcionar un control directo de la
computadora.
FORTRAN (FORmula TRANslation): Lenguaje de alto nivel.

Programacin Estruccturada Codificada

173

Lenguaje mquina

Lista
Lista doblemente
enlazada
Macroinstruccin

174

Usado para expresar frmulas matemticas.


GW-BASIC (Gee Whiz-BASIC): Intrprete del lenguaje BASIC.
HTML (HyperText Markup Language): Lenguaje estndar
para permitir documentos con hipertexto (links o ligas a
texto relacionado). Permite establecer conexiones entre
documentos en el Word Wide Web (WWW).
LISP (LISt Processing).- lenguaje de alto nivel. No utiliza
programacin numrica. Usado para aplicaciones de
inteligencia artificial.
Logo.- De alto nivel. Se utiliza para creacin de grficos.
MODULA-2 (MODUlar Language): versin del lenguaje
Pascal. Soporta la compilacin de mdulos.
Objective-C: Lenguaje orientado a objetos basado en C.
Trabaja en estaciones de trabajo.
Pascal: Lenguaje de alto nivel. Utiliza estructuras de
arreglos.
PROLOG (PROgramming in LOGic): Para aplicaciones de
inteligencia artificial.
SIMULA: Lenguaje de simulacin, originalmente era un
lenguaje orientado a objetos.
SmallTalk: Lenguaje orientado a objetos. Tambin se utiliza
como sistema operativo.
SNOBOL: Lenguaje simblico orientado a cadenas. Utilizado
en edicin de texto, lingstica, compilacin y manipulacin
simblica de ecuaciones algebricas
SQL (Structured Query Language): Lenguaje de bsqueda y
procesamiento de archivos.
VPexpert: Lenguaje para Inteligencia Artificial.
Xbase: Lenguaje en el que se basan algunos manejadores
de bases de datos.
Las instrucciones se especifican en binario, de tal forma que sean
cargadas directamente en memoria y ejecutables. Es el lenguaje
de mas bajo nivel que permite utilizar una computadora y es el
nico lenguaje que sabe interpretar la unidad de control de la
misma.
Arreglo de datos. Usualmente se utiliza su formato es de columna
o rengln.
Una lista cuyos nodos utilizan punteros para permitir el
movimiento hacia delante y hacia atrs de un nodo perteneciente
a la estructura lista.
Instruccin en un lenguaje ensamblador que genera varias
instrucciones en lenguaje mquina. En paquetes de programas se
entiende por macros las instrucciones que desencadenan otro
Programacin Estruccturada Codificada

Mainframe

Megabyte
Memoria

Men
Microcomputadora
Microprocesador

Mdem

Mdulo
Monitor
Multiproceso.
Multiprogramacin
Memoria Cach

conjunto ms amplio de instrucciones.


Recibe este nombre la computadora principal en una instalacin
con puestos de trabajo desplazados o en una red de
computadoraes pequeos conectados a uno mayor que les sirve
de soporte de datos.
Unidad de medida de capacidad de almacenamiento de
informacin. Un megabyte es 1024 Kbytes y por tanto 1.048.576
bytes.
La memoria central o principal es la parte de la computadora
donde se almacenan los programas y los datos. Los
computadoraes personales tienen dos tipos de memoria, ver RAM
y ROM. Estas memorias estn contenidas en chips. La capacidad
se mide en bytes o en su mltiplo la K. Cada palabra de la
memoria posee su direccin.
Es un conjunto de opciones presentado por un programa. La
eleccin se efecta tecleando un cdigo, con los cursores o
sealndolo con algn dispositivo como el ratn o el lpiz ptico.
Es una computadora cuyo procesador est en un chip. Conocidos
como computadoraes personales, son pequeos, econmicos y,
excepto los ms potentes, slo soportan una aplicacin a la vez.
Procesadores que se han miniaturizado hasta incluirlos en un
chip. Contiene la unidad de control y la unidad aritmtico-lgica.
Se conecta con las memorias y los perifricos por medio de unas
patillas conectadas a un haz de lneas. Los ms usados son los de
Intel y Motorola.
Nombre reducido de modulador-demodulador. Dispositivo que
permite transmitir y recibir informacin a travs de lnea
telefnica. Conecta los computadoras entre s o a un gran
computadora con sus terminales remotos.
En programacin, cada uno de los bloques lgicos en que se
puede dividir un programa.
Por un lado se designa as a la pantalla usada como perifrico de
salida por los computadoraes personales. Adems, es la parte del
sistema operativo que asegura la ejecucin de los programas.
Tcnica de utilizacin de un computadora que posee varias
unidades centrales de proceso (CPU)y, por tanto, puede estar
ejecutando varias instrucciones en el mismo instante de tiempo.
Tcnica de utilizacin de un computadora que permite la
ejecucin simultnea de varios programas porque les dedica el
procesador un pequeo tiempo a cada uno de ellos.
Es el banco de memoria que conecta la memoria principal y el
CPU. Es ms rpida que la memoria principal y permite que las
instrucciones sean ejecutadas y que los datos sean ledos a una

Programacin Estruccturada Codificada

175

velocidad ms alta.
FIFO(First In First Out), LIFO (Last In First Out),
Mtodos de bsqueda
Punto o vrtice de un rbol o grafo; normalmente representa un
Nodo
dato.
Se le da este nombre a la parte central de un sistema operativo.
Ncleo
Se clasifican en aritmticas (nmeros), lgicas (falso, verdadero),
Operaciones
relacionales (a>b, a<>b) y de carcter.
Smbolo especial o palabra reservada que especifica una
Operador
operacin aritmtica o lgica.
Se llama programa objeto al resultado de la compilacin de un
Objeto
programa fuente.
Tcnicas para realizar y controlar con medios informticos los
Ofimtica.
trabajos habituales en una oficina.
Adems de un smbolo escrito de operacin, se designa con este
Operador
nombre a la persona encargada del manejo de grandes
computadoraes.
Desbordamiento de la capacidad de una variable en un programa
Overflow
o de un fichero.
Diagramas de flujo. Son los esquemas de funcionamiento del
Organigramas
proceso. Se realizan para facilitar la programacin.
Operador booleano o Operador que combina expresiones lgicas utilizando aritmtica
lgica. Los ms comunes son: AND, OR y NOT.
lgico
Operadores Aritmticos Pueden variar segn el lenguaje de programacin a utilizar.
Usualmente, el orden de prioridad ms comn es el siguiente:

Operadores Lgicos

176

Smbolo Significado

Operando

Resultado

^, **

Exponenciacin

Entero, Real

Entero, Real

Multiplicacin

Entero, Real

Entero, Real

Divisin (real)

Real

Real

Suma

Entero, Real

Entero, Real

Resta

Entero, Real

Entero, Real

DIV

Divisin entera

Entero

Entero

MOD

Mdulo(residuo)

Entero

Entero

Operador Expresin Resultado


NO, NOT NO [A]

Negacin de A Ver Tabla


(lo contrario)
de verdad

Y, AND

[A] Y [B]

Unin de A y B

Ver Tabla
de verdad

O, OR

[A] O [B]

Interseccin

Ver

Tabla

Programacin Estruccturada Codificada

entre A y B
Operadores Relacionales

PASCAL
PC
Perifrico

Pila
Pixel
Plotter
Procesador
Procesador De Textos

Programa
Programacin
PROLOG

Palabra reservada
Pseudocdigo
Pila
Procedimiento
Procesamiento de Datos

de verdad

Smbolo Significado

Smbolo Significado

>

Mayor que

<>

Diferente a

<

Menor que

>=, =>

Mayor o Igual
a

Igual a

<=, =<

Menor o Igual
a

Lenguaje de programacin estructurado. Simple pero potente.


Abreviatura de Personal Computer.
Aparato conectado a la unidad central de proceso (CPU) de un
computadora y controlado por ste. Con este nombre se designan
a las unidades de entrada, a las de salida y a las memorias
auxiliares.
Un tipo de estructura de datos en el que el ltimo dato en llegar
es el primero en salir.
Es el menor elemento visualizable individualmente en una
pantalla.
Dispositivo perifrico de salida usado para hacer dibujos,
generalmente grficos o planos, pues tiene ms precisin que una
impresora.
Ver CPU.
Tratamiento de textos. Sistema basado en el computadora para
escribir y formatear textos. Aporta ventajas de almacenamiento y
localizacin, de copiar bloques de texto, bsqueda de palabras o
correccin ortogrfica.
Secuencia de instrucciones que realizan una tarea especfica.
Tcnicas destinadas a la resolucin de un problema, usando para
ello los lenguajes de programacin. Se manejan estructuras
lgicas de los tipos: secuencial, condicional e iterativa.
Lenguaje de programacin concebido para escribir programas de
Inteligencia Artificial. Creado en 1972, las tareas se expresan
describiendo los objetos que se necesitan y las relaciones lgicas
entre ellos.
Palabras utilizadas por los lenguajes de programacin para
representar variables, sentencias u rdenes.
Es un lenguaje de especificacin de algoritmos y no puede ser
ejecutado por una computadora
Estructura dinmica de datos en la que los elementos se aaden y
eliminan por un extremo.
Subrutina o Funcin.
Capturar, guardar, actualizar y regresar datos e informacin.

Programacin Estruccturada Codificada

177

Programa ejecutable
Programa fuente
Programa objeto
Programacin nonumrica
Programacin orientada
a objetos
Programacin visual
Programador
PROM
Registro
Reglas de Prioridad Para
Expresiones Aritmticas

Ram
Recursividad
Registro
ROM
RPG
Servidor
178

Programa compilado y traducido a cdigo mquina que puede ser


ejecutado directamente por una computadora.
Programa escrito en lenguaje de alto nivel. Requiere de
compilacin o interpretacin para su ejecucin.
Programa en lenguaje mquina resultante de la traduccin del
programa fuente .
Programacin con objetos (palabras, personas, cosas).
Basado en la programacin modular. Maneja los conceptos de
encapsulamiento, herencia y poliformismo.
Construccin de programas mediante el uso de herramientas que
permiten desarrollar programas utilizando plantillas con
instrucciones preestablecidas. No es necesario escribir cdigo.
Persona encargada de disear la lgica de un programa y
escribirla utilizando lneas de cdigo para un programa
computacional.
Memoria programable (irreversible).Programada por el usuario o
comerciante, una vez programada esta memoria no puede
modificar su contenido. Ver Tipos de Memoria.
Estructura de datos formada por diferentes campos.
- Evaluar todas aquellas expresiones que estn encerradas entre
parntesis. Comenzando con el parntesis ms interno y
terminando con el ms externo.
- Las expresiones se evalan con orden izquierda a derecha
(notacin polaca inversa), siguiendo el orden de prioridad de los
operadores aritmticos, segn el lenguaje de programacin a
utilizar (ver operadores aritmticos).
Random Access Memory. Memoria de acceso aleatorio. Llamada
as porque se puede acceder a cualquiera de sus posiciones sin
recorrer las anteriores.
Propiedad de algunos lenguajes de programacin de permitir que
un programa solicite su propia ejecucin en el curso de su
desarrollo.
Conjunto de uno o ms campos consecutivos que son tratados
por un programa como unidad de informacin. Son los
componentes lgicos de los ficheros.
Read Only Memory. Memoria nicamente de lectura. Son
memorias de acceso rpido usadas para contener programas.
Report Program Generator. Lenguaje simblico de programacin.
Es un lenguaje poco felxible. Se utiliza en aplicaciones de gestin,
principalmente en minicomputadoraes.
Recibe este nombre el computadora que en una red local de
computadoraes tiene el sistema operativo y aquellos perifricos
Programacin Estruccturada Codificada

que se desea compartir.


Sistemas Expertos

Software
Sort
Spool
Supercomputadora
Salida.Sistema operativo (S.O.)

Software
Subproblemas
Subrutina
Tarjeta

Teclado
Telemtica
Teleproceso
Tiempo Compartido
Tabla de Verdad de
NO (NOT)

Son programas de computadora que tienen el mismo nivel de


conocimientos que un experto humano sobre un tema particular.
Adems de extraer conclusiones razonadas sobre un grupo de
conocimientos, deben ser capaces de comunicar al usuario la lnea
de razonamiento seguida.
Son los programas que dirigen el funcionamiento de un
computadora. Bsicamente es de dos tipos: sistemas y aplicacin.
Programa para clasificar un conjunto de datos.
Dispositivo para almacenar temporalmente los datos enviados a
un dispositivo de salida hasta que ste quede libre.
Se llaman as a los grandes computadoraes diseados
especialmente para propsitos concretos. Tienen una capacidad y
velocidad superiores a los corrientes.
Informacin generada por un programa computacional. Transferir
o transmitir desde la computadora hasta un dispositivo perifrico
o una lnea de comunicacin.
Programa encargado del control general de la computadora. La
parte principal del S.O., llamada Kernel, es colocada en la
memoria al encender la mquina para monitorear cada operacin
realizada.
Instrucciones computacionales almacenadas en un programa.
Divisin de un problema en problemas ms pequeos y simples
de resolver.
Instrucciones que realizan operaciones especficas. Son llamadas
mediante mdulos o procedimientos.
Adems de las obsoletas fichas perforadas con ochenta caracteres
de capacidad, reciben este nombre las placas de circuitos
impresos que pueden contener: ampliaciones de memoria,
conexin a redes, placas para grficos en color, etc.
La unidad de entrada ms corriente. Formada por un conjunto de
teclas al estilo de una mquina de escribir.
Tcnicas que utilizan la transmisin de informacion mediante
telecomunicaciones, con los tratamientos informticos de dicha
informacin.
Tcnica de tratamiento de datos en donde stos son enviados y
recibidos desde terminales remotos.
Mtodo de operacin de grandes computadoraes que permite la
utilizacin simultnea por varios usuarios.
Comportamiento.
A

NO A

Falso

Verdadero

Programacin Estruccturada Codificada

179

Verdadero
Tabla de Verdad de
O (OR)

Falso

Comportamiento.
A

(A) O (B)

Falso

Falso

Falso

Falso

Verdadero

Verdadero

Verdadero

Falso

Verdadero

Verdadero

Verdadero

Verdadero

Tabla de Verdad de Y Comportamiento.


(AND)
A
B

Tipos de Datos

Falso

Falso

Falso

Falso

Verdadero

Falso

Verdadero

Falso

Falso

Verdadero

Verdadero

Verdadero

Simple, estructurados o abstractos; definidos por el usuario o por


el sistema; slo existen mientras el programa es ejecutado;
manipulados
por
el
hardware
o
el
software.
Pueden ser constantes, variables y estructuras que contienen
nmeros (enteros y reales), texto (caracteres y cadenas) o
direcciones (de variables y estructuras). Un dato tiene un
contenido (valor) y un tipo asociado. Por esta razn algunos
lenguajes de programacin son conocidos como Strongly Typed
(tipos fuertes). El tipo de un dato determina: el rango de valores
vlidos, el conjunto de operaciones vlidas, el espacio de memoria
que ocupa que ocupa el dato y la representacin e interpretacin
del
dato
binario.
Permiten al compilador detectar errores, limitar la mezcla de tipos
y evaluar expresiones de cualquier grado de complejidad.
Mezcla de diferentes tipo de datos.- En general cuando una
operacin involucra diferentes tipos, ambos tipos se convierten
internamente en lo que se denomina como tipo comn. El tipo
comn es un tipo interconstruido con el mnimo valor posible
para almacenar la unin de los valores de ambos tipos.
Principales tipos de datos:
Tipo de datos
Booleano
Char

180

(A) Y (B)

Intervalo

Byte

False o True

Carcter del cdigo


1
actual
Programacin Estruccturada Codificada

Byte

0 .. 255

-128 .. 127

Integer, int

-32,768 .. 32,767

2
bits

8 y 16

Integer, int

2,147,483,647

4
bits

32

Word,
cardinal

0 a 65,535

Longint, Long

2,147,483,647

Single

1.5e-45 .. 3.4e38

Real,

2.9e-39 .. 1.7e38

Shortint,

Short

Double, double 5.0e-324


precision
1.7e308

..

Comp

-9.2e18 .. 9.2e18

Extended

3.4e-4932
1.1e4932

..

String

Cadena
caracteres

de

Bitset

0 a 15

8
8
10
255

Float
Signed
Unsigned
1 Bit = 0,1
1Mb
=
16 Bits = 1 Word
(Procesadores 80386)
Tipo de datos ordinales

1 Byte = 8 Bits
1024
Bytes
32 Bits = Double Word

Los tipos de datos ordinales son todos aquellos tipos que no sean
reales (integer, longint, shortint, byte, word, char, enumeraciones
y
subrangos).
Probablemente, el tipo de datos ms til es longint (abreviatura
en ingls de long integer o entero largo), este tipo de datos
maneja valores de hasta 2,147,483,647 en vez de 32,767 del tipo
integer. Por ejemplo, para almacenar el producto de 2,000 *
2,000 (donde el resultado es cuatro millones) se debe utilizar una
variable de tipo longint en vez de una de tipo integer.
Usualmente es recomendable utilizar integer en vez de longint
debido a que este ltimo tipo utiliza ms memoria, adems de

Programacin Estruccturada Codificada

181

reducir significativamente la velocidad de procesamiento. Por lo


tanto, cuando se est seguro de que el uso de un integer ser
suficiente, es mejor que este sea utilizado.
Tipos de constantes.-

Tipos de memoria

Tipo

Ejemplo

a) Entera:

-1, 0, 25

b) Reales:

0.002, 3.14159, -2.34567, 5432.

c) Carcter:

'a', 'A', '+', ',', '9'

d) Cadena de
caracteres:

'A1', 'Hola', 'PRIMER ALGORITMO'

e) Lgicas:

falso, verdadero; 0, 1; Si, No

Tipo

R
W (escritura)
(lectura)

RAM

ROM

PROM

EPROM

Irreversible

EAPROM X

X
(electrnicamente)

EEPROM X

X
(electrnicamente)

Los tipo ms comunes son: enteras, reales, carcter, cadena y


lgicas.
Unidad Aritmtico-Lgica Elemento del procesador en donde se efectan las operaciones
aritmticas y las lgicas.
. Ver CPU.
Unidad Central de
Proceso
Sistema operativo de propsito general, multiusuario e
UNIX
interactivo. Usa el concepto de memoria virtual. Es de pequeo
tamao, potente y fcil de usar.
Es la persona que hace uso de un sistema de computadoraes.
Usurio
Disco duro (Hard Disk), disquete (Floppy Disk), discos compactos
Unidades de
(CD-ROM), Disco lser, DVD (Digital Video Disk) , DVCR (Digital
almacenamiento
Video Cassette Recorder), cinta magntica (DAT Tape Cartridge),
disco ptico (Magneto-Optic Cartridge), entre otros.
Unidades de E/S de datos Permiten la entrada o salida de informacin al CPU.
Entrada: teclado, scanner, mouse (ratn), mouse ptico,
(Entrada / Salida o
lpiz ptico.
Input/Output)
Salida: Impresora impacto(matricial, tambor, margarita),
impresora
no-impacto
(electrosttica,
tinta,
Programacin Estruccturada Codificada
182
Tipos de variables

magnetogrfica, termal, lser, ), monitor, data show


(Liquid Cristal Display panel), bocina, plotter (impresora
grfica).
Vea CPU (Unidad Central de Proceso).
UCP
La rapidez en ejecutar instrucciones depende de la frecuencia en
Velocidad
que trabaje un reloj interno. Se mide en megahercios.
La velocidad de acceso a los datos contenidos en un disco duro se
Velocidad de acceso
mide por el tiempo de recuperacin de un dato. Se expresa en
milisegundos.
Una parte de la pantalla dedicada a representar un subconjunto
Ventana
de datos particulares.
Elemento o sistema ficticio que puede reemplazar en una
Virtual
operacin a un elemento o sistema real.
Verificar que los datos arrojados por el programa sean correctos.
Validar
Localidad que almacena un valor modificable a lo largo de la
Variable
ejecucin de un programa.
Variable
(otras Dato que puede cambiar durante el desarrollo del algoritmo y la
ejecucin de un programa. Se identifican mediante los atributos
definiciones)
Nombre (de la variable) y Tipo (de variable). Cada variable puede
ser nicamente declarada de un tipo, el cual puede definirse o
declararse antes de su utilizacin. Tambin se les conoce como
identificador. Ver Tipos de Variables.

Programacin Estruccturada Codificada

183

REFERENCIAS DOCUMENTALES

Bertelsons, Boris, Mathias Rasch. Programacin avanzada. Alfa omega Grupo Editor,
Mxico, DF, 1998.
Ceballos, Francisco Javier. C / C++ Curso de programacin. 2da. Edicin, Alfa omega
Grupo Editor, Mxico, DF, 2002.
Garca Flix, Jess Carretero, Javier Fernndez, Alejandro Caldern. El lenguaje de
programacin C. ED. Pearson Educacin, Espaa, 2002.
Hansen Augie, Aprenda C ya!, Microsoft Press, 1988.
I. T. Hawryszkiewycz, Anlisis y diseo de bases de datos, Grupo Noriega Editores,
1996.
Kernighan Brian W., El lenguaje de programacin C, Prentice Hall, 1986.
Miren Begoa Albizuri, Estructuras de Datos e introduccin a Bases de Datos, Grupo
Noriega Editores, 1996.
Randy Davis, Stephen. C++ para dummies. 4ta. Edicin. St. Editorial, Inc., Panam,
2001.
Rodrguez, C.Gregorio, L.F. Llana Daz, R. Martnez y otros. Ejercicios de Programacin
creativos y recreativos en C++. ED. Pearson Educacin, Madrid, Espaa, 2002.
Tenenbaum Aaron M., Estructuras de datos en C, Prentice Hall, 1993.

184

Programacin Estruccturada Codificada

You might also like