40
Ing. Oscar Ascón Valdivia 1 UNIVERSIDAD PRIVADA “SAN PEDRO” ESCUELA PROFESIONA DE INGENIERIA INFORMATICA Y DE SISTEMAS CICLO I ESTRUCTURA DE DATOS Y ALGORITMOS D D o o c ce en nt t e e s s : : I I n n g g º º O O s s c ca ar r A A s s c c ó ó n n V V a a l l d d i i v vi ia a C Ch hi i m mb bo ot t e e 2 2 0 00 07 7

UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Embed Size (px)

Citation preview

Page 1: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 1

UUNNIIVVEERRSSIIDDAADD PPRRIIVVAADDAA ““SSAANN PPEEDDRROO””

EESSCCUUEELLAA PPRROOFFEESSIIOONNAA DDEE IINNGGEENNIIEERRIIAA IINNFFOORRMMAATTIICCAAYY DDEE SSIISSTTEEMMAASS

CICLO I

EESSTTRRUUCCTTUURRAA DDEE DDAATTOOSS YY AALLGGOORRIITTMMOOSS

DDoocceenntteess:: IInnggºº OOssccaarr AAssccóónn VVaallddiivviiaa

CChhiimmbboottee 22000077

Page 2: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 2

LOS SISTEMAS DE PROCESAMIENTO DE LAINFORMACIÓN

Datos: Se refiere a la representación de algún hecho, concepto o entidad real los datospueden tomar diferentes formas; por ejemplo: palabras escritas o habladas, números,dibujos, etc.

Información: Implica datos procesados y organizados.

Sistema: Es un conjunto de componentes conectados e interactivos, que tienen unpropósito y una unidad total.Sistema de procesamiento de información: Es un sistema que transforma datos brutos eninformación organizada, significativa y útil.

Entrada de datos Salida de información

Hardware: Conjunto de componentes físicos en una computadora.

El Hardware de una computadora se compone de :

1. Unidad central de procesamiento.2. Memoria central

3. Dispositivos de almacenamiento secundario.

4. Periféricos o dispositivos de entrada / salida.

Software: Conjunto de programas que controlan el funcionamiento de una computadora.

Dispositivos de E/S Almacenamiento Sec.

Diagrama de una computadora

Procesador

Memoriacentral

Unidad Centralde Proceso

Page 3: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 3

Concepto de algoritmo: Describe la secuencia ordenada de pasos que conducen a lasolución de un problema dado.

La resolución de un programa exige el diseño de un algoritmo que resuelve el problemapropuesto.

Los pasos para la solución de un problema son:

1. Diseño de algoritmo que describe la secuencia ordenada de pasos, que conducen a lasolución de un problema dado.

2. Expresar el algoritmo como un programa en un lenguaje de programación adecuado.

3. Ejecución y validación del programa por la computadora.

Los algoritmos son independientes tanto del lenguaje de programación en que se expresancomo de la computadora que se ejecuta.

Características:

• Debe de ser preciso e indicar el orden de realización de cada paso.

• Un algoritmo debe de estar definido. Obtener el mismo resultado

• Un algoritmo debe de ser finito.

La definición de un algoritmo debe de describir tres partes: Entrada, proceso y salida.

Ejemplo:

Diseñar un algoritmo para obtener la ultima cifra de un numero ingresado por teclado..

1. Inicio.

2. Introducir un numero, Num.

3. Modulo de Num con 10, X=Num mod 10

4. Imprimir X, como resultado5. Fin

Ejemplo:Num= 245

1. Inicio

2. Ingresar 225

3. X= 225 mod 10

4. Imprimir X

5. Fin

Problema Diseño delalgoritmo

Programa decomputadora

Page 4: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 4

Ejemplo:I. Diseñar un algoritmo que calcule el promedio de 2 notas.

1.

2.

3.

4.

5.

6.II. Diseñar un algoritmo que calcule el subtotal, total y el IGV, dado el precio y la cantidad.

1.

2.

3.

4.

5.

6.

7.

8.

TIPOS DE DATOS

El primer objetivo de toda computadora es el manejo de la información o datos. Un dato esla expresión general que describe los objetos con los cuales opera una computadora.Los tipos de datos simples son los siguientes:• Numérico (Integer, real)• Lógicos (Bolean)• Carácter (char, string)

Datos Numéricos: Es el conjunto de valores numéricos. Estos pueden representarse en dosformas distintas:• Numero entero (Integer)• Numero real (real)Enteros: Es un subconjunto finito de los números enteros. Los enteros son númeroscompletos, no tienen componentes fraccionarios o decimales y pueden ser negativos opositivos. Los números enteros máximos y mínimos de una computadora suelen ser –32768a +32767.

Page 5: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 5

Reales: Es un subconjunto de los números reales. Los números reales siempre tienen unpunto decimal y pueden ser positivos y negativos. Un numero real consta de un entero yuna parte decimal.

Datos Lógicos: También denominado booleano es aquel dato que puede tomar uno de 2valores: Verdadero – Falso.Ejemplo: Cuando se pide si un valor entero es positivo, la respuesta será verdadera o falsa.

