Iniciando com SQLite

26 06 2009

Salve salve caros visitantes, primeiramente, vamos conhecer o que é  SQLite.

SQLite é um banco de dados interessantíssimo, primeiro porque ele gera apenas um arquivo no sistema, isso mesmo, você pode ter 1283709 tabelas dentro de um único arquivo, segundo porque ele é multi-plataforma, isso quer dizer que o mesmo arquivo que você gerar no Windows, vai rodar no Linux sem a necessidade de nenhuma gambiarra conversão, o que facilita também o backup do DB, e terceiro, ele não necessita de instalação (só, claro, que a sua dll seja chamada no php.ini (extension=php_sqlite.dll)), muito menos de um servidor de banco de dados rodando na máquina e, por esse motivo, chega a ser de três a quatro vezes mais rápido que o MySQL.

Bom, nos testes que eu fiz aqui no meu servidor, ele realmente realizou as consultas beeeem mais rápido que no MySQL. Então, vamos ao exemplo em PHP:

<?php
	// Desenvolvido por Simonarde Jr.
	// ----------------------------------------------------------

	//verificando se o arquivo do banco existe, se não existir, cria.
	if ( !file_exists("banco.db") ) {
		$db = sqlite_open("banco.db");
		$SQL = "CREATE TABLE usuarios (codigo INTEGER PRIMARY KEY, nome VARCHAR(100), login VARCHAR(20), senha VARCHAR(20));";
		$result = sqlite_query($db, $SQL);
	}

	//acessando e recuperando dados à partir do "banco.db"
	if ( !$db = sqlite_open("banco.db") ) {
		echo "Erro ao tentar abrir o Banco de Dados.";
	} else {
		$SQL = "SELECT nome, login FROM usuarios ORDER BY nome;";
		$result = sqlite_query($db, $SQL);
		if ( $result && sqlite_num_rows($result) > 0 ) {
			while ( $row = sqlite_fetch_array($result) ) {
				echo "Nome: ".$row["nome"]." - Login: ".$row["login"]."
";
			}
		}
	}
?>

Notem que o PHP já tem, nativas, as funções para conexão e operação com o SQLite, e não é muito diferente das funções do MySQL, portanto, para sites, projetos, aplicativos, whatever you’re developing de pequeno e médio porte, o SQLite é uma excelente alternativa ao MySQL.

O exemplo acima é totalmente funcional, você pode copiar e colar estudar e modificar à suas necessidades e se precisar de alguma ajuda, deixa um comentário que eu ajudo na medida do possível (lembrando que eu também estou começando agora :) ). Para maiores informações, clica aqui e visite o site do SQLite, tem tudo que você procura lá ;)

Até o próximo post,
Simonarde Jr.





Repositório de Códigos PHP: Classe de conexão ao MySQL

25 05 2009
<?php

/*
	Classe para conexão ao MySQL.
	------------------------------------------------------------------------------------
		Autor:	Simonarde Jr.
		E-mail:	simonarde@gmail.com
		URL:	http://simonardejr.wordpress.com
		Data:	25/05/2009 @ 10:29:46  

		Uso:
			$foo = new Conexao();
			$foo->configConexao("localhost", "root", "senha", "banco"); // opcional
			$foo->Conectar();
	------------------------------------------------------------------------------------
*/

	class Conexao {

		private $server = "localhost";	//servidor padrão
		private $usuario = "root";	//usuário padrão
		private $senha = "";		//senha padrão
		private $db = "dbteste";	//banco padrão
		private $conexao;

		function configConexao($server, $usuario, $senha, $db) {
			$this->server = $server;
			$this->usuario = $usuario;
			$this->senha = $senha;
			$this->db = $db;
		}

		function Conectar() {
			$this->conexao = @mysql_connect($this->server, $this->usuario, $this->senha)
							or die( "Erro ao conectar ao MySQL: ".mysql_error() );
			if ($this->conexao) {
				$banco = @mysql_select_db($this->db)
							or die( "Erro ao selecionar o banco de dados: ".mysql_error() );
			}
		}

		function Desconectar() {
			$fecharConexao = mysql_close($this->conexao);
		}
	}
?>

Copyleft Simonarde Jr. – Você pode copiar, editar e distribuir (tanto a versão original quanto a modificada) desde que sejam mantidos os créditos.





Gerenciador de Contatos, o retorno…

5 11 2008

