Vous êtes sur la page 1sur 86

IINDICE

1. TCNICAS DE DISEO DETALLADO . ................................................................ 1


1.1 DISEO ALGORTMICO ...... .... ... ... ... ..... .............. ... ... ..... ....... ........ ........ ....... ... .... ... .... 3
1.1.1 ELEMENTOS Y REGLAS DE LA REPRESENTACIN GRFICA DE LOS ALGORITMOS
. :. .. ..... ....... .... ..... .... ..... . _ ... .... .... .... 4
1.1.2 IMPLEMENTACIN DE ALGORITMOS SECUENCIALES (UTILIZANDONOTACIN
ALGEBRAICA) .. ... .. .... .. ... .. .... ..... ... ... ...... ....... .... ......................... .-.... .... .... .. .. .......... .... ..... .. ...... ... .. . 12
1.2 DISEO ALGORTMICO DE LAS FUNCIONES .. ... .... ...... ..... ..... ...... .. .. .... .. .... ........ .. 17
2. INTRODUCCIN A LA PROGRAMACIN ......................................................... 26
2. 1 CLASIFICACIN DEL SOFTWARE. ..... ...... ... .... ......... .. .... ........ .. ... ...... ....... ... ...... .. .. . 26
2.1 .1 SOFTWARE DEL SISTEMA. ... ........... .. ........ .... ... ... ..... ....... ... .... ... .. ...... .. .. .... .. .. .......... .. ...... 26
2.1.2 SOFTWARE DE APLICACIN ..... .... ... .. .... ...... ... .... .... ...... ..... .... ..... ... .... ...... .... .. ....... ..... ..... 26
2.2 CONCEPTOS DE LA PROGRAMACIN . ..... .. .... .... ..... .... .... ....... ..... ...... .. ...... .... ...... . 26
2.2.1 DEFINICIN DE .. ...... .. ... ........... ..... .. ... . ,_ ... ... ... .. .. .. .... .. .. ..... .... .... ...... ..... .. ..... 26
2.2.2 DEFINICIN DE PROGRAMACIN. ' 27
2.2.3 DEFINICIN DE LENGUAJE DE PROGRAMACIN .. ...... ... ... ... .... ..... .... .......... .. .............. 27
2.3 DATOS ... ....... .. .... ... .... ..... .... ........ ..... ..... .. ........ .... .. .. ... .. ..... ... ... .... ... ... .. .... ...... ........ ... . 27
2.3.1 DEFINICIN .. ....................... .... . : ....... ... ... .. .. ..... .... ...... .... .... .... .. ,.: .... .... .. ... ........... .... ...... .... .. 28
2.3.2 TIPOS DE DATOS ... ...... .. ... ... ... ...... .. .. .. .... ... ... ... .. .... ......... .. ..... ... .. .. ...... ... ... .. ... ...... ... .... ... ... 28
2.3.3 IDENTIFICADORES ..... ...... ..... ...... ......... ... ....... ...... ..... ........... ....... .. .... .... .. .......... .. ... .......... 28
2.3.4 ALMACENAMIENTO, DIRECCIONAMIENTO Y REPRESENTACIN EN MEMORIA. .... 29
2.4 OPERADORES, OPERANDOS Y EXPRESIONES ...... ... .. ... .... .. ... .......... ....... ... .. ... .. . 30
2.5 PRIORIDAD DE OPERADORES, EVALUACIN DE EXPRESIONES ... ... .. ... ... .... .... 31
2.6 ESTRUCTURA BSICA DE UN PROGRAMA. .. ... .. .. ... .. .... .. ....... .... ... ... ... .. ........ .. ..... 31
,.)
.. -
-..
2.7 PROCESO DE CREACIN DE UN EJECUTABLE. ..... ... ....... ......... .... .. ....... ......... .. .. 40
3. ESTRUCTURAS SECUENCIALES Y SELECTIVAS ........................................... 42
3.1 MODIFICADORES DE ACCESO (PUBLIC, PRIVA TE) . .. ... . .. ... ..... ..... .. .. .... .. ....... .. ... 42
3.2 ENTRADA Y SALIDA DE DATOS ....... .. ...... ....... .. ... .... .. .... ... .. ........ .. ........... ... ...... .. ... 42
3.3 INTERACCIN DE LA APLICACIN Y LA CLASE . ......... ..... ... .. ... ..... .. ... ..... .. .......... . 42
3.4 ESTRUCTURAS SELECTIVAS ... ... ... ... .... .... ..... ....... .... ... .. ..... ... ..... .... ..... ...... ...... .... .. 42
3.4.1 SELECTIVA SIMPLE .. ... ... ... .... ..... .... ............... ...... ............... ... .. .. .. .... .... ... ... ....... ... ... .. ... ..... 42
3.4.2 SELECTIVA DOBLE (SI/ DE OTRO MODO) Y COMPUESTA. .. ...... ..... ... ... ... .... .... .... ....... 45
3.4.3 SELECTIVA ANIDADA . ..... .. .. .... ..... .. ............... ...... ..... ..... ....... ...... ...... .... ....... ....... ... ... .. .. .... 50
3.4.4 SELECTIVA MLTIPLE .... ..... ....... .. ... .. .. ....... ... .. .. ...... .. .......... .. ...... ... ........ .. .... ........ .......... .. 54
. 3.4.5 SELECTIVA INTENTA (TRY/CATCH) .... .... ... ......................... ..... ... ....... ... : ... ...... .... .. .. ... ..... 58
4. ESTRUCTURAS DE REPETICION .. 60
Ejemplos de Contadores en Incremento y Decremento: .. ... .... .. ..... .... ... ....... .. .. .... .. .... ..... . 61
4.1 REPETIR MIENTRAS SELECTIVA SIMPLE (SI) . ...... ..... ... ... ...... .... ....... ................. .. 62
4.2 REPETIR HASTA (WHILE) ... .. ... .. .......... ..... .... ... ..... ...... .. ..... ....... .. ................... ...... .. . 65
4.3 REPETIR DESDE ...... .... ........ ....... ...... .......... .. .. .... ........... ..... ....... .... ..... ....... ... ...... .... 67
5. ARREGLOS .................... : .................................................................................... 71
5.1 ARREGLOS UNIDIMENSIONALES ..... .......... ... ....... .. ........ ....... ... .... .... .. ....... ..... ....... 71
5.2 ARREGLOS BIDIMENSIONALES ....... ........ ... .... .. ....... ...... ... ; .. ....... ........ ............ ... .... 80
BIBLIOGRAFIA ....................................................................................................... 86
. "'
)
. .
,.
fi
ii
1
1
1
1
1
1
1
1
1
1

(:;',')
Fundamentos de Programadn
FUNDAMENTOS DE PROGRAMACIN
1. TCNICAS DE DISEO DETALLADO.
Casi inconscientemente, cotidianamente los humanos efectuamos una serie de pasos,
procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema.
Esta serie de pasos, procedimientos o acciones, comenzamos a aplicarlos muy temprano en la
maana cuando, por ejemplo, decidimos tomar un bao, posteriormente cuando pensamos en
desayunar tambin seguimos una serie de pasos que nos permiten alcanzar un resultado especifico:
tomar el desayuno, la historia se repite innumerables veces durante el da. Continuamente seguimos
un conjunto de acciones que nos permiten alcanzar un resultado. Estamos en realidad aplicando un
Algoritmo para resolver un problema. ,.
DEFINICIN DE ALGORITMO.
Un Algoritmo es un conjunto ordenado y finito de pasos o instrucciones. que conducen a la solucin
de un problema. La naturaleza de los problemas vara con el mbito o con el contexto donde estn
planteados; as, existen problemas matemticos, qumicos, filosficos, etc. segn esto la naturaleza
de los algoritmos tambin es variada y no todos ellos pueden ser ejecutados por la computadora.
Aqu consideramos aquellos algoritmos que expresan soluciones usando reglas cuantitativas cuyas
instrucciones pueden ser introducidas en la computadora, a este tipo de algoritmos se denominan
Algoritmos Computacionales.
Formalmente definimos Algoritmo como "un conjunto de pasos, procedimientos o acciones que nos
permiten alcanzar un resultado o resolver un problema".
ALGORITMOS COTIDIANOS.
Muchas veces aplicamos el algoritmo de manera inadvertida, inconsciente o automticamente. Esto
generalmente se produce cuando el problema que tenemos enfrente lo hemos resuelto con
anterioridad un gran nmero de veces.
Supol)gamos que simplemente tenemos que abrir una puerta, lo hemos hecho tantas veces que
difcilmente nos ponemos a enumer9r los pasos para alcanzar este.objetivo, Jo hacemos de manera
automtica, lo mismo ocurre cuando 'queremos subirnos a un automvil, cuando tenemos que lustrar
nuestros zapatos, cuando nos el calzado, cuando nos vestimos, cuando tenemos
desafortunadamente que llanta de un automvil o, simplemente cuando queremos tomar
un vaso de agua. Todas estas situaciones son ejemplos de Algoritmos Cotidianos.
Ejemplo. Algoritmo para beber un vaso con agua tomando en cuenta que se tiene el agua en una
jarra y un vaso.
1. Inicio
2. Tomar el vaso _...
3. Tomar la jarra que contiene .ergua O'
4. Vertir el agua en el vaso
5. Dejar la jarra con el ag a en el lugaltfonde se tom
6. Beber el agua t>P-t.,
7. Dejar el vaso dellu se tom
8. Fin '
Elabor: l.l. Karina Aldea Romero Alvarado
Fundamentos de Programacin
La ejecucin de un algoritmo no debe implicar, normalmente ninguna decisin subjetiva, ni tampoco
debe de hacer preciso el uso de la intuicin ni de la creatividad, por tanto se puede considerar que
una receta de cocina es un algoritmo si describe precisamente la forma de preparar un cierto plato,
proporcionndonos las cantidades exactas que deben utilizarse y tambin instrucciones detalladas
acerca del tiempo que debe guisarse. Por otra parte, si se incluyen nociones vagas tales como
"poner sal y pimienta al gusto" entonces no se podrla llamar algoritmo.
Una aparente excepcin a esta regla es que admitiremos como algoritmos unos procedimientos que
se efectan elecciones aleatorias acerca de lo que hay que hacer en una situacin dada.
Ejemplo. Algoritmo para preparar una taza de caf, tomando en cuenta que se tiene agua caliente,
una taza, cuchara, caf, crema y azcar.
1. Inicio
2. Vertir agua caliente en la taza
3. Tomar con la cuchara el caf
4. Poner el caf en la taza
5. Quieres azcar?
Si.. Noj!
6. Tomar el azcar con la cuchara
7. Poner el azcar en la taza
8. Quieres crema?
Si J! No .11
9. Tomar la crema con la cuchara
10. Poner crema en la taza
11. Revolver
12. Fin
Nota: El algoritmo fue probado repetidas veces y siempre arroj el mismo resultado.
HISTORIA
La palabra "algoritmo" deriva del nombre latinizado del gran matemtico persa Mohamed lbn
Moussa Al Kow Rizmi (KhowrizmT), el cual recibe el crdito de haber implementado reglas para
realizar sumas, restas, multiplicaciones y divisiones de nmeros decimales paso a paso entre los
afios 800 y 825 su obra Quitab Al Jabr Al Mugabala, donde se recogla el sistema de numeracin
hind y el concepto del cero. Fue Fibonacci, el que tradujo su obra al latli1 y la inici con las
palabras: Algoritmi dio. Al pasarse el nombre allatln este se convirti en Algoritsmus; el cual con un .,
pequeno paso es algoritmo. Euclides, el gran matemtico griego (del siglo IV antes de Cristo) que
invent un mtodo para encontrar el mximo comn divisor de dos nmeros, se considera con Al
Kow Rizmi el otro gran padre de la ciencias de los algoritmos o algoritmia.
APLICACION DE LOS ALGORITMOS
Los algoritmos son independientes del lenguaje de programacin en que se expresan asf como de la
computadora que los ejecuta. En cada problema el algoritmo se puede expresar en un lenguaje
diferente de programacin y ejecutarse en una computadora distinta; sin embargo, el algoritmo ser
siempre el mismo. Asf, por ejemplo, en una analogfa con la vida diaria, una receta de un plato de
cocina se puede expresar en espaol , ingls o francs, pero cualquiera que sea el lenguaje, los
pasos para la elaboracin del plato se realizarn sin importar el cocinero.
En la ciencia de la computacin y en la programacin los algoritmos son ms importantes que los
lenguajes de programacin o las computadoras. Un lenguaje de programacin es solo un medio para
2
Elabor: L.l . Karina Aidee Romero Alvarado
. ~ f : ~
\ .... __;...,.....,.: ~
3.:!
: : ~
., ::
(
. .
::)
.. .
Fundamentos de Programacin
expresar un algoritmo y una computadora es solo un procesador para ejecutarlo. Tanto el lenguaje
de programacin como la computadora son los medios para obtener un fin: conseguir que el
algoritmo se ejecute y se efecte el proceso correspondiente .