Datos Carácter: El tipo carácter es el conjunto finito y ordenado de caracteres que lacomputadora reconoce, un dato tipo carácter contiene un solo carácter.Tipos de carácter:

• Carácter Alfabético: A, B, C, D, .... Z• Carácter Numéricos: 0, 1, 2, 3, ...9• Caracteres Especiales: +, -, *, =, /, %, #...

Una cadena (String) de caracteres es una sucesión de caracteres que se encuentradelimitados entre unas comillas, la longitud de caracteres esta comprendida entre losseparadores.

Datos

Entero

LógicoCarácterNumérico

Real

Page 6: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 6

Tipos en C#C# es un lenguaje de tipeado seguro (o fuertemente tipado) lo cual quiere decir que elprogramador debe definir a que tipo pertenece cada pedazo de información o cada objetoque se crea.Los tipos básicos no son más que alias para tipos predefinidos en la librería base de laplataforma .NET. Así, el tipo número entero (que se representa con la palabra clave int),no es más que una forma rápida de escribir System.Int32.Los tipos por valor difieren de los tipos por referencia en que las variables de los tipos porvalor contienen directamente su valor, mientras que las variables de los tipos por referenciaalmacenan la dirección donde se encuentran los objetos, es por eso que se las llamanreferencias. Más adelante describiremos como funcionan cada una de estas categorías.

Tipos básicos o internosLos tipos básicos como hemos dicho son espacios predefinidos y categorizados donde sealmacena información. En C# tenemos los siguientes tipos internos:

TipoC#

Nombre para laplataforma .NET

Bytesutilizados Valores que soporta

bool System.Boolean 1 true o false (verdadero o falso en inglés)byte System.Byte 1 0 hasta 255sbyte System.SByte 1 -128 hasta 127short System.Int16 2 -32.768 hasta 32.767ushort System.Uint16 2 0 hasta 65535int System.Int32 4 -2.147.483.648 hasta 2.147.483.647uint System.Uint32 4 0 hasta 4.394.967.395

long System.Int64 8 -9.223.372.036.854.775.808 hasta9.223.372.036.854.775.807

ulong System.Uint64 8 0 hasta 18446744073709551615

float System.Single 4 Approximadamente ±1.5E-45 hasta ±3.4E38con 7 cifras significativas

double System.Double 8 Approximadamente ±5.0E-324 hasta±1.7E308 con 7 cifras significativas

decimal System.Decimal 12 Approximadamente ±1.0E-28 hasta ±7.9E28con 28 ó 29 cifras significativas

char System.Char 2 Cualquier carácter Unicode (16 bits)

int sueldo;string nombre;

Page 7: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 7

CONSTANTES Y VARIABLESConstantes: Es una partida de datos que permanecen sin cambios durante todo eldesarrollo del algoritmo o durante la ejecución del programa.

Constantes tipo numérico:

Entero Real31025 0.258125 158.252 782156

Constantes tipo carácter, cadena:

‘A’, ‘B’ ‘ISTP, ‘Computación e Informática’

Constantes lógicas (boleen)

Verdadero, Falso.

const int mes = 30; const string nombre = "Oscar Ascón";

Variables: Es un objeto o partida de datos cuyo valor puede cambiar durante el desarrollodel algoritmo o ejecución del programa.Dependiendo del lenguaje hay diferentes tipos de variables, tales como enteros, reales,carácter, lógico y de cadena. Una variable que es de un cierto tipo, pueden tomar valores deeste tipo.

Ejemplos (C#)

int X, Y; X=20 Y=30250float A, B; A=7.325 B=0.0258char R; R=’A’

Para la solución de problemas con computadoras se puede dividir en 3 fases:• Análisis del problema• Diseño del algoritmo• Solución del algoritmo en la computadora.

Page 8: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 8

Análisis del problema:

Diseño de Algoritmos:

Análisis delProblema

Especificacionesde Salida

Especificacionesde Entrada

Definicióndel Problema

Suma de dosnúmeros

Salida deresultados

Entrada dedatos

Entrada n1,n2.

S= A+B SalidaA, B, S

Calcula lasuma

Page 9: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 9

Estructura de un Programa en C#

using System;using System.Collections.Generic;using System.Text;

namespace Ejemplo1 //Nombre del Programa{ class Program // Nombre de la Clase { static void Main(string[] args) { System.Console.Write("Universidad Privada San Pedro"); System.Console.Write("Ingenieria Informatica y de Sistemas"); System.Console.ReadKey();

} }}

Cuerpo delPrograma

Page 10: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 10

CASOS PRÁCTICOS

1. Implementar un programa que permita calcular el IGV usando constantes, dado el precioy la cantidad