Salve ilustríssimos visitantes, cá estou eu de volta :D . Gostaria de informar que o projeto que e iniciei aqui (o Gerenciador de Contatos) está de volta :D .

Vamos começar ele do zero, pois após eu fazer uma análise, cheguei a conclusão que aquelas rotinas estavam mal estruturadas (é, é chato assumir isso, maaaas, é preciso, e eu peço desculpas por isso), vamos agora desenvolver as rotinas da forma mais genérica possível, possibilitando assim outras pessoas utilizarem o código e adaptarem com mais facilidade às suas necessidades ;) .

Então, a primeira parte do projeto, eu vou postar dentre alguns dias, aguardem :D .

Aaaaahh! Gostaria de lembrar que esse é um projeto OpenSource, ou seja, você é livre para copiar, editar e distribuir, bem como ajudar no desenvolvimento (caso queira, basta comentar esse post, deixando algum meio de contato).

Até o próximo,
Simonarde Jr.

Blogged with the Flock Browser




Reaproveitamento de código: adote essa idéia ;)

27 10 2008

Salve ilustríssimos visitantes, cá estou eu novamente após um looongo período sem postar (me desculpem :( ).

Pois bem, indo direto ao assunto do post, quantas vezes você já fez um algoritmo que valida um CPF? Quantas vezes fez uma rotina que formata a data no padrão 0000-00-00? Eu mesmo já fiz várias vezes, tanto que para mim o processo já é quase automático :P , mas claro que às vezes você faz um ctrl+c ctrl+v de um projeto para o outro, essa é a famosa POG (Programação Orientada à Gambiarras, que atire a primeira pedra o Programador que nunca fez uma gambiarra :D ), mas todo mundo sabe, que gambiarras, às vezes (eu disse: às vezes) são necessárias, principalmente quando você tem prazos curtíssimos a cumprir.
Esses dias, eu precisei desenvolver um sistema para o órgão a qual eu trabalho (Embrapa Acre) onde eu precisava fazer, entre outras, a validação do CPF, do e-mail e formatar a data no padrão YYYY-MM-DD, pois bem, me deparei com um atraso terrível ao desenvolver toooodos esses algoritmos novamente, justamente por não ter em mãos os que eu já havia desenvolvido. Mas a idéia de reaproveitamento de código que eu quero passar, não é um simples ctrl+c ctrl+v, mas sim você começar a desenvolver suas rotinas da forma mais genérica possível, onde uma rotina sirva tanto para o projeto x, quanto para o y, com nenhuma (ou quase nenhuma) alteração.

Ah! Simonarde, mas eu vou ter que reescrever meu código inteiro de novo, e o que eu posso fazer com 3 linhas, vou ter que fazer com 6, 7… Isso é chato… .

Eu sei caro visitante, mas pensa, fazendo sua rotina da forma genérica, você só vai sofrer uma vez. Por exemplo, digamos que você tem um script PHP que conecta ao MySQL, certo? Pois bem, você escreve aí umas 3 a 4 linhas, em média, então digamos que você crie uma Classe chamada Conexao(), beleza, você vai digitar umas 10 linhas, maaaaas, somente na primeira vez :P , quando você for conectar novamente, você vai digitar apenas 1. Bem melhor né? Sem contar que depois você pode somente dar um include_once(“arquivo”) ou require(“arquivo”) que sua Classe de conexão vai estar lá, prontinha para uso :D . No próximo post, eu vou dar alguns outros exemplos de Classes e disponibilizar algumas para vocês :D .

Então, pensando nisso, eu deixo a dica para vocês: não joguem fora aquele algoritmo que escreve um simples “oi” na tela, um dia ele poderá ser, de alguma forma, útil ;)

Simonarde Jr.

Blogged with the Flock Browser




Gerenciador de Contatos v1.0 [parte 2]

25 04 2008

Opa opa! Cá estamos de volta, com a segunda parte do Artigo Gerenciador de Contatos, dessa vez iremos desenvolver a página principal, ou “index.php”, vamos lá?

Com o seu editor preferido aberto, digite as linhas responsáveis por carregar o arquivo de funções (aquele que você desenvolveu no post anterior, lembra?):

<?php
  require_once("funcoes.php");
?>

Pronto, agora você poderá usar todas as funções no seu projeto :D , é importante lembrar que o arquivo “funcoes.php” deverá estar no mesmo diretório que o “index.php”, ou então será necessário informar o caminho ao require_once.

