Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Presentacin de la unidad
Presentacin de la unidad
101001000fb>100100010
1de3
1/1
Prop6sito de la Wlidad
de programaci6n.
:: Dillil"GIJil's los elementos de una
computadcra qua tntaManan an ta. aacucl6n da
un programa a lrallflB del modeb de von
Neumann.
:: Dlstl191lrs los paradigmas d& programacin
y los lenguale B asociados a 61to6.
111
CU1
zlii; lle&
Colnpetenc:ia 11.,.cca
111
1/200015
1de2
111
Recuerda qll8 en tua petlic"8cianas dentro de at8 y lodoa loa fotos, llliria, bloga y dama
harramlantat dal aue, dabafl dlltgllte a IUs compalleras(oa) da manara 1'81patucta, CGnlal y
en concordancia can lo estallllcldo en cada ocasl6n.
Icono.
Para lngreaar al m: En la iuta (pmte superior Izquierda del aula) da elle en FlllClamentos.
Se enllatarn laa actMdadea de la unidad, da elle en foro Fundamentos de PR911macl6n.
111
https://www.youtube.com/watch?feature=player_embedded&x-yt-ts=1421782837&v=88xNUNbPmEk&x-yt-cl=84359240
1/200015
1.1. Qu es 1.n1~a7
2 de 5
111
1/20/2015
htlp://aulatres.unadi'mico.mo'a"20151/pluginfile.phpl386/mod_scorm'ccnll!nt/1/02_FPR_U1_1_1/FPR_U1_terTe_1_1_p3.hlm1
3 de 5
1/1
1/200015
1.1. Qu es 1.n1~a7
4 de 5
111
1/200015
1.1. Qu es 1.n1~a7
Como puedes darte cuenta, ambos elementos son necesarios para que una computadora
funcione, ya que si los aislamos no pueden funcionar; por ejemplo, si tuviramos una computadora
con todos los componentes de hardware ms avanzados que existen {procesador, tarjeta madre,
monitor, teclado, etc.), pero sin Sistema Operativo instalado, de poco servira pues al prenderla,
nicamente veramos una pantalla negra y, por consiguiente, no podramos interactuar con ella.
Para comprender mejor lo que acabamos de decir, avanza al siguiente tema en el que conocers la
forma en que se estructura y funciona una computadora.
Has concluido este tema, ahora puedes re'Jisar el Tema 1.2. Estructura y funcionamiento de
una computadora.
5 de 5
111
1/200015
1de1
111
1/200015
El Modelo de Von Neumann propone que tanto el programa como los datos sean
almacenados en la memoria, de esta forma la computadora no tiene que reconstruirse, pues
para programarla nicamente debe introducirse el programa por el dispositivo indicado y
posteriormente alimentarla con los datos de entrada para que calcule la salida
corres pendiente.
Los elementos que componen esta arquitectura son: la unidad central de procesamiento
integrada por la unidad aritmtica-lgica y la unidad de control, la memoria y los dispositivos
de entrada/salida. A continuacin se describe brevemente la funcin de cada uno de los
elementos que integran el l\4odelo de Van Neumann.
1 de4
111
1/20/2015
Memoria Principal
Versin Accesible
http://aulatres.unadmexico.mx/a\Q0151/pluginfile.php/386/mod_scorm'contenV1/04_FPR_U1_1_2_1/FPR_U1_tema_1_2_1_p2.html
2 de 4
1/1
1/200015
Siguiente
111
1/200015
Anterior
Siguiente
1/1
1/200015
Unidad de Control (CU, Control Unit), se encarga de leer las instrucciones almacenadas en
memoria, decodificarlas y despus enviar las seales a los componentes que estn involucrados
en su ejecucin, para lo cual tiene dos elementos auxiliares el Contador del Programa (PC,
Program Counter) y el Registro de Instruccin (IR, lnstruction Register). En el IR se guarda
temporalmente la instruccin que debe ser ejecutada, mientras que en el PC se almacena la
direccin de memoria que contiene la siguiente instruccin que se ejecutar.
Anterior
Siguiente
1/1
1/200015
Para resolver este inconveniente, se cuenta con otro tipo de memoria, denominada memoria
secundaria, en ella se puede almacenar una gran cantidad de informacin
permanentemente, mientras el usuario no la borre. La desventaja de este tipo de dispositivos
es que no son tan rpidos como la memoria RAM. Los discos duros, los discos pticos (CD o
DVD), la memoria flash (USB) y las cintas magnticas, entre otras, son ejemplos de
dispositivos de almacenamiento secundario.
Anterior
Siguiente
111
1/200015
Anterior
Versin Original
111
1/200015
Es asr que todas las unidades de la computadora se comunican a travs del sistema de buses
que son cables mediante los cuales se envan setiales y dependiendo de la informacin que
transmiten se clasifican en:
:: El bus de direcciones transmite la direccin de memoria de la que se quiere leer
o en la que se quiere escribir.
:: El bus de control selecciona la operacin a realizar en una celda de memoria
(lectura o escritura).
:: El bus de datos transmite el contenido desde o hacia una celda de memoria
seleccionada en el bus de direcciones segn la operacin elegida en el bus de
control sea lectura o escritura.
3 de4
111
1/200015
4 de4
111
1/200015
Para entender mejor lo que sucede en el interior de la CPU al ejecutar cualquier programa, a
continuacin se describen de manera general los pasos que se realizan una vez que el
programa y los datos fueron almacenados en la memoria principal:
1 de4
111
1uq
rt*9pqrmm., .. wa '
111
1/200015
3 de4
111
1/20/2015
Instrucciones
lmprtnlr
<Date
Leer <X>
http://aulatres.unadmexico.mx/a\Q0151/pluginfile.php/386/mod_scorm'contenV1/05_FPR_U1_1_2_2/FPR_U1_tema_1_2_2_p4.html
4 de 4
1/1
1/200015
Ejemplo 1.1: El siguiente conjunto de instrucciones sirve para calcular el rea de un rectngulo.
Imprimir "Ingresa la base:"
Leer b
Imprimir "Ingresa la altura:"
Leer h
area- b*h
Imprimir rea
Siguiente
111
1/200015
Descripcin
Leer <X>
<X> -
<Dato>
Anterior
Siguiente
111
1/200015
Anterior
Siguiente
111
1/200015
Anterior
Siguiente
111
1/200015
Leer b
La unidad de control coordina las acciones necesarias para que, por medio del
teclado, el usuario introduzca un nmero y lo almacene en la memoria principal,
en el espacio correspondiente a la variable b.
Anterior
Siguiente
111
1/200015
Anterior
Siguiente
111
1/200015
Leer h
La unidad de control coordina las acciones necesarias para que el usuario
introduzca un nmero, por medio del teclado, y lo almacene en el espacio de
memoria correspondiente a la variable h.
Anterior
Siguiente
111
1/200015
area +- b*h
Anterior
Siguiente
111
1/200015
Imprimir rea
Anterior
Versin Original
1/1
1/200015
1de3
111
1/200015
Como podrs imaginar, para un ser humano resultara sumamente complicado escribir los
programas en lenguaje de mquina, es por eso que los programas se escriben en lenguajes
de programacin entendibles para los seres humanos y despus se traducen mediante un
software especial-que puede ser un compilador o un traductor- a cadenas de os y 1 s. De
tal manera que a cada instruccin le corresponde un cdigo binario especfico y para cada
dato tambin existe una codificacin nica.
Por ejemplo, la palabra "Hola" se representa como "0100 1000 0110 1111 0110 1100 0110
0000", ya que a cada letra le corresponde una codificacin:
0100 1000
0110 1111
0110 1100
A
0110 0000
El nmero 80 se puede representar como "0101 0000" y la instruccin "MOV R2, R7" se
codifica de la siguiente manera "0010 0000 1000 0100."
Si quieres conocer ms sobre el sistema binario, consulta la seccin Material de apoyo.
2 de 3
111
t.2,J.Jil
d..........!f'. . .
yclatoe
Por otra lado, escribir pragnnaa lenguaje binario 111 aumamlllllll compkedn 11*8 bl &el'flll
hum._, por ID que en las .Wmas d6cadu aa IW'I de&anollldo dlwlraoa 11f11911188 dll
p1ugramacl6n que son mas cercanos al lenguaje nalllral (humano), dll lo8 a ' hablanlmos
en la a~antll seccl6n
......--..........-
=,.. w::ob::t11m_FPR_Ut_1_2_PR_Ut_~_1_2_S.,Jl\HPPI
.......
..-i5'1...,rlle.fl 1
'111
1/200015
Lenguaje de programacin
1de2
111
1/2f.V2015
i-.tp://aulalre8.lnlltneoltco.rnd811a>151/plug lnftle.:llp/386.m:ld_sccrm'corlalt/1/07_FPR_U1_1_3.IFPR_U1_1arm_1_3_p2.htm1
2de2
1/1
1/2f.V2015
1 de6
1/1
1/200015
*-
MOVR8, R10
y unos.
2 de 6
111
1/200015
3 de 6
111
1/2f.V2015
i-.tp://aulalre8.lnlltneoltco.rnd811a>151/pluglnftle.:llp/386.m:ld_sccrm'corlent/1/08_FPR_U1_1_3_1/FPR_U1_f81ra_1_3_1_p4.l'*'ll
4de6
1/1
1/200015
5 de 6
111
1/200015
De acuerdo con lo anterior, los compiladores requieren una fase extra antes de poder
generar un programa ejecutable, y aunque esto pareciera menos eficiente en cuanto a
tiempo se refiere, un programa se ejecuta ms rpido si se usa un compilador en vez de
un intrprete, adems cuando el programa ya ha sido compilado puede ejecutarse
nuevamente sin tener que compilarse de nuevo, mientras que si se usa intrprete, debe
ser traducido cada vez que se quiera ejecutar.
Conforme han ido evolucionando las computadoras tambin lo han hecho las estrategias
para solucionar problemas, generando nuevos programas con diferentes filosofas,
llamadas paradigmas de programacin, de esto hablaremos a continuacin.
6 de 6
111
1.1.~LmWIJ
J ' a?
-->
Unldld L lnlrodued6n a la co"-'utadora y al derrollo de .ol'tww'e
lkl P8f8digma d programlCi6n rap1'911Gnta un enfcqua pawtirdal' o flasolt para disellar solucionea. Loa
paradigmas dltlaran unos da abos, en loa conceptcs y la fama da allelraar
IDs elamantos Involucrados en un problema, ar como en los pasos ~Integran su solucl6n
dlll prollllllna. en airas palabras, el ~mputD.
Psa conocer 10& dls11nto6 paradigmas que hay, descarga y lee el documento
Ptwdlgmaa de loa tenguejes dt> piogiamac1611:
Has ccnc1ii11o asta lllma, ahora pnedee llM8ar el Tema 1.4. Clclo de llda del aal\Mn.
,...,
111
Fundamentos de Programacin
Unidad 1. Introduccin a la computadora y al desarrollo de software
1.3.2 Paradigmas de los Lenguajes de Programacin
describen la forma de solucionar un problema a partir de una lista de instrucciones que se ejecuta de forma
secuencial, a menos que se trate de estructuras de control condicionales o repetitivas, o bien, saltos de secuencia
representados por la instruccin GOTO1. La programacin imperativa se define a partir del cambio de estado de
las variables que se produce por la ejecucin de las instrucciones, por ejemplo, el programa 1.1, que calcula el
rea de un rectngulo, es un ejemplo de un programa imperativo, ya que describe paso a paso como solucionar
el problema y el resultado corresponde al estado final de la variable area. Sin embargo, el lenguaje en el que est
escrito no corresponde a ningn lenguaje de programacin real, pero el lenguaje de mquina es un ejemplo de
este paradigma. Otros lenguajes imperativos son: Fortran, Cobol, Pascal, Basic, Ada y C.
Paradigma declarativo. En contraste con el paradigma imperativo, el objetivo de este paradigma no
es describir como solucionar un problema, sino describir un problema mediante predicados lgicos o funciones
matemticas. Dentro de este paradigma se encuentran los lenguajes de programacin funcionales y los lenguajes
de programacin lgicos. Los primeros representan el problema utilizando funciones matemticas, por ejemplo,
un programa que calcule el rea de un rectngulo utilizando un lenguaje funcional se vera as:
De tal manera que para calcular el rea de un rectngulo de base igual a 5 unidades y altura igual a 10 unidades,
se ejecuta la funcin con los parmetro 5,10, es decir, areaRectngulo(5,10), la cual devuelve como resultado 50.
Los lenguajes de programacin ms representativos del paradigma funcional son: Lisp, ML y Haskell.
En el caso de los lenguajes lgicos la solucin se representa a travs de un conjunto de reglas, por ejemplo:
Fundamentos de Programacin
Unidad 1. Introduccin a la computadora y al desarrollo de software
1.3.2 Paradigmas de los Lenguajes de Programacin
Esta regla dice que el valor de la variable area corresponde al rea del rectngulo con base b y altura h slo si area
es el resultado de multiplicar b por h. Estamos suponiendo que se ha definido el predicado multiplicacin(a, b, c).
En este caso para calcular el resultado se utiliza el principio de razonamiento lgico para responder a las preguntas
planteadas, por ejemplo si se desea calcular el rea del mismo rectngulo, la pregunta sera la siguiente:
Y despus de que se realicen los clculos (en este caso llamadas inferencias) el resultado que arrojara sera:
objetos y relaciones entre ellos. Est basado en varias tcnicas, incluyendo herencia, polimorfismo, modularidad y
encapsulamiento. En este caso se definen clases que son las plantillas para crear objetos, por ejemplo, si se quiere
un programa orientado a objetos que calcule el rea de un rectngulo, se debe definir una clase rectngulo que
contenga un mtodo encargado de calcular el rea. El lenguaje Java y C#, que actualmente son los ms utilizados,
son ejemplos de este paradigma.
1~15
Unidad 1.
Independientemente del paradigma que se siga y del lenguaje que se utilice para programar,
existe un conjunto de fases que deben seguirse para realizar un programa de computadora, al
cual se le conoce como ciclo de vida del software, avanza a la siguiente pantalla para conocer
ms al respecto.
1de2
111
1/20/2015
Unidad 1.
Oisoo del
algoritmo
Planteamiento
del problema '
Implementacin o
codificacin
Ciclo de vida del software
Mantenimiento
Documentacin de
programa
Pruebas y
validaci n
2 de 2
1/1
1/200015
Siguiente
Versin Original
htlp://207.249.20.123/8\620151/plug infile.php(J86(mod_scam'content/1/10_FPR_U1_1_410A_03_Fichero_02/inicio.htm
111
1/200015
Anterior
Siguiente
111
1/200015
Cul es la salida
deseada?
Qu mtodo(s) se
pueden utilizar para llegar
a la solucin?
Qu datos de entrada se
requieren?
El anlisis de
nuestro
ejemplo es muy
simple y se
resume en la
Qu datos o informacin
siguiente tabla: adicional es necesaria
para solucionar el
problema?
Existe algn problema o
condiciones que deban
cumplirse?
Anterior
htlp://207.249.20.123/8\620151/plug infile.phpl'386(mod_scam'content/1/10_FPR_U1_1_4/0A_03_Fichero_02/pagina2.hln1
1/1
1/200015
Diseo de la solucin
Es en esta fase donde se define: cmo el programa resuelve el problema?. Para ello, se describe paso
a paso la solucin del mismo, lo cual se conoce como algoritmo. Cuando el problema es grande se
recomienda dividirlo en subproblemas ms pequeos y resolver por separado cada uno de ellos. A esta
metodologa se le conoce como diseo descendente (top-down) o modular. Existen diferentes formas de
representar un algoritmo algunas formales, como una frmula matemtica, o informales, como es el caso
del lenguaje natural.
En la siguiente unidad estudiaremos a mayor profundidad los algoritmos y su representacin, pero para
seguir con el desarrollo de nuestro programa ejemplo, plantearemos la solucin como una secuencia de
pasos en espaol.
Anterior
Siguiente
htlp://207.249.20.123/8\620151/plug infile.php(J86(mod_scam'content/1/10_FPR_U1_1_410A_03_Fichero_02/pagina3.hln1
111
1/200015
Anterior
Siguiente
http://207.249.20.123/ll620151/plug infile.phpl'386(mod_scam'content/1/10_FPR_U1_1_4/0A_03_Fichero_02/pagina4.hln1
1/1
1/200015
Implementacin (codificacin)
El algoritmo no puede ser ejecutado por una computadora por ello debe traducirse a un lenguaje de
programacin (como por ejemplo C) para obtener un programa fuente que se traduzca a lenguaje de
mquina para que sea ejecutado por la computadora.
En el siguiente cuadro se muestra la codificacin en lenguaje C del algoritmo, por ahora no es necesario
que lo comprendas puesto que esto lo podrs hacer conforme vayas aprendiendo a programar, por lo
pronto solamente se muestra con fines ilustrativos.
Anterior
Siguiente
htlp://207.249.20.123/8\620151/plug infile.php(J86(mod_scam'content/1/10_FPR_U1_1_410A_03_Fichero_02/pagina5.hln1
111
1/200015
#include<stdio.h>
#include<stdlib.h>
main()
{
int b,h, area;
printf("lngresa la base y altura:");
scanf("%d %d", &b,&h);
area = b * h;
printf("Area = %d", area);
Anterior
Siguiente
http://207.249.20.123/ll620151/plug infile.phpl'386(mod_scam'content/1/10_FPR_U1_1_4/0A_03_Fichero_02/pagina6.hln1
1/1
1/200015
Validacin y pruebas
Esta fase debe hacerse una vez que se ha diseado el algoritmo y despus de que se codifica, sirve para
verificar que son correctos. Existen diferentes formas de probar que la solucin es correcta, algunas de
ellas formales y otras informales: las primera se utilizan para garantizar que el programa o algoritmo
siempre calcula el resultado deseado para cualquier conjunto de datos de entrada; en cambio, en las
segundas slo se prueba que funciona correctamente para algunos datos de entrada, tratando de
encontrar posibles errores, en este caso no se puede garantizar el programa o algoritmo calcule la salida
correcta para cualquier conjunto de datos. En cualquiera de los dos casos, si se encuentra alguna falla se
debe corregir y volver a realizar pruebas. En este curso utilizaremos las pruebas de escritorio, las cuales
se explicarn en la unidad 2.
El ejemplo es muy sencillo y si ejecutamos manualmente el programa o algoritmo mostrado en la fase
anterior, con un caso especfico de rectngulo veremos que ambos son correctos. En la siguiente figura
se ilustra la ejecucin del programa:
Anterior
Siguiente
htlp://207.249.20.123/8\620151/plug infile.php(J86(mod_scam'content/1/10_FPR_U1_1_410A_03_Fichero_02/pagina7.hln1
111
1ACldDdl1ltladll-
@]
~rea =
111
o
1
t>
Siguiente
111
1/200015
Documentacin
Cualquier proyecto de software por la complejidad que tiene requiere tanto las ideas principales como el
desarrollo de principio a fin sea documentado, con el fin de que cualquiera puedan entender la lgica del
programa y de ser necesario pueda modificarlos sin tantas complicaciones. Es comn que si se desea
modificar un programa y no se tiene informacin acerca de cmo fue construido sea ms fcil volverlo a
hacer que intentar entenderlo. Uno de los mejores ejemplos de la importancia de la documentacin es el
software libre, en el cual colaboran diversos desarrolladores para su elaboracin, los cuales se
encuentran en diferentes puntos geogrficos de globo terrqueo, as que la forma de entender que est
haciendo cada uno y bajo que mtodo es la documentacin. Adems de que se debe tomar en cuenta que
se llama software libre porque est disponible el cdigo fuente para que cualquier persona pueda
modificarlo a su conveniencia.
Como parte de la documentacin tambin deben incluirse manuales de usuario y las normas de
mantenimiento para que se haga un buen uso del software.
Anterior
Siguiente
htlp://207.249.20.123/8\620151/plug infile.php(J86(mod_scam'content/1/10_FPR_U1_1_410A_03_Fichero_02/pagina9.hln1
111
1/200015
Mantenimiento
Esta fase tiene sentido una vez que fue terminada una primera versin del programa y ya est siendo
utilizado. Ya que en sta se actualiza y modifica para corregir errores no detectados o para cambiar y/o
agregar una nueva funcin. Por ejemplo, se puede extender el programa 1.1, que calcula el rea de un
rectngulo para que tambin calcule su permetro.
El siguiente conjunto de instrucciones calcula el rea y permetro de un rectngulo.
Anterior
Siguiente
111
1/200015
#include<stdio. h>
#include<stdlib.h>
main()
{
int b,h, area, perimetro;
printf("lngresa la base y altura:n);
scanf("o/od o/od", &b,&h);
perimetro 2*b + 2*h;
area = b * h;
printf("Perimetro = o/od", perimetro);
printf("Area = o/od", area);
}
En el programa se resaltan las instrucciones que se aadieron
al programa para calcular el permetro.
Anterior
Versin Original
http://207.249.20.123/ll620151/plug infile.phpl386(mod_scam'content/1/10_FPR_U1_1_4/0A_03_Fichero_02/pagina11.htrn
1/1
1/200015
AutOEMlluacin
Actividad Integradora
1de3
111
1/20/2015
Autoevaluacin
Actividad Integradora
- -
\ l
Verdadero
Falso
..
'( '
'
Versin Accesible
2 de 3
1/1
1/200015
AutOEMlluacin
Actividad Integradora
Cmo te fue? Pudiste vencer a la ignorancia? Recuerda que es muy importante que las
bases del curso las tengas muy bien asimiladas y comprendidas, pues ests comenzando
tu camino en el mundo de la programacin y si tus bases no son slidas diffcilmente podrs
seguir con los temas y asignaturas posteriores.
Si derrotaste con facilidad a la ignorancia, felicidades!, parece que has comprendido bien lo
esencial de la unidad; si por el contrario, fuiste derrotada(o), no te desanimes, mejor vuelve a
repasar los contenidos en los que te viste ms dbil y recuerda que cuentas con el apoyo de
tu facilitador(a) para explicarte ms a fondo los temas que se te puedan dificultar.
3 de 3
111
AutOEMlluacin
1/200015
Autoevaluacin de la Unidad 1
1de1
111
1/200015
Cierre de la unidad
Cierre de la unidad
Aqu concluimos la primera unidad de nuestro curso en la que, de manera general, podemos decir que
aprendimos las partes que integran una computadora y la manera en que cada una de ellas interacta
para obtener como resultado la interaccin con el usuario.
Tambin aprendimos que existen varias formas de comunicamos o hacemos entender por estas
mquinas a travs de lo que denominamos Lenguajes de programacin y que existen varios
paradigmas que determinan las caractersticas de esos lenguajes.
Por ltimo, conocimos las fases que se siguen cuando se realiza un programa de computadora,
independientemente del lenguaje que se utilice.
Si todo esto que acabamos de decir te parece ya familiar, es decir, si sabes a que nos estamos
refiriendo al mencionar lo anterior, entonces ya ests lista(o) para continuar con la unidad dos.
Adelante!
1de1
111
AutOEMlluacin
1/200015
Fuentes de consulta
http://207.249.20.123/8\620151/pluginfile.php/386(mod_scam'content/1/14_FPR_U1_FC/FPR_U1_FC1.htn1
1de1
111