Jump to content


Photo

Algoritmo Pra Php


  • Faça o login para participar
8 replies to this topic

#1 snkneo

snkneo

    Normal

  • Usuários
  • 118 posts
  • Sexo:Não informado
  • Localidade:Brazil
  • Interesses:Girls, Sexo, Games

Posted 02/04/2006, 16:02

Fiz o algoritmo e o php.

Mas no php, nao sei como fazer para repetir o formulario de insercao de dados. :cry:

Como deve ficar? Segue o codigo dos 2

Algoritmo:
Programa eleicoes
	Inicio

		variaveis
		inteiro: chapa,qtdemembros,vtc1,vtc2,vtc3,vtbrancos,vtnulos,vencedora;
		real: percent;

		qtdemembros <- 1;
		vtc1 <- 0;	
		vtc2 <- 0;	
		vtc3 <- 0;	
		vtbrancos <- 0;	
		vtnulos <- 0;	

		Enquanto (qtdemembros <= 200) faça
			Inicio
				escreva("Eleiçoes, Presidencia do Clube!");
				escreva("Chapa 1 - Digite 1");
				escreva("Chapa 2 - Digite 2");
				escreva("Chapa 3 - Digite 3");
				escreva("Branco - Digite 4");
				escreva("Anular - Digite Qualquer número");
				escreva("Faça sua escolha: ");
	
				leia(chapa);

				Escolha(chapa)
				caso 1:	vtc1 <- vtc1 + 1;
				caso 2:	vtc2 <- vtc2 + 1;
				caso 3:	vtc3 <- vtc3 + 1;
				caso 4:	vtbrancos <- vtbrancos + 1;
				caso contrario:	vtnulos <- vtnulos + 1;
				fim;
				
				qtdemembros <- qtdemembros + 1;


			Fim;

		escreva("Chapa 1 obteve ", vtc1, " votos");
		escreva("Chapa 2 obteve ", vtc2, " votos");
		escreva("Chapa 3 obteve ", vtc3, " votos");
		escreva("Brancos obteve ", vtbrancos, " votos");
		escreva("Nulos obteve ", vtnulos, " votos");


		Se (vtc1 > vtc2) 
			entao
			Se (vtc1 > vtc3)
				entao
				vencedora <- 1
				senao
				vencedora <- 3
			senao
			Se (vtc2 > vtc3)
				entao
				vencedora <- 2
				senao
				vencedora <- 3;

		
		Escolha(vencedora)
		caso 1: Se ((vtc1 * 100 / qtdemembros) > 50) 
				entao
					escreva("Chapa 1 vence no primeiro Turno.")
				senao
					escreva("Chapa 1 venceu, mas haverá segundo turno.");

		caso 2: Se ((vtc2 * 100 / qtdemembros) > 50) 
				entao
					escreva("Chapa 2 vence no primeiro Turno.")
				senao
					escreva("Chapa 2 venceu, mas haverá segundo turno.");

		caso 3: Se ((vtc3 * 100 / qtdemembros) > 50) 
				entao
					escreva("Chapa 3 vence no primeiro Turno.")
				senao
					escreva("Chapa 3 venceu, mas haverá segundo turno.");
		
		fim;


	Fim.


PHP:
<HTML>
<HEAD>
 <TITLE>Eleicoes para o Clube, ( Presidência )</TITLE>
</HEAD>
<BODY>
<?

echo '
<form method="POST" action="?acao=calcular">
<table width="333" border="0" cellpadding="0" cellspacing="0">
<tr>
  <td colspan="2"><div align="center"><font size="4" face="Verdana, Arial, Helvetica, sans-serif">Elei&ccedil;oes para o Clube </font></div></td>
  </tr>
<tr>
  <td><font color="#009900" size="2" face="Verdana, Arial, Helvetica, sans-serif">Nome dos candidatos: </font></td>
  <td><font color="#009900" size="2" face="Verdana, Arial, Helvetica, sans-serif">C&oacute;digo</font></td>
</tr>
<tr>
  <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Chapa 1 </font></td>
  <td><font color="#0000FF" size="2" face="Verdana, Arial, Helvetica, sans-serif">1</font></td>