static void Main(string[] args) {

DECLARACION DE VARIABLESint c;

double p, st, t;DECLARACION DE CONSTANTES

const double igv = 0.19;MOSTRAR TITULOS

System.Console.WriteLine ("Ingresar Precio:");LEER VALOR

p = Convert.ToDouble( Console.ReadLine ());

System.Console.WriteLine("Ingresar Cantidad:"); c = Convert.ToInt16(Console.ReadLine());

REALIZAR OPERACIONES st = p * c; t = st + st * igv;

MOSTRAR RESULTADOS Console.WriteLine("Sub Total:{0} ", st); Console.WriteLine("Total:{0} ", t);

System.Console.ReadKey(); }

2. Implementar un programa que permita la declaración de los diferentes tipos de variables

static void Main(string[] args) { int edad; double sueldo; char sexo; string nombre;

DateTime fecha; Console.WriteLine("Ingresar Nombre"); nombre =Convert.ToString (Console.ReadLine());

Console.WriteLine("Ingresar Sexo (M / F)"); sexo =Convert.ToChar ( Console.ReadLine());

Console.WriteLine("Ingresar Sueldo");

Page 11: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 11

sueldo =Convert.ToDouble( Console.ReadLine());

Console.WriteLine("Ingresar Edad"); edad =Convert.ToInt16( Console.ReadLine());

Console.WriteLine("Ingresar Fecha"); fecha=Convert.ToDateTime(Console.ReadLine());

Console.ReadKey(); }

3. Desarrollar un programa que permita sumar 2 números

static void Main(string[] args) {

int n1,n2,s;System.Console.WriteLine("Ingresar Numero1:");

n1 = Convert.ToInt16 (Console.ReadLine()); System.Console.WriteLine("Ingresar Numero2:"); n2 = Convert.ToInt16(Console.ReadLine()); s = n1 + n2; Console.WriteLine("Suma:{0} ", s); System.Console.ReadKey(); }

PRACTICADesarrollar los siguientes problemas: Código: C#

1. Calcular la superficie de un circulo (S=pi * R2)2. Calcular el perímetro de la superficie de un rectángulo dadas la base y altura del

mismo. (S=Base * Altura; P=2 * (base + altura))3. Calcular el área de un cuadrado.4. Calcular el valor de Y=X2

5. Calcular el valor de Y=(X2-X) / 26. Calcular la multiplicación de dos números.7. Calcular la división de dos números8. Calcular el modulo de dos números.

Page 12: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 12

REPRESENTACIÓN GRAFICA DE LOSALGORITMOS

Los métodos usuales para representar un algoritmo son:1. Diagrama de flujo2. Diagrama N – S (Nassi – Schneiderman)3. Pseudocódigo4. Lenguaje español5. Formulas

Diagrama de Flujo: Es una de las técnicas de representación de algoritmos mas antiguas ya la vez más utilizada. Un diagrama de flujo es un diagrama que utiliza los símbolosestándar unidas por flechas denominadas líneas de flujo que indican la secuencia que sedebe ejecutar.

Símbolos Principales FunciónTerminal: Representa el inicio o fin de un programa

Entrada / Salida, cualquier tipo de datos introducidos a lamemoria desde los periféricos (entrada), o registro deinformación procesada en un periférico (salida)Proceso: Cualquier tipo de operación que pueda originarcambio de valor, formato o posición de la informaciónalmacenada en memoria.Decisión: Indica operaciones lógicas o de comparación entredatos, normalmente tiene dos salida si, no.

Decisión múltiple: En función del resultado de la comparaciónse seguirá uno de los diferentes caminos de acuerdo con dichoresultado.Conector: Sirve para enlazar dos partes cuales quiera de unordinograma a través de un conector en la salida y otroconector en la entrada.Línea de flujo: Indica el sentido de la ejecución de lasoperaciones.

Línea conectora: Sirve de unión entre dos símbolos

Conector: Conexión entre dos puntos del organigrama situadoen paginas diferentes.

Llamada a sub rutina o a un proceso predeterminado.

Page 13: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 13

Ejemplos:• Sumar dos numero y mostrar el resultado

Diagramas N – S:Es como un diagrama de flujo donde se omiten las flechas de unión y las cajas soncontiguas. Las acciones sucesivas se escriben en cajas sucesivas y, como en los diagramasde flujo, se pueden escribir diferentes acciones en una cajaEjemplo:

Pseudocódigo: Es un lenguaje de especificación de algoritmos, el uso de tal lenguaje haceel paso de codificación final relativamente fácil. El pseudocódigo original utiliza pararepresentar las acciones sucesivas palabras reservadas en ingles similares a sus homonimiasen los lenguajes de programación.

Ejemplo:• Calcular el salario neto semanal de un trabajador en función al número de horas

trabajadas y la tasa de impuesto.

Inicio

Leer

Sumaß A+B

Imprimir

Fin

Nombre del algoritmo

Acción 1

Acción 2

Acción n

Page 14: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 14

Pseudocódigo:

InicioLeer nombre, horas, pre_horaSal_Brutoß horas * precio_horasTasaß 0.30*sal_brutoSal_netoß sal_bruto – tasaVisualizar Nombre, Sal_bruto, Tasa, Sal_neto.Fin

Diagrama flujo

N – S

Inicio

Ingresar horas,sal_ horas, tasa

Sal_brutoßhoras*sal_horas

