You are on page 1of 36

Energtica computacional

Unidad 1. Introduccin al lenguaje de


programacin C

Energtica computacional

Unidad 1. Introduccin al lenguaje de


programacin C

5 Semestre
Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 1
Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

ndice

Unidad 1. Introduccin al lenguaje de programacin C..................................... 3


Presentacin de la unidad ................................................................................... 3
Propsitos ............................................................................................................ 3
Competencia especfica ...................................................................................... 4
1.1. Algoritmos ..................................................................................................... 6
1.1.1. Definicin de algoritmo ........................................................................... 7
1.1.2. Diseo de algoritmos para resolver problemas matemticos ................. 8
1.2. Diagramas de control de flujo ..................................................................... 16
1.2.1. Conversin de algoritmos a diagramas de control de flujo ................... 17
1.3. Lenguaje C ................................................................................................. 19
1.3.1. Estructuras bsicas de programacin .................................................. 21
1.3.2. Constantes y tipos de variables ........................................................... 25
1.3.3. Estructuras de control de grupo ........................................................... 25
1.3.4. Funciones y procedimientos ................................................................. 30
Evidencia de aprendizaje. Algoritmos y diagramas de control de flujo .............. 34
Autorreflexiones ............................................................................................. 34
Cierre de la unidad ............................................................................................ 34
Para saber ms .............................................................................................. 35
Fuentes de consulta .......................................................................................... 35

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 2


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

Unidad 1. Introduccin al lenguaje de programacin C

Presentacin de la unidad

1110010100101010011 La unidad 1 permite comprender aspectos bsicos de la


1011101001001011100 programacin, utilizando el lenguaje C, definido por el
1110010100101010011 estndar ANSI. De esta manera, se puede usar cualquier
0000011110101010111 compilador estndar de lenguaje C como son: visual C,
1110010100101010011 Borland C, GCC, entre otros, y aplicarlos para resolver
1110010100101010011 problemas matemticos y mtodos numricos para hacer
1011101001001011100 simulaciones de fenmenos fsicos, qumicos y biolgicos
1010111010101010010 en el rea de energas renovables.

Esta unidad comprende una amplia variedad de temas que van desde el conocimiento
bsico de programacin, hasta la aplicacin del lenguaje de programacin C para
resolver problemas aplicados a energas renovables.

Adems, presenta las tcnicas principales usadas en la programacin, tales como el


anlisis del estilo y las buenas prcticas de programacin. Para esto, se proporcionan un
conjunto de herramientas centradas en las estructuras y en las sentencias bsicas.

Propsitos

El propsito de la unidad es proporcionar las bases


para comprender el procedimiento en la realizacin
de simulaciones en los sistemas energticos y
disear un programa para resolver problemas
computacionales aplicados a energas renovables
mediante el uso del lenguaje de programacin C.

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 3


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

Competencia especfica

Aplicar el lenguaje de programacin C para solucionar


problemas computacionales aplicados a energas
renovables mediante el diseo de algoritmos y diagramas
de control de flujo, as como el uso de corridas de
escritorio.

Planeacin del docente en lnea

Es un espacio diseado para que tu docente en lnea establezca su


planeacin didctica, es decir, el diseo de cada una de las
actividades que debes realizar.

Recuerda estar atento a dicho espacio para revisar las indicaciones


precisas, por ejemplo, fechas de entrega, formatos, materiales de
consulta, actividades o ejercicios que te aportarn en tu aprendizaje.

Tambin en este espacio tu docente en lnea te indicar al finalizar


el curso la actividad que debers entregar en la Asignacin a cargo
del docente en lnea, as que mantente atento a lo largo del curso, y
revisa constantemente esta herramienta, porque ser la
comunicacin directa con tu docente en lnea sobre cada una de las
actividades a entregar.

Por lo tanto, este espacio solo es de consulta y no es necesario que


participes en l.

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 4


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

Foro de dudas

Este es un espacio de consulta y comunicacin, recuerda que fue


delimitado para resolver inquietudes y compartir ideas sobre los
aspectos que abordars durante el semestre.

El objetivo del foro es generar una mejor comunicacin con tus


compaeros(as) y docente en lnea.

Para desarrollar algn planteamiento sobre la asignatura, debers


realizar lo siguiente:

1. Revisa los comentarios desarrollados por tus


compaeros(as) para saber si ya existen aportes similares a
tu planteamiento.

2. Si no es as, describe tu planteamiento de forma clara para


que todos(as) puedan comprenderlo y te ayuden a
resolverlo.

*Se recomienda que en caso de que ya exista un


planteamiento hecho por alguien ms y que sea similar al
tuyo, puedes describir tu respuesta a este planteamiento en
esa misma lnea de discusin para evitar temas duplicados.

3. Espera a que tu docente en lnea u otro(a) compaero(a) te


responda.

Adems de exponer tus dudas, puedes apoyar en contestar las que


generan tus compaeros(as), si es el caso, puedes realizar lo
siguiente:

Consulta los comentarios de tus compaeros(as) y si tienes


la respuesta, aydalos para que resuelvan sus inquietudes.
*Recuerda que al hacerlo lo debers realizar de forma
respetuosa y clara, siempre enfocndote en las cuestiones
acadmicas.

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 5


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

*Para dar solidez a los comentarios que hagas relacionados


con el contenido de la asignatura, respalda tus aportes con
fuentes de referencia confiables. (Artculos cientficos, libros,
pginas web de universidades, etc.)

*No olvides que tu docente en lnea estar al pendiente de todos los


comentarios que se emitan en el foro, ya que l es el (la)
encargado(a) de mediar y cerrar este espacio.

1.1. Algoritmos

Un lenguaje de programacin se disea para que una computadora ejecute las


instrucciones elaboradas por una persona e indicadas en el cdigo de un programa, con
el fin de realizar un proceso. El programa tiene una estructura definida a base de smbolos
y reglas sintcticas. Cuando se escribe un programa, es necesario probarlo, quitarle los
errores (depurarlo) y compilarlo para obtener un cdigo llamado fuente, a esto se le
conoce como programacin. Dicho en otras palabras, programacin es el proceso de
creacin de un programa de computadora.