Dada la importancia del algoritmo en la ciencia de la computacin, un aspecto muy importante ser el
diseo del algoritmo.
El diseo de la mayora de los algoritmos requiere creatividad y conocimientos profundos. En
esencia, todo problema se puede describir por medio de un algoritmo.
1.1 DISEO ALGORTMICO.
CARACTERISTICAS DE LOS ALGORITMOS.
. .
Preciso/Definido.- Los pasos a seguir en el algoritmo deben ser definidos claramente. Un
algoritmo debe ser preciso e indicar el orden de realizacin de cada paso. En otras paiabras cada
paso de un algoritmo debe ser definido en forma precisa, estableciendo las acciones que van a
efectuar clara y rigurosamente en cada caso. .
Determinacin.- El algoritmo, dado un conjunto de datos idnticos de entrada, siempre debe
arrojar los mismos resultados. Un algoritmo debe estar definido. Si se sigue un algoritmo dos
veces, se debe obtener el mismo resultado cada vez.
Finitud.- El algoritmo, independientemente de la complejidad del mismo, siempre debe ser de
longitud finita. Si se sigue un algoritmo, se debe terminar en algn momento; o sea debe tener un
nmero finito de pasos.
Efectivo: Generalmente, tambin se espera que un algoritmo sea efectivo. Esto significa que
todas las operaciones a ser realizadas en el algoritmo deben ser lo suficientemente bsicas de
modo que puedan en principio ser llevadas a cabo en forma exacta y en un perodo de tiempo
finito por una persona usando lpiz y papel (rutear).
PARTES QUE DESCRIBE UN ALGORITMO.
Datos de entrada.- Representa la operacin o accin que permite el ingreso de los datos del
problema. El algoritmo tiene cero o ms entradas, es decir cantidades que se entregan
inicialmente al algoritmo antes de su ejecucin.
Procesamiento de los datos.- Representa la operacin o conjunto de operaciones secuenciales,
cuyo objetivo es obtener la solucin del problema. Aqul incluye instrucciones aritmtico-lgicas,
selectivas y repetitivas.
Salida de resultados.- Representa una operacin o conjunto de operaciones que permiten
comunicar al exterior el o los resultados alcanzados. Un algoritmo tiene una o ms salidas, es
decir cantidades que tiene una relacin especifica respecto a las entradas.
Algoritmo
1 1
Datos de Procesamiento Salida de
Entrada de los Datos Resultados
3
Elabor: U . Karina Aidee Romero Alvarado
Fundamentos de Programadn
1.1.1 ELEMENTOS Y REGLAS DE LA REPRESENTACIN GRFICA DE LOS ALGORITMOS
ANLISIS DE LOS DATOS
Se debe especificar con qu datos se cuentan y cuales se pretenden generar para asl determinar los
procesos que se debern realizar.
MODELO DE SOLUCIN.
Para poder resolver claramente el problema se puede hacer uso de un modelo de solucin donde se
desglosan tres partes muy importantes en la solucin del problema: DATOS DE ENTRADA
PROCESO y DATOS DE SALIDA. '
DATOS DE ENTRADA PROCESO DATOS DE SALIDA
Datos que se necesitan para Procesos para solucionar el Datos que sern la salida, o
resolver el problema. problema, por ejemplo los sea, los resultados.
clculos.
Ejemplo. Calcular el rea de un tringulo.
DATOS DE ENTRADA ' PROCESO DATOS DE SALIDA
Base Area = Base * Altura Are a
Altura 2
Ejercicios
) 1. Si un automvil va a 60 millaslhr y desea recorrer una distancia de 80 km cunto tiempo le
tomar recorrer dicha distancia?
t 2. Calcular el rea de un circulo.
1. 3. Calcular el rea de_un trapecio.
4. Dar entrada un nombre y desplegarlo.
5. Calcular el promedio de tres calificaciones.
6. Convertir pesos a dlares.
7. Convertir dlares a pesos.
8. Convertir millas a kilmetros.
9. Convertir libras a kilos.
10. Desplegar Juan.
TIPOS DE DATOS
El primer objetivo de toda computadora es el manejo de la informacin o datos. Estos datos pueden
ser cifras de ventas de un supermercado o las calificaciones de una clase. Un dato es la expresin
general que describe los objetos con los cuales opera una computadora. La mayorla de. las
computadoras pueden trabajar con varios tipos (modos) de datos. ( os algoritmos y los programas
correspondientes trabajan sobre datos.
La accin de las instrucciones ejecutables de las computadoras se refleja en cambios en los valores
de las partidas de datos. Los datos de entrada se transforman por el algoritmo, despus de las
etapas intermedias, en datos de salida.
4
Elabor: L.l. Karina Aidee Romero Alvaradn
~
t: .;.
(
.
.. '',( .
;.: ..
1
'f, . <
~
( ;
~
Fundamentos de Programacin
En el proceso de solucin de problemas, el diseo de la estructura de datos es tan importante como
el diseo del algoritmo.
Los tipos de datos son:
Numricos (Enteros y reales) .
Lgicos (Boolean).
Caracter
DATOS NUMRICOS.
El dato numrico es el conjunto de los valores numricos. Estos pueden representarse en dos formas
distintas:
Enteros.- El tipo entero es un subconjunto finito de los nmeros enteros. Los enteros son
nmeros com-pletos, no tienen componentes fraccionarios o decimales y puei:len ser negativos o
positivos. Los nmeros enteros mximos y mnimos de una computadora suelen ser valores
entre -32,768 y 32,767. Los nmeros enteros fuera de este rango no se suelen representar como
enteros, sino como reales. ,
Reales.- Consiste en un subconjunto de los nmeros reales. Los nmeros reales siempre tienen
un punto decimal y pueden ser positivos o negativos. Un nmero real consta de un entero y una
parte decimal. ~
Nota: Cada lenguaje de programacin tiene diferentes tipos para manejar datos numricos y
alfanumricos.
DATOS LGICOS (BOLEANOS).
El tipo lgico, tambin denominado booleano, es aquel dato que solo puede tomar uno de dos
valores: cierto o verdadero (true) y falso (false). Este tipo de datos se utiliza para representar las
alternativas (si/no) a determinadas condiciones. Por ejemplo, cuando se pide si un valor entero es
par, la respuesta ser verdadera o falsa, segn sea par o impar.
DATOS TIPO CARCTER.
Es el conjunto finito y ordenado de caracteres que la computadora reconoce. La mayora de los
caracteres que las computadoras reconocen son:
Caracteres alfabticos: (A, B, C, .. . , Z) (a, b, e, ... , z)
Caracteres numricos: (1, 2, .. . , 9, O)
Caracteres especiales: (+, -, *, /, " . . , ;, <, >, $, .. . )
En resumen:
Lgico
5
Elabor: U . Karina Aidee Romero Alvarado
Fundamentos de Programacin
OPERADORES Y OPERANDOS.
Los operadores son elementos que se relacionan de forma diferente, los valores de una
0
mas
variables y/o constantes, es decir; los operadores nos permiten manipular valores .
. OPERADORES ARITMTICOS.
Los operadores aritmticos permiten la realizacin de operaciones matemticas con los valores
(variables y constantes). Los operadores aritmticos pueden ser utilizados con tipos de datos enteros
o reales. Si ambos son enteros, el resultado es entero; si alguno de ellos es real, el resultado es real.
O_perador Funcin
"
Exponente
* Multiplicacin
1 Divisin
+ Suma
-
Resta
OPERADORES RELACIONALES.
Se utilizan para establecer una relacin entre dos valores, compara estos valores entre si; y esta
comparacin produce un resultado de certeza o falsedad (verdadero o falso).
los operadores relacionales comparan valores del mismo tipo (numricos o cadenas) y tienen el
mismo nivel de prioridad en su evaluacin. Los operadores relacionales tienen menor prioridad que
los aritmticos.
Operador Funcin
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que
= Igual
<> Diferente
OPERADORES LGICOS.
Estos operadores se utilizan para establecer relaciones entre valores lgicos y pueden ser resultado
de una expresin relacional.
Operador Condicin 1 Condicin 2 Evaluacin
V V V
y
F V F
V F F
F F F
V V V
F V V
o
V F V
F F F
No
V F
F V
6
Elabor: U . Karina Aidee Romero Alvarado
., ,
' :
~ 1
. . f< ' l
- ~ t
~ 1
......
B
D

. .
)
Fundamentos de Programacin
EXPRESIONES.
Las expresiones son combinaciones de constantes, variables, smbolos de operacin,
parntesis y nombres de funciones especiales. Por ejemplo: a+(b+3)/c.
Cada expresin toma un valor que se determina tomando los valores de las variables y constantes
implicadas y la ejecucin de las operaciones indicadas.
Una expresin consta de operadores y operandos, segn sea el tipo de datos que manipulan, se
clasifican las expresiones en:



Aritmticas
Relacionales
Lgicas
ASIGNACIONES
La operacin de asignacin es el modo de darle valores a una variable. La operacin de asignacin
se representa con el smbolo u El formato general de una operacin de asignacin es:
Nombre de la variable {-- expresin
La flecha (operador de asignacin) se utiliza para evitar ambigedades y el de = (igual) se usa solo
para la igualdad. La operacin de asignacin A 5; significa que la variable A se le ha asignado el
valor 5. La accin de asignar es destructiva ya que el valor que tuviera la variable antes de la
asignacin se pierde y se reemplaza por el nuevo valor; as, en la secuencia de operaciones

134

cuando stas se ejecutan, el valor ltimo que toma A ser 5 (los valores 25 y 134 han desaparecido).
La manera de asignar valores a una variable alfabtica es diferente que las numricas, ya que no se
da el valor directo, por lo que se debe hacer lo siguiente:
"Tijuana"
NOMBRE
N (/ti\ (- W O .M B VE ,. -
IDENTIFICADORES COMO LOCALIDADES DE MEMORIA.
Los algoritmos y programas de computadora contienen ciertos valores que no deben cambiar durante
la ejecucin del programa. Tales valores se llaman constantes.
Existen otros valores que cambiarn durante la ejecucin del programa o corrida de escritorio
(tambin llamada prueba de escritorio) del algoritmo; a estos valores se les llama variables.
7
Elabor: l.l . Karina Aidee Romero Alvarado
Fundamentos de Programacin
CONSTANTES.
Son una partida de datos que permanecen sin cambios durante todo el desarrollo del algoritmo
0
durante la ejecucin del programa. Por ejemplo, si tenemos la frmula para resolver el rea de un
tringulo:
A=bxh ;
2
'
independientemente de que los valores de la base y la altura cambien, segn la dimensin del
tringulo, siempre se dividir entre 2, por lo tanto el 2 es una constante ya que nunca cambia.
VARIABLES.
Son un objeto o partida de datos cuyo valor puede cambiar durante el desarrollo del algoritmo
0
ejecucin del programa. Ahora, regresando al ejemplo de la frmula para resolver el rea de un
tringulo, si las dimensiones de ste cambian por lo tanto el valor de la base (b) y de la altura (h)
varia. Entonces podemos decir que la base y la altura son variables.
IDENTIFICADORES.
Son los nombres que reciben las variables y algunas constantes, suelen constar de varios caracteres
alfanumricos, de los cuales primero suele ser una letra.
Reglas Para Asignar Identificadores
Siempre debern iniciar con una letra.
Pueden contener letras y nmeros.
No se permiten caracteres especiales. El nico permitido es " _ ".
No debe haber espacios en blanco.
Deben ser significativos y tener relacin con el objeto que representan.
Ejemplos
A125 NOMBRE DIRECCION NO_CONTROL PRECIO
NOMBRE
N.O_ CONTROL
PRECIO
Puede representar el nombre de una persona.
Puede representar el nmero de control de alumno.
Puede representar el precio de un articulo.
Se puede asignar nombre a algunas constantes tlpicas utilizadas en clculos matemticos,
financieros, etc., como un nombre para el valor den, Pi= 3.1416.
Para concluir, imaginemos que la siguiente figura es la memoria principal de la computadora, y que
en ella se encuentran almacenadas en diferentes localidades (direcciones) las variables A, b, h Y la
constante Pi:
8
Elabor: L.l . Karina Aidee Romero Alvarado
.
1
1
. !
/.- ..
~ /
Fundamentos de Programacin
Identificador
~
... -- ...
'
,
'
~ ..... --_
,
'
~ ~
, ~
,
,
'
,
~
~
' ,
'
,
'
'
,
____ ...
,
'
,
'
A Pi
1
1
1
1
1
1
1
1
h
'
'
'
'
256
'
1024
'
'
'
'
1
'
1
'
'
h
,
\ ,
5 2
MEMORIA
.
~
~
~
,
PRINCIPAL
,
-,
~
128
,,
---
~
1
,
\ ,,
~
~
'
'
, ,
____ ...
, __ ,
Variable Localidad Constante
(direccin)
Como se puede observar, una variable es el rea para almacenar en la memoria y su identificador es
la forma como nosotros podemos acceder a ella, ya que ste ltimo tiene ligada la direccin. Una
constante puede tener tambin ligado un identificador, como ya se mencion, y por medio de ste
tambin se puede llegar hasta ella.
Ejercicios
De la siguiente lista de posibles nombres para variables y/o constantes marca con una ( X ) los
incorrectos y con una ( ..) los correctos, de acuerdo a las reglas vistas sobre asignacin de
identificadores.
( X) No. Control ( / ) /VA
( I J SdoBr:uto
( r/) NoContro/ ( '/ ) /. V.A ( XJ Sdo-Bruto
1'
( v' ) No_ Control ('! )iva ( \ ) Sueldo Bruto
( f..) No Control
/
() I_ V_A (< ) Sdo.Bruto
(X} #Control (X ) 1va ( Sue/do_Bruto
9
Elabor: L.l . Karina Aidee Romero Alvaraao
Fundamentos de Programacin
DIAGRAMAS DE FLUJO
Representacin grfica para definicin, anlisis o solucin de un problema en la que los slmbolos se
utilizan para representar operaciones, datos, flujos, etc.
Tambin se puede decir que es la representacin detallada en forma grfica de como deben
realizarse los pasos en la computadora para producir resultados. Esta representacin grfica se da
cuando varios slmbolos (que indican diferentes procesos en la computadora), .se relacionan entre si
mediante lineas que indican el orden en que se deben ejecutar los procesos. Los slmbolos utilizados
han sido normalizados por el instituto norteamericano de normalizacin (ANSI).
Esta es una de las tcnicas de representacin de algoritmos ms antigua y a la vez ms utilizada. Es
la representacin grfica para definicin, anlisis o solucin de un problema en la que los slmbolos
se utilizan para representar operaciones, datos, flujos, etc. Un diagrama de flujo utiliza slmbolos
estndar mostrados a continuacin:
srmbolos
D
Funcin
Inicio/Fin. Representa el comienzo <<inicio y el final fin, de un
programa. Puede representar tambin una parada o interrupcin
programada que sea necesario realizar en un programa.
Entrada/Salida. Cualquier tipo de introduccin de datos en la memoria
desde los perifricos, entrada. o registro de la informacin procesada
en un perifrico, <<salida.
Proceso. Cualquier tipo de operacin que pueda originar cambio de valor,
formato o posicin de la informacin almacenada en memoria, operaciones
aritmticas, de transferencia, etc.
Impresora. Salida por impresora.
Pantalla. Salida por pantalla.
Decisin. Operaciones lgicas o de comparacin entre datos y en funcin
del resultado de la misma determina cul de los distintos caminos
alternativos del programa se debe seguir.
Decisin mltiple. En funcin del resultado de la comparacin se seguir
uno de los diferentes caminos de acuerdo con dicho resultado.
Ciclo For. Representa el ciclo de repeticin For.
10
Elabor: U . Karina Aidee Romero Alvarado
i
1
1
1
...,
,,
l
o

o
1
1
'1
!;
.. ..
: .. i
~
Fundamentos de Programacin
Smbolos Funcin
Conector en la misma pgina. Sirve para enlazar dos partes cualesquiera
o
de un diagrama en la misma pgina.
Conector en diferente pgina. Sfrve para enlazar dos partes cualesquiera
o
de un diagrama en diferente pgina.
-.
Indicador de direccin o lnea de flujo. Indica el sentido de ejecucin de las
operaciones.
Llamada a subrutina. Una subrutina es un mdulo independiente del
D
programa principal, ~ u e recibe una entrada procedete de dicho programa,
realiza una tarea determinada y regresa, al terminar, al programa principal.
RECOMENDACIONES PARA EL DISEO DE DIAGRAMAS DE FLUJO






Se deben se usar solamente lneas de flujo horizontales y/o verticales .
Se debe evitar el cruce de lineas utilizando los conectores .
Se deben usar conectores solo cuando sea necesario .
No deberi quedar lneas de flujo sin conectar .
Se deben trazar los smbolos de manera que se puedan leer de arriba hacia abajo y de izquierda
a derecha.
Todo texto escrito dentro de un smbolo deber ser escrito claramente, evitando el uso de
muchas palabras.
La siguiente figura muestra un ejemplo de un algoritmo en diagrama de flujo que tiene una entrada,
un proceso y una salida.
Inicio
11
Elabor: L.t. Karina Aidee Romero Alvarado
Fundamentos de Programacin
PSEUDOCDIGO
Es la forma narrativa de desarrollar un algoritmo. Mezcla instrucciones de computadora y lenguaje
natural (espaol o ingls) utilizados para expresar un algoritmo.
Tambiti se conoce como, mezcla de lenguaje de programacin y espaol (o ingles o cualquier otro
idioma) que se emplea, dentro de la programacin estructurada, para realizar el diseo de un
programa. En esencia, el pseudocdigo se puede definir como un lenguaje de especificaciones de
algoritmos. Es la representacin narrativa de los pasos que debe seguir un algoritmo para dar
solucin a un problema determinado. El pseudocdigo utiliza palabras que indican el proceso a
realizar.
El siguiente pseudocdigo hace referencia al algoritmo en diagrama de flujo de la figura anterior.
1.-lnicio
2.- Leer Dato
3.- Procesar Dato
4.- Dar Salida a Dato
5.- Fin
1.1.2 IMPLEMENTACIN DE ALGORITMOS SECUENCIALES (UTILIZANDO NOTACIN
ALGEBRAICA).
Como ya se mencion el pseudocdigo es la representacin narrativa de un algoritmo y el diagrama
de flujo la parte grfica. A continuacin se ver la solucin de problemas por medio de la
representacin de un algoritmo en pseudocdigo.
Las operaciones que realizan las computadoras (algoritmos y programas) requieren para ser tiles la
entrada de datos necesarios para ejecutar las operaciones que posteriormente se convertirn en
resultados, es decir, en salidas.
Las operaciones de entrada permiten leer determinados valores y asignarlos a determinadas
variables . . Esta entrada se conoce como operacin de lectura.
En la escritura de algoritmos la accin de lectura se presenta por el formato siguiente:
Leer (variable de entrada)
Asf, por ejemplo:
Leer A (Representa la lectura de un valor que se asignar a la variable A).
SALIDA
La operacin de salida se denomina escritura. En la escritura de algoritmos la accin y escritura se
presenta por los formatos siguientes:
12
Elabor: l.l . Karina Aldee Romero Alvarado
. .:
.. .;

1
1

1
. '.::)

Fundamentos de Programacin
Asf , por ejemplo:
Escribir A
Imprimir A
Escribir o Imprimir (variable de salida)
(Visualiza en pantalla el valor contenido en A) .
(Imprime el valor contenido en A) .
..
. Algoritmo que imprima el nombre "Juan". (Se utiliza constante).
Pseudocdigo
1.-lnicio
2.- Imprimir" Juan"
3.- Fin
Diagrama de flujo
'.>
Nota: En este algoritmo ya se conoca el nombre de la persona (por lo tanto era una constante), y
tambin la operacin que deba hacer sot>re l. Se utiliz pseudocdigo ya que para dar la
salida se indic "imprimir". Adems cuando se da salida a un valor especfico alfabtico, ste
deber ir entre comillas.
DECLARACION DE VARIABLES Dlr n o1r1bre..
Cuando se va a utilizar una variable en un algoritmo o programa se debe especificar que nombre
recibir y el tipo de dato que contendr, a este procedimiento se le llama declaracin de variables. La
declaracin en algoritmos ser asignar a las variables numricas un O (cero) y a las alfabticas
(espacio entre comillas).
ld,-e./j_
NOMBRE+- ""
PRECIO+- O
(para alfabticos)
(para numricas)
.. 4- ., .
que imprima el nombre de cualquier persona. (Se utiliza variable) .
1.- Inicio
2.- Nom +- " "
3.- Leer Nom
4.-lmprimir Nom
5.- Fin
13
Elabor: U . Karina Aidee Romero Alvarado
Fundamentos de Programacin
Nota: En este algoritmo no se conocla el nombre de la persona por lo tanto hubo necesidad de
utilizar una variable para que almacenara cualquier nombre que se leyera. Como se puede
observar se hizo la declaracin correspondiente para una variable alfabtica. Se di la
instruccin de leer en pseudocdigo. Adems, en el momento de leer e imprimir la variable
Nom no se puso entre comillas, ya que no se desea imprimir la palabra "Nom", sino el valor
que contiene (en este caso el nombre que se haya leido) .
. Ejemplo. Algoritmo que imprima el nombre de cualquier Ciudad. (Se agregan letreros para ayudar al
'usuario posterior del algoritmo).
1.-lnicio
2.- NomCiu
3.-leer "Ciudad: ", NomCiu
4.- Imprimir NomCiu
5.- Fin
Nota: En este algoritmo se agregaron letreros para indicarle al usuario qu se desea que
introduzca. En ocasiones no es suficiente con poner el nombre de la variable, ya que su
nombre a veces no nos dice mucho, sino que adems es necesario de insertar letreros (que
irn entre comillas) que nos especifiquen el dato a insertar. Como en el ejercicio 5 no nos
dice si es nombre de persona o de ciudad el que desea, pero ahora en si lo sabemos.
OPERACIONES ARITMETICAS
No solamente se presentan problemas para solo capturar e imprimir, sino tambin para hacer
clculos aritmticos. Las operaciones aritmticas son anlogas a las frmulas matemticas. Las
variables y constantes son numricas (real o entera) y las operaciones son las aritmticas. A
continuacin se enumeran los operadores disponibles.
OPERADORES ARITMTICOS
Ope.rador Significado Tipo de Tipo de

operandos resultado '
A
Exponente Entero o real Entero o real 1

Multiplicacin Entero o real Entero o real 2
1 Divisin Real Real 2
+ Suma Entero o real Entero o real 3
- Resta Entero o real Entero o real 3
Reglas de prioridad
14
Elabor: Ll . Karina Aidee Romero Alvarado
.;
u

' .
. '
: i
: .....
1
. :'\
Fundamentos de Programacin
Las operaciones que tienen dos o ms operandos requieren reglas matemticas que permitan
determinar el orden de las operaciones, se denominan reglas de prioridad o precedencia y son:
1. Las operaciones que estn cerradas entre parntesis se evalan primero. Si existen diferentes
parntesis anidados (interiores unos a otros), las expresiones ms internas se evalan primero.
2. Las operaciones aritmticas dentro de una expresin suelen seguir el orden de prioridad
especificado en la tabla.
3. En caso de coincidir varios operandos de igual prioridad en una expresin o subexpresin
encerrada entre parntesis, el orden de prioridad en este caso es de izquierda a derecha.
Ejemplos
Cul es el resultado de las siguientes expresiones?
a) 3 + 6 * 14 b) 2 "3 * 5 e) ( 5 + 4) /3
3 + 6 * 14 2 "3*5 (5+4)/3
-y- ,_
-y-
-y-
3+ 84 8 *5 9 /3
-y- -y- --y-
87 40 3
Ejercicio: Obtener los resultados de las expresiones:
a) -4 * 7 + 2 "3 1 4 - 5 =
b) 12+3*7+5*4 =
e) 6 * ( 3 + 2 ) 1 2 " 2 =
Asignacin aritmtica
-31
53
7.5
Las expresiones en las operaciones de asignacin son aritmticas, de tal manera que cuando se
lleva a cabo alguna expresin, el resultado de sta deber asignarse a una variable.
TOTAL+- 8 + 4 (El valor que almacenar TOTAL ser 12)
(A la variable A se le asigna el valor de 2)
(A la variable B se le asigna el valor de 7)
(A la variable C se le asigna el valor resultante
de la suma de A y B, que serfa 9)
Ejemplo. Algoritmo que suma 7 + 4, se le asigna el resultado a una variable y se imprime.
1.- Inicio
2.- SUMA+- O
3.- SUMA +- 7 + 4
4.- Imprimir SUMA
5.- Fin
15
Elabor: L.l. Karina Aidee Romero Alvarado
Fundamentos de Programacin
Nota: En este algoritmo se decidi poner el nombre de SUMA para la variable que guardarla el
resultado. Se hizo la declaracin O), se llevo a cabo el proceso 7 + 4) y
por ltimo la impresin. El resultado de SUMA es de 11.
Ejemplo. Algoritmo que suma dos nmeros cualquiera, se le asigna el resultado a una variable y se
imprime.
1.- Inicio
2.- O; N1 N2
3.- Leer "Dame Nmero 1 :", N1
4.- Leer "Dame Nmero 2:", N2
5.- Suma N1 + N2
6.- Imprimir Suma
7.- Fin
Suma N1

Nota: Aqul no se conoclan los valores de los dos nmeros, por lo tanto, se tuvieron que pedir y para
poderlo hacer se utilizaron dos variables (N1 y N2 o cualquier otro nombre que se desee), una
para cada nmero. Se hizo la declaracin de las tres variables a usar (para los dos nmeros y
otra para el resultado), se capturaron los valores de los dos nmeros, se hizo el clculo (Suma
N1 + N2) y por ltimo la impresin del resultado (Suma), que depender de los valores que
se capturen (N1 y N2).
Ejercicios
.
: "Desarrollar pseudocdigo y diagrama de flujo de los ejercicios del 1 al 1 O de la pgina 4 que se
analizaron con el modelo de solucin.
: Algoritmo que permita calcular el total a pagar por un cliente en la compra de una computadora.
Ya que el cliente es un "cliente preferente" recibir el 20% de descuento. EIIVA es del10%.
: Una concesionaria desea un algoritmo que le permita emitir la factura para un cliente en la
compra de un automvil. Los costos a considerar son: Precio de fbrica, 20% de ganancia para
la concesionaria, 3% de comisin para el vendedor y el 15% de IVA. La factura deber incluir:
Descripcin del automvil, Subtotal, IVA y Total.
16
Elabor: L.l . Karina Aidee Romero Alvarado
' .
y '
: .
1
. .......
\

Fundamentos de Programacin
1.2 DISEO ALGORTMICO DE LAS FUNCIONES
Un mdulo es un segmento, rutina, subrutina, subalgoritmo o procedimiento, que puede definirse
dentro de un algoritmo con el fin de ejecutar una tarea especfica y puede ser llamado o invocado
desde el algoritmo principal cuando sea necesario.
Como ya se mencion, los subprogramas (algunas veces llamados mdulos) son bloques de
instrucciones independientes que realizan una tarea especifica y que pueden ser reutilizados varias
veces durante la ejecucin de un programa.
Estos subprogramas pueden ser invocados desde cualquier parte de programa y en cualquier
momento, ya sea desde el principal o desde cualquier otro subprograma. Cuando terminan su bloque
de instrucciones regresan a la parte del programa desde donde fueron llamados.
Programa
Subprograma1 Subprograma2 Subprograma3
Aqul el Subprograma1 puede llamar al Subprograma2 y este a su vez al Subprograma3, o en
cualquier otro orden.
Para poder iniciar con el funcionamiento de los subprogramas, primeramente es necesario definir los
siguientes conceptos que juegan un papel muy importante en el tema:
Variables locales
Parmetros
VARIABLES LOCALES
Son aquellas variables que son declaradas dentro de un subprograma y solamente ah tienen
validez, de tal manera que si se hiciera referencia de ellas en otro subprograma sera incorrecto
porque para ste ltimo esas variables no exisleri.
Programa
Sub1( )

+4
Llamada a Sub2 \ '\
Sub2 ( )


lmprimirB
En la figura anterior en el Sub1 se declar la variable A localmente (ya que se hizo dentro del
subprograma) y despus se le asign la suma de 2 + 4 para despus hacer la llamada al Sub2 .
Dentro del Sub2 se declar una nueva variable B para posteriormente guardar el resultado de sumar
17
Elabor: U . Karina Aidee Romero Alvarado
Fundamentos de Programacin
A + 5 y asl imprimirlo. Pensarlamos que el resultado que imprimirla es 11 ya que supuestamente A =
6 y se le suma 5, pero no es asl. La razn es que para el Sub2 la variable A no existe, por lo tanto
imprimirla 5.
VARIABLES GLOBALES
Son aquellas variables que son declaradas en la parte global del programa y estn disponibles en
todos tos subprogramas.
Programa
,, ..

(Sub2 ( )
r

Sub1
i

\
/
Llamada a
J
B
'""'-
;
/
En la figura anterior se declar la variable A globalmente (ya que se hizo fuera de cualquier
subprograma). Dentro de Sub1 se le asign a la variable A la suma de 2 + 4 para despus hacer la
llamada al Sub2. Dentro del Sub2 se declar una nueva variable B localmente para posteriormente
guardar el resultado de sumar A+ 5 y asl imprimirlo. Aqul el resultado que imprimirla ser 11 ya que
A = 6 y se te suma 5. La razn es que para el Sub2 la variable A si existe porque fue declarada
globalmente.
Nota: Cuando se trata de lenguajes de programacin, si es utilizada alguna variable que no haya sido
declarada local o globalmente, el programa marca error.
PARMETROS
Son aquellos que se envlan de un subprograma a otro. Los parmetros se utilizan cuando se
desean compartir valores 'entre algunos subprogramas pero no en todos. Si se declarara una variable
dentro de un subprograma solo es vlida ahl y si se hiciera globalmente sera vlida en todos aunque
no sea eso lo que se quiere. Por lo tanto los parmetros vienen a resolver este problema ya que se
puede elegir qu valor pasar y hacia qu S1Jbprograma enviarlo. Esto se puede lograr al momento de
hacer la llamada.
Programa
Sub1 l )


Llamada a Sub2 (A)
Sub2(A1)

A1 + s
Imprimir 8
En la figura anterior en el Sub1 se declar la variable A localmente (ya que se hizo dentro del
subprograma) y despus se le asign la suma de 2 + 4 para despus hacer la llamada al Sub2
enviando como parmetro a la variable A (de hecho lo que envla es el valor, o sea el 6). Dentro del
18
Elabor: L.l . Karina Aidee Romero Alvarado

1
. ..

. .
. '

'1

Fundamentos de Programacin
Sub2 se recibe el parmetro (o sea, el 6), se declar una nueva variable B para posteriormente
guardar el resultado de sumar A1 + 5 y as imprimirlo. El resultado que imprimir ser 11 ya que el
valor del parmetro que recibi en A1 = 6. La razn es que para el Sub2 la variable A1 recibi el
valor que tena la variable A dentro del Sub1 .
----- - - -------------
iii IMPORTANTE!!!

No hay que olvidar que el control del programa se pasa al subprograma que fue llamado en ese
momento y, en el instante que termine con las instrucciones dentro de l, el control regresar a la
instruccin desde donde fue invocado y as continua con la siguiente instruccin.
CLASIFICACION DE LOS MODULOS
Como ya se mencion, cualquier subprograma o mdulo es una secuencia nombrada de
- instrucciones que se ejecutan como unidad. Los mdulos se clasifican en:
Procedimientos
Funciones
FUNCIONES.
Son subprogramas o mdulos que realizan una tarea especfica y que pueden ser invocados desde
cualquier parte del programa enviando valores por medio de parmetros, y que tienen la capacidad
de devolvervalores explcitos.
La funcin es una estructura autnoma. La diferencia radica en que la funcin se relaciona
especificando su nombre en una expresin, como si fuera una variable ordinaria de tipo simple. Las
funciones se dividen en estndares y definidas por el usuario.
Funciones Definidas Por El Usuario
Son funciones que puede definirlas el programador con el propsito de ejecutar alguna funcin
especifica, y que por lo general se usan cuando se trata de hacer algn clculo que ser requerido
en varias ocasiones en la parte principal del algoritmo.


El nombre de la funcin puede estar seguido de uno o mas actuales encerrados entre
parntesis. Por lo general transfieren datos a parmetros tipo valor.
PROCEDIMIENTOS.
Son subprogramas que pueden ser invocados desde cualquier parte del programa enviando valores
por medio de parmetros, pero no devuelven valores explcitos, sino teJ!dra que hacerlo por medio
de los mismos parmetros.
19
Elabor.: U . Karina Aidee Romero Alvarado
OPERACIN DE MODULOS Y SUS PARMETROS.
PROCEDIMIENTOS.
Fundamentos de Programacin
Ejemplo2. Calcular la suma de dos n(Jmeros utilizando un procedimiento para la suma y despliegue
de resultado.
a) Pseudocdigo
Nombre_Procedimiento(Lista de parmetros)
Por ejemplo:
1.- Inicio
2.- N1f-0; N2f-0
3.- Leer"Numero 1:", N1
4.- Leer "Numero 2:", N2
5.- Llamar Suma(N1,N2)
6.- Fin
b) Diagrama de Flujo
Nombre Procedimiento
(Lista de parmetros)
Por Ejemplo:
Inicio
Suma(N1 ,N2)
20
Elabor L.l. Karna Aidee Romero Alvarado
'
( .
. .:
:.. ii
.. .;.::; ...
l
J
.: :_._ ..
-- .... . \
.,
.:...:/
...:.-::"
Fundamentos de Programacin
Sintaxis para la definicin de un procedimiento
a) Pseudocdigo
Procedimiento Nombre_Procedimiento (Lista de parmetros recibidos)
<bloque de isentencias>
Fin Procedimientp
Por ejemplo:
1.- Procedimiento Suma(Num1+-0,Num2+-0)

3.- Sum Num1 + Num2
4.--lmprimir Sum
5.- Fin Procedimiento
b) Diagrama de flujo
Ejericicios
Suma(Num 1 +-0, Num2+-0)
Fin Procedimiento
! Algoritmo que capture los datos de un alumno en un subprograma y los imprima en otro. Utilizar
pase de parmetros.
! Algoritmo que capture en un procedimiento el nombre del empleado, en otro las horas trabajadas
y sueldo por hora, en un tercero calcular su sueldo, y por ltimo en otro imprima todos los datos
incluyendo el sueldo final.
21
Elabor: L.l . Karina Aidee Romero Alvarado
Fundamentos de Programacin
FUNCIONES.
Ejemplo3. Calcular la suma de dos nmeros en el principal y utilizar una funcin para la y
despliegue de resultado en el mismo principal.
Sintaxis para la llamada a una Funcin
a) Pseudocdigo
<variable que recibir el <Nombre_Funcin> (<Lista de parmetros>)
Por ejemplo:
1.- Inicio
2.- O; N2 O
3.- Leer"Numero1 : , N1
4.- Leer "Numero2: ", N2
5.- Res N1, N2)
6.- Imprimir Res
7.- Fin
b) Diagrama de flujo
_Procedimiento
(Lista de parmetros)
Por Ejemplo:
"Nu(l1ero1 : ", N1
"Numero2: ", N2
Res
22
Elabor: L.l . Karina Aidee Romero Alvarado
'.
ti
1