Tot_impß sal_bruto*tasa

Sal_netoß sal_bruto-tot_imp

Visualizar sal_bruto,tasa, sal_neto

Fin

Inicio

Ingresar horas, sal_horas, tasas

Sal_brutoß horas * sal_horas

Tot_impß sal_bruto- tasa

Sal_netoß sal_bruto – tot_imp

fin

Page 15: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 15

ESTRUCTURAS DE PROGRAMACIÓN

Estructura Secuencial:La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra ensecuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de lasiguiente y así sucesivamente hasta el fin del proceso

Diagrama de Flujo N S

Ejemplo: Calcular la suma, resta, multiplicación, división de dos números. (Diagrama

Flujo, N-S, Pseudocódigo).

Pseudocodigo Diagrama de Flujo

InicioLeer un numero ALeer un numero BSuma S. SßA + BProducto P. PßA * BEscribir S,P

Fin

Acción 1

Acción 2

Acción 3

Acción 1

Acción 2...

Acción N

Inicio

Leer A

Leer B

S= A + BP= A * B

Escribir S, P

Fin

Page 16: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 16

• Implementacion del Programa en C#

using System;using System.Collections.Generic;using System.Text;

namespace Factorial{ class Program { static void Main(string[] args) {

int n1,n2; int s, r, m, d; Console.WriteLine("Ingresar numero 1: "); n1 = Convert.ToInt16(Console.ReadLine()); Console.WriteLine("Ingresar numero 2: "); n2 = Convert.ToInt16(Console.ReadLine()); s = n1 + n2; r = n1 - n2; m = n1 * n2; d = n1 / n2; Console.WriteLine("Suma={0}", s); Console.WriteLine("Resta={0}", r); Console.WriteLine("Multiplicacion={0}", m); Console.WriteLine("Division={0}", d); Console.ReadKey(); } }}

Practica1. Desarrollar los siguientes diagramas de Flujos (Pseudocodigo), implementarlos en elLenguaje de Programación C#

a. Calcular el salario neto de un trabajador en función del numero de horas trabajadas,precio de la hora de trabajo y considerando unos descuentos fijos al sueldo bruto enconcepto de impuestos 20%.

b. Calcular el monto neto a pagar a telefónica, teniendo en cuenta que se tienen 2 tipos dellamadas (Local =0.5, Nacional = 2), debe de permitir ingresar el total de minutos dellamadas locales y nacionales.

Page 17: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 17

Estructura Selectiva

Se utiliza para tomar decisiones lógicas; de ahí que se suelan denominar tambiénestructuras de selección o alternativas.En las estructuras selectivas se evalúa una condición y y en función del resultado de lamisma se realiza una opción u otra.Las estructuras selectivas o alternativas pueden ser:

• Simple• Dobles• Múltiples

Alternativa Simple (Si - entonces, If Then)

La estructura selectiva simple si – entonces (If – Then) ejecuta una determinada accióncuando se cumple una determinada condición.

• Si la condición es verdadera, entonces ejecuta la acción SI• Si la condición es falsa, entonces no hacer nada

Diagrama Flujo N - S Pseudocódigo

Si (condición) entonces Acción 1 Acción 2 Fin si

Alternativa Doble (Si - entonces – Si no, If - Then - Else )

• Si la condición C es verdadera, se ejecuta la acción SI, y si es falsa se ejecuta laacción S2

¿Condición?

V Condición F

Acción 1

Page 18: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 18

Diagrama Flujo N - S Pseudocódigo

Si (condición) entonces Acción 1 Sino Acción 2 Fin si

Ejemplo: Ingresar un numero e indicar si el numero es positivo o negativo.

Pseudocodigo

Inicio Leer N Si (N>0) Entonces Escribir N es positivo Sino Escribir N es negativoFin

Diagrama de Flujo

Falso

Verdadero

¿Condición?

Acción S1

V Condición F

Acción 1 Acción 2Acción S2

Inicio

Leer N

Escribir NPositivo

Fin

N>0 Escribir NNegativo

Page 19: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 19

using System;using System.Collections.Generic;using System.Text;

namespace Factorial{ class Program { static void Main(string[] args) {

int n; Console.WriteLine("Ingresar numero: "); n = Convert.ToInt16(Console.ReadLine());

if (n > 0) { Console.WriteLine("Es Numero positivo {0}", n); } else { Console.WriteLine("Es Numero negativo {0}", n); } Console.ReadKey(); } }}

Practica1. Calcular el total de un articulo dado el precio y la cantidad, si el total es mayor que

50 tiene un descuento de 15%.2. Dada tres notas calcular el promedio; si el promedio es <= 10.5 la condición es jalado,

si el promedio<=14 la condición es Bueno, caso contrario la condición es Excelente.3. Identificar si el numero ingresado es par o impar.4. Ingresar un numero e indicar si el numero es mayor que 505. Los trabajadores de una fabrica de automóviles tienen tres turnos: Mañana, Tarde y

Feriados; se desea calcular el sueldo semanal a razón de 5 días de trabajo de lasSiguientes tarifas:50 S/. Turno Mañana60 S/. Turno Tarde100 S/. Turno Feriado

