Sie sind auf Seite 1von 186

1

FUNDAMENTOS DE
PROGRAMACIN
Inicio
Inicio

Nota
Nota

Nota>0
Nota>0
Nota<=20
Nota<=20

Nota>10.5
Nota>10.5 Nota
Nota no
no vlida
vlida

Aprobado
Aprobado Reprobado
Reprobado

Fin
Fin

APLICACIN WINDOWS
EDICIONES Guido Raul Larico Uchamaco
FUNDAMENTOS DE PROGRAMACIN
CON C#
Aplicacin Windows

Guido Raul Larico Uchamaco

EDICIONES
FUNDAMENTOS DE PROGRAMACIN
CON C#
Aplicacin Windows

Guido Raul Larico Uchamaco

ISBN:

ISBN: (Versin Electrnica)

Hecho Depsito Legal en la Biblioteca Nacional del Per N:

Editado por:

GRUPO PUNORED S.R.L

Para su sello editorial EDICIONES LOS ANDES

www.losandes.com.pe

Av. Floral 1128 Puno Per

e-mail: director@losandes.com.pe
INTRODUCCION

Como no recordar las primeras clases de programacin y la ilusin de


aprender a programar en este libro plasmar los primeros pasos que todo
estudiante de la carrera profesional de ingeniera informtica, sistemas,
ciencias de la computacin y afines, debe aprender y dominar los
fundamentos de programacin para resolver los problemas que adems
requiere de anlices, diseo y codificacin.

Por tanto este libro contiene conceptos y ejemplos bsicos de


programacin que le ayudar a resolver sus dudas y dominar las
principales estructuras de programacin. Los problemas estn resueltos
y codificados en el lenguaje C# modo windows.

El algoritmo siendo un conjunto de instrucciones que permite resolver un


problema, puede estar representado en forma de pseudocdigos o en
forma diagramas de flujo de datos incluso otras formas, que dan una
visin amplia de cmo debe iniciarse y finalizar una programacin
basada en operadores, estructuras selectivas, estructuras repetitivas y
manejo de arrays, finalmente todo algoritmo debe ser codificacado en un
lenguaje de programacin.

El pseudocdigo no es directamente un lenguaje de programacin que se


pueda ejecutar en un computador y probar su correcto funcionamiento y
tampoco indica si est correctamente colocado en los bloques de cdigo,
ya que cada lenguaje de programacin como C#, C++, Java, Python,
entre otros, trabaja sus funciones distintamente a otros, pero siempre
manteniendo la lgica inicial de algoritmos. Por esta razn el libro
contiene problemas bsicos resueltos y codificado en C#

Pasaran los aos y la programacin seguir mejorando, pero nunca se


podr olvidar. Esperando sea de su agrado y ayudar, con este texto
pretendemos iniciarlos en el camino de la programacin de C# modo
Windows, que desarrollen sus conocimientos cada vez mejor.
INDICE
CAPTULO I Conceptos Generales..
... 09
Algoritmo
12
Fases de creacin de
algoritmos....12
Representacin del algoritmo.
...12
Diagrama de
flujo..13
Instrucciones..1
4
Instrucciones de
inicio/fin..14
Instrucciones de asignacin
14
Instrucciones de lectura..
14
Instrucciones de escritura...
14
Instrucciones de bifurcacin..
.14
Un diagrama de flujo datos.
15
Diagramas N-S....
..15
Pseudocdigo..
15
Programa..
..16
Datos..
..16
Informacin..
..16
Procesamiento de datos...
16
Palabras reservadas.
16
Variables.
....16
Constantes...
...17
Tipos de datos simples.
17
Tipo de dato complejo.
.18
Cadena..18
Expresiones..18
Expresiones lgicas
18
Operadores
Aritmticos..18
Operadores Relacionales...
19
Operadores
Lgicos.19
Operadores de cadena.
20
Versiones de Microsoft Visual
Studio.20
Microsoft Visual
Studio..20
Visual Studio
6.0..21
Visual Studio .NET (2002)
.21
Visual Studio .NET
2003...22
Visual Studio 2005.
.22
Visual Studio
2008..22
Visual Studio
2010..22
Visual Studio 2010
Ultimate.23
Visual Studio 2010
Premium...23
Visual Studio 2010
Professional..23
Visual Studio TeamFoundation Server
2010.23
Visual Studio Test Professional
2010.23
Visual Studio Team Explorer Everywhere 2010.
24
Visual Studio
2012..24
Visual Studio 2012 2013..
..24
Visual Studio 2013 RC
24
Visual Studio Express 2013 RC
24
Creacin de un proyecto en
C#..............................................................................31
Codificacin del diagrama de flujo en
C#..............................................................34
CAPTULO II Estructura
Secuencial..35
Ejercicio 01 rea de un
tringulo..36
Ejercicio 02 Estructura de forma inversa..
..38
Ejercicio 03 Resolver
(A+B)2/240
Ejercicio 04 Promedio de un
alumno42
Ejercicio 05 Cuadrado y cubo de un nmero positivo.
..44
Ejercicio 06 Permetro y superficie de un rectngulo..
.46
Ejercicio 07 rea de una circunferencia..
48
Ejercicio 08 Conversin de unidades..
..50
Ejercicio 09 Casa de cambio.
..52
Ejercicio 10 rea y volumen de un
cilindro.54
Ejercicio 11 Conversin de acres a
hectreas.56
Ejercicio 12 rea de un tringulo en base a sus lados.
....58
Ejercicio 13 Intercambio de tres
valores..60
Ejercicio 14 Intercambio de 5
nmeros62
Ejercicio 15 Nmero mnimo de
billetes......65
Ejercicio 16 Operaciones sobre un
cono...67
Ejercicio 17 rea y volumen de una
esfera.....69
Ejercicio 18 Operaciones sobre un
cubo..........71
Ejercicio 19 Distancia entre dos puntos.
.........73
Ejercicios Propuestos.
..75
CAPTULO III Estructura Lgicas
Selectivas..76
Estructura Lgicas
Selectivas...77
Estructura Si...Entonces (Seleccin simple)
..77
Ejercicio 20 Alumno aprobado.
..78
Ejercicio 21 Aumento al trabajador..
...80
Estructura Si...Entonces..Si no (Alternativa Doble)..
.82
Ejercicio 22 Alumno aprobado II..
83
Ejercicio 23 Aumento a trabajador II..
85
Estructuras
anidadas..87
Ejercicio 24 Validacin de nota
ingresada..88
Ejercicio 25 Nmero par o
impar..90
Ejercicios Propuestos
92
CAPTULO IV Estructura Selectiva
Mltiple..93
La estructura de seleccin
mltiple.....96
Ejercicio 26 Resolver funcin...
..97
Ejercicio 27 Aumento de sueldo segn
categora.100
Ejercicio 28 Nmero de sonidos emitidos por un
grillo..101
Ejercicio 29 Factores que satisfacen a P3+Q4-
2P2<680103
Ejercicio 30 Mayor y menor de dos
nmeros105
Ejercicio 31 Reportar calificacin segn rango de
notas107
Ejercicio 32 Mayor de tres
nmeros...110
Ejercicio 33 Nmeros ordenados.
....111
Ejercicio 34 Muestra men de operaciones...........
.....114
Ejercicio 35 Aumento de trabajador segn categora.
117
Ejercicio 36 Promedio de alumno.
...120
Ejercicio 37 Validar
fecha.....124
Ejercicio 38 Calcular da siguiente.
128
Ejercicio 39 Das transcurridos.
......131
Ejercicios
Propuestos.....136
CAPTULO V Estructura Lgica
Repetitiva137
Estructura hacer
mientras...140
Ejercicio 40 Nmina de una
empresa.140
Ejercicio 41 Obtener nmero de ceros
ingresados...142
Estructura
mientras..146
Ejercicio 42 Suma de gastos de
viaje..147
Ejercicio 43 Pago de
trabajadores...149
Ejercicio 44 Clculo de serie 100+98+96+94+
+0.....152
Ejercicio 45 Mostrar los N nmeros
enteros.154
Ejercicio 46 Promedio de un grupo de
alumnos...156
Ejercicio 47 Operaciones con nmeros pares e
impares158
Ejercicio 48 Tabla de multiplicar
162
Problemas Propuestos
165
Estructura Desde
166
Ejercicio 49 Suma de los nmeros naturales
169
Ejercicio 50 Nmero
primo...171
Ejercicio 51 Operaciones con
sueldo...173
Ejercicio 52 Serie 5, 8, 11, 14, 17, 20, 23,
...n.175
Ejercicio 53 Serie 1, 2, 3, 4, 8, 16, 32,
.10000.176
Problemas Propuestos
178
BIBLIOGRAFA..180
CONCEPTOS GENERALES

CAPITULO I En este Captulo conocer


conceptos de algoritmos y
programas basados en
operadores aritmticos, para
luego plasmarlo en Diagramas
de Flujo de Datos y aplicarlo en
C # modo consola.

FUNDAMENTOS DE PROGRAMACIN
Conceptos Generales 14

Algoritmo

Mtodo que se describe la solucin de un problema computacional,


mediante una serie de pasos precisos definido y finito.
Preciso: Indicar el orden de realizacin en cada paso
Definido: Repetir los pasos n veces y se obtiene el mismo resultado
Finito: resultado esperado.

La solucin de algoritmo debe describir tres partes.


Entrada: datos que se requiere para poder ejecutar.
Proceso: Acciones y clculo a realizar.
Salida: resultado esperado.

Entrada Proceso Salida

El algoritmo constituye un listado de instrucciones que indica el camino a


seguir que permite hallar la solucin de un problema. Mtodo y notacin en
las distintas frmulas del clculo.

El algoritmo constituye un mtodo para resolver un problema mediante una


secuencia de pasos a seguir. Dicha secuencia puede ser expresada en
forma de diagrama de flujo con el fin de seguirlo de una forma ms sencilla.

Fases de creacin de algoritmos


Existen tres fases en la elaboracin de algoritmo.
1. Anlisis: En esta se determina cul es exactamente el problema a
resolver. Qu datos forman la entrada del algoritmo y cuales debern
obtenerse como salida.
2. Diseo: Elaboracin de algoritmo.
3. Prueba: Comprobacin del resultado. Se observa si el algoritmo
obtiene la salida esperada para toda las entradas

Representacin del algoritmo


Para expresar la solucin de un problema se pueden usar diferentes
herramientas de programacin.

Diagrama de flujo (Flow Chart)


Diagrama N-S (Nassi-Schneiderman)
Pseudocdigo.

Diagrama de flujo
Conceptos Generales 15

Es una representacin grfica de dicha secuencia de instrucciones que


conforman el algoritmo.
Los smbolos grficos a utilizar para el planteo de diagramas de flujo son:

Inicio/Fin: Se usa para indicar el inicio o fin de un


diagrama de flujo de datos

Entrada/Salida: Se utiliza para ingresar y mostrar datos,


ser el smbolo usado en este texto.

Proceso: Cualquier tipo de operacin que pueda originar


cambio de valor. Operaciones aritmticas, de
transformaciones, etc.

Condicin: Indica operaciones lgicas o de computacin


entre datos y en funcin del resultado de la misma
determina cul de los distintos caminos alternativos del
programa se debe seguir.

Conector: Sirve para enlazar dos partes cualesquiera de


un programa a travs de un conector en la salida y otro
conector en la entrada.

En caso de: Usado para indicar varias acciones posibles


segn sea un dato de entrada al control.

Desde: Estructura repetitiva que indica un ciclo de N


repeticiones de una o ms acciones.

Entrada/Salida: Se usa para indicar el ingreso o salida


de datos.

Sub Algoritmo

Pantalla

Conector fuera de pgina

Direccin (Flujo)

Almacenamiento interno
Conceptos Generales 16

Instrucciones
Son acciones que debe realizar un algoritmo para resolver un problema. Las
instrucciones ms comunes son las siguientes.
Instrucciones de inicio/fin Instrucciones de escritura
Instrucciones de asignacin Instrucciones de bifurcacin
Instrucciones de lectura

Instrucciones de inicio/fin: Representa el inicio y fin del algoritmo.

Inicio Inicio

Fin Fin

Instrucciones de asignacin: Representa la asignacin de un valor a una


variable, se puede representar usando una flecha o smbolo de igualdad,
que es el smbolo usado por muchos de los e lenguajes de programacin.

N20 N20

N20 N=20

Instrucciones de lectura: Representa el ingreso de datos mediante un


dispositivo de entrada, que muchas veces es representado por un smbolo
de teclado.

Leer N
Leer N

Leer N Leer N

Instrucciones de escritura: representa la salida de informacin mediante


un dispositivo de salida, puede ser representado por el smbolo de
entrada/salida, por smbolo de pantalla o impresora.
Escribir a Escribir a

Escribir a Escribir a

Instrucciones de bifurcacin: Cambian de flujo de programa segn el


resultado de una expresin lgica.
F V
Exp. Log

Instruccin Instruccin
Conceptos Generales 17

Un diagrama de flujo datos


Es la representacin grfica de un algoritmo.

Inicio

b, h

a=b+h

Fin

Diagramas N-S
Conocido tambin como el diagrama de Chapin, es como un diagrama de
flujo sin flechas y constan con cajas continuas que se leern siempre de
arriba-abajo, una herramienta que favorece la programacin estructurada y
rene caractersticas grficas propias de diagramas de flujo y lingsticas
propias de pseudocdigos y sus estructuras lgicas son las siguientes:

Estructura Secuencial N-S

Inicio
Accin
A
Leer n
Accin
B Leer n
a=n+(n-1)/2
a=n+(n-1)/2

Imprimir a Imprimir a

Accin Fin
N

Pseudocdigo
Permite expresar las instrucciones en un lenguaje comn para facilitar la
escritura como la lectura de la solucin de programa.

1. Iniciar programa
2. Declarar variable
b : Entero
Conceptos Generales 18

h : Cadena

3. Leer entrada
Leer b, h
4. Calcular proceso
a=b+h
5. Imprimir salida
Imprimir a
6. Finalizar programa

Programa
Un programa o software es un conjunto de instrucciones ordenadas para
ejecutarse en una computadora en forma rpida y precisa.
El software se divide en dos grupos, software de sistema operativo y
software de aplicaciones.

Datos
Son las caractersticas propias de cualquier entidad. Por ejemplo: los datos
de una persona como su edad, fecha de nacimiento, domicilio, nmero de
telfono, etc.

Informacin
Es el conocimiento relevante producido como resultado del procesamiento
de datos y adquirido por la gente para realzar el entendimiento y cumplir
ciertos propsitos.

Procesamiento de datos
Consiste en la recoleccin de datos de entrada que son evaluados y
ordenados para ser colocados de manera que produzcan informacin til.

Palabras reservadas
Palabras usadas por el lenguaje de programacin que no deben ser usadas
como identificadores de variables, funciones entre otros.

Algunas palabras reservadas.


int, float, double, if, for, switch, this, arrayetc.

C# al igual que C++ es compatible con el tipo de constante cadena de


caracteres. Dentro de la cadena de caracteres se pueden usar secuencias
de escape. Una cadena de caracteres puede iniciar con el smbolo @
seguido por una cadena entre comillas, en este caso, todas las secuencias
de escape no se respetan, adems as la cadena puede ocupar dos o ms
lneas.
Conceptos Generales 19

Variables
Son los elementos que se utilizan para contener datos de distintos tipos:
nmeros, letras, cadenas de caracteres, valores lgicos, etc. El valor
contenido es una variable puede cambiar a lo largo de la ejecucin.
Veamos algunos ejemplos de declaracin de variables correctas e
incorrectas.

Variable
suma = Correcto
numero = Correcto
_edad = Correcto
_nombre = Correcto
digito1 = Correcto
$edad = Incorrecto (Comienza con el smbolo $)
Nmero = Incorrecto (La variable tiene tilde)
1digito = Incorrecto (Comienza con un nmero)

Ejemplo de pseudocdigo.
C#
//variable //variable
n: Entero int n;

Constantes
Son elementos que contienen datos, el valor asignado es una constante es
fijo y no se puede cambiar durante toda la ejecucin del programa.
Ejemplo de pseudocdigo.
C#
//Constante //Constante
PI3.14159: Real Const float PI=3.13159F;
//Error ya no puede //Error ya no puede
modificarlo modificarlo
PI3.1415 PI=3.1415

Tipos de datos simples (primitivos)


Al declarar una variable debemos indicar el tipo de dato que es permitido
almacenar en dicha variable. Cada lenguaje de programacin trabaja con
una variedad de tipos de datos, por lo general todos usan los llamados tipos
de datos primitivos, que son los siguientes.
Entero
Real
Carcter
Lgico
Conceptos Generales 20

Entero: Representan los nmeros enteros (no almacena decimales)


Real: Representan los nmeros reales (almacena decimales)
Carcter: Representa un carcter de cualquier tipo texto, nmeros,
smbolo etc.
El valor se coloca entre comillas simple.
Lgico: Representan los valores verdaderos o falso, conocido tambin
como boolean, no se colocan comillas ni simples ni dobles.
Tipo de dato complejo (estructurados)
Son aquellos que estn constituidos por tipos de datos simples y definen
una estructura de datos si el tipo de cadena, que est compuesta por un
conjunto de caracteres (tipo de datos carcter).
Existe una variedad de tipo de datos complejos, solo mencionaremos dos
tipos complejos (cadena y arreglos).

Cadena: representa un conjunto de caracteres, internamente es un arreglo


de caracteres, por lo general se representa con comillas dobles.

Expresiones: Las expresiones son las combinaciones de constantes,


variables, smbolo de operacin, parntesis y nombres de funciones
especiales.
a+(b+3)/c

Expresiones lgicas (condicionales).


6=2 Falso
6>2 Verdadero
6<=2 Verdadero
6<>2 Falso

Cada expresin toma un valor que se determina tomando los valores de las
variables y constantes implicadas y la ejecucin de las operaciones
implicadas.
Clasificacin de operadores
Operadores Aritmticos
Operadores Relacionales
Operadores Lgicos
Operadores de cadena

Operadores Aritmticos
Los operadores aritmticos nos permiten, bsicamente, hacer cualquier
operacin aritmtica (suma, resta, multiplicacin y divisin).

OPERADO ACCIN EJEMPLO RESULTADO


R
Conceptos Generales 21

- Resta x=6-3 3
+ x=5+4 9
* Multiplicaci x=2*2 4
n
/ Divisin x=5/2 3
Potencia x=32 9
MOD Mdulo x=5 MOD 1
2
DIV Divisin x=5 DIV 2 2
entera

Operadores Relacionales
Estos operadores nos permiten evaluar las relaciones (igualad, mayor,
menor, etc).

OPERADO ACCIN
R
> Mayor que
>= Mayor
igual que
< Menor que
<= Menor
igual que
= Igualdad
!= Diferente
a

Operadores Lgicos

OPERADO ACCIN
R
Y Y lgico
O O Lgico
No No Lgico

Y Lgico: Si p y q son valores lgicos, ambos deben ser verdaderos para


que Y devuelva verdadero.

Expresin lgica (Condiciones).

8>4 Y 3=6 Falso


7<> Y 5>=4 Verdadero
Conceptos Generales 22

O Lgico: Si p y q son valores lgicos, uno de ellos debe ser verdadero


para que O devuelva verdadero.

Expresin lgica (Condiciones)


8>4 O 3=6 Verdadero
7<> Y 5>=4 Verdadero

NO Lgico: Si pes un valor lgico, el operador NO invierte su valor.

NO (8>4) Falso
NO (7<>7) Verdadero

Para C# se utiliza la siguiente simbologa.

OPERADO ACCIN
R
&& Y lgico
|| O Lgico
! No Lgico

Operadores de cadena
Son aquellos operadores que permiten realizar operaciones con cadenas,
por lo general unir cadena llamado tambin concatenar.

OPERADOR ACCIN
+ Unir cadenas
& Unir cadenas

Expresiones de cadena.

Guido+ +Ral Guido Ral