Agora vamos ao HTML básico, digite as linhas a seguir:

<html>
 <head>
  <title>Gerenciador de Contatos v1.0</title>
 </head>

 <body>

 </body>
</html>

Pronto, com essa estrutura básica, você deverá ter uma página sem nada escrito, apenas com o título da página mostrando “Gerenciador de Contatos v1.0″.

Vamos incrementar um pouco e adicionar um título para que possamos informar ao usuário do que se trata a página que ele está vendo no momento, adicione dentro da tag “body”:

<h1>Gerenciador de Contatos v1.0</h1><hr>

Essas linhas devem criar um título e uma linha horizontal.

Bom, como você quer listar os contatos na sua página principal, vamos utilizar agora a função Listar() que desenvolvemos no post anterior, para isso, digite a linha a seguir logo após a tag “hr”:

<?php Listar(); ?>

Agora insira mais uma linha horizontal digitando a tag “hr”, poderemos também inserir algumas informações no rodapé, tais como o Copyleft ou um link, sua imaginação é o limite aqui ;) :

<hr>
Copyleft Simonarde Jr.
Desenvolvido para o artigo Gerenciador de contatos em http://simonardejr.wordpress.com

Bom, com isso sua página principal está pronta e deve se parecer com esse código abaixo:

<?php

 require_once("funcoes.php");

?>

<html>
 <head>
  <title>Gerenciador de Contatos v1.0</title>
 </head>

 <body>
  <h1>Gerenciador de Contatos v1.0</h1>
  <hr>
  <?php
   Listar();
  ?>
  <hr>
  <center>Desenvolvido por Simonarde Jr.<br/>
  Para o Artigo "Gerenciador de Contatos v1.0" em <a href="http://simonardejr.wordpress.com/" target="_blank">zWorld</a>.</center>
 </body>

</html>

No próximo post iremos desenvolver a página de cadastro (“adicionar.php”). Até lá.

Simonarde Jr.





Gerenciador de Contatos v1.0 [parte 1]

21 04 2008

Salve salve meus ilustríssimos visitantes, cá estou de volta e, como prometido, trazendo o Artigo sobre o Gerenciador de Contatos. Gostaria de lembrar-vos que esse projeto é OpenSource, ou seja, você poderá usar, modificar e é totalmente encorajado a distribuir essa versão (ou a editada) desde que seja mantido os devidos créditos. Aliás, esse é o meu primeiro projeto OpenSource, espero que gostem ;)

Bom, então vamos digitar código né??

Crie o BD e a tabela com o seguinte script SQL:

CREATE DATABASE gerenciador;
 USE gerenciador;

CREATE TABLE IF NOT EXISTS contatos (
  ID int(5) NOT NULL auto_increment,
  nome varchar(255) NOT NULL,
  telefone varchar(255) NOT NULL,
  celular varchar(255) NOT NULL,
  email varchar(255) NOT NULL,
 UNIQUE KEY ID (ID) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Começaremos por um arquivo chamado “funcoes.php”, onde serão escritas todas as funções do aplicativo, facilitando assim a manutenção e poluindo menos as páginas :D . Abra então seu editor preferido e comece abrindo a tag PHP: <?php .

A primeira função será a que facilitará a conexão com o MySQL:

function Conectar( $user, $password, $local="localhost" ) {
  $conexao = @mysql_connect( $local, $user, $password ) or die( "Erro: ".mysql_error() );
  if ( $conexao ) { $bd = @mysql_select_db( "gerenciador" ) or die( "Erro: ".mysql_error() ); }
}

Veja que passamos 3 parâmetros para ela, sendo dois obrigatórios ($user e $password) e um opcional ($local, que se não for passado recebe o valor “localhost”). Fazemos então a conexão e testamos se ela foi realizada com sucesso, se sim, ele escolhe o banco “gerenciador” para o uso. Pode parecer uma função simples, mas realmente é muito útil pois toda vez que precisar realizar uma conexão tudo o que precisa digitar é Conectar(“user”, “senha”);.

Vamos então agora a função Listar();

function Listar() {
  Conectar("user", "senha"); //Passe seu user e senha como parametros.
  $query_lista = "SELECT * FROM contatos ORDER BY nome ASC";
  $resultado = @mysql_query($query_lista) or die("Erro: ".mysql_error());
  if ($resultado) {
   $total = mysql_num_rows($resultado);
   if (mysql_num_rows($resultado) != 0) {
    echo "<table border=\"0\"><tr bgcolor=\"#ff2200\"><td>Nome</td><td>Telefone</td><td>Celular</td><td>E-mail</td><td>Opções</td></tr>";
    while ($linha = mysql_fetch_array($resultado)) {
     if ($i % 2 == 0) { $cor = ""; }
     else { $cor = "#EEEEEE"; }
     echo "<tr bgcolor=\"".$cor."\"><td>".$linha["nome"]."</td><td>".$linha["telefone"]."</td><td>".$linha["celular"]."</td><td>".$linha["email"]."</td><td><a href=\"editar.php?ID=".$linha["ID"]."\">Editar</a> | <a href=\"deletar.php?ID=".$linha["ID"]."\">Deletar</a></td></tr>";
     $i++;
    }
    echo "</table><br/><br/>";
   }
   echo "Você possui ".$total." contatos cadastrados. Deseja <a href=\"adicionar.php\"> adicionar</a> outro?";
  }
}

Essa função realiza a consulta no banco de dados e nos mostra os resultados numa tabela zebrada (ou seja, sempre que precisar listar todos os contatos, basta digitar Listar();, mais simples impossível não é mesmo? ;) ). Ela possui também um contador, onde é possível ver quantos registros você possui.

