Autor Tema: JavaScript creación objetos diferencia entre función interna y externa CU01144E  (Leído 455 veces)

paramonso

  • Intermedio
  • ***
  • Mensajes: 249
  • El ignorante afirma, el sabio duda y reflexiona.
    • Ver Perfil
Hola.

Dejo mi solución al ejercicio CU01144E del tutorial de programación JavaScript:

Código: [Seleccionar]


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
<title>ejercicio CU01144E</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />

<script type="text/javascript">

doctor=new Array("Pelaez","Ruiperez","Fernandez","Jamacuquito");
espec=new Array("Oftalmologia","Cardiologia","Traumatologia","Pediatria");
perCur=new Array(21,12,63,25);
docEsp=new Array();
n="<i>Nombre del doctor :</i><b> ";
es="</b><i>Especialidad :</i><b> ";
cur="</b><i>Personas Curadas :</i><b> ";
msg="<b><i><center>Doctores especialidades y personas curadas</center></b></i><br/>";

function iniciaVariables()
{
doctor=new Array("Pelaez","Ruiperez","Fernandez","Jamacuquito");
espec=new Array("Oftalmologia","Cardiologia","Traumatologia","Pediatria")
docEsp[0]=n+doctor[0]+"<br/>"+es+espec[0]+"<br/>"+cur+perCur[0]+"<br/>";
docEsp[1]=n+doctor[1]+"<br/>"+es+espec[1]+"<br/>"+cur+perCur[1]+"<br/>";
docEsp[2]=n+doctor[2]+"<br/>"+es+espec[2]+"<br/>"+cur+perCur[2]+"<br/>";
docEsp[3]=n+doctor[3]+"<br/>"+es+espec[3]+"<br/>"+cur+perCur[3]+"<br/>"

for (i=0;i<docEsp.length;i++){msg=msg+docEsp[i]+"<br/>";}
document.all.pizarra.innerHTML =msg;
document.all.pizarra2.innerHTML =msg;
}
/* ************************ FUNCION EXTERNA *********************************/
function entraDoctor()
{


var A=prompt("Que doctor le curo")
for(i=0;i<doctor.length;i++)
{
var Si=false;
if (doctor[i]==A)
{
   Si=true
perCur[i]=perCur[i]+1;

Nombre=A;
Especialidad=espec[i];
PersonaCurada=perCur[i];
docEsp[i]=n+Nombre+"<br/>"+es+Especialidad+"<br/>"+cur+PersonaCurada+"<br/>";
Metche=new Medico();
break;
}
}
if(Si==false){alert("El Dr. "+A+" no existe en esta base de datos")}
if(Si==true){presentarDatos();}

}
function Medico()
{
this.Nombre = Nombre;
this.Especialidad = Especialidad;
this.PersonaCurada = PersonaCurada;
}

 function presentarDatos()
{

alert("Añadimos un paciente curado al\nDoctor :"+this.Nombre+"\nEs epecialista en : "+this.Especialidad+"\n tiene a "+this.PersonaCurada+" personas curadas");

msg="<b><i><center>Doctores especialidades y personas curadas</center></b></i><br/>";
document.all.pizarra.innerHTML ="";
for (i=0;i<docEsp.length;i++){msg=msg+docEsp[i]+"<br/>";}
document.all.pizarra.innerHTML =msg;
}
/* ********************************************************************************/
/* *********************************** FUNCION INTERNA ****************************/
/* ********************************************************************************/
function entraDoctor2()
{
     var A=prompt("Que doctor le curo")
for(i=0;i<doctor.length;i++)
{
var Si=false;
if (doctor[i]==A)
{
   Si=true
perCur[i]=perCur[i]+1;

Nombre=A;
Especialidad=espec[i];
PersonaCurada=perCur[i];
docEsp[i]=n+Nombre+"<br/>"+es+Especialidad+"<br/>"+cur+PersonaCurada+"<br/>";
Metche=new Medico2();
break;
}
}
if(Si==false){alert("El Dr. "+A+" no existe en esta base de datos")}
if(Si==true){presentaDatos();}

function Medico2()
{
this.Nombre = Nombre;
this.Especialidad = Especialidad;
this.PersonaCurada = PersonaCurada;
}
function presentaDatos()
{

alert("Añadimos un paciente curado al\nDoctor :"+this.Nombre+"\nEs epecialista en : "+this.Especialidad+"\n tiene a "+this.PersonaCurada+" personas curadas");

msg="<b><i><center>Doctores especialidades y personas curadas</center></b></i><br/>";
document.all.pizarra2.innerHTML ="";
for (i=0;i<docEsp.length;i++){msg=msg+docEsp[i]+"<br/>";}
document.all.pizarra2.innerHTML =msg;
}
/* ********************************************************************************/
/* ********************************************************************************/
}
</script>



<style type="text/css">
body{background-color:green;}
  h1,h2{
text-align:center;
margin-left:0;
padding:0;
color:white;
width:300;
height:200;
}

.boton, .boton2 {
border:outset white  2px; 
width:200px;
border-radius:25px 25px;
box-shadow:3px 3px 2px 2px #AFF6AF;
text-align:center;
    background-color:#90EE90;
color:black;
font-size:19px;
margin-top :2px;
margin-left:5px;
margin-bottom:5px;
float:left;
}
.boton, #externa{margin-left:150px;}
.boton2, #interna{margin-left:600px}

.boton:hover {
border:inset 2px green;
box-shadow:3px 3px 2px 2px  #0BF50B ;
    }
#pizarra,#pizarra2{

background-color:black;
border:groove red 8px;
border-radius:25px 25px;
width:500px;
height:400px;
color:white;
font-size:19px;
padding:15px;
overflow:hidden;
float:left;
margin-left:10px;
margin-top:10px;
}
#Pizarras{float:left;}
#pizarra2{margin-left:230px}
p{text-align:center;margin:0;padding:0;float:left;color:white;font-size:30px}


</style>
</head>
<body onload="iniciaVariables()">
<div id="cabecera"><h2>Ejercicio CU01144E javaScript desde cero</h2> </div>
<p id="externa">Funcion Externa</p><p id="interna">Funcion Interna</p>
<div id="Pizarras">
<div class="boton" onclick="entraDoctor()">¿Que Dr le curo?</div>
<div class="boton2" onclick="entraDoctor2()">¿Que Dr.le curo?</div>
<div id="pizarra"></div>

<div id="pizarra2"></div>

</div>
</body></html>

« última modificación: 13 de Marzo 2018, 19:55 de Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2448
    • Ver Perfil
Buenas, por un lado felicitarte porque se ve un código bien trabajado donde se manejan muchos conceptos. Por otro lado, veo que no te has ajustado a lo que pedía el enunciado, sino que has cambiado nombres y hecho cosas que no se pedían sino que has ido más allá. Para quienes tengan interés por profundizar en conceptos, les recomendaría revisar el código. En cambio para quienes simplemente busquen una forma de solucionar el ejercicio les recomendaría que miren en otros hilos del foro, pues esta solución excede a lo que propiamente pedía el ejercicio.

Salu2

 

Esto es un laboratorio de ideas...
Aprender a programar

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".