guidoraul&@&Hotm guidoraul@hotmail.c
ail.com om

Versiones de Microsoft Visual Studio


Microsoft Visual Studio es un entorno de desarrollo integrado (IDE, por
sus siglas en ingls) para sistemas operativos Windows. Soporta varios
lenguajes de programacin tales como Visual C++, Visual C#, Visual J#,
yVisual Basic .NET, al igual que entornos de desarrollo web como ASP.NET.
Aunque actualmente se han desarrollado las extensiones necesarias para
muchos otros.
Conceptos Generales 23

Visual Studio permite a los desarrolladores crear aplicaciones, sitios y


aplicaciones web, as como servicios web en cualquier entorno que soporte
la plataforma .NET (a partir de la versin .NET 2002). As se pueden crear
aplicaciones que se intercomuniquen entre estaciones de trabajo,
pginas web y dispositivos mviles.
Versiones
1 Visual Studio 6.0
2 Visual Studio .NET (2002)
3 Visual Studio .NET 2003
4 Visual Studio 2005
5 Visual Studio 2008
6 Visual Studio 2010
7 Visual Studio 2012
8 Visual Studio 2013

A partir de la versin 2005 Microsoft ofrece gratuitamente las Express


Editions, que son varias ediciones bsicas separadas por lenguajes de
programacin o plataforma enfocadas para novatos y entusiastas. Estas
ediciones son iguales al entorno de desarrollo comercial pero sin
caractersticas avanzadas. Dichas ediciones son:
Visual Basic Express Edition
Visual C# Express Edition
Visual C++ Express Edition
Visual J# Express Edition (Desapareci en Visual Studio 2008)
Visual Web Developer Express Edition (para programar en ASP.NET)
Visual F# (Apareci en Visual Studio 2010, es parecido al J#)*

En el pasado se incluyeron los siguientes productos:


Visual InterDev
Visual J++
Visual FoxPro
Visual SourceSafe

Visual Studio 6.0


Se lanz en 1998 y fue la ltima versin en ejecutarse en la
plataforma Win9x . Los nmeros de versin de todas las partes
constituyentes pasaron a 6.0, incluyendo Visual J++ y Visual InterDev, que
se encontraban en las versiones 1.1 y 1.0 respectivamente.
Visual Studio 6.0 fue la ltima versin en que Visual Basic se inclua de la
forma en que se conoca hasta entonces; versiones posteriores
incorporaran una versin muy diferente del lenguaje con muchas mejoras,
fruto de la plataforma .NET. Tambin supuso la ltima versin en incluir
Visual J++, que proporcionaba extensiones de la plataforma Java.
Conceptos Generales 24

Visual Studio .NET (2002)


En esta versin se produjo un cambio sustancial, puesto que supuso la
introduccin de la plataforma .NET de microsoft. Visual Studio .NET 2002
supuso tambin la introduccin del lenguaje C#, un lenguaje nuevo
diseado especficamente para la plataforma .NET, basado en C++ y Java.
Se present tambin el lenguaje J# (sucesor de J++), el cual, en lugar de
ejecutarse en una mquina virtual de Java, se ejecuta nicamente en el
framework.NET. El lenguaje Visual Basic fue remodelado completamente y
evolucion para adaptarse a las nuevas caractersticas de la plataforma
.NET, hacindolo mucho ms verstil y dotndolo con muchas
caractersticas de las que careca. Algo similar se llev a cabo con C++,
aadiendo extensiones al lenguaje llamadas ManagedExtensionsfor C+
+ con el fin de que los programadores pudieran crear programas en .NET.
Por otra parte, Visual FoxPro pasa a comercializarse por separado.

Visual Studio .NET 2003


Visual Studio .NET 2003 supone una actualizacin menor de Visual Studio
.NET. Se actualiza el .NET Framework a la versin 1.1. Tambin se aade
soporte con el fin de escribir aplicaciones para determinados dispositivos
mviles, ya sea con ASP.NET o con el .NET Compact Framework. Adems, el
compilador de Visual C++ se mejora para cumplir con ms estndares: el
Visual C++ Toolkit 2003.
Es compatible solo con Windows XP, Windows Server 2003 o anteriores

Visual Studio 2005.- Se empez a comercializar a travs de Internet a


partir del 4 de octubre de 2005 y lleg a los comercios a finales del mes de
octubre en ingls. En castellano no sali hasta el 4 de febrero de 2006.
Microsoft elimin la coletilla.NET de su nombre, pero eso no indica que se
alejara de la plataforma .NET, de la cual se incluy la versin 2.0.
La actualizacin ms importante que recibieron los lenguajes de
programacin fue la inclusin de tipos genricos, similares en muchos
aspectos a las plantillas de C++. Con esto se consigue encontrar muchos
ms errores en la compilacin en vez de en tiempo de ejecucin, incitando
a usar comprobaciones estrictas en reas donde antes no era posible. C++
tiene una actualizacin similar con la adicin de C++/CLI como sustituto de
C# manejado.
Visual Studio 2005 tambin aade soporte para arquitecturas de 64 bits.
Aunque el entorno de desarrollo sigue siendo una aplicacin de 32 bits, la
versin interna de Visual Studio 2005 es la 8.0, mientras que el formato del
archivo que emplea es la 9.0.

Visual Studio 2008


Conceptos Generales 25

Visual Studio 2008 fue publicado (RTM) el 17 de noviembre de 2007 en


ingls, mientras que la versin en castellano no fue publicada hasta el 2 de
febrero de 2008.
El nuevo framework (.NET 3.5) est diseado para aprovechar las ventajas
que ofrece el nuevo sistema operativo Windows Vista a travs de sus
subsistemas Windows CommunicationFoundation (WCF) y Windows
PresentationFoundation (WPF). El primero tiene como objetivo la
construccin de aplicaciones orientadas a servicios, mientras que el ltimo
apunta a la creacin de interfaces de usuario ms dinmicas que las
conocidas.

Visual Studio 2010


Visual Studio 2010 es la versin ms reciente de esta herramienta,
acompaada por .NET Framework 4.0. La fecha del lanzamiento de la
versin final fue el 12 de abril de 2010.
Hasta ahora, uno de los mayores logros de la versin 2010 de Visual Studio
ha sido el de incluir las herramientas para desarrollo de aplicaciones
para Windows 7, tales como herramientas para el desarrollo de las
caractersticas de Windows 7 (System.Windows.Shell) y la RibbonPreview
para WPF.
Entre sus ms destacables caractersticas, se encuentran la capacidad para
utilizar mltiples monitores, as como la posibilidad de desacoplar las
ventanas de su sitio original y acoplarlas en otros sitios de la interfaz de
trabajo.
Adems ofrece la posibilidad de crear aplicaciones para muchas
plataformas de Microsoft, como Windows, Azure, Windows Phone 7 o
Sharepoint. Microsoft ha sido sensible a la nueva tendencia de las pantallas
tctiles y con este Visual Studio 2010 tambin es posible desarrollar
aplicativos para pantallas multitctiles.

Visual Studio 2010 Ultimate


Conjunto completo de herramientas de gestin del ciclo de vida de una
aplicacin para los equipos que garantizan unos resultados de calidad,
desde el diseo hasta la implementacin. Ya sea creando nuevas soluciones
o mejorando las aplicaciones existentes, Visual Studio 2010 Ultimate le
permite llevar sus ideas a la vida en un nmero creciente de plataformas y
tecnologas - incluyendo la nube y la computacin paralela.

Visual Studio 2010 Premium


Un conjunto de herramientas completo que simplifica el desarrollo de
aplicaciones para personas o equipos que entregan aplicaciones escalables
de alta calidad. Que este escribiendo codigo de aplicaciones o de bases de
datos, creando bases de datos, o quitando los errores, puede aumentar su
productividad usando herramientas poderosas que funcionan de la manera
que usted trabaja.
Conceptos Generales 26

Visual Studio 2010 Professional


La herramienta esencial para las personas que realizan tareas de desarrollo
bsico. Visual Studio 2010 Professional simplifica la compilacin, la
depuracin y el despliegue de las aplicaciones en una variedad de
plataformas incluyendo SharePoint y la Nube. Tambin viene con el soporte
integrado para el desarrollo con pruebas y con las herramientas de
depuracin que ayudan a garantizar unas soluciones de alta calidad.

Visual Studio TeamFoundation Server 2010


Una plataforma de colaboracin en el centro de la solucin de gestin del
ciclo de vida de una aplicacin (ALM) de Microsoft. TeamFoundation Server
2010 automatiza el proceso de entrega del software y le da las
herramientas que necesita para gestionar eficazmente los proyectos de
desarrollo de software a travs del ciclo de vida de IT.

Visual Studio Test Professional 2010


Visual Studio Test Professional 2010 es un conjunto de herramientas
integrado que entrega un flujo de trabajo completo planificar-probar-seguir
para una colaboracin en contexto entre los probadores y los
desarrolladores, aumentando considerablemente la visibilidad de los
probadores en la globalidad del proyecto.

Visual Studio Team Explorer Everywhere 2010


Permite a los equipos de desarrollo colaborar fcilmente entre las
plataformas. Team Explorer Everywhere 2010 contiene las herramientas y
los plug-ins necesarios para acceder a Visual Studio TeamFoundation Server
2010 desde dentro de los entornos basados en Eclipse, de manera que todo
el mundo puede trabajar juntos y lograr los objetivos del negocio.

Visual Studio 2012


Esta informacin hace referencia al 24 de mayo 2012, en esta fecha fue
dado a conocer la ReleaseCandidate del nuevo entorno de programacin de
"Windows", cual integra completo soporte para el actual y en fase de
desarrollo Windows 8, Microsoft Visual Studio 2012 RC tiene como
caractersticas el desarrollo completo e ntegro en el estilo Modern UI de
Windows 8, adems soporte para antiguas versiones de Windows al estilo
clsico.

Visual Studio 2013


S. Microsoft Visual Studio es un entorno de desarrollo integrado (IDE, por
sus siglas en ingls) para sistemas operativos Windows. La informacin fue
modificada por ltima vez el 11 jul 2013, a las 18:33.
Conceptos Generales 27

Hay una nueva versin de Visual Studio, la 2013, la cual se ha anunciado en


la conferencia Tech Ed, la cual termin con la promesa de poder descargar
una versin de preview, es decir, para darnos una idea de lo que trae
entre manos Microsoft para los desarrolladores.

En lo que se refiere a la parte ms tcnica, se puede tener un diagnstico


de la memoria para .NET, incluyendo un analizador de bloques completos
de memoria. Ahora tambin hay soporte para Git, tanto del lado cliente
como el del servidor, incluyendo los servicios del TFS.

Visual Studio 2013 RC


Visual Studio Ultimate 2013 RC
Visual Studio Premium 2013 RC
Visual Studio Professional 2013 RC
Visual Studio Test Professional 2013 RC
Visual Studio Team Foundation Server 2013 RC

Visual Studio Express 2013 RC


Visual Studio Express 2013 RC para Web
Visual Studio Express 2013 Preview para Windows
Visual Studio Express 2013 RC para Windows Desktop
Visual Studio Team Foundation Server Express 2013 RC

Microsoft Visual Studio Ultimate 2013


Es la solucin de desarrollo de vanguardia que permite a los
equipos de todos los tamaos disear y crear aplicaciones
atractivas del gusto de los usuarios. Las herramientas de
planeacin giles y flexibles, como planeacin de la capacidad,
paneles de tareas y administracin de trabajos pendientes, le
permiten usar tcnicas de desarrollo incremental y metodologas giles a su
propio ritmo. Utilice herramientas avanzadas de modelado, deteccin y
arquitectura para describir su sistema y asegurase de que se conserva su
visin de la arquitectura en la implementacin.
Requisitos del sistema

Sistemas operativos compatibles


Windows 7 SP1 (x86 y x64)
Windows 8 (x86 y x64)
Windows 8.1 (x86 y x64)*
Windows Server 2008 R2 SP1 (x64)
Windows Server 2012 (x64)
Windows Server 2012 R2 (x64)*
Conceptos Generales 28

Internet Explorer 10

Requisitos de hardware
Procesador a 1,6 GHz o ms rpido
1 GB de RAM (1,5 GB si se ejecuta en una mquina virtual)
10 GB de espacio disponible en el disco duro
Unidad de disco duro de 5400 rpm
Tarjeta de vdeo compatible con DirectX 9 con una resolucin de
pantalla de 1024 x 768 o superior

Microsoft Visual Studio Premium 2013


Tanto si escribe cdigo, compila bases de datos, realiza pruebas
o ejecuta tareas de depuracin, puede aumentar la
productividad de las personas y el equipo usando las eficaces
herramientas de Visual Studio Premium 2013. Las herramientas
de diseo y desarrollo le permiten dar rienda suelta a su
creatividad y dar vida a sus ideas. Las herramientas avanzadas de anlisis
de cdigo ayudan a evitar que se produzcan errores durante el desarrollo, y
las herramientas avanzadas de pruebas y depuracin permiten buscar y
corregir de forma rpida los errores que no se hayan podido evitar. Estas
herramientas le ayudan a desarrollar soluciones escalables de gran calidad.

Requisitos del sistema

Sistemas operativos compatibles


Windows 7 SP1 (x86 y x64)
Windows 8 (x86 y x64)
Windows 8.1 (x86 y x64)*
Windows Server 2008 R2 SP1 (x64)
Windows Server 2012 (x64)
Windows Server 2012 R2 (x64)*
Internet Explorer 10
Requisitos de hardware
Procesador a 1,6 GHz o ms rpido
1 GB de RAM (1,5 GB si se ejecuta en una mquina virtual)
10 GB de espacio disponible en el disco duro
Unidad de disco duro de 5400 rpm
Tarjeta de vdeo compatible con DirectX 9 con una resolucin de
pantalla de 1024 x 768 o superior
Conceptos Generales 29

Microsoft Visual Studio Professional 2013


Puede ayudarle a crear aplicaciones que proporcionen una
experiencia de usuario innovadora del gusto de sus clientes. El
entorno integrado simplifica las tareas ms complejas para que
pueda centrarse en la consecucin de sus objetivos. Con Visual
Studio Professional 2013, puede proporcionar aplicaciones de
calidad para Windows, Office, Windows Phone, la Web o la nube. Cuando se
combina con Windows 8.1, es posible crear aplicaciones de la Tienda
Windows.
Requisitos del sistema

Sistemas operativos compatibles


Windows 7 SP1 (x86 y x64)
Windows 8 (x86 y x64)
Windows 8.1 (x86 y x64)*
Windows Server 2008 R2 SP1 (x64)
Windows Server 2012 (x64)
Windows Server 2012 R2 (x64)*
Internet Explorer 10
Requisitos de hardware
Procesador a 1,6 GHz o ms rpido
1 GB de RAM (1,5 GB si se ejecuta en una mquina virtual)
10 GB de espacio disponible en el disco duro
Unidad de disco duro de 5400 rpm
Tarjeta de vdeo compatible con DirectX 9 con una resolucin de
pantalla de 1024 x 768 o superior

Microsoft Visual Studio Test Professional 2013


Visual Studio Test Professional 2013 es ideal para evaluadores,
analistas de negocios, directores de producto y otras partes
interesadas que necesitan herramientas de colaboracin en
equipo, no un IDE de desarrollo completo. Estos miembros del
equipo pueden aprovechar un conjunto de herramientas de
pruebas y administracin de productos integrado que proporciona calidad a
lo largo del proceso de desarrollo. Visual Studio Test Professional 2013
admite definicin de requisitos ligeros y comentarios de los clientes
continuos, proporcionando asimismo rastreabilidad a lo largo de estos
procesos.
Requisitos del sistema

Sistemas operativos compatibles


Windows 7 SP1 (x86 y x64)
Windows 8 (x86 y x64)
Windows 8.1 (x86 y x64)*
Windows Server 2008 R2 SP1 (x64)
Conceptos Generales 30

Windows Server 2012 (x64)


Windows Server 2012 R2 (x64)*
Requisitos de hardware
Procesador a 1,6 GHz o ms rpido
1 GB (32 bits) o 2 GB (64 bits) de RAM (agregar 512 MB para
hospedaje si se ejecuta en una mquina virtual)
3 GB de espacio disponible en el disco duro
Unidad de disco duro de 5400 rpm
Tarjeta de vdeo compatible con DirectX 9 con una resolucin de
pantalla de 1024 x 768 o superior
Microsoft Visual Studio Team Foundation Server 2013
Proporciona la base de colaboracin en el centro de la solucin
ApplicationLifecycle Management (ALM) de Microsoft. Mediante
la automatizacin del proceso de entrega de software, los
equipos al completo pueden usar las herramientas para realizar
un seguimiento de las acciones, las transacciones y los
artefactos de proyecto como requisitos, tareas, errores, cdigo fuente y
resultados de compilacin y pruebas.
InRelease para Visual Studio 2013 ayuda a los equipos de desarrollo y
operaciones en la integracin con TeamFoundation Server 2013 para
configurar y automatizar ms fcilmente las implementaciones complejas
de sus compilaciones automticas en los entornos de destino. La
administracin de versiones con InRelease para Visual Studio 2013 requiere
Ultimate 2013, Premium 2013 o Test Professional 2013.

Requisitos del sistema

Sistemas operativos compatibles


Windows 7 SP1 (x86 y x64)
Windows 8 (x86 y x64)
Windows 8.1 (x86 y x64)*
Windows Server 2008 R2 SP1 (x64)
Windows Server 2012 (x64)
Windows Server 2012 R2 (x64)*
Windows Small Business Server 2011 (x64)
Microsoft SQL Server 2012 SP1
SharePoint 2010, SharePoint 2013, MOSS 2010 o MOSS 2013

Requisitos de hardware:
Procesador a 2,2 GHz o ms rpido
1 GB de RAM: instalacin bsica
2 GB de RAM: instalacin estndar (sin Microsoft SharePoint
Foundation 2010)
Conceptos Generales 31

10 GB de RAM: instalacincompleta (con Microsoft SharePoint


Foundation 2010)
8 GB de espacio disponible en el disco duro
Visual Studio Express 2013 Editions

Microsoft Visual Studio Express 2013 para Web


Visual Studio Express 2013 para Web proporciona herramientas
bsicas para el desarrollo web. Puede usar los completos
editores de marcado y cdigo, las herramientas de tiempo de
diseo, la extensa compatibilidad con lenguajes de
programacin y otras herramientas de Visual Studio Express
2013 para Web para crear innovadoras y atractivas aplicacin web, API web
y aplicaciones de una pgina con ASP.NET, tanto para uso local como en la
nube.
Requisitos del sistema

Sistemas operativos compatibles


Windows 7 SP1 (x86 y x64)
Windows 8 (x86 y x64)
Windows 8.1 (x86 y x64)*
Windows Server 2008 R2 SP1 (x64)
Windows Server 2012 (x64)
Windows Server 2012 R2 (x64)*
Internet Explorer 10

Requisitos de hardware
Procesador a 1,6 GHz o ms rpido
1 GB de RAM (1,5 GB si se ejecuta en una mquina virtual)
4 GB de espacio disponible en el disco duro
Unidad de disco duro de 5400 rpm
Tarjeta de vdeo compatible con DirectX 9 con una resolucin de
pantalla de 1024 x 768 o superior

Microsoft Visual Studio Express 2013 para Windows


Puede usar las herramientas de Visual Studio Express 2013
Windows para crear aplicaciones de la Tienda Windows
innovadoras y atractivas. Las herramientas incluyen un
completo editor de cdigo, un eficaz depurador, un generador
de perfiles especializado y extensa compatibilidad con lenguajes
de programacin que le permiten compilar aplicaciones escritas en
HTML5/JavaScript, C++, C# o Visual Basic. Visual Studio Express 2013 para
Conceptos Generales 32

Windows incluye tambin un simulador de dispositivos para probar las


aplicaciones de la Tienda Windows en distintos tipos de dispositivos.
Note: Not available in Visual Studio 2013 RC.
Requisitos del sistema

