Autor Tema: PHP Funciones para cadenas, str_replace, count_chars contar vocales CU00828B  (Leído 3359 veces)

paramonso

  • Intermedio
  • ***
  • Mensajes: 241
  • El ignorante afirma, el sabio duda y reflexiona.
    • Ver Perfil
Hola. Hago la entrega del Ejercicio CU00828B del tutorial de programación web con PHP desde cero.

Me ha costado un poco mas por que no me encontraba la forma de crear un algoritmo correcto con pocas lineas de código en el apartado b) segundo bloque de código.

No funcionaba yo con los if y las comparaciones hasta que he dado con él. Ahí va.

Enlace a la página: http://paramonso.byethost7.com/Ejercicio28(CU00828B)%20.php

Cabecera de la Pagina:
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>PHP Desde cero aprenderaprogramar.com</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta name="generator" content="Geany 1.27" />
<style type="text/css">
      body{  background-color:yellow; color:blue;}
      h1, h2{text-align:center; color:blue;}
      div{
  text-align:left;
  }
      #cont{

background-color:orange;
height:1500px;
width:950px;
padding:10px;
margin:20px auto;
}
#pres{
border:solid 2px;
background-color:White;
width:200px;
padding:5px;
margin:10px;
float:left;
}

.pres1{
height:150px;

}

.pres2{
height:300px;

}

#con {
   height:0;px
   width:0px;
               overflow: hidden;
               margin:0;
               padding:0;
               
}
#NoFLot{
clear:both;

}

</style>
</head>

<body>


EJERCICIO

Crear archivos php que ejecuten la tarea indicada:

a) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso", indicar cuántas veces aparece cada vocal usando funciones para cadenas PHP.

Código: [Seleccionar]
echo '<div id=cont>';
echo '<h1>Ejercicio Entrega 28 (CU00828B) </h1> <h2>Funciones de cadenas PHP</h2>
<h3>EJERCICIO <br/>
Crear archivos php que ejecuten la tarea indicada:<br/>
a) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso",<br/>
 indicar cuántas veces aparece cada vocal usando funciones para cadenas PHP.</h3>';
 
echo '<div class=pres1 id=pres>';
$Cadena='El abecedario completo es algo largo y detallarlo exhaustivamente es costoso';
print '<strong><br/>Funcion substr_count<br/></strong>';
for($i=65; $i<=118; $i++)
{
if ($i==97 or $i==101 or $i==105 or $i==111 or $i==117 or $i==69)
{
$vocal=chr($i);
echo "La vocal $vocal aparece&nbsp;".substr_count($Cadena, $vocal)."&nbsp;Veces<br/>";
}
}
echo '</div>';
 
 echo'<div id=con></div>';
 
echo '<div class=pres1 id=pres>';
print '<strong><br/>Funcion count_chars ()<br/></strong>';
$n=1;
$miArray = count_chars ( $Cadena, $n);
foreach ($miArray as $indiceNum => $veces)
{
if (chr($indiceNum)=="a"
or chr($indiceNum)=="e"
or chr($indiceNum)=="i"
or chr($indiceNum)=="o"
or chr($indiceNum)=="u"
or chr($indiceNum)=="E")

{
echo 'Letra: '.chr($indiceNum).' , encontrada '.  $veces.' veces<br/>';
}
}
echo '</div>';
echo'<div id=con></div>';
echo '<div class=pres1 id=pres>';

$a="";$e="";$i="";$o="";$u="";$E=""; // Vaciar variables por si se han utilizado en otro lugar del programa

print '<strong><br/>Funcion substr()<br/></strong>';
for ($j=0; $j<=strlen($Cadena);$j++)
{
$Vocal=substr($Cadena,$j,1);
if ($Vocal=="a"){$a++; }
if ($Vocal=="e"){$e++; }
if ($Vocal=="i"){$i++; }
if ($Vocal=="o"){$o++;}
if ($Vocal=="u"){$u++; }
if ($Vocal=="E"){$E++; }
}
echo 'Letra: a encontrada '.  $a.' veces<br/>';
echo 'Letra: e encontrada '.  $e.' veces<br/>';
echo 'Letra: E encontrada '.  $E.' veces<br/>';
echo 'Letra: i encontrada '.  $i.' veces<br/>';
echo 'Letra: o encontrada '.  $o.' veces<br/>';
echo 'Letra: u encontrada '.  $u.' veces<br/>';

echo '</div>';


b) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso", indicar qué consonantes son las que aparecen y cuántas veces aparecen usando funciones para cadenas PHP.

Código: [Seleccionar]
echo '<div class=pres2 id=pres>';
$vocales=array("a","e","i","o","u","A","E","I","O","U");
        $n=1;
$miArray = count_chars ( $Cadena, $n);
foreach ($miArray as $indiceNum => $veces)
{

if (chr($indiceNum)<>"a"
and chr($indiceNum)<>"e"
and chr($indiceNum)<>"i"
and chr($indiceNum)<>"o"
and chr($indiceNum)<>"u"
and chr($indiceNum)<>"E"
and chr($indiceNum)<>chr(32))

{
echo 'Letra: '.chr($indiceNum).' , encontrada '.  $veces.' veces.<br/>';
}
}
echo '</div>';