6. Ingresar un numero e indicar si el numero es igual a “Cero”, mayor que cero o menorque cero.

7. Ingresar un numero e indicar si el numero es positivo o negativo, además debe mostrarsi el numero es par o impar.

Page 20: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 20

Alternativa múltiple.

La estructura de decisión múltiple evaluara una expresión que podrá tomar n valoresdistintos 1, 2, 3, 4, 5, ….n. Según que elija uno de estos valores en la condición, se realizarauna de las n acciones.

Diagrama Flujo N - S Pseudocódigo

Case expresión E1: acción 1 E2: Acción 2 Otherwise Acción x End case

Ejemplo: Ingresar un Numero del 1 al 12 e indicar el mes que le corresponda.

1

2 11 12

……………

Cond

A 1 A 2 A 3 A n

Condición1 2 3 n

Inicio

Leer N

Enero

Fin

N

Febrero Noviembre Diciembre

Page 21: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 21

using System;using System.Collections.Generic;using System.Text;

namespace Factorial{ class Program { static void Main(string[] args) { int n;

Console.WriteLine("Ingresar numero del Mes: "); n = Convert.ToInt16(Console.ReadLine());

switch (n) { case 1: Console.WriteLine("El mes {0} es Enero", n); break; case 2: Console.WriteLine("El mes {0} es Febrero", n); break; case 3: Console.WriteLine("El mes {0} es Marzo", n); break; case 4: Console.WriteLine("El mes {0} es Abril", n); break; case 5: Console.WriteLine("El mes {0} es Mayo", n); break; case 6: Console.WriteLine("El mes {0} es Junio", n); break; case 7: Console.WriteLine("El mes {0} es Julio", n); break; case 8: Console.WriteLine("El mes {0} es Agosto", n); break; case 9: Console.WriteLine("El mes {0} es Setiembre", n); break; case 10: Console.WriteLine("El mes {0} es Octubre", n);

Page 22: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 22

break; case 11: Console.WriteLine("El mes {0} es Noviembre", n); break; case 12: Console.WriteLine("El mes {0} es Diciembre", n); break; } Console.ReadKey(); } }}

Practica

1. Diseñar un menu que muestre las operaciones aritméticas y haga los cálculoscorrespondientes.

2. Desarrollar un programa que muestre un menú con cuatro opciones diferentes, cadaopción debe realizar una operación.

3. Desarrollar un algoritmo que permita ingresar el salario de un trabajador e identificarque cargo tiene.

Salario >2500à Gerente

Salario <=1500à JefeSalario <1000à Maestro

Salario <=700à Operario

Page 23: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 23

Estructuras Repetitivas:

Las estructuras que repiten una secuencia de instrucciones un número determinada de vecesse denominan bucles, y se determinan iteración al hecho de repetir la ejecución de unasecuencia de acciones.

• Mientras (While)• Repetir (Repeat)• Desde (For)

Estructuras Mientras (While)Es aquella en el que el cuerpo del bucle se repite mientras se cumple una determinadacondición.

Diagrama flujo N – S Pseudocódigo Mientras (condición) hacer Acción 1 N Acción 2 Acción n S Fin Mientras

Ejemplo: Contar los números enteros positivos, el cálculo se realiza cuando se ingresa unnúmero negativo.

no

si

Cond.

Acción

Mientras Condición

Acción

Inicio Leer N

EscribirC

Fin

N>0

Cß 0

Leer N Cß C + 1

Page 24: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 24

Estructura repetir (Repeat)

La estructura repetir se ejecuta hasta que se cumpla una condición determinada que secomprueba al final del bucle.

Diagrama Flujo N –S Pseudocódigo

Repetir Acción 1 Acción 2 Hasta que (condición)

Ejemplo: Calcular el factorial de un número N, que responde a la formula:N! = N(N-1) (N-2) …….. 3 x 2 x 1

No

Acción

Cond. Repetir condición

Acción

Inicio Leer N

Fin

N >= I

EscribirFactorial

Factorial=factorial * I

Factorial =1I =1

I = I + 1

Page 25: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 25

• While

using System;using System.Collections.Generic;using System.Text;

