Está en la página 1de 19

Computacin para Ingeniera I y Laboratorio

Cap. 1 Conceptos de Programacin

CAPITULO 1 - CONCEPTOS DE PROGRAMACION


1.1
INTRODUCCION .- Los problemas o tareas que se plantean diariamente,
por ejemplo en el mbito de la empresa, ya sean de gestin, tcnicos,
matemticos, etc, pueden ser resueltos mediante el uso de la capacidad
intelectual y la habilidad manual de la persona. Diremos entonces que la tarea ha
sido realizada de forma manual (Figura 1.1).

Figura 1.1. Resolucin manual de trabajos.


1.2 Aplicacin o Sistema Informtico .- La utilizacin de la computadora para
la realizacin automtica de una tarea aporta grandes ventajas, como la rapidez
de ejecucin y la fiabilidad de los resultados obtenidos Un buen nmero de
problemas conllevan complicados clculos, as como el manejo de grandes
cantidades de datos. En el primer caso, el riesgo de equivocarse es grande y en
el segundo, el trabajo se convierte en pesado y rutinario. Mediante el uso de la
computadora se eliminan estos inconvenientes debido a las capacidades de la
mquina, basadas en las siguientes caractersticas:
Rapidez.
Precisin.
Memoria.
No obstante, la computadora por s sola no sabra resolver ni el ms
sencillo problema que se nos pueda ocurrir. Es preciso, para que pueda hacerlo,
describirle con detalle y en su lenguaje todos los pasos que ha de llevar a cabo
para la resolucin del problema. Una descripcin de este tipo es lo que se llama
programa de computadora y su objetivo es dirigir el funcionamiento de la
mquina.
1.3 CICLO DE VIDA DE LA APLICACIN .- Desde el planteamiento de un
problema o tarea hasta que se tiene el correspondiente programa o aplicacin
informtica para su realizacin por medio de una computadora, instalado en la
misma y en funcionamiento mientras sea de utilidad, se siguen una serie de
etapas que en conjunto denominamos ciclo de vida del software. Cada una de
las etapas, que tiene un objetivo bien determinado, ha de llevarse a cabo cuando
se ha terminado completamente la anterior; es decir, se han de abordar de forma
estrictamente secuencial.
Las etapas de que consta el ciclo de vida del software pueden agruparse en
los siguientes bloques, segn el esquema de la Figura 1.2.

Ing. Hermas Herrera Callejas

Pgina : 1 de 19

Computacin para Ingeniera I y Laboratorio

Cap. 1 Conceptos de Programacin

1.3.1 Etapas del Desarrollo de Aplicaciones .- Es de destacar que en la


realizacin de estas etapas no todas necesitan el uso de la computadora. No
obstante, desde hace algn tiempo se utiliza sta como apoyo mediante las
denominadas herramientas CASE (Computer Aided Software Engineering).
Etapa

Resultado
Problema

Anlisis
Especificaciones
Diseo
Presentacin
Diseo

Reportes
Formatos
Bases de datos
Programas
Aprobacin

Programacin

Algoritmo/Flujograma/Seudocdigo
CodificacinPrograma fuente, Prog estructurada
Compilacin Programa Objeto
(Errores: Sintaxis, Lgica)
Enlace Cdigo ejecutable
(Aplicacin:Interactiva/por lotes/reportes/consultas)

Pruebas
Unitarias Errores:Ejecucin,Especificacin
Funcionales
De conjunto
De esfuerzo

D
E
S
A
R
R
O
L
L
O

Evaluacin

Aplicacin aprobada
Documentacin

Capacitacin

Manual Sistema
Manual Usuario
Manual Operacin
Manual Instalacin
Usuarios
Tcnicos

EXPLOTACION

Explotacin y
Mantenimiento
Figura 1.2. Ciclo de vida del software

Ing. Hermas Herrera Callejas

Pgina : 2 de 19

Computacin para Ingeniera I y Laboratorio

Cap. 1 Conceptos de Programacin