Fundamentos de Programacin
Sintaxis para la definicin de una Funcin en pseudocdigo
a) Pseudocdigo
Funcion <Nombre_Funcin> (<Usta de parmetros <Tipo>
<bloque de sentencias>
Fin Funcion
Como puedes observar, a la funcin se le debe definir un tipo, esto es por que regresar un valor en
ella.
Por ejemplo:
Funcion Suma(Numh-0, Num2+--0)
Suma Num1 + Num2
Fin Funcion
b) Diagrama de flujo
Suma(Num1+--0,Num2+--0)
Ejercicios
! Algoritmo que capture base y altura en el principal, postefiormente invoque una funcin y calcule
el rea del tringulo, finalmente imprima el resultado en el mismo principal.
! Sumar los nmeros desde el 1 por medio de una funcin que se llame asl misma y deje de
hacerlo hasta que la suma sea mayor a 1 OO. (Recursividad)
CRITERIO DE MODULARIZACION
CUANDO ES TIL LA MODULARIZACIN ?
Este enfoque de segmentacin o modularizacin es til en dos casos :
1. Cuando existe un grupo de sentencias o una tarea especfica que deba ejecutarse en ms de
una ocasin.
2. Cuando un problema es complejo o extenso, la solucin se "divide" o "segmenta" en mdulos que
ejecutan "partes" o tareas especificas . Dicha solucin se organiza de forma similar a como lo
hacen las empresas cuando se estructuran con base en las funciones para realizar sus
23
Elabor: l.l. Karina Aidee Romero Alvarado
Fundamentos de Programacin
actividades ; en otras palabras, el trabajo se divide en partes que sean fcilmente manejables y
que , lgicamente, puedan ser separadas; asl, cada una de estas partes se dedica a ejecutar
una determinada tarea, lo que redundar en una mayor concentracin , entendimiento y
capacidad de solucin a la hora de disenar la lgica de cada una de estas. Dichas partes son
mdulos o segmentos del algoritmo, algunos de ellos son los mdulos directivos o de control, que
son los que se encargarn de distribuir el trabajo de los dems mdulos. De esta manera se
puede disear un organigrama que indique la estructura general de un algoritmo.
PROCESO DE MODULARIZACION.
El proceso de segmentacin consiste en hacer una abstraccin del problema, del cual se tiene
inicialmente un panorama general. En seguida, se procede a "desmenuzar" o "dividir" el problema en
partes pequeras y simples, como se muestra :
1. Se forma un primer mdulo enunciando el problema en trminos de la solucin a ste.
Ejemplo:
Se necesita disear un algoritmo que ayude a un nio a revisar sus tareas referentes a las
operaciones aritmticas fundamentales : sumar, restar, multiplicar y dividir. El proceso es el
siguiente:
Se ofrecer un men de opciones para escoger lo que desee hacer, de acuerdo con el siguiente
formato:
TE PUEDO AYUDARA :
1. SUMAR
2. RESTAR
3. MULTIPLICAR
4. DIVIDIR
5. FIN
OPCION:
En el caso de la suma el procedimiento es el siguiente : leer los dos nmeros y el resultado obtenido
por el nio, hacer el clculo de la mquina, comparar ambos resultados y decirle si est correcto o
incorrecto. Se le puede permitir realizar las revisiones de operaciones de suma que sean necesarias.
Para el caso de la resta, multiplicacin y divisin se seguir un procedimiento similar, claro est, con
las diferencias existentes.
APLICACIN : Aplicar lo enunciado en este punto y si se considera que se trata de un algoritmo que
ayuda a un nio en la revisin de sus tareas, se tiene el mdulo principal siguiente :
ALGORITMO
AYUDA
2. Se toma este mdulo y se busca la forma de dividirlo en otros mdulos ms pequeos, que
ejecuten tareas o funciones especificas. Las mismas funciones que se desea que ejecute el
24
Elabor: L.l. Karina Aidee Romero Alvarado
.:\
. "/
Fundamentos de Programacin
algoritmo, nos darn la pauta para definir los mdulos, y asi hacer una segmentacin de la
solucin del problema en partes manejables.
APLICACIN : Si nos referimos al ejemplo anterior, tenemos que se deben mantener cuatro tareas
o funciones claramente definidas : sumar, restar, multiplicar y dividir, de ahi que necesitamos un
mdulo para cada una de las tareas, las cuales debern estar subordinadas al mdulo principal. La
estructura que se tiene, entonces, es la siguiente : "
ALGORiTMO
AYUDA 1
1
1 1
.
1
1
MODULO 2 MODULO 3 MODULO 4 MODULO 5
SUMAR RESTAR MULTIPLICAR DIVIDIR
-
Nota: Los mdulos se numeran de arriba hacia abajo y de izquierda a
3. Se repite el paso 2 para cada mdulo nuevo definido, hasta llegar a un nivel de detalle adecuado,
es decir, hasta hacer que cada mdulo ejecute una tarea especfica, que est claramente
definida y que el diseo de la lgica del mismo resulte fcil utilizando el pseudocdigo.
APLICACIN : En el problema que estamos analizando, se revisan los sumar, restar, multiplicar y
dividir. Se considera que stos tienen un nivel de detalle adecuado, porque cada mdulo hace una
tarea muy simple, clara y especfica y, en consecuencia, se pueden disear fcilmente utilizando el
pseudocdigo.
25
Elabor: L.l. Karina Aidee Romero Alvarado
Fundamentos de Programacin
2. INTRODUCCIN A LA PROGRAMACIN.
Al desarrollarse las primeras computadoras electrnicas, se vio la necesidad de programarlas, es
decir, de almacenar en memoria la informacin sobre la tarea que iban a ejecutar. Las primeras se
usaban como calculadoras simples; se les indicaban los pasos de clculo, uno por uno.
John Von Neumann desarroll el modelo que lleva su nombre, para describir este concepto de
"programa almacenado". En este modelo, se tiene una abstraccin de la memoria como un conjunto
de celdas, que almacenan simplemente nmeros. Estos nmeros pueden representar dos cosas: los
datos, sobre los que va a trabajar el programa; o bien, el programa en sr.
2.1 CLASIFICACIN DEL SOFTWARE.
El Software es el conjunto de programas que ejecuta una computadora; Estos programas contienen
instrucciones u rdenes, las cuales se encuentran codificadas en un lenguaje que puede comprender
la computadora.
2.1.1 SOFTWARE DEL SISTEMA.
Tambin llamado software interno, est formado por el conjunto de rutinas que desarrolla el
proveedor del equipo con el fin de apoyar a los usuarios en la utilizacin de los recursos
computacionales (sistema operativo, editores, compiladores, etc.) El sistema operativo es el software
de sistema ms relevante ya que se encarga de administrar todos los recursos computacionales.
2.1.2 SOFTWARE DE APLICACIN.
Se refiere primordialmente a los programas desarrollados por el usuario para resolver un problema
especifico tal como inventarios o contabilidad.
2.2 CONCEPTOS DE-LA PROGRAMACIN.
Una persona piensa y se comporta o.bedeciendo a un secuencial 19gico. Un computador real iza
tareas y maneja datos en memoria obedeciendo a una secuencia de pasos lgicos para lo cual ha
sido programado.
Programar computadoras es necesaria en cualquier rea, ya que diferentes problemas que se
puedan presentar tardan tiempo resolverlos de manera manual. La computadora resuelve problemas
de acuerdo como se le haya programado de manera rpida.
2.2.1 DEFINICIN DE PROGRAMA.
Conjunto de instrucciones almacenadas para la solucin de problemas por computadora de acuerdo
a cierta sintaxis y semntica.
26
Elabor: L.l . Karina Aidee Romero Alvarado
1
t
.