Que tal escrevermos a função Adicionar()? Vamos lá então ;)

function Adicionar($nome, $telefone, $celular, $email) {
  Conectar("user", "senha"); //Passe seu user e sua senha como parametros.
  if ( $nome == "" ) { $nome = "NULO"; }
  if ( $telefone == "" ) { $telefone = "(00) 0000-0000"; }
  if ( $celular == "" ) { $celular = "(00) 0000-0000"; }
  if ( $email == "" ) { $email = "nenhum fornecido"; }
  $query_adic = "INSERT INTO contatos (ID, nome, telefone, celular, email) VALUES ('NULL', '$nome', '$telefone', '$celular', '$email')";
  $resultado_adic = mysql_query($query_adic) or die("Erro: ".mysql_error());
}

Bom, essa função serve exatamente para fazer o que o nome propõe, adicionar um novo contato, ela possui uma série de testes para atribuir valores às variáveis se as mesmas forem vazias. Novamente, visando a facilidade da inserção, basta digitar Adicionar(“nome”, “telefone”, “celular”, “email”); para que as informações sejam armazenadas no BD.

Mas Simonarde, eu já adicionei, já listei, mas é se eu quiser remover? Vamos resolver isso agora caro visitante, com a função Deletar();

function Deletar($id) {
  $query_del2 = "DELETE FROM contatos WHERE ID='$id'";
  $resultado_del2 = @mysql_query($query_del2) or die("Erro: ".mysql_error());
  if ($resultado_del2) {
   echo "Removido com Sucesso! Clique <a href=\"index.php\">aqui</a> para retornar.";
  }
}

Pronto, basta passar como parâmetro o ID do contato que queres deletar e pronto (Deletar(3); por exemplo), ele será removido do DB ;) .

E se eu coloquei as informações erradas Simonarde, vou ter que apagar o contato e cadastrar de novo? Não ilustríssimo, você vai desenvolver agora a função Editar() e Editando(), uma vai buscar as informações no BD e a outra vai alterar esse registro :D

function Editar($id, $nome, $telefone, $celular, $email) {
  Conectar( "user", "senha"); //Passe seu user e sua senha como parametros.
  if ( $nome == "" ) { $nome = "NULO"; }
  if ( $telefone == "" ) { $telefone = "(00) 0000-0000"; }
  if ( $celular == "" ) { $celular = "(00) 0000-0000"; }
  if ( $email == "" ) { $email = "nenhum fornecido"; }

  $query_edit = "UPDATE contatos SET nome='$nome', telefone='$telefone', celular='$celular', email='$email' WHERE ID='$id'";
  $resultado_edit = mysql_query($query_edit) or die("Erro: ".mysql_error());
 }