Anlisis. Consiste en el estudio detallado del problema con el fin de obtener una
serie de documentos (especificaciones) en los que quede totalmente definido el
proceso de la automatizacin. Consta principalmente de:
- Anlisis previo.
- Anlisis funcional.
- Anlisis orgnico.
Diseo. Consiste en concebir de modo completo la aplicacin en trminos de
definir el contenido de los reportes, formatos de pantalla, bases de datos y de los
programas.
Programacin. Consiste en la realizacin de una solucin o algoritmo del
problema planteado. Esta solucin se disea utilizando una notacin intermedia
(seudo-cdigo) o mediante alguna de las notaciones grficas como los
ordinogramas; sin tener en cuenta necesariamente el lenguaje de programacin
que se vaya a utilizar en la siguiente etapa.
En esta etapa es donde tiene cabida fundamentalmente la actividad del
programador y la utilizacin de tcnicas adecuadas de diseo como la
programacin estructurada y el diseo modular.
Codificacin. Escritura en un lenguaje de programacin de alto nivel de los
algoritmos obtenidos en la etapa anterior.
Edicin. En esta fase se transcribe el programa a la computadora, grabndose el
mismo en la memoria auxiliar por medio de un editor de programas o procesador
textos. A este programa almacenado en la computadora y escrito en lenguaje de
alto nivel se le denomina programa fuente.
Compilacin. Consiste en obtener el programa objeto, codificado en lenguaje de
mquina a partir del programa fuente. Esta tarea se realiza de forma automtica
mediante el compilador del lenguaje, el cual, adems de efectuar la traduccin,
incluye un anlisis sintctico del programa, detectando posibles errores en su
escritura y posibilitando correccin de los mismos.
Enlace (linkage). En esta fase se incluyen determinadas rutinas internas de la
librera dcl lenguaje que sean necesarias en el programa, y si la aplicacin consta
de varios programas o mdulos se enlazan todos ellos, obtenindose lo que
denominamos programa ejecutable.
Prueba de ejecucin. El programa ejecutable obtenido en la etapa anterior se
somete a un juego de datos de prueba capaz de detectar los posibles errores en
su funcionamiento.
Errores .- La presencia de errores, surgidos en alguna de las etapas antes
descritas, suele ser inevitable. Por ello, es muy importante saber detectarlos y
corregirlos para asegurar la calidad del producto final.
Un programa en
explotacin puede contener errores que no han sido detectados y que pueden dar
lugar a consecuencias imprevisibles.
En el momento en que se encuentra un error hay que proceder a estudiar
sus causas y regresar a la etapa correspondiente en que puede ser corregido.
Segn la etapa en que se detectan, los errores se clasifican de la siguiente
manera:
De compilacin. Tambin denominados errores sintcticos, son los ms
fciles de encontrar y corregir. Se producen por el incumplimiento de las reglas

Ing. Hermas Herrera Callejas

Pgina : 3 de 19

Computacin para Ingeniera I y Laboratorio

Cap. 1 Conceptos de Programacin

sintcticas del lenguaje y son detectados por el programa compilador indicando el


lugar en que se encuentran y la clase de error.
De ejecucin. Se detectan durante la ejecucin del programa por la parada
anormal del mismo, y suelen provenir de la realizacin de operaciones no
permitidas. Se producen o no dependiendo de los datos de entrada empleados;
por ello, para encontrarlos es necesaria la prueba del programa con un conjunto
de datos dc ensayo lo suficientemente amplio que abarque la mayora de casos y
posibilidades de ejecucin.
De lgica. Se dice que un programa tiene un error de lgica si produce
resultados que no son correctos. Para detectarlos hay que realizar un nmero
suficiente dc ejecuciones con diferentes datos de prueba y comprobar los
resultados obtenidos.
De especificacin. Son los ms difciles de corregir, pues corresponden a
incorrecciones sobrevenidas en la etapa del anlisis, por lo que hay que modificar
gran parte del trabajo realizado.
1.3.2 Documentacin de tos programas .Constituida por todos los
documentos que se elaboran en cada una de las etapas del anlisis y diseo, es
muy importante para facilitar su mantenimiento y obtener un mayor rendimiento.
Denominamos documentacin interna al contenido del propio programa
fuente. Debe incluir los comentarios explicativos suficientes que posibiliten su
comprensin y actualizacin.
Asimismo, se debe utilizar un cdigo
autodocumentado; es decir, debe ser escrito de una forma clara y legible.
La documentacin externa la forman el resto de documentos que se
acompaan con el programa sin formar parte de l. Entre ellos deben figurar los
siguientes:
Especificaciones del anlisis.
Descripcin del diseo.
Descripcin de las versiones, s las hubiere.
Descripcin de archivos y estructuras de datos.
Descripcin del programa principal y subprogramas.
Manual de mantenimiento.
Manual de explotacin.
1.3.3. Etapas de la implantacin y explotacin .- Para la implantacin y
explotacin de programas se deben seguir los pasos que se describen a
continuacin.
Explotacin y mantenimiento. Una vez comprobada la correccin del programa
y realizada su instalacin en el sistema informtico, la aplicacin queda a
disposicin de los usuarios, que la utilizarn hasta tanto se decida abandonarla o
cambiarla por otra. Es lo que denominamos explotacin de la aplicacin.
Paralelamente al uso de la aplicacin se realiza el mantenimiento de la
misma, consiste en su evaluacin peridica por parte del personal informtico, as
como la inclusin de las adaptaciones y modificaciones necesarias para
mantenerla actualizada.

Ing. Hermas Herrera Callejas

Pgina : 4 de 19

Cap. 1 Conceptos de Programacin

Computacin para Ingeniera I y Laboratorio

1.4 ESTRUCTURA DE UN PROGRAMA .- En general, un programa consiste en


una secuencia de instrucciones que ha de procesar la computadora con el objetivo
de obtener unos resultados o datos de salida a partir de unos datos iniciales o
datos de entrada (Figura 1.3). Desde el punto de vista funcional, un programa se
estructura en tres pasos:
1.4.1 Entrada de datos. Est formada por todas las instrucciones que toman los
datos objeto del programa desde un dispositivo externo (unidad de entrada)
depositndolos en la memoria central de la computadora, incluyendo la depuracin
o validacin de los mismos.
1.4.2 Proceso. Conjunto de instrucciones que resuelven el problema a partir de
los datos que han sido introducidos, dejando los resultados en la memoria central.
El dispositivo fsico encargado de llevar a cabo esta tarea es la unidad central de
proceso.

