Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) PHP duvida formulario codigo


mestrelan

Pergunta

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]

Editado por mestrelan
Resolvido
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...