Recordar:) - UNICEN · 2015. 11. 6. · Recordar:) •...

27
Recordar: Dos algoritmos diferentes pueden resolver el mismo problema. La documentación a medida que se desarrolla la solución nos puede servir de ayuda. La verificación del algoritmo puede evitar programas que no funcionen correctamente

Transcript of Recordar:) - UNICEN · 2015. 11. 6. · Recordar:) •...

Page 1: Recordar:) - UNICEN · 2015. 11. 6. · Recordar:) • Dos)algoritmos)diferentes)pueden)resolver)el) mismo)problema.) • Ladocumentación)amedidaque)se)desarrolla lasolución)nos)puede)servir)de)ayuda

Recordar:  

•  Dos  algoritmos  diferentes  pueden  resolver  el  mismo  problema.  

•  La  documentación  a  medida  que  se  desarrolla  la  solución  nos  puede  servir  de  ayuda.  

•  La  verificación  del  algoritmo  puede  evitar  programas  que  no  funcionen  correctamente  

Page 2: Recordar:) - UNICEN · 2015. 11. 6. · Recordar:) • Dos)algoritmos)diferentes)pueden)resolver)el) mismo)problema.) • Ladocumentación)amedidaque)se)desarrolla lasolución)nos)puede)servir)de)ayuda

Estructuras  Algorítmicas  

Page 3: Recordar:) - UNICEN · 2015. 11. 6. · Recordar:) • Dos)algoritmos)diferentes)pueden)resolver)el) mismo)problema.) • Ladocumentación)amedidaque)se)desarrolla lasolución)nos)puede)servir)de)ayuda

Variables  

Page 4: Recordar:) - UNICEN · 2015. 11. 6. · Recordar:) • Dos)algoritmos)diferentes)pueden)resolver)el) mismo)problema.) • Ladocumentación)amedidaque)se)desarrolla lasolución)nos)puede)servir)de)ayuda

Asignación  de  valores  a  las  variables  

•  La  asignación  es  una  operación  que  sitúa  un  valor  determinado  en  una  posición  de  memoria.  

Variable  ß  expresión;    (la  expresión  debe  ser  el  mismo  Epo  que  la  variable)  Reglas:  •  Una  variable  en  el  lado  derecho  de  una  sentencia  de  asignación  debe  tener  un  valor  antes  de  que  la  sentencia  de  asignación  se  ejecute.  Hasta  que  un  programa  no  le  de  un  valor  a  una  variable,  esa  variable  no  Eene  valor.  

•  En  la  izquierda  de  una  sentencia  de  asignación  solo  pueden  exisEr  variables.  

Page 5: Recordar:) - UNICEN · 2015. 11. 6. · Recordar:) • Dos)algoritmos)diferentes)pueden)resolver)el) mismo)problema.) • Ladocumentación)amedidaque)se)desarrolla lasolución)nos)puede)servir)de)ayuda

Variables  y  Constantes  

Cada  dato  se  asocia  a  una  variable  o  a  una  constante.  

•  Las  variables  Eenen  dos  componentes:  nombre  y  Epo.  Los  nombres  son  IDENTIFICADORES  

•  Cada  constante  Eene  dos  componentes:  Nombre  y  valor  

Page 6: Recordar:) - UNICEN · 2015. 11. 6. · Recordar:) • Dos)algoritmos)diferentes)pueden)resolver)el) mismo)problema.) • Ladocumentación)amedidaque)se)desarrolla lasolución)nos)puede)servir)de)ayuda

Constantes  

Es  un  dato  numérico  o  alfanumérico  que  no  cambia  durante  la  ejecución  del  programa.  

 Ejemplo:  piß  3.1416  

Page 7: Recordar:) - UNICEN · 2015. 11. 6. · Recordar:) • Dos)algoritmos)diferentes)pueden)resolver)el) mismo)problema.) • Ladocumentación)amedidaque)se)desarrolla lasolución)nos)puede)servir)de)ayuda