Sistemas operativos compatibles


Windows 8.1 (x86 y x64)*
*Note: Visual Studio 2013 RC does not install on Windows 8.1 Preview
Requisitos de hardware
Procesador a 1,6 GHz o ms rpido
1 GB de RAM (1,5 GB si se ejecuta en una mquina virtual)
4 GB de espacio disponible en el disco duro
Unidad de disco duro de 5400 rpm
Tarjeta de vdeo compatible con DirectX 9 con una resolucin de
pantalla de 1024 x 768 o superior

Microsoft Visual Studio Express 2013 para escritorio de Windows


Visual Studio Express 2013 para escritorio de Windows permite
la creacin de aplicaciones de escritorio en C#, Visual Basic y
C++, y es compatible con Windows PresentationFoundation
(WPF), Windows Forms y Win32.
Nota: Visual Studio Express 2013 para escritorio de Windows no se puede
usar para compilar aplicaciones de la Tienda Windows. Si desea compilar
aplicaciones de la Tienda Windows, puede instalar tambin Visual Studio
Express 2013 para Windows. O para desarrollar aplicaciones para todas las
plataformas de Microsoft y la Web, pruebe Visual Studio Professional 2013.
Requisitos del sistema

Sistemas operativos compatibles


Windows 7 SP1 (x86 y x64)
Windows 8 (x86 y x64)
Windows 8.1 (x86 y x64)*
Windows Server 2008 R2 SP1 (x64)
Windows Server 2012 (x64)
Windows Server 2012 R2 (x64)*
Internet Explorer 10
Requisitos de hardware
Procesador a 1,6 GHz o ms rpido
1 GB de RAM (1,5 GB si se ejecuta en una mquina virtual)
5 GB de espacio disponible en el disco duro
Unidad de disco duro de 5400 rpm
Tarjeta de vdeo compatible con DirectX 9 con una resolucin de
pantalla de 1024 x 768 o superior
Conceptos Generales 33

Microsoft Visual Studio Team Foundation Server Express 2013


Proporciona la base de colaboracin en el centro de la solucin
ApplicationLifecycle Management (ALM) de Microsoft. Mediante
la automatizacin del proceso de entrega de software, los
equipos al completo pueden usar las herramientas para realizar
un seguimiento de las acciones, las transacciones y los
artefactos de proyecto como requisitos, tareas, errores, cdigo fuente y
resultados de compilacin y pruebas. TeamFoundation Server Express 2013
ofrece informes y paneles globales que proporcionan tendencias histricas,
rastreabilidad completa y visibilidad en tiempo real de la calidad del
software.
Nota: TFS Express se limita a cinco (5) usuarios. Visual Studio
TeamFoundation Server 2013 se puede utilizar en equipos ms grandes.
Requisitos del sistema

Sistemas operativos compatibles


Windows 7 SP1 (x86 y x64)
Windows 8 (x86 y x64)
Windows 8.1 (x86 y x64)*
Windows Server 2008 R2 SP1 (x64)
Windows Server 2012 (x64)
Windows Server 2012 R2 (x64)*
Windows Small Business Server 2011 (x64)
Microsoft SQL Server 2012 SP1
Requisitos de hardware
Procesador a 2,2 GHz o ms rpido
1 GB de RAM
4 GB de espacio disponible en el disco duro
Microsoft SQL Server 2012 SP1
Creacin de un proyecto en C#

1 - Ingresemos al "Microsoft Visual C# ".

2 - Creacin del proyecto. Para esto seleccionamos desde el men la opcin


"Archivo" -> "Nuevo proyecto..."

Aparece un dilogo donde debemos indicar el nombre del proyecto y


seleccionar el tipo de proyecto (elegiremos "Aplicacin de Windows Forms"
Conceptos Generales 34

y le daremos nombre al proyecto)

Podemos ver que el entorno que nos gener automticamente el formulario


de nuestro programa.

Cuadro de herramientas Cuadro de texto Botones Formulario Propiedades


Conceptos Generales 35

3 - Grabacin del proyecto en el disco duro de la computadora. Debemos


presionar el cono de los diskettes en la barra superior:

Aparece un dilogo donde debemos seleccionar la carpeta donde


grabaremos el proyecto (podemos cambiar presionando el botn
"examinar", conviene dejar seleccionado el checkbox para que se cree un
directorio para la solucin):
Codificacin del diagrama de flujo en C#

Ahora debemos codificar el diagrama de flujo utilizando las instrucciones


del lenguaje C#. Como hemos visto el entorno de programacin del Visual
C# nos cre un esqueleto bsico sobre el cual continuaremos el programa:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication6
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void textBox2_TextChanged(object sender, EventArgs e)
Conceptos Generales 36

}
private void textBox1_TextChanged(object sender, EventArgs e)
{

}
private void button1_Click(object sender, EventArgs e)
{
float a,b,r;
a = float.Parse(textBox1.Text);
b = float.Parse(textBox2.Text);
r = a + b;
textBox3.Text = Convert.ToString(r);
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
}

A medida que avancemos en el curso veremos que significa una clase y


namespace, cual es el objetivo del using etc. por el momento nos
centraremos donde codificaremos nuestros diagramas de flujo.

Para probar el funcionamiento del programa debemos presionar el cono


con un tringulo verde (o la tecla especial F5 o desde el men elegir la
opcin "Depurar" "Iniciar depuracin"
Conceptos Generales 37

A continuacin loramos el siguiente resultado.


ESTRUCTURA SECUENCIAL

Son aquellos algoritmos que


ejecutan instrucciones en
forma consecutiva, es decir
uno detrs del otro hasta
finalizar el proceso.

CAPITULO II Instruccin 1
n1
Instrucci

Instruccin 2
Instrucci
n1
Instruccin 3
Instrucci
n1

FUNDAMENTOS DE PROGRAMACIN
Estructura Secuencial 39

Ejercicio 01
Calcular e imprimir el rea de un tringulo.

Solucin:
Declarar variables
b, h: Real
Entrada: (Datos a introducir al computador)
Base :b
Altura:h
Proceso: calcular rea del tringulo (Base x Altura)/2
Salida: (Resultado que mostrar el computador)

Pseudocdigo
1. Iniciar programa
2. Declarar variables
b: Real
h: Real
area: Real
3. Leer b,h
4. Calcular area= (b*h)/2
5. Imprimir area
6. Finalizar programa

Diagrama de flujo

Inicio

b, h

a= (b*h)/2

area

Fin

Diseo
Estructura Secuencial 40

Codificacin
using System;
using System.Windows.Forms;

namespace Area_triangulo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)


{
float a, b;
a = float.Parse(textBox1.Text);
b = float.Parse(textBox2.Text);
textBox3.Text = Convert.ToString((a * b) / 2);
}

private void button2_Click(object sender, EventArgs e)


{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
}

private void button3_Click(object sender, EventArgs e)


{
this.Close();
}
}
}

Ejercicio 02
Estructura Secuencial 41

Ordenar los datos a, b, c, d; que representan nmeros enteros, escriba


los mismos en orden inverso.

Solucin:
Declarar variables.
a, b, c, d: Entero
Ingresar datos a invertir a, b, c, d
Imprimir datos invertidos d, c, b, a.

Pseudocdigo
1. Iniciar programa
2. Declarar variables
a, b, c, d: Entero
3. Leer a, b, c, d
4. Imprimir d, c, b, a
5. Finalizar programa

Diagrama de flujo

Inicio

a, b, c, d

d, c, b, a

Fin

Diseo
Estructura Secuencial 42

Codificacin en C#

using System;
using System.Windows.Forms;
namespace Orden_inverso
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int a, b, c, d;

a = int.Parse(textBox1.Text);
b = int.Parse(textBox2.Text);
c = int.Parse(textBox3.Text);
d = int.Parse(textBox4.Text);
textBox5.Text = Convert.ToString(d + ", " + c + ", " + b + ", "
+ a);
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
textBox5.Clear();
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
Ejercicio 03
Estructura Secuencial 43

Dado los datos enteros a, b, escriba el resultado de la siguiente expresin:


(a+b)2/3

Solucin:
Declarar variables
a, b: Entero
Proceso ejecutar la frmula (a+b)2/3
Imprimir el resultado

Pseudocdigo
1. Iniciar programa
2. Declarar variables
a, b: Entero
r: Real
3. Leer a, b
4. Calcular r= ((a+b)2/3)
5. Imprimir r
6. Finalizar programa

Diagrama de flujo

Inicio

a, b

r= ((a+b)^2)/3)

Fin

Diseo
Estructura Secuencial 44

Codificacin en C#
using System;
using System.Windows.Forms;

namespace Enteros_expresion
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
float a, b;
double r;
a = float.Parse(textBox1.Text);
b = float.Parse(textBox2.Text);
r = ((a + b) * (a + b)) / 3;
textBox3.Text = Convert.ToString(r);
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
}

Ejercicio 04
Estructura Secuencial 45

Dado el cdigo de matrcula de los estudiantes de la carrera profesional


de Ingeniera de Sistemas y 5 calificaciones, obtenido a lo largo del
semestre; imprima cdigo de la matrcula del estudiante y el promedio
de sus calificaciones.

Solucin:
Declarar variables
Ingresar cdigo de matrcula y sus calificaciones
Calcular promedio de calificaciones
Imprimir la matrcula y el promedio

Pseudocdigo
1 Iniciar programa
2 Declarar variables
codigo: Entero largo
c1, c2, c3, c4, c5, prom: Real
3 Leer c1, c2, c3, c4, c5
4 Calcular prom=( c1+c2+c3+ c4+c5)/5
5 Imprimir codigo, prom
6 Finalizar programa

Diagrama de flujo

Inicio

c1, c2, c3, c4, c5

prom= (c1+c2+c3+c4+c5)/5

codigo, prom

Fin

Diseo
Estructura Secuencial 46

Codificacin en C#
using System;
using System.Windows.Forms;
namespace Promedio_5_notas
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int codigo;
float c1, c2, c3, c4, c5;
double pro;
codigo = int.Parse(textBox1.Text);
c1 = float.Parse(textBox2.Text);
c2 = float.Parse(textBox3.Text);
c3 = float.Parse(textBox4.Text);
c4 = float.Parse(textBox5.Text);
c5 = float.Parse(textBox6.Text);
pro = (c1 + c2 + c3 + c4 + c5) / 5;
textBox7.Text = Convert.ToString(codigo);
textBox8.Text = Convert.ToString(pro);
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
textBox5.Clear();
textBox6.Clear();
textBox7.Clear();
textBox8.Clear();
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
}

Ejercicio 05
Calcular e imprimir el cuadrado y el cubo de un nmero entero positivo
num.
Solucin:
Estructura Secuencial 47

Declarar variables
Ingresar el nmero
Proceso calcular el cuadrado y el cubo del nmero ingresado
Imprimir los resultados

Pseudocdigo
1. Iniciar programa
2. Declarar variables
num: Entero
cua, cub: Real
3. Leer num
4. Calcular cua=num*num
5. Calcular cub=num*num*num
6. Imprimir cua, cub
7. Finalizar programa

Diagrama de flujo

Inicio
cua=num*num
cub=num*num*num

num

CCC

CU
cua, cub

Fin

Diseo
Estructura Secuencial 48

Codificacin en C#
using System;
using System.Windows.Forms;

namespace Cuadrado_y_cubo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int num;
double cua, cub;
num = int.Parse(textBox1.Text);
cua = num * num;
cub = num * num * num;
textBox2.Text = Convert.ToString(cua);
textBox3.Text = Convert.ToString(cub);
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
}

private void button3_Click(object sender, EventArgs e)


{
this.Close();
}
}
}

Ejercicio 06
Estructura Secuencial 49

Hallar la base y la altura de un rectngulo, calcule el permetro y la


superficie del mismo.

Consideraciones:
La superficie de un rectngulo se calcula aplicando la siguiente
frmula:
Superficie=base *altura
Permetro=2*(base altura)

Solucin:
Declarar variables
Ingrese base y altura
Proceso calcular la superficie y permetro del rectngulo
Imprimir los resultados

Pseudocdigo
1. Iniciar programa
2. Declarar variables
b, h: Real
per, sup: Real
3. Leer b, h
4. Calcular per= (b+h)*2
5. Calcular sup=b*h
6. Imprimir per, sup
7. Finalizar programa

Diagrama de flujo

Inicio
per= (b+h)*2
sup=b*h

b, h

CCC

CU
per, sup

Fin

Diseo
Estructura Secuencial 50

Codificacin en C#
using System;
using System.Windows.Forms;

namespace Perimetro_y_superficie
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
float b, h;
double per, sup;
b = int.Parse(textBox1.Text);
h = int.Parse(textBox2.Text);
per = 2 * (b + h);
sup = b * h;
textBox3.Text = Convert.ToString(sup);
textBox4.Text = Convert.ToString(per);
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
Ejercicio 07
Estructura Secuencial 51

Hallar el radio, calcule e imprima el rea de una circunferencia.

Consideraciones:
La superficie de una circunferencia se calcula aplicando la siguiente
frmula:

rea =pi*radio2
Solucin:
Declarar variables
Declarar constante pi=3.1416
Proceso calcular la superficie de la circunferencia
Imprimir resultados

Pseudocdigo
1. Iniciar programa
2. Declarar variables
r: Real
a: Real
3. Declarar constante
pi: Real
4. Asignar pi=3.1416
5. Leer r
6. Calcular a=pi*(r*r)
7. Imprimir a
8. Finalizar programa

Diagrama de flujo

pi=3.1416
Inicio
a=pi*(r*r)
r
CCC

CCC
CU

CU a

Fin

Diseo
Estructura Secuencial 52

Codificacin en C#

using System;
using System.Windows.Forms;

namespace Area_circunferencia
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click_1(object sender, EventArgs e)
{
float r;
double a;
double pi;
r = int.Parse(textBox1.Text);
pi = 3.1415;
a = pi * (r * r);
textBox2.Text = Convert.ToString(a);
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
}

private void button3_Click(object sender, EventArgs e)


{
this.Close();
}
}
}

Ejercicio 08
Estructura Secuencial 53

Dado el nombre de un dinosaurio, su peso y su longitud, expresados estos


dos ltimos en libras y pies, respectivamente, escriba el nombre del
dinosaurio, su peso expresado en kilogramos y su longitud expresado en
metros.
Consideraciones:
Para convertir de libras a kilogramos, multiplica por 0.4535924
Para convertir de pies a metros, multiplicar por 0.3048006
Solucin:
Declarar variables: nom, pes, lon
Ingresa nombre, peso y longitud
Proceso transformar cantidades a kilogramos y metros
respectivamente.
Imprimir resultados
Dnde: nom es una variable de tipo cadena de caracteres, que expresa
el nombre del dinosaurio.
Pes: Es una variable de tipo real, que expresa el peso del dinosaurio
en libras.
Lon. Es una variable de tipo real, que expresa la longitud del
dinosaurio en pies.

Pseudocdigo
1. Iniciar programa
2. Declarar variables
nombre: Cadena de caracteres
pes, lon: Real
3. Leer nombre, pes, lon
4. Calcular pes=peso*0.4535924
5. Calcular lon=longitud*0.3048006
6. Imprimir nombre, pes, lon
nombre, pes, lon
7. Finalizar programa

Diagrama de flujo
PES
pes=peso*0.4535924
Inicio
lon=longitud*0.3048006

CCC

nombre,
CUpes, lon

Fin
Estructura Secuencial 54

Diseo

Codificacin en C#
using System;
using System.Windows.Forms;
namespace Dinosaurio
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
float peso, longitud;
double pes, lon;
string nombre = (textBox1.Text);
peso = int.Parse(textBox2.Text);
longitud = int.Parse(textBox3.Text);
pes = peso * 0.4535924;
lon = longitud * 0.3048006;
textBox4.Text = Convert.ToString(nombre);
textBox5.Text = Convert.ToString(pes);
textBox6.Text = Convert.ToString(lon);
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
textBox5.Clear();
textBox6.Clear();
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
Estructura Secuencial 55

Ejercicio 09
En una casa de cambio necesitan construir un programa tal que dado
como dato una cantidad expresada en dlares, convierta esa cantidad a
nuevos soles.
Consideraciones:
Tipo de cambio establecido es. Un dlar=2.76
Nota: Depende del tipo de cambio

Solucin:
Declarar variables
Ingresar cantidad en soles
Mostrar resultados

Pseudocdigo
1. Iniciar programa
2. Declarar variables
cant: Real
3. Calcular CANT=cant*2.76
4. Imprimir CANT
5. Finalizar programa

Diagrama de flujo

Inicio
CANT=cant*2.76

cant

CCC

CU
CANT

Fin

Diseo
Estructura Secuencial 56

Codificacin en C#
using System;
using System.Windows.Forms;

namespace Dolares_a_soles
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)


{
float cant;
double CANT;
cant = float.Parse(textBox1.Text);
CANT = cant * 2.76;
textBox2.Text = Convert.ToString(CANT);
}

private void button2_Click(object sender, EventArgs e)


{
textBox1.Clear();
textBox2.Clear();
}

private void button3_Click(object sender, EventArgs e)


{
this.Close();
}
}
}

Ejercicio 10
Estructura Secuencial 57

Hallar el radio y la altura de un cilindro, calcule e imprima el rea y su


volumen.

Consideraciones:
El volumen de un cilindro calcularemos
aplicando la siguiente frmula:
Volumen= Pi*radio2*altura
La superficie del cilindro calcularemos como:
rea=2*radio*radio*altura
Solucin:
Iniciar proceso
Declarar variable
Leer radio, altu
Proceso realizar los clculos del rea y volumen.
Imprimir resultados

Pseudocdigo
1. Iniciar programa
2. Declarar variables
radio, altu, area, vol: Real
3. Declarar constante
pi: 3.1416
4. Leer radio, altu
5. Calcular area=2*pi*radio*altu
6. Calcular vol=pi*(radio*radio)*altu
7. Imprimir area, vol
8. Finalizar programa
Estructura Secuencial 58
radio, altu

PES
area=2*pi*radio*altu
Inicio
vol=pi*(radio*radio)*altu

CCC

CU area, vol

Fin

Diagrama de flujo

Diseo