echo'<div id=con></div>';
echo '<div class=pres2 id=pres>';
$Cadena='El abecedario completo es algo largo y detallarlo exhaustivamente es costoso';
$vocales=array("a","e","i","o","u","A","E","I","O","U");
    $n=1;
$ArrayCadena= count_chars ( $Cadena, $n);


foreach ($ArrayCadena as $Letra => $nveces)
{
 $Vocal=chr($Letra);
 for ($i=0; $i<=9;$i++)
 {
  $Esp=chr($Letra)==chr(32);
  $j=$vocales[$i]==chr($Letra);
  if ($Esp==1){$i=10;}
  if ($j==1){$i=10;}
 }
 if ($j<>1 and $Esp<>1) { echo 'Letra: '.chr($Letra).' , encontrada '.  $nveces.' veces.<br/>';$j=0;}
 
}
echo '</div>';


c) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso", mostrar la cadena donde todas las a hayan sido sustituídas por el símbolo *. Por ejemplo en lugar de El abecedario… se habrá de mostrar El *beced*rio…

El *beced*rio completo es *lgo l*rgo y det*ll*rlo exh*ustiv*mente es costoso


d) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso", mostrar la subcadena desde la primera aparición de < < completo >> excluyendo completo, es decir, deberá mostrarse << es algo largo y detallarlo exhaustivamente es costoso>>. Para ello usa una o varias funciones para cadenas PHP.

es algo largo y detallarlo exhaustivamente es costoso

Código: [Seleccionar]
print '<h3 id=NoFLot>
  d) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso",<br/>
  mostrar la subcadena desde la primera aparición de < < completo >> excluyendo completo, es decir, deberá<br/>
  mostrarse << es algo largo y detallarlo exhaustivamente es costoso>>. Para ello usa una o varias <br/>
  funciones para cadenas PHP.</h3>';

  print strstr ($Cadena,"es",false );
 echo '<br/><br/>';
echo '</div>';



?>

</body>

</html>



Espero que esté todo bien.
Gracias. ;)
« Última modificación: 30 de Julio 2017, 20:22 por Ogramar »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:PHP Ejercicio Entrega 28 (CU00828B)
« Respuesta #1 en: 22 de Julio 2017, 12:59 »
Hola paramonso.

Deberías repasar el código que pegaste, con tanto copia y pega te has debido dejar algo de código sin pegar, porque el resultado que se obtiene no tiene nada que ver con el que podemos ver en el enlace que dejaste.

Como te dije en otra ocasión es preferible que pongas todo el código junto, y si prefieres separarlo, que cada pedazo de código que coloques tenga su inicio y final bien detallado para quién corrija no tenga que ir añadiendo todas las etiquetas que puedan faltar.

Saludos. ;D


paramonso

  • Intermedio
  • ***
  • Mensajes: 241
  • El ignorante afirma, el sabio duda y reflexiona.
    • Ver Perfil
Re:PHP Ejercicio Entrega 28 (CU00828B)
« Respuesta #2 en: 22 de Julio 2017, 13:41 »
Ok.
 :-\
Perdon se me paso la etiqueta <?php.

En los ejercicios siguientes ya voy pegando todo el código.

Vuelvo a dejar el codigo entero.
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>PHP Desde cero aprenderaprogramar.com</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta name="generator" content="Geany 1.27" />
<style type="text/css">
      body{  background-color:yellow; color:blue;}
      h1, h2{text-align:center; color:blue;}
      div{
  text-align:left;
  }
      #cont{

background-color:orange;
height:1500px;
width:950px;
padding:10px;
margin:20px auto;
}
#pres{
border:solid 2px;
background-color:White;
width:200px;
padding:5px;
margin:10px;
float:left;
}

.pres1{
height:150px;

}

.pres2{
height:300px;

}

#con {
   height:0;px
   width:0px;
               overflow: hidden;
               margin:0;
               padding:0;
               
}
#NoFLot{
clear:both;

}

</style>
</head>
</head>

<body>

 
<?php

echo '<div id=cont>';
echo 
'<h1>Ejercicio Entrega 28 (CU00828B) </h1> <h2>Funciones de cadenas PHP</h2> 
<h3>EJERCICIO <br/>
Crear archivos php que ejecuten la tarea indicada:<br/>
a) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso",<br/>
 indicar cuántas veces aparece cada vocal usando funciones para cadenas PHP.</h3>'
;
 
echo 
'<div class=pres1 id=pres>';
$Cadena='El abecedario completo es algo largo y detallarlo exhaustivamente es costoso';
print '<strong><br/>Funcion substr_count<br/></strong>';
for($i=65$i<=118$i++)
{
if ($i==97 or $i==101 or $i==105 or $i==111 or $i==117 or $i==69)
{
$vocal=chr($i);
echo "La vocal $vocal aparece&nbsp;".substr_count($Cadena$vocal)."&nbsp;Veces<br/>";
}
}
echo '</div>';
 
 echo
