Jump to content
Fórum Script Brasil
  • 0

(Resolvido) PHP duvida formulario codigo


mestrelan
 Share

Question

Boa noite,

Estou iniciando a utilizar php e gostaria de ajuda para resolver o problema desse código. Se alguém puder souber agradeço muito! Quando executo mostra:
Notice: Undefined index: entrada.$i in Ctongue.pngrogram Files (x86)EasyPHP-DevServer-14.1VC11datalocalwebprojectsexercicios no computadorex1.php on line 31
 

 

<html>
<meta charset="utf-8" />
<body>
<?php
echo("<form method="post">");
echo ("<input type="submit" name="enter" value="começar" />");
echo ("</form>");
if (isset($_POST['enter'])){
echo("<form method="post">");
echo ("<input type="text" name="n" />");
echo ("<input type="submit" name="tamanho" value="entre com o tamanho do vetor" />");
echo ("</form>");
}
if (isset($_POST['tamanho'])){
$n = $_POST['n'];
$i = 0;
echo("<form method="post">");
for ($i = 0; $i <= $n; $i++) {
echo("<input type="text" name="entrada$i" /><br /></br>");
}
echo("recoloque o tamanho do vetor<br /></br>");
echo("<input type="text" name="n" /><br /></br>");
echo ("<input type="submit" name="vetor" value="entre com o vetor" />");
echo ("</form>");
}
if (isset($_POST['vetor'])){
$n = $_POST['n'];
$vetor = array($n);
$i = 0;
for ($i = 0; $i <= $n; $i++) {
$vetor[$i] = $_POST['entradas$i'];
}
$menor = 0;
$maior = 0;
$total = 0;
$k = 0;
for ($k = 0; $k <= $n; $k++) {
$total = $total + $vetor[$k];
if ($vetor[$menor] > $vetor[$k]){
$menor = $k;
}
if ($vetor[$maior]<$vetor[$k]){
$maior = $k;
}
}
$media = $total / $n;
echo ("a média é $media <br />");
echo ("o menor valor é $vetor[$menor] <br />");
echo ("a posição do menor valor é $menor <br />");
echo ("o maior valor é $vetor[$maior] <br />");
echo ("a posição do maior é $maior <br />");
}
?>
</body>]

</html>
[/code]

Edited by mestrelan
Resolvido
Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Olá!

Dentro de aspas duplas, use aspas simples.

Use html5

Segue sugestão de solução:

<!doctype html>
<html>
   <head>
      <meta charset="utf-8">
      <title>Page Title</title>
   </head>
   <body>
      <?php
      echo '<form method="post">
       <input type="submit" name="enter" value="começar">
      </form>';
      if (isset($_POST['enter'])) {
         echo '<form method="post">
       <input type="text" name="n" placeholder="Digite o tamanho do vetor">
      <input type="submit">
      </form>';
      }
      if (isset($_POST['n'])) {
         $n = $_POST['n'];
         $i = ;
         echo '<form method="post">';
         for ($i = ; $i <= $n; $i++) {
            echo "Entrada $i: <input type='number' name='entradas[$i]' required><br><br>";
         }
         echo '<input type="submit" name="vetor"></form>';
      }
      if (isset($_POST['vetor'])) {
         // soma os valores no array:
         $total = array_sum($_POST['entradas']);
         // quantidade de valores no array:
         $quantidade = sizeof($_POST['entradas']);
         // calculo da média: soma dos valores / quantidade de valores
         $media = $total / $quantidade;
         // faz uma cópia do array:
         $ordered = $_POST['entradas'];
         // ordena do menor para o maior:
         sort($ordered);
         // pega o menor valor:
         $menor = array_shift($ordered);
         // pega o maior valor:
         $maior = array_pop($ordered);
         // pega a posição do menor valor:
         $menorPos = array_search($menor, $_POST['entradas']);
         // pega a posição do maior valor:
         $maiorPos = array_search($maior, $_POST['entradas']);

         echo "A média é: $media; <br>
          O menor valor é: $menor <br>
          A posição do menor valor é: $menorPos <br>
          O maior valor é: $maior <br>
          A posição do maior é: $maiorPos <br>";
      }
      ?>
   </body>