namespace Factorial{ class Program { static void Main(string[] args) { int n,c; c=0; Console.WriteLine("Ingresar numero: "); n = Convert.ToInt16(Console.ReadLine());

while (n >=0) { c = c + 1; Console.WriteLine("Ingresar numero: "); n = Convert.ToInt16(Console.ReadLine()); } Console.WriteLine("Total Numeros={0}", c); Console.ReadKey(); //Console.ReadKey(); } }}

• Do While

using System;using System.Collections.Generic;using System.Text;

namespace Factorial{ class Program { static void Main(string[] args) { int n, factorial, i; Console.WriteLine("Ingresar numero: "); n = Convert.ToInt16(Console.ReadLine());

Page 26: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 26

factorial = 1; i = 1;

do { factorial = factorial * i; i = i + 1; } while (n >= i); Console.WriteLine("Factorial={0}", factorial); Console.ReadKey(); } Console.ReadKey();

} }}

Practica

1. Diseñar un algoritmo que permita Ingresar dos números y sumarlos, debe demostrar mensaje de continuar S/N

2. Diseñar un algoritmo que permita Ingresar Números , el programa terminacuando se ingresa el numero Cero

3. Diseñar un algoritmo que permita Ingresar números; dada la cantidad denúmeros.

4. Diseñar un algoritmo que permita Calcular el promedio dada una cantidad denúmeros

5. Diseñar un algoritmo que permita Contar y sumar cuantos números pares e imparesse ingresa; dada una cantidad de números

6. Diseñar un algoritmo que permita Contar y sumar cuantos números positivos ynegativos s e ingresan; dada la cantidad de números.

7. Diseñar un algoritmo que permita Ingresar números, e identificar cuantos sonmúltiplos de Cinco, termina cuando se ingresa el numero cero.

Page 27: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 27

Estructura desde / para (for)

En muchas ocasiones se conoce de antemano el numero de veces que se desean ejecutar lasacciones de un bucle. En estos casos en el que el numero de iteraciones es fija, se debe usarla estructura desde

Pseudocódigo

Desde vß vi hasta vf [incremento / decremento] Acción 1 Acción nFin desde

Diagrama de flujo

N- S

Inicio

Fin

Var i,n,c

Imp. c

Ii=

Acciones

Desde V_indß V_ini hasta V_fin [Inc / Dec]

Fin desde

Acciones

Page 28: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 28

Ejemplo: Calcular la suma de los N primeros números. (Ingresar número por teclado)

I= I+ 1 wIi= I=1

Inicio

Fin

Leer N

Escribir S

I <= N

S= 0

I=I+1

S= S + I

Page 29: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 29

using System;using System.Collections.Generic;using System.Text;

namespace Factorial{ class Program { static void Main(string[] args) {

int n,i,s; s = 0; Console.WriteLine("Ingresar numero: "); n = Convert.ToInt16(Console.ReadLine());

for (i = 1; i <= n; i++) { s = s + i; } Console.WriteLine("Suma Numeros={0}",s); Console.ReadKey(); }

}}

Practica1. Implementar un algoritmo que permita Ingresar una Cantidad de Números, conociendo

el limite.2. Implementar un algoritmo que permita identificar los números pares e impares, de 1

hasta el numero ingresado.3. Implementar un algoritmo que permita mostrar la suma de los números pares menores

o iguales a el, y la suma los numero impares.

Page 30: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 30

Bucles: Un bucle es un segmento de un algoritmo o programa, cuyas instrucciones serepiten un número determinado de veces mientras se cumple una determinada conexión.

Si..

No

Contadores: es una variable cuyo valor se incrementa o decrementa en una cantidadconstante en cada iteración.

Acumulador: Es una variable cuya misión es almacenar cantidades variables resultantes desumas sucesivas.

Escribir S

Leer N

N=0

S=S+N

Fin

Contß 1

Cont>5

Cuerpo del bucle

Contß cont+1

Fin

Nß 0Sumaß0

NßN+1SumaßSuma+N

N=K?EscribirSuma

Fin

Page 31: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 31

PRACTICADesarrollar los diagramas de Flujos e Implementarlo en C#

1. Escribir un algoritmo que lea tres notas y calcule el promedio de las notas.Promedio=(n1+n2+2*n3)/4.

2. Escribir un algoritmo en donde se ingrese los días trabajados, y se calcule el sueldoneto, el sueldo = días trabajados por jornal día menos el descuento. (El jornal día=30, el descuento afp=11% del sueldo).

3. Escribir un algoritmo que lea un numero y escriba su cuadrado.4. Escribir un algoritmo que exprese en horas, minutos y segundos un tiempo

expresado en segundos.5. Diseñar un algoritmo que realice la siguiente conversión: una temperatura dada en

grados Celsius a grados Fahrenheit. ( F = (9/5) C + 32 ).6. Escribir un algoritmo que obtenga la ultima cifra de un numero.7. Escribir un algoritmo donde se ingrese un numero.8. Escribir un algoritmo que lea un numero e indique si el numero es positivo o

negativo.9. Escribir un algoritmo que calcule el sueldo de un empleado dados los días

trabajados y el jornal diario; si el sueldo es mayor que 1000, entonces tiene undescuento del 10% caso contrario no hay ningún descuento.

10. Escribir un algoritmo que calcule las nota promedio de un alumno dadas dos notas,si el promedio es mayor o igual a 10.5 entonces mostrar “aprobado”, caso contrariomostrar “Jalado”.

11. Escribir un algoritmo que lea un numero e indique si el numero es par o impar.12. Escribir una algoritmo que lea dos números e indique cual es el mayor y cual es el

menor.13. Escribir un programa que al ingresar un numero adivine el numero mágico (Numero

mágico es una constante del programa), si el numero ingresado es igual al numeromágico entonces reportar “numero correcto”, caso contrario si el numero es mayor,reportar “numero demasiado grande”, caso contrario “numero demasiado pequeño”.

14. Calcular el factorial de un numero N, utilizando la estructura desde15. Imprimir las 20 primeras potencias de 4, es decir, 4 elevado a la 1, 4 elevado a 2,.…16. Calcular la suma de los N primeros números utilizando Mientras17. Diseñar un algoritmo para imprimir la suma de los números impares menores o

iguales que N.18. Realizar el algoritmo para obtener la suma de los números pares hasta 500 inclusive.19. Escribir un algoritmo que permita escribir en una pantalla la frase “Desea Continuar

S / N”, hasta que la respuesta sea S o N.20. Leer sucesivamente números del teclado, hasta que aparezca un número negativo.

Page 32: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 32

ESTRUCTURA DE DATOS (ARRAYS)

Un array es una secuencia de posiciones de la memoria central a las que se puede accederdirectamente, que contiene datos del mismo tipo y pueden ser seleccionadosindividualmente mediante el uso de subíndices.

Array Unidimensionales: Los Vectores.Un array (matriz o vector) es un conjunto finito y ordenado de elementos homogéneos. Loselementos de un array son homogéneos, es decir, del mismo tipo de datos. Un array puedeestar compuesto de todos sus elementos de tipo cadena, otro puede tener todos suselementos de tipo entero, etc.El tipo más simple de array es el array unidimensional o vector (matriz de una dimensión).Un vector de una dimensión denominado NOTAS que consta de N elementos se puederepresentar de la siguiente manera:El subíndice o índice de un elemento [1, 2, 3, 4, i, n], designa su posición en la ordenacióndel vector.

Notas:

Sintaxis

public static void Main() { int[] notas = new int[5];

notas [0] = 20; notas [1] = 15; notas [2] = 12; notas [3] = 09; notas [4] = 13; notas [5] = 18; notas [6] = 12;

Console.WriteLine( arr[1] ); }

20

15

1209

13

18

12

Page 33: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 33

Para crear un arreglo debemos especificar de qué tipo deseamos crear el arreglo seguidopor corchetes [ ] que es el distintivo del arreglo (en nuestro ejemplo usamos int[]), seguidopor la palabra clave new y el tipo y la cantidad de parámetros que tendrá nuestro arreglo.En el ejemplo anterior, por ejemplo, se creó un arreglo notas unidimensional con capacidadpara 6 enteros (especificado por new int[5]), y luego se le asignó a cada parámetro unentero distinto (nótese que se comienza a contar a partir de 0 y el número del parametro seencuentran entre corchetes).Existe una forma más corta para declarar el arreglo y asignarle los valores:int[] arr = {1,2,3}; //es exactamente lo mismo que el ejemplo anterior

Casos Prácticos

1. Desarrollar e implementar un programa que permita ingresar y reportar un arreglo denotas, según una cantidad de elementos ingresados

using System;using System.Collections.Generic;using System.Text;namespace Arreglos{ class Program { static void Main(string[] args) { // Declaracion de variables

int i, n;// Declaracion del arreglo NOTA

int [] nota =new int[6]; // Cantidad de elementos del arreglo System.Console.WriteLine("Ingresar numero de notas: "); n =Convert.ToInt16( Console.ReadLine()); // Ingreso de elementos al arreglo for (i = 0; i < n; i++) { Console.WriteLine("Nota [{0}]:",i); nota[i] =Convert.ToInt16( Console.ReadLine()); } // Reportar elementos del arreglo for (i = 0; i < n; i++) { Console.WriteLine("Nota: {0}",nota[i]); } Console.ReadKey();

} }

Page 34: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 34

}

2. Implementar un programa que permita ingresar un arreglo, e identificar los elementos

positivos y negativos.

static void Main(string[] args) { int i, n; int[] nota = new int[6]; System.Console.WriteLine("Ingresar numero de notas: "); n = Convert.ToInt16(Console.ReadLine());

for (i = 0; i < n; i++) { Console.WriteLine("Nota [{0}]:", i); nota[i] = Convert.ToInt16(Console.ReadLine()); }

for (i = 0; i < n; i++) { if (nota[i] > 0) { Console.WriteLine("Elemento {0}, es Positivo", nota[i]); } else { Console.WriteLine("Elemento {0}, es Negativo", nota[i]); } } Console.ReadKey();

}

3. Implementar un programa que permita ingresar un arreglo, y permita contar y acumular

los números pares e impares.

static void Main(string[] args) {

int i, n;

int cp, ci, ap, ai;

cp = 0; ci = 0; ap = 0; ai = 0;

int[] nota = new int[6];

Page 35: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 35

System.Console.WriteLine("Ingresar numero de notas: "); n = Convert.ToInt16(Console.ReadLine()); for (i = 0; i < n; i++) { Console.WriteLine("Nota [{0}]:", i); nota[i] = Convert.ToInt16(Console.ReadLine()); } for (i = 0; i < n; i++) { if (nota[i] % 2==0) { cp = cp + 1; ap = ap + nota[i]; } else { ci = ci + 1; ai = ai + nota[i]; } } Console.WriteLine("Total elementos Pares:{0}:", cp); Console.WriteLine("Total elementos Impares:{0}:", ci); Console.WriteLine("Suma Total Pares:{0}:", ap); Console.WriteLine("Suma Total Impares:{0}:", ai);

Console.ReadKey();

}

PRACTICA

1. Implementar un programa que permita mostrar que elementos son positivos y/onegativos.

2. Implementar un programa que permita Sumar todos los elementos del arreglo.3. Implementar un programa que permita ingresar 2 arreglos y sumar los elementos de

los dos arreglos en un tercer arreglo.4. Implementar un programa que permita ingresar 2 arreglos y multiplicar los

elementos de los dos arreglos en un tercer arreglo.5. Implementar un programa que permita calcular el promedio de los elementos

ingresados en un arreglo.6. Implementar un programa que permita ingresar elementos a un arreglo, y luego

debe de permitir ingresar un numero para verificarlo si se encuentra en el arreglo.7. Implementar un programa que permita ingresar elementos a un arreglo, y luego

debe de reportarlos del ultimo al primero.

Page 36: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 36

Array Bidimensionales: Los Arreglos.El array bidimensional se puede considerar como un vector de vectores. Es, porconsiguiente, un conjunto de elementos, todos del mismo tipo, en el cual el orden de loscomponentes es significativo y en el que se necesitan especificar dos subíndices para poderidentificar a cada elemento del array.

Fila 1

Fila 2

Fila 3

Fila 4

Fila 5

Columna 5Columna 4

Columna 3Columna 2

Columna 1

En notación estándar, normalmente el primer subíndice se refiere a la fila del array,mientras que el segundo subíndice se refiere a la columna del array. Es decir B(i,j).

1 2 3 4 5

1

2

3

4

5Sintaxis

public static void Main()

{ int[ , ] arr = new int[2,2]; arr[0,0] = 1; arr[1,0] = 2; arr[0,1] = 3; arr[1,1] = 4;

5,2

Page 37: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 37

Console.WriteLine("El valor que posee la variable arr[1,1] es {0}", arr[1,1] ); }Ejemplo:

1. Implementar un programa que permita ingresar y reportar elementos de una matriz.

using System;using System.Collections.Generic;using System.Text;

namespace Matriz{ class Program { static void Main(string[] args) { // Declarar la Matriz int[,] matriz = new int[5, 5]; int f, c, i, j; // Ingresar filas y columnas Console.WriteLine("Ingresar N° Filas:"); f = Convert.ToInt16(Console.ReadLine()); Console.WriteLine("Ingresar N° Columnas:"); c = Convert.ToInt16(Console.ReadLine()); // Ingresar elementos a la matriz for (i = 0; i < f; i++) { for (j = 0; j < c; j++) { Console.WriteLine("Mat: "); matriz[i, j] = Convert.ToInt16(Console.ReadLine()); } } // Reportar elmentos de la matriz for (i = 0; i < f; i++) { Console.Write("\n"); for (j = 0; j < c; j++) { Console.Write(" {0} ", matriz[i,j]);

} } Console.ReadKey(); } }}