'<div id=con></div>';
 
echo '<div class=pres1 id=pres>';
print '<strong><br/>Funcion count_chars ()<br/></strong>';
$n=1;
$miArray count_chars $Cadena$n);
foreach ($miArray as $indiceNum => $veces)
 {
if (chr($indiceNum)=="a" 
or chr($indiceNum)=="e" 
or chr($indiceNum)=="i" 
or chr($indiceNum)=="o" 
or chr($indiceNum)=="u"
or chr($indiceNum)=="E")

{
echo 'Letra: '.chr($indiceNum).' , encontrada '.  $veces.' veces<br/>';
}
}
echo '</div>';


echo'<div id=con></div>';
echo 
'<div class=pres1 id=pres>';

$a="";$e="";$i="";$o="";$u="";$E=""// Vaciar variables por si se han utilizado en otro lugar del programa

print '<strong><br/>Funcion substr()<br/></strong>';
for (
$j=0$j<=strlen($Cadena);$j++)
{
$Vocal=substr($Cadena,$j,1);
if ($Vocal=="a"){$a++; }
if ($Vocal=="e"){$e++; }
if ($Vocal=="i"){$i++; }
if ($Vocal=="o"){$o++;}
if ($Vocal=="u"){$u++; }
if ($Vocal=="E"){$E++; }
}
echo 
'Letra: a encontrada '.  $a.' veces<br/>';
echo 
'Letra: e encontrada '.  $e.' veces<br/>';
echo 
'Letra: E encontrada '.  $E.' veces<br/>';
echo 
'Letra: i encontrada '.  $i.' veces<br/>';
echo 
'Letra: o encontrada '.  $o.' veces<br/>';
echo 
'Letra: u encontrada '.  $u.' veces<br/>';

echo 
'</div>';
 echo
'<div id=con></div>';
 
 print 
'<h3 id=NoFLot><br/> b) Dada la cadena "El abecedario completo es algo largo y detallarlo<br/>
exhaustivamente es costoso", indicar qué consonantes son las que aparecen y<br/>
cuántas veces aparecen usando funciones para cadenas PHP.<br/></h3>'
;
 
echo 
'<div class=pres2 id=pres>';
$vocales=array("a","e","i","o","u","A","E","I","O","U");
        
$n=1;
$miArray count_chars $Cadena$n);
foreach (
$miArray as $indiceNum => $veces
{
 
if (chr($indiceNum)<>"a" 
and chr($indiceNum)<>"e" 
and chr($indiceNum)<>"i" 
and chr($indiceNum)<>"o" 
and chr($indiceNum)<>"u"
and chr($indiceNum)<>"E"
and chr($indiceNum)<>chr(32))

{
echo 'Letra: '.chr($indiceNum).' , encontrada '.  $veces.' veces.<br/>';
}
}
echo 
'</div>';

echo
'<div id=con></div>';
echo 
'<div class=pres2 id=pres>';
$Cadena='El abecedario completo es algo largo y detallarlo exhaustivamente es costoso';
$vocales=array("a","e","i","o","u","A","E","I","O","U");
    $n=1;
$ArrayCadenacount_chars $Cadena$n);


foreach (
$ArrayCadena as $Letra => $nveces
{
 
$Vocal=chr($Letra);
 for (
$i=0$i<=9;$i++)
 {
  $Esp=chr($Letra)==chr(32);
  $j=$vocales[$i]==chr($Letra);
  if ($Esp==1){$i=10;}
  if ($j==1){$i=10;}
 }
 if (
$j<>and $Esp<>1) { echo 'Letra: '.chr($Letra).' , encontrada '.  $nveces.' veces.<br/>';$j=0;}
 
}
echo 
'</div>';

  print 
'<h3 id=NoFLot>
  c) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso",<br/>
  mostrar la cadena donde todas las a hayan sido sustituídas por el símbolo *. Por ejemplo en lugar de 
  <br/> El abecedario… se habrá de mostrar El *beced*rio…</h3>'
;
  print  
str_replace("a""*"$Cadena$reemplazos );
  
  print 
'<h3 id=NoFLot>
  d) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso",<br/> 
  mostrar la subcadena desde la primera aparición de < < completo >> excluyendo completo, es decir, deberá<br/>
  mostrarse << es algo largo y detallarlo exhaustivamente es costoso>>. Para ello usa una o varias <br/>
  funciones para cadenas PHP.</h3>'
;

  print 
strstr ($Cadena,"es",false );
 echo 
'<br/><br/>';
echo 
'</div>';



?>


</body>

</html>

Gracias.

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:PHP Ejercicio Entrega 28 (CU00828B)
« Respuesta #3 en: 22 de Julio 2017, 17:01 »
El ejercicio está bien resuelto.

Además has aportado soluciones distintas para resolver los dos primeros apartados, lo cuál está muy bien porque se puede sacar la conclusión de lo que nos puede interesar más para ahorrarnos código.

Saludos. ;D

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

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".