Figura 1.3. Proceso de elaboracin.


1.4.3 Salida de resultados. La constituyen las instrucciones que hacen que los
datos resultantes del proceso sean proporcionados al exterior por medio de algn
dispositivo (unidad de salida).
Estos tres componentes de todo programa (Figura 1.4) no aparecen
separadamente, sino que lo normal es encontrar las instrucciones pertenecientes
a cada uno de los tres grupos mezcladas entre si, pues en multitud de ocasiones
es necesario realizar operaciones de entrada despus de iniciada la fase de
proceso, y asimismo, se proporcionan algunos resultados antes de terminado el
mismo.
Datos
Memoria central
Resultados
Entrada

Proceso

Salida

Figura 1.4. Estructura funcional de un programa.


1.5 LENGUAJES DE PROGRAMACIN .- El desarrollo de las capacidades del
hardware ha experimentado un auge desmesurado en los ltimos aos, pero el
aprovechamiento de estas posibilidades no es ptimo si no se dispone del
software adecuado. Con este fin se han diseado diversos lenguajes de programacin, unos de propsito general, es decir, para todo tipo de aplicaciones, y
otros de aplicacin particular en alguno de los campos del mbito informtico.
Un lenguaje de programacin es una notacin para escribir programas, a
travs de los cuales podemos comunicarnos con el hardware y dar as las rdenes

Ing. Hermas Herrera Callejas

Pgina : 5 de 19

Computacin para Ingeniera I y Laboratorio

Cap. 1 Conceptos de Programacin

adecuadas para la realizacin de un determinado proceso. Un lenguaje est


definido por una gramtica o conjunto de reglas que se aplican a un alfabeto
constituido por el conjunto de smbolos utilizados.
1.5.1 CLASIFICACION DE LOS LENGUAJES DE PROGRAMACIN .- Una
primera clasificacin, atendiendo a su proximidad al lenguaje de la mquina o al
lenguaje de las personas (lenguaje natural), establece los tres siguientes grupos:
Lenguaje de mquina (Lenguaje de bajo nivel).
Lenguaje ensamblador (Lenguaje intermedio).
Lenguaje de alto nivel (evolucionado).
1.5.2 Lenguaje de mquina .- El lenguaje de mquina es el nico que entiende
directamente la computadora. Utiliza el alfabeto binario, que consta de los dos
nicos smbolos 0 y 1, denominados bits (abreviatura inglesa de dgitos binarios).
Fue el primer lenguaje utilizado en la programacin de computadoras, pero dej
de utilizarse por su dificultad y complicacin, siendo sustituido por otros lenguajes
ms fciles de aprender y utilizar, que adems reducen la posibilidad de cometer
errores.
EJEMPLO
Instrucciones en lenguaje de mquina y sus equivalentes en el sistema
hexadecimal.
0000 0001 1010 0001
01
Al
1000 1001 1001 1010
89
9A
0011 1010 1001 1100
3A
9C
0111 0100 0111 0000
74
70
1110 1001 0010 0000
E9
20
1.5.3 Lenguaje ensamblador .- El lenguaje ensamblador es el primer intento de
sustituir el lenguaje de mquina por otro ms similar a los utilizados por las
personas. En este lenguaje, cada instruccin equivale a una instruccin en
lenguaje de mquina, utilizando para su escritura palabras nemotcnicas en lugar
de cadenas de bits.
EJEMPLO
Instrucciones en lenguaje ensamblador.
INICIO:
ADD B,
1
MOV A,
B
CMP A,
E
JE
FIN
JMP INICIO
FIN:
END
Este lenguaje presenta la mayora de los inconvenientes del lenguaje de
mquina:
Cada modelo de computadora tiene un lenguaje ensamblador propio
diferente del de los dems, por lo cual un programa slo puede utilizarse en la
mquina para la que se program.

Ing. Hermas Herrera Callejas

Pgina : 6 de 19

Computacin para Ingeniera I y Laboratorio

Cap. 1 Conceptos de Programacin

El programador ha de conocer perfectamente el hardware del equipo, ya