Codificacin en C#
using System;
using System.Windows.Forms;
namespace Area_volumen_cilindro
{
public partial class Form1 : Form
{
public Form1()
{
Estructura Secuencial 59

InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
float rad, alt;
double area, vol;
double pi;
rad = float.Parse(textBox1.Text);
alt = float.Parse(textBox2.Text);
pi = 3.1416;
area = 2 * pi * rad * alt;
vol = pi * (rad * rad) * alt;
textBox3.Text = Convert.ToString(area);
textBox4.Text = Convert.ToString(vol);
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
Ejercicio 11
Denis compr una estancia en un pas sudamericano. La extensin de la
estancia esta especificada en acres; tal que como dato la expresin del
campo en acres, calcule e imprima la extensin de las mismas hectreas:

Ac = ha * 2.4711

Consideraciones:
Un acre es igual a 4047 m2
Una hectrea tiene 10,000m2

Solucin:
Declarar variables
Proceso realizar la conversin
Imprimir extensin
Pseudocdigo
1. Iniciar programa
2. Declarar variables
ext: Real
3. Calcular EXT=ext*4047/10000
4. Imprimir EXT
5. Finalizar programa

Diagrama de flujo
Estructura Secuencial 60

Inicio

ext

EXT=ext*4047/10000

EXT

Fin

Diseo

Codificacin en C#
using System;
using System.Windows.Forms;

namespace Acres_a_hectareas
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)


Estructura Secuencial 61

{
float ext;
double EXT;
ext = float.Parse(textBox1.Text);
EXT = ext * 4047 / 10000;
textBox2.Text = Convert.ToString(EXT);
}

private void button2_Click(object sender, EventArgs e)


{
textBox1.Clear();
textBox2.Clear();
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
}

Ejercicio 12
Dado los tres lados de un tringulo, pueda determinar su rea.
Esta la calculamos aplicando la siguiente frmula:
Donde L1, L2, L3 son los 3 lados del tringulo y S es Semipermetro del tringulo.

Frmula de Hern

Consideraciones:
Recordemos que es lo mismo que sacar la raz cuadrada de un
nmero que elevar dicho nmero a la potencia 0.5

Solucin:
Declarar variables
Proceso realizar clculo del rea
Imprimir resultado
L1, L2, L3, son variables de tipo real, que representan los datos de un
tringulo

Pseudocdigo
1. Iniciar programa
2. Declarar variables
L1, L2, L3, s, area: Real
3. Calcular s= (L1+L2+L3)/2
4. Calcular area= (s*(s-L1)*(S-L2)*(S-L3))^ 0.5
Estructura Secuencial 62

5. Imprimir area
6. Finalizar programa

Diagrama de flujo

Inicio
s= (L1+L2+L3)/2
area=[(s*(s-L1)*(s-L2)*(s-L3)]2
L1, L2, L3

CCC

CU
area

Fin

Diseo

Codificacin en C#
using System;
using System.Windows.Forms;
namespace Area_triangulo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
Estructura Secuencial 63

{
float L1, L2, L3;
double area;
double s;
L1 = float.Parse(textBox1.Text);
L2 = float.Parse(textBox2.Text);
L3 = float.Parse(textBox3.Text);
s = (L1 + L2 + L3) / 2;
area = s * (s - L1) * (s - L2) * (s - L3) * (s - L1) * (s - L2)
* (s - L3);
textBox4.Text = Convert.ToString(area);
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
}

Ejercicio 13
Un algoritmo que sea capaz de intercambiar el valor de tres variables a, b,
c, de tal manera que el valor de b se almacene en a, b obtenga el valor de
cycel valor de a.
Solucin:
Analizaremos con valores reales, por ejemplo.
a=2; b=5; c=8
El resultado de intercambio de variables.
a) Si a=b tendremos a=5
b) Si b=c tendremos b=8
c) Si c=a tendremos c=2

Los valores intercambiados de las variables sern: a=5, b=8, c=2

Pseudocdigo
1. Iniciar programa
2. Declarar variables
a, b, c, aux: Entero
3. Calcular aux= a
4. Calcular a=b
5. Calcular b=c
6. Calcular c=aux
7. Imprimir a, b, c
8. Finalizar programa
Estructura Secuencial 64

Dnde: Uso de la variable aux, la cual nos permite almacenar el valor


de a, por lo tanto aux debe ser del mismo tipo que las otras variables.

Diagrama de flujo

Inicioa
aux=
a=b
b=c
a, b, c
c=aux

CCC

CU
a, b, c

Fin

Diseo

Codificacin en C#
using System;
using System.Windows.Forms;
namespace ABC
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
float a, b, c, aux;
Estructura Secuencial 65

a = float.Parse(textBox1.Text);
b = float.Parse(textBox2.Text);
c = float.Parse(textBox3.Text);
aux = a;
a = b;
b = c;
c = aux;
textBox4.Text = Convert.ToString(a);
textBox5.Text = Convert.ToString(b);
textBox6.Text = Convert.ToString(c);
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
textBox5.Clear();
textBox6.Clear();
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
Ejercicio 14
Ejercicio similar al anterior, solo que con dos variables ms, la forma de
resolver es similar, la nica variante que debemos usar dos variables
auxiliares.

Pseudocdigo
1. Iniciar programa
2. Declarar variables
a, b, c, d, j, aux1, aux2: Entero
3. Calcular aux1=a
aux2=d Inicio
a=c
d=b
b=e a, b, c, d, j
j=aux1
c=aux2aux1: a
4. Imprimira, b, c, d, j aux2: d
5. Finalizar programa a=c
d=b
Diagramade flujo b=j
j=aux1
c=aux2

a, b, c, d, j

Fin
Estructura Secuencial 66

Diseo

Codificacin en C#
Estructura Secuencial 67

using System;
using System.Windows.Forms;

namespace ABCDE
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)

{
float a, b, c, d, j, aux1, aux2;
a = float.Parse(textBox1.Text);
b = float.Parse(textBox2.Text);
c = float.Parse(textBox3.Text);
d = float.Parse(textBox4.Text);
j = float.Parse(textBox5.Text);

aux1 = a;
aux2 = d;

a = c;
d = b;
b = j;

j = aux1;
c = aux2;

textBox6.Text = Convert.ToString(a);
textBox7.Text = Convert.ToString(b);
textBox8.Text = Convert.ToString(c);
textBox9.Text = Convert.ToString(d);
textBox10.Text = Convert.ToString(j);
}

private void button2_Click(object sender, EventArgs e)

{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
textBox5.Clear();
textBox6.Clear();
textBox7.Clear();
textBox8.Clear();
textBox9.Clear();
textBox10.Clear();
}

private void button3_Click(object sender, EventArgs e)

{
this.Close();
}
Estructura Secuencial 68

}
}

Ejercicio 15
Desarrolle un algoritmo que calcule el nmero de billetes de 20, 10, 5, 1,
soles que se necesita para cambiar un cheque. Considere que el valor de
cheques es un nmero entero.
Solucin:
Uso de los operadores DIV MOD nos ayudar
en la solucin del problema, el cual consiste
en cambiar un cheque, en el nmero ptimo
billetes de 4 denominaciones distintas (20, 10,
5,1).
Leer importe del cheque
Calcular el nmero mximo de billetes en denominaciones de 20.
Calcular el nmero mximo de billetes en denominaciones de 10.
Calcular el nmero mximo de billetes en denominaciones de 5.
Calcular el nmero mximo de billetes en denominaciones de 1.
Pseudocdigo
1. Iniciar programa
2. Declarar variables
cant, b20, b10, b5, b1: Entero
3. Calcular b 20= cant div 20
4. Calcular cant=cant mod 20
5. Calcular b10= cant div 10
6. Calcular cant=cant mod 10
7. Calcular b5= cant div 5
8. Calcular cant=cant mod 5
9. Calcular b1= cant mod 5
10. Imprimir b20, b10, b5, b1
Estructura Secuencial 69

11. Finalizar programa

Diagrama de flujo
Inicio

b20= cant div 20


cant=cant
cantmod 20
b10= cant div 10
cant=cant mod 10
b5= cant div 5
cant=cant mod 5
b1= cant mod 5

b20, b10, b5, b1

Fin
Diseo

Codificacin en C#
using System;
using System.Windows.Forms;
namespace Numero_billetes
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int cant, b20, b10, b5, b1;
cant = int.Parse(textBox1.Text);
b20 = cant / 20;
Estructura Secuencial 70

cant = cant % 20;


b10 = cant / 10;
cant = cant % 10;
b5 = cant / 5;
b1 = cant % 5;
textBox2.Text = Convert.ToString(b20);
textBox3.Text = Convert.ToString(b10);
textBox4.Text = Convert.ToString(b5);
textBox5.Text = Convert.ToString(b1);
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
textBox5.Clear();
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
Ejercicio 16
En Dado el radio, la generatriz y la altura de un cono, calcule e imprima el
rea de la base, el rea lateral, el rea total y su
volumen.
Consideraiones:
rea de la base se calcula con base de la
siguiente frmula
Area Base=pi*radio2
El rea lateral se calcula:
Area Lateral=pi*radio*generatriz
El rea Total se calcula:
Area Total= Area Base+Aarea Lateral
Volumen se calcula:

Volumen= *Area Base*Altura

Pseudocdigo
1. Iniciar programa
2. Declarar variables
radio, altu, gene: Real
ab, al, at, vol: Real
3. Declarar constante pi=3.1416: Real
4. Leerradio, altu, gene
5. Calcular ab=pi*(radio*2)
al=pi*radio*gene
at=ab*al
vol= (ab*altu)/3
6. Imprimir rea de la baseab
Estructura Secuencial 71

rea lateralal
rea total at
Volumen vol
7. Finalizar programa

Diagrama de flujo
Diseo
Inicio

radio, altu, gene

ab=pi*(radio*radio)
al=pi*radio*gene
at=ab*al
vol= (ab*altu)/3

ab, al, at, vol

Fin
Codificacin en C#
using System;
using System.Windows.Forms;

namespace Radio_cono
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
double radio, altu, gene, ab, al, at, vol;
double pi = 3.1415;
radio = float.Parse(textBox1.Text);
gene = float.Parse(textBox2.Text);
altu = float.Parse(textBox3.Text);
pi = 3.1415;
ab = pi * (radio * radio);
al = pi * radio * gene;
at = ab + al;
vol = (ab * altu) / 3;
textBox4.Text = Convert.ToString(ab);
textBox5.Text = Convert.ToString(al);
textBox6.Text = Convert.ToString(at);
textBox7.Text = Convert.ToString(vol);
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
Estructura Secuencial 72

textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
textBox5.Clear();
textBox6.Clear();
textBox7.Clear();
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
Ejercicio 17
Dado el radio de una esfera, calcule e imprima el rea de su volumen.
Consideraciones una esfera tiene la siguiente figura:
El rea de una esfera:
rea=4*pi*radio2
El volumen de una esfera:

Volumen= *pi*radio3

Solucin:
Declarar variables Radio: Real
Leer Radio
Proceso hacer rea=4*pi*(radio2)
Volumen=4/3*pi*(radio3)
rea =Almacena al rea de la esfera
Volumen= Almacena al volumen de la esfera

Pseudocdigo
1. Iniciar programa
2. Declarar variables
radio: Real
area, vol: Real
3. Declarar constante
pi=3.1416: Real
4. Leer radio
Inicio
5. Calcular area=4*pi*(radio*radio)
vol=4/3*pi (radio*radio*radio)
6. Imprimir rea de la esfera area
Volumen de laradio esfera vol
7. Terminar programa
area=4*pi*(radio*radio)
area=4*pi*(radio*radio)
vol=4/3*pi (radio*radio*radio)
Diagrama de flujo

area, vol

Fin
Estructura Secuencial 73

Diseo

Codificacin en C#
using System;
using System.Windows.Forms;

namespace Area_volumen_de_una_esfera
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
double radio, area, vol;
radio = float.Parse(textBox1.Text);
double pi;
pi = 3.1416;
area = 4 * pi * Math.Pow(radio, 2);
vol = 4 / 3 * pi * Math.Pow(radio, 3);
textBox2.Text = Convert.ToString(area);
textBox3.Text = Convert.ToString(vol);
}
Estructura Secuencial 74

private void button2_Click(object sender, EventArgs e)


{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
}

Ejercicio 18
Hallar el lado de un hexaedro cubo, calcular el rea de la base, el rea
lateral, el rea total, y el volumen.

Consideraciones:
Un hexaedro o cubo tiene la
siguiente forma.
Para calcular rea de la base.
rea Base=L2
Para calcular rea lateral.
rea Lateral=4*L2
Para calcular rea total.
rea Total=6*L2
Para calcular el volumen
Volumen=L3

Pseudocdigo
1. Iniciar proceso
2. Declarar variables
l, ab, al, at, v: Entero
3. Leer l
4. Calcular ab=l*l
al=4*(l*l)
at=6*(l*l
v=(l*l*l)
5 Imprimir rea de la base ab
Area Lateral al
Area Total at
Volumen v
6. Finalizar proceso
Estructura Secuencial 75

Diagrama de flujo

Inicio

ab=l*l
al=4*(l*l)
at=6*(l*l
v= (l*l*l)

ab, al, at, v

Fin

Diseo

Codificacin en C#
using System;
using System.Windows.Forms;
namespace Areas_cubo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
double l, ab, al, at, v;
l = float.Parse(textBox1.Text);
ab = Math.Pow(l, 2);
al = 4 * Math.Pow(l, 2);
at = 6 * Math.Pow(l, 2);
Estructura Secuencial 76

v = Math.Pow(l, 3);
textBox2.Text = Convert.ToString(ab);
textBox3.Text = Convert.ToString(al);
textBox4.Text = Convert.ToString(at);
textBox5.Text = Convert.ToString(v);
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
textBox5.Clear();
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
Ejercicio 19
Calcule la distancia entre dos puntos dados p1
y p2.

Como los puntos se encuentran en


cualquier lugar del sistema de
coordenadas, la distancia se
determina por la siguiente relacin:
Consideraciones:
Para calcular la distancia d entre dos puntos p1 y p2 aplicamos a la
siguiente frmula.

Solucin:
Declarar variable
Leer coordenadas
Proceso realizar el clculo de la distancia
Imprimir resultados

Pseudocdigo
1. Iniciar programa
2. Declarar variables
x1, y1, x2, y2, dist: Entero
3. Leer x1, y1, x2, y2
4. Calcular dist= ((x1-x2) (x1-x2)+ (y1-y2) (y1-y2)
5. Imprimir dist
6. Finalizar programa
Estructura Secuencial 77

Diagrama de flujo

Inicio

x1, x2, y1, y2

dist= ((x1-x2)(x1-x2)+(y1-y2)(y1-y2)

dist

Fin

Diseo

Codificacin en C#
using System;
using System.Windows.Forms;

namespace Distancia_entre_2_puntos
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
Estructura Secuencial 78

{
double x1, y1, x2, y2, dis;
x1 = float.Parse(textBox1.Text);
y1 = float.Parse(textBox2.Text);
x2 = float.Parse(textBox3.Text);
y2 = float.Parse(textBox4.Text);
dis = Math.Sqrt(Math.Pow((x1 - x2), 2) + Math.Pow((y1 - y2),
2));
textBox5.Text = Convert.ToString(dis);
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
Estructura Secuencial 79

EJERCICIOS PROPUESTOS

Ejercicio 01
Enunciado: A una reunin asistieron n personas Cuntos apretones de
mano hubieron?
Ejercicio 02
Enunciado: Dado dos nmeros enteros (z), a y b, hallar a+b y a-b

Ejercicio 03
Enunciado: Dado dos nmeros enteros, determinar cuntos nmeros
enteros estn incluidos en ellos.
Ejercicio 04
Enunciado: Dada una cantidad de milmetros, expresada en la mxima
cantidad de metros incluidos en ellos.
Ejercicio 05
Enunciado: Dado cuatro nmeros enteros, obtener el porcentaje cada uno
en funcin a la suma de los cuatro nmeros ingresados.

Ejercicio 06
Enunciado: Hallar rea de un permetro de un cuadrado.

Ejercicio 07
Enunciado: Dada una cantidad horas obtener su equivalente en minutos y
segundos.
Ejercicio 08
Enunciado: Convertir una cantidad de grados Fahrenheit a Celsius y Kelvin.

Ejercicio 09
Enunciado: Hallar el rea de un rombo.

Ejercicio 10
Enunciado: Convertir grados sexagesimales a centesimales.

Ejercicio 11
Enunciado: Sabemos que una milla equivale a 1609 kilmetros, lea una
cantidad en millas y convirtala a kilmetros.

Ejercicio 12
Enunciado: En un campeonato de futbol participan n equipos. Cuntos
partidos habr en la primera rueda del campeonato?
Ejercicio 13
Enunciado: Lea el ngulo en radianes y convirtalo a grados, minutos y
segn sexagesimales.
Estructura Selectiva (Simple y Doble) 80

ESTRUCTURA SELECTIVA
(SIMPLE Y DOBLE)

Muchas veces tenemos que


decidir y realizar una u otra tarea
dependiendo de una condicin,
en la programacin existe una
estructura que permite evaluar
una condicin (expresin lgica
que devuelve verdadero o falso)
y determina que instrucciones se
debe ejecutar si la condicin es
verdadera o si la condicin es
CAPITULO III falsa.

En este captulo usted aprender


a resolver problemas que
permitan evaluar condiciones
lgicas, esta es una de las
estructuras bsicas ms
utilizadas.

Tambin se le conoce como


estructura condicional,
alternativas y de decisiones.

CONTENIDO
Estructura selectiva simple
Estructura Si...Entonces

Estructura selectiva Doble


Estructura Si...Entonces..Si
no

Estructuras anidadas

Ejercicios

FUNDAMENTOS DE PROGRAMACIN

Estructura Lgicas Selectivas


Las estructuras algortmicas selectivas que se utilizan para la toma de
decisiones lgicas es de la siguiente forma.
Estructura Selectiva (Simple y Doble) 81

1) Si entonces (Estructura selectiva simple)


2) Si entonces sino (Estructura selectiva doble)

Estructura Si...Entonces (Estructura selectiva simple)


Evala una expresin lgica (condicin), si es verdadero ejecuta una
determinada instruccin o instrucciones.

La estructura selectiva simple Si.Entonces permite que el flujo del


diagrama siga por un camino especifico si cumple alguna condicin o
conjunto de condiciones.
Diagrama de flujo de la condicional simple:

F
Condicin

V
Instruccin 1
Instruccin n

Sintaxis C#
Si <Exp. Log.> Entonces // Una instruccin
<Instruccin 1> if (<Exp. Log.>)
<Instruccin 2> <Instruccin 1>;
Fin_Si // Varias instrucciones
if (<Exp. Log.>)

<Instruccin 1>;

<Instruccin n>;
}

Ejercicio 20
Dado como dato la calificacin de un alumno en un examen escriba
aprobado en caso que esa calificacin fuese mayor a 10.5
Inicio

Estructura Selectiva (Simple y Doble) 82


nota
Solucin:
Leer nota
Proceso comprobar si nota es mayor queF 10.5
nota >10.5
Imprimir resultado en caso est aprobado

Pseudocdigo
V
1. Iniciar programa
2. Declarar variables
nota: Real Aprobado
3. Leer nota
4. Si nota >10.5 Entonces
4.1. Imprimir Aprobado
5. Fin_Si Fin
6. Finalizar programa

La comprobacin condicional en este ejercicio, es slo en caso de ser


verdadero, mostrando un mensaje Aprobado

Nota: la condicional Si es remplazada por if

Diagrama de flujo

Diseo
Estructura Selectiva (Simple y Doble) 83

Codificacin en C#
using System;
using System.Windows.Forms;

namespace Alumno_aprobado
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)


{
float nota;
nota = float.Parse(textBox1.text);
if (nota > 10.5)
{
textBox2.Text = Convert.ToString("aprobado");
}
}

private void button2_Click(object sender, EventArgs e)


{
textBox1.Clear();
textBox2.Clear();
}

private void button3_Click(object sender, EventArgs e)


{
this.Close();
}
}
}

Ejercicio 21
Estructura Selectiva (Simple y Doble) 84

Hallar el sueldo de un trabajador, aplquele un aumento del 17% si su


sueldo es inferior a S/. 1000. Imprima el nuevo sueldo.

Solucin:
Leer sueldo
Comprobar si el sueldo cumple con la condicin
Si cumple la condicin, realizar el aumento y reportar nuevo sueldo.

Pseudocdigo
1. Iniciar programa
2. Declarar variables
sueldo: Real
3. Leer sueldo
4. Si Sueldo <1000 Entonces
4.1. SUELDO= sueldo*1.17
4.2. Imprimir SUELDO
5. Fin_Si
6. Finalizar programa

Diagrama de flujo

Inicio

sueldo

sueldo<1000

V
F
SUELDO=sueldo*1.17

SUELDO

Fin

Diseo
Estructura Selectiva (Simple y Doble) 85

Codificacin en C#
using System;
using System.Windows.Forms;

namespace Aumento_trabajador
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)


{
float sueldo;
double SUELDO;
sueldo = float.Parse(textBox1.Text);
if (sueldo < 1000)
{
SUELDO = sueldo * 1.17;
textBox2.Text = Convert.ToString(SUELDO);
}
}

private void button2_Click(object sender, EventArgs e)


{
textBox1.Clear();
textBox2.Clear();
}

private void button3_Click(object sender, EventArgs e)


{
this.Close();
}
}
}

Estructura Si...Entonces..Si no (Estructura Selectiva Doble)


F V Estructura Selectiva (Simple y Doble) 86
Condicin