Las computadoras estn hechas para comunicarse en cdigo digital binario, que se
expresa basndose en ceros y unos. A este cdigo se le llama lenguaje mquina o
lenguaje de bajo nivel. Para efectuar la traduccin del lenguaje humano al lenguaje
mquina, se usan otros programas llamados compiladores, los cuales, adems, ayudan a
corregir errores y a enlazar las diferentes partes de un programa en un todo ejecutable.
Es por esto que los programas estn comprometidos entre esa doble legibilidad: los
programas tienden a parecerse a los lenguajes naturales para mayor comprensin de las
personas y, adems, deben tener una estructura simple para poder ser traducida a
lenguaje mquina.

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 6


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

1.1.1. Definicin de algoritmo

El algoritmo es el primer paso y, jerrquicamente, el ms importante en la tcnica de


programacin, incluso cuando se trata de un programa sencillo.

Sedgewick (1995), recomienda una estrategia a seguir para lograr el entendimiento de


este tema, y que se te recomienda seguir muy puntualmente:


Para entender bien un algoritmo hay que realizarlo y ejecutarlo;


por consiguiente, la estrategia recomendada para comprender los
programas () es implementarlos y probarlos, experimentar con
variantes y tratar de aplicarlos a problemas reales. (Sedgewick,
1995).

En la cita anterior, se indica que hay que implementar el algoritmo y probarlo, para
despus experimentar variantes en sus parmetros y, finalmente, aplicarlos a problemas
reales. Esta secuencia es la que debers seguir para entender de programacin y la que
mejores resultados te dar.

El algoritmo consiste en explicar brevemente cada una de las actividades que deseas que
el programa realice. Para esto, se parte de una situacin inicial hacia una situacin final
deseada. En general, son listas de instrucciones para solucionar un problema que pueden
ser expresadas en lenguaje natural, pseudocdigo o diagramas de flujo. Su objetivo es
simplificar la lgica matemtica a un nivel que pueda ser comprendido por todos.

En la vida cotidiana, los algoritmos se usan para elaborar los manuales de usuario, por
ejemplo. En dichos manuales, se te dan instrucciones precisas y breves referentes al uso
correcto del dispositivo, as como su armado y puesta en funcionamiento. Se usan,
adems, para calcular el resultado de una operacin matemtica. Por ejemplo, en la
solucin de una divisin, donde sigues instrucciones precisas para obtener el resultado.

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 7


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

Para saber ms

Gracias a los trabajos de Kurt Gdel, Alonzo Church y Alan Turing se conoce que
slo una pequea parte de los problemas es posible resolverla mediante un
programa de computadora. Para saber ms, lee el documento de Gdel K.
(1980). Sobre proposiciones formalmente indecidibles de los Principia
Mathematica y sistemas afines, sealado en las fuentes de consulta.

Ahora bien, para la realizacin de un algoritmo deben definirse los siguientes elementos:
situacin inicial, proceso y situacin final, como se muestra enseguida:

Elementos de los algoritmos.

El algoritmo es un conjunto de instrucciones o tareas bien definidas, precisas y ordenadas


que permite, a partir de una situacin inicial, alcanzar una situacin final mediante la
ejecucin de los pasos sucesivos de un proceso.

1.1.2. Diseo de algoritmos para resolver problemas matemticos

Para elaborar un algoritmo, primeramente, debes hacer una lista de tareas, indicar su
secuencia en el tiempo y cmo se va a ejecutar por la computadora.

Los pasos para su diseo son los siguientes:

Comprender el problema
Declarar las variables
Establecer la situacin inicial

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 8


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

Escribir el pseudocdigo correspondiente al proceso


Concluir situacin final

Ejemplo

Cuando vas a cambiar un neumtico pinchado en tu auto, debers pensar qu debes


hacer primero. El programa har exactamente las tareas que le indiques y en el orden
exacto que las escribas.

Partiendo de las condiciones iniciales, probablemente indicars lo siguiente:

1.- Estacionar el auto convenientemente (uso del freno de mano y/o tal vez una piedra
o ladrillo).
2.- Buscar y seleccionar la herramienta adecuada (gato, llave de cruz, llanta de
repuesto).
3.- Usar el gato, colocndolo en la posicin justa para levantar la llanta averiada.
4.- Aflojar los birlos (tornillos con que se sujeta la llanta).
5.- Quitar la llanta averiada y colocar, en su lugar, la llanta nueva.
6.- Poner los birlos nuevamente, apretndolos convenientemente.
7.- Bajar y retirar el gato.
8.- Quitar los obstculos que se pusieron para frenar el auto. Y retirarse.

Representa este algoritmo todas las tareas para la solucin perfecta del problema
anterior? Cmo podras mejorarlo? Identificas las condiciones iniciales y la condicin
final?

En este ejemplo de algoritmo, si se concentra en las tareas expuestas, es posible darse


cuenta de que se olvidaron las seales de seguridad que deben ser colocadas como
advertencia a los otros autos. Es posible ocasionar un accidente si estas seales no se
colocan (luces intermitentes, tringulos reflejantes, etc.) y esto muestra la importancia de
disear un algoritmo que contemple todos los casos posibles.

Observa el siguiente video llamado Lenguaje C, el cual trata sobre el


tema de los algoritmos, pseudocdigo y diagramas de flujo.

El vdeo se encuentra en el Aula virtual.

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 9


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

Las condiciones iniciales y finales no se encuentran en el cuerpo del algoritmo, llamado


proceso, sino que t debers identificarlas y en esta tarea debes ser lo ms especfico
posible, invirtiendo una considerable suma de esfuerzos, ya que su correcta localizacin
es primordial en el diseo del algoritmo. Estas preguntas te servirn de gua: en qu
situacin me encuentro y a dnde me dirijo?

Las bases de la programacin estructurada las defini Niklaus E. Wirth, sealando que
cualquier problema algortmico puede resolverse usando solo tres tipos de estructuras:

1 Estructuras secuenciales, donde se ejecuta una instruccin y luego se ejecuta la


siguiente y as sucesivamente.
2 Estructuras selectivas, en las que se evala una condicin para saber si es
verdadera o no y, dependiendo de su valor, el flujo del programa se dirigir a una
instruccin o conjunto de instrucciones (valor verdadero) o a otro conjunto (valor
falso).
3 Estructuras iterativas, donde las instrucciones se repiten continuamente en un
flujo cclico. Se sale del ciclo al verificarse una determinada condicin.

