Author
dinhmien
View
215
Download
0
Embed Size (px)
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
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
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
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.
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
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;
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.
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
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
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");
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.
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.
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
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
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
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.
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
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
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.
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
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);
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
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
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
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());
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.
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
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
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.
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
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.
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
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();
} }
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];
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.
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
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(); } }}
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();
}
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.
Ing. Oscar Ascón Valdivia 40
I