Instruccin 1 Instruccin 1
Alternativa
Instruccindoble
n nos permite tomar decisiones
Instruccin n en ambos sentencias, es
decir cuando la sentencia de comparacin sea verdadero o falso, cuan es
verdadero v se ejecuta una o ms accionesv y cuando es falso se ejecutan
acciones diferentes.

Si condicin entonces
Accin 1
Si no
Accin 2
Fin si (fin del condicional)

Dnde:
Accin 1: expresa la operacin o conjunto de operaciones si la
condicin resulta verdadera.

Accin 2: expresa la operacin o conjunto de operaciones si la


condicin resulta falsa.

Sintaxis C#
Si <Exp. Log.> Entonces if(<Exp. Log.>){
<Instruccin 1>
}else{
<Instruccin n>
SiNo <Instruccin 1>;
<Instruccin 1> <Instruccin n>;
<Instruccin n> }
Fin_Si

Ejercicio 22
Estructura Selectiva (Simple y Doble) 87

Dado como dato la calificacin de un alumno en un examen escriba


aprobado si su calificacin fuese mayor a 10.5; reprobado en caso
contrario.

Solucin
Comprobar si la nota es mayor a 10.5 Reportar Aprobado
Si no, Reportar Reprobado

Pseudocdigo
1. Iniciar programa
2. Declarar variables
nota: Real
3. Leer nota
4. Si nota >10.5 Entonces
4.1. Imprimir Aprobado
5. SiNo
5.1. Imprimir Reprobado
6. Fin_Si
7. Finalizarprograma

Diagrama de flujo

Inicio

nota

nota>10.5

Aprobado Reprobado

Inicio

Diseo
Estructura Selectiva (Simple y Doble) 88

Codificacin en C#
using System;
using System.Windows.Forms;

namespace Alumno_aprobado_2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
float nota;
nota = float.Parse(textBox1.Text);
if (nota > 10.5)
{
textBox2.Text = Convert.ToString(" Aprobado");
}
else
{
textBox2.Text = Convert.ToString(" Reprobado");

}
}

private void button2_Click(object sender, EventArgs e)


{
textBox1.Clear();
textBox2.Clear();
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
}

Ejercicio 23
Estructura Selectiva (Simple y Doble) 89

Hallar el sueldo de un trabajador, aplquele un aumento del 17% si su


sueldo es inferior a $ 1000 y 12% en caso contrario; imprima el nuevo
sueldo.

Solucin
Leer sueldo
Comprobar si el sueldo cumple
con la condicin
Si cumple la condicin,
incrementar el 17%
Si no, incrementar 12%

Pseudocdigo
1. Iniciar programa
2. Declarar variables
sueldo: Real
3. Leer sueldo
4. Si sueldo<1000 Entonces
4.1. SUELDO=sueldo*1.17
5. SiNo
5.1. SUELDO=sueldo*1.12
7. Fin_Si
8. Imprimir sueldo
9. Terminar programa

Diagrama de flujo

Inicio

sueldo

sueldo<1000
V F

SUELDO=sueldo*1.17
SUELDO=sueldo*1.12

SUELDO

Fin
Diseo
Estructura Selectiva (Simple y Doble) 90

Codificacin en C#
using System;
using System.Windows.Forms;
namespace Aumento_trabajador_2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
float sueldo;
double SUELDO;
sueldo = float.Parse(textBox1.Text);
if (sueldo < 1000)
{
SUELDO = sueldo * 1.17;
textBox2.Text = "17 %";
}
else
{
SUELDO = sueldo * 1.12;
textBox2.Text = "12 %";
}
textBox3.Text = Convert.ToString(SUELDO);
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
Estructura Selectiva (Simple y Doble) 91

EstructurasAnidadas

Son aquellas estructuras que contienen una o ms estructuras, es decir


est permitido colocar dentro de una estructura otra estructura.

F V
Condicin

F V F
Condicin Condicin

V
Instruccin 1 Instruccin 1 Instruccin 1
Instruccin n Instruccin n Instruccin n

v v v

Sintaxis C#
Si <Exp. Log.> Entonces If (<Exp. Log. >){
Si <Exp. Log.> Entonces if (<Exp. Log. >){
<Instruccin 1> <Instruccin 1>;
<Instruccin n> <Instruccin n>;
Fin_Si }
SiNo } else {
Si <Exp. Log.> Entonces if (<Exp. Log. >){
<Instruccin 1> <Instruccin 1>;
<Instruccin n> <Instruccin n>;
SiNo } else {
<Instruccin 1> <Instruccin 1>;
<Instruccin n> <Instruccin n>;
Fin_Si }
SiNo }

Ejercicio 24
Estructura Selectiva (Simple y Doble) 92

Dado como dato la calificacin de un alumno en un examen, escriba


aprobado si su calificacin fuese mayor a 10.5; reprobado en caso
contrario. O nota no vlida.

Pseudocdigo
1. Iniciar programa
2. Declarar variables
nota: Real
3. Leer nota
4. Si nota>0y nota<=20 Entonces
4.1. Si nota >10.5 Entonces
4.2. Imprimir Aprobado
5. SiNo
5.1. Imprimir Reprobado
7. Fin_Si
8. SiNo
8.1. Imprimir Nota no vlida
8.2. Fin_Si
9. Finalizar programa
Diagrama de flujo

Inicio

nota

F
nota>0
V nota<=20

nota>10.5
Nota no vlida
V F

Aprobado Reprobado

Fin

Diseo
Estructura Selectiva (Simple y Doble) 93

Codificacin en C#
using System;
using System.Windows.Forms;

namespace Validar_nota_aprobado_o_reprobado
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)


{
float nota;
nota = float.Parse(textBox1.Text);
if (nota >= 0 && nota <= 20)
{
if (nota > 10.5)
{
textBox2.Text = Convert.ToString("Aprobado");
}
else
{
textBox2.Text = Convert.ToString("Reprobado");
}
}
else
{
textBox2.Text = Convert.ToString("Nota no vlida");
}
}
}
}

Ejercicio 25
Estructura Selectiva (Simple y Doble) 94

Dado un nmero entero positivo mayor que cero de cmo resultado si dicho
nmero es par o impar. El ejercicio requiere la validacin del dato de
entrada.
Solucin
Leer dato
Comprobar dato de entrada, si es nmero
entero positivo
Si dato es vlido, realizar la comprobacin para ver si es par
Si es par, reportar par
Si no, reportar impar
Si el dato no es vlido, fin de algoritmo
Pseudocdigo
1. Iniciar programa
2. Declarar variables
dato: Entero
3. Leer dato
4. Si Dato > 0 Entonces
4.1. Si (dato MOD 2)=0 Entonces
4.2. Imprimir El nmero es Par
5. SiNo
5.1. Imprimir El nmero es Impar
6. Fin_Si
7. Fin_Si
8. Finalizarprograma
Diagrama de flujo
Inicio

dato

F
dato>0
V

dato MOD
2=0

V F

Par Impar

Fin
Estructura Selectiva (Simple y Doble) 95

Diseo

Codificacin en C#
using System;
using System.Windows.Forms;

namespace Numero_par_o_impar
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)


{
float dato = float.Parse(textBox1.Text);
if (dato > 0)
{
if ((dato % 2) == 0)
{
textBox2.Text = Convert.ToString("Nmero par");
}
else
{
textBox2.Text = Convert.ToString("Nmero impar");
}
}
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
Estructura Selectiva (Simple y Doble) 96

EJERCICIOS PROPUESTOS
Ejercicio 01
Enunciado: Halar la edad de una persona determinar si es mayor de edad
o menor de edad, considere que mayor de edad es mayor o
igual 18.
Ejercicio 02
Enunciado: Dado dos nmeros enteros, devolver el nmero menor.

Ejercicio 03
Enunciado: Dado dos nmeros determinar si son iguales o son diferentes.

Ejercicio 04
Enunciado: En la Universidad tiene como poltica considerar 3 notas en
cada curso la nota de trabajos T. La nota de medio ciclo M. y la
de fin de ciclo F. cada una tiene un peso de 50%, 20% y 30%
respectivamente. Un alumno es calificado segn lo siguiente.
Excelente Si su promedio est entre (16-20)
Bueno Si su promedio est entre (11-15)
Malo Si su promedio est entre (06-10)
Psimo Si su promedio est entre (00-05)

Ejercicio 05
Enunciado: Los trabajadores de una maderera tienen 3 turnos: maana,
tarde y noche. La tarifa de los turnos de maana y tarde y son
iguales, mientras de la noche son 30% mayores. Construya un
programa que lea nmero de horas laboradas por un
trabajador y la tarifa, calcule el salario semanal. Considere que
durante la semana el trabajador se encuentra siempre en el
mismo turno.
Ejercicio 06
Enunciado: Crear un programa que al ingresar 3 nmeros enteros,
devuelva los nmeros ordenado en forma ascendente y en
forma descendente.

Ejercicio 07
Enunciado: Despus de ingresar 4 notas, obtener el promedio de las tres
mejores notas y el mensaje aprobado si el promedio es mayor
o igual 11, caso contrario desaprobado

Ejercicio 08
Enunciado: Dado los siguientes datos de entrada: Saldo anterior, tipo de
movimiento R (retiro) o D (depsito) y monto de la transaccin,
obtener como dato de salida el saldo actual.

Ejercicio 09
Enunciado: Dado 2 nmeros enteros a y b, determinar cul es el mayor
con respecto al otro.
a es mayor que b
Estructura Selectiva (Simple y Doble) 97

b es mayor que a
a es igual b
ESTRUCTURA SELECTIVA
(MULTIPLE)

En los lenguajes de
programacin se cuenta con
una implementacin similar,
llamada estructura selectiva
mltiple que permite evaluar
varias alternativas y realizar el
proceso si cumple con la
condicin elegida.

CAPITULO IV Se utiliza estructuras selectivas


dobles anidadas (en cascada),
dando una solucin muy
complicada y confusa para
analizar, es recomendable que
cuando se tenga que avaluar
varias alternativas se utilice
estructuras selectiva mltiple
por ser la ms legible eficiente
y sencillo de interpretar.

CONTENIDO

Estructura de
seleccinmltiple

FUNDAMENTOS DE PROGRAMACIN
Estructura Selectiva (Mltiple) 99

La estructura de seleccin mltiple


Permite comprobar un valor con diversas alternativas, si la comparacin
tiene xito se ejecuta el grupo de instruccin que contenga la alternativa
seleccionada y luego sale la estructura.
Muchas se pueden implementar en forma opcional una alternativa por
defecto, es decir al comparar es decir al comparar con todas las
alternativas propuestas no se tienen xito con ninguna, entonces se ejecuta
la alternativa por defecto.

Exp.

Valor1 V

F Instrucciones

Valor2
V
F Instrucciones

Valor3
V
Instrucciones
F

SINTAXIS C#
switch (<Exp.>)
En caso que <Exp.> Sea {
case Valor1:
Caso Valor1 <Instrucciones>;
<Instrucciones> break;
Caso Valor2 case Valor1:
<Instrucciones> <Instrucciones>;
Caso Valor3 break;
<Instrucciones> case Valor1:
Fin Caso <Instrucciones>;
break;
}
Estructura Selectiva (Mltiple) 100

Exp.

Valor1 V

F Instrucciones

Valor2
V
F Instrucciones

SiNo
Instrucciones
F

SINTAXIS C#

En caso que <Exp.> Sea switch (<Exp.>)


{
Caso Valor1 case Valor1:
<Instrucciones> <Instrucciones>;
Caso Valor2 break;
<Instrucciones> case Valor1:
SiNo <Instrucciones>;
<Instrucciones> break;
Fin Caso default:
<Instrucciones>;
break;
}

La estructura de seleccin mltiple usando rangos


Estructura Selectiva (Mltiple) 101

La estructura selectiva mltiple permite comparar un valor (igualdad), pero


cuando se requiere manejar rangos (>= Y <=), se puede usar una
estructura selectiva mltiple similar a la estructura selectiva doble anidada.

V
Exp. Log.

Instrucciones
F
V
Exp.

Instrucciones
F

V
Exp.

Instrucciones
F
Instrucciones

SINTAXIS C#
Si <Expr.Log.> Entonces if (<Exp.Log.>) {
<Intrucciones> <Instrucciones>;
SiNoSi <Expr.Log.> Entonces }else if (<Exp.Log.>){
<Intrucciones> <Instrucciones>;
SiNoSi <Expr.Log.> Entonces }else if (<Exp.Log.>){
<Intrucciones> <Instrucciones>;
SiNo }else {
<Intrucciones> <Instrucciones>;
Fin_Si }

Ejercicio 26
Estructura Selectiva (Mltiple) 102

Dados como datos dos variables de tipo entero NUM, v; obtenga el


resultado de la siguiente funcin:
100*v si NUM =1
100^v si NUM=2
100/ v si NUM=3
0 para cualquier otro valor de NUM.

Solucin:
Declarar variables
Leer NUM, v
Segn sea el caso de NUM, realizar accin correspondiente.
Pseudocdigo
1. Iniciar programa
2. Declarar variables
NUM, v: Entero
val: Real
3. Leer NUM, val
4. En Caso de NUM
4.1. Caso 1: calcular val=100*v
4.2. Caso 2: calcular val*100^v
4.3. Caso 3: calcular val*100/v
4.4. En otro caso: calcular val=0
5. Fin_Caso
5.1. Imprimir val
6. Finalizar programa

Diagrama de flujo
Inicio

NUM, v

En Caso NUM
1 2 3
Otro
val=100
val=100 /v val=0
val=100*v ^V

val

Fin

Diseo
Estructura Selectiva (Mltiple) 103

Codificacin en C#
using System;
using System.Windows.Forms;
namespace Resolver_una_funcion
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int NUM;
double v, val;
NUM = int.Parse(textBox1.Text);
v = double.Parse(textBox2.Text);

switch (NUM)
{
case 1: val = 100 * v; break;
case 2: val = Math.Pow(100, v); break;
case 3: val = 100 / v; break;
default: val = 0; break;
}
textBox3.Text = Convert.ToString(val);
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
Ejercicio 27
Estructura Selectiva (Mltiple) 104

Dados como datos la categora y el sueldo de un trabajador, calcule el


aumento correspondiente teniendo en cuenta la siguiente tabla; imprima la
categora y el nuevo sueldo del trabajador.

Categora Aumento
1 15 %
2 10 %
3 8%
4 6%

Solucin:
Declarar variables
Leer datos de la entrada
Segn sea el caso, realizar aumento correspondiente.
Reportar el aumento y la categora
Pseudocdigo
1. Iniciar programa
2. Declarar variables
cate: Entero
sueldo: Real
3. Leer cate
4. En Caso de cate
4.1. Caso 1: calcular SUELDO= sueldo*1.15
4.2. Caso 2: calcular SUELDO=sueldo*1.10
4.3. Caso 3: calcular SUELDO=sueldo*1.08
4.4. Caso 4: calcular SUELDO=sueldo*1.05
5. Fin_Caso (Fin del condicional del paso 3)
5.1. Imprimir CATE, SUELDO
6. Terminar programa
Diagrama de flujo
Inicio

cate, sueldo

SUELDO= sueldo*1.15 cate


SUELDO= Sueldo*1.10
1 2 3 SUELDO= Sueldo*1.06
SUELDO= sueldo*1.08
SUELDO*1.15 SUELDO*1.06
4
SUELDO*1.10 SUELDO*1.08
/V
^V =0
SUELDO*1.15
SUELDO, CATE
V

Diseo
Fin
Estructura Selectiva (Mltiple) 105

Codificacin en C#
using System;
using System.Windows.Forms;
namespace Aumento_segun_categoria
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int cate;
float sueldo;
double SUELDO=0;
sueldo = int.Parse(textBox1.Text);
cate = int.Parse(textBox2.Text);
switch (cate)
{
case 1: SUELDO = sueldo * 1.15;
textBox3.Text=Convert.ToString("1 [15%]");
break;
case 2: SUELDO = sueldo * 1.10;
textBox3.Text = Convert.ToString("2 [10%]");
break;
case 3: SUELDO = sueldo * 1.08;
textBox3.Text = Convert.ToString("3 [8%]");
break;
case 4: SUELDO = sueldo * 1.06;
textBox3.Text = Convert.ToString("4 [6%]");
break;
}
textBox4.Text = Convert.ToString(SUELDO);

}
}
}
Ejercicio 28
Estructura Selectiva (Mltiple) 106

El nmero de sonidos emitidos por un grillo en un minuto, es una funcin de


la temperatura; como resultado de eso, es posible determinar el nivel de la
temperatura haciendo uso de un grillo como termmetro ( t = n / 4 + 40 )

La frmula para la funcin es:


T=N/4+40
Donde T representa la temperatura en
grados Fahrenheit y N el nmero de sonidos emitidos por minuto.
Solucin:
Declarar variables
Comprobar si el nmero de sonidos es vlido
Calcular la temperatura, teniendo en cuenta el nmero de sonidos
emitidos por el grillo.

Pseudocdigo
1. Iniciar programa
2. Declarar variables
n: Entero
t: Real
3. Leer n
4. Si n>0 Entonces
4.1. Calcular t=n/4+40
4.2. Imprimir Temperatura, t
5. Fin_Si
6. Finalizar programa

Diagrama de flujo
Inicio

F V
n>0

t=n/4+40

Fin
Diseo
Estructura Selectiva (Mltiple) 107

Codificacin en C#
using System;
using System.Windows.Forms;

namespace Sonidos_de_un_grillo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)


{
int n, t;
n = int.Parse(textBox1.Text); if (n > 0)
{
t = n / 4 + 40;
textBox2.Text = Convert.ToString(t);
}
}

private void button2_Click(object sender, EventArgs e)


{
textBox1.Clear();
textBox2.Clear();
}

private void button3_Click(object sender, EventArgs e)


{
this.Close();
}
}
}

Ejercicio 29
Estructura Selectiva (Mltiple) 108

Construya un pseudocdigo, que dado como datos los valores enteros P y Q


determinen si los mismos satisfacen la siguiente expresin: debe imprimir
los valores P y Q.

Solucin:
Declarar variables
Comprobar si p y q satisfacen la expresin:
Si es satisfactorio mostrar p y q

Pseudocdigo
1. Iniciar programa
2. Declarar variables
p, q: Entero
exp: Real
3. Leer p, q
4. Calcular exp=p^3+q^4-2*P^2
Si exp<680 Entonces
Imprimir p, q
5. Fin_Si
6. Finalizar programa

Diagrama de flujo
Inicio

p, q

exp=pow(p,3)+pow(q,4)-2*pow(p,2)

exp=680

p, q

Fin

Diseo
Estructura Selectiva (Mltiple) 109

Codificacin en C#
using System;
using System.Windows.Forms;

namespace PQ_Expresion
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)


{
int p, q;
double exp;
p = int.Parse(textBox1.Text);
q = int.Parse(textBox2.Text);
exp = Math.Pow(p, 3)+Math.Pow(q, 4) - 2 * Math.Pow(p, 2);
if (exp < 680)
{
textBox3.Text = Convert.ToString("P = "+p+" Q = "+q);
}
}

private void button2_Click(object sender, EventArgs e)


{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
}

private void button3_Click(object sender, EventArgs e)


{
this.Close();
}
}
}
Ejercicio 30
Estructura Selectiva (Mltiple) 110

Escribir un programa que lea dos nmeros enteros por teclado y determine
cul es el mayor y el menor. Tambin deber considerar el caso en el que
los dos nmeros sean iguales.
Solucin:
Declarar variables
Leer nmeros
Comprobar cul es el mayor, o cul es el
menor
Mostrar resultados
Pseudocdigo
1. Iniciar programa
2. Declarar variables
a, b: Entero
3. Leer a,b
4. Si a<>b Entonces
4.1. Si a>b Entonces
4.2. Imprimir El mayor es a
El menor es b
4.2. SiNo
4.2.1. Imprimir El mayor es b
El menor es a
4.3. Fin_Si
5. SiNo
5.1. Imprimir Los nmeros son iguales
5.2. Fin_Si
6. Finalizar programa
Diagrama de flujo de datos
Incio