</tr>
<tr>
  <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Chapa 2 </font></td>
  <td><font color="#0000FF" size="2" face="Verdana, Arial, Helvetica, sans-serif">2</font></td>
</tr>
<tr>
  <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Chapa 3 </font></td>
  <td><font color="#0000FF" size="2" face="Verdana, Arial, Helvetica, sans-serif">3</font></td>
</tr>
<tr>
  <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Votar em Branco </font></td>
  <td><font color="#0000FF" size="2" face="Verdana, Arial, Helvetica, sans-serif">4</font></td>
</tr>
<tr>
  <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Anular</font></td>
  <td><font color="#0000FF" size="2" face="Verdana, Arial, Helvetica, sans-serif">Qualquer numero. </font></td>
</tr>
<tr>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
</tr>
<tr>
  <td width="57%"><font color="#FF0000" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Digite seu voto  </strong></font></td>
  <td width="43%"><input name="chapa" type="text" id="chapa" size="4" maxlength="5"/></td>
</tr>

<tr>
  <td colspan="2"><div align="center">
	<input name="votar" type="submit" id="votar" value="Votar">
  </div></td>
  </tr>
</table>
</form><br><br><br>
';


if ($acao == 'calcular')
   {
   $chapa = $_POST['chapa'];
   
   $qtdemembros = 1;
   $vtc1 = 0;
   $vtc2 = 0;
   $vtc3 = 0;
   $vtbrancos = 0;
   $vtnulos = 0;

   
		   while($qtdemembros <= 10)
			   {
				switch($chapa)
				{
				case 1:	$vtc1 = $vtc1 + 1;  break;
				case 2:	$vtc2 = $vtc2 + 1;  break;
				case 3:	$vtc3 = $vtc3 + 1;  break;
				case 4:	$vtbrancos = $vtbrancos + 1;  break;
				default: $vtnulos = $vtnulos + 1;  break;
				}

				$qtdemembros = $qtdemembros + 1;


			  }

		echo '<font size="2" face="Verdana, Arial, Helvetica, sans-serif">';
		echo "Chapa 1 obteve ".$vtc1." votos.<br>";
		echo "Chapa 2 obteve ".$vtc2." votos.<br>";
		echo "Chapa 3 obteve ".$vtc3." votos.<br>";
		echo "Brancos obteve ".$vtbrancos." votos.<br>";
		echo "Nulos obteve ".$vtnulos." votos.<br><br><br>";
				

   if ($vtc1 > $vtc2)
	  {
			if ($vtc1 > $vtc3)
			   {
				$vencedora = 1;
			   } else {
				$vencedora = 3;
				}
				
	   } else {
			if ($vtc2 > $vtc3)
					  {
					  $vencedora = 2;
					  } else {
					  $vencedora = 3;
					  }
			  }
			  

			  switch($vencedora)
			  {
			  case 1: if (($vtc1 * 100 / $qtdemembros) > 50)
				   {
					echo "Chapa 1 vence no primeiro Turno.";
				   } else {
					echo "Chapa 1 venceu, mas haverá segundo turno.";
					}
						 break;
						 
			  case 2: if (($vtc2 * 100 / $qtdemembros) > 50)
				   {
					echo "Chapa 2 vence no primeiro Turno.";
				   } else {
					  echo "Chapa 2 venceu, mas haverá segundo turno.";
						  }
						 break;
						 
			  case 3: if (($vtc3 * 100 / $qtdemembros) > 50)
					{
					echo "Chapa 3 vence no primeiro Turno.";
					}
					else {
					echo "Chapa 3 venceu, mas haverá segundo turno.";
						 }
						 break;
			  }
			  
   echo '</font>';

   }

?>
</BODY>
</HTML>


Se alguem souber como devo fazer. Ajudae... please.

#2 Goku Jr

Goku Jr

    Nilson

  • Usuários
  • 3757 posts
  • Sexo:Masculino

Posted 02/04/2006, 20:31

Insersão de dados ?
Você quer adicionar no banco de dados o VALOR obtido ?

T+
-----------------------------------------------------------------------
PALMEIRAS - Primeiro campeão do mundo em 1951

#3 snkneo

snkneo

    Normal

  • Usuários
  • 118 posts
  • Sexo:Não informado
  • Localidade:Brazil
  • Interesses:Girls, Sexo, Games

