Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: paramonso en 14 de Noviembre 2017, 16:41

Título: JavaScript creación objetos diferencia entre función interna y externa CU01144E
Publicado por: paramonso en 14 de Noviembre 2017, 16:41
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>

Título: Re:JavaScript creación objetos diferencia entre función interna y externa CU01144E
Publicado por: Ogramar en 13 de Marzo 2018, 19:56
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