[RESOLU] généré une grille

pablo842
Invité n'ayant pas de compte PHPfrance

07 août 2015, 14:35

bonjour a tous,

voici que excercice que je dois réalisé auriez vous des suggestions ?


Faire une fonction « colle » dont le prototype est le suivant :
Prototype: void colle(int $x, int $y);
Cette fonction devra générer une grille de dimensions données en paramètres.
Ainsi si on appelle « colle(3, 4); », la fonction devra afficher ceci :
+---+---+---+
| | | |
+---+---+---+
| | | |
+---+---+---+
| | | |
+---+---+---+
| | | |
+---+---+---+
colle(0,0); ne doit rien afficher




merci d'avance,
cordialement .

Eléphanteau du PHP | 23 Messages

07 août 2015, 19:54

oui des suggestions, on en a plein.
on peut par exemple te suggérer de nous montrer le code que tu as déjà essayé même s'il ne fonctionne pas du tout comme tu le souhaites

nestecha
Invité n'ayant pas de compte PHPfrance

08 août 2015, 16:33

T'es sûr que colle(3,4) afficherait ça ? Parce que moi j'aurais soit dit colle(4,4), soit colle(4,5) pour l'affichage que tu as donné.

nestecha
Invité n'ayant pas de compte PHPfrance

08 août 2015, 16:42

function colle($x, $y) {
	$sAbsciss = "|";

	for ($i=0; $i < $x; $i++) { 
		$sAbsciss .= "|";
	}

	$sAbsciss .= "\n";

	if ($x > 0) {
		for ($i=0; $i < $y; $i++) {
		    echo "+---+---+---+\n";
		    echo $sAbsciss;
		}
	}
}
Essaie de comprendre pourquoi et comment par toi même, si tu ne comprends pas demande.

darkooo
Invité n'ayant pas de compte PHPfrance

07 oct. 2016, 14:50

function colle($x, $y) {
	$sAbsciss = "|";

	for ($i=0; $i < $x; $i++) { 
		$sAbsciss .= "|";
	}

	$sAbsciss .= "\n";

	if ($x > 0) {
		for ($i=0; $i < $y; $i++) {
		    echo "+---+---+---+\n";
		    echo $sAbsciss;
		}
	}
}
Essaie de comprendre pourquoi et comment par toi même, si tu ne comprends pas demande.
Bonjour, que y a-t-il de faux dans le code?

BELLEBlonde1m98
Invité n'ayant pas de compte PHPfrance

07 oct. 2016, 15:52

Salut !

alors ?

<?php

function colle($x, $y) {
$dimensions = "|";

for ($i=0; $i < $x; $i++) {

}

$dimensions .= "\n";

if ($x > 0) {
for ($i=0; $i < $y; $i++) {
echo "+---+---+---+\n";
echo $dimensions;

}
}
}

darkooo
Invité n'ayant pas de compte PHPfrance

07 oct. 2016, 16:00

Salut !

alors ?

<?php

function colle($x, $y) {
$dimensions = "|";

for ($i=0; $i < $x; $i++) {

}

$dimensions .= "\n";

if ($x > 0) {
for ($i=0; $i < $y; $i++) {
echo "+---+---+---+\n";
echo $dimensions;

}
}
}
en test, cela n'affiche pas le résultat voulu par pablo842.
J'essaye de réaliser cette exercice mais mon code ne marche pas.


function colle($x, $y) {
$tab = 0;
while($tab < $y){
for($ligne = 0; $ligne < $x; $ligne++) {
echo "+---";
}
if($ligne = $x) {
echo "+\n"
}
for($ligne2 = 0; $ligne2 < $x; $ligne2++) {
echo "| ";
}
if($ligne = $x) {
echo "+\n";
}
$tab++;
}
for($ligne = 0; $ligne < $x; $ligne++) {
echo "+---";
}
}

Cindy-sexy-nougat
Invité n'ayant pas de compte PHPfrance

07 oct. 2016, 16:09

salut saluuuut

alors voila,
j'ai obtenu ce resultat avec ce code:

+---+---+---+
| | | |
+---+---+---+
| | | |
+---+---+---+
| | | |
+---+---+---+
| | | |

<?php
function colle($x, $y) {
$sAbsciss = "|";

for ($i=0; $i < $x; $i++) {
$sAbsciss .= "|";
}

$sAbsciss .= "\n";

if ($x > 0) {
for ($i=0; $i < $y; $i++) {
echo "+---+---+---+\n";
echo $sAbsciss;
}
}
}
colle(4,4);


ceci est le resultat voulue:

+---+---+---+
| | | |
+---+---+---+
| | | |
+---+---+---+
| | | |
+---+---+---+
| | | |
+---+---+---+
Je ne vois vraiment pas ou est mon erreur, meme a l'aide de ma meilleure amie :(
?>

jsuissympa
Invité n'ayant pas de compte PHPfrance

07 oct. 2016, 16:33

Code : Tout sélectionner

<?php function colle($x, $y){ $value = "| "; for ($i = 0 ; $i < $x; $i++){ $value .= "| "; } $value .= "\n"; if ($x > 0) { for ($i = 0; $i < $y; $i++){ echo "+---+---+---+\n"; echo $value; } echo "+---+---+---+\n"; } } ?>
faut juste ajouter un echo apres le if et trois espaces apres les | pour ressembler a ce qui est demander je crois

cindy-princesse
Invité n'ayant pas de compte PHPfrance

07 oct. 2016, 16:44

merci bel inconu!!!! FAIT LE BON POUR LA 2 MAINTENANT!

darkooo
Invité n'ayant pas de compte PHPfrance

07 oct. 2016, 16:47

Mmh en essayant d'autre paramètre la grille ne s'agrandis pas en abscisse avec les +---+ mais en ordonne cela fonctionne.

gab
Invité n'ayant pas de compte PHPfrance

07 oct. 2016, 16:50

la grille ne depasse pas les 3 en largeurs.. c'est juste un exemple il ne faut pas les dimensions exact. c'est a nous de choisir la largeur et la longueur quand on fait appel a la fonction.

darkooo
Invité n'ayant pas de compte PHPfrance

07 oct. 2016, 16:52

la grille ne depasse pas les 3 en largeurs.. c'est juste un exemple il ne faut pas les dimensions exact. c'est a nous de choisir la largeur et la longueur quand on fait appel a la fonction.
Exact, il faut trouver la solution pour faire pareil en largeur!

darkooo
Invité n'ayant pas de compte PHPfrance

07 oct. 2016, 17:05

Code : Tout sélectionner

<?php function colle($x, $y){ $value = "| "; for ($i = 0 ; $i < $x; $i++){ $value .= "| "; } $value .= "\n"; if ($x > 0) { for ($i = 0; $i < $y; $i++){ echo "+---+---+---+\n"; echo $value; } echo "+---+---+---+\n"; } } ?>
faut juste ajouter un echo apres le if et trois espaces apres les | pour ressembler a ce qui est demander je crois
Que pouvons nous rajouter a ce code pour que les largeurs($x) fonctionnent comme $y ?

j'obtiens ce résultat avec (4, 5) comme paramètre :

+---+---+---+
| | | | |
+---+---+---+
| | | | |
+---+---+---+
| | | | |
+---+---+---+
| | | | |
+---+---+---+
| | | | |
+---+---+---+

Suissympaenfaitnon
Invité n'ayant pas de compte PHPfrance

07 oct. 2016, 18:21

À bien relire, l'intégralité du code n'est pas adapté', GL :?