</html>

 

Link to comment
Share on other sites

  • 0

Caramba! Muito obrigado mesmo! Desculpe a demora pra responder. Seu código ficou perfeito e aprendi muito com ele. Me ensinou a trabalhar com o vetor porque eu não fazia a menor ideia. Mas então, digamos que eu queira organizar e acessar os elementos do vetor da forma antiga que aprendemos em lógica de programação básica rsrsrsrs. Estava tentando e não consegui organizar e acessar o vetor usando o while e o menor valor esta saindo errado. Será que alguém sabe me disse como consertar esse erro?

Notice: Undefined offset: 3 in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\exercicios no computador\ex1 testes 28-05-16.php on line 36
Notice: Undefined offset: 3 in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\exercicios no computador\ex1 testes 28-05-16.php on line 37
Notice: Undefined offset: 3 in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\exercicios no computador\ex1 testes 28-05-16.php on line 40
Notice: Undefined offset: 3 in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\exercicios no computador\ex1 testes 28-05-16.php on line 47

A média é: 2;
O menor valor é
A posição do menor valor é: 3
O maior valor é: 3
A posição do maior é: 2

o novo código ficou assim:

<!doctype html>
<html>
   <head>
      <meta charset="utf-8">
      <title>Page Title</title>
   </head>
	<body>
		<?php
			echo'<form method="post">
			 <input type="submit" name="enter" value="começar" />
			 </form>';
			if (isset($_POST['enter'])){
				echo '<form method="post">
				<input type="text" name="n" />
				<input type="submit" name="tamanho" value="entre com o tamanho do vetor" />
				</form>';
			}
			if (isset($_POST['tamanho'])){
				$n = $_POST['n'];
				$i = ;
				echo '<form method="post">';
		         for ($i = ; $i <= $n; $i++) {
            		echo "Entrada $i: <input type='number' name='entradas[$i]' required><br><br>";
         		}
         		echo '<input type="submit" name="vetor"></form>';
      		}
			if (isset($_POST['vetor'])){
				$quantidade = sizeof($_POST['entradas']);
				$vetor = $_POST['entradas'];
				$menor = ;
				$maior = ;
				$total = ;
				$k = ;
				while ($k <= $quantidade) {
					$total = $total + $vetor[$k];
					if ($vetor[$menor] > $vetor[$k]){
						$menor = $k;
					}
					if ($vetor[$maior] < $vetor[$k]){
						$maior = $k;
					}
					++$k;
				}
				$media = $total / $quantidade;
				echo "A média é: $media; <br />
				 O menor valor é $vetor[$menor] <br />
				 A posição do menor valor é: $menor <br />
				 O maior valor é: $vetor[$maior] <br />
				 A posição do maior é: $maior <br />";
			}
		?>
	</body>
</html>

 

Link to comment
Share on other sites

  • 0

Olá!

A linha

$i = ;

Está incompleta!

O for também está incompleto:

for ($i = ; $i <= $n; $i++) {

 

Estão faltando valores da variável $i

Mesma coisa paras as outras variáveis incompletas:


				$menor = ;
				$maior = ;
				$total = ;
				$k = ;

Como a variável $k começa do zero, e a variável $quantidade já inclui o zero no total, no while, remova o sinal de igual, use apenas "menor que"
while ($k < $quantidade) {

Link to comment
Share on other sites

  • 0

Funcionou!! Muito obrigado mais uma vez pela paciência e ajuda com as minhas duvidas básicas. rsrsrsrs aprendi com você a trabalhar com o vetor usando os códigos PHP prontos quanto da forma genérica de linguagem de programação básica.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.9k
    • Total Posts
      646.8k
×
×
  • Create New...