Page 38: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 38

2. Implementar un programa que permita contar cuantos elementos positivos y negativostiene la matriz.

static void Main(string[] args) {

int[,] matriz = new int[5, 5]; int f, c, i, j,cp,cn; cp = 0; cn = 0; Console.WriteLine("Ingresar N° Filas:"); f = Convert.ToInt16(Console.ReadLine()); Console.WriteLine("Ingresar N° Columnas:"); c = Convert.ToInt16(Console.ReadLine());

for (i = 0; i < f; i++) { for (j = 0; j < c; j++) { Console.WriteLine("Mat: "); matriz[i, j] = Convert.ToInt16(Console.ReadLine()); } }

for (i = 0; i < f; i++) { Console.Write("\n"); for (j = 0; j < c; j++) { if (matriz[i, j] > 0) { cp = cp + 1; } else { cn = cn + 1; } } } Console.WriteLine("Total positivos {0}:", cp); Console.WriteLine("Total negativos {0}:", cn); Console.ReadKey();

}

Page 39: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 39

PRACTICA

3. Implementar un programa que permita mostrar que elementos son positivos y/onegativos.

4. Implementar un programa que permita Sumar todos los elementos de la matriz .5. Implementar un programa que permita ingresar 2 matrices y sumar los elementos de

las dos matrices en un tercer matriz.6. Implementar un programa que permita calcular el promedio de los elementos

ingresados en una Matriz.7. Implementar un programa que permita ingresar elementos a una matriz, y luego

debe de permitir ingresar un numero para verificarlo si se encuentra en la matriz.8. Implementar un programa que permita ingresar elementos a una matriz, y luego

debe de reportarlos el elemento mayor y menor.

Page 40: UNIVERSIDAD PRIVADA “SAN PEDRO”upspoaav.pbworks.com/f/Manual_Estructura.pdf · Reales: Es un subconjunto de los números reales. Los números reales siempre tienen un ... Los

Ing. Oscar Ascón Valdivia 40

I