Llamado Program Development by Stepwise Refinement (Acerca de la enseanza de la


programacin), se considera un documento clsico en Ingeniera de Software, por lo cual
resulta indispensable su lectura. En 1985 escribi el libro Algorithms and Data Structures,
en el cual, en su captulo uno, te indica las razones de por qu solamente con tres tipos
de estructuras se puede disear cualquier programa.

Para saber ms

Para saber ms, se te recomienda leer Wirth, Niklaus E. (1985). Algorithms and
Data Structures y Wirth, Niklaus E. (1971). Program Development by Stepwise
Refinement, ya que son importantes para tu formacin profesional, ambos se
encuentran en la seccin Material de apoyo.

Los tres tipos de estructuras indicadas con anterioridad debern escribirse en


pseudocdigo, el cual es un esbozo del proceso que, despus, ser programado en
lenguaje de alto nivel.

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 10


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

Edsger W. Dijkstra, en su obra The structure of the The Multiprogramming System,


introdujo el concepto de modularidad (Dijkstra, 1983), en el que ensea que todo
programa se puede construir mediante subprogramas ms pequeos (mdulos), los
cuales interactan entre ellos.

Cuando se disea un algoritmo, se debe probar su efectividad exhaustivamente. Y solo


cuando estas pruebas indiquen que el algoritmo est contemplando todos los casos en
que pudiera fallar, podr decirse que el algoritmo est terminado. Despus se mejorar
para incluir otras posibilidades, en una nueva versin.

La primera de estas pruebas es llamada corrida de escritorio y, en ella, el programador,


valindose de lpiz y papel, seguir todos los flujos del programa de principio a fin,
intentando encontrar errores. Para aplicar esta prueba, adems del diagrama de flujo, se
deber ubicar en las columnas de una tabla todas y cada una de las variables empleadas,
una por columna. Adems, se seguirn los diversos caminos y sentidos del flujo utilizando
el diagrama de flujo y se anotarn en los renglones de abajo, de cada columna de la tabla,
los nuevos valores que van adquiriendo las variables. El resultado de este proceso deber
coincidir con los valores esperados.

Para comprender mejor el concepto de algoritmo, as como


sus caractersticas y tcnicas de formulacin, consulta el
texto de Peralta, Lisandro. (2010). Anlisis de lenguaje y en
particular el Captulo 1. Concepto de Algoritmo, el cual se
encuentra en el material de estudio.

Ahora, resolveremos algunos problemas matemticos en los cuales est involucrada una
o varias frmulas que te ayudarn a obtener una solucin correcta.

Ejemplo

Para realizar un algoritmo que sume dos nmeros, podras seguir estos pasos,
dependiendo de las condiciones iniciales.

1.- Introducir por teclado los nmeros a sumar. Aqu debers de poner atencin en el
tipo de nmeros que vas a manejar enteros o flotantes- y como podras considerar
que tu programa contempla sumar cualquier par de nmeros, entonces debes
incluirlos en unas variables, por ejemplo NUMERO1 y NUMERO2.

Una variable significa un espacio reservado en la memoria, en donde se almacenar


un dato. En l, cualquier dato puede borrarse y escribir sobre l otro nuevo. Si un dato
excede el espacio reservado, entonces ocurrir un error.

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 11


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

2.- Indicar al programa qu tipo de operacin matemtica vas a usar: en este caso,
suma se indica por la cruz +.

3.- Guardar el resultado de la operacin en otra variable, por ejemplo SUMA.

4.- Indicar que se exhiba en pantalla el resultado.

Este ejemplo te demuestra que, para encontrar la solucin de un problema, primero


debe analizarse y definirse de la manera ms precisa posible, con el objetivo de
disear un procedimiento que te lleve al resultado deseado. Una pregunta que te
servir de gua y apoyo en el proceso, es: qu hace el programa, para qu sirve?

Consulta el texto de Peralta, Lisandro. (2010). Anlisis de


lenguaje y en particular el Captulo 3. Metodologa para
Solucin de Problemas por Computador, en el cual se te
indica la metodologa para la solucin de problemas por
computador, la cual segn el autor, se conforma por:
definicin y anlisis del problema, diseo del algoritmo y
codificacin, prueba y depuracin, para finalmente
establecer la documentacin y mantenimiento.

Ahora bien, existen diversas tcnicas o sistemas para programar, la tcnica que se
estudiar en esta unidad es llamada diseo descendente o top down, que significa que
se dividir el problema en subproblemas menores.

Sedgewick (1995), da la clave para aprender a programar:


Cuando se desarrolla un programa muy grande, una gran parte


del esfuerzo se destina a comprender y definir el problema a
resolver, analizar su complejidad y descomponerlo en
subprogramas ms pequeos que puedan realizarse fcilmente.
(Sedgewick, 1995)

Esta cita indica la importancia de comprender y definir el problema, lo cual significa


visualizarlo y analizar su complejidad para, despus, descomponerlo en subproblemas y

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 12


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

estos, a su vez, dividirlos en otros subproblemas. Se invita a que comprueben la cita


arriba indicada y que profundicen en el tema.

Segn indica Gregorio Martn Quetgls (2003), la tcnica top down consta de los
siguientes pasos:

La idea es muy sencilla: dado un problema bien definido, dividirlo


en subproblemas ms sencillos de resolver (...) dividir estos en
otros subproblemas ms sencillos, hasta que alcancemos un nivel


de sencillez en los problemas que se nos plantean que sea trivial
su codificacin en un lenguaje. La habilidad de abstraer
subproblemas que sean independientes entre s, es clave en este
Igual que en las anteriores citas, se espera que consultes el libro mencionado y que
tipo de diseo... (Quetgls, 2003).
profundices en los temas tratados.

El autor sugiere que, adems de usar esta estrategia, se use la modularidad, que consiste
en la unin de un conjunto de subprogramas articulados por un mdulo que funciona
como control.

Observa el vdeo llamado Introduccin a la programacin 4:


Algoritmo que se encuentra en el Aula virtual, el cual trata sobre la
introduccin a la programacin.