IDENTIFICADORES  Para  dar  nombres  a  las  variables  hay  que  seguir  ciertas  reglas:      •   Pueden  tener  hasta  40  caracteres  

•   Debe  empezar  obligatoriamente  con  una  letra  (a-­‐z  o  A-­‐Z)  

•   No  pueden  contener  espacios  en  blanco  

•   El  resto  de  los  caracteres  pueden  ser  números  

•   Se  pueden  incluir  caracteres  especiales  como  el  guión  o  el  punto.  

 

Page 8: Recordar:) - UNICEN · 2015. 11. 6. · Recordar:) • Dos)algoritmos)diferentes)pueden)resolver)el) mismo)problema.) • Ladocumentación)amedidaque)se)desarrolla lasolución)nos)puede)servir)de)ayuda

Ejemplos  de  nombres  válidos  de  variables        FechaNueva  

 C1    totalGuaranies    CONTADOR-­‐5    H123    canEdad_de_Alumnos    Pedido.Almacen    

     

 Ejemplos  de  nombres  de  variables  NO  válidos            Fecha  nueva  

 1contador    24ABC    primer-­‐valor  N  

IDENTIFICADORES  

Page 9: Recordar:) - UNICEN · 2015. 11. 6. · Recordar:) • Dos)algoritmos)diferentes)pueden)resolver)el) mismo)problema.) • Ladocumentación)amedidaque)se)desarrolla lasolución)nos)puede)servir)de)ayuda

Tipos  de  datos  

El  $po  de  dato  determina  la  naturaleza  del  conjunto  de  valores  que  puede  tomar  una  variable.  

 

  incluye  a  los  números  enteros  y  los  reales.  dos  valores  (cierto  o  falso)  

secuencia  de  caracteres  alfanuméricos  Ejemplo:  “Facultad  de  Ingeniería”  

Page 10: Recordar:) - UNICEN · 2015. 11. 6. · Recordar:) • Dos)algoritmos)diferentes)pueden)resolver)el) mismo)problema.) • Ladocumentación)amedidaque)se)desarrolla lasolución)nos)puede)servir)de)ayuda

Clasificación  de  las  Variables  

Page 11: Recordar:) - UNICEN · 2015. 11. 6. · Recordar:) • Dos)algoritmos)diferentes)pueden)resolver)el) mismo)problema.) • Ladocumentación)amedidaque)se)desarrolla lasolución)nos)puede)servir)de)ayuda

Operadores  Son  elementos  que  relacionan  de  forma  diferente,  los  valores  de  una  o  mas  variables  y/o  constantes.    

 Es  decir,  los  operadores  nos  permiten  manipular  valores.  

     AritméEcos:  +,  -­‐,  *,  /,  mod      Relaciónales:  >,  <,  =,  >=,  <=,  <>      Lógicos:  AND,  OR,  NOT;  (  Y,  O,  NO)  

Page 12: Recordar:) - UNICEN · 2015. 11. 6. · Recordar:) • Dos)algoritmos)diferentes)pueden)resolver)el) mismo)problema.) • Ladocumentación)amedidaque)se)desarrolla lasolución)nos)puede)servir)de)ayuda

Expresiones  

Las  expresiones  son  combinaciones  de  constantes,  variables,  símbolos  de  operación  (operadores),  paréntesis  y  nombres  de  funciones  especiales.    

 Por  ejemplo:    AritmeEca:      a+(b  +  3)/c        Relacional:      a  -­‐  b  <  c    Logica:        Bueno  AND  Barato  

Page 13: Recordar:) - UNICEN · 2015. 11. 6. · Recordar:) • Dos)algoritmos)diferentes)pueden)resolver)el) mismo)problema.) • Ladocumentación)amedidaque)se)desarrolla lasolución)nos)puede)servir)de)ayuda

Operadores  Lógicos  

