a) Una función (tipo procedimiento, no hay valor devuelto) denominada escribirTresNumeros que reciba tres números enteros como parámetros y proceda a escribir dichos números en tres líneas en un archivo denominado datosEjercicio.txt. Si el archivo no existe, debe crearlo.
<?phpfunction escribirTresNumeros($num1,$num2,$num3){ echo 'Que comience la funcion<BR/><BR/>Se han escrito los numeros:<BR/><BR/>'; echo $num1.'<BR/>'; echo $num2.'<BR/>'; echo $num3.'<BR/>'; $fp = fopen("datosEjercicioA.txt", "a"); fputs($fp,$num1."\n".$num2."\n".$num3."\n"); fclose($fp); }escribirTresNumeros(1000,2000,3000); ?>
Buenas... muchisimas garcias por su respuesta este es el codigo del primer ejercicio la verdad no se sie ste bien.
El tema me ha parecido un poco duro se me dificulto pero ya creo estar entendiendolo aunque la verdad es que en la leccion no muestran ningun ejemplo del tipo de los ejercicios.
debido a esto el segundo ya se me dificulto bastante ya intente
b) Una función denominada obtenerSuma (tipo función, devolverá un valor numérico) que reciba una ruta de archivo como parámetro, lea los números existentes en cada línea del archivo, y devuelva la suma de todos esos números.
<?phpfunction obtenersuma(rutadearchivo.txt){ $tmp='rutadearchivo.txt'; return $tmp; $fp = fopen("rutadearchivo.txt", "r+"); $fp2 = fgets($fp); fclose($fp); }echo "<BR/>La sumatoria de los datos es" . obtenersuma('rutadearchivo.txt');?>
yo sse que este codigo esta de locos y pido disculpas la verdad lo he modificado tantas veces tratando en estos momentos estoy ya exhausto porfavor pido su orientacion
muchisimas garcias por su ayuda. hasta luego
Hola, el código del apartado a) está correcto, aunque fíjate que al hacer la apertura en modo a:
$fp = fopen("datosEjercicioA.txt", "a");
cada vez que ejecutes el código se van a escribir nuevas líneas. Si en vez de escribir nuevas líneas queremos que se reescriba el archivo lo haríamos abriendo en modo w por ejemplo:
$fp = fopen("datosEjercicioA.txt", "w");
El código del apartado b) tiene varios fallos, en algunos casos fallan los conceptos vistos en temas previos del curso que te recomiendo repases.
function obtenersuma(rutadearchivo.txt) está mal escrito, tienes que escribir function obtenerSuma($rutadearchivo)
Además tienes un return y después del return ya no tiene sentido que incluyas más código, el return se pone al final de una función para devolver un resultado.
El código para el apartado b) tendría que ser este (o similar, puedes adaptarlo):
<?phpfunction obtenerSuma($rutadearchivo) { $sumatorio = 0; $fp = fopen($rutadearchivo, "r"); $i = 0; while(!feof($fp)) { $linea = fgets($fp); $sumatorio = $sumatorio+$linea; if (!feof($fp)) {echo 'El dato leido en la linea '.$i. ' es '.$linea . ' y el sumatorio por ahora vale '.$sumatorio.'<br />';} $i=$i+1; } fclose($fp); return $sumatorio;}echo "<BR/>La sumatoria de los datos en el archivo datosEjercicioA es: " . obtenerSuma('datosEjercicioA.txt');?>
Tienes que repasar todo lo que hace este código según lo explicado en el curso y entenderlo paso a paso para poder seguir avanzando.
Saludos
Buenas.
Muchísimas gracias Mario por tu ayuda. Aqui esta el codigo del punto c)
c) Una función denominada obtenerArrNum (tipo función, devolverá un array de valores numéricos) que reciba una ruta de archivo como parámetro, lea los números existentes en cada línea del archivo, y devuelva un array cuyo índice 0 contendrá el número existente en la primera línea, cuyo índice 1 contendrá el número existente en la segunda línea y así sucesivamente.
<?phpfunction obtenerArray($rutadearchivo) { $miarray = array(); $fp = fopen($rutadearchivo, "r"); $i = 0; while(!feof($fp)) { $miarray[$i] = fgets($fp); $i=$i+1; } fclose($fp); return $miarray;}$miNuevoArray = obtenerArray('rutadearchivo.txt');echo $miNuevoArray[0].'<BR/>'.'<BR/>';echo $miNuevoArray[1].'<BR/>'.'<BR/>';echo $miNuevoArray[2].'<BR/>'.'<BR/>';echo $miNuevoArray[3].'<BR/>'.'<BR/>';?>
¿Está correcto?
y aqui esta el ultimo si estan correctos?.. muchas gracias
d) Crea código php donde a través de la función escribirTresNumeros escribas en el fichero los números 2, 8, 14. Luego, mediante la función obtenerSuma muestra por pantalla el resultado de sumar los números existentes en el archivo. Finalmente, mediante la función obtenerArrNum obtén el array, recórrelo y muestra cada uno de los elementos del array.
<?phpfunction escribirTresNumeros($num1,$num2,$num3){ echo 'Que comience la funcion<BR/><BR/>Se han escrito los numeros:<BR/><BR/>'; echo $num1.'<BR/>'; echo $num2.'<BR/>'; echo $num3.'<BR/>'; $fp = fopen("ejercicio4.txt", "w"); fputs($fp,$num1."\n".$num2."\n".$num3."\n"); fclose($fp); }escribirTresNumeros(2,8,14);function obtenerSuma($ejercicio4) { $sumatorio = 0; $fp = fopen($ejercicio4, "r"); $i = 0; while(!feof($fp)) { $linea = fgets($fp); $sumatorio = $sumatorio+$linea; if (!feof($fp)) {echo 'El dato leido en la linea '.$i. ' es '.$linea . ' y el sumatorio por ahora vale '.$sumatorio.'<br />';} $i=$i+1; } fclose($fp); return $sumatorio;}echo "<BR/>La sumatoria de los datos en el archivo datosEjercicioA es: " . obtenerSuma('ejercicio4.txt')."<BR/>";function obtenerArray($ejercicio4) { $miarray = array(); $fp = fopen($ejercicio4, "r"); $i = 0; while(!feof($fp)) { $miarray[$i] = fgets($fp); $i=$i+1; } fclose($fp); return $miarray;}$miNuevoArray = obtenerArray('ejercicio4.txt');echo $miNuevoArray[0].'<BR/>'.'<BR/>';echo $miNuevoArray[1].'<BR/>'.'<BR/>';echo $miNuevoArray[2].'<BR/>'.'<BR/>';echo $miNuevoArray[3].'<BR/>'.'<BR/>';?>
Hola, el apartado c) está correcto, pero para recorrer un array siempre es recomendable usar un bucle, no hacerlo "a mano". El código quedaría así:
<?phpfunction obtenerArray($rutadearchivo) { $miarray = array(); $fp = fopen($rutadearchivo, "r"); $i = 0; while(!feof($fp)) { $miarray[$i] = fgets($fp); $i=$i+1; } fclose($fp); return $miarray;}$miNuevoArray = obtenerArray('datosEjercicioA.txt');for ($j=0; $j < count($miNuevoArray); $j++){echo $miNuevoArray[$j].'<br/>'.'<br/>';}?>
El apartado c) también está correcto aunque te haría algunas recomendaciones:
Mantén todas las funciones agrupadas (por ejemplo al principio del archivo) y el código escríbelo después. Sería como esto:
<?phpfunction escribirTresNumeros($num1,$num2,$num3){ echo 'Que comience la funcion<BR/><BR/>Se han escrito los numeros:<BR/>'; echo $num1.'<BR/>'; echo $num2.'<BR/>'; echo $num3.'<BR/>'; $fp = fopen("ejercicio4.txt", "w"); fputs($fp,$num1."\n".$num2."\n".$num3."\n"); fclose($fp);}function obtenerSuma($ejercicio4) { $sumatorio = 0; $fp = fopen($ejercicio4, "r"); $i = 0; while(!feof($fp)) { $linea = fgets($fp); $sumatorio = $sumatorio+$linea; if (!feof($fp)) {echo 'El dato leido en la linea '.$i. ' es '.$linea . ' y el sumatorio por ahora vale '.$sumatorio.'<br />';} $i=$i+1; } fclose($fp); return $sumatorio;}function obtenerArray($ejercicio4) { $miarray = array(); $fp = fopen($ejercicio4, "r"); $i = 0; while(!feof($fp)) { $miarray[$i] = fgets($fp); $i=$i+1; } fclose($fp); return $miarray;}escribirTresNumeros(2,8,14);echo "<BR/>La sumatoria de los datos en el archivo datosEjercicioA es: " . obtenerSuma('ejercicio4.txt')."<br/><br/>";$miNuevoArray = obtenerArray('ejercicio4.txt');for ($j=0; $j < count($miNuevoArray); $j++){echo $miNuevoArray[$j].'<br/>';}?>
Otra recomendación es que sacaras las instrucciones echo fuera de todas las funciones (llevarlas a la parte final donde escribes el código), es decir, una función que escribe a un archivo debe limitarse a esto, no debe mostrar nada por pantalla, lo mismo si suma datos y devuelve la suma, debe limitarse a devolver la suma. Ahora mismo no pasa nada, pero sería bueno que vayas acostumbrándote a mantener buenas prácticas y buena ordenación del código.
Saludos y adelante