En un nivel superior, los pasos de la programacin seguirn este esquema:

Disear el algoritmo
Dibujar el diagrama de flujo
Correr manualmente el algoritmo (corrida de escritorio)
Codificar el algoritmo en lenguaje de programacin C
Compilarlo
Ejecutarlo
Verificarlo y depurarlo de errores.

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 13


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

Estos pasos se muestran en la siguiente figura, (Quetgls, 2003):

Pasos a seguir en la programacin. Fuente: tomado de Quetglas, (2003).

Todo programa deber ser documentado, es decir, debes escribir comentarios en las
lneas que, a tu criterio, sean ms importantes, para que te sea fcil, posteriormente,
actualizar tu programa. Para documentarlos, debers escribir al inicio del comentario el
signo diagonal y asterisco: /* y para finalizarlo usars el asterisco y signo diagonal: */.

Codificar un programa significa que lo escribirs usando un cdigo o lenguaje de alto


nivel. Mientras que compilacin significa que otro programa llamado compilador lo
traducir a un cdigo mquina (lenguaje digital binario de unos y ceros). Aqu se pueden
presentar errores de compilacin que, generalmente, son problemas en la sintaxis de las
reglas del lenguaje de programacin.

Cuando codificas tu programa, ste se llamar programa fuente. A la salida del


compilador tu programa se llamar programa objeto. Despus, ste pasa a la fase de
enlazamiento o link, que rene los diferentes objetos producidos para generar el
programa ejecutable.

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 14


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

La compilacin se hace en varias partes, que se identifican como:

Preprocesado, donde las directivas al preprocesador deben ser antecedidas por el


smbolo #. Por ejemplo, todas las inclusiones: #include

Compilacin. Genera cdigo objeto.

Enlazado. Link es donde se encadenan los diversos programas objeto y las


libreras que se van a usar para generar el programa ejecutable final.

Garca Snchez (2004), dice que para resolver problemas de programacin se deben
seguir seis etapas: anlisis, diseo, codificacin, pruebas, validacin y optimizacin.


Paso 1. Anlisis de requisitos. Indica especificacin de requisitos
del cliente: cules son las entradas del programa?, qu salida
debe producir el programa?, qu pasos son necesarios para poder
procesar la entrada hasta llegar a la salida?

Paso 2. Diseo del programa. (...) es necesario disear uno o


varios algoritmos que reflejen la solucin del problema. Suele
haber varios diseos alternativos por lo que es importante elegir la
mejor opcin.

Paso 3. Codificacin del programa en C. (...) traducir el diseo


detallado a sentencias de lenguaje.

Paso 4. Prueba del programa. Se ejecuta el programa usando


distintos tipos de datos para verificar que el programa funciona.

Paso 5. Validacin del programa. El programa se pondr en


funcionamiento real.


Paso 6. Optimizacin del programa. Estudiar si se puede mejorar la
solucin adoptada. Garca Snchez, (2004).
El anlisis de algoritmos del paso 2, busca descubrir si stos son o no eficaces y
establece una comparacin entre ellos con el fin de conocer cul es el ms eficiente.

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 15


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

Para saber ms

Para saber ms sobre las seis etapas para resolver problemas de programacin e
consulta el libro de Garca Snchez, (2004). Problemas resueltos de programacin
en lenguaje C, sealado en las fuentes de consulta.

Actividades

Con lo revisado hasta el momento, ests preparado(a) para realizar


la Actividad 1. Algoritmos aplicados, solo espera que tu docente
en lnea te proporcione las indicaciones para realizar la actividad.

1.2. Diagramas de control de flujo

Para ayudarte a considerar todos los casos que debe incluir el programa, existe una
herramienta visual muy valiosa: los diagramas de flujo, sobre los cuales encontrars ms
informacin en Introduccin a los diagramas de flujo por Pablo Augusto Sznajdleder, dicho
documento se encuentra sealado en las fuentes de consulta. Para saber ms, se te
sugiere leerlo, ya que muestra, adems, una pequea introduccin a la programacin con
pseudocdigo.

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 16


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

Para saber ms

Para saber ms, se te sugiere leer el texto de Sznajdleder. (s/d). Introduccin a los
diagramas de flujo, ya que muestra, adems, una pequea introduccin a la
programacin con pseudocdigo.

1.2.1. Conversin de algoritmos a diagramas de control de flujo

Las reglas para la creacin de diagramas de flujo son:

Todos los diagramas de flujo tienen que iniciar con un smbolo de inicio y finalizar
con un smbolo de fin.
Los smbolos de los diagramas de flujo debers dibujarlos de arriba hacia abajo, y
de izquierda a derecha.
Los smbolos dibujados los unimos con lneas, las cuales tienen una punta de
flecha que indica la direccin en que fluye la informacin.
Evita el cruce de lneas, si quieres enviar el flujo a otro sitio, usa conectores.
Todas las lneas de flujo deben estar conectadas.
Los textos escritos dentro de un smbolo deben ser precisos y breves.

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 17


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

Inicio

La lmpara no
funciona

Est No
enchufada? Enchufarla

Si

Est Remplazar el
quemado?
Si foco

No

Comprar nueva
lmpara
Fin

Ejemplo de diagrama de flujo.

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 18


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

Actividades

Ahora realiza la Actividad 2. Diagramas de control de flujo. Las


indicaciones precisas de la actividad las sealar tu docente en
lnea, por lo tanto se solicita que ests al pendiente de la seccin de
Planeacin del docente en lnea.

1.3. Lenguaje C

El lenguaje C es un lenguaje de alto nivel muy completo, el cual sirve como herramienta
para hacer programas con el propsito de controlar una o varias variables de un proceso
relacionado con energas renovables.

El lenguaje C es una mejora del lenguaje B y fue inventado en 1972 por Dennis M. Ritchie
en los Laboratorios Bell. Este lenguaje puede mezclar cdigo ensamblador con lenguaje
C. El cdigo ensamblador permite controlar los puertos de la computadora, lo cual es muy
importante para la adquisicin de datos y el control de las variables fsicas. Este cdigo se
llama tambin lenguaje mquina y consta de lenguaje digital binario (unos y ceros).

Para iniciarte en el tema, lee el documento llamado Breve


introduccin al lenguaje C, que se encuentra en el Aula
virtual.