a, b

F V
a<>b

F V
Iguales
a>b

Mayorb Mayora
Menora Menorb

Diseo
Fin
Estructura Selectiva (Mltiple) 111

Codificacin en C#
using System;
using System.Windows.Forms;

namespace Mayor_menor_igual
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)


{
int a, b;
a = int.Parse(textBox1.Text);
b = int.Parse(textBox2.Text);
if (a != b)
if (a > b)
textBox3.Text = Convert.ToString("Mayor A, Menor B");
else
textBox3.Text = Convert.ToString("Mayor B, Menor A");
else
textBox3.Text = Convert.ToString("Nmeros iguales");
}

private void button2_Click(object sender, EventArgs e)


{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
}

private void button3_Click(object sender, EventArgs e)


{
this.Close();
}
}
}
Ejercicio 31
Estructura Selectiva (Mltiple) 112

Escribir un programa que lea una nota de un examen por teclado y


devuelva la calificacin que tiene; la calificacin podra ser: suspenso (0-
4.99), aprobado (5-9.99), notable (10-14.99), sobresaliente (9-9.99),
matrcula de honor (10).

Solucin:
Declarar variables
Leer nota
Calcular calificacin y reportar resultados

Pseudocdigo
1. Iniciar programa
2. Declarar variables
nota: Real
3. Leer nota
4. Si nota>=0 y nota<=4.99 Entonces
4.1. Imprimir Suspenso
5. SiNo
5.1. Si nota>=5 y Nota<=6.99 Entonces
5.1.1. Imprimir Aprobado
5.2.-SiNo
5.2.1. Si nota>=7 ynota<=8.99 Entonces
5.2.1.1. Imprimir Notable
5.2.2. SiNo
5.2.2.1. Si nota>=9 ynota<=9.99 Entonces
5.2.2.1.1. Imprimir Sobresaliente
5.2.2.2. SiNo
5.2.2.2.1. Si nota es =10 Entonces
5.2.2.2.1.1. Imprimir Matrcula de honor
5.2.2.2.2. Fin_Si
52.2.3. Fin_Si
5.2.3. Fin_Si
5.3. Fin_Si
6. Fin_Si
7. Finalizarprograma
Estructura Selectiva (Mltiple) 113

Diagrama de flujo

Inicio

nota

F 0>=nota<=4.99
V

F 5>=nota<=6.99 Suspenso
V

F 7>=nota<=8.99 Aprobado

F 9>=nota<=9.99 Notable
V
Nota=10
Sobresaliente
V

F Matrcula de honor

Fin

Diseo
Estructura Selectiva (Mltiple) 114

Codificacin en C#
using System;
using System.Windows.Forms;
namespace calificacion_segun_rango
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
float nota;
nota = float.Parse(textBox1.Text);
if (nota >= 0 & nota <= 4.99)
textBox2.Text = Convert.ToString("Suspenso");
else
if (nota >= 5 & nota <= 6.99)
textBox2.Text = Convert.ToString("Aprobado");
else
if (nota >= 7 & nota <= 8.99)
textBox2.Text = Convert.ToString("Notable");
else
if (nota >= 9 & nota <= 9.99)
textBox2.Text =
Convert.ToString("Sobresaliente");
else
if (nota == 10)
textBox2.Text = Convert.ToString("Matrcula
de honor");
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
Ejercicio 32
Estructura Selectiva (Mltiple) 115

Escribir un programa que lea tres nmeros enteros por teclado y emita un
mensaje indicando si estn o no ordenados crecientemente.
Solucin:
Declarar variables
Leer los nmeros ingresados
Procesar nmeros ingresados
Mostrar mensaje

Pseudocdigo
1. Iniciar programa
2. Declarar variables
a, b, c: Entero
3. Leer a, b, c
4. Si a<b y b<c Entonces
4.1. Imprimir Estn ordenados en forma creciente
5. SiNo
6. Imprimir No estn ordenados en forma creciente
7. Fin_Si
8. Finalizarprograma

Diagrama de flujo

Inicio

a, b, c

a<b
b<c
F V

No ordenados en Ordenados en forma


forma creciente creciente

Fin

Diseo
Estructura Selectiva (Mltiple) 116

Codificacin en C#
using System;
using System.Windows.Forms;
namespace Ordenados_crecientemente
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int a, b, c;
a = int.Parse(textBox1.Text);
b = int.Parse(textBox2.Text);
c = int.Parse(textBox3.Text);
if (a < b && b < c)
{
textBox4.Text = Convert.ToString("Si ordenados en forma
creciente");
}
else
{
textBox4.Text = Convert.ToString("No ordenados en forma
creciente");
}
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
Ejercicio 33
Estructura Selectiva (Mltiple) 117

Escribir un programa que permita introducir por teclado tres letras y


responda si existen al menos dos letras iguales.

Pseudocdigo
1. Iniciar programa
2. Declarar variables
Let1, let2, let3: Carcter
3. Leer let1, let2, let3
4. Si let1=let2=let3=let2=let3 Entonces
4.1. Imprimir Existe un par de caracteres iguales
5. Fin_Si
6. Finalizar programa
Diagrama de flujo

Inicio

Let1, Let2, Let3

Let1=Let2
Let1=Let3
Let2=let3 V

Ordenados en forma
F creciente

Fin

Diseo
Estructura Selectiva (Mltiple) 118

Codificacin en C#
using System;
using System.Windows.Forms;
namespace Letras_iguales
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
char let1, let2, let3;
let1 = char.Parse(textBox1.Text);
let2 = char.Parse(textBox2.Text);
let3 = char.Parse(textBox3.Text);
if (let1 == let2 || let1 == let3 || let2 == let3)
{
textBox4.Text = Convert.ToString("Hay al menos dos
caracteres iguales");
}
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
Ejercicio 34
Estructura Selectiva (Mltiple) 119

Realizar un programa que pida dos nmeros enteros por teclado y muestre
por pantalla el siguiente men:

MENU
1. Sumar
2. Restar

3. Multiplicar

Solucin
Declarar variables
Leer nmeros
Mostrar men
Leer opcin
Segn la opcin ingresada, realizar operacin
Mostrar resultado

Pseudocdigo
1. Iniciar programa
2. Declarar variables
a, b, opcin: Entero
r: Real
3. Leer a, b
4. Escribir Men
4.1. Sumar
4.2. Restar
4.3. Multiplicar
4.4. Dividir
Elija opcin
5. Leer Opcin
6. Leer a, b
7. En caso de opcin
7.1. Caso1: r=a+b
7.2. Caso2: r=a-b
7.3. Caso3: r=a*b
5.4. Caso4: r=a/b
8. Fin_Caso
8.1.-Imprimir el resultado es r
9. Finalizar programa
Estructura Selectiva (Mltiple) 120

Diagrama de flujo

Inicio

a, b

MENU
1. SUMAR
2. RESTAR
3. MULTIPLICAR
4. DIVIDIR
Elija opcin

Opcin

opcin

1 2 3 4

r=a-b
r =a+b r=a*b r=a/b

Fin
Estructura Selectiva (Mltiple) 121

Diseo

Codificacin en C#
using System;
using System.Windows.Forms;
namespace Menu_de_operaciones
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
float a, b, r;
int opcion;
a = int.Parse(textBox1.Text);
b = int.Parse(textBox2.Text);
opcion = int.Parse(textBox3.Text);
switch (opcion)
{
case 1: r = a + b; break;
case 2: r = a - b; break;
case 3: r = a * b; break;
case 4: r = a / b; break;
default: r = 0; break;
}
textBox4.Text = Convert.ToString(r);
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
AOS
Ejercicio 35 CATEGORIA
A 20 30
B 15 20
C 10 15
D 00 10
Estructura Selectiva (Mltiple) 122

Dado como el dato el tiempo de servicio de un trabajador, considere un


aumento del 15% si la categora del trabajador es A, un 12% en caso la
categora sea B, si la categora es C aumento del 10% y para la categora
D se aumentaran S/.15. Imprima el sueldo con el aumento incorporado, la
categora y el tiempo de servicio del trabajador.
La categora est dada por la siguiente tabla:
Solucin
Declarar variables
Leeer ao de sevicio y el sueldo
Segn sea la categoria, realizar el aumento
Mostrar resultado
Pseudocdigo
1. Iniciar programa
2. Declarar variables
TS, S: Real
CATE: Carcter
3. Leer TS, S
4. Si TS>=0 Y TS<10 Entonces
4.1. CATED
5. SiNo
5.1. Si TS>=10 Y TS<15Entonces
5.1.1. CATE C
5.2. Sino
5.2.1. Si TS<=15 Y TS<20 Entonces
5.2.1.1. CATEB
5.2.2. SiNo
5.2.2.1. Si TS>=20 Y TS<30 Entonces
5.2.2.1.1. CATE A
5.2.2.2. Fin_Si
5.2.3. Fin_Si
5.3. Fin_Si
6. Fin_Si
7. En caso de CATE
7.1. Caso A: s=S*1.15
7.2. Caso B: s=S*1.12
7.3. Caso C: s=S*1.10
7.4. Caso D: s=S+15
8. Fin_Si
9. Imprimir el nuevo sueldo es s
La categora es CATE
Tiempo de servicios TS
10. Finalizarprograma

Diagrama de flujo
Estructura Selectiva (Mltiple) 123

Inicio

TS, S

F
0<=TS<10 V

F 10<=TS<15,9 cate= D
9 V
F cate= C
15<=TS<20,9
V
20<=TS<30,9 cate= B
9 V

cate= A

cate

A B C
D

s=S*1.15 s=S*1.12 s=S*1.10 s=S+15

S, TS, CATE

Fin
Diseo
Estructura Selectiva (Mltiple) 124

Codificacin en C#
using System;
using System.Windows.Forms;

namespace Aumento_trabajador_segun_categoria
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
float TS, S;
double s = 0;
string cate = "";
TS = float.Parse(textBox1.Text);
S = float.Parse(textBox2.Text);

if (TS >= 0 && TS < 10)


cate = "d";
else
if (TS >= 10 && TS < 15)
cate = "c";
else
if (TS >= 15 && TS < 20)
cate = "b";
else
if (TS >= 20 && TS < 30)
cate = "a";
switch (cate)
{
case "a": s = S * 1.15; break;
case "b": s = S * 1.12; break;
case "c": s = S * 1.10; break;
case "d": s = S + 15; break;
}
textBox3.Text=Convert.ToString(s);
textBox4.Text = Convert.ToString(cate);
textBox5.Text = Convert.ToString(TS + " aos");
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
Estructura Selectiva (Mltiple) 125

textBox5.Clear();
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
}

Ejercicio 36
Construya un pseudocdigo tal que, dados como datos la matrcula y 5
calificaciones de un alumno, imprima la matricula, el promedio y la palabra
aprobado si el alumno tiene un promedio mayor o igual que 10.5; y la
palabra no aprobado en caso contrario.
Solucin:
Declarar variables
Leer notas
Eliminar la menor nota
Calcular promedio
Reportar resultado y estado del alumno
Pseudocdigo
1. Iniciar programa
2. Declarar variables
n1, n2.n3.n4, n5, menor, p: Real
matricula: Cadena de Caracteres
3. Leer n1, n2, n3, n4, n5
4. menor=n1
5. Si n2<menor Entonces
5.1. Hacer menor=n2
6. Sino
6.1. Si n3<menor Entonces
6.1.1. Hacer menor=n3
6.2. Sino
6.2.1. Si n4<menor Entonces
6.2.1.1. Hacer menor=n4
6.2.2. Sino
6.2.2.1. Si n5<menor Entonces
6.2.2.1.1. Hacer menor=n5
6.2.2.2. Fin_Si
6.2.3. Fin_Si
6.3. Fin_Si
7. Fin_Si
8. Calcular p=(n1+n2+n3+n4+n5-menor)/4
9. Imprimir Matrcula p
10. Si P>10.5 Entonces
10.1. Escribir Aprobado
11. Sino
11.1. Escribir Reprobado
Estructura Selectiva (Mltiple) 126

12. Fin_Si
13. Finalizarprograma
Diagrama de flujo
Inicio

n1, n2, n3, n4, n5


matricula

menor=n1

F n2<menor V

V menor=n2
F n3<menor 99
menor=n3

n4<menor 99 V
F
menor=n3

n5<menor 99 V
menor=n3

p=(n1+n2+n3+n4+n5-menor)/4

matricula, p

p>=10.5
V
99
matricula, p
F

Diseo
Fin
Estructura Selectiva (Mltiple) 127

Codificacin en C#
using System;
using System.Windows.Forms;

namespace Notas_promedio
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)


{

float menor, p;
string matricula = (textBox1.Text);
int n1 = int.Parse(textBox2.Text);
int n2 = int.Parse(textBox3.Text);
int n3 = int.Parse(textBox4.Text);
int n4 = int.Parse(textBox5.Text);
int n5 = int.Parse(textBox6.Text);

menor = n1;
if (n2 < menor)
menor = n2;
else
if (n3 < menor)
menor = n3;
else
if (n4 < menor)
menor = n4;
Estructura Selectiva (Mltiple) 128

else
if (n5 < menor)
menor = n5;
p = (n1 + n2 + n3 + n4 + n5 - menor) / 4;
textBox7.Text = Convert.ToString(matricula);
textBox8.Text = Convert.ToString(p);
if (p >= 10.5)
textBox9.Text = Convert.ToString("Aprobado");
else
textBox9.Text = Convert.ToString("No aprobado");

private void button2_Click(object sender, EventArgs e)


{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
textBox5.Clear();
textBox6.Clear();
textBox7.Clear();
textBox8.Clear();
textBox9.Clear();
}

private void button3_Click(object sender, EventArgs e)


{
this.Close();
}
}
}

Ejercicio 37
Disee un algoritmo que permita analizarla validez de una fecha
considerando que ao vlido sea mayor a 1800.
Estructura Selectiva (Mltiple) 129

Solucin:
Declarar variables
Leer fecha
Obtener nmero mximo de das que contiene los meses del ao

Pseudocdigo:
1. Iniciar programa Inicio
2. Declarar variables
dd, mm, aa nDias: dd, mm, aa
Entero
3. Leer dd,mm, aa
4. En Caso de mm
4.1 Caso 1: ndas=31 mm
4.2 Caso 2:
4.2.1. SI (aa1 2Mod3 4 54=0
6 7 8y 9aa
10 11
MOD 400=0) 0 (aa Mod
400=0) Entonces 12
ndas=31
4.2.1.1. Hacer ndias=29. ndas=31
4.2.2. SiNo
(aa%4=0 4.2.2.1. Hacer ndas=28 ndas=30
4.3. Caso
aa%400=0) o 3: ndas=31
aa%400=0
4.4. Caso 3: ndas=30 ndas=31
F 4.5. Caso
V 3: ndas=31
4.6. Caso 3: ndas=30
ndas=29 ndas=30
4.7. Caso 3: ndas=31
ndas=28
4.8. Caso 3: ndas=31
ndas=31
4.9. Caso 3: ndas=30
4.10. Caso 3: ndas=31
ndas=31 ndas=31
4.11. Caso 3: ndas=30
4.12. Caso 3: ndas=31
ndas=30
5. Fin_Caso
6. Si AA>1800 y (MM>0 y MM<=12) y (DD<=NDas)
ndas=31
6.1 Imprimir fecha Vlida
7. SiNo
Ndas=30
7.1 Imprimir fecha no vlida
8. Fin_Si
9. Finalizar programa

aa>1800 y (mm>0 y V
Diagrama de flujo
mm<=12) y (dd>0 y
dd<=ndas)

F Vlida

Invlida

Fin
Estructura Selectiva (Mltiple) 130

Diseo
Estructura Selectiva (Mltiple) 131

Codificacin en C#
using System;
using System.Windows.Forms;

namespace Validar_fecha
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)


{
int dd, mm, aa, ndias = 0;
dd = int.Parse(textBox1.Text);
mm = int.Parse(textBox2.Text);
aa = int.Parse(textBox3.Text);

switch (mm)
{
case 1: ndias = 31; break;
case 2: if ((aa % 4 == 0 && aa % 100 != 0) || (aa % 400 ==
0))
ndias = 29;
else
ndias = 28;
break;
case 3: ndias = 31; break;
case 4: ndias = 31; break;
case 5: ndias = 30; break;
case 6: ndias = 31; break;
case 7: ndias = 30; break;
case 8: ndias = 31; break;
case 9: ndias = 30; break;
case 10: ndias = 31; break;
case 11: ndias = 30; break;
case 12: ndias = 31; break;
Estructura Selectiva (Mltiple) 132

if (aa > 1800 && (mm <= 12) && (dd > 0 && dd <= ndias))
textBox4.Text=Convert.ToString("Fecha vlida");
else
textBox4.Text = Convert.ToString("Fecha no vlida");
}

private void button2_Click(object sender, EventArgs e)


{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
}

private void button3_Click(object sender, EventArgs e)


{
this.Close();
}
}
}

Ejercicio 38
Estructura Selectiva (Mltiple) 133

Disee un algoritmo que permita calcular el da siguiente de una fecha


dada; asumir que la fecha ingresada es vlida.

Pseudocdigo Inicio
1. Iniciar programa
2. Declarar variables dd, mm, aa
dd, mm, aa: Entero
3. Leer dd, mm, aa
4. E n caso de mm
4.1. Caso 1: ndas=31 mm
4.2. Caso 2: 1 2 3 4 5 6 7 8 9 10 11 12
4.2.1. Si (aa Mod 4=0 y aa MOD 400=0) 0 (aa Mod
ndas=31 400=0) Entonces
4. 2.1.1. Hacer ndias=29. ndas=31
4.2.2. SiNo
(aa%4=0 4.2.2.1. Hacer ndas=28 ndas=30
4.3. Caso 3: ndas=31
aa%400=0) o
4.4.aa%400=0
Caso 3: ndas=30
F 4.5. Caso 3: ndas=31 ndas=31
V
4.6.ndas=29
Caso 3: ndas=30
ndas=30
4.7. Caso 3: ndas=31
4.8.ndas=28
Caso 3: ndas=31
4.9. Caso 3: ndas=30 ndas=31
4.10. Caso 3: ndas=31
ndas=31
4.11. Caso 3: ndas=30 ndas=31
4.12. Caso 3: ndas=31
5. Fin_Caso ndas=30
6. dd=dd+1
7. Si DD>ndas Entonces
ndas=31
7.1 Calcular dd=1
mm=mm+1
ndas=30
7.2 Si mm>12 Entonces
7.2.1. Calcular mm=1
aa=aa+1
7.3 Fin_Si
8. Fin_Si
ndas=30
9. Escribir da siguiente es: dd, mm,aa
10. Finalizar el programa
dd=1 dd=1
dd>Ndas mm=mm+1 dd>ndas mm=mm+1
V V
Diagrama de flujo
F

Invlida

Fin
Estructura Selectiva (Mltiple) 134

Diseo
Estructura Selectiva (Mltiple) 135

Codificacin en C#
using System;
using System.Windows.Forms;

namespace Dia_siguiente
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)


{
int dd, mm, aa, ndias = 0;
dd = int.Parse(textBox1.Text);
mm = int.Parse(textBox2.Text);
aa = int.Parse(textBox3.Text);

switch (mm)
{
case 1: ndias = 31; break;
case 2: if((aa % 4 == 0 && aa % 100 != 0) || (aa % 400 ==
0))
ndias = 29;
else
ndias = 28;
break;
case 3: ndias = 31; break;
case 4: ndias = 31; break;
case 5: ndias = 30; break;
case 6: ndias = 31; break;
case 7: ndias = 30; break;
case 8: ndias = 31; break;
case 9: ndias = 30; break;
case 10: ndias = 31; break;
case 11: ndias = 30; break;
case 12: ndias = 31; break;
}
Estructura Selectiva (Mltiple) 136

dd = dd + 1;
if (dd > ndias)
{
dd = 1;
mm = mm + 1;
if (mm > 12)
{
mm = 1;
aa = aa + 1;
}
}
textBox4.Text=Convert.ToString(dd + "/" + mm + "/" + aa);
}