function Editando($ide) {
  Conectar( "user", "senha"); //Passe seu user e sua senha como parametros.
  $query_edit2 = "SELECT * FROM contatos WHERE ID='$ide'";
  $resultado_edit2 = mysql_query($query_edit2) or die("Erro: ".mysql_error());
  if ($resultado_edit2) {
   while ($linha_edit2 = mysql_fetch_array($resultado_edit2)) {
    echo "<form action=\"editar.php\">
           Nome: <input type=\"text\" name=\"nomec\" value=\"".$linha_edit2["nome"]."\"> <br/>
           Telefone: <input type=\"text\" name=\"telefonec\" value=\"".$linha_edit2["telefone"]."\"> <br/>
           Celular: <input type=\"text\" name=\"celularc\" value=\"".$linha_edit2["celular"]."\"> <br/>
           E-mail: <input type=\"text\" name=\"emailc\" value=\"".$linha_edit2["email"]."\"> <br/>
           <input type=\"hidden\" name=\"valida\" value=\"ok\">
           <input type=\"hidden\" name=\"ID\" value=\"".$linha_edit2["ID"]."\">
           <input type=\"submit\" value=\"Editar\"> <input type=\"button\" value=\"Cancelar\" onClick=\"javascript:history.back(1);\">
          </form>";
   }
  }
 }

Pronto, para apresentar um formulário com as informações a serem editadas, basta digitar Editando(ID); passando o ID do contato a ser editado como parametro, já para salvar, basta digitar Editar(“ID”, “nome”, “telefone”, “celular”, “email”); passando as informações como parametro, simples não? ;)

Bom, agora só falta você fechar a tag PHP que você abriu lááá no começo do Artigo, para tal, digite: ?> e com essas funções escritas, seu arquivo “funcoes.php” está completo e pronto para uso.

No próximo post, iremos desenvolver a “index.php”, que será responsável por mostrar os contatos cadastrados e oferecer a opção para inserir um novo registro no BD.

Até lá ;)

Simonarde Jr.





Gerenciador de Contatos v1.0

3 04 2008

Salve salve caríssimos visitantes, cá estou a postar novamente e dessa vez vos trago o resultado da pesquisa do post anterior… Bom, seguinte, pelos comentários que recebi aqui juntamente com o conselho do meu professor Thiago, decidir então fazer o Artigo ensinando a fazer e no final postar o Aplicativo pronto para uso, certo? Então, fiquem de olho que eu já comecei a desenvolver o projeto e, muito em breve, eu posto a primeira parte do Artigo ;)

Vou ficando por aqui, até o próximo post…

Simonarde Júnior.





Ó dúvida…

31 03 2008

Bom galera, após exatos 170 dias sem postar (o que é equivalente a 5 meses e 20 dias, quase meio ano :O ), cá estou eu escrevendo novamente…

Primeiramente gostaria de pedir desculpas aos meus nobres visitantes pelo tempo sem atualizações, prometo não acontecer de novo, e, aproveitando, agradecer as 7,311 visitas únicas que eu tive até o presente momento :D .

Então vamos ao motivo do post, estou aqui a pensar em um projeto que vai ser de grande utilidade para mim, que costumo sempre perder meus contatos… Então eu pensei, porque não manter os meus contatos em um banco de dados, com uma interface amigável e bem diferente desses softwares que costumam vir com o celular (que aliás são horríveis, pesados e geralmente nunca fazem o serviço direito), junto com a facilidade de eu poder acessá-los de qualquer lugar? Daí surgiu a idéia de desenvolver um sistema em PHP para que eu pudesse guardar meus contatos no meu servidor e ter acesso a qualquer hora e qualquer lugar, sem precisar instalar nada, usando apenas o navegador de qualquer computador… Então surgiu outra dúvida: disponibilizar o aplicativo para download ou simplesmente criar um Artigo ensinando a fazer um (o que seria melhor pois além da possibilidade de personalização, ainda rolaria o aprendizado :D ) ?

Bom, resolvi perguntar a vocês o que acham melhor, o aplicativo para download ou o Artigo? Respondam aí que a partir de Quarta-Feira (dia 02), eu já coloco aqui o escolhido :D

Vou ficando por aqui, espero que aceitem minhas sinceras desculpas pelo tempo sem postar…

Ahh! E obrigado mais uma vez pelas visitas :D

Simonarde Júnior.





Delphi com Banco de Dados

11 10 2007

É galerinha, após um looongo período sem postar, cá estamos de volta, e com um assunto que me interessa muito.