Se sugiere consultar el estndar internacional del lenguaje


de programacin C ISO/IEC ISO/IEC 9899:TC3, ya que
se pretende que uses este estndar en la elaboracin de
tus programas.

En el siguiente vnculo, encontrars un relato de la evolucin del lenguaje C escrito por su


propio creador, Dennis M. Ritchie (1972), The Development of the C Lenguaje, as que te
invitamos a consultarlo:

http://cm.bell-labs.com/cm/cs/who/dmr/chist.pdf

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 19


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

Es necesario que leas detenidamente el documento para que conozcas la evolucin y


desarrollo del lenguaje C, adems de algunas ancdotas que ocurrieron durante su
formacin.

Para que puedas disear programas en un lenguaje de alto nivel, se requiere de palabras
reservadas, que quiere decir que el programador no puede asignarles otro significado
diferente al original. Por ejemplo, int es una palabra reservada para indicar tipo de dato
entero. El lenguaje C tiene algunas otras palabras reservadas, por ejemplo: auto, break,
case, char, const, continue, default, do, double, else, enum, extern, float, for goto, if, int,
long, register, restrict, return, short, signed sizeof, static, struct, switch, typedef, union,
unsigned, void, volatile y while.

Jesse Liberty (2001), menciona:


Algunas palabras estn reservadas para C y no se pueden utilizar
como nombres de variables. Estas palabras son utilizadas por el
compilador para controlar el programa. (Liberty, 2001).

Para saber ms

Para saber ms respecto de las palabras reservadas, se te sugiere leer el libro de


Jesse Liberty. (2001). Aprendiendo C++ para Linux en 21 das, sealado en las
fuentes de consulta.

En el captulo de Lenguajes de programacin del libro de Liberty, (2001), se abordan


lenguajes de programacin desde un punto de vista general. En l, se introduce, tambin,
al lenguaje mquina y sus caractersticas, el uso de traductores, ensambladores y
macroensambladores, los cuales constituyen un tipo especial de lenguaje en donde
aparecen los neumnicos (palabras de fcil aprendizaje). Todos estos temas son muy
importantes para la apreciacin global del tema de programacin, por lo que es preciso
que lo leas detalladamente.

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 20


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

Actividades

Ahora realiza la Actividad 3. Corrida de escritorio. Las


indicaciones precisas de la actividad las sealar tu docente en
lnea, por lo tanto se solicita que ests al pendiente de la seccin de
Planeacin del docente en lnea.

1.3.1. Estructuras bsicas de programacin

Una vez terminada la Actividad 3, se te presenta un panorama general de las


instrucciones para disear un programa y sus correspondientes acciones bsicas:

Instrucciones de asignacin: En estas instrucciones se le asigna un dato a la


variable.

x = 40; /* se le asigna el valor 40 a la variable x*/

Instrucciones de lectura y escritura de datos: En estas instrucciones se lee desde


el teclado el valor correspondiente a la variable. Puede leerse, tambin, desde un
dispositivo o puerto de entrada, o entrada/salida. Por ejemplo:

printf(introduce un nmero por teclado); /* Escribe en pantalla los caracteres


encerrados entre comillas. */

scanf (%tipo, &var); /*sintaxis de lectura de una variable */

scanf ( %d, &x ); /* Lee un dato tipo entero y lo asigna a la variable x */

scanf (%f, &m); /* El smbolo ampersand (&) significa asignacin de un valor ledo
de teclado a la variable m */

La instruccin printf, en general, se usa para visualizar en pantalla los valores indicados.
Una combinacin de instrucciones de lectura y escritura sera as:

printf (escribe tu nombre de pila);

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 21


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

scanf (%10s, &nombre); /* lee mximo diez caracteres de tu nombre y lo asigna a la


variable nombre */

Algunos dispositivos y puertos de entrada, o entrada /salida son:

Un teclado, un escner, el ratn, el micrfono, puertos de entrada/salida: como USB (Bus


Serial Universal), puerto telefnico, red almbrica, wifi, bluetooth, puerto serial, entre
otros.

A continuacin, se escribe un primer programa en lenguaje C y se detalla indicando


comentarios en cada prrafo de su estructura.

Debemos escribir, primero, las directivas al preprocesador, las cuales se distinguen por
llevar el smbolo # e indican las rdenes que se le dan a un programa que invoca el
compilador antes que comience su trabajo. Es decir, el preprocesador analiza el archivo
fuente antes de la fase de compilacin. El preprocesador es una parte del compilador, un
programa, que se ejecuta en primer lugar.

Por lo tanto, el preprocesador es la primera etapa incluida en la compilacin. Se escriben


las directivas de la siguiente forma:

#include <stdio.h>
#define PI 3.1416

La primera lnea significa incluya la librera stdio.h (acrnimo de standard input output,
entradas y salidas estndar) la extensin punto h quiere decir encabezado header.
Este paso se llama inclusin de libreras.

El siguiente rengln significa que definimos la constante PI y que, cada vez que se
quiera poner su valor 3.1416, se puede abreviar como PI. Este paso se llama definicin de
constantes, en el cual se pueden definir todas las constantes que se requieran.

Archivos de cabeceras de la biblioteca ANSI C


<assert.h> La macro assert (asercin), se usa para detectar errores lgicos.
<complex.h> Funciones para manejar nmeros complejos.
<cstring> Las funciones strlen, strstr, strchr, strcat.
<ctype.h> Funciones para clasificar caracteres segn sus tipos o para
convertir entre maysculas y minsculas, independientemente
del conjunto de caracteres (tpicamente ASCII o alguna de sus
extensiones).
<errno.h> Para analizar los cdigos de error devueltos por las funciones de

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 22


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