private void button2_Click(object sender, EventArgs e)


{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
}

private void button3_Click(object sender, EventArgs e)


{
this.Close();
}
}
}

Ejercicio 39
Disee un algoritmo que dado una fecha, se calcule el nmero de das que
han transcurrido desde el nico del ao. Considere que la fecha ingresada
es vlida:

Solucin:
Declarar variables
Leer fecha
Calcular los das del mes de febrero
Calcular das transcurridos segn sea el mes ingresado
Imprimir el nmero de das transcurridos

Pseudocdigo
Estructura Selectiva (Mltiple) 137

1. Iniciar programa
2. Declarar variables
dd, mm, aa: Entero
aux, suma: Entero
3. Leer dd, mm, aa
4. Si (aa Mod 4=0 Y aa MOD 400=0) O (aa Mod 400=0)
4.1. Hacer aux=29
5. SiNo
5.1. Hacer aux=28
6. Fin_Si
7. En Caso de mm
7.1. Suma=dd
7.2. Caso2: suma=dd+31
7.3. Caso3: suma=aux+dd+31
7.4. Caso4: suma=aux+dd+62
7.5. Caso5: suma=aux+dd+92
7.6. Caso6: suma=aux+dd+123
7.7. Caso7: suma=aux+dd+153
7.8. Caso8: suma=aux+dd+184
7.9. Caso9: suma=aux+dd+215
7.10. Caso10: suma=aux+dd+245
7.11. Caso11: suma=aux+dd+276
7.12. Caso12: suma=aux+dd+306
8. Fin_Caso
9. Imprimir los das transcurridos son, suma
10. Finalizar programa

Diagrama de flujo
Estructura Selectiva (Mltiple) 138

Inicio

dd, mm, aa

(aa%4=0 y aa%400) o
F aa%400=0 V
ndas=29
ndas=28

mm

1 2 3 4 5 6 7 8 9 10 11 12

suma=aux+dd+306
suma=dd
suma=dd+31 suma=aux+dd+276

suma=aux+dd+31 suma=aux+dd+245

suma=aux+dd62 suma=aux+dd+215

suma=aux+dd+92 suma=aux+dd+184

suma=aux+dd+123 suma=aux+dd+153

suma

Fin

Diseo
Estructura Selectiva (Mltiple) 139

Codificacin en C#
using System;
using System.Windows.Forms;

namespace Dias_transcurridos
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)


{
int dd, mm, aa, suma = 0, aux;
dd = int.Parse(textBox1.Text);
mm = int.Parse(textBox2.Text);
aa = int.Parse(textBox3.Text);

if ((aa % 4 == 0 && aa % 400 == 0) || (aa % 400 == 0))


aux = 29;
else
aux = 28;
switch (mm)
{
case 1: suma = dd; break;
case 2: suma = dd + 31; break;
case 3: suma = aux + dd + 31; break;
case 4: suma = aux + dd + 62; break;
case 5: suma = aux + dd + 92; break;
case 6: suma = aux + dd + 123; break;
case 7: suma = aux + dd + 123; break;
case 8: suma = aux + dd + 184; break;
case 9: suma = aux + dd + 215; break;
case 10: suma = aux + dd + 245; break;
case 11: suma = aux + dd + 276; break;
case 12: suma = aux + dd + 306; break;
Estructura Selectiva (Mltiple) 140

}
textBox4.Text=Convert.ToString(suma+" das");
}

private void button2_Click(object sender, EventArgs e)


{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
}

private void button3_Click(object sender, EventArgs e)


{
this.Close();
}
}
}

EJERCICIOS PROPUESTOS

Ejercicio 01
Estructura Selectiva (Mltiple) 141

Enunciado: Dado el nmero de un mes, devolver el mes en letras.

Ejercicio 02
Enunciado: Lea un nmero del 1 al 7 y devuelva el da de la semana,
considere que 1 es domingo.

Ejercicio 03
Enunciado: Dado los siguientes operadores aritmticos +, -, *, y /,
devuelva el nombre del operador.

Ejercicio 04
Enunciado: Dado un nmero de un canal de televisin, determine cul es
el nombre del canal.

Ejercicio 05
Enunciado: En la empresa System Data se ha determinado la siguiente
poltica de descuento.

Sex
o HOMBRES MUJERES
Tarjeta
Obrero 20% 15%
Empleado 30% 25%

Determinar mediante un programa, cul ser el monto del descuento al


sueldo ingresado de un trabajador.

Ejercicio 06
Enunciado: Una frutera ofrece las manzanas con descuento segn la
siguiente tabla:

Kilos % Descuento
00 al 04 0%
05 al 10 5%
11 al 15 10%
16 al 20 15%
21 al 25 20%
26 al 30 25%

Determinar cunto pagar una persona que compre mangos en esa frutera
ESTRUCTURAS REPETITIVAS

Sera posible con lo aprendido


hasta ahora leer uno, dos o tres
nmeros, si se tratase de tres
nmeros tendramos tres lneas
de cdigo, y cul sera el
resultado si tendramos que
leer cien nmeros o ms,
resultara un programa muy
extenso.

Este pequeo problema se


soluciona usando las
estructuras repetitivas, las
cuales nos permiten ejecutar
un mismo proceso tantas veces
sea necesario y en unas pocas
CAPITULO V lneas de cdigo.

Entonces tenemos un valor de


verdad o falsedad, digamos
que para que se ejecute una
estructura repetitiva se
requiere que sea verdadera, el
cuerpo del programa contenido
en la estructura, es decir el
cdigo desarrollado en la
estructura deber en algn
momento cambiar dicho valor
de verdad a falso para que la
estructura repetitiva termine y
no caer en un bucle infinito, es
decir que este nunca termine.

Fundamentos de Programacin
Estructura Repetitivas 143

ESTRUCTURA MIENTRAS

Introduccin
Muchas veces se requiere repetir una o varias instrucciones para llevase a
cabo una tarea, en la programacin se cuenta con estructuras que periten
realizar este proceso, llamados tambin bucles.

bucle

Dependiendo el lenguaje de programacin, estas incorporan dos o ms


estructuras repetitivas, dentro de las cuales las infaltables son mientras
(while) y para (for), con las cueles se puede resolver todo tipo de problema
que involucre repetitivos.
Cuando se trabaja con estas estructuras se utiliza trminos como
contadores, acumuladores, forzar la salida del bucle y continuar el inicio del
bucle.

Contador: Son variables enteras que se incrementa (+) o decremento (-)


con un valor constante, por ejemplo una variable c cuyo valor se
incrementa de 1 en 1, se conoce como variable contador
Ejemplo de pseudocdigo
C#
cc+1 c = c + 1;
ii+1 i+= 2;
jj+1 j--,

Acumulador: Son variables de cualquier tipo que almacenan valores


variables, por ejemplo la variable c cuyo valor se incrementa por el valor
que se va tomando otra variable llamada x.
Ejemplo de pseudocdigo
C#
cc+x c = c + x;
ii+c i+= c;
jj+i j-= i;

Salir de bucle: Es una instruccin que permite forzar la salida de un bucle,


para esto os lenguajes de programacin incorporan una instruccin que
permite realizar dicha operacin.

Pseudocdigo
Salir C#
Estructura Repetitivas 144

break;
Continuar al inicio del bucle: Es una instruccin que permite saltar al
inicio del bucle para volver a ejecutarse, para esto los lenguajes de
programacin incorporan una instruccin que permita realizar dicha
operacin.

Pseudocdigo C#
Continuar continue;

Estructura(hacer mientras)(do while)

Permite repetir una o ms instrucciones hasta que la condicin (expresin


lgica) sea verdadera, cuando la condicin es falsa sale bucle.

Exp. Lgica
F

V
Instruccin 1
Instruccin n

intaxis C#

While (<Exp. Log.>)


Mientras Exp. Lgica
{
Instruccin 1
Instruccin 1>;
Instruccin n
Instruccin n>;
Fin mientras
}
Estructura Repetitivas 145

Ejercicio 40
Construya un algoritmo que dado como datos los sueldos de 10
trabajadores de una empresa, obtenga el total de nmina de la misma;
considere dems que no puede utilizar estructuras lgicas repetitivas en la
solucin del problema:

Solucin:
Declara variable
Leer sueldos
Calcular la nmina
Mostrar la nmina

Pseudocdigo
1. Iniciar programa
2. Declarar variables
sue1, sue2, sue3, sue4, sue5: entero
sue6, sue7, sue8, sue9, sue10: entero
nomina: Real
3. Leer sue1, sue2, sue3, sue4, sue5
sue6, sue7, sue8, sue9, sue10
4. Calcular nomina= sue1+ sue2+ sue3+ sue4+
sue5+sue6+sue7+sue8+ sue9+ sue10
5. Imprimir el total de la nmina es nomina
6. Finalizar programa

Diagrama de flujo

Inicio

sue1, sue2, sue3, sue4, sue5,


sue6, sue7, sue8, sue9, sue1

nomina= sue1+ sue2+ sue3+ sue4+


sue5+sue6+sue7+sue8+ sue9+ sue10

suma

Fin
Estructura Repetitivas 146

Diseo

Codificacin en C#
using System;
using System.Windows.Forms;

namespace Sueldo_10_trab
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)


{
float sue1, sue2, sue3, sue4, sue5, sue6, sue7, sue8, sue9,
sue10;
double nomina;

sue1 = int.Parse(textBox1.Text);
sue2 = int.Parse(textBox2.Text);
sue3 = int.Parse(textBox3.Text);
sue4 = int.Parse(textBox4.Text);
sue5 = int.Parse(textBox5.Text);
sue6 = int.Parse(textBox6.Text);
sue7 = int.Parse(textBox7.Text);
sue8 = int.Parse(textBox8.Text);
sue9 = int.Parse(textBox9.Text);
sue10 = int.Parse(textBox10.Text);
Estructura Repetitivas 147

nomina = sue1 + sue2 + sue3 + sue4 + sue5 + sue6 + sue7 + sue8 +


sue9 + sue10;
textBox11.Text = Convert.ToString(nomina);
}

private void button2_Click(object sender, EventArgs e)


{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
textBox5.Clear();
textBox6.Clear();
textBox7.Clear();
textBox8.Clear();
textBox9.Clear();
textBox10.Clear();
textBox11.Clear();
}

private void button3_Click(object sender, EventArgs e)


{
this.Close();
}
}
}

Ejercicio 41
Escriba un pseudocdigo que dados como datos n nmeros enteros,
obtenga el nmero de ceros que hay entre estos nmeros:

Solucin:
Declarar variables
Leer cantidad de nmeros a leer
Hacer
Comprobar si el nmero ledo es cero, de ser as agregar una unidad
al contador de ceros
Mientras no se cumplan el total de nmero ledo.
Mostrar cantidad de nmeros ledos

Pseudocdigo
1. Iniciar programa
2. Declarar variables
i, contador de ceros, n, num: Entero
3. Hacer i=0
Contador de ceros=0
4. Leer n
5. Repetir
5.1. Leer num
5.2. Si num=0 Entonces
5.2.1.Hacer contador de ceros=contadordeceros+1
Estructura Repetitivas 148

5.3. Fin_Si
5.4. Calcular i=i+1
6. Hasta que i=n
7. Imprimir contador de ceros
8. Finalizarprograma

Diagrama de flujo

Inicio

i=0
contadordeceros= 0

num

num=0
V
F
V

contadordeceros=contadordeceros+1

i=i+1

i <n

contador de ceros

Fin
Estructura Repetitivas 149

Diseo

Codificacin en C#
using System;
using System.Windows.Forms;

namespace Cantidad_de_ceros
{
public partial class Form1 : Form
{
int i, contadorceros, n, num; // Declaramos las variables

public Form1()
{
InitializeComponent();
//Inicializamos las variables
i = 1;
contadorceros = 0;
}

private void button1_Click(object sender, EventArgs e)


{
n = int.Parse(textBox1.Text);
groupBox1.Enabled = false;
groupBox2.Enabled = true;
}

private void button2_Click(object sender, EventArgs e)


{
num = int.Parse(textBox2.Text);
if (num == 0)
{
contadorceros++;
}
if (i == n)
{
groupBox2.Enabled = false;
return;
Estructura Repetitivas 150

}
i = i + 1;
label3.Text = "Nm. " + i + ":";
textBox2.Clear();
}

private void button3_Click(object sender, EventArgs e)


{
textBox3.Text = Convert.ToString(contadorceros);
}

private void button4_Click(object sender, EventArgs e)


{
i = 1;
contadorceros = 0;
groupBox1.Enabled = true;
label3.Text = "Nm. 1:";
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
}

private void button5_Click(object sender, EventArgs e)


{
this.Close();
}
}
}
Estructura Repetitivas 151

Estructura mientras (while)

Dentro de la estructura repetitiva es posible colocar una o ms estructuras


repetitivas as como otras estructuras.
La estructura while es la adecuada para utilizar en un ciclo cuando no
sabemos el nmero de veces que este se ha de repetir. Dicho nmero
depende de las proposiciones dentro del ciclo. Ejemplo del promedio de las
calificaciones de un examen, pero no sabemos precisamente cuantos
alumnos lo aplicaron. Tenemos que sumar las calificaciones e ir contando el
nmero de alumnos, esto con el fin de obtener posteriormente el
promedio.El ciclo se repite mientras tengamos calificaciones de alumnos.
En estructura while se distinguen dos partes
Ciclo: conjunto de instrucciones que se ejecutaran repetidamente
Condicin de terminacin: la evaluacin de esta condicin permite
decidir cundo finalizara la ejecucin del ciclo. La condicin evala al inicio
del mismo.
Esta estructura se ejecuta mientras la condicin es verdadera, en caso
contrario termina el ciclo.

F
Exp. Lgica

F
Exp. Lgica

V
Instruccin 1
Instruccin n

Sintaxis C#
Mientras Exp. Lgica
Mientras Exp. Lgica While (<Exp. Log.>) {
Instruccin 1 While (<Exp. Log.>)
Instruccin n {
Fin mientras Instruccin 1>;
Fin mientras Instruccin n>;
}
}
Estructura Repetitivas 152

Ejercicio 42
Supongamos que debemos obtener la suma de los gastos que hicimos en
nuestro ltimo viaje, pero no sabemos exactamente cuntos fueron.
Nota: se termina el proceso cuando gasto es igual a -1
Solucin:
Declarar variables
Inicializar acumulador de gastos
Leer primer gasto
Mientras gasto sea vlido
Incrementar acumulador con el valor de gasto
Leer nuevo gasto
Reportar total de gastos
Pseudocdigo
1. Iniciar programa
2. Declarar Variables
sumagas, gasto: Real
3. Hacer sumagas=0
4. Leer gasto
5. Mientras gasto<> -1
5.1. Calcular sumagas+=gasto
5.2. Leer gasto
6. Fin del mientras
7. Escribir sumagas
8. Finalizar programa
Diagrama de flujo
Inicio

sumagas= 0

gasto

gasto<> -1

V
sumagas+= gasto F

gasto

sumagas

Fin
Estructura Repetitivas 153

Diseo

Codificacin en C#
using System;
using System.Windows.Forms;

namespace Suma_de_gastos
{
public partial class Form1 : Form
{
float sumagas, gasto;
int i;

public Form1()
{
InitializeComponent();
sumagas = 0;
i = 1;
}

private void button1_Click(object sender, EventArgs e)


{
gasto = float.Parse(textBox1.Text);
sumagas += gasto;

if (gasto == -1)
{
groupBox1.Enabled = false;
}
else
{
i++;
label2.Text = "Gasto " + i +":";
textBox1.Clear();
}
}

private void button2_Click(object sender, EventArgs e)


{
textBox2.Text = Convert.ToString(sumagas);
}
Estructura Repetitivas 154

private void button3_Click(object sender, EventArgs e)


{
i = 1;
label2.Text = "Gasto "+i+":";
textBox1.Clear();
textBox2.Clear();
}

private void button4_Click(object sender, EventArgs e)


{
this.Close();
}
}
}

Ejercicio 43
Determine la cantidad semanal de dinero que recibira cada uno de los N
obreros de una empresa . Se sabe que cuando las horas que trabaj un
obrero exceden de 40, el resto se convierte en horas extras que se pagan el
doble de una hora normal , cuando no excenden de 8; cuando las horas
extras exceden de 8 se pagan las primeras 8 al doble de lo que se paga por
una hora normal y el resto al triple ; considere que todos los obreros ganane
mismo sueldo($200)

Solucion:
Declarar variables y constantes
Hacer
Leer numero de horas trabajadas
Dependiendo del numero total de horas trabajadas calcular el sueldo
final
Mostrar sueldo
Mientras variable de condicion des falsa

Pseudocdigo

1. Iniciar programa
2. Declarar variables
c, p: Real
nh,sh: Real
3. Hacer total=0
Hacer sh=sueldo /40
4. Leer c, p
5. Mientras (nh>40)
total=sueldo
5.1. Mientras (nh-40)>8
5.2. Calcular total=sueldo+(sh*2*(nh-48)
6. SiNo
6.1. Calcular total=sueldo+(sh*2*(nh-40)
6.2. Fin_Si
Estructura Repetitivas 155

6. Imprimir total
7. Finalizar programa
Diagrama de flujo

Inicio

total= 0;
sh=sueldo/40

c, p

F
nh>40 V

total=sueldo
(nh=40)<8
F V

total=sueldo+(sh*2*(nh-40) total sueldo+(sh*2*(nh-48)

total

r = s

Fin
Estructura Repetitivas 156

Diseo

Codificacin en C#

using System;
using System.Windows.Forms;
namespace Sueldo_200
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)


{
float total, sh, nh;
const float sueldo = 200; //Todos los obreros ganan el mismo
sueldo
total = 0;
sh = sueldo / 40;

nh = float.Parse(textBox1.Text);
if (nh > 40)
if ((nh - 40) > 8) // si horas extras son mayores a 8
total = sueldo + (sh * 16) + (sh * 3 * (nh - 48));
else
total = sueldo + (sh * 2 * (nh - 40));
else
total = sueldo; // predeterminado porque exceden de 40

textBox2.Text=Convert.ToString(total);
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
Estructura Repetitivas 157

Ejercicio 44
Calcular la siguiente suma: 100 + 98 + 96 + 94 + + 0 en este orden:

Solucion:
Declarar variables y constantes
Inicializar variables
Hacer
Calcular suma y decermentar el numero en dos unidaddes
Mientras numero sea mayor que cero
Mostrar suma

Pseudocdigo
1. Iniciar programa
2. Declarar variables
n,s: Real
3. Hacer n=100, s=0
4. Leer n, s
5. Mientras n>0
5.1. Calcular s=s+n
Calcular n=n-2
6. Fin del mientras
7. Imprimir s
8. Finalizar programa

Diagrama de flujo
Inicio

n=100

s=s+n
V n=n+n-2

n>0

F
s

Fin
Estructura Repetitivas 158

Diseo

Codificacin en C#
using System;
using System.Windows.Forms;
namespace Calculo_serie_100
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
float s, n;
n = 100;
s = 0;
do
{
s += n;
n -= 2;
}
while (n > 0);
textBox1.Text=Convert.ToString(s);
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
}

private void button3_Click(object sender, EventArgs e)


{
this.Close();
}
}
}
Estructura Repetitivas 159

Ejercicio 45
Construya un pseudocodigo que calcule e imprima la suma de los N
primeros nmeros naturales.
Solucin:
Declarar variables
Leer primer numero
Mientras numero sea valido
Acumular numero
Leer nuevo nmero
Mostrar suma de los n primeros nmeros
Pseudocdigo
1. Iniciar programa
2. Declarar variables
i, n, suma: Real
3. Hacer i=1 y suma=0
4. Leer n
5. Mientras i<=n
5.1. Calcular suma=suma+i
i=i+1
6. Fin _Mientras
7. Imprimir suma
8. Finalizar programa
Diagrama de flujo

Inicio

i=1
suma=0

i<=n

V F

suma=suma+1
i=i+1

suma

Diseo
Fin
Estructura Repetitivas 160

Codificacin en C#
using System;
using System.Windows.Forms;
namespace Suma_n_naturales
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int i, n, suma;
i = 1;
suma = 0;
n = int.Parse(textBox1.Text);

textBox3.Text = "0";
while (i <= n)
{
textBox3.Text += " + " + i;
suma += i;
i++;
}
textBox3.Text += " = " + suma;

textBox2.Text=Convert.ToString(suma);
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
}