Op1      Op2        AND      OR      XOR      NAND    NOT  (Op1)  0                0                  0                0              0                      1                  1  0                1                  0                1                1                    1                  1  1         0                  0                1                1                    1                  0                    1                1                  1                1                0                    0                  0    

Page 14: Recordar:) - UNICEN · 2015. 11. 6. · Recordar:) • Dos)algoritmos)diferentes)pueden)resolver)el) mismo)problema.) • Ladocumentación)amedidaque)se)desarrolla lasolución)nos)puede)servir)de)ayuda

Operaciones  de  Entrada  /  Salida  Los  datos  que  vamos  a  obtener  del  usuario  para  procesarlos  también  deben  ser  asignados  a  variables,  la  operación  de  lectura,  lee  un  dato  y  lo  asigna  a  una  variable  

Ej:      leer  Edad;                                              Edad=input(‘Ingrese  la  Edad  ‘);    Cuando  queramos  mostrar  el  resultado  del  algoritmo,  un  mensaje,  un  valor,  etc,  vamos  a  uElizar  el  comando  imprimir.  Por  ejemplo:    

Ej:  imprimir    "Hola"  ;                        disp(“Hola”);    imprimir  Edad;                                    disp(Edad);  

 

Page 15: Recordar:) - UNICEN · 2015. 11. 6. · Recordar:) • Dos)algoritmos)diferentes)pueden)resolver)el) mismo)problema.) • Ladocumentación)amedidaque)se)desarrolla lasolución)nos)puede)servir)de)ayuda

Estructuras  de  Control  Básicas  (Secuencia)  

Estructura  de  control  mas  simple.  Esta  representada  por  una  sucesión  de  operaciones  (por  ej.  

Asignaciones)  que  se  ejecutan  en  forma  ordenada.  

Inicio              Accion1              Accion2  .  .  .        Fin  

Page 16: Recordar:) - UNICEN · 2015. 11. 6. · Recordar:) • Dos)algoritmos)diferentes)pueden)resolver)el) mismo)problema.) • Ladocumentación)amedidaque)se)desarrolla lasolución)nos)puede)servir)de)ayuda

Problemas  Secuenciales  

En  Pseudocódigo  real  cap_inv,  gan  

Inicio    Leer  cap_inv    gan  ß  cap_inv  *  0.02    Imprimir  gan  

Fin    

En  Matlab      cap_inv=input(‘ingrese  capital’);  gan=cap_inv*0.02;  disp(gan);  

Un  individuo  desea  inverEr  su  capital  en  un  banco  y  desea  saber  cuanto  dinero  ganará  después  de  un  mes  si  el  banco  paga  a  razón  de  2%  mensual.  

Page 17: Recordar:) - UNICEN · 2015. 11. 6. · Recordar:) • Dos)algoritmos)diferentes)pueden)resolver)el) mismo)problema.) • Ladocumentación)amedidaque)se)desarrolla lasolución)nos)puede)servir)de)ayuda

Problemas  Secuenciales  

En  Pseudocódigo  real  v1,v2,v3,sb,tot_vta,com,tpag  Inicio    Leer  sb,  v1,  v2,  v3    tot_vta  ß  v1  +  v2  +  v3    com  ß  tot_vta  *  0.10    tpag  ß  sb  +  com    Imprimir  tpag,  com  

Fin  

En  Matlab  v1=input(‘venta  1’);  v2=input(‘venta  2’);  v3=input(‘venta  3’);  tot_vta  =  v1  +  v2  +  v3  com  =  tot_vta  *  0.10  tpag  =  sb  +  com  disp([tpag  com]);  

Un  vendedor  recibe  un  sueldo  base  mas  un  10%  extra  por  comisión  de  sus  ventas,  el  vendedor  desea  saber  cuanto  dinero  obtendrá  por  concepto  de  comisiones  por  las  tres  ventas  que  realiza  en  el  mes  y  el  total  que  recibirá  en  el  mes  tomando  en  cuenta  su  sueldo  base  y  comisiones.  