biblioteca.
<fenv.h> Para controlar entornos en coma flotante (nuevo en C99).
<float.h> Contiene la definicin de constantes que especifican ciertas
propiedades de la biblioteca de coma flotante, como la diferencia
mnima entre dos nmeros en coma flotante (_EPSOLON), el
nmero mximo de dgitos de precisin (_DIG), o el rango de
valores que se pueden representar (_MIN, _MAX).
<inttypes.h> Para operaciones de conversin con precisin entre tipos enteros
(nuevo en C99).
<iso646.h> Para utilizar los conjuntos de caracteres ISO 646 (nuevo en
NA1).
<limits.h> Contiene la definicin de constantes que especifican ciertas
propiedades de los tipos enteros, como rango de valores que se
pueden representar (_MIN, _MAX).
<locale.h> Para la funcin setlocale() y las constantes relacionadas. Se
utiliza para seleccionar el entorno local apropiado (configuracin
regional).
<math.h> Contiene las funciones matemticas comunes.
<setjmp.h> Declara las macros setjmp y longjmp para proporcionar saltos de
flujo de control de programa no locales.
<signal.h> Para controlar algunas situaciones excepcionales, como la
divisin por cero.
<stdarg.h> Posibilita el acceso a una cantidad variable de argumentos
pasados a una funcin.
<stdbool.h> Para el tipo booleano (nuevo en C99).
<stdint.h> Para definir varios tipos enteros (nuevo en C99).
<stddef.h> Para definir varios tipos de macros de utilidad.
<stdio.h> Proporciona el ncleo de las capacidades de entrada/salida del
lenguaje C (incluye la venerable funcin printf).
<stdlib.h> Para realizar ciertas operaciones como conversin de tipos,
generacin de nmeros pseudo-aleatorios, gestin de memoria
dinmica, control de procesos, funciones de entorno, de
sealizacin (??), de ordenacin y bsqueda.
<string.h> Para manipulacin de cadenas de caracteres.
<tgmath.h> Contiene funcionalidades matemticas de tipo genrico (type-
generic) (nuevo en C99).
<time.h> Para tratamiento y conversin entre formatos de fecha y hora.
<wchar.h> Para manipular flujos de datos anchos y varias clases de

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 23


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

cadenas de caracteres anchos (2 o ms bytes por carcter),


necesario para soportar caracteres de diferentes idiomas (nuevo
en NA1).
<wctype.h> Para clasificar caracteres anchos (nuevo en NA1).
Estndar internacional del lenguaje de programacin C.

Despus, se escribirn las variables que se usarn en el programa. Por ejemplo:

int x, y, SUMA;

Que significa que se usarn las variables x, y y SUMA y que stas son variables
enteras. Para separar una instruccin de otra se usa el punto y coma ;

Los datos pueden ser:

Tipo Bytes Descripcin

char 1 Tipo carcter. %c

int 4 Entero, sin decimales. %d

signed int 4 Entero con signo.

unsigned int 4 Entero sin signo.

short 2 Entero corto.

signed short 2 Entero corto con signo.

unsigned short 2 Entero corto sin signo.

long 8 Entero largo.

signed long 8 Entero largo con signo.

unsigned long 8 Entero largo sin signo.

float 4 Nmero real %f.

double 8 Doble.
Estndar internacional del lenguaje de programacin C.

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 24


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

Luego, se escribe la funcin principal:

int main ( )

Esta funcin es la que se ejecuta primero, independientemente de dnde se coloque en el


programa (al inicio, en medio o al final), pero se acostumbra ponerla al inicio. La funcin
principal siempre se llama main, que es una palabra de las reservadas. En este caso, la
funcin main maneja valores enteros. Dentro de los parntesis se pondr el o los
argumentos de la funcin.

El argumento indica los valores que se usan en la funcin. Por ejemplo, en una funcin
que se llama suma, los argumentos son los sumandos (datos expresados como
variables), suma (2,3) que suma 2 + 3.

Luego, se escribe el programa principal encerrado entre llaves: { }

1.3.2. Constantes y tipos de variables

En el documento llamado Variables, constantes, identificadores y tipos de datos, del


autor Javier Fernndez Rivera, aprenders los conceptos enumerados en su ttulo, as
como su sintaxis para definir en un programa cada uno de los conceptos. Adems, te
instruye sobre los tipos de datos, los cuales, segn este autor, son cuatro: int, char, float
y double.

Lee el texto de Fernndez Rivera, J. (s/d) Variables,


constantes, identificadores y tipos de datos.

1.3.3. Estructuras de control de grupo

Para la solucin de un problema complejo es conveniente descomponerlo en problemas


ms simples, como se indic anteriormente, para luego usar las estructuras de control de
flujo. Cualquier problema se puede abordar utilizando tres tipos de estructuras:
condicional, repetitiva y secuencial.

Las estructuras condicionales son:

if - En espaol significa si.

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 25


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

If es el si condicional, las sentencias que le siguen, se ejecutan si se cumple la


condicin. Por ejemplo Si llueve, usar un paraguas.

Si x son las horas trabajadas por jornada, las horas extras seran contabilizadas as:

if x>8 /* la condicin es x>8 */

HorasExtras = x - 8; /*esta instruccin se ejecuta si la condicin es verdadera */

El if ... else, se lee como si, entonces... de otra manera.

Si llueve, entonces usar un paraguas, de otra manera usar un sombrero. Si se calculan


las horas extras de un trabajador, primero debe saberse si ste trabaj extra.

if x>8

HorasExtras = x - 8; /* instruccin que se ejecuta si la condicin es verdadera */

else

printf (PagoNormal\n); /* instruccin que se ejecuta si la condicin es falsa */

La instruccin escriba en pantalla PagoNormal indica que no hay horas extras. Cuando
exista ms de una instruccin, entonces stas se encerrarn entre llaves. La diagonal
invertida ene (\n) significa que se debe pasar un rengln despus de escribir los
caracteres que anteceden. Observa, tambin, la sangra, que se agrega para leer con
claridad el cdigo.

A continuacin, se describen los operadores de comparacin que te devuelven falso o


verdadero, el valor cero es equivalente a falso.

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 26


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

Operadores de comparacin.
Operador Significado

< Menor que.

> Mayor que.

<= Menor o igual que.

>= Mayor o igual que.

== Igual a.

!= Distinto de.
Estndar internacional del lenguaje de programacin C.

Los operadores && ("y"), || ("o") y ! ("no") son operadores lgicos, que se usan de esta
manera:

if ((x>0) && (x<16)) /* indica que la variable x adopta un valor entre cero y diecisis */

Observa el uso de parntesis individuales para cada condicin y parntesis adicionales


que agrupan las dos condiciones.

La estructura switch case, se usa de la siguiente manera:

#include <stdio.h>
#include <stdlib.h> /* inclusin de dos libreras */

char main (void) { /* funcin principal */


char sabor; /* variable sabor */
printf (qu sabor prefieres?\n);
scanf (%c, &sabor);

switch (sabor) { /* la variable se llama sabor */


case limn :
printf (el sabor del limn es cido y fuerte); /*esto es un bloque */
break; /* esta instruccin produce un salto de bloque, hasta el final de la
estructura */
case fresa :
printf (el sabor de la fresa es suave y agradable);
break;
default :

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 27


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

printf (no hay de ese sabor); /*esta instruccin es ejecutada cuando todos
los bloques son falsos, es decir, si se escribe un sabor que no esta
contemplado en ningn bloque, por ejemplo lima */

} /*fin de llaves de la estructura switch */

return ;
} /*fin de llaves de la funcin main */

Funciona as: con anterioridad se pregunta al usuario cul sabor prefiere? Y ste
introduce por teclado el sabor de su eleccin y se asigna a la variable sabor. El
programa muestra en pantalla una caracterstica del sabor elegido.

Se te invita a que corras el anterior programa, agregndole ms sabores.

Las estructuras de repeticin o ciclo son: while, do while, for

La sintaxis de la estructura while es:

while (condicin, igual que en if ) { /* el bucle se activa y se ejecuta el cdigo cuando la


condicin es verdadera y se vuelve a probar la condicin y ejecutar el cdigo, hasta que el
bucle se corta cuando la condicin es falsa */

/* Cdigo o instrucciones*/
}

Ejemplo

Para escribir en pantalla los nmeros del 0 al 99:

int i = 0; /* se declara la variable y se le asigna el valor de 0 */


while (i < 100) { /* la condicin es verdadera hasta el nmero 99, con el 100 da falso
*/
printf (%d\n, i); /* Se escribirn los nmeros en columna */
i = i + 1; /* la variable se incrementa una unidad cada ciclo */
} /* cierre de la llave de la estructura while */

Se observa que una variable puede declararse e inicializarse al mismo tiempo. Tambin,
que para mostrar en pantalla una lista de valores que adquiere una variable (en este caso
i) se usa printf(%d , i) y, finalmente, que para que se escriban los nmeros en columna
se usa el smbolo de diagonal invertida ene \n.

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 28


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

A este grupo tambin pertenecen las instrucciones para contadores, las cuales tienen la
siguiente sintaxis:

for (valor de inicio; condicin; incremento;)

El valor de inicio indica desde qu valor va a empezar a contar. La condicin indica hasta
qu nmero va a contar. x<=11 dice que hasta 11, incluyendo el 11. El incremento
muestra el salto que tendr el valor de inicio, por ejemplo x = x + 1, indica que saltar de
uno en uno. Si quiero que salte de dos en dos, escribo x = x + 2.

#include<stdio.h>
#include<conio.h> /* librera de entradas y salidas (io) por consola */

void main()
{
clrscr(); /* clear screen, borra la pantalla */
int X; /* La variable a incrementar es x , es tipo entero */
for(X=1; X<=11; X=X+1) /*Valor de inicio; Condicin; Incremento */
printf(" %d \n", X);}
getche();
}

Las estructuras secuenciales

En este tipo de estructuras se ejecuta una instruccin y luego se ejecuta la siguiente y as


sucesivamente.

Lee el texto de Gayo, D. (2002). Leccin 4 Estructuras de


control, el cual es necesario una lectura detallada, ya que se
te indican puntualmente las estructuras de control y su
adecuado uso en los programas. El texto se encuentra en el
material de estudio.

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 29


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

1.3.4. Funciones y procedimientos

Ahora se estudiarn las funciones, un grupo de sentencias que estn agrupadas en el


mismo nombre y que realizan una tarea especfica. Al ser llamada la funcin, se
ejecutan las sentencias y el flujo regresa al mismo punto de donde sta fue llamada.

Al igual que las variables, las funciones deben ser declaradas, as:

tipoDatoRetorno, nombreFuncin(lista parmetros);

Ejemplo

int Potencia (int base, int exponente);

La funcin se llama Potencia y tiene dos parmetros: la base y el exponente. Se trata


de la elevacin a una potencia n (el exponente) de un nmero dado (base).

Las funciones se implementan usando el siguiente formato:


La primera lnea se escribe igual que en la declaracin, sin el punto y coma.

int potencia (int base, int exponente)


{
sentencias1;
sentencia2;
...
}

Ente las llaves se escriben las sentencias que debe ejecutar la funcin.

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 30


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

El resultado de ejecutar la funcin, se llama valor de retorno y requiere la sentencia


return, de esta forma:

return (aqu se escribe la variable o expresin que se retorna);

Si se trata del caso que no retorna nada, entonces se escribe solamente: return;

En el caso de la funcin potencia, se puede nombrar el valor de retorno como resultado.

Las funciones se usan para retornar un valor, por ejemplo, el cuadrado de un nmero, la
suma total de los sumandos, etc. Y este valor de retorno se almacena en una variable.

Ejemplo

Funcin para generar nmeros aleatorios:

La funcin rand se encuentra en la cabecera <stdlib.h>

1 + (rand () % 6);

Genera un nmero aleatorio entre 1 y 6.

La librera <math.h> permite usar funciones matemticas como raz cuadrada, potencias,
logaritmos, funciones trigonomtricas: seno, coseno; exponencial, redondeos, entre otras.
stas te servirn al disear programas que incluyan estas funciones, en la unidad dos.

Un tipo especial de funciones se llama procedimiento, que son funciones que no


retornan ningn valor y se llaman solamente para que ejecuten su cdigo. El lenguaje C
trata las funciones y los procedimientos de igual forma.

Ejemplo
De procedimiento:

void mostarMenu (void)


{
printf (escriba 1 para ingresar el primer dato\n);
printf (escriba 2 para ingresar el segundo dato\n);
printf (escriba 3 para volver a ejecutar la funcin\n);
printf (escriba 4 para salir del programa\n);
}

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 31


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

Lee el texto de Funciones y procedimientos, se te indica


puntualmente el modo de declarar los procedimientos y las
funciones. La diferencia entre ellos estriba en que el
procedimiento devuelve un valor de tipo void. El documento
se encuentra en el material de estudio.

