Académique Documents
Professionnel Documents
Culture Documents
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