Page 18: Recordar:) - UNICEN · 2015. 11. 6. · Recordar:) • Dos)algoritmos)diferentes)pueden)resolver)el) mismo)problema.) • Ladocumentación)amedidaque)se)desarrolla lasolución)nos)puede)servir)de)ayuda

Estructuras  de  Control  Básicas:  CONDICIONAL  -­‐  SIMPLE  

Si  condición  entonces    Accion1    Accion2    .........    AccionN  

 Fin_si  

Las  estructuras  condicionales  simples  se  les  conoce  como  “Tomas  de  decisión”.    Estas  tomas  de  decisión  Eenen  la  siguiente  forma:  

Page 19: Recordar:) - UNICEN · 2015. 11. 6. · Recordar:) • Dos)algoritmos)diferentes)pueden)resolver)el) mismo)problema.) • Ladocumentación)amedidaque)se)desarrolla lasolución)nos)puede)servir)de)ayuda

Estructuras  de  Control  Básicas:  CONDICIONAL  -­‐  SIMPLE  

Si  <condición>  entonces    Accion1    ......    AcciónN  

sino    Accion1    ......    AcciónN  

Fin-­‐si  

Page 20: Recordar:) - UNICEN · 2015. 11. 6. · Recordar:) • Dos)algoritmos)diferentes)pueden)resolver)el) mismo)problema.) • Ladocumentación)amedidaque)se)desarrolla lasolución)nos)puede)servir)de)ayuda

Estructuras  de  Control  Básicas:  CONDICIONAL  –  MULTIPLE  (SI  anidados)  Si  <condición>  entonces    Acción(es)  

si  no    Si  <condición>  entonces      Acción(es)    si  no      .      .  Varias  condiciones      .    fin_si  

fin_si  

Page 21: Recordar:) - UNICEN · 2015. 11. 6. · Recordar:) • Dos)algoritmos)diferentes)pueden)resolver)el) mismo)problema.) • Ladocumentación)amedidaque)se)desarrolla lasolución)nos)puede)servir)de)ayuda

Estructuras  de  Control  Básicas:  CONDICIONAL  -­‐  CASE  

Casos  Variable    Op1:  Acción(es)    Op2:  Acción(es)    ......  .    OpN:  Acción(es)  

[sino    sentencia(s)]  

Fin-­‐casos  

Page 22: Recordar:) - UNICEN · 2015. 11. 6. · Recordar:) • Dos)algoritmos)diferentes)pueden)resolver)el) mismo)problema.) • Ladocumentación)amedidaque)se)desarrolla lasolución)nos)puede)servir)de)ayuda

Condicionales  en  Matlab  if  expression    commands  

end      if  expression    commands  (evaluated  if  expression  is  true)  

else    commands  (evaluated  if  expression  is  false)  

end    

 if  expression1  

 commands    (evaluated  if    expression  1  istrue)  

elseif  expression  2    commands  (evaluated  if    expression  2  is  true)  

elseif  …  ...  else  

 commands  (executed  if  all    previous  expressions    evaluate  to  false)  

end  

Page 23: Recordar:) - UNICEN · 2015. 11. 6. · Recordar:) • Dos)algoritmos)diferentes)pueden)resolver)el) mismo)problema.) • Ladocumentación)amedidaque)se)desarrolla lasolución)nos)puede)servir)de)ayuda

CASE  en  Matlab  

switch  expression  (scalar  or  string)    case  value1  (executes  if  expression  evaluates  to  value1)      commands    case  value2  (executes  if  expression  evaluates  to  value2)      commands    ...    otherwise      statements  

end  

Page 24: Recordar:) - UNICEN · 2015. 11. 6. · Recordar:) • Dos)algoritmos)diferentes)pueden)resolver)el) mismo)problema.) • Ladocumentación)amedidaque)se)desarrolla lasolución)nos)puede)servir)de)ayuda

x  =  ceil(10*rand);      %  Generate  a  random  integer  in  {1,  2,  ...  ,  10}  