Ejemplo

De programa que calcula la integral definida de una funcin f() entre dos puntos que
son los lmites inferior y superior de la funcin. Se te sugiere insertar comentarios en
todas sus lneas.

#include <stdio.h>

float f (float x) ;
float integrar (float, float, float);

int main ( )

{
float lim_inf,lim_sup, inc;
printf(clculo de una integral definida\n);
printf(------------------------------------------------\n\n);
printf (introduzca lmite inferior: );
scanf(%f,&lim_inf);

do
{
printf(introduzca el lmite superior: );
scanf(%f, &lim_sup);
}
while (lim_sup < liminf);

do
{
printf(introduzca el incremento: );
scanf(%f, &inc);
}
while (inc <= 0);

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 32


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

printf(Valor de la integral = %5.2f\n, integrar (liminf, lim_sup, inc) );

return 0;
}
float f(float x)
{
return 2 * x;
float integrar (float liminf, float lim_sup, float inc)
{
float integral, x;
x = lim_inf;
integral = 0.0;

while (x < (lim_sup - lim_inf) )


{
integral += inc * f(x + inc/2.0);
x+= inc;
}
integral += lim_sup - x) * f ((lim_infx)/2.0)
return integral;
}

Si no dispones de un compilador de C, puedes descargar una copia de libre distribucin


de GNU GCC, en:

Versin UNIX y LINUX: ftp://ftp.gnu.org/gnu/


Versin Windows: http://sources.redhat.com/cygwin/

Este compilador se encuentra preinstalado en UNIX/LINUX. All mismo se te indica cmo


usarlo. Busca el documento llamado VI.pdf en donde encontrars cmo usar el editor de
texto VI.

Para escribir el programa en ambientes UNIX/LINUX, se usa un editor de texto (como VI o


EMACS); una vez escrito, se usa el compilador de C, con el comando gcc.

Para facilitar la tarea de programacin existen los IDE (Entorno de Desarrollo Integrado)
que incluye un compilador, un depurador y otras herramientas. El Bloodshed Dev-C++, es
un entorno de desarrollo de libre multiplataforma. Tal entorno fue abandonado y
retomado, y su versin mejorada se llama WxDev-C++. Otro entorno libre es el
Code::Blocks y el NetBeans.

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 33


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

Se sugiere que descargues el programa DIA, programa para hacer diagramas de flujo y
que te servir en tus actividades.

Lee el documento Ejemplos de problemas resueltos, se


escribieron nueve problemas de programacin sencillos, los
cuales documentars escribiendo comentarios en cada lnea.

Es preciso que leas el texto llamado Estructura general de


un programa en C, ya que con l tambin abordars los
modificadores de los tipos de datos bsicos.

Evidencia de aprendizaje. Algoritmos y diagramas de control de flujo

Para culminar el estudio de la unidad, realiza la Evidencia de aprendizaje. Algoritmos y


diagramas de control de flujo, slo espera las indicaciones de tu docente en lnea por
medio de la seccin de Planeacin del docente en lnea.

Autorreflexiones

Como parte de cada unidad, es importante que leas los cuestionamientos que formul tu
docente en lnea, ya que a partir de ellos debes elaborar t Autorreflexin y enviarla
mediante la herramienta Autorreflexiones. No olvides que tambin se toman en cuenta
para la calificacin final.

* Recuerda que debers realizar un archivo por unidad.

Cierre de la unidad

Esta unidad te provey de un recurso gil y fcil de comprender que es el lenguaje de


programacin C, el lenguaje que ms impacto ha tenido en la informtica. A partir de l
podrs desarrollar muchas implementaciones prcticas. Adems, en esta unidad se
estableci un panorama detallado para que logres una programacin robusta, que podrs
usar para modelar situaciones fsicas y resolver problemas mediante las estrategias
aprendidas: modelas para medir, mides para entender y mejorar.

Bien hecho

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 34


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

Para saber ms

Para profundizar sobre la historia de la programacin, puedes consultar las siguientes


pginas:

http://leo.worldonline.es/rodolfov/
http://galeon.hispavista.com/ultimopunto/

Fuentes de consulta

Dijkstra, E. W. (1983). The structure of the THE Multiprogramming System. EE.UU:


Communications of the ACM. (pg. 49-52).

Estndar internacional del lenguaje de programacin C ISO/IEC ISO/IEC


9899:TC3 (552 pginas en ingls). Disponible en:
http://www.openstd.org/JTC1/SC22/WG14/WWW/docs/n1256.pdf

Fernndez Rivera, J. (s/d). Variables, constantes, identificadores y tipos de datos.


Recuperado de: http://aurea.es/assets/2-tiposdatoslenguajec.pdf

Garca Snchez, J. D. (2004). Problemas Resueltos de Programacin en Lenguaje


C. Espaa: Thompson Ediciones Spain.

Godel, K. (1980). Sobre proposiciones formalmente indecidibles de los Principia


Mathematica y sistemas afines. Valencia, Espaa: Teorema.

Liberty, J. (2001). Aprendiendo C++ para Linux en 21 das. Mxico: Pearson


Educacin.

Peralta Murua, Lisandro. (2010). Anlisis de lenguaje. Mxico: UTEM. Recuperado


de:
http://informatica.utem.cl/escuela/asignaturas/ccomputacion/CONTENIDO/CONTE
NIDOS20111/nocionesbasicasalgoritmos.pdf

Quetgls, G. M. (2003). Introduccin a la Programacin Estructurada en C.


Espaa: Universidad de Valencia, Quiles Artes Grficas, S.A.

Sedgewick, R. (1995). Algoritmos en C++. Mxico: Addison-Wesley.

Sznajdleder, P. A. (s/d). Introduccin a los diagramas de flujo. Mxico: Alfaomega.

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 35


Energtica computacional
Unidad 1. Introduccin al lenguaje de
programacin C

Wirth, N. (1985). Algorithms and Data Structures. USA: Prentice Hall.

Wirth, N. (1971). Program Development by Stepwise Refinement. Zurich,


Switzerland.

Divisin de Ciencias de la Salud, Biolgicas y Ambientales | Ingeniera en Energas Renovables 36