que maneja directamente las posiciones de memoria, registros del procesador y
dems elementos fsicos.
Todas las instrucciones son elementales, es decir, en el programa se deben
describir con el mximo detalle todas las operaciones que se han de efectuar en la
mquina para la realizacin de cualquier proceso.
Por otro lado, tanto el lenguaje de mquina como el ensamblador gozan de
la ventaja de mnima ocupacin de memoria y mnimo tiempo de ejecucin en
comparacin con el resultado de la compilacin del programa equivalente escrito
en otros lenguajes.
1.5.4 Lenguajes de alto nivel .- Los lenguajes de alto nivel, tambin
denominados lenguajes evolucionados, surgen con posterioridad a los anteriores
con los siguientes objetivos, entre otros:
1. Lograr independencia de la mquina, pudiendo utilizar un mismo programa en
diferentes equipos con la nica condicin de disponer de un programa traductor o
compilador, que es suministrado por el fabricante, para obtener el programa
ejecutable en lenguaje binario de la mquina que se trate. Adems, no se
necesita conocer el hardware especfico de dicha mquina.
2. Aproximarse al lenguaje natural para que el programa se pueda escribir y leer
de una forma ms sencilla, eliminando muchas de las posibilidades de cometer
errores que se daban en el lenguaje de mquina, ya que se utilizan palabras (en
ingls) en lugar de cadenas de smbolos sin ningn significado aparente
3. Incluir rutinas de uso frecuente, como las de entrada/salida, funciones
matemticas, manejo de tablas, etc., que figuran en una especie de librera del
lenguaje de manera que se puedan utilizar siempre que se quiera sin necesidad
de programarlas cada vez.
Se puede decir que el principal problema que presentan los lenguajes de
alto nivel es la gran cantidad de ellos que existen actualmente en uso, adems de
las diferentes versiones o dialectos que se han desarrollado de algunos de ellos.
1.6 REPRESENTACION DE DATOS: CODIFICACIN ALFANUMERICA.- Los
datos e informaciones que se manejan internamente en un sistema informtico se
pueden representar, segn sus caractersticas, de las siguientes formas:
ASCII
ALFANUMRICAS
EBCDIC
....
Representaciones
o cdigos internos
Coma fija
NUMRICAS
Coma flotante
....
Cdigos alfanumricos
Una computadora puede trabajar internamente con un conjunto de caracteres
que nos permitirn manejar datos, informaciones, instrucciones, rdenes de

Ing. Hermas Herrera Callejas

Pgina : 7 de 19

Cap. 1 Conceptos de Programacin

Computacin para Ingeniera I y Laboratorio

control etc. Este conjunto de caracteres podemos subdividirlo en los siguientes


grupos:
Caracteres alfabticos.
Letras maysculas. Son las letras de la A a la Z (sin la ).
Letras minsculas. Son las letras de la a a la z (sin la ).
Cifras decimales. Son los nmeros 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9.
Caracteres especiales.
Caracteres. Son el punto (.), la coma (,), el punto y coma (;), e1 asterisco
(*), etc.
rdenes de control. Son NUL, CR, ACK, etc.
En general, cada carcter se maneja internamente en una computadora por
medio de un conjunto de 8 bits mediante un sistema de codificacin binario que
denominaremos cdigo de caracteres. (9 bits si se incluye el bit de paridad)
Cada computadora tiene su cdigo de caracteres definidos por el fabricante,
si bien la mayora de ellos adaptan a sus equipos cdigos estndar de los ya
establecidos. En estos cdigos se representa cada carcter por medio de un byte
(8 bits), con lo cual todo tipo de informaciones pueden ser utilizadas internamente,
formando cadenas de bytes sucesivos que representarn cadenas de caracteres
para que la mquina las maneje e interprete. No todos los tipos de cdigos utilizan
para la representacin de caracteres los ocho bits de un byte.
Hoy da los cdigos ms utilizados son los de 8 bits, de los cuales los ms
conocidos son el EBCDIC (Extended Binary Coded Decimal Interchange Code) y
el ASCII extendido. La Tabla 1.1 representa el cdigo ASCII extendido a 8 bits y la
Tabla 1.2 representa el cdigo EBCDIC.
Tabla 1.1 Cdigo ASCII extendido
bits
7654
3210 0000
0001
0000
0001
0010
0011
0100
0101
0110
0111
1000

000 NUL 016 DLE


001 SOH 017 DC1
002 STX 018 DC2
003 ETX 019 DC3
004 EOT 020 DC4
005 ENQ 021 NAK
006 ACK 022 SYN
007 BEL 023 ETB
008 BS 024 CAN

1001
1010
1011
1100
1101
1110
1111

009 HT
010 LF
011 VT
012 FF
013 CR
014 SO
015 SI

0010

0011 0100 0101 0110 0111

1000 1001 1010 1011 1100 1101 1110 1111

032 SP