.::.;

...



1
(
:!
: . >
W":
} (

>W



1
. ..:
.. :J.
.. -. ....
. . ...
Fundamentos de Programacin
2.2.2 DEFINICIN DE PROGRAMACIN .
Programacin de computadoras es la ciencia que permite a una persona programar una
computadora para que resuelva tareas de manera rpida. Un Programa de computadora se puede
definir como una secuencia de instrucciones que indica las acciones o tareas que han de ejecutarse
para, dar solucin a un problema determinado. La programacin tambin se puede definir como la
traduccin del algoritmo (diseo de la solucin) a un formato que sea legible para la computadora. Si
el diseo es lo suficientemente detallado, la codificacin es relativamente sencilla.
La definicin anterior deja muchas cosas que decir. Para llegar a tener una secuencia de
instrucciones que den solucin a un problema es necesario ejecutar varias etapas.






Etapa de anlisis: En esta etapa el programador debe entender claramente el problema. Saber
que es lo que se quiere resolver. (analizar) .
Etapa de Solucin scribir la serie de pasos que sean necesarios para dar solucin al
problema. Estos pasos p eden desarrollar a travs d_e un Diagrama de flujo (Utiliz.<;mdo
smbolos) a travs de do lenguaje (Utilizando Lenguaje comn). A lo anterior es lo que
se conoce con el nombre de Algoritmo.
Etapa de prueba: Consiste en revisar el algoritmo paso a paso para estar seguro si la solucin
resuelve verdaderamente al problema. (Prueba de escritorio).
Etapa de implementacin especfica: Consiste en traducir el algoritmo a un lenguaje de
programacin. (Codificar).
Etapa de prueba: Consiste en ejecutar el programa en un computador y revisar los datos
arrojados para ver si son correctos y hacer los ajustes necesarios. (Implementar).
Etapa de uso: Consiste en instalar el programa de manera definitiva para el uso por parte del
usuario.
2.2.3 DEFINICIN DE LENGUAJE DE PROGRAMACIN.
Se puede definir un lenguaje de programacin como un conjunto de reglas normas, smbolos y .
palabras especiales utilizadas para construir un programa y con l, darle solucin a un problema
determinado.
El lenguaje de acin es el encargado de que la computadora realice paso a paso las tareas
que el programa . iseado en el algoritmo. Se puede decir que un lenguaje de programacin es
el intermediario en a mquina y el usuario para que este ltimo pueda resolver problemas a travs
de la computadora haciendo uso de palabras (funciones) que le traducen dicho programa a la
computadora para la realizacin de dicho trabajo. Para nuestro curso las implementaciones se harn
en el lenguaje de programacin C#.
2.3 DATOS.
La gran variedad de datos que trae consigo un lenguaje de programacin hace que el programador
escoja el tipo ms adecuado para la aplicacin que est desarrollando. El rango de datos que maneja
cada tipo, indica al usuario que escoger. Los datos se pueden agrupar en los siguientes tipos.
PREDEFINIDOS POR LOS LENGUAJES:
Enteros
Decimales
De cadena
Bolanos
27
Elabor: U . Karina Ndee Romero Alvarado
Fundamentos de Programacin
DEFINIDOS POR EL USUARIO
Subrango
Enumerados
2.3.1 DEFINICIN.
Los datos en el interior de la memoria de la computadora son siempre binarios, al menos a un cierto
nivel. El modo en que se interpreta la informacin almacenada en la memoria de una computadora es
siempre arbitraria, es decir, el mismo valor puede usarse para codificar una letra, un nmero, una
instruccin de programa, etc. El tipo nos dice a nosotros y al compilador cmo debe interpretarse y
manipularse la informacin binaria almacenada en la memoria de un ordenador. .
2.3.2 TIPOS DE DATOS.
Una variable es un espacio reservado en la computadora para contener valores que pueden cambiar
durante la ejecucin de un programa, por lo tanto los tipos determinan cmo se manipular la
informacin contenida en esas variables.
Los tipos bsicos de datos en lenguaje C# y los modificadores con los tamafios y rango de bits
comunes se muestran en la siguiente tabla. Los tipos bsicos de datos en lenguaje son: char, string,
int, float, double bool y void. Algunos de ellos pueden ser modificados por los modificadores short,
signed, unsigned, long.
Tipo Tamao Rango
en Bits
tCFlar) 8 -128 .. 127
1
unsigned char 8 0 .. 255
signed char 8 -128 .. 127
ii) 16 -32768 .. 32767
unsigned int 16 0 .. 65535
short int 16 -32768 .. 32767
JJ_nsigned short int 16 0 .. 65535
\jog) '
32 -2,147,483,648 .. 2,147,483,647
iJ'rlsgned long int 32 0 . .4,294,967,295
rTiOl\
32 3.4E-38 .. 3.4E+38
64 1.7E-308 .. 1.7E+308 .
long double 8o 3.4E-4932 .. 1.1 E+4932
bool . 1 true o false
ffj Cada caracter
o."7il/1 v d J.q
-k'Pj
Solo los tipos de datos double y float aceptan nmeros con punto flotante (nmeros con fracciones
decimales), en tanto que los otros tipos manejan nicamente enteros. Aunque es valido asignar un
valor que contenga una fraccin decimal a un dato de tipo entero, dicha- fraccin se elimina y solo se
asigna la parte entera.
2.3.3 IDENTIFICADORES.
De igual manera que los identifi cadores en la solucin algorltmica, C# establece sus reglas para la
definicin de estos:
28
Elabor: U . Karina Aidee Romero Alvarado
l!t

l
1
1
1
1'
""



\ :.;
: .:

):




T .....
:.









1
1
i
1
1
::

. -....... \
-: _ .. -