Ejercicio 46
Estructura Repetitivas 161

Se tienen las calificaciones de un grupo de alumnos que presentaron un


examen. El profesor desea obtener el promedio de estas calificiones. Escriba un
pseudocodigo para resolver lo planeado:
Ojo: se termina el proceso cuando nota es menor a cero.

Pseudocdigo
1. Iniciar programa
2. Declarar variables
i: Enteros
nota, sumcal: Real
3. Hacer i=0
sumcal=0
4. Leer NOTA
5. Mientras (NOTA>=0)
5.1. Calcular sumcal=sumcal + nota
i=i+1
5.2. Leer nota
6. Fin _Mientras
7. Escribir sumcal/i
8. Finalizar programa
Diagrama de flujo
Inicio

i=0
sumcal=0

nota

nota>=0

V
sumcal=sumcal+nota
i=i+1
F

nota

sumcal/1

Fin
Diseo
Estructura Repetitivas 162

Codificacin en C#
using System;
using System.Windows.Forms;
namespace Promedio_calificacionees
{
public partial class Form1 : Form
{
float i, nota, sumcal;
public Form1()
{
InitializeComponent();
i = 0;
sumcal = 0;
}
private void button1_Click(object sender, EventArgs e)
{
nota = float.Parse(textBox1.Text);
if (nota < 0)
{
groupBox1.Enabled = false;
return;
}
sumcal += nota;
i++;
textBox1.Clear();
label2.Text = "Nota " + (i + 1) + ":";
}
private void button2_Click(object sender, EventArgs e)
{
textBox2.Text = Convert.ToString(sumcal / i);
}
private void button3_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
i=0;
sumacal=0;
groupBox1.Enabled = true;
label2.Text = "Nota 1:";
}
private void button4_Click(object sender, EventArgs e)
{
this.Close();
}
}
}

Ejercicio 47
Estructura Repetitivas 163

Escriba un pseudocodigo , que dados como datos 270 numeros enteros


obtener la suma de los numeros pares y el promedio de los numeros
impares ademas indique cuantos ceros se ingresaron.

Solucin:
Declarar variables
Inicializar contadores y acumuladores
Mientras contador sea menor a 270
Leer numero
Si el numero es par , sumar numeros pares
Si el nmero es impar, sumar impares y contabilizar los nmeros
impares
Si el nmero es cero, contabilizar cuantos ceros se ingresan.
Calcular promedio de numeros impares
Resportar promedio de nmero de impares, suma nmero pares y la
cantidad

Pseudocdigo
1. Iniciar programa
2. Declarar variables
sumpar, sumimpar, proimpar: Enteros
conimpar, conceros, i, num: Real
3. Hacer i=0
sumpar=0
sumimp=0
conceros=0
conimpar=0
4. Mientras i< 270
4.1. Leer num
4.2. (Si num<> 0) Entonces
4.2.1. Si (-1 num)>0 Entonces
4.2.1.1. Calcular sumpar=sumpar+num
4.2.2.-Sino
4.2.2.1. Calcular conimpar=conimpar+1
sumipar=sumimpar+num
4.2.3. Fin_Si
4.3.- Sino
4.3.1. Calcular conceros=conceros+1
4.4. Fin_Si
4.5. Calcular i=i+1
5. Fin_Mientras
6. Calcular proimpar=sumimpar/conimpar
7. Imprimir proimpar, sumpar, conceros
8. Finalizar programa

Diagrama de flujo
Estructura Repetitivas 164

Inicio

i=0
sumpar=0
sumimp=0
conceros=0
conimpar=0

i <270 F

num

num <> 0 V
F

conceros=conceros+1
num <> 0
V

conimpar=conimpar+1
sumipar=sumimpar+num sunpar=suma+num
F

i=i+1 (sumimpar/conimpar), conimpar,


sumpar, conceros

Fin

Diseo
Estructura Repetitivas 165

Codificacin en C#
using System;
using System.Windows.Forms;

namespace Operacion_con_pares_e_impares
{
public partial class Form1 : Form
{
float sumpar, sumimpar, conimpar, conceros, i, num;
public Form1()
{
InitializeComponent();
i = 0;
sumpar = 0;
sumimpar = 0;
conceros = 0;
conimpar = 0;
}

private void button1_Click(object sender, EventArgs e)


{
num = float.Parse(textBox1.Text);
if (num != 0)
if (Math.Pow(-1, num) > 0)
{
sumpar += num;
}
else
{
conimpar++;
sumimpar += num;
}
else
conceros++;
i++;
Estructura Repetitivas 166

if (i < 270)
{
label2.Text = "Nmero " + (i + 1) + ":";
textBox1.Clear();
}
else
{
groupBox1.Enabled = false;
return;
}
}

private void button2_Click(object sender, EventArgs e)


{
textBox2.Text = Convert.ToString(sumpar);
textBox3.Text = Convert.ToString(sumimpar);
textBox4.Text = Convert.ToString(conceros);
}

private void button3_Click(object sender, EventArgs e)


{
i = 0;
sumpar = 0;
sumimpar = 0;
conceros = 0;
conimpar = 0;
groupBox1.Enabled = true;
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
}

private void button4_Click(object sender, EventArgs e)


{
this.Close();
}
}
}

Ejercicio 48
Hacer un pseudocodigo para obtener la tabla de multiplicar de un numero
entero k, comenzando desde 1.
Estructura Repetitivas 167

Solucin:
Declarar variables
Inicializar contador
Ller el valor de K
Mientra el contador sea menor a k
Leer numero
Calcular tabla de multiplicar
Imprimir tabla

Pseudocdigo
1. Iniciar programa
2. Declarar variables
k, i: Enteros
mul: Real
3. Hacer i=1
sumcal=0
4. Leer nota
5. Mientras (nota>=0)
5.1. Calcular sumcal=sumcal+nota
i=i+1 Inicio
5.2. Leer nota
6. Fin _Mientras
7. Imprimir sumcal/i i=0
8. Finalizar programa sumcal=0

nota

nota>=0

sumcal=sumcal+nota
i=i+1

F
nota

Diagrama de flujo

sumcal/1

Fin
Estructura Repetitivas 168

Diseo
Estructura Repetitivas 169

Codificacin en C#
using System;
using System.Windows.Forms;

namespace Tabla_de_multiplicar
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)


{
int i, k;
k = Convert.ToInt32(textBox1.Text);

for (i = 1; i <= 12; i++)


listBox1.Items.Add(k + " * " + i + " = " + (k * i));
}

private void button2_Click(object sender, EventArgs e)


{
textBox1.Clear();
listBox1.Items.Clear();
}

private void button3_Click(object sender, EventArgs e)


{
this.Close();
}
}
}

PROBLEMAS PROPUESTOS
Estructura Repetitivas 170

Ejercicio 01
Enunciado: Obtener factorial de un nmero, recuerde que el factorial de
un nmero es el producto de 1x2x3xxn.

Ejercicio 02
Enunciado: Dado de un rango de nmeros enteros, obtener la cantidad de
nmeros naturales mltiplos de 3.

Ejercicio 03
Enunciado: Enunciado: Dado un nmero, determinar cuntos dgitos 0
contiene.

Ejercicio 04
Enunciado: Enunciado: Se requiere saber si existe un determinado dgito
en unos nmeros dado.

Ejercicio 05
Enunciado: Enunciado: Dado un rango de nmeros determine cuantos
nmeros primos contiene.

Ejercicio 06
Enunciado: Dado un rango de nmeros determine cuantos nmeros
capica hay.

Ejercicio 07
Enunciado: Dado 3 nmeros obtener el MCD (Mximo comn divisor),
utilice el mtodo Euclides (divisiones sucesivas).

Ejercicio 08
Enunciado: Dado 3 nmeros obtener el MCD (Mximo comn divisor),
utilice el mtodo de factorizacin simultnea.
Estructura Repetitivas 171

Estructura Desde o Para

Cuando se sabe el nmero de iteraciones que tendra que ejecutarse cierta


cantidad de acciones, es recomendable usar la estructura for, esta
estructura no solo ejecuta un nmero de acciones, edemas cuenta
internamente el nmero de iteraciones, esto elimina la necesidad de un
contador, lo que no sucede con las estructuras while y do while

La notacin de esta estructura es la siguiente.


for([Vi];[<condicin>];[<incremento>])
<sentencia>
Vi: Variable de tipo entero o real, representa el inicio del ciclo.
Vf: Variable de tipo entero o real, representa el final del ciclo.

Condicin: Comparacin entre Vi y Vf.


Incremento: expresin de tipo entero o real. Representa el
incremento/Decremento de la variable de control, cuando se omite esta
expresin se supone que el incremento es en una unidad.

Vi Hasta Vi, INC

Proceso

Sintaxis C#
Para i vi Hasta vf Inc +1 for(i=vi;i<vf;i++)
Instrucciones {
Fin Para <Instrucciones>;
}

Estructura Desde o Para anidada


Dentro de la estructura repetitiva es posible colocar una o ms estructuras
repetitivas as como otras estructuras

Para i vi Hasta vf Inc +1 Sintaxis C#


Para j vi Hasta vf Inc +1 for(i=vi;i<vf;i++){
Instrucciones for(j=vi;i<vf;i++){
Fin Para <Instrucciones>;
Fin Para }
}
Ejercicio 49
Estructura Repetitivas 172

Haga un pseucdigo para obtener la suma de los 20 nmeros naturales.

Solucin:
Declarar variables
Inicializar acumulador
Desde 1=1 hasta 20 hacer
Acumulador el valor de 1
Reporta sumatoria

Pseudocdigo
1. Iniciar programa
2. Declarar variables
i: Enteros
s: Real
3. Hacer s=0
4. Desde i=1 Hasta 20 inc i=i+1 Hacer
4.1. S=S+I
5. Fin _Desde
6. Imprimir s
7. Finalizar

Diagrama de flujo

Inicio

i=1 hasta 20 inc i=i+1


hacer

s=s+i

Fin

Diseo
Estructura Repetitivas 173

Codificacin en C#
using System;
using System.Windows.Forms;

namespace Suma_20
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)


{
float s;
s = 0;
for (int i = 1; i <= 20; i++)
s += i;
textBox1.Text = Convert.ToString(s);
}

private void button2_Click(object sender, EventArgs e)


{
textBox1.Clear();
}

private void button3_Click(object sender, EventArgs e)


{
this.Close();
}
}
}

Ejercicio 50
Estructura Repetitivas 174

Realice un pseudocodigo para identificar si un nmero ingresado es primo o


no.

Pseudocdigo:
1-Iniciar programa
2.-Declarar variables
n, c, i: Enteros
3. Leer n
4.-Hacer c=0
5.-Desde i=1 Hasta n Hacer
5.1. Si (n Mod I)=0 Entonces
5.1.1. Calcular c=c+1
5.2. Fin_Si
6. Fin_Desde
7. Si c<=2 Entonces
7.1. Imprimir es primo
8. Sino
8.1. Imprimir no es primo
9. Fin_Si
10. Finalizar Programa

Diagrama de flujo
Inicio

i=1 hasta n

(n mod i)=0

F V

c=c+1

F c<=2

no es primo es primo

Diseo
Fin
Estructura Repetitivas 175

Codificacin en C#
using System;
using System.Windows.Forms;

namespace Numero_primo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)


{
int n, c;
n = int.Parse(textBox1.Text);
c = 0;
for (int i = 1; i <= n; i++)
if ((n % i) == 0)
c++;

if (c == 2)
textBox2.Text="Es primo";
else
textBox2.Text="No es primo";
}

private void button2_Click(object sender, EventArgs e)


{
textBox1.Clear();
textBox2.Clear();
}

private void button3_Click(object sender, EventArgs e)


{
this.Close();
}
}
}
Ejercicio 51
Estructura Repetitivas 176

Leer el sueldo de 10 trabajadores , calcular el promedio de los sueldos ,


ademas reportar a cuanto asciende el sueldo mas alto.

Pseudocdigo:
1. Iniciar programa
2. Declarar variables
NOMBRE: Cadena de caracteres
sum, mayor, sueldo: Real
3. Hacer sum=0
mayor=0
4. Desde i =1 Hasta 10 Hacer
4.1. Leer nombre, edad, sueldo
4.2. Calcular sum=sum+sueldo
4.3. Si sueldo> mayor Entonces
4.3.1. Hacer mayor=Sueldo
4.4. Fin_Si
5. Fin_Desde
6. Imprimir El promedio es: (sum/10)
El mayor de los sueldos es: mayor
7. Finalizar programa

Diagrama de flujo
Inicio

sum=0
mayor=0

i=1 hasta 10

sueldo

suma=suma+sueldo

F
sueldo>mayor

mayor=sueldo

(sum/10)mayor

Fin
Diseo
Estructura Repetitivas 177

Codificacin en C#
using System;
using System.Windows.Forms;

namespace Sueldo_10_trabajadores
{
public partial class Form1 : Form
{
float sum, mayor, sueldo;
int i;
public Form1()
{
InitializeComponent();
sum = 0;
mayor = 0;
i = 0;
}

private void button1_Click(object sender, EventArgs e)


{
textBox2.Text = Convert.ToString(sum / 10);
textBox3.Text = Convert.ToString(mayor);
}

//boton que interactua como un bucle for


private void ok_Click(object sender, EventArgs e)
{
sueldo = float.Parse(textBox1.Text);
sum += sueldo;

if (sueldo > mayor)


mayor = sueldo;
Estructura Repetitivas 178

i++; //contabiliza nmero de lecturas


if (i == 10)
{
textBox1.Enabled = false;
ok.Enabled = false;
return;
}

//Limpia y desactiva de textBox


label2.Text = "Sueldo " + (i+1);
textBox1.Clear();
}

private void button2_Click(object sender, EventArgs e)


{
sum = 0;
i = 0;
textBox1.Clear();
label2.Text = "Sueldo 1";
textBox1.Enabled = true;
ok.Enabled = true;
textBox2.Clear();
textBox3.Clear();
}

private void button3_Click(object sender, EventArgs e)


{
this.Close();
}
}
}

Ejercicio 52
Hallar cuantos terminos hay en la progresion aritmetica mostrada a
continuacion ; tambien halle la suma de los terminos: 5, 8, 11, 14, 17, 20,
23, ... n
Solucion:
Estructura Repetitivas 179

Decarar variable
Inicializar acumuladores
Leer ltimo trmino
Desde I=5 hasta N INC I=I+3 hacer
Acumular el valor de la progresion dado por I
Aumentar contador de la cantidad de numero sumandos

Pseudocdigo:
1. Iniciar programa
2. Declarar variables
Suma, n, i, c: Entero
3. Hacer c=0
suma=0
4. Leer n
5. Desde i=5 hasta n inc i=i+3
5.1. suma=suma +i
5.2. c=c+1
6. Fin_Desde
7. Escribir el nmero de trminos: n
La suma de los trminos es: suma
8. Finalizar programa

Diagrama de flujo

Inicio

c=0 suma=0

i=5 hasta n,i=i+3

suma=suma+1
c=c+1

suma,c

Diseo
Fin
Estructura Repetitivas 180

Codificacin en C#
using System;
using System.Windows.Forms;
namespace Suma_progresion
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int suma, n, c;
c = 0;
suma = 0;
n = int.Parse(textBox1.Text);

for (int i = 5; i <= n; i += 3)


{
textBox2.Text += i + " , ";
suma += i;
c++;
}
textBox3.Text = Convert.ToString(c);
textBox4.Text = Convert.ToString(suma);
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
}

Ejercicio 53
Halle el nmero de terminos para la progresion siguiente: 1,2,4,8,16,
hasta 1000

Solucion
Declarar variable
Inicializar contador
Estructura Repetitivas 181

Desde I=I hasta 10000 INC I=I*2 hacer


Aumentar contador de la cantidad de nmero de la progresin
Mostrar resultado

Pseudocdigo
1. Iniciar programa
2. Declarar variables
i, c: Entero
3. Hacer c=0
4. Desde i=1 Hasta 1000 inc i=i*2
4.1. c=c+1
5. Fin_Desde
6. Imprimir el nmero de trminos: c
7. Finalizar programa

Diagrama de flujo

Inicio

c=0

i=1 hasta 1000


i=i*2

c=c+1

Fin

Diseo
Estructura Repetitivas 182

Codificacin en C#
using System;
using System.Windows.Forms;

namespace Numero_de_terminos
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)


{
int c;
c = 0;
for (int i = 1; i <= 1000; i *= 2)
{
textBox1.Text += i + ", ";
c++;
}
textBox2.Text = Convert.ToString(c);
}

private void button2_Click(object sender, EventArgs e)


{
textBox1.Clear();
textBox2.Clear();
}

private void button3_Click(object sender, EventArgs e)


{
this.Close();
}
}
}

EJERCICIOS PROPUESTOS
Estructura Repetitivas 183

Ejercicio 01
Enunciado: Calcule la suma de los cuadrados y cubos de los N primeros
nmeros naturales.

Ejercicio 02
Enunciado: Obtener la suma y la cantidad de los nmeros divisibles por 2
y 3 a la vez, de los N primeros nmeros naturales.

Ejercicio 03
Enunciado: Dado un nmero rango numrico entero positivo a y b, obtener
la suma y la cantidad de los nmeros pares, impares y mltiplos
de 3.

Ejercicio 04
Enunciado: Dado un rango de nmeros determine cuntos nmeros
capica existe.

Ejercicio 05
Enunciado: Calcule de cuantas formas se pueden ordenar n objetos.

Ejercicio 06
Enunciado: Obtenga la cantidad de los nmeros primos de n cifras.

Ejercicio 07
Enunciado: Obtenga la cantidad de los nmeros capicas de n cifras.
Estructura Repetitivas 184

BIBLIOGRAFA

Addison-Wesley (1994) Programacin Orientada a Objetos,


Iberoamericana, Estados Unidos,
Addison-Wesley, (2000) Estructura de Datos en JAVA, Espaa.
Grupo Liebre, (2004) Estructura de datos, Programacin Orientada a
Objetos con Java, Cusco-Per, primera edicin.
Csar Liza (2000), Algoritmos y su codificacin en C++, Editorial
imprenta RJ S.R. Ltda.
Luis Joyanes Aguilar, (2002) Fundamentos de Programacin,
algortmica y estructura de datos, McGraw Hill, Tercera edicin
edicin.
Rafo Lecca (2002), Algoritmos y estructura de datos en C++, Lecca
Editores, 1era edicin, Lima.
Joseph Mayo, (2003) C# al descubierto. Prentice Hall.
Vsquez Paragulla, Julio (2000), Diseo de programacin, segunda
edicin, Per.

int n1, n2, me = 0;


n1 = int.Parse(textBox1.Text);
n2 = int.Parse(textBox2.Text);
if (n1 < n2);
me = n1;
{
textBox3.Text = Convert.ToString(" ");
}

if (n2 < n1);


me = n2;
{
textBox3.Text = Convert.ToString(" ");

}
Estructura Repetitivas 185
FUNDAMENTOS DE
PROGRAMACIN CON

Un libro abierto es un cerebro que


habla; cerrado un amigo que
espera; olvidado un alma que
perdona; destruido, un corazn que
llora.

EDICIONES Proverbio hind

Das könnte Ihnen auch gefallen