Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Primer Ciclo Fundamentos de Programación
~ ~
6a materia de Fundamentos de Programación, tiene una duración de 80 horas y se encuadra
en el primer Ciclo Formativo de Grado Superior del título de ¬
x
El § §
del ciclo formativo es la inserción de los alumnos en el mundo laboral por
lo que la orientación del presente módulo se basa en ese propósitox 6a rápida evolución del
sistema productivo relacionado con este ciclo formativo hace necesaria una adaptación
permanente de los contenidos del mismo que, si bien no tiene por qué afectar necesariamente
a los contenidos básicos, sí afecta notablemente a las técnicas o herramientas utilizadas, que
deben adaptarse a las nuevas realidadesx
© Elegir y definir las estructuras de datos adecuadas, para resolver un problema con
lenguajes orientados a objetosx
© Aplicar la metodología de desarrollo estructurado para el desarrollo de algoritmosx
© Codificar programas en lenguajes orientados a objetos de cuarta generaciónx
a
Primer Ciclo Fundamentos de Programación
En esta unidad se tratará sobre la organización de una computadora y sus diferentes partes
junto con los conceptos de programa y lenguajes de programación se tratará la historia de los
mismos los más relevantes y las diferencias entre ellosx
M§
§
Desde el punto de vista simple según Joyanes: ³una computadora procesa datos y los
convierte en información significativa´, Además hace ver una diferencia grande entre lo que es
datos e información ya los primeros constan de hechos en bruto y figuras, y la segunda en
cambio son ya los datos procesadosx
6a Figx 1x Muestra como los datos se convierten en información, en donde los datos ingresar a
la computadora (por una parte llamada entrada), la computadora procesa esos datos y la
información significativa es el resultado (se presentan en una parte llamada salida)x
De esta manera se observa que los datos por si solos no nos sirven de nada y no son de
utilidad para las personas que los manipulan y toman decisiones con ellosx
ñ
Õ §§
§ §
M§§
© Programax Fuerza conductora de cualquier tarea que hace una computadorax
© Computadora: Procesa datos y los convierte en informaciónx
© Información: Datos procesadosx
© Dato: Constan de hechos en bruto (puede entenderse como materia prima para obtener
información)
Cuando un usuario interactúa con una computadora, proporciona una entrada; en respuesta la
computadora procesa la entrada devolviendo una salida valiosa al usuariox 6a entrada puede
ser en formato de órdenes o instrucciones dadas, textos, números o imágenes escaneadas la
salida entonces será el resultado; cálculos en una hoja de cálculo, una hoja impresa, o un auto
moviéndose por la pantallax
º
Primer Ciclo Fundamentos de Programación
1x Aceptar la entradax
2x Visualizar la salidax
3x Almacenar la información en un formato consistente lógicamente (tradicionalmente binario)x
4x Ejecutar operaciones aritméticas o lógicas bien sobre datos de entrada o bien sobre datos
de salidax
5x Monitorizar, controlar y dirigir las operaciones globales y de secuencia del sistemax
6a Figx 2 representa los componentes más importantes que soportan estas propiedades o
capacidadesx
§
§
El procesador es el dispositivo interior de la computadora que ejecuta las instrucciones del
programax
Joyanes en su libro destaca algunos sinónimos utilizados para nombrar al procesador ³UCP
(Unidad Central de Proceso, en Inglés CPU, Centrl Processing Unit)´ o chipx En la actualidad
en el mercado existen muchos chips disponibles (Pentium, Athlob, etc)x El procesador solo
puede ejecutar instrucciones simples, tales como cálculos aritméticos sencillos o diferentes o
desplazamientos de números por diferentes posicionesx Sin embargo la velocidad a la que se
procesan estos cálculos debe ser muy grande y esta característica le permite ejecutar
instrucciones que realizan cálculos complejosx
ñ
Õ
Primer Ciclo Fundamentos de Programación
Es un chip (circuito integrado) que controla y realiza las funciones y operaciones con los datosx
Representa a la UCP o procesadorx
Queda recordar que el PC tal como se le conoce en la actualidad fue presentado por IBM el 12
de agosto de 1981 en Nueva York y otras ciudades norteamericanasx Sin embargo el PC no fue
la primera computadora personal, ya que le precedieron otras máquinas con
microprocesadores de 8 bits, muy populares en su tiempo, tales como Apple II, PET CBM,
Atari, TRS-80x, y el mítico ZX spectrucmx
§§
!
Para que usuario pueda introducir la entrada la computadora tiene varios dispositivos de
entrada como parte de su hardware: el teclado y el ratón son los más popularesx 6a salida al
usuario se le proporciona mediante dispositivos de salida, tales como impresora o pantallax
Como se muestra en la Figx 4x Tanto los dispositivos de entrada y salida son los que permiten
la comunicación entre el usuario y el computadorx
ñ
"
§
#
$
Con la finalidad de guardar datos, una computadora consta de pequeños circuitos electrónicos
capaces de almacenar un bitx Estos son como pequeños interruptores de luz que pueden estar
en dos estados: uno para encendido (on) y otro para apagado (off)x
Entonces cabe resaltar que un bit es ³un dígito que puede tener exactamente dos valores: cero
o uno´x
6as memorias actuales se clasifican en DRAM,SDRAM,EDRAM, etcx
6os programas y datos pueden almacenarse en RAM mientras se está utilizando la
computadora, esta puede ser estática o dinámica esto depende del proceso de fabricaciónx
6a memoria central de una computadora es una zona de almacenamiento organizada en
centenares o millares de unidades de almacenamiento individual o celdasx 6a memoria central
Ô
Primer Ciclo Fundamentos de Programación
% §§
Según Jayanes define dos conceptos importantes para celda o posición de memoria: su
dirección y su contenidox Cada celda o byte tiene asociada una dirección que indica su posición
relativa en memoria y mediante la cual se puede acceder a la posición para almacenar o
recuperar informaciónx
&!! §
Un grupo de bytes consecutivos se utiliza como posición de un elemento de datos, tal como un
número o letrax 6a dirección del primer byte del grupo se utiliza como la dirección de eta
posición de memoria más altax
ñ
%%%
%%&
%%' 1100 1010 Contenido de la dirección
x
x
x
º
a
(
)
Õ
§§
§§
6as unidades, periféricos o dispositivos de almacenamiento son dispositivos periféricos que
actúan como medio para almacenar los datos, temporal o permanentemente, que ha d
manipular la CPU durante el proceso en curso y que no puede contener la memoria principalx
6as tecnologías han evolucionado muy rápidamente y se han conseguido dispositivos de
almacenamiento que se clasifican en dos grandes grupos: discos y cintas magnéticasx
§
Son dispositivos formados por componentes electromagnéticos o por componentes ópticos que
permiten un acceso rápido a bloques físicos de datosx 6a información se registra en la
superficie del disco y se accede a ella a por medio de cabezas de lectura/escritura que se
mueven sobre la superficiex
Î
Pi i l t P i
S tí ti i i l l i
l i f i
l t i
i
l i t i i ix L
i ti l ifi
i t
i
,
l ti O
Vx
1
! # * ! , ! ! * ! l -".j /.t" ,& (%")%$*$! i .,i !(&.!$0l&! ($%$ 1/& l$
El2 "ft $%& '(%")%$ $ + , &l i t& $ & &
* 1/i .$ f/.-i".&; !& &."*i.$. t$*0i 3. (%")%$*$! ,&l !i!t&*$x E!t"! (%")%$*$! !".
02! - * . !! * 4 , ! ,& t&5t", l"! -"*(il$,"%&!/i .t&%(%&t&! 'l &.)/$j &!
, i $ &*t&-&l . i t& !$ "(&%$*ti ", ,l " & it"%&
, ,
& (%")%$ $ i 6 + 7 l " (%")%$ $! & /tili $ x
! # , !! * - * ., . ! !! * 4 ., #! 89
El "ft $%& &l i t& , $ " (%& &, & t%& "t%" , &l i t& $ "(&%$ti " 'Wi " /XP/VIS:A "
. 5 !- * ! .
Li / + 7 l " " (/t$ "%& & i t3%(%& t& ! ,& l&.)/$j&! ,& (%")%$*$-i 6.x
!! * 4 - .! , 4 ! -"*(".&.t&! i *("%t$.t&!x K&%.&l ,&l !i!t&*$,
El i t& $ "(&%$ti " " t$ & $%i "
-"*(".&.t& -&.t%$l ,&l !i !t&*$, !i !t&*$ ,& $,*i .i!t%$-i6. ,& *&*"%i $, $!i ).$ /. 2%&$ ,&
*&*"%i$ ($%$ -$,$ (%")%$*$ 1/& !& &!t2 &j &-/t$.,"; $,*i .i !t%$,"% ,&l !i !t&*$ ,& $%-;i 4" !,
1/& .i <$ 7 -".t%"l$ &l /!" ,& ,i!-"!, -".t%"l$,"%&! ,& ,i !("!iti 4"!, 1/& -".t%"l $. l" !
, ! "%)$
! 4 !, ,# - . - , ! 00 - ! , !! * - . . . , ! !
i (",iti " & ;$% , $%& ," ,& t$ " $l P,=, 7 i li "t& $ &l i t& ,$, 1/& " ti & & t" " l "
! * ! ! . * *
ti(" & (%")%$ $ & /tili $ 1/& & (/& & ll $ $% ("% (%")%$ $ & / /$%i "x
! !
, , , ,
>. ,(%")%$*$ &! /. -,".j/.t" & ,i .!t%/--i ".&! 1/& -".,t%"l $. ' i%i )&.+ $ /.$ P=; i -;", & "t%"
*" " /. (%")%$*$ & -"*(/t$ "%$ &! /. -".j /.t" & i .!t%/--i".&! i.t&%.$! /tili <$ $! ($%$
, , ,
&j &-/t$%!& &. /.$ -"*(/t$ "%$ 7 1/& (%" /<-$ /. %& !/lt$ " -".-%&t"x
Õ K L
L
M
M
N ON L
1 ? @ ABC, D EB F GA
! .
L" l & )/$
! * - .! 4 . !- 0
j & & (%")%$ $ i 6 i % & ($%$ & %i i % (%")%$
* ! * . - * .- - .
! * 2 . . ! * ! ! - ! * , !$ 1/&, -(&% !it$ -l$* " /, i $! i 6
/ /$%i"/ 1/i $x > " (%")%$ $ & (& i $l & ll$ $ " t%$ / t"%& ' " (il $ "%& "
. ! - .4
i t3%(%&t& + " i &%t&
. l$! i .!t%/--i ".&! &!-%it$! &. l&.)/$j&! ,& (%")%$*$-i6. &.
.! -- . ! !- ! . . 2
! * 1/i.$ 'H 7 I, 0it!+ 1/& 3!t$ (/&,$ &.t&.,&%x
i t%/ i " & & %it$ & l & )/$j &
! * !
L" (%")%$, $ 1/& %&$li <$ t$%&$
. ! -".-%&t$!, .6* i .$!, -".t$0ili,$,, &t-x, !& ,&."*i.$.
* ! -
(%")%$ $ & $(li $ i 6 x- .
J
Õ
PQ
P P
Q RQ
P
Q Q
Q RQ
P
'
Primer Ciclo Fundamentos de Programación
'
§
§
§
6as instrucciones básicas y comunes a casi todos los lenguajes de programación se pueden
condensar en cuatro grupos:
(
§
6os traductores de lenguaje son programas que traducen a su vez los programas fuente
escritos en lenguajes de alto nivel a código máquinax 6os traductores se dividen en:
© Compiladoresx
© Intérpretesx
(
)
Un intérprete es un traductor que toma un programa fuente, lo traduce y a continuación
lo ejecutax
6os intérpretes han vuelto a renacer con la aparición de Java, ya que para entender el
código en bytes (bytecode) al que traduce un compilador Java se necesita un intérpretex
+
* *
Intérpretex 6a compilación de programasx
&
Primer Ciclo Fundamentos de Programación
(M§
§
Cuando se ejecuta un programa en lenguaje de alto nivel, tal como C, C++, Java, se está
ejecutando realmente una traducción de ese programa en un lenguaje de bajo nivelx Por
consiguiente, antes de que se ejecute un programa escrito en un lenguaje de alto nivel, se
debe ejecutar en primer lugar el compilador en el programax Cuando se ejecuta un compilador
sobre su programa se dice que se compila el programax
§
Un compilador es un programa que traduce un programa en lenguaje tal como C, C++, Java,
en un programa de un lenguaje más sencillo que la computadora puede comprender más o
menos directamentex
§
!
1x Escritura del programa fuente con un editor (programa que permite a una
computadora actuar de modo similar a una máquina de escribir a una electrónica) y
guardarlo en un dispositivo de almacenamiento (por ejemplo un disco)x
2x Introducir el programa fuente en memoriax
3x Compilar el programa con el compilador Cx
4x S
Verificar y corregir errores de compilación (listado de errores)x
5x btención del programa objetox
6x Enlazador (linker) obtiene el programa ejecutablex
7x Se ejecuta el programa y, si no existe errores, se tendrá la salida del programax
* §
§
§
%
Primer Ciclo Fundamentos de Programación
Muchos de los lenguajes de programación actuales tienen sus raíces en los lenguajes que
nacieron a fines de los cincuenta y primeros años de los sesenta, tales como CTBT6 (1960),
FTRTRAN IV (1961), BASIC (1964), 6 G (1967)x Estos lenguajes representan a la primera
alternativa a los lenguajes ensambladoresx En la década de los setenta y primeros años de los
ochenta emergieron nuevos lenguajes, como Pascal (1971), C (1972) y Ada (1979), que se
convirtieron en dominantes, desplazando, por ejemplo a otros como A6G 6 y BASICx
M
M M
M
+
§ §
Constituyen el ciclo de vida del software y las fases o etapas usuales son:
()
Primer Ciclo Fundamentos de Programación
M
.
§ §
© Precisox
© Definidox
© Finitox
, §
Esta es la primea de las fases para dar solución a un problema con computadorax Esta fase
requiere de una clara definición, donde se contemple exactamente lo que debe hacer el
programa y el resultado o solución deseadax
"
+
Para poder definir bien el problema es conveniente responder a las siguientes preguntasx
© ¿Qué entradas se requieren? (tipo y cantidad)
© ¿cuál es la salida deseada? (tipo y cantidad)
© ¿Qué método produce la salida deseada?
© §
Se desea obtener una tabla con las depreciaciones acumuladas y dos valores reales de cada
año de un automóvil comprado en $20x000 dólares en el año 2001, en los años siguientes
suponiendo un valor de recuperación o rescate de 1x000x Realizar el análisis del problema,
conociendo la fórmula de la depreciación anual constante D para cada año de vida útilx
±
±
((
Primer Ciclo Fundamentos de Programación
-§
§ §
En la etapa de diseño se determina como hace el programa la terea solicitada los métodos más
eficaces para el proceso de diseño se basan en el conocido por divide y vencerásx Es decir la
solución de un problema complejo se realiza dividiendo el problema en subproblemas y a
continuación dividir estos subproblemas en otro nivel más bajo hasta que pueda ser
implementada una solución en la computadorax
Cualquier programa bien diseñado consta de un programa principal (el método de nivel más
alto) que llama a subprogramas (módulos de nivel más bajo) que a su vez pueden llamar a
otros subprogramasx 6os programas estructurados de esta forma se dice que tienen un diseño
modular y el método de romper el programa en módulos más pequeños se llama programación
modularx 6os módulos pueden ser planteados, codificados, comprobados y depurados
independientemente (incluso por diferentes programadores) y a continuación combinarlos entre
síx El proceso implica su ejecución hasta que el programa termina:
1x Programar un módulox
2x Comprobar el módulox
3x Si es necesario, depurar el módulox
4x Combinar el módulo con los módulos anterioresx
§
6as dos herramientas más utilizadas comúnmente para diseñar algoritmos son: diagramas de
flujo y pseudocódigox
§Un diagrama de flujo es una representación gráfica de un algoritmox 6os
símbolos utilizados han sido normalizados por el Instituto Norteamericano de Normalización
(ANSI)x
/0
ñ
1
(a
Primer Ciclo Fundamentos de Programación
" M§
§
Para realizar la conversión del algoritmo en programa se deben sustituir las palabras
reservadas en español por sus homónimos en inglés, y las operaciones/instrucciones indicadas
en lenguaje natural expresadas en lenguaje de programación correspondientex
% M§
! §
El programa fuente debe ser el lenguaje máquina, este proceso se realiza con el compilador y
el sistema operativo que se encarga prácticamente de la compilaciónx
' /
!
§
6a depuración es el proceso de encontrar los errores del programa y corregir o eliminar dichos
erroresx
(º
Primer Ciclo Fundamentos de Programación
( §
!
§
§
§
6a programación modular es uno de los métodos más flexible y potentes para mejorar la
productividad de un programax Aquí el programa se divide en módulos (partes independientes),
cada una de las cuales ejecuta una actividad o tarea y se codifican independientemente de
otros módulosx
6os módulos son independientes en el sentido en que ningún módulo puede tener acceso
directo a cualquier otro módulo excepto el módulo que llama a sus propios submódulosx Sin
embargo, los resultados producidos por un módulo pueden ser utilizados por cualquier otro
módulo cuando se transfiera a ellos el controlx
" *2
a( aa
aa( aaa
Dado que los módulos son independientes, diferentes programadores pueden trabajar
simultáneamente en diferentes partes del mismo programax Esto reducirá el tiempo del diseño
del algoritmo y a otros módulos, incluso se puede modificar radicalmente sin afectar a otros
módulos, incluso sin alterar su función principalx
§
6os términos À
À
À
se introdujeron en la segunda mitad de la década de los sesenta y a menudo sus términos se
utilizan como sinónimos aunque no significan lo mismox 6a programación modular y
ascendente ya se ha examinado anteriormentex 6a programación estructurada significa escribir
un programa de acuerdo a las siguientes reglas:
(
Primer Ciclo Fundamentos de Programación
© Recursos abstractosx
© Diseño descendente (top ± down)x
© Estructuras básicasx
§
§Descomponer un programa en términos de recursos abstractos ±según
Dijstra- consiste en descomponer una determinada acción compleja en términos de un
número de acciones más simples capaces de ejecutarlas o que constituyen instrucciones de
computadoras disponiblesx
§ § 6as estructuras de control de un lenguaje de programación son
métodos de especificar el orden en que las instrucciones de un algoritmo se ejecutaránx El
orden de ejecución de las sentencias (lenguaje) o instrucciones
" M§§!
.
§ §
"M
.
§
§ §
(Ô
Primer Ciclo Fundamentos de Programación
© Un algoritmo debe estar definidox Si se sigue un algoritmo dos veces, se debe obtener
el mismo resultado cada vezx
© Un algoritmo debe ser finitox Si se sigue un algoritmo, se debe determinar en algún
momento: o sea, debe tener un número finito de pasosx
6a definición de un algoritmo debe describir tres partes: Entrada, Proceso y Salidax Ejx
Algoritmo de recta de cocinax Se tendrá:
Ejemplo 1:
Un cliente ejecuta un pedido a una fábricax 6a fábrica examina en su banco de datos la ficha
del cliente, si el cliente es solvente entonces la empresa acepta el pedido: en caso contrario,
rechazará el pedidox Redactar el algoritmo correspondientex
Ejemplos 2:
Se desea realizar un algoritmo que permita determinar la suma de tres números y presente su
resultadox
Ejemplo 3x
Dada la calificación de un alumno en un examen, desarrollar un algoritmo y diagrama de flujo,
que imprima el mensaje de aprobado en caso de que la calificación sea mayor o igual a 8x
Ejemplo 4x
Un número es primo si sólo puede dividirse por sí mismo y por la unidad (es decir, no tiene más
divisores que él mismo y la unidad)x Por ejemplo, 9, 8, 6, 4, 12, 16, 20, etcx, no son primos, ya
que son divisibles por números distintos a ellos mismos y a la unidadx Así, 9 es divisible por 3,
8, lo es 2, etcx Etcx, El algoritmo de resolución del problema pasa por dividir sucesivamente el
número por 2, 3, 4« etcx
1x Iniciox
2x Poner X igual a 2 (X = 2, X variable que representa a los divisores del número que se
busca N)
(Î
Primer Ciclo Fundamentos de Programación
3x Dividir N/X
4x Si el resultado de N/X es entero, entonces N no es un número primo y bifurcar al punto
7x En caso contrario continuar en el procesox
5x Suma X ¨ X+1x
6x Si X = N, entonces N es un número primo; en caso contrario bifurcar al punto 3x
7x Finx
© Deben estar seguidas de alguna secuencia definida de pasos hasta que se obtenga un
resultado coherente,
© Solo puede ejecutarse una operación a la vezx
%
,
§
§ §
Para representar un algoritmo se debe utilizar algún método que permita independizar dicho
algoritmo del lenguaje de programación elegidox
1x Diagrama de flujox
2x Diagrama N-S (Nassi-Schneiderman)
3x 6enguaje de especificación de algoritmos: pseudocódigox
4x 6enguaje español, inglésx
5x Fórmulasx
%
§
Ejemplo:
3+3
"4 5+5
"
0
('
Primer Ciclo Fundamentos de Programación
1x Ir al cinex
+
ñ#ñ
ñ6$ *
ñ#ñ1"ñ6+ *
3
37
ñ#8
"6 3-
+
ñ#ñ
ñ6$ *
ñ#ñ1"ñ6+ *
3
37
ñ#8
"6 3-
M§§ §
Un programa de computadora es un conjunto de instrucciones ±órdenes dadas a la máquina-
que producirán la ejecución de una determinada tareax En esencia, un programa es un medio
para conseguir un finx El fin será probablemente definido como la información necesaria para
solucionar un problemax
El proceso de programación es por consiguiente, un proceso de solución de problemas y el
desarrollo de un programa requiere las siguientes fases:
Definición y análisis del problemax
Diseño del algoritmosx
© Diagrama de flujox
© Diagrama N-Sx
© Pseudocódigox
Codificación del programax
(&
Primer Ciclo Fundamentos de Programación
Codificación del T M
A I
programa
C E
I N
Depuración y
Ó T
verificaciónx N
§
§
§!§ §
Un programa puede ser lineal o no linealx Un programa es lineal si las instrucciones se ejecutan
secuencialmente, sin bifurcaciones, decisión ni comparacionesx
Instrucción 1
Instrucción 2
x
x
x
Instrucción n
§ §
1x Instrucciones de inicio/finx
2x Instrucciones de asignaciónx
3x Instrucciones de lecturax
4x Instrucciones de escriturax
5x Instrucciones de bifurcaciónx
(%
Primer Ciclo Fundamentos de Programación
6os lenguajes de programación tienen elementos básicos que se utilizan como bloques
constructivos, así como reglas para las que esos elementos se combinanx Estas reglas se
denominan sintaxis del lenguajex Solamente las instrucciones sintácticamente correctas
pueden ser interpretadas por la computadora y los programas que contengan errores de
sintaxis son rechazadas por la máquinax 6os elementos básicos constitutivos de un programa o
algoritmo son:
© Palabras reservadasx
© Identificadores
© Caracteres especiales (como, apostrofe)
© Constantesx
© Variablesx
© Expresionesx
© Instruccionesx
Además de estos elementos básicos, existen otros elementos que forman parte de los
programas cuya comprensión y funcionamiento será vital para el correcto diseño de un
algoritmo y naturalmente la codificación del programax Estos elementos son:
© Buclesx
© Contadoresx
© Acumuladoresx
© Interruptoresx
© Estructurasx
1x Secuencialesx
2x Selectivasx
3x Repetitivasx
%
§1§
§!§
§
%
§) §
El tipo numérico es el conjunto de los valores numéricosx Estos pueden representarse en dos
formas distintas:
%
§§# §§
§$
a)
Primer Ciclo Fundamentos de Programación
El tipo lógico ±también denominado booleano- es aquel dato que sólo puede tomar uno de
dos valores:
Cierto o verdadero (true) y falso (false)x Utilizado para representar las alternativas (si/no) a
determinar condicionesx
%
§§
, !§
Una cadena string de caracteres es una sucesión de caracteres que se encuentran delimitados
por una comilla (apóstrofe) o dobles comillas, según el tipo de lenguaje de programaciónx
' M§
!
6os programas de computadora contienen ciertos valores que no deben cambiar durante la
ejecución del programax Tales valores se llaman constantesx De igual forma existen otros
valores que cambiaran durante la ejecución del programa; a estos valores se les llama
variables
a + (b + 3) + í
Aquí los paréntesis indican el orden de cálculo y í representa la función raíz cuadradax Una
expresión consta de operandos y operadoresx Según sea el tipo de objetos que manipulan, las
expresiones se clasifican en:
© Aritméticasx
© Relacionalesx
© 6ógicasx
© Carácterx
(2 §
)
6as expresiones aritméticas son análogas a las fórmulas matemáticasx 6as variables y
constantes son numéricas (real o entera) y las operaciones son aritméticasx
+ suma
- resta
* multiplicación
/ división
Ĺ, **, ^ exponenciación
a(
Primer Ciclo Fundamentos de Programación
6os símbolos + ,-, *, /, ^ (Ĺ o **) y las palabras clave div y mod se conocen como operadores
aritméticosx En la expresiónx
5+3
6os valores 5 y 3 se denominan operandosx El valor de la expresión 5 + 3 se conocen como
resultado de la expresiónx
* +§
6as operaciones que se requieren en los programas exigen en numerosas ocasiones, además
de las operaciones de las aritméticas básicas, ya tratadas, un número determinado de
operadores especiales que se denominan funciones internas, incorporadas o estándarx
3
M
M
1+ , +¨ 9
9 ¨ 9 3, +
aa
Primer Ciclo Fundamentos de Programación
Ejemplo:
Asignación aritméticax
A ĸ 5 significa que la variable A se le ha asignado el valor 5x
Asignación lógicax
N ĸ 8 5x
Asignación de cadenas de caracteresx
X ĸ ´12 de octubre de 1942´
4
!
§
6os cálculos que realizan las computadoras requieren para ser útiles la entrada de los datos
necesarios para ejecutar las operaciones que posteriormente se convertirán en resultados, es
decir, salidax
6a escritura de un algoritmo mediante una herramienta de programación debe ser lo más clara
posible y estructurada, de modo que su lectura factible considerablemente el entendimiento del
algoritmo y su posterior codificación en un lenguaje de programaciónx
§
Se tiene tres variables: A, B, Cx escribir las instrucciones necesarias para intercambiar entre sí
sus valores del modo siguiente:
© B toma el valor de Ax
© C toma el valor de B
© A toma el valor de C
Soluciónx
Utilizaremos una variable auxiliar auxx
6as instrucciones que resuelven el problema de intercambio son:
aux ¨ A
A¨
¨
¨ aux
aº
Primer Ciclo Fundamentos de Programación
a6
; <
Inicio
Fin
º6
ñ ; + *
6
4º( (Î
¨a
El perímetro es:
p
0
Ejemplo 4:
?)
El número
es positivo
0
a
Primer Ciclo Fundamentos de Programación
3+
?+
El número El número
mayor es: a mayor es: b
0
Estructuras Repetitivas:
4)@AaÔ@55
6os números
naturales son: i
0
aÔ
Primer Ciclo Fundamentos de Programación
Estructura while:
¨a
Aa)
0
6os números son
p
¨
M
/
6as presentes actividades sirven para reforzar y aplicar los conocimientos teóricos recibidos en
la presente unidad por lo que se debe realizar su respectivo análisis, desarrollo y soluciónx
aÎ
Primer Ciclo Fundamentos de Programación
12x Elabore un diagrama de flujo que dado un entero n > 1, calcule e imprima los
elementos correspondientes a la conjetura de Ullman (en honor al matemático Sx
Ullman) que consiste en lo siguiente:
16x Desarrollar un algoritmo y diagrama de flujo tal que dado como datos la categoría y el
sueldo de un trabajador, calcule el aumento correspondiente teniendo en cuenta la
siguiente tablax Se imprimirá la categoría del trabajador y su nuevo sueldox
Categoría Aumento
1 15%
2 10%
3 8%
4 7%
a'
Primer Ciclo Fundamentos de Programación
"
M
Muchos avances han ocurrido en los fundamentos teóricos de programación de los lenguajes
de alto nivel a finales de década de los cincuentax
Uno de los avances más importantes fue el reconocimiento a finales de los sesenta de que
cualquier algoritmo, no importa su complejidad, podía ser construido utilizando combinaciones
de tres estructuras de control de flujo estandarizadas (secuencial, selectiva, repetitiva o
iterativa) y una cuarta denominada, invocación o salto (³jump´)x
6as sentencias de selección son: si (if) y según ± sea (switch): las de repetición o iterativas son:
desde, para (for), mientras (while), hacer ± mientras (do-while) o repetir hasta que (repeat-until);
las sentencias de salto o bifurcación incluyen romper (break), continuar (continue), ir-a (goto),
volver (return) y lanzar (throw)x
El término flujo de control se refiere al orden en que se ejecutan las sentencias del programax
tros términos utilizados son secuenciación, y control de flujox El flujo normal de todos los
programas es secuencialx Esto quiere decir que las instrucciones se ejecutan en secuencia,
una después de otra, en el orden en que sitúan dentro del programax 6as estructuras de
selección, repetición e invocación permiten que el flujo secuencial del programa sea modificado
en un momento preciso y definido con anterioridadx Como se puede deducir fácilmente, las
estructuras de selección se utilizan para seleccionar cuáles sentencias se han de ejecutar a
continuación y las estructuras de repetición se utilizan para repetir un conjunto de sentenciasx
Una bifurcación (³brach´, en Inglés) es un segmento de programa construida con una sentencia
o un grupo de sentenciasx Una sentencia de bifurcación se utiliza para ejecutar una sentencia
a&
Primer Ciclo Fundamentos de Programación
Una estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en
secuenciax 6as tareas se suceden de tal modo que la salida de una es la entrada de la
siguiente y así sucesivamente hasta el final del procesox 6a estructura secuencial tiene una
entrada y una salidax Su representación gráfica es la siguiente:
(
a
acción 1
acción 2
x
x
x
x
x
x
x
acción n
Figx Diagrama N-S de una estructura secuencialx
inicio
<acción 1>
<acción 2>
finx
Ejemplo:
a%
Primer Ciclo Fundamentos de Programación
6a especificación formal de algoritmos tiene realmente utilidad cuando el algoritmo requiere una
descripción más complicada que una lista de sencilla de instruccionesx Este es el caso cuando
existe un número de posibles alternativas resultantes de la evaluación de una determinada
condiciónx 6as estructuras selectivas se utilizan para tomar decisiones lógicas; de ahí que se
suelan denominar también estructuras de decisión o alternativasx
En las estructuras selectivas se evalúan una condición y en función del resultado de la misma
se realiza una opción u otrax 6as condiciones se especifican usando expresiones lógicasx 6a
representación de una estructura selectiva se hace con palabras en pseudocódigo (if, then, else
o bien en español si, entonces, si_no), con una figura geométrica en forma de rombo o bien con
un triangulo en el interior de una caja rectangularx 6as estructuras selectivas o alternativas
pueden ser:
© Simples
© Dobles
© Múltiples
6a estructura simple es si (if) con dos formatos: Formato Pascal, si-entonces (if-then) y en
formato C, si(if)x 6a estructura selectiva doble es igual que la estructura simple si al cual se le
añade la cláusula si-no (else)x 6a estructura selectiva múltiples según-sea(switch en lenguaje
C, case en pascal)x
"
#0§5
$
6a estructura alternativa simple si-entonces (en ingles if-then) ejecuta una determinada acción
cuando se cumple una determinada condiciónx 6a selección si-entonces evalúa la condición y
º)
Primer Ciclo Fundamentos de Programación
§
Construir un algoritmo tal, que dado como dato la calificación de un alumno en un examen,
escriba "Aprobado" en caso que esa calificación fuese mayor que 8x
Variables:
Cal = calificación
Algoritmo:
Inicio
6eer (cal)
Si cal > 8 entonces
Escribir ("aprobado")
Fin_si
Fin
º(
Primer Ciclo Fundamentos de Programación
"
§ #0§0§50
0$
6a estructura anterior es muy limitada y normalmente se ncesitará uns estructura que permita
elegir os opciones o alternativas porsibles, en función del cumplimiento o no de una
determinada condiciónx Si la condición c es verdadera, se ejecuta la acción S1 y, si es falsa, se
ejcuta la acción S2x
Representación pseudocodificadax
-§
)
Si <condición> entonces If <condición> then
<acción S1> <acción S1>
sino else
<acción S2> <acción S2>
Fin_Si End_if
ºa
Primer Ciclo Fundamentos de Programación
Ejemplo 1
Algoritmo:
Inicio
6eer (cal)
Si cal > 8 entonces
Escribir ("aprobado")
Sino
Escribir ("reprobado")
Fin_si
Fin
Ejemplo 2x
Dado como dato el sueldo de un trabajador, aplicar un aumento del 15% si su sueldo es inferior
a $1000 y 12% en caso contrario, luego imprimir el nuevo sueldo del trabajadorx
ºº
Primer Ciclo Fundamentos de Programación
""
6#67
1
§5
$
Con frecuencia ±en la práctica- es necesario que existan más de dos elecciones posibles (por
ejemplo, en la resolución de la ecuación de segundo grado existen tres posibles alternativas o
caminos a seguir, según que el discriminante sea negativo, nulo o positivo)x Este problema, se
podría resolver con estructuras alternativas simples o dobles, anidadas o en cascada, sin
embargo, este método si es el número de alternativas es grande puede plantear serios
problemas de escritura del algoritmo y naturalmente de legibilidadx
6a estructura de decisión múltiple evaluará una expresión que podría tomar n valores distintos,
1, 2, 3, 4,«xnx según que elija uno de estos valores en la condición, se realizará una de las n
acciones, a lo que es igual, el flujo del algoritmo seguirá un determinado camino entre los n
posiblesx
º
Primer Ciclo Fundamentos de Programación
ºÔ
Primer Ciclo Fundamentos de Programación
Ejemplo:
Se desea diseñar un algoritmo que escriba los nombres de los días de la semana en función
del valor de un variable DÍA introducida por tecladox
6os días de la semana son 7, por consiguiente; el rango de valores de DÍA será 1«7, y caso de
que DÍA tome un valor fuera de este rango se deberá producir un mensaje de error advirtiendo
la situación anómalax
ºÎ
Primer Ciclo Fundamentos de Programación
Preguntar qué día de la semana fue el día 1 del mes actual y calcular que día de la semana es
hoyx
º'
Primer Ciclo Fundamentos de Programación
Una de las situaciones más comunes que nos encontramos en el ámbito de la programación,
consiste en la necesidad de repetir dentro de un método un conjunto de instrucciones o repetir
varias veces la activación de un métodox Todo esto se puede realizar utilizando instrucciones
repetitivas llamadas ciclosx
+
§
M.§:
Entrada de datos e instrucciones previasx
6azo o buclex
Instrucciones finales o resto del procesox
" 4x Salida de resultado
"%
#
$
6a estructura respetiva mientras, es aquella en que el cuerpo del bucle se repite mientras se
cumple una determinada condiciónx Cuando se ejecuta la instrucción mientras, la primera cosa
que sucede es que se evalúa la condición (una expresión booleana)x Si se evalúa falsa, no se
toma ninguna acción y el programa en la siguiente instrucción del buclex Si la expresión
booleana es verdadera, entonces se ejecuta el cuerpo del bucle, después de los cual se evalúa
de nuevo la expresión booleanax Este proceso se repite una y otra vez mientras la expresión
booleana (condición) sea verdaderax Ejemplox
º&
Primer Ciclo Fundamentos de Programación
En el flujograma anterior, observa que la flecha que se regresa hacia arriba nos está indicando
que hay que volver a evaluar la expresiónx En ese caso como el bucle es infinito, no se tiene
una condición para terminar y se estará haciendo siemprex En el siguiente ejemplo, ya se
agregó una condición, la cual nos permitirá finalizar la ejecución del bucle en el caso en que la
condición se cumplax
&§
º%
Primer Ciclo Fundamentos de Programación
En los ciclos anidados, al entrar a una estructura de repetición, dentro de ella se encuentra
otrax 6a más interna se termina de realizar y se continúa con la externa hasta que la condición
se cumplex
En los bucles cruzados, los cuales no son convenientes de utilizar, se tiene que iniciamos un
bucle y no se ha terminado cuando empezamos otro, luego utilizamos estructuras goto (saltos)
para pasar al bucle externo y se quedan entrelazadosx
Esto puede ocasionar que el programa pierda el control de cuál proceso se está ejecutando y
podamos obtener resultados erróneosx Veamos gráficamente el diseño de estas tres formas
cíclicas:
"'
#§0
$
El bucle hacer mientras es análogo al bucle mientras y el cuerpo del bucle se ejecuta una y
otra vez mientras la condición (expresión booleana) es verdaderax Existe, sin embargo, una
gran diferencia y es que el cuerpo del bucle está encerrado entre las palabras reservadas
hacer y mientras, de modo que las sentencias de dicho cuerpo se ejecutan, al menos una
vez, antes de que se evalúe la expresión booleanax En otras palabras, el cuerpo del bucle
siempre se ejecuta, al menos una vez, incluso aunque la expresión booleana sea falsax
Ã
)
Primer Ciclo Fundamentos de Programación
§
2x ¿Qué se mostraría en pantalla si en el ejercicio anterior el signo > fuera reemplazado por
<?
(
Primer Ciclo Fundamentos de Programación
5x Realizar un diagrama de flujo que permita obtener el factorial de un número ingresado por
tecladox
6x Algoritmo que permita obtener la potencia de un número ingresado por teclado, la base y
el exponente serán dados por el usuariox
7x Elabore un diagrama de flujo que dado un entero n > 1, calcule e imprima los elementos
correspondientes a la conjetura de Ullman (en honor al matemático Sx Ullman) que consiste
en lo siguiente:
8x Elabore un diagrama de flujo, que imprima los primeros pares menores o iguales a nx
10x 6os cubos de Nicómacox Considera la siguiente propiedad descubierta por Nicómaco de
Gerasa: Sumando el primer impar, se obtiene el primer cubox Sumando los dos siguientes
se obtiene el segundo cubox Sumando los tres siguientes, se obtiene el tercer cubo, etcx
Es decir: 1 = 13,
3 + 5 = 23 = 8,
7 + 9 + 11 = 33 = 27,
13 + 15 + 17 + 19 = 43 = 64x
Elabore un diagrama que dado un número n entero positivo, imprima los n primeros cubos
utilizando esta propiedadx
11x Dados los datos: a, b, c, d; Elabore un diagrama de flujo para cada uno de los siguientes
problemas:
a
Primer Ciclo Fundamentos de Programación
a) Hallar el mayorx
b) Hallar el menorx
c) Hallar el mayor y el menorx
12x Construya un diagrama de flujo que calcule e imprima los 150 primeros números de la serie
de Fibonaccix Recuerde que los dos primeros números de la serie son 0 y 1x El resto se
calcula como la suma de los dos números que lo precedenx
Ejemplo: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, x x x
13x En una guardería hay 25 niños de 1, 2 y 3 añosx 6os niños de 1 año consumen 6 pañales al
día, los niños de 2 años consumen 3 pañales diarios y los niños de 3 años consumen 2
pañales diariosx Se desea conocer el consumo total de pañales diariosx
Datos: edad1
edad2
xxxxx
edad25
donde edadi representa la edad del i±enésimo niño en años cumplidos (1, 2 ó 3)x
% M
&
% 89)
§
§:
Un programa puede parecer orientado a objetos 1) utiliza objetos, no algoritmos, como bloques
de construcción lógicos (jerarquía de objetos); 2) cada objeto es una instancia de una clase, 3)
las clases se relacionan unas con otras por medio de relaciones de herenciax
%§ §
Conjunto complejo de datos y de funciones que pueden acceder a esos datos, dado de una
determinada estructura y que forma parte de una organización donde se relacionan con otros
objetosx
Un objeto es una entidad que contiene los atributos que describen el estado de un objeto del
mundo real y las acciones que se asocian con el objeto del mundo realx Se designa por un
nombre o identificador del objetox Dentro del contexto de un lenguaje orientado a objetos
(6 ), un objeto encapsula datos y las funciones (métodos) que manejan esos datosx 6a
notación gráfica de un objeto varía de unas metodologías a otrasx
#+ 4 + 5
+
º
Primer Ciclo Fundamentos de Programación
§§ §
¿Qué clases de cosas pueden ser objetos en un programa orientado a objetos? 6a respuesta
está sólo limitada a su imaginaciónx Algunos ejemplos típicos pueden ser:
© Ú
"#
Aviones en un sistema de control de tráfico aéreox
Automóviles en un sistema de control de tráfico terrestrex
Casasx
© ë
À
#
Ventanas, Menús, bjetos gráficos (cuadrados, triángulos, etcx), teclados, impresoras,
unidades de disco, cuadrados de diálogo, ratones, teléfonos celularesx
§ §
î "+
+
M
§ §
% §
6os atributos describen el estado del objetox Un atributo consta de dos partes: un nombre de
atributo y un valor de atributox
% )§§
% M
Una clase es la descripción de un conjunto de objetos; consta de métodos y datos que resumen
características comunes de un conjunto de objetosx Se pueden definir muchos objetos de la
misma clase dicho de otro modo, una clase es la declaración de un tipo de objetox
6as clases son similares a los tipos de datos y equivalen a modelos o planillas que describen
como se construyen ciertos tipos de objetosx Cada vez que se construye un objeto a partir de
un clase, estamos creando lo que se llama una instancia de esa clasex Por siguiente, los
objetos no son más que instancias de una clasex Una instancia es una variable de tipo objeto
en general, instancia de una clase y objeto son términos intercambiables
§
Primer Ciclo Fundamentos de Programación
class
//declaración de atributosx
// declaración de constructores y métodosx
Fin clase
es un identificador válidox
%
6a herencia permite que se pueden definir nuevas clases basadas en clases existentes, lo cual
facilita re-utilizar código previamente desarrolladox Si una clase deriva de otra ( )
hereda todas sus variables y métodosx 6a clase derivada puede nuevas variables y
métodos y/o las variables y métodos heredadosx
En
, a diferencia de otros lenguajes orientados a objetos, una clase sólo puede derivar de
una única clase, con lo cual no es posible realizar en base a clasesx Sin
embargo es posible ³simular´ la herencia múltiple en base a las x
6a encapsulación es una característica muy potente, y junto con la ocultación de la información,
representan el concepto avanzado de objeto que adquiere su mayor revelación cuando
encapsula e integra datos, más las operaciones que manipulan los datos en dicha entidadx Sin
embargo, la orientación a objetos se caracteriza además de por las propiedades anteriores, por
incorporar la característica de herencia, propiedad que permita a los objetos ser construidos a
partir de otros objetosx Dicho de otro de modo, la capacidad de un objeto para utilizar las
estructuras de datos y métodos previstos en antepasados o ascendientesx El objetivo final es la
reutilizabilidad o reutilización (reusability), es decir, reutilizar código anteriormente ya
desarrolladox
6a herencia se apoya en el significado de ese concepto en la vida diariax Así, las clases
básicas o fundamentales se dividen en subclasesx 6os animales se dividen en mamíferos,
anfibios, insectos, pájaros, peces, etcx 6a clase vehículo se divide en subclase automóvil,
motocicleta, camión, autobús, etcx El principio en que se basa la división de clases es la
jerarquía compartiendo características comunesx Así todos los vehículos citados tienen un
motor y ruedas, que son características comunes; si bien los camines tienen una caja para
transportar mercancías, mientras que las motocicletas tienen un manillar en lugar de un
volantex
6a herencia supone una clase base y una jerarquía de clases que contienen las clases
derivadas de la clase basex 6as clases derivadas pueden heredar el código y los datos de su
clase base, añadiendo su propio código especial y datos a ellas incluso cambiar aquellos
elementos de la clase base que necesita sean diferentesx
Nota: una clase hereda sus características (datos y funciones) de otra clasex
%" M§
§ § §§
Ya se ha mencionado en ocasiones anteriores que los objetos realizan acciones cuando ellos
reciben mensajesx El mensaje es esencialmente una orden que se envía a un objeto para
indicarle que realice alguna acciónx Esta técnica de enviar mensajes a objetos se denomina
pasar mensajesx 6os objetos se comunican entre sí enviando mensajes, al igual que sucede
con las personasx
Ô
Primer Ciclo Fundamentos de Programación
6os mensajes pueden venir de otros objetos o desde fuentes externas, tales como un ratón o
un tecladox
%% §§§
Una de las características que hace a los mensajes ser muy potentes es que pueden contener
otros objetosx 6os objetos que contienen otros objetos se conocen como objetos compuestosx
2x 6os objetos contenidos están libres para participar en cualquier número de objetos
compuestos, en lugar de estar bloqueado en un único objeto compuestox
Un objeto compuesto consta de una colección de datos o más objetos componentesx 6os
objetos componentes tienen una relación part-of (parte-de) o componentxof (componente-de)
con objeto compuestox Cuando un objeto compuesto se instancia para producir una instancia
del objeto, todos sus objetos componentes se deben instanciar al mismo tiempox Cada objeto
componente puede ser a su vez un objeto compuestox
Î
Primer Ciclo Fundamentos de Programación
6a relación parte ±de puede representarse también por has-a (tiene - un), que indica la relación
que une al objeto agregado o continentex En el caso del objeto compuesto C CHE se leerá:
C CHE tiene-un M T R, tiene-un SISTEMA_DE_FREN S, etcx
Relación de agregación
%' §
§
Java es un lenguaje fuertemente atipado, lo que hace que su manejo sea un tanto tedioso,
aunque evita la aparición de errores debido a un mal manejo de estos tiposx
© Enterosx
© Coma flotantex
© Caracteresx
ë
© §
: Decimal de 32 bits (de -3,40282347E+38 a 3,40282347E+38)
© § : Decimal de 64 bits (de -1,7976313486231570 E+308 a 1,7976313486231570
E+308)
© 6os tipos float y double disponen de tres valores especiales: infinito positivo, infinito
negativo y NaN (Not a Number)
'
Primer Ciclo Fundamentos de Programación
©
: carácter de 8 bits, correspondiente al código ASCIIx En ocasiones es necesario
representar los caracteres en forma de constante, para lo que se emplean comillas
simplesx Ejx: µf¶x
© Existen combinaciones especiales para representar algunos caracteres:
§ µ\b¶ Retroceso
§ µ\t¶ Tabulador
§ µ\r¶ Retorno de carro
§ µ\n¶ Nueva línea
© 6a barra \ se emplea como carácter de escape:
§ \¶ comilla simple,
§ \´ comilla doble,
§ \\ barra invertida
© §§
: tipo especial de JAVA para representar valores lógicosx
© Puede tomar dos valores, representados por las palabras reservadas:
§
§
© Se emplea en todas las estructuras condicionales y es el resultado de las operaciones
en las que intervienen operadores relacionalesx
ë
6os tipos básicos no están encapsulados en clasesx Pero, en ocasiones, es necesario convertir
estos tipos básicos en objetosx
§ int Ź Integer
§ long Ź 6ong
§ float Ź Float
§ double Ź Double
§ short Ź Short
§ byte Ź Byte
§ char Ź Character
§ boolean Ź Boolean
§ void Ź Void
© Por ejemplo, para convertir la cadena ³123´ en el número entero 123 podemos emplear:
int num = IntegerxparseInt(³123´);
/
&
Primer Ciclo Fundamentos de Programación
6a herencia está íntimamente ligada al §§ §, que se define como la capacidad del
lenguaje para, en tiempo de ejecución, ensamblar con un código u otro, en función de cómo se
desarrolle la ejecución, sin que esté programado À
x
El polimorfismo es un concepto natural que se aplica bien a los objetosx bjetos similares
aceptan a menudo los mismos mensajes, pero hacen cosas distintasx Por ejemplo, considere la
interfaz gráfica de una computadorax 6os objetos son iconos que representan archivosx Se usa
el ratón para enviar mensajes a estos objetosx Un mensaje típico es una doble pulsación, que
se envía al objeto colocando el ratón sobre su icono y pulsando el ratón dos vecesx Para un
archivo ejecutable, ese mensaje significa que debe ejecutar el archivo, mientras que para un
archivo de texto, la pulsación doble indica que debe arrancar el editor de texto y abrir el archivo
para editarlox
%
Primer Ciclo Fundamentos de Programación
%3 M
§
6os principales lenguajes de programación utilizados actualmente para sistemas de tiempo real
son C y Ada fue diseñada específicamente para la implementación de sistemas en tiempo real,
especialmente empotradosx Aunque Ada (Ada-83) no cumple las propiedades importantes de
6P (por ejemplo herencia y ligadura dinámica), soporta un enfoque de diseño orientada a
objetos y se lo conoce usualmente como basado en objetosx
Ô)