Realmente descobri o que eu gosto de fazer, programar. Pode ser o software mais simples do mundo (como o Bloco de Notas que estou desenvolvendo), mas só de você ver ele rodar e funcionar como deveria já dá uma sensação tão boa que é quase inexplicável, porque afinal, foi você quem codificou tudo, você quebrou a cabeça p/ fazer as rotinas de verificação, se tal coisa tá marcada, se tal clique acontecer, enfim, você que programa sabe do que eu tô falando :P .

“Eu amo Delphi”, essa frase eu venho usando muito ultimamente, e isso se deve ao Curso de Extensão que a UniNorte está oferencendo (Delphi com Banco de Dados). Eu já tinha ouvido falar da fama do Delphi, mas sempre preferi usar o VB sem nem nunca ter dado uma chance para ele. “Adeus VB”, é o que eu falo hoje… hahahaha, as coisas mudam hein?

No primeiro sábado do curso, já desenvolvemos um Bloco de Notas beeeeeem fuleiro, mas em todo e qualquer curso, todo mundo sempre começa por uma coisa simples, hoje eu estou complementando o projeto, fazendo aperfeicoamento do código e implementando novas funcionalidades (no próximo post eu coloco uma screenshot dele). Vamos ver o que vamos fazer na próxima aula, estou ansioso ao extremo, já que agora só no sábado que vem, porque esse vai ser feriado =/.

Então, p/ encerrar o post, lembro-me de uma frase que o Célio (meu professor de física do 3º ano (é, faz até um tempinho :P )) disse: “Se você for fazer alguma coisa, faça porque gosta, e não porque é obrigado a fazer.

Abraço e até o próximo post

Simonarde Júnior.





C++ e Pascal… Ahh, Agora sim…

15 08 2007

É galerinha, após um looooongo período de férias, cá estamos todos nós na correria da facul novamente. Agora sim, a programação em si começa a entrar na grade, estamos começando com o C++ e o Pascal e é sobre eles que eu vou falar um pouco nesse post.

Para quem nunca programou, é normal ficar meio perdido nas aulas teóricas, mas não se preocupem, tudo vai fazer sentido assim que tivermos aulas práticas…

Bom, começando então, um exemplo básico de C++:

ola_mundo.jpg

Vixe, complicou? Peraí vamos debugar linha por linha:

/* Olá mundo [by Simonarde Jr] */
Essa linha se trata de um simples comentário, ela diz, nesse caso, o nome do script e o autor (não é obrigatório o uso desse comentário, mas para facilitar a leitura é sempre bom você comentar seus programas ;] ).

# include <iostream>
Aqui é onde mostramos ao compilador a(s) biblioteca(s) que iremos usar ao longo do programa que estamos desenvolvendo.

using namespace std;
Aqui informamos ao compilador qual(is) função(ões) iremos utilizar também ao longo do programa.

int main()
Essa parte é muito importante, é dentro dessa função main() que o nosso aplicativo vai ser desenvolvido, podemos dizer que esse é o corpo do programa em si. É importante lembrar também que essa função obrigatóriamente tem que iniciar com uma “{” e ao final dela temos que fechá-la usando “}”.

cout << “Ola Mundo!” << endl;
Essa linha é responsável por mostrar tudo o que está dentro das “” na tela (no nosso exemplo é a frase “Olá Mundo!”), seguido por “endl;” (lê-se end line ou fim da linha) que mostra ao compilador que a linha termina ali.

sytem(“Pause”);
Como estamos programando aplicativos simples, essa linha manda um sinal de pausa e então podemos visualizar a janela com o texto, sem ela, a janela iria se abrir e ao término da execução dos comandos listados na função main(), iria se finalizar, fechando assim a janela. (Nesse primeiro momento ela só servirá para que você visualize o programa rodando mesmo.)

return 0;
Essa linha também não é obrigatória, pelo menos no Dev-C++, pois ele já “sabe” que a instrução int main() tem que resultar em 0 (zero), e já faz isso sozinho, mas em outros compiladores você tem que por no braço mesmo, se não o programa não é compilado.

Pronto, se você digitar essas linhas no Dev-C++ e quiser ver o programa rodando, aperte F9 e divirta-se ;]

Já o Pascal, ainda estamos em fase de migração do VisuAlg para ele, vou postar uns exemplos depois, mas o que muda são apenas algumas coisas, como por exemplo, as palavras reservadas e as instruções são em inglês e o uso de “;” (ponto e vírgula) é obrigatório no final das instruções.

Bom, vou encerrando por aqui, qualquer dúvida, só me procurar, ok?

Abraço a todos

Simonarde Jr.