.r
Siempre debern iniciar con una letra.
Pueden contener letras y nmeros .
No se permiten caracteres especiales. El nico permitido es"_" .
No debe haber espacios en blanco .
Hace diferencia entre maysculas y minsculas .
Deben ser significativos y tener relacin con el objeto que representan .
Fundamentos de Programacin
No deben ..Se( ras ro( e 1 knjt.a.Jc ele p '05 l' C\t"Y\ClCI (y)
Ejemplos
NOMBRE
NO_CONTROL
PRECIO
Puede representar el nombre de una persona o ciudad.
Puede representar el nmero de control de alumno.
Puede representar el precio de un artculo.
Adems siempre se debe tener presente que para C# los casos de variables como Numero,
NUMERO y numero son distintas aunque aparentemente parecen la misma, ya que, como se
mencio anteriormente, el lenguaje hace diferencia entre maysculas y minsculas.
Por otro lado, aqu tambin se puede asignar nombre a algunas constantes, por ejemplo como un
nombre para el valor den, Pi= 3.1416.
2.3.4 ALMACENAMIENTO, DIRECCIONAMIENTO Y REPRESENTACIN EN MEMORIA.
Una caracterstica de C# es la necesidad de la declaracin de las variables que se usarn en el
programa. Es en realidad una caracterstica muy importante y til de C#, ya que ayuda a conseguir
cdigos ms compactos y eficaces, y contribuye a facilitar la depuracin y la deteccin y correccin
de errores.
Ejemplos de declaracin de variables son:
unsigned char A;
int B;
f/oat C;
Imaginemos que la siguiente figura es la memoria principal de la computadora, y que en ella se
encuentran almacenadas en diferentes localidades (direcciones) las variables declaradas
anteriormente:
1
1
,
'
'
,
,
'
'
'
'
'
'
'
Identificador
... ---- ... ...------
MEMORIA PRINCIPAL
A
e
256
B
1024
-\ 1111111111111 T 1
: 5f2 ---- - ---- --- -
\, _____ ___ ________ 1___ __ ---- - -- -
---
... ______ ...
'
'
\
,
'
1
1
1
1
Variable
Localidad
(direccin)
Varible int Varlble float
uns/gn char
29
Elabor: L.l. Karina Aidee Romero Alvarado
Fundamentos de Programacin
Como se puede observar, una variable es el rea para almacenar en la memoria Y su identificador es
la forma como nosotros podemos acceder a ella, ya que ste ltimo tiene ligada la direccin. Una
constante puede tener tambin ligado un identificador, como ya se mencion, y por medio de ste
tambin se puede llegar hasta ella, adems, no olvidar que de acuerdo al tipo de dato es el espacio
que ocupan en la memoria.
2.4 OPERADORES, OPERANDOS Y EXPRESIONES.
Un operador es un slmbolo que le da instrucciones al lenguaje de programacin para que ejecute
alguna operacin, o accin, en uno o ms operandos.
Un operando es algo sobre lo cual acta un operador (podrla considerarse como una expresin).
El operador de asignacin permite evaluar una expresin y calculado su valor guardarlo en una
posicin de memoria asignando dicho valor a una variable. Dicho de otra manera, el valor calculado
de la expresin queda referenciado a la variable a la cual se le asigna.
La forma general de uso en lenguaje C# es:
Variable = Expresin;
Por ejemplo:
X=Y;
En un programa codificado en lenguaje C#, la estructura de asignacin del ejemplo anterior no
significa que X es igual a Y. En cambio significa "asigne el valor de Y a x. El lado derecho
representa cualquier expresin y el lado izquierdo debe ser un nombre de variable declarado
previamente y vlido en el lenguaje de programacin.
OPERADORES MATEMTICOS
Los operadores matemticos binarios que maneja C# son:
Operador Smbolo Accin Ejemplo
Suma Suma dos operandos
..
X+Y +
Resta
.
- Resta el segundo operando del _p_rimero X-Y
Multiplicacin

Multiplica sus dos operandos
X*Y
Divisin 1 Divide el primer operando entre el segundo
X/Y
Mdulo % Toma la parte residuo de una divisin X% Y
C# utiliza tambin los Operadores Unarios:
Operador/Smbolo Accin Elemplo
++
Incremento en uno
X++
-- Decremento en uno Y--
Nota: Existen ms operadores para conocerlos consultar libro de C#. Adems incluye funciones para
manejo de potencias y ralees.
30
Elabor: U . Karina Aidee Romero Alvarado
..;..
. '
. '
, .
\.
; ~
. '
: ~
. ....
.=w
Fundamentos de Programacin
2.5 PRIORIDAD DE OPERADORES, EVALUACIN DE EXPRESIONES.
C# para las operaciones que tienen dos o ms operandos establece reglas que permitan determinar
el orden de las operaciones, se denominan reglas de prioridad o precedencia y son:
1. Las operaciones que estn cerradas entre parntesis se evalan primero. Si existen diferentes
parntesis anidados (interiores unos a otros), las expresiones ms internas se evalan primero.
2. Las operaciones aritmticas dentro de una expresin suelen seguir el orden de prioridad
especificado en la tabla.
3. En caso de coincidir varios operandos de igual prioridad en una expresin o subexpresin
encerrada entre parntesis, el orden de prioridad en este caso es de izquierda a derecha.
2.6 ESTRUCTURA BSICA DE UN PROGRAMA.
C# permite trabajar en dos ambientes: Consola (Console Application) y Visual (Windows Application.
Para este curso inicial de programacin se trabajar en el ambiente Visual de C# donde las entradas
y consultas de datos son de forma grfica.
Generalizando, un programa en C# consta de tres partes:
La primera es la creacin de la parte grfica de la aplicacin, que incluye la o las Formas,
componentes como botones, etiquetas, cajas de texto, etc ..
La segunda parte es la definicin de funciones ligadas a objetos, que al presentarse un evento
entrarn en ejecucin.
Como tercera parte se tienen las "funciones" definidas por el programador. Ahora, solo se habla
de funciones ya que en C# no existen los procedimientos Si se desea que una funcin trabaje
como procedimiento, al momento de definirla se le indica que su tipo ser void.
Ejercicios
: Prctica 1. "CREAR APLICACIN" del cuadernillo de prcticas.
Ejemplo de un programa en C#:
Programa que suma 2+4 y despliega el resultado.
1. Diseo de la Forma de la aplicacin
Forma: frmSuma
. . r. i '-
La suma de 2+4 es:
Caja de texto: txtSuma
Botn de comando: cmdSalida
Botn de comando: cmdSuma
31
Elabor: L.l. Karina Aidee Romero Alvarado
Fundamentos de Programacin
2.- Cdigo ligado al botn urna (cmdSuma).
private void cmdSuma Click(object sender, Event Ar gs e)
{ -;-
int Sum;
Sum = 2 + 4;
txtSuma.Text
Repaso del programa, linea a linea:
Sum.ToString();
- Primera linea: priva te void cmdSuma_ Click(object sender, EventArgs ~
Se trata de indicar el inicio del subprograma, ligado al botn cmdSuma, que ser ejecutado al dar un
click a dicho botn.
-Segunda linea: {
Aparentemente es una linea muy simple, las llaves encierran el cuerpo o definicin de la funcin.
-Tercera linea: int Sum;
Esta es nuestra primera sentencia, todas las sentencias terminan con un punto y coma. Esta
concretamente es una declaracin de variable. Una declaracin nos dice, a nosotros y al compilador,
que usaremos una variable "Sum" de tipo entero. Esta declaracin obliga al compilador a reservar un
espacio de memoria para almacenar la variable "Sum", pero no le da ningn valor inicial. En general
contendr "basura", es decir, lo que hubiera en esa zona de memoria cuando se le reserv espacio.
En C# es obligatorio declarar las variables que usar el programa.
C# distingue entre maysculas y minsculas, asf que "int Sum;" es distinto de "int SUM;", y tambin
de "int Sum;".
- Cuarta lnea: (vacla)
Una linea vacfa, ~ o sirve para nada, al menos d ~ s d e el punto de vista del compildor, pero sirve para
separar visualmente la parte de declaracin de variables de la parte de cdigo que va a continuacin.
Se trata de una divisin arbitraria. Desde el punto de vista del compilador, tanto las declaraciones de
variables como el cdigo son sentencias vl idas. La separacin nos ayudar a distinguir visualmente
dnde termina la declaracin de variables. Una labor anloga la desempea el tabulado de las
lineas: ayuda a hacer los programas ms fciles de leer.
- Quinta lnea: Sum = 2 + 4;
Se trata de otra sentencia, ya que acaba con punto y coma. Esta es una sentencia de asignacin. Le
asigna a la variable "Sum" el valor resultante de la operacin "2 + 4".
- Sexta lnea: txtSuma. Text = Sum. ToString();
32
Elabor: L. l. Karina Aidee Romero Alvarado
(
1
1
1
1
1
' 1
1
1
1
1
1
1
1
.. . . :
Fundamentos de Programacin
Aqul se le est asignando al objeto caja de texto el valor almacenado en la variable "Sum" para que
ste despliegue en la forma creada.
La caja de texto "txtSuma" almacena solamente texto, y como el valor de la variable "Sum" es entero,
es necesario convertirlo a texto para no crear conflicto de tipo, de tal manera que se especifica
"ToString()".
- Sptima linea: }
Esta es la llave que cierra el cuerpo o definicin de la funcin.
3.- Cdigo ligado al botn S-.Jida (cmdSalida).
prvate void cmdSalida_Click(object sender, Event.r>.rgs e)
{
Close();
Repaso del programa, lnea a lnea:
- Primera lnea: prvate void cmdSalida_ Click(object sender, EventArgs e)
Se trata de indicar el inicio del subprograma, ligado al botn tmdSalida, que ser ejecutado al dar un
click a dicho botn.
-Segunda lnea: {
Aparentemente es una lnea muy simple, las llaves encierran el cuerpo o definicin de la funcin.
-Tercera lnea: Glose();
Esta es nuestra primera sentencia, todas las sentencias terminan con un punto y coma. Esta lfnea
indica el fin de la ejecucin del programa.
- Cuarta linea: }
Esta es la llave que cierra el cuerpo o definicin de la funcin.
ENTRADA DE DATOS
En el ejemplo anterior solamente se vio la declaracin y la ejecucin de un proceso, pero los
problemas requieren en ocasiones datos de entrada que permitan resolverlos, en Visual C# hay gran
variedad de formas para entrada de los datos.
lniciaremoif utilizando la caja de texto para dar entrada a los datos. Se debe aclarar que los datos
que entran de esta forma no son almacenados en variables explfcitas, sino que el programador es el
encargado de especificarlo.
33
Elabor: L.l . Karina Aidee Romero Alvarado
Fundamentos de Programacin
Caja de Texto como entrada de los datos
Por ejemplo, si deseamos desarrolloar un programa que permita la suma de dos nmeros cualquiera,
es necesario disenar una Fonna donde se puedan insertar esos dos nmeros y tambin el lugar
donde se muestre el resultado.
. t_{rjero 1: Caja de texto: txtN1
-: N.liiero2:
Caja de texto: txtN2
. ~
Caja de texto: txtSuma
La entrada de datos se har en las Cajas de Texto txtN1 y txtN2 y posteriormente, dentro del cdigo,
se asignarn dichos valores a las variables que los almacenarn. Por ejemplo:
int N1, N2, Sum;
N1 = System.lnt32.Parse(txtN1. Text);
N2 = System.lnt32.Parse(txtN2. Text);
Como se puede observar se utiliz System.lnt32.Parse(txtN1.Text) para covertir los valores de la
caja, que son considerados texto, a su real valor numrico.
SALIDA DE DATOS
Ya sabemos que las entradas de datos se necesitan en ocasiones para la resolver los problemas,
pero las salidas son esenciales ya que un programa sin salidas no mostrarla el resultado. C# cuenta
con una gran variedad deformas para salida de los datos.
Caja de Texto como salida de los a t o s
Siguiendo con el ejemplo anterior en el programa la salida se dar tambin en la Caja de Texto
txtSuma (El objeto Caja de Texto permite entrada y salida de datos). Por ejemplo:
Sum=N1+N2;
txtSuma. Text = Sum. ToString() ;
La variable Sum almacena el resultado de la suma de los dos nmeros que ser desplegado en la
Caja de Texto txtSuma en su propiedad Text.
El valor numrico almacenado en Sum se convierte a texto cuando se especifica ToString() ya que
la Caja de Texto solo admite texto y asl al momento de asignrselo no existir conflicto de tipo de
dato.
34
Elabor: L.l . Karina Aidee Romero Alvarado
1
1
Ir
i
1
... .t
.. '
1
1
1
1
1
1
a

: i
"
j
Fundamentos de Programacin
Etiqueta como salida de los datos
Siguiendo con el ejemplo anterior en el programa se podra dar la salida en una etiqueta como por
ejemplo lbiSuma (El objeto Etiqueta permite solo salida de datos). Por ejemplo:
Sum=N1+N2;
lb/Suma. Text = Sum. ToString();
La variable Sum almacena el resultado de la suma de los dos nmeros que podra ser desplegado
en la Etiqueta lbiSuma en su propiedad Text.
El valor numrico almacenado en Sum se convertira tambin a texto especificando ToString() ya
que la Etiqueta solo admite texto.
Ejemplo1. Programa que calcula el rea de cualquier tringulo. (Prctica 2 del cuadernillo). ,_
. . .
. . . L-l
.. =-:.
-
;:.=::__ ":> : -
Cdigo para el botn cmdArea
private void cmd.Area_Click(object sender, Event.r\rgs e )
{
1/ Programa que cal c u la el Area de un Tringulo
11 Ejemplo 1
1/ Nombre :
11 Declaracin de
float Base, Altura;
float Area ;
1/ Asignacin de valores a las variabl es
Ba se= System. Single.Parse(txtBase.Text);
Altura= System.Single .Parse(txtAltura.Text);
1/ C l cula de l Area
Ar ea = Base * Altura 1 2 .0;
//Salida d e l Area
txtArea.Text = Area.ToString();
35
Elabor: L.l. Karina Aidee Romero Alvarado
Fundamentos de Programacin
. Cdigo para el botn cmdSalida
private void cmdSalida Click(object sender, Event Args e)
{ -
Close();
Ejercicios
: Prctica 3. Corresponde a la Tarea 2.
: Prctica 4. Corresponde a la Tarea 4.
: Prctica 5. Corresponde a la Tarea 7.
FUNCIONES DEFINIDAS POR EL USUARIO
Como ya se mencion C# est basado en el uso de funciones. Esto permite dividir un problema
complejo en tareas mas pequef'ias que darn una solucin ms eficiente.
Cada funcin es independiente de la otra y los datos que se definan en cada una el resto no las
puede ver, en otras palabras, las variables declaradas en una funcin no son vlidas en otra a pesar
de que estn en el mismo programa.
Las funciones tienen la capacidad de regresar valor de tal manera que se les debe asignar un tipo de
dato. En el caso de que no se desee que retornen valor se les antepone void.
VARIABLES LOCALES
Son aquellas variables declaradas dentro de la funcin donde sern usadas de tal manera que
solamente en ella tienen validez.
PARMETROS
En ocasiones se desea compartir datos entre una funcin y otra lo cual se puede lograr por medio de
los parmetros. Un parmetro es un valor que se pasa de una funcin a otra.
Ejemplo2. Programa que captura dos nmeros en el principal , los enva como parmetros y los
suma e imprime en una funcin que no regresa valor. (Prctica 6 del cuadernillo).
Nmero 1:
Nmero 2:
,- -- - - - - ... 1
! -
La suma es:
, ... ... - -- --- - . ;
L------- __ _;
36
Elabor: U. Karina Aidee Romero Alvarado
1
i
J
~
~
'!&.
~
~ :
';)'".
~
>
..
r.r-
'
~
r
;:
L.
p
: ~
X
..
?"
'
;' '.
:.......
_ ~ : ~
'
r!
. liJ:
r,
iJ
~
lj
1
1
1
1
1
u
n
>'1
li
0,
; . .. ..
.._.,.
Cdigo para el botn cmdSuma
1/ Creado automticamente para e l botn cmdSuma
private void c mdSuma_Click (object sender , EventArqs e )
{
Fundamentos de Programacin
// Progr ama que suma dos nmero u t i l izando un proce dimiento
! Ejempl o 2
11 Nombr e : <-/
!/ Declaracin de variables
int Nl, N2;
1/ As ignacin de va l ores a l as variables
Nl System. Int32 .Parse(txtNumerol.Text);
N2 = System. Int32 .Parse (t xtNumero2. Text );
11 Llamad a al ,_procedimiento Suma ()
Suma(Nl, N2);
//Subprograma ( Procedi miento) definido por el Programador
void Suma(int Numl, i nt Num2 )
{
//Decl aracin de variable local
int Sum;
//Suma de los dos nmeros
Sum = Numl + Num2;
//Despl iegue del resultado de l a suma
txtSuma.Text = Sum.ToString();
Cdigo del botn cmdSalida
private void cmdSalida_Click(object sender, EventArgs e)
{
Close ();
Ejemplo3. Programa que captura dos nmeros en el principal, los enva como parmetros y los
suma en una funcin que si regresa valor para as imprimir en el principal. (Prctica 7 del
cuadernillo) .
37
Elabor: L.l. Karina Aidee Romero Alvarado
Nmero 1:
,-------,
l
Ny.mero 2:
La suma es:
L __ _ __ __,
Cdigo para el botn cmdSuma
11 Creado a ut omticamente para el botn cmdSuma
prvate void cmdSuma_Click(object sender, EventArgs e)
{
Fundamentos de Programacln
11 Programa que suma dos nmero utilizando una funcin
11 Ejemplo 3
11 Nombr e : * /
11 Declar aci n de va ri a bles
int Nl, N2, Res;
11 As i gnacin de va l ore s a las va riables
Nl System.Int32 .Parse(txtNumerol . Text);
N2 = System. Int32 .Parse(txtNumero2.Text);
/1 Ll amada a l a funcin Suma ()
Res = Suma(Nl, N2);
/ /Des pl i egue de l r esul tad o de l a s uma
= Re s.ToString();
//Subprograma ( Funcin) def i n i do por el Pr ograma dor
int Suma(int Numl, int Num2)
{
;calcul o de l a suma y de l total
return Numl + Num2 ;
Cdigo para el botn cmdSalida
pr ivate void c mdSa li da_Cli ck (object sender , EventArgs .e )
{
Cl ase ();
En los dos ejemplos anteriores utiliz el pase de parmetros cuando indica Suma(N1,N2), N1 y N2
son los parmetros que envfa (es una copia del valor almacenado en N1 y N2). Al momento de
recibirlos se debe declarar el tipo Suma(int Num1,int Num2) ya que los valores que almacenan N1 y
N2 son enteros, entonces, como Num1 y Num2 son quienes reciben dichos valores tambin deben
38
Elabor: L.l . Karina Aldee Romero Alvarado
1
1
~
. .\
.:..;.;Y
Fundamentos de Programacin
ser enteros. Adems se debe respetar la cantidad y orden de los parmetros, o sea, como se envlan
se deben recibir.
VARIBLES GLOBALES
Si por alguna razn se desea que algunos datos sean vlidos en todas las funciones, entonces, se
declaran las variables globales, esto es, se declaran fuera de cualquier funcin.
Ejemplo4. Programa que captura dos nmeros en el principal y los imprime en una funcin que si
regresa valor. (Prctica 8 del cuadernillo).
Cdigo para el botn cmdSuma
11 Declaracin de variables globales
int Nl
1
- N2;
11 Creado automticamente para el botn cmdSuma
private void cmdSuma_Click(object sender, EventArgs e)
{
/1 Programa que suma dos nmero utilizando una funcin y
11 variabl es globales
/1 Ejemplo 4
1/ Nombre:
/1 Declaracin de variables locales
int Res;
11 Asignacin de valores a las variables
Nl System.Int32.Parse(txtNumerol.Text);
N2 = System.Int32.Parse(txtNumero2.Text);
/1 Llamada a la funcin Suma {)
Res = Suma () ;
// Despliegue del resultado de la suma
txtSuma.Text = Res.ToString();
//Subprograma definido por e l Pr ogramado r
int Suma {)
{
//Cal c ulo de la s uma y r etorno d e l total
return Nl + N2;
Cdigo para el botn cmdSalida
prvate void cmdSalida_Click(obj e ct sender, Eve ntAr gs e )
{
Close ();
39
Elabor: Ll . Karina Aidee Romero Alvarado
Fundamentos de Programacin
2.7 PROCESO DE CREACIN DE UN EJECUTABLE.
la gran mayorla de los programas estn escritos en un lenguaje de alto nivel (lenguaje que el
programador entiende mejor) el cual la computadora no entiende directamente ya que esta maneja
un lenguaje de bajo nivel (lenguaje mquina de O's y 1 's), por lo tanto se requiere de un proceso de
traduccin del lenguaje de alto nivel a lenguaje de bajo nivel.
TRADUCTORES
Asl como existen lenguajes de bajo y alto nivel, tambin existen distintos tipos de traductores. Dentro
de los traductores ms comunes estn los intrpretes y los compiladores.
: INTRPRETES. Son aquellos que van traduciendo linea por linea y no dejan constancia de su
traduccin de tal manera que cada vez que se desee ejecutar un programa se' deber traducir
nuevamente.
: COMPILADORES. Son aquellos que traducen el programa dejando constancia de esta para
generar el programa ejecutable de tal manera que no requiere una nueva traduccin cada vez
que se desee ejecutar el programa (solamente en el caso de modificar el programa se debe
hacer una nueva traduccin).
ENLACE Y TIEMPOS DE ENLACE
ENLACE
Podrlamos hablar del enlace de un elemento de programa a una caracterlstica o propiedad particular
como simplemente la eleccin de la propiedad de entre un conjunto de propiedades posibles.
TIEMPO DE ENLACE
Es el momento durante la fonnulacin o procesamiento del programa en el que se hace la eleccin
de una propiedad para un elemento.
1. Tiempo de ejecucin (Al entrar a un subprograma 6 bloque, en puntos arbitrarios durante la
ejecucin) .
2. Tiempo de traduccin (Enlaces elegidos por el programador, enlaces elegidos por el traductor,
enlaces elegidos por el cargador).
3. Tiempo de implementacin del lenguaje (Cuando se escribe el programa) .
4. Tiempo de definicin del programa.
CREACION DEL EJECUTABLE
La siguiente figura muestra el proceso para la creacin de un programa ejecutable por medio de un
compilador:
40
Elabor: l.l . Karina Aidee Romero Alvarado
1
1
'
!
; : : ~ ~
n
~ H
~
r :
1.
1
Fundamentos de Programacin
(traduccin)
Enlace
PROGRAMA PROGRAMA PROGRAMA
Compilacin
FUENTE OBJETO EJECUTABLE
Programa fuente. Programa escrito en algn lenguaje de alto nivel.
Compilacin. Se refiere al proceso de traduccin del lenguaje de alto nivel a lenguaje de alto
nivel quedando constancia de esta traduccin.
Programa objeto. Despus de haber realizado la compilacin (traduccin) el programa en
lenguaje de bajo nivel queda almacenado en 'lm programa llamado objeto.
Enlace. Este proceso permite ligar todo lo necesario, como librerlas, otros programas auxiliares,
etc., para que se pueda generar el programa ejecutable.
Programa ejecutable. Es el programa que podemos ver funcionando y este ya no depende del
programa fuente.
. .... , '
41
Elabor: L.l . Karina Aidee Romero Alvarado
Fundamentos de Programacin
3. ESTRUCTURAS SECUENCIALES Y SELECTIVAS.
3.1 MODIFICADORES DE ACCESO (PUBLIC, PRIVA TE).
El modificador de acceso "prvate" pueden ser nicamente accesados por funciones miembro de la
misma clase; y que los miembros "public" pueden ser accesados por funciones miembro o por otras
funciones en el programa que hayan declarado una instancia de la clase.
3.2 ENTRADA Y SALIDA DE DATOS.
Como ya se explic anteriormente, los problemas requieren en ocasiones datos de. entrada que
permitan resolverlos, pero las salidas son esenciales ya que un programa sin salidas no mostrarla el
resultado.
3.3 INTERACCIN DE LA APLICACIN Y LA CLASE.
Como se pudo ver en los ejercicios desarrollados en la Unidad 5, C# ofrece gran variedad de
herramientas para lograr hacer la implementacin de las clases dentro de la aplicacin con facilidad.
Existen distintos lenguajes de programacin que tambin incluyen esta posibilidad.
3.4 ESTRUCTURAS SELECTIVAS.
Una Condicin o Decisin indica operaciones lgicas o de comparacin entre datos (normalmente
dos) y en funcin del resultado de la misma determina cul de los distintos caminos alternativos del
programa se debe seguir, normalmente tiene dos salidas (respuesta SI o NO).
Operadores Relacionales
Operador Funcin
Algoritmos C#
> > Mayor que
< < Menor que

>= Mayor o igual que
<=o :5 <= Menor o q!Je
=
--
Igual que
<> != Diferente que
3.4.1 SELECTIVA SIMPLE.
( Son aquellas que solamente tienen una condicin para evaluar y el resultado de la evaluacin
1 solamente un verdadero. Su sintaxis, tanto para pseudocdigo como para diagrama de flujo, es:
!
<Valor o variable> <Operador relacional> <Valor o variable>
i
0
nJ,-ctfn e7
42
Elabor: L.l . Karina Aidee Romero Alvarado
.,;_
1
1
1
1
1
. .. -
H
1
1
1
1
\
. ,_...
Por ejemplo:
A ~ 8
8 ~
A> 13
6 <= B
A=B
8 <> 6
Falso
Verdadero
Falso
Verdadero
Sintaxis para la estructura de Decisin en Pseudocdigo
Si <condicin> Entonces
<bloque de sentencias> } Verdadero
Fin si
Fundamentos de Programacin
Ejecutar el bloque de sentencias si la condicin resulta verdadera. En caso contrario se sale de la
condicin.
~ ..
Sintaxis para la estructura de Decisin en Diagrama de Flujo
Cuando se utiliza el smbolo, si la condicin es verdadera se va en direccin del si.
Sintaxis para las condiciones en C# cuando hay una o mas instrucciones a ejecutar
if (<condicin>) <instruccin>;
Por ejemplo,
if (val== 2) txtDespliegue.Text=" Dos ";
if ( <condicin> )
{ <instruccion1>;
<;instruccion2>; }
Ejemplo5Aigoritmo que determina si una persona es mayor de edad.
1. Inicio
2. E d a d ~ O
3. Leer "Edad: ", Edad
4. Si Edad>= 18 Entonces'
Imprimir "Mayor de Edad"
5. Fin_si
6. Fin
43
Elabor: L.l. Karina Aidee Romero Alvarado
Fundamentos de Programacin
120 _j
1/Codigo para botan cmdMayMen
prvate void cmdMayMen Click(object sender, EventArgs e)
{ //Programa que determina si una persona es mayor de edad
//utilizando la selectiva simple
//Ejemplo 5
1/Declaracion de variables
int Edad;
1/Asignacion de valores a las variables
Edad= System.Int32.Parse(txtEdad.Text);
1/Condicion que determina mayor de edad
if (Edad >= 18)
{. lblMayMen. Text = "Mayor de Edad";
)
.//Codigo para botan cmdi!Jmpia
prvate void cmdLimpia_Click(object sender, EventArgs e )
{
lblMayMen. Text = "" ,
//Creado a ut omticamente para el botn cmdSalida
prvate void cmdSalida_Click(object sender, EventArgs e)
{
Clase();
Nota: Si solamente hay una instruccin o sentencia en el verdadero no lleva llaves, en caso contrario
todo el bloque se encierra entre llaves.
44
Elabor: L.l . Karina Aldee Romero Alvarado
!!;.-
'
1
1
1
)
Fundamentos de Programacin
Ejercicios
! Si la frecuencia es superior a 60, desplegar el mensaje "La frecuencia es demasiado alta".
! Si un persona naci antes de 1988 ya tiene mayora de edad. Desplegar el mensaje "Ya eres
mayor de edad".
! Si un ngulo es igual a 90 grados, imprimir el mensaje "el ngulo es un ngulo:recto".
3.4.2 SELECTIVA DOBLE (SI/ DE OTRO MODO) Y COMPUESTA.
Al igual que la simple, la doble tiene una condicin para evaluar pero la diferencia es que aqu
considera que la condicin tambin pueda ser falsa. Su sintaxis, tanto para pseudocdigo como para
diagrama de flujo es la misma.
Sintaxis para la estructura de 'ecisin en Pseudocdigo
Si <condicin> Entonces
<bloque de instrucciones 1> } Verdadero
Sino
<bloque de instrucciones 2> } Falso
Fin si
Ejecutar el primer bloque de sentencias si la condicin resulta verdadera. En caso de que la
condicin sea falsa ejecutar el segundo bloque de sentencias.
Sintaxis para la estructura de Decisin en Diagrama de Flujo
Cuando se utiliza el smbolo, si la condicin es verdadera se va en direccin del si y si la condicin es
falsa se va en direccin del no. En otras palabras, ejecuta uno o el otro bloque de sentencias, pero
no lo dos.
Sintaxis para las condiciones en C# cuando hay una o ms instrucciones a ejecutar
if ( <condicion>)
</nstruccion>;
el se
<instruccion>;
if ( <condicion>)
{<lnstriccion 1 >;
</nstriccion2>; }
el se
45
{<lnstriccion 1 >;
</nstriccion2>; }
Elabor: U . Karina Aidee Romero Alvarado
Fundamentos d11 Programacin
Ejemplo i Algoritmo que determina si una persona es mayor o menor de edad. {Prctica 9 del
cuademilro).
1. Inicio
2. Edad(- O
3. Leer "Edad: ", Edad
4. Si Edad >= 18 Entonces
Imprimir "Mayor de Edad"
5. Sino
Imprimir "Menor de Edad"
6. Fin_si
7. Fin
,_,.!, -. . .. :
.

..
.. .
1/Codigo para botan cmdMayMen
prvate void cmbMayNeh_Click(object sender, EventArgs e)
{
/ /Programa que de t e rmina s i una p e r sona es may or o me nor e dad
1 /Ejemplo 1 (?
1/Declaracion de variables
in t Edad;
1/ Asignacion de valores a la s variabl es
Edad= System.Int32 .Parse(txtEdad.Tex t);
1/Condi c ion que determina may or de e dad
if (Edad >= 18)
{lblMayMen. Text "Mayor de Edad";}
el se
llblMayMe n. Text "Menor de Edad"}
46
Elabor: l.l. Karina Aidee Romero Alvarado
i
1
1
1
:
... : . /
. -:i

Fundamentos de Programacin
1/Codigo para botan cmdLimpia
private void cmdLimpia_Click(object sender, EventArgs e)
{
lblMayMe n.Tex t = "" ,
//Creado automticamente para e l botn cmdSalida
private void cmdSalida_Click(object sender, EventArgs e)
{
Cl ase ();
Nota: Si solamente hay una instruccin o sentencia en el falso o verdadero de la condicin no lleva
llaves, en caso contrario todo el bloque se encierra entre llaves.
Ejercicios
\): Determinar si una calificacin es aprobatoria o no, considerando el 70 como mnimo aprobatorio.
: Una prueba de aislamiento para un cable requiere que el aislamiento soporte por lo menos 600
voltios. Programa que acepte un voltaje de prueba e imprima el mensaje "APROBO PRUEBA DE
VOL TAJE" o el mensaje "REPROBO PRUEBA DE VOL TAJE".
: Una pequea fbrica produce su propia energa con un generador de 20 kilovatios y otro de 50
kilovatios. Al escribir un cdigo de carcter, el gerente de la planta indica cul generador
requiere. Escribir programa que acepte ste cdigo como dato de entrada. Si escribe el cdigo "s /
deber desplegar un mensaje que indique al encargado que debe usar el generador pequeo; ere
otra manera, deber desplegar el mensaje que le instruya utilizar el generador ms grande.
tS : Una empresa desea un programa que le permita calcular el sueldo neto para un empleado que
gana menos de 1500 pesos mensuales ya que recibi el 8% de aumento. Los datos son Cdigo,
Nombre, Departamento y Sueldo Mensual.
: Si la temperatura est arriba de 1 00 grados, mostrar el mensaje "por arriba del punto de
ebullicin del agua"; de otra manera, mostrar el mensaje "por debajo del punto de ebullicin del
agua".
r '7 : Determinar si un nmero es par o impar.
[ b: Determinar el mayor de dos nmeros.
SELECTIVA COMPUESTA. \-..plt!J
Son aquellas que evalan ms de U!Ja en una sola expresin, para esto hacen uso de los
operdores lgicos.
Tabla de Verdad de los Operadores Lgicos
Operador Condicin 1 Condicin 2
V V
y
F V
V F
F F
V V
F V
o
V F
F F
No
V
F
47
Evaluacin
V
F
F
F
V
V
V
F
F
V
Se deben cumplir las
dos condiciones para
-que la expresin sea
verdadera.
Deber cumplirse al
menos una de las dos
condiciones para que la
expresin sea
verdadera
Es la negacin de una
condicin.
Elabor: U . Karina Aidee Romero Alvarado
La tabla de verdad es la misma en C# y los operadores serian:
y
o
No
&&
cJ n+cs t fa y <oh
(
1 ( l12 n )d? ir{lr., rle$ )
WfY[J tL/l
Sintaxis de una condicin compuesta
<condicin1> <operador lgico> <condicin2>
Por ejemplo:


A> 13 o 8 =6
F V
A>13 y 6=8
F V
No A>8
V
=V
=F
=F
Sintaxis para la estructura de Decisin Compuesta
Fundamentos de ProgramaCin
cofJ 1 lla
S <conc/icin1> <operador lgico> <condicin2> Entonces
<bloque de instrucciones 1>
Sino
<bloque de instrucciones 2>
Fin Si
Sintaxis para las condiciones en C# cuando hay una o ms instrucciones a ejecutar
if ( <condicin1><operador lgico><condicin2)
<instruccion 1 >;
el se
<instruccion2>;
if ( <condicin 1 ><operador lgico> <condicin 2 )
{ <instruccion 1>;
<instruccon2>;}
el se
{ <instruccon1>;
<nstruccon2>; }
48
}
Una instruccin
Dos instrucciones
Elabor: l.l. Karina Aidee Romero Alvarado
1
'

r
.'.
.. . :
. <:
; ..
,_
n
'

. . . \
}
Fundamentos de Programacin
Ejemplo f Una escuela desea un diagrama para poder elegir los alumnos que podrn participar en
un concurso. Los requisitos son que tengan un promedio de 90 o ms y que pertenezcan al 5o.
semestre. Imprimir si el alumno es aceptado o no. Los datos a considerar son: No. de Control,
Nombre, Carrera, Semestre y Promedio. (Prctica 11 del cuadernillo).
1.- Inicio
2.- NC Nom
C ""; S O;
3.- Leer "No. Control:", NC
Leer "Nombre:", Nom
Leer "Carrera: ", C
NC O; Nom
C ""; S O;
Leer "Semestre:", S
Leer "Promedio:", P
4.- Si P >= 90 y S = 5 Entonces
Imprimir "Aceptado"
5.- Sino
Imprimir "No Aceptado"
6.- Fin Si
7.- Fin
7 - . . - . . -. .
Ho. de Corbol [OOliF"J l _ EieCC;n J .
'. .. , -
;' . . !Miana Ramflez . . . ' , j ,
ll.ic. enlrloonlica -- . __ J.

/1 Cdigo para el botn cmdCondicion
"Aceptado" "No Aceptado"
prvate void cmdCondicion_Click(object sender, EventArgs e)
{
/1 Programa que permite seleccionar un alumno para participar
/1 en un concurso. Los requisitos son que tenga promedio de 90
11 o mas y que sea de 5to. semestre
11 Ejemplo
11 Nombre:
//Declaracin de variables
int NC, S;
float P;
string Nom, C;
11 Asignacin de valores a l as variables
NC = System.Int32.Parse(txtNC.Text);
Nom = txtNom.Text;
C txtCar . Text;
S System.Int32.Parse(txtSem.Text);
P System.Single .Parse(txtPro.Text);
49
Elabor: L.l. Karina Aidee Romero Alvarado
11 Condicin compuesta
if (P >= 90 && S == 5)
[lblDespliegue . Text
el se
[lblDespliegue.Text
"ACEPTADO")
"NO ACEPTADO")
Fundamentos de Programacin
11 Cdigo para el botn cmdDespliegue
prvate void cmdLimpia_Click(object sender, EventArgs e)
(
txtNC. Text="";
txtNC. Focus ();
txtNom. Text="";
txtCar. Text="";
txtSem. Text="";
txtPro. Text="";
lblDespliegue.Text "" ,
11 Cdigo para el botn cmdSalida
prvate void cmdSalida_Click(object sender, EventArgs e)
(
Close ();
Ejercicios
! Si x es mayor que y y z es menor de 20, introducir un valor para p y lo despliegas.

t-U.
Una empresa desea un programa que le permita calcular el sueldo neto de los empleados del
departamento de Sistemas que hayan participado en un proyecto para el gobierno, ya que los
participantes recibirn un bono del 30% sobre su ,sueldo. Dar como entrada el cdigo del
empleado, nombre, departamento, sueldo y el cdigo
5
p'\:m caso de que haya participado en dicho
proyecto. Desplegar el mensaje de que no particip o en su caso el sueldo neto ya incluido el
bono.
Los organizadores de una carrera de automviles que recorrern 100 km desean un programa
que les permita seleccionar a aquellos que podrn participar en ella. Los prospectos tuvieron que
realizar 3 pruebas en pista tomndoles el tiempo de recorrido en cada una. Los seleccionados
sern aquellos_puyo tiempo promedio haya estado entre 25 y 35 minutos.
; .
3.4.3 SELECTIVA ANIDADA.
Si en algn momento la solucin de un problema requiere de varias condiciones sucesivas se puede
hacer uso del anidamiento de condiciones.
En trminos generales, el anidamiento de condiciones se refiere al tener una o ms condiciones
dentro de otra condicin. Los lenguajes de programacin permiten ste anidamiento en el falso de la
condicin. Esto quiere decir que si la primera condicin no se cumple prueba la siguiente.
50
Elabor: l.l. Karina Aidee Romero Alvarado
/
'
\
1

1
1
"'
1
'
1;'i
X-


tt:""!.

i:i
f'
:

..


...
u
.,
)

'
a i
r-:
:
..
;
..
'
l

f:OJ
n
. 1
), .
u
.]
u
.

) :
u
!

u
1.l
b
>;

;.: .
(;,ji
..
.. ,
-......'
Fundamentos de Programacin
Sintaxis para la estructura de Decisin Anidada en Pseudocdigo
Si <condicin1> Entonces
<bloque de sentencias 1>
SinoSi <condicin2> Entonces
<bloque de sentencias 2>
Sino
} Verdadero
} Verdadero
<bloque de sentencias 3>
Fin Si
} Falso Falso
Fin Si
Nota: Por cada "Si" anidado se deber tener un "Fin Si". Para el diagrama de flujo se utiliza el mismo
simbolo. Se pueden tener todas las condiciones anidadas que se deseen, aunque en un
momento dado pudiera hacerse muy complejo el-algoritmo.
Sintaxis para la estructura de Decisin Anidada en C#
if ( <condicin> )
<instruccin 1 >;
else if ( <condicin> )
<instruccin2>;
<else <instruccin3>;>
if ( <condicin> )
{ <instruccin1>;
<instruccin2>;}
else if ( <condicin> )
{ <instruccin1>;
<instruccin2>;}
<el se
{ <instruccn1>;
<nstruccin2>; }>
Ejemplo 6. Algoritmo que determina el elemento mayor de dos nmeros considerando que pudieran
ser iguales. (Prctica 10 del cuadernillo}.
1.- Inicio
2.- N1 f- O; N2 f- O
3.- Leer "Nmero 1: N1
4.- Leer "Nmero 2: ", N2
5. - Si N1 = N2 Entonces
imprimir "Son Iguales"
6.- SinoSi N1 > N2 Entonces
Imprimir "El mayor es:", N1
Sino
Imprimir "El mayor es:", N2
Fin Si
7.- Fin Si
8.- Fin
51
Elabor: L.l . Karina Aidee Romero Alvarado
fundamentos de Programacin
1/Codigo para el botn cmdMayor
prvate void cmdMayor_Click(object s e nder, EventArgs e )
{
11 Programa que determina el nmero mayor de dos e l ementos
11 considerando que pudieran s e r iguales
11 Ejemplo
11 Nombre:
//De cl ara c in d e variabl es
int Nl, tj2 ;
//As i gnaci n d e v al o r es a l as va ri abl es
Nl =Sy s t em.In t32 . Pa r se (t x tNl.Tex t);
N2 = Sy s t e m.In t32 . Parse(t x tN2 . Text ) ;
//Con d i c i n an i dada
"Son i g ual es ";
i f (Nl == N2)
l b lDespli egue .Text
e lse if(Nl >N2 )
l b lDespl iegue .Text
e l se
l b l Despl iegue .Tex t
"El may or es " + Nl.ToString ();
"El may or es " + N2 . ToString ();
52
Elabor: l.l. Karina Aidee Romero Atvarado
.>>.
Fundamentos de Programacin
1 / Codigo para el bo t n cmdLimpia
private void cmdLimpi a_Cli c k(object sende r , EventArgs e )
{
lblDespliegue.Tex t
t x tNl.Tex t = "";
t x tN2. Tex t = "";
t x tNl . Focus ();
1 / Codigo p ar a e l bo t -n cmdSalida
,, ".
,
p ri va t e void cmdSa lida_Cl ick(obj ect sende r, Even t Args e )
{
Cl os e () ;
. Ejercicios
Determinar si un nmero es positivo, negativo o igual a cero.
Dar entrada a un mes con nmero y desplegarlo con el nombre completo. Por ejemplo: 1 es
Enero, 2 es Febrero, etc. --:--.
Todos los aos cuyos das se pueden dividir exactamente entre 400 entre 4, pero no entre 100
son bisiesto9 ejemplo, como 1600 puede dividirse ex_a?t. entre 400, el ao 1600
fue b1s1esto. De la m1sma forma como 1988 es exactamente d1v1s1ble entre cuatro pero no entre
100, 1988 tambin fue ao bisiesto. Utilizando esta informacin, escribir un programa que acepte
el ao como dato de entrada por el usuario, determine si el ao es bisiesto y despliegue al
usuario un mensaje que indique si el ao introducido es bisiesto o no.
El cuadrante en el cual se ubica una lnea dibujada desde el origen est determinado por el
ngulo que la lnea forma con el eje positivo de x en la siguiente forma:
Angula del eje positivo de x Cuadrante
Entre O y 90 grados 1
Entre 90 y 180 grados 11
Entre 180 y 270 grados 111
Entre 270 y 360 grados IV
Utilizando esta informacin, escribir un programa que acepte el ngulo de la lnea como dato de
entrada por el usuario y que despliegue el cuadrante apropiado conforme a los datos, (Nota: Si el
ngulo es exactamente O, 90, 180 o 270 grados, la lnea correspondiente no se ubica en ningn
. cuadrante sino en un eje.)
! Basndose en el ao de fabricacin y el peso de un automvil, el Estado de Mxico clasifica el
peso del vehculo y determina la tarifa de registro, de acuerdo con la siguiente tabla:
Ao modelo Peso Categora depeso Tarifa de registro
1970 o anterior Menos de 2700 libras 1 1650
2700 a 3800 libras 2 2550
Ms de 3800 libras 3 4650
1971 a 1979 Menos de 2700 libras 4 2700
2700 a 3800 libras 5 3050
Ms de 3800 libras 6 5250
1980 o posterior Menos de 3500 libras 7 1950
3500 o ms libras 8 5250
Utilizando esta informacin, escribir un programa que acepte el ao y el peso de un automvil y
que determine y muestre la categora de peso y la tarifa de registro.
53
Elabor: U . Karina Aidee Romero Alvarado
Fundamentos de Programacin
3.4.4 SELECTIVA MLTIPLE.
Cuando se llega a tener gran cantidad de condiciones anidadas el algoritmo se hace muy confuso de
tal manera que tenemos que hacer uso de otra estructura que facilite la solucin de un problema con
estas caracterlsticas. Es asl como aparece la estructura de decisin mltiple que permite evaluar
diferentes casos por medio de un selector, en ste caso la variable que almacena el valor que se
busca, que buscando o rastreando de la lista de casos cul es el que coindice y cuando lo encuentra
ejecuta el bloque de sentencias correspondiente.
Sintaxis para la estructura de Decisin Mltiple en Pseudocdigo
Seleccionar Caso <selector>
Caso <valor_1>:
<bloque de sentencias 1>
Caso <valor_2>:
<bloque de sentencias 2>
Caso
<bloque de sentencias N-1>
Sino
<bloque de sentencias N>
Fin_ Caso
Ejecutar el bloque de sentencias del caso que coincida con el selector que est buscando. Si no
coincide ninguno de los casos con el selector ejecuta la parte del Sino.
Sintaxis para la estructura de Decisin Mltiple en Diagrama de Flujo
54
Elabor: l.l. Karina Aldee Romero Alvarado
;
r
, ..
:
r .
1
r ,
i :
' 1
u
' 1
i :
u
, . 1
' .,
;
j
1.-J
( :
Sintaxis para la estructura de Decisin Mltiple en C#
switch (expresion_switch){
case expresion :
[sentencia 1;]
[sentencia2;]
.[break,}
[default :
{sentencia 1 ;]
[sentencia2;]
.. .]
}
Fundamentos de Programacin
Ejemplo 8. Algoritmo que asigne el valor numrico a las calificaciones dadas en literal. A=10, M=g,
8=8, R=7, S=6 y N=5. (Prctica 12 del cuadernillo).
1.-lnicio
2.- CL (-- ""; CN (-- O
3.- Leer "Calificacin en Literal:", CL
4.- Seleccionar Caso CL
5.- Sino
Caso "A":
CN(- 10
Caso "M":
CN(--9
Caso "B":
CN(--8
Caso "R":
CN(--7
Caso "S":
CN(--6
Caso "N":
CN(--5
Imprimir "No vlida"
6.- Fin_ Caso
7.- Imprimir "Calificacin: ", CN
8.- Fin
55
Elabor: U . Karina Aidee Romero Alvarado
Fundamentos de Programacin
"Calificacin en Literal", CL
"Calificacin:", CN
//Cdigo para e l botn cmdCa
private void cmdCa_Click(object s e nder, EventArgs e )
{
/1 Programa que asigne e l valor num rico a las ca lifi caciones
11 dadas en lit era l. A=lO, M=9, B=B, R=7, S=6 y N=5
11 Declaracin de variables
int CN;
char CL;
56
Elabor: L.l. Karina Aidee Romero Alvarado
( ;:: ~ ~ }
::: ..h
r .,
~ ~
i ;
,_.;!
\
./
. '
.._.; ?'
//Asignacin de valores a variables
CL System.Char.Parse(txtCaL.Text);
CN = O;
11 Seleccin mltiple
switch (CL)
{
}
case 'A':
CN = 10;
break;
case 'M':
CN = 9;
break;
case 'B':
CN = 8;
break;
case 'R':
CN = 7;
break;
case 'S':
CN = 6;
break;
case 'N':
CN = 5;
break;
default:
lblError.Text
break;
"No vlida";
lblCaN.Text CN. ToS tring ();
Fundamentos de Programacin
//Cdigo para el botn cmdLimpia
prvate void cmdLimpia_Click(object sender, EventArgs e)
{
lblCaN. Text =
lblError.Text
""
,
"" ,
//Cdigo para el botn cmdSalida
Ejercicios
prvate void cmdSalida_ Click(object sender, EventArgs e)
{
Clase();
: Determinar la clasificacin a la que pertenecen los participantes a un maratn. Considerar las
siguientes categorlas:
Edad Clasificacin
15 a 20 aos A
21 a 25 aos B
26 a 45 aos e
57
Elabor: U . Karina Aidee Romero Alvarado
Fundamentos de Programacin
Imprimir el nombre, edad y categorla de cada participante. En caso de que no estn dentro de
alguna categorla desplegar el mensaje No puede participar".
'1-5: Programa que permita resolver, utilizando subprogramas y seleccin mltiple, cada una de la
opciones que se muestran en el siguiente men:
1. Convertir grados Centlgrados a itlll\l furPil he+
2. Convertir Metros a Yardas.
3. Convertir Pulgadas a Centlmetros.
4. Salida
3.4.5 SELECTIVA INTENTA (TRY/CATCH).
try
Las funciones en C# que pueden detectar errores y recuperarse se ejecutan con un bloque try.
Sintaxis:
catch
try{
}
11 Argumentos en C#
Un manejador de excepciones catch con una lista de parmetros sigue a un bloque try.
Sintaxis:
catch(cdigo_de_:_excepcin variable)
{
}
final/y
{
11 Argumentos en C#
11 Argumentos en C#
} ....
Ejemplo 9. Programa que valida una divisin entre cero y muestra mensaje de error. (Prctica 13 del
cuadernillo).
Divisin de 1 O 1 O
~
Validar
)
Fin de validacin
1
~ a i i d a
l
58
Elabor: L.l . Karina Aidee Romero Alvarado
(
1
1
1
1
1
1
1
1
1
.... : ;
~
.
~
n
);:
1
1
1
1
Fundamentos de Programacin
. . . . , "'" . . . . .. . ' ' . ..... .. .. , .. .... . . .. . . . . -- """ ...........
Error . Attempted to divide by zero.
at Winc!owsApplicationl.frmEjemplo9.cmdValidar _Ciid<.(object sender, e) in C:\Documents and Settings\Karina
Romero\Mis doc_umentos\VisuaJ.stuaiO 2005\Projects\Ejemplo9\Ejemplo9Wiemplo9.cs:rne.33
//Cdigo para el botn cmdValidar
prvate void cmdValidar_Click(object sender, EventArgs e)
{
// Programa que valida una divisn entre cero
11 Ejemplo 9
11 Nombre:
" .
//Declaracin e inicializacin de variables
int numero = 10;
int divisor = O;
int resultado = O;
//Uso del try-catch
try
{
resultado= (numero 1 divisor);
}
catch (System.DivideByZeroException aviso)
{
MessageBox.Show("Error
finally
{
" + aviso);
lb1Salida2. Text="Fin de validacin";
}
//Cdigo para el botn cmdSalida
prvate void cmdSalida Click(object sender, EventArgs e )
{ ' - .
Clase ();
59
Elabor: U . Karina Aidee Romero Alvarado
Fundamentos de Programacin
4. ESTRUCTURAS DE REPETICION.
Una estructura de repeticin o ciclo (bucle, lazo o loop) es un segmento de un algoritmo o programa,
cuyas sentencias se repiten un nmero determinado de veces mientras una determinada condicin
existe o es verdadera la condicin. Se debe establecer un mecanismo para determinar las tareas
repetitivas. Este mecanismo es una condicin que puede ser verdadera o falsa y que se comprueba
una vez a cada paso o iteracin del ciclo (total de sentencias que se repiten en el ciclo).
Un ciclo consta de tres partes:
decisin,
cuerpo del ciclo,
salida del ciclo.
El ciclo de la siguiente figura1 es infinito, ya que las sentencias (1), (2) y (3) se ejecutan
indefinidamente, pues no existe salida del ciclo, al no cumplirse una determinada condicin. El ciclo
dejar de ser infinito y tendr fin cuando la condicin sea ~ como en la figura2.
~ i j ~ .
Inicio
SUMA+-0
N+-0
(1)
Inicio
SUMA+-0
N+-0
no
(2) '
i SUMA
'

1 ~ ~ ~ (3) ' ..- ..... -...... -.... -.. L---,
Figura1 Figura2
CONTADORES
Los procesos repetitivos son la base del uso de las computadoras. En estos procesos se necesitan
normalmente contar los sucesos o acci ones internas del ciclo, como pueden ser los elementos de un
archivo, el nmero de iteraciones a realizar por el ciclo, etc. Una forma de controlar un bucle es
mediante un contador.
60
Elabor: L.l . Karina Aidee Romero Alvarado
1
1
1
1
.
1
1
1
Fundamentos de Programacin
Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad constante en
cada iteracin.
Sintaxis en pseudocdigo y para Diagrama de Flujo:
CONTADOR +-- CONTADOR + <incremento o decremento constante>
Ejemplos de Contadores en Incremento y Decremento:
r-
........... ........................
1
Inicio- Inicio
C+--0
e
si
\ ........................ .. ......... .. .. ............. ,,,_, ,, .. .................................................. ............... :
Incremento: Nmeros del 1 al 100 -Decremento: Nmeros del 50 al 1
ACUMULADORES
Realiza la misma funcin que un contador, con la diferencia de que el incremento o decremento de
cada suma es variable en lugar de constante, como en el caso del contador.
Un acumulador o totalizador es una variable cuya misin es almacenar cantidades variables
resultantes de sumas sucesivas.
61
Elabor: L.l . Karina Aidee Romero Alvarado
Fundamentos de Programacin
Sintaxis en pseudocdigo y para Diagrama de Flujo:
ACUMULADOR + <incremento o decremento variable>
Ejemplos de Acumulador en Incremento:
r1
si
:._-----------------;
4.1 REPETIR MIENTRAS.
00-WHILE
El ciclo Do- While es conocido tambin como ciclo que prueba por abajo ya que por lo menos
ejecuta una vez el bloque de sentencias antes de probar la condicin para continuar o sal ir del ciclo.
Una caracterstica muy importante es que se mantendr iterando mientras la condicin sea
verdadera, esto significa que cuando la condicin sea falsa saldr del ciclo .. condicin gue
defina para detener el ciclo puede manejar cualquier tipo de valor, ya sea numrico o alfanumrico.
Sintaxis en Pseudocdigo:
Repetir
de sentencias>
Mientras'<7>
62
Elabor: L.l . Karina Aldee Romero Alvarado
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
Estructura en Diagrama de Flujo:
si
Sintaxis en C#:
n ...
Fin
do
{<sentencias>;
}white(<condicin> );
Ejemplo- Imprime los nmeros del1 al 1 O.
1.- Inicio
2 . - c ~ o
3.- Repetir
c ~ c 1
Imprimir e
4.- Mientras C < 10
5.- Fin
63
Fundamentos de Programacin
c ~ c 1
no
Fin
Elabor: L.l . Karina Aidee Romero Alvarado
Fundamentos de Programacin
Para poder desplegar varios datos en la fonna es necesario hacer ,lo siguiente: Ir a la propiedad
Multlline del objeto Caja de Texto txtDespliegue y activar True para que pennita varias lineas en la
caja, adems verificar que la propiedad WordWrap est tambin en True y por ltimo ir a TextA/ign
y seleccionar Center para centrar el texto.
private void cmdDespliegue_Click(object . sender, EventAr gs e)
{
//Programa que imp rime los nmeros del 1 al 10
//util i zando el ci c l o Do -Whil e
//Ejempl o 1 0
//Nombre :
//Declarac i n d e var iabl es
int C=O;
//De spl i egue d e resul t a d o s
do
{
,1"'?..ro

e = e + 1;
txtDespliegue .Text
while (C < 10);
txtDe spliegue.Text+C.ToString()+"\r\n";
privat e vo id c mdSa lida_ Click( obj ect sende r, Ev e n t Ar gs e )
{
Clase ();
Ejercicios
Imprimir los nmeros pares entre 200 y 300 y calcular la suma de stos.
! Calcular el factorial de cualquier nmero entero positivo. (
__ __)
64
Elabor: L.l . Karina Aidee Romero Alvarado

.,
1
1
1
1
-.1
. . - .
1
1
1
1
.,.
t


j




.,




;

)
_,.
Fundamentos de Programacin
4.2 REPETIR HASTA (WHILE)
El ciclo While es conocido como el ciclo que prueba por arriba porque para poder ejecutar el bloque
de instrucciones debe probar primero la condicin. Aqu tambin se mantendr iterando mientras la
condicin sea verdadera. La condicin que se defina para detener el ciclo puede manejar cualquier
tipo de valor, ya sea numrico o alfanumrico. ;;
Sintaxis en Pseudocdigo:
Mientras <condicin>
<bloque de instrucciones>
Repetir
Sintaxis en Diagrama de Flujo:
_Ejemplo 14f: Imprime los nmeros del 1 al 1 O.
1.-lnicio
2.- e ~ o
3.- Mientras e < 1 O
e ~ e 1
Imprimir e
4.- Repetir
5.- Fin
Fin
65
Elabor: l.l. Karina Aidee Romero Alvarado
Fundamentos de Programacin
--- .. -- -
Ejcmplo11
1
J
1 -10Whtle
J
2

3
l
)
4
....
'
;-:
>.
5
6
7
Fin
..
8
.,
'
9
):
10
.,
prvate void cmdDespliegue _elick(object sender, EventArgs e)
{
//Programa que imprime l os nmeros del 1 al 10
//utilizando el cicl o While
1 /Ejempl o ll
//Nombre:
//Decl aracin de variables
int e =O;
//Despl i egue de resultados
while(e<10)
{
e = e + l;
txtDespliegue.Text txtDespliegue. Text+e.ToStr ing()+" \ r\n";
prvate void cmdSalida_elick(object sender , EventArgs e )
{
elose () ;
Ejercicios
! Determinar si un nmero es primo o no.
! Generar la serie de fibonacci para cualquier entero positivo.
66
Elabor: l.l . Karina Aidee Romero Alvarado
1
1
1
-1
1
1
.1 .... .. .
1
1
1
1

..
Fundamentos de Programacin
4.3 REPETIR DESDE.
El ciclo Repetir Desde (For) es el ms sencillo de los ciclos y es conveniente utilizarlo cuando ya se
conoce el nmero de iteraciones que deber realizar, en caso contrario se deber utilizar otro tipo de
ciclo donde no sea necesario indicar desde el principio las veces que iterar. Como ya se mencion
ste ciclo se repite un nmero especfico de veces, de tal manera que se le debe indicar
explfcitamente el nmero de iteraciones que ejecutar.
El ciclo FOR tiene integrado un contador y la condicin para finalizar, de tal manera que dicha
condicin es nicamente utilizando valores numricos.
Sintaxis en Pseudocdigo:
Desde <variable> {--- <inicio > hasta <final> <Paso <incremento/decremento>>
<bloque de sentencias>
Siguiente <variable>
Smbolo de Diagrama de flujo:
Sintaxis en C#:
a) El flujo entra por la Inicializacin. nicamente la primera
vez pasa por ah.
b) Despus pasa por la Condicin cada iteracin para
probar si termina o contina el ciclo.
e) Por ltimo pasa por el Contador, tambin en cada
iteracin para incrementar o decrementar el contador
interno.
for( <inicial izacion >; <condicion>; <incrementoldecremen to>)
{<bloqve de sentencias>; }
Ejemplo 12. Imprime los nmero del 1 al 1 O utilizando el ciclo FOR:
1.- Inicio
2.- e
3.- Desde C ~ 1 Hasta 10
Imprimir C
4.- Siguiente C
5.- Fin
67
Elabor: L.l . Karina Aidee Romero Alvarado
Fundamentos de Programacin
Ejemplo12 rJ[rg)
. r 110For
1
[
prvate void cmdDespliegue_Click(object sender, EventArgs e)
{
//Programa que imprime los nmeros del 1 al 10
//utilizando el ciclo For
//Ejemplo 12
//Nombre:
//Declaracin de variables
int C;
//Despliegue de resultados
for (C = 1; C <= lO;C++)
{
txtDespliegue.Text = txtDespliegue.Text + C.ToString() + "\r\n";
private void cmdSalida_Click(object sender, EventArgs e)
{
Clase();
Ejemplo 1t Imprime los nmeros pares entre el1 y el40 utilizando el ciclo FOR:
1.- Inicio /--4
2.- e 1 /O j o
3.- Desde 2 Hasta 40 Paso 2
Imprimir e
4.- Siguiente e
5.- Fin
68
Elabor: l.l . Romero Alvarado
(
' ' .
. li .
.
u
: J
t
' !
Fundamentos de Programacin
"' '' -'>',.-,>;.-'U"'-.....,. .,..-..,. - - ... -
Ejemplo13_' . ,
I L: .. !9. ... : J,
(, ,9.qlida ... J
[
privat e vo id cmdDespli egue_Clic k( object sende r, EventArgs e)
{
/ / Programa que imprime los nmeros pares ent re 1 y 40
/ /ut i l izando el ciclo For
/ /Ej empl o 13
/ / Nombre:
//Declaracin ae va ri abl es
int C;
//Despliegue de resultados
f or (C = 2 ; C <= 40; C=C+2)
{
t xtDespl iegue. Text = + + "\r\n ";
priva t e void c mdSa l ida_Cl i c k( obj ect sender , EventArgs e )
{
Cl ose ();
Notas:
Como se puede observar si se desea un incremento diferente a 1 se debe incluir la palabra
"Paso" y especificar el valor. Lo mismo aplica para los decrementos, se debe incluir "Paso" y el
valor negativo (-1, -2, etc.). Podemos concluir entonces que si no se especifica "Paso" por default
69
Elabor: L l. Karina Aidee Romero Alvarado
Fundamentos de Programacin
lo considera incremento de 1. Dentro del slmbolo del ciclo For en diagrama de flujo siempre se
debe especificar el incremento o decremento en la seccin del contador a diferencia del
pseudocdigo.
Por otro lado, en C# se puede utilizar un contador con incrementos en 1 como cont ++ en lugar
de cont = cont + 1, en el caso de incrementos diferentes a 1 es necesario utilizar cont += 2 para
incrementos de 2 en 2, cont += 3 para incrementos de 3 en 3, etc. en lugar de utilizar cont =
cont + 2 o cont = cont + 3.
Para el caso de un contador en decrementos de 1 en 1 se puede usar como cont -- en lugar de
cont = cont - 1 y para los decrementos diferentes a 1 es necesario utilizar cont -= 2 para
decrementos de 2 en 2, cont += 3 para decrementos de 3 en 3, etc. en lugar de utilizar el formato
cont = cont- 2 o cont = cont- 3.
Ejercicios
...... L : Imprimir cualquier tabla de multiplicar.
: Determinar el mximo comn divisor (Algoritmo de Euclides) de dos nmeros enteros.
' .
70
Elabor: Ll . Karina Aidee Romero Alvarado
;.;.o.,;,
,,
:";
Fundamentos de Programacin
5. ARREGLOS
.fl, Je ti,._ fc5 Je f mr-jno bJ/tD < 1 /11/'l#JO e<;{ c&r

Hasta el momento solo se han visto variables sencillas que pueden almacenar un nico valor a la
vez, pero en ocasiones necesitamos que puedan almacenar mas de uno para poder utilizarlos
posteriormente. Por ejemplo: Qu pasara si necesitara capturar e imprimir 10 sueldos y
posteriormente aumentarles el 1 O% para imprimirlos nuevamente pero ahora con el aumento?,
naturalmente que solo podra conservar el ltimo ya que los nueve anteriores se perderan (el
segundo sueldo elimina al primero, el tercero al segundo, el cuarto al tercero, etc.). Precisamente
para este tipo de situaciones es necesario utilizar los arreglos ya que estos pueden almacenar
muchos valores a la vez.
Un arreglo es un conjunto de datos del mismo tipo a los que se hace referencia por un mismo
nombre de variable y el (los) subndice(s).
Existen diferentes tipos de arreglos segn el nmero de dimensiones que incluya. Los tipos
son los siguientes:

Unidimensionales,

Bidimensionales,

Multidimensionales .
Nombre Nom(5)
EJ
Ana
Flor
Jos
Juan
lrma
Variable Arreglo
sencilla Unidimensional
5.1 ARREGLOS UNIDIMENSIONALES
Sueldo(5,3)
1000 1950
3000 1700
2500 1560
2000 1500
1800 1200
Arreglo
Bidimensional
1100
1369
1478
1258
1358
Son aquellos arreglos que solo tienen una dimensin (un slo subfndice que indica el rengln), y
tar:nbin son llamados "vector" o "llsta.".
Num(10)
1
2
3
4
5
6
7
8
9
10
250
321
175
698
52
10
36
312
75
89
1
Num(1)
Num(2)
Num(3)
Num(4)
Num(5)
Num(6)
Num(7)
Num(8)
Num(9)
Num(10)
1

Nombre del arreglo
Subndice.
t
71
Nombre del arreglo.- El arreglo recibir
un solo nombre para identificar a todos
sus elementos.
Subfndice.- Indica la posicin de un
elemento en el arreglo. Es el que
identifica a uno de los elementos con
respecto a los otros.
el
nombre del arreglo y el su"f:>fndTCe.- ---
Elabor: L.l. Karina Aidee Romero Alvarado
Qu nmero est en la posicin Num(3)? 175
Qu nmero est en la posicin Num(7)? 36
Qu nmero est en la posicin Num(9)? 75
Declaracin de un arreglo unidimensional.
Fundamentos de Programacin
Sintaxis para la declaracin del arreglo en Pseudocdigo y Diagrama de Flujo:
<Nombre_del_arreglo> (<Tamao>)(- <Tipo>
Ejemplo: Nombre(10) t- u u
Sintaxis para la declaracin del arreglo en C#:
Considera como primer subndice el cero, de tal manera que si se quiere un arreglo con 10
elementos se debe especificar como tamao el 1 O para los subndices seran las posiciones: O, 1, 2,
3, 4, 5, 6, 7, 8 y 9.
<tipo> []<Nombre_ del_ arreglo>;
<Nombre_ del_ arreglo>=new <tipo>[<tamaflo>};
Ejemplo:
irlt [) N; //Declaracin tipo arreglo
N new int[5]; //Creacin de arreglo
El tamao del arreglo no se indica directamente en la declaracin (in t [ J N; J , si no hasta que
se crea la instancia del arreglo ( N = new in t [ 5 1; ) utilizando new. La siguiente grfica ilustra los
efectos de las instrucciones anteriores de arreglos en C#:
int []N
,t
int [) N;
N ne w i nt [S);
72
Elabor: l.l . Karina Aidee Romero Alvarado
.... .-...
.:
' "'' "J".,.
.:J; '
Fundamentos de Programacin
Inicializacin de un arreglo unidimensional en C#.
Cuando se inicializa un arreglo se declara, crea y asigna los valores en una misma sentencia, por
ejemplo:
i n t []N = new int [ 5 }( 9, 10 , 13, 15, 21];
st ring [J s 1 = new s t ring [ 3 } ("John", "Paul", "Mary"};
Recorrido de un arreglo.
Si nosotros quisiramos recorrer todos los elementos en el arreglo ya sea para almacenar
datos en l o simplemente para imprimirlos, tendramos que indicar el nombre del arreglo y la
posicin de cada uno de los elementos. Por Ejemplo:
1.-lnicio
2.- Num(5) ~ O
3.- Leer "Numero:", Num(1)
4.- Leer "Numero: ", Num(2)
5.- Leer "Numero: ", Num(3)
6.- Leer "Numero:", Num(4)
7.- Leer "Numero: ", Num(5)
B.-Imprimir "Numero: ", Num(1)
9.- Imprimir "Numero: ", Num(2)
10.-lmprimir "Numero: ", Num(3)
11.-lmprimir "Numero:", Num(4)
12.-lmprimir "Numero:", Num(5)
13.- Fin
'-.
Como se puede observar fue necesario utilizar una instruccin para cada elemento que se captur en
el arreglo, adems de las instrucciones para imprimir.
Si ponemos atencin podemos observar que los subndices van incrementando de manera
constante: primero se captur Num(1 ), despus Num(2) y as sucesivamente. Con esto nos damos
cuenta que se puede utilizar un contador para los subndices controlndolo con un ciclo (para este
caso se recomienda el ciclo FOR) .
1.- lnicio
2.- Num(5) ~ O R ~ O
3.- Desde R ~ 1 Hasta 5 Se pone como subfndice
Leer "Numero: ", Num(R) el contador R, que en cada
4.- Siguiente R ~ iteracin incrementar de
5.- Desde R ~ 1 Hasta 5 ~ valor.
Imprimir "Numero: ", Num(R)
6.- Siguiente R
7.- Fin
Aquf el contador "R" cambiar de valor en cada iteracin iniciando con 1 hasta que llegue al 5, de tal
manera que al poner como subfndice a la variable contador se ir accesando a cada elemento en el
arreglo automticamente .
73
Elabor: L.l . Karina Aidee Romero Alvarado
Fundamentos de Programacin
Ejemplo 14. Capturar 5 nombres en un arreglo y posteriormente imprimir. (Prctica 18 del
cuadernillo, resuelto con inicializacin del arreglo).
1.-/nicio
2.- Nom(5) +-- ""; R +--O
3.- Desde R +-- 1 Hasta 5
Leer "Nombre: n, Nom(R)
4.- Siguiente R
5.- Desde R +-- 1 Hasta 5
Imprimir "Nombre: n, Nom(R)
6.- Siguiente R
7.- Fin
: Jaime
.Erika .
~ ~ ~ ~ ~ d o
L ____ __ __,
/ /Cdi go para e l botn cmdCaptura
:_ galida J
p ri va t e void c mdCap t ur a_Cl ick (objec t sender , Eve ntAr gs e )
{
//Declaracion de variables
int R;
74
Elabor: U . Karina Aldee Romero Alvarado
1
1
1
1
1
1
. ~ . ! ...
:- . : :,.'
~ u 'lO ..
~
.. Ji
Fundamentos de Programacin
/ / Ini cial izaci on de l vect or
s tring[) Nom=new s tring[5) {"Ana","Jaime","Erika ","Eduardo","Elena"};
/ / Despl ega do del vect o r
for (R = O; R < 5; R++)
{
txtDespliegue.Text
}
txtDespli e gue.Te xt+ Nom[R)+"\r \ n";
/ /Cdigo para e l bot n cmdSa l ida
private void cmdSalida_Click(objec t sender, Eve ntAr gs e)
{
Clase();
Nota: Seleccionar la caja de texto txtDespliegue e ir a la Propiedad Multiline y elegir true.
Ejemplo 15. Capturar 1 O nmeros en un arreglo, posteriormente los ordena ascendentemente e
imprime. (Prctica 19 del cuadernillo, resuelto con nmeros aleatorios).
1.-/nicio
2.- Num(10) R A B TEMP
3.- Desde R 1 Hasta 10
Leer "Numero: ", Num(R)
4.- Siguiente R
5.- Desde 1 Hasta 10
Desde B 10-1 Hasta A Paso -1
Si Num(B-1) > Num[B) Entonces
TEMP
Num(B- 1) Num(B)
Num(B) TEMP
Fin_Si
Siguiente B
6.- Siguiente A
7.- Desde R 1 Hasta 10
Imprimir "Numero: ", Num(R)
8.- Siguiente R
9.- Fin
75
Num(10) R f- O
Af- O; B f- O;
TEMP f- O
Elabor: L.l . Karina Aidee Romero Alvarado
[
TEMP (-- Num(B- 1)
Num(B - 1) (-- Num(B)
Num(B) (-- TEMP
.... -- ............. _,,.- . .,_ ... . __ ,.,.. __ '"' ....... --. -
[;1 Ejemplo 15 (g[rg)
Qrdenamiento de N umeros
---m '] .
Original
- l
63
69
72
38
71
14
192
, 53
179
_j
Ordenado
14
30
38
53
63
69
71
72

.bif11piar ... J
.. J
/ / Cdigo p ara e l botn c mdDespl i egue
p r i vate void c mdDespli egue Cli c k (obJ eCt sender ,
{
/ /Dec l ar a c i o n
int R, a , b , t e mp;
int cont =lO;
int [] N;
Event Args e )
Fundamentos de Programacin
Num(R)
.,
76
Elabor: L.l . Karina Aidee Romero Nvarado
1
1
1
1
//Generador de aleatorios enteros
Random aleatorio= new Random();
//Creacion de la referencia al arreglo
N= new int[10);
/ /Entrada de numero aleatorios al vector y desplegado
for (R = O; R < 10; R++)
(
N[R) =
Fundamentos de Programacin
txtOriginal.Text = txtOriginal.Text + N[R].ToString() + "\r\n";
//Ordenamiento de burbuja
for(a=1; a <cont;++a)
for(b = cont-1; b>=a; --b)
>N[b])
{
temp = N[b- 1);
N[b- 1) = N[b);
N[b) = temp;
//Desplegado del vector ordenado
for (R = O; R < 10; R++)
{
txtOrdenado.Text = txtOrdenado.Text + N[R].ToString() + "\r\n";
//Cdigo para el botn cmdLimpiar
private void cmdLimpiar_Click(object sender, EventArgs e)
{
txtOrdenado.Clear();
txtOriginal.Clear();
//Cdigo para el botn cmdSal i da
private void cmdSalida_Click(object sender, EventArgs e)
(
Clase();
77
Elabor: L.l. Karina A idee Romero Alvarado
Fundamentos de Programacin
A continuacin se muestra una solucin diferente en C# para el ejemplo 15 utilizando variables
globales. Se deber agregar el botn cmdCaptura.
//Decl aracin g l 0bal de var i ables
int r O;
int() N= new int [lO];
//Cdigo del botOn cmdCaptura
private void cmdCaptura_Click(object sender, EventArgs e)
{
N(r) = (System.Int32. Parse(txtNumero.Text));
txtNumero.Focus();
txtNumero.Clear();
txtOriginal.Text=txtOriginal.Text+(N(r) .ToString());
r++;
/1 Condicin que termina con la captura de los 10 nmeros
if (r == 10)
{
txtNumero.Text = "Son 10";
txtNumero.Enabled = false;
cmdCaptura.Enabled = false;
cmdDespliegue.Enabled = true;
//Cdigo del botn cmdDespliegue
private void cmdDespliegue_Click(object sender, EventAr gs e)
{
//Declaracion devariables
int a,b,temp;
//Ordenami ento d e burbuja
for(a=1;a<10;++a)
for{b = 1-1; b>=a; --b)
if{N[b- 1) > N[b])
{
o }
temp = N[b- 1];
N[b- 1) = N[b);
N[b) = temp;
//Despl e g a d o d e l vector o rdenado
for {r=O;r<l O;r++)
{
t x tOrde nado .Text txtOrdenado.Text + N[R).ToString{) + "\r\n";
//Cdigo de l botn cmdLimpiar
private void cmdLimpi ar_Cli ck (object sender , Ev =r. t T> r ;l s e )
(
//Activa y d esa c tiva botones
cmdCapt ura. Enabled = true;
cmdDespliegue.Enabled = false;
//Limpi a l a s c a jas d0 text o
txtOrigina l .Cl ea r();
78
Elabor: L.l . Karina Aidee Romero Alvarado
1
1
1
1
1
,
txtOrdenado .Clear();
//Act i va la c a j a ~ texto
txtNumero.Ena bled = true;
txtNumero.Clear();
txtNumero . Focus();
r = O;
privat e vo id c mdSalida_Click(object sender, Event Ar cr s e)
{
Close ();
Ejercicios
Fundamentos de Programacin
! Dar entrada a 1 O enteros y almacenarlos en un vector para posteriormente imprimirlos invertidos.
! . Imprimir cul es el mayor de 15 enteros almacenados en un vector.
! Determinar la mediana de un vector de 20 enteros.
79
Elabor: U . Karina Aidee Romero Alvarado
Fundamentos de Programacin
5.2 ARREGLOS BIDIMENSIONALES
Son aquellos arreglos que tienen dos dimensiones (un sublndice que indica el rengln y otro el
nmero de la columna), y tambin son llamados "matriz" o "tabla".
Arreglo(Rengln, Columna)
Num(10,3)
1
1
2
3
4
5
6
7
8
9
10
5
7
5
3
4
7
8
2
4
8
2 3
8 6
7 3
6 2
5 4
3 65
2 3
9 2
7 6
4 4
6 10
Num(1, 1 ), Num(1,2), Num(1 ,3),
Num(2, 1 ), Num(2,2), Num(23),
Num(3,1 ), Num(3,2), Num(3,3),
Num(3,1 ), Num(4,2), Num(4,3),
Num(5,1 ), Num(5,2), Num(5,3),
Num(6,1), Num(6,2), Num(6,3),
Num(7,1), Num(7,2), Num(7,3),
Num(8,1 ), Num(8,2), Num(8,3),
Num(9,1 ), Num(9,2), Num(9,3),
Num(1 O, 1 ), Num(1 0,2), Num(10,3)
Qu nmero est en la pos1cin Num(3,2) ? 6
Qu nmero est en la posicin Num(7,3)? 2
Qu nmero est en la posicin Num(9,1) ? 4
Sintaxis para la declaracin del arreglo en Pseudocdigo y Diagrama de Flujo:
<Nombre_del_arreglo> (<Tamao>, <Tipo>
Ejemplo: Nombre(10,3) <-- ""
Sintaxis para la declaracin del arreglo en C#:
Considera como primer' sbndice el cero, de tal manera que si se quiere un arreglo con 1 O
elementos se debe especificar como tamao el 1 O para los subndices seran las po,siciones: O, 1, 2,
3, 4, 5, 6, 7, 8 y 9.
<tipo> []<Nombre_ del_ arreglo>;
<Nombre_ del_ arreglo>=new <tipo>[<tamao> ],
Ejemplo:
int [,] N; //Declaracin tipo arregl o
N=new int[3, 2 ) ; //Creacin de arregl o
80
Elabor: L.l . Karina Aidee Romero Alvarado
1
1
1
1
1
1
1
1
1
:1
1
1
1
"1
; ',""
. .)
-
Fundamentos de Programacin
Inicializacin de un arreglo bidimensional en C#.
Cuando se inicializa un arreglo se declara, crea y asigna los valores en una misma sentencia, por
ejemplo:
in t [ , ] N = n e ~ i n t [ 3, 2 } { { 1, 2 }, { 3, 4 } , { 5 , 6 } } ;
Recorrido de un arreglo.
Si nosotros quisiramos recorrer todos los elementos en el arreglo ya sea para almacenar
datos en l o simplemente para imprimirlos, tendramos que indicar el nombre del arreglo y la
posicin de cada uno de los elementos. Por Ejemplo:
1.-/nicio
2.- Num(3,2) ~ O
3.- Leer "Numero: ", Num{1, 1)
4.- Leer "Numero:", Num(1,2)
5.- Leer "Numero: ", Num{2, 1)
6.- Leer "Numero:", Num{2,2)
7.- Leer "Numero:", Num{3, 1)
8.- Leer "Numero:", Num{3,2)
9.-/mprimir "Numero:", Num(1, 1)
10.-/mprimir "Numero: ", Num{1,2)
11.-/mprimir "Numero: ", Num{2, 1)
12.-/mprimir "Numero: ", Num{2, 1)
13.-/mprimir "Numero:", Num{3, 1)
14.-lmprimir "Numero:", Num{3,2)
15.- Fin
: -
Como se puede observar fue necesario utilizar una instruccin para cada elemento que se
captur en el arreglo, adems de las instrucciones para imprimir.
Aqu nos damos cuenta que los subndices van incrementando de manera constante: primero
se captur Num( 1,1 ), despus Num( 1 ,2) y as sucesivamente. Con esto podemos concluir que se
puede utilizar un contador para cada uno de los subndices controlndolos con un ciclo
respectivamente (para este caso se recomienda el ciclo FOR nuevamente).
1.-/nicio
2.- Num{3,2) ~ O ; R ~ O ; C ~ O
3.- Desde R ~ 1 Hasta 3 Se pone como subndice
Desde e 1 Hasta 2 el contador R para los
Leer "Numero:", Num(R,e) renglones y C para
Siguiente e columnas, que en cada
4.- Siguiente R /teracin incrementarn de
5.- Desde R ~ 1 Hasta 5 valor.
Desde e ~ 1 Hasta 2
Imprimir "Numero: ", Num(R, e
Siguiente e
6.- Siguiente R
7.- Fin
81
Elabor: U . Karina Aidee Romero Alvarado
11 Condicin que termina con la captura de los nombres
if (r == 5)
{ txtNornbre.Text = "";
txtNornbre.Enabled = false;
cmdCaptura.Enabled = false;
cmdDespliega.Enabled = true;
e = O;
r = O;
//Cdigo botn salida
prvate void cmdSalida_Click(object sender, EventArgs e)
{
Close();
Fundamentos de Programacin
//Cdigo para el botn que despliega arreglo al capturar el usuario
private void cmdDespliega_Click_l(object sender, EventArgs e)
{
//Despliegue de los nombre en la caja de texto
for (r = O; r < 5; r++)
{
for (e = O; e < 3; e++)
{
txtdesp.Text = txtdesp.Text + Nom[r, e) + "\t";
txtdesp.Text = txtdesp.Text + "\r\n";
//Cdigo para el botn que inicializa y de spliega el arre glo
private void cmdinicializacion_Click(object sender, EventArgs e)
{
cmdCaptura.Enabled = false;
//Inicializacin del arreglo
string[,) N=new s:tring [5,3) {{"Ana","Juan","Mario"},
{ "Irma", "Emma", "Jos"}, { "Alan", "David", "Elsa"}, { "Gizeh", "Natn", "Zuly"},
{"Pedro","Tania","Maria"}};
//Despliegue de los nombre en la caja de t e xto
for (r = O; r < 5; r++)
{
for (e = O; e < 3; e++)
txtdesp.Text = txtdesp.Text + N[r, e] + "\t";
txtdesp.Te xt = t xtdesp.Text + "\r\n";
//Cdigo para e l prepa ra r una captura o j_ ni.ciaJ.i.zacin
prva t e vo id cmdOtro_Click(object sender, Even t Ar gs e)
(
txtNornbre.Enabled = true;
cmdCaptura . Ena bled = true ;
cmdinicializacion.Enabl e d = true ;
cmdDes pliega . Enabled = f a lse ;
txtdes p . Text ="";
txtNombre.Focus();
txtNombre.Clear();
e = O; r = O;
84
Elabor: L.l. Karina Aidee Romero Alvarado
1
1
1
....

. . .
J;.
1

'if-
Fundamentos de Programacin
Ejercicios
! Dar entrada a enteros y almacenarlos en una tabla de 4*4 e imprimir la diagonal principal.
! Dar entrada a enteros y almacenarlos en una tabla de 3*4 e imprimir el rengln 2 y columna 3.
! Dar entrada a enteros y almacenarlos en una tabla de 3*3 e imprimir la traspuesta.
85
Elabor: L.l . Karina Aidee Romero Alvarado
BIBLIOGRAFIA
ESTRUCTURA DE DATOS algoritmos, abstraccin y objetos
Luis Joyanes Aguilar, Ignacio Zohonero Martfnez
Editorial McGraw Hill
ESTRUCTURA DE DATOS Referencia prctica con orientacin a objetos
Romn Martfnez, Elda Quiroga
Editorial Thompson
METODOLOGIA DE LA PROGRAMACION
Cair
Editorial Prentice Hall
VISUAL C# 2005 Step by Step
John Sharp
Microsoft Press
REFERENCIAS
http://www.sep. gob. mxlwb2/sep/sep _Noticias T acnologia
http://www-gris. de t. uvigo. es/-avilas/UM Llnode 1. html
Fundamentos de Programacin
86
Elabor: l.l . Karina Aidee Romero Al varado
1
1
,
' ;
f. .
J
-,S -
~ .
. . ~ '
' '.. 'i ;
1
el

Vous aimerez peut-être aussi