switch  x    case  {1,2}      disp('Probability  =  20%');    case  {3,4,5}      disp('Probability  =  30%');    otherwise      disp('Probability  =  50%');  

end  

CASE  en  Matlab  (ejemplo)  

Page 25: Recordar:) - UNICEN · 2015. 11. 6. · Recordar:) • Dos)algoritmos)diferentes)pueden)resolver)el) mismo)problema.) • Ladocumentación)amedidaque)se)desarrolla lasolución)nos)puede)servir)de)ayuda

Problemas  de  estructuras  Condicionales  

real  p_int,cap,capf,int  Inicio  

 Leer  p_int,  cap    capf  ß  cap    int  ß  cap  *  p_int    si  int  >  7000  entonces      capf  ß  cap  +  int    fin-­‐si    Imprimir  capf  

Fin    

 p_int=input(‘interes’);  cap=input(‘capital’);  capf=cap;  int  =  cap  *  p_int;  If  (int  >  7000)  

   capf  =  cap  +  int;  end  disp  capf;  

Un  hombre  desea  saber  cuanto  dinero  se  genera  en  intereses  sobre  la  canEdad  que  Eene  inverEda  en  el  banco.  ReinverErá  los  intereses  siempre  y  cuando  estos  excedan  a  $7000,  y  en  ese  caso  desea  saber  cuanto  dinero  tendrá  finalmente  en  su  cuenta.  

Pseudocódigo        Matlab  

Page 26: Recordar:) - UNICEN · 2015. 11. 6. · Recordar:) • Dos)algoritmos)diferentes)pueden)resolver)el) mismo)problema.) • Ladocumentación)amedidaque)se)desarrolla lasolución)nos)puede)servir)de)ayuda

Problemas  de  estructuras  Condicionales  

 entero  calif1,calif2,calif3  real  prom  Inicio  

 Leer  calif1,  calif2,  calif3    prom  ß  (calif1  +  calif2  +  calif3)/3    Si  prom  >=  70  entonces      Imprimir  “alumno  aprobado”    si  no      Imprimir  “alumno  reprobado”    Fin-­‐si  

Fin            

                               calif1=input(‘Ingrese  C1’);                calif2=input(‘Ingrese  C2’);                calif3=input(‘Ingrese  C3’);                prom  =  (calif1  +  calif2  +  calif3)/3;                if  (prom  >=  70)    

   disp(‘alumno  aprobado’);        else        disp(‘alumno  aprobado’);        

           end  

 

Determinar  si  un  alumno  aprueba  o  reprueba  un  curso,  sabiendo  que  aprobara  si  su  promedio  de  tres  calificaciones  es  mayor  o  igual  a  70;  reprueba  en  caso  contrario.  

Pseudocódigo        Matlab  

Page 27: Recordar:) - UNICEN · 2015. 11. 6. · Recordar:) • Dos)algoritmos)diferentes)pueden)resolver)el) mismo)problema.) • Ladocumentación)amedidaque)se)desarrolla lasolución)nos)puede)servir)de)ayuda

Estructuras  Condicionales  ++  Se  solicita  al  operador  que  ingrese  tres  números  enteros  cualesquiera.  En  base  a  estos  números,  mostrar  por  pantalla  cual  es  el  mayor  de  todos.  

Inicio      variable1ß0      variable2ß0      Imprimir  “Ingrese  tres  números  enteros  “      Desde  1  a  3            Leer  variable1            si  (variable1>variable  2)  entonces                variable2ßvariable1              Fin  si      Fin  Desde        imprimir  “El  mayor  valor  ingresado  es  ”      imprimir  variable2  Fin                                        

 v1=0;  v2=0;  disp(‘Ingrese  tres  números  enteros’);    for  i=[1..3]        v1=input(‘ingrese  un  entero  ‘);        if  (v1  >  v2)                v2=v1;        end  End  disp(‘El  mayor  valor  es’);  disp(v2);  

Diag.  De  Flujos                                                Pseudocódigo      Matlab