048 0 064 @ 080 P 096 ` 112 p 128 144 160 176 _ 192 208 224 240

033 !
034 "
035 #
036 $
37%
038 &
039 ''
040 (

049 1
050 2
051 3
052 4
053 5
054 6
055 7
056 8

065 A 081 Q 097 a


066 B 082 R 098 b
067 C 083 S 099 c
068 D 084 T 100 d
069 E 085 U 101 e
070 F 086 V 102 f
071 G 087 W 103 g
072 H 088 X 104 h

041 )
026 SUB 042 *
027 ESC 043 +
028 FS 044 ,
029 GS 045 030 RS 046 .
031 US 047 /

057 9
058 :
059 ;
060 <
061 =
062 >
063 ?

073 I 089 Y
074 J 090 Z
075 K 091 [
076 L 092 \
077 M 093 ]
078 N 094 ^
079 O 095 _

025 EM

Ing. Hermas Herrera Callejas

113 q
114 r
115 s
116 t
117 u
118 v
119 w
120 x

129
130
131
132
133
134
135
136

105 i 121 y 137


106 j 122 z 138
107 k 123 { 139
108 l 124 | 140
109 m 125 } 141
110 n 126 ~ 142
111 o 127Del 143

145 161 177 _ 193 - 209 225 241


146 162 178 _ 194 - 210 226 242 _

147
148
149
150
151
152

163 179 195 +


164 180 196 165 181 197 +
166 182 198
167 183 199
168 184 200 +

153 169 185


154 170 186
155 171 187 +
156 172 188 +
157 173 189
158 174 190
159 175 191 +

201 +
202 203 204
205 206 +
207

211
212
213 i
214
215
216

227 243
228 244
229 245
230 246
231 247
232 248

217 +
218 +
219 _
220 _
221
222
223 _

233 249
234 250
235 251
236 252
237 253
238 254 _
239 255

Pgina : 8 de 19

Computacin para Ingeniera I y Laboratorio

Cap. 1 Conceptos de Programacin

Tabla 1.2 Cdigo EBCDIC


bits
3210
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F

7654
0000 0001
0
1
NUL DLE
SOH DC1
STX DC2
ETX DC3
PF RES
HT NL
LC BS
DEL IL
CAN
RLF EM
SMM CC
VT
FF
IFS
CR IGS
SO IRS
SI
IUS

0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
2
3
4
5
6
7
8
9
A
B
C
D
E
F
DS
SP
&
_
{
}
\
0
SOS
a
j
~
A
J
1
FS SYN
b
k
s
B
K
S
2
c
l
t
C
L
T
3
BYP PN
d
m
u
D
M
U
4
LF RS
e
n
v
E
N
V
5
EOB UC
f
o
w
F
O
W
6
ESC EOT
g
p
x
G
P
X
7
h
q
y
H
Q
Y
8
.
\
i
r
z
I
R
Z
9
SM

!
'
:
.
$
,
#
DC4 <
*
%
@
ENQ NAK
(
)
'
ACK
+
;
>
=
BEL SUB
|

?
"

Donde los significados de los caracteres de control son:


NUL Null
CC Cursor Control
SOH Start of Heading.
IFS Imterchange File Separator.
STX Ster of Text.
IGS Interchange Group Separator.
ETX End of Text
IRS Interchange Record Separator.
PF
Punch 0ff
IUS Interchange Unit Separator.
HT
Horizontal Tabulation.
DS
Digit Select.
LC
Lower Case.
SOS Start of Significance.
DEL Delete.
FS
Field Separator.
RLF Reserve Line Feed.
BYP Bypass.
SMM Start of Manual Message.
LF
Line Feed.
VT
Vertical Tabulation.
EOB End of Block
FF
Form Feed.
ESC Escape.
CR
Carriage Return.
SM Set Mode.
SO
Shift Out.
ENQ Enquiry.
SI
Shift in.
ACK Acknowledge.
DLE Data Link Escape.
BEL Bell.
DC1 Device Control 1.
SYN Synchronous Idle.
DC2 Device Control 2.
PN
Punch On.
DC3 Device Control 3.
RS
Reader Stop.
RES Restore.
UC Upper Case.
NL
New Line.
EOT End of Transmission
BS
Backspace.
DC4 Device control 4.
IL
Idle.
NAK Negative Acknowledge.
CAN Cancel
SUB Substitute.
EM End of Medium.
SP
Space

Ing. Hermas Herrera Callejas

Pgina : 9 de 19

Computacin para Ingeniera I y Laboratorio

1.7

Cap. 1 Conceptos de Programacin

Tcnicas de programacin

1.7.1 Programacin convencional


Aquella que sigue el procedimiento normal de ejecucin de los distintos
procesos dentro del programa, traduccin del diagrama de flujo a programa fuente,
similar a un seudo cdigo, con un principio y un final
1.7.2 Programacin modular
La programacin modular es un paradigma de programacin que consiste
en dividir un programa en mdulos subprogramas con el fin de hacerlo ms
legible y manejable.
Se presenta histricamente como una evolucin de la programacin
estructurada para solucionar problemas de programacin ms grandes y
complejos de lo que sta puede resolver.
Al aplicar la programacin modular, un problema complejo debe ser dividido
en varios sub-problemas ms simples, y estos a su vez en otros sub-problemas
ms simples. Esto debe hacerse hasta obtener sub-problemas lo suficientemente
simples como para poder ser resueltos fcilmente con algn lenguaje de
programacin. sta tcnica se llama refinamiento sucesivo, divide y vencers
anlisis descendente (Top-Down).
Un mdulo es cada una de las partes de un programa que resuelve uno de
los subproblemas en que se divide el problema complejo original. Cada uno de
estos mdulos tiene una tarea bien definida y algunos necesitan de otros para
poder operar. En caso de que un mdulo necesite de otro, puede comunicarse con
ste mediante una interfaz de comunicacin que tambin debe estar bien definida.
1.7.3 Programacin estructurada
La programacin estructurada sigue tres reglas: la secuencia, la iteracin y
la decisin. La primera de ellas indica que las instrucciones del cdigo se leern
de principio a fin; la segunda indica que, segn cierta condicin, un nmero de
instrucciones podran repetirse un numero determinado de veces, y la tercera
indica que segn unas ciertas condiciones se ejecutarn o no un conjunto de
instrucciones.
En el siguiente algoritmo para limpiar platos, separando los azules se
aprecian estas tres caractersticas. La indentacin de las instrucciones indican
cules son englobadas y cules no por sus predecesoras. Entre los beneficios de
la programacin estructurada se encuentran la facilidad de mantenimiento y la
legibilidad por parte de otros programadores
mientras haya platos
coger plato
mientras haya suciedad
echar jabon
pasar el estropajo por el plato
Ing. Hermas Herrera Callejas

Pgina : 10 de 19

Computacin para Ingeniera I y Laboratorio

Cap. 1 Conceptos de Programacin

si plato es azul
ponerlo con los azules
En cdigo no estructurado, quedara como sigue:
1 coger plato
2 echar jabon
3 pasar el estropajo por el plato
4 si hay suciedad ir a la instruccin 2
5 si el plato no es azul ir a la instruccin 7
6 ponerlo con los azules
7 si hay ms platos ir a la instruccin 1
1.7.4 Estructuras de control
Las estructuras de control pueden dividirse en dos grupos:
De decisin
IfThen
IfThenElse
Select Case
De bucle
Do Loop (While / Until)
ForNext
For each Next
Anidadas
Salidas de estructuras (Exit)
1.8 Programacin orientada a objetos.- Un estilo de programacin en el que un
programa se contempla como un conjunto de objetos limitados que, a su vez, son
colecciones independientes de estructuras de datos y rutinas que interactan con
otros objetos. Una clase define las estructuras de datos y rutinas de un objeto.
Un objeto es una instancia de una clase, que se puede usar como una variable en
un programa. En algunos lenguajes orientados a objetos, ste responde a
mensajes, que son el principal medio de comunicacin. En otros lenguajes
orientados a objeto se conserva el mecanismo tradicional de llamadas a
procedimientos.
1.9
Algoritmos.- En matemticas, ciencias de la computacin, y disciplinas
relacionadas, un algoritmo (del matemtico persa al-Jwarizmi) es una lista bien
definida, ordenada y finita de operaciones que permite resolver un problema.
En la vida cotidiana se emplean algoritmos en multitud de ocasiones para
resolver diversos problemas. Los instructivos (manuales de usuario), para usar un
aparato, las instrucciones que recibe un trabajador. Tambin existen ejemplos de
ndole matemtico, como el algoritmo de la divisin para calcular el cociente de
dos nmeros, el algoritmo de Euclides para calcular el mximo comn divisor de
dos enteros positivos, o el mtodo de Gauss para resolver un Sistema lineal de
ecuaciones.
Ing. Hermas Herrera Callejas

Pgina : 11 de 19

Computacin para Ingeniera I y Laboratorio

Cap. 1 Conceptos de Programacin

En la actualidad, el trmino algoritmo se aplica a muchos de los mtodos


de resolver problemas que empleen una secuencia mecnica de pasos, como en
el diseo de un programa de ordenador o computadora. Esta secuencia se
puede representar en la forma de un diagrama de flujo para que sea ms fcil de
entender.
Al igual que los algoritmos usados en aritmtica, los algoritmos para
ordenadores pueden ser desde muy sencillos hasta bastante complejos. En
todos los casos, sin embargo, la tarea que el algoritmo ha de realizar debe ser
definible. Esta definicin puede incluir trminos matemticos o lgicos o una
compilacin de datos o instrucciones escritas. En el lenguaje de la informtica,
quiere decir que un algoritmo debe ser programable, incluso si al final se
comprueba que el problema no tiene solucin.
1.9.1 Importancia.- La importancia de un algoritmo radica en mostrar la manera
de llevar a cabo procesos y resolver mecnicamente problemas matemticos o de
otro tipo. Al igual que las funciones matemticas, los algoritmos reciben una
entrada y la transforman en una salida, para que un algoritmo pueda ser
considerado como tal, debe ser una secuencia ordenada, finita y definida
(formalizacin de su comportamiento) de instrucciones. De este modo se puede
seguir y predecir el comportamiento del algoritmo para cualquier entrada posible.
El concepto de algoritmo, aunque similar y obviamente relacionado, no
debe confundirse con el concepto de programa. Mientras el primero es la
especificacin de un conjunto de pasos (operaciones, instrucciones, rdenes,...)
orientados a la resolucin de un problema (mtodo), el segundo es ese conjunto
de operaciones especificadas en un determinado lenguaje de programacin y para
un computador concreto, susceptible de ser ejecutado (o compilado o
interpretado). Un algoritmo, estrictamente hablando, no puede ejecutarse hasta
que se implementa, ya sea en un lenguaje de programacin, en un circuito
elctrico, en un aparato mecnico, usando papel y lpiz, o en algn otro modelo
de computacin.
1.9.2 Caractersticas de los algoritmos.- Se han definido cinco propiedades,
que son ampliamente aceptadas como requisitos para un algoritmo:
Carcter finito. "Un algoritmo siempre debe terminar despus de un nmero finito
de pasos".
Precisin. "Cada paso de un algoritmo debe estar precisamente definido; las
operaciones a llevar a cabo deben ser especificadas de manera rigurosa y no
ambigua para cada caso".
Entrada. "Un algoritmo tiene cero o ms entradas: cantidades que le son dadas
antes de que el algoritmo comience, o dinmicamente mientras el algoritmo corre.
Estas entradas son tomadas de conjuntos especficos de objetos".

Ing. Hermas Herrera Callejas

Pgina : 12 de 19

Computacin para Ingeniera I y Laboratorio

Cap. 1 Conceptos de Programacin

Salida. "Un algoritmo tiene una o ms salidas: cantidades que tienen una relacin
especfica con las entradas".
Eficacia. "Tambin se espera que un algoritmo sea eficaz, en el sentido de que
todas las operaciones a realizar en un algoritmo deben ser suficientemente
bsicas como para que en principio puedan ser hechas de manera exacta y en un
tiempo finito por un hombre usando lpiz y papel".
A partir del carcter finito y de la salida se deduce que ante una misma
situacin inicial (o valores de entrada) un algoritmo debe proporcionar siempre el
mismo resultado (o salida), con excepcin de los algoritmos probabilistas.
1.10 Mtodos de representacin de los algoritmos.- Los algoritmos pueden
ser expresados de muchas maneras:
Lenguaje natural
Pseudocdigo
Lenguajes de programacin
Diagramas de flujo
1.10.1 Lenguaje Natural.- Las descripciones en lenguaje natural explican el
mtodo de solucin del problema, tienden a ser ambiguas y extensas. El usar
pseudocdigo y diagramas de flujo evita muchas ambigedades del lenguaje
natural. Dichas expresiones son formas ms estructuradas para representar
algoritmos.
1.10.2 Pseudocdigo.- Trmino genrico para nombrar las instrucciones del
programa, utilizadas en dos sentidos generales derivados del diagrama de flujo.
Pseudocdigo es la descripcin de un algoritmo que asemeja a un lenguaje de
programacin pero con algunas convenciones del lenguaje natural. Tiene varias
ventajas con respecto a los diagramas de flujo, entre las que se destaca el poco
espacio que se requiere para representar instrucciones complejas. El
pseudocdigo no est regido por ningn estndar. Pseudo viene de falso y por
ende es un cdigo que, aunque es entendible, no se aplica al proceso que debe
realizar la maquina.
1.10.3
Lenguajes de Programacin.- Descritos ya anteriormente con
mayor detalle
1.10.4
Diagramas de flujo.- Los diagramas de flujo son descripciones
grficas de algoritmos; usan smbolos conectados con flechas para indicar la
secuencia de instrucciones y estn regidos por normas ISO.
Los diagramas de flujo son usados para representar algoritmos pequeos,
ya que abarcan mucho espacio y su construccin es laboriosa. Por su facilidad de
lectura son usados como introduccin a los algoritmos, descripcin de un lenguaje
y descripcin de procesos a personas ajenas a la computacin.
Diagrama secuencial empleado en muchos campos para mostrar los
procedimientos detallados que se deben seguir al realizar una tarea, como un
Ing. Hermas Herrera Callejas

Pgina : 13 de 19

Computacin para Ingeniera I y Laboratorio

Cap. 1 Conceptos de Programacin

proceso de fabricacin. Tambin se utilizan en la resolucin de problemas, como


por ejemplo en algoritmos. Los diagramas de flujo se usan normalmente para
seguir la secuencia lgica de las acciones en el diseo de programas de
computadoras.
1.10.4.1

Smbolos
Inicio / Fin
Entrada / Salida
Proceso

Decisin

Proceso iterativo

Proceso predefinido

Conector dentro de pgina


Conector fuera de pgina

Direccin de flujo

1.10.4.2
Tipos.- Muchos algoritmos son ideados para implementarse en un
programa. Sin embargo, los algoritmos pueden ser implementados en otros
medios, como una red neuronal, un circuito elctrico o un aparato mecnico.
Algunos algoritmos inclusive se disean especialmente para implementarse
usando lpiz y papel. El algoritmo de multiplicacin tradicional, muchas formas de
resolver la raz cuadrada son slo algunos ejemplos.
Hay tambin Diagramas de flujo de Sistemas donde se utilizan otros
smbolos adicionales a los mostrados o inclusive con otro significado
1.11 EJERCICIOS DE DIAGRAMAS DE FLUJO.- Realizar los diagramas de
flujo para resolver los siguientes problemas
1.- Convertir metros a Dm, Hm y Km (Dato: metros)

Ing. Hermas Herrera Callejas

Pgina : 14 de 19

Computacin para Ingeniera I y Laboratorio

Cap. 1 Conceptos de Programacin

2.3.4.5.6.7.-

Hallar el rea y permetro de un rectngulo (Datos: base, altura)


Sumar los nmeros enteros, los cuadrados y los cubos de 1 a N (Dato: N)
Decidir segn moneda. Si al lanzar cae cara ir al cine, caso contrario estudiar
Encontrar el MAYOR de 3 nmeros diferentes (Datos: A, B, C)
Encontrar el MAYOR y el MENOR de 3 nmeros diferentes (Datos: A, B, C)
Hay 3 barras de diferente longitud. Comprobar si forman un tringulo. (Si la
suma de todo par de lados es mayor que el tercero, forman tringulo, caso
contrario no)
8.- Se deben digitar R, G, o B (Rojo, Verde o Azul). Imprimir color Rojo, Verde o
Azul segn las letras introducidas especificadas anteriormente)
100
9.- Evaluar la funcin: Y
, donde x es la abscisa e Y es la ordenada. (Si
9 3X
X = 3 no se puede dividir
10.- El cuadrado de un nmero entero N es la suma de los N primeros nmeros
N

impares (Dato N, N 2

(2i 1)
i 1

11.12.-

13.-

Calcular el factorial de un nmero N introducido


Calcular el salario e imprimir la boleta de pago de los empleados (Datos:
Nombre, horas trabajadas, salario por hora, fin de archivo)
Pago regular hasta 40 Hs semanales
Sobretiempo: 50% ms que el salario normal
Imprimir: Nombre, Hs trabajadas, salario/hora, salario normal, sobretiempo
y pago total
Imprimir el reporte de ventas (Vendedor, Nro de Orden, valor de la venta,
Totales por vendedor, Total compaa) leyendo la informacin de un archivo
N

Xi
14.-

Se ingresarn N valores para X. Calcular el valor promedio X


1

15.-

16.17.18.-

19.20.21.22.23.-

x
x
x
xn
....
1! 2! 3!
n!
Llamemos NUM = Numerador, DEN = Denominador, TER = trmino = N/D.
Detener el proceso cuando el trmino TER sea menor o igual a 0.00005
Cargar un vector de N elementos con valores introducidos al azar, luego
buscar el valor mayor y su ubicacin e imprimir la informacin encontrada
Construir la matriz identidad de N x N
Se dispone de 9 bolas de billar, todas iguales menos una que tiene peso
diferente. En 3 pesadas debemos determinar cual es la diferente adems
de saber si es ms pesada o ms liviana que las dems
Dado un nmero, determinar si el mismo es par o impar
Dado un nmero, determinar si el mismo es primo o no es primo
Hallar la suma de los N primeros nmeros pares
Se debe introducir la temperatura ya sea en oC o oF. Convertir los valores a
oF o oC segn corresponda. (Ver cmo identificar el valor introducido)
Ordenar M nmeros introducidos al azar, en forma ascendente. Podemos
usar el mtodo de comparaciones sucesivas con el primer nmero.
La funcin e x se puede calcular con la frmula e x

Ing. Hermas Herrera Callejas

i 1

Pgina : 15 de 19

Cap. 1 Conceptos de Programacin

Computacin para Ingeniera I y Laboratorio

INICIO
Leer M
I=0
I=I+1
Leer N(I)
No
I=M?
Si
I=M
I=I-1
J=0
J=J+1

N(J)>N(J+1)

SiAUX=N(J)
No N(J)=N(J+1)
N(J+1)=AUX

Si
No

J=I?
Si

No

I=1
Si
I=0
I=I+1

Escribir N(I)
No

I=M?
Si
Fin

Ing. Hermas Herrera Callejas

Pgina : 16 de 19

Cap. 1 Conceptos de Programacin

Computacin para Ingeniera I y Laboratorio

24.-

Generar los N primeros nmeros primos


Inicio
Def P(I), I, N, K, J, DIVE
A
Fin ?

Si

Fin

No
A

No

Ejecutar ?

DIVE>2 ?

Si
Leer N
A
N>0 ?

No

N debe ser > 0

Si

No
K=K+1
P(K) = J

K=N ?

No

J=J+1

Si
J = 1,

Si
I = 1, N

K=0
C

DIVE = 0
Imprimir P(I)
I = 1, J
I
J Mod I = 0 ?
Si

No
A

DIVE = DIVE + 1

Ing. Hermas Herrera Callejas

Pgina : 17 de 19

Cap. 1 Conceptos de Programacin

Computacin para Ingeniera I y Laboratorio

25.-

Invertir los dgitos de un nmero N entero, positivo de dos cifras o ms


Inicio
Def A, N, N1, DIG
A
Fin ?

Si

Fin

No
A

No

Invertir ?
Si
Leer N

N>11 ?

No

N debe ser > 11

No

Desplegar N1

Si
A = N, N1 = 0

A>0?

Si
DIG = A Mod 10
N1 = N1*10 + DIG
A = A \ 10

Ing. Hermas Herrera Callejas

Pgina : 18 de 19

Cap. 1 Conceptos de Programacin

Computacin para Ingeniera I y Laboratorio

26.-

Construir una matriz de N x N con N impar y mayor a 2. Calcular las sumas


de los vectores centrales (vertical y horizontal) adems de la suma total de
los vectores centrales (horizontal y vertical)
Inicio
Def A(I, J), N, I, J, C, S, K, H, V
A
Fin ?

Si
No

Fin

Ejecutar ?
No
Si
Leer N

N>2 y N Mod 2= 1?

No

N debe ser impar y > 2

Si
H = 0, V = 0, S = 0
B
I = 1, N
I = 1, N
J = 1, N

H = H + A(I, K)
V = V + A(K, I)

Leer C
I
A(I, J) = C
S = H + V A(K, K)
J
I

Imprimir H, V, S

S = 0, K = N \ 2 + 1
A
B

Ing. Hermas Herrera Callejas

Pgina : 19 de 19