Posted 02/04/2006, 20:41

nao eh gravar em banco de dados. Se usasse banco de dados seria bem facil.. hehe



a questao eh... fazer aparecer apenas em tela. :assobio:

#4 Goku Jr

Goku Jr

    Nilson

  • Usuários
  • 3757 posts
  • Sexo:Masculino

Posted 04/04/2006, 09:34

troque dentro do
if($acao == 'calcular') {
para
if($_GET['acao'] == 'calcular') {

Seu servidor deve estar com o register_global OFF. Assim, só irá funcionar usando o $_GET[] para recuperar dados de uma URL ou $_POST[] se for recuperar dados de um fórmulario!

T+
-----------------------------------------------------------------------
PALMEIRAS - Primeiro campeão do mundo em 1951

#5 snkneo

snkneo

    Normal

  • Usuários
  • 118 posts
  • Sexo:Não informado
  • Localidade:Brazil
  • Interesses:Girls, Sexo, Games

Posted 04/04/2006, 09:58

Cara, desculpe mas a questao nao eh essa.



Isso ai eh o d-.. eu nao coloquei o codigo inteiro... mas mais acima tem o $_GET['variavel'];



A questao eh outra....



A questao eh receber e armazenas em variavel, os votos de certa quantidade de pessoas, sem o uso de banco de dados ou arquivos externos. Entendeu "?

#6 Goku Jr

Goku Jr

    Nilson

  • Usuários
  • 3757 posts
  • Sexo:Masculino

Posted 04/04/2006, 10:25

AGORA sim =)

<?php
// Gravando os valores
session_start();
$_SESSION['id'] = 15;

// Recuperando os valores
echo $_SESSION['id'];
?>


<?php
// Gravando os valores
setcookie("id",15);

// Recuperando os valores
echo $_COOKIE['id'];
?>


OBS: você por um acaso está tentando fazer um sisteminha de ENQUETE ?

T+
-----------------------------------------------------------------------
PALMEIRAS - Primeiro campeão do mundo em 1951

#7 snkneo

snkneo

    Normal

  • Usuários
  • 118 posts
  • Sexo:Não informado
  • Localidade:Brazil
  • Interesses:Girls, Sexo, Games

Posted 04/04/2006, 13:47

Eh.. poderia-se dizer eh seria como um enquente..

hmm.. usar cookie.. nao tinha pensado nisso...

agora, so pensar onde e como usar ele e onde colocar o form.... :assobio:

#8 Goku Jr

Goku Jr

    Nilson

  • Usuários
  • 3757 posts
  • Sexo:Masculino

Posted 04/04/2006, 15:28

Uma coisa que acho que não vale apena porém em alguns casos e util, não se apegue a ALGORIMOS de montar o Fluxograma etc... porque nem sempre é aquilo que se espera. as vezes você monta um fluxograma que funciona no PAPEL porém na pratica não!

sobre a enquete, da uma procurada aqui no fórum a respeito de enquete, quem sabe vocÊ não ache algum tópico legal onde podera tirar suas dúvidas (y) !

T+
-----------------------------------------------------------------------
PALMEIRAS - Primeiro campeão do mundo em 1951

#9 paes

paes

    GustavoPaes.Net

  • Usuários
  • 1393 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP
  • Interesses:Rumo ao topo!

Posted 04/04/2006, 20:50

vc quer fazer uma enquete sem guardar os votos em um banco de dados?
Essa enquete será utilizada apenas em um PC ou qualquer um, utilizando qualquer pc poderá votar?

Se for utilizando apenas um PC o cookie pode resolver o problema, mas pode ser de fácil fraude.

Se for utilizado por qualquer usuário utilizando qualquer pc isso nunca dará certo!

Isso pq vc não terá como contabilizar os votos, já que o cookie fica no PC do usuário.

'Session' também não resolveria já que elas são apagadas quando o usuário sai da sessão (fecha o brownser).

A unica saída é armazenar em algum arquivo, ou banco de dados.

Sobre o algoritimo... as vezes pode até ajudar um pouco, mas costumo sempre a fazer diretamente para o PHP para evitar surpresas :D

Flw
Site: GustavoPaes.net

^ Rumo ao Topo ^




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq