29 de novembro de 2011

Leitura e Gravação de Arquivos em Pascal com Cadastro de Clientes - Parte 1

Linguagem Pascal.jpg

Um bom número de leitores tem me pedido programas que tem que fazer leitura e gravação de arquivos.

Já postei algumas coisas ligadas a arquivo texto. Nessa postagem vou explicar como gravar um cadastro de clientes e depois vamos ler esse arquivo.

Observação: Com o PASCALZIM esse programa não roda. Se tem o FREEPASCAL que também gratuito e se aproxima muito mais do TURBOPASCAL, para que usar o PASCALZIM que é cheio de limites? Senhores professores de outras instituições, vão querer usar o PASCALZIM, só por que é uma produção nacional? Mesmo que cheia de limites e fora dos padrões do PASCAL?

Amanhã estarei postando a versão PASCALZIM desse programa.

Antes de ir ao programa vamos criar uma estrutura para o nosso arquivo:

Codigo (com 6 caracteres)

Nome (com 40 caracteres)

Endereco (com 60 caracteres)

Telefone (com 10 caracteres) com DDD e sem parêntesis ou sinal de menos

Transformando para Pascal essa parte:

TYPE

TCliente = Record

codigo : String [6];

nome : String[40];

endereco : String [60];

telefone: String[10];

End;

Por que colocar String[]?

Para economizar memória do computador e com isso o programa irá ser executado melhor.

O programa será composto de dois momentos diferentes:

1. Gravar alguns clientes

2. Mostrar os clientes

Ao gravar nós devemos lembrar da estrutura de arquivos que garanta na primeira vez que executarmos o programa para que CRIE o arquivo e na segunda vez apenas ABRA o arquivo. Veja a estrutura abaixo:

ASSIGN (F,'Nomedoarquivo');

{$I-} // Desabilita o controle de erros de arquivos

RESET (F); // Tenta abrir o arquivo caso ele exista

SEEK (F, FILESIZE(F)); // Vai para o final do arquivo

{$I+} // Habilita o controle de arquivo

if IORESULT()<>0 then REWRITE(F); // Se o IORESULT (Resultado de arquivos) for igual a 0 o arquivo foi aberto corretamente, se for outro valor diferente de 0 irá usar o comando REWRITE para criar o arquivo.

Na parte de leitura é necessário ir ao início do arquivo com o comando SEEK e depois criar um looping com WHILE para repetir enquanto não for o final do arquivo.

Vamos ao programa:

 Program Gravar_e_Ler_Arquivos_01;  
 Uses Crt;  
 Type  
  TCliente = Record  
   codigo  : String [6];  
   nome   : String [40];  
   endereco : String [60];  
   telefone : String [10];  
  End;  
 Var  
  Cliente : TCliente;  
  Arquivo : File of TCliente; //Arquivo do tipo TCliente  
  i    : Integer;  
  q    : Integer;  
 Begin  
  ClrScr;  
  // Momento 1 - Gravar o Arquivo  
  // Abre Arquivo  
  Assign (Arquivo,'Clientes.ARQ');  
  {$I-}  
  Reset (Arquivo);  
  // Avan‡ar ate o ultimo registro  
  Seek (Arquivo, FileSize(Arquivo));  
  {$I+}  
  if IORESULT()<>0 then ReWrite(Arquivo);  
  //  
  Write ('Quanto clientes para adicionar (0 para nenhum)?'); ReadLn (q);  
  For i:=1 to q do  
  Begin  
   // Entrada dos Dados  
   Write ('Codigo...: '); ReadLn (Cliente.Codigo);  
   Write ('Nome.....: '); ReadLn (Cliente.Nome);  
   Write ('Endereco.: '); ReadLn (Cliente.Endereco);  
   Write ('Telefone.: '); ReadLn (Cliente.Telefone);  
   // Grava‡Æo  
   Write (Arquivo,Cliente);  
  End;  
  // Fecha Arquivo  
  Close (Arquivo);  
  // Momento 2 - Mostrar os Clientes  
  // Abre Arquivo  
  Assign (Arquivo,'Clientes.ARQ');  
  {$I-}  
  Reset (Arquivo);  
  {$I+}  
  if IORESULT()<>0 then ReWrite(Arquivo);  
  // Ir para o inicio do arquivo  
  Seek (Arquivo,0);  
  // Leia o arquivo at' o final  
  While Not(Eof(Arquivo)) Do  
  Begin  
   Read (Arquivo,Cliente);  
   WriteLn ('Codigo...: ', Cliente.Codigo);  
   WriteLn ('Nome.....: ', Cliente.Nome);  
   WriteLn ('Endereco.: ', Cliente.Endereco);  
   WriteLn ('Telefone.: ', Cliente.Telefone);  
  End;  
  // Fecha Arquivo  
  Close (Arquivo);  
  // Pausa no final do programa  
  ReadLn;  
 End.  

Read more

27 de novembro de 2011

Como Você Poderá Ficar em 20 Anos

Muitas pessoas gostam de saber como vão ficar daqui a 20 anos.

Esse é o proposito do site que vou apresentar aqui.

Link: http://in20years.com/

In 20 Years.jpg

O processo é super simples, selecione o sexo: masculino ou feninimo e +20 ou + 30 anos e escolha a foto para UPLOAD.

Meu resultado com uma foto bem pequena:

me in 20 year.jpg

Read more

26 de novembro de 2011

Carregando a Bateria Agitando

Você já viu bateria que se carrega ao agitar?

brothergenerator.jpg

Bem, os relógios a corda não tem bateria, mas o seu uso faz com ele continue funcionando pela movimento natural do braço.

Agora a bateria é uma novidade, apesar que os estudos já vem se desenvolvendo a alguns anos com base em energia renovável.

A marca Brother, famosa por etiquetadoras e impressoras resolvel investir em um pequeno gerador que pode substituir pilhas AA e AAA.

O nome do equipamento é Vibration-powered Generating Battery que gera energia agitando ou abanando.

A duranção não é ilimitada e é ideal para dispositivos que tenha consumo em torno de 100mW ou menos, ou seja, controle remotos e outras aplicações menores.

Read more

Converter PDF em Word Grátis

Esse é um programa que muita gente precisa que é a conversão de PDF em arquivo Microsoft Word.

O programa é bem prático e pode converter uma lista de arquivos.

PDF Word.jpg

Não espere 100% de eficácia, mas resolve muitos problemas.

Compatibilidade: Windows

Licença: Freeware

Link: http://www.pdfwordconverter.net/index.html

Download: http://www.pdfwordconverter.net/down/pdf2word.exe

Read more

23 de novembro de 2011

Será que a sua senha é tao fácil de descobrir

Se você está lendo o blog com certeza deve ter alguma senha em algum site ou serviço de email.

senha_password2.jpg

Por mais que os sites peçam que você não utilize o óbvio você assim mesmo acaba usando?

Nesses anos de vivência já vi muita coisa em relação as senhas e uma gafe completa é ter a senha com o mesmo nome do usuário, nesse e em vários outros casos que vou citar abaixo é uma marmelada descobrir a senha de alguém.

Um dos erros graves também é o nome de pessoas ou animais queridos, ou coisas que gostamos muito e depois combinado com datas.

As senhas mais clássicas são:

12345678

11111111

1234

qwerty

abc123

master

super

password

iloveyou

9999999

root

supervisor

admin

Se você usa uma dessas combinações você poderá ser uma vítima fácil de um hacker.

Hoje em dia perder uma conta de um site é tão grave a pessoa como perder os documentos ou mais.

Fique atento!

Read more

16 de novembro de 2011

Cadastro de Clientes em Pascal Parte 5

Na postagem anterior nos fechamos o primeiro circulo do programa. Agora vamos aperfeiçoar cada item.

Como dito anteriormente nos vamos remover em definitivo o cliente, pois no inicio do programa criamos apenas 15 posições.

Na versão anterior já tinha marcado o cliente a ser apagado com o sustenido #.

Para remover o cliente não é somente esvaziar a variável e usar o resto, pois quanto mais variáveis seu programa tiver, mais memória do seu computador irá usar.

Então o processo não é tão simples para excluir um cliente, você terá que excluir e depois mover todos os próximos clientes em uma posição para trás.

Veja o desenho:

excluir cliente2.jpg

No desenho acima temos 5 clientes o cliente número 2 será apagado e nesse momento o cliente 3 será o cliente 2, o cliente 4 será o 3 e o cliente 5 será o 4 e nós teremos apenas 4 clientes.

Depois de marcado vamos criar a estrutura onde a variável I tem a posição do cliente a ser apagado e não será mais necessário marcá-lo, então:

for j := i to NClientes-1 do

Begin

Nome[j] := Nome[j+1];

Idade[j] := Idade[j+1];

Sexo[j] := Idade[j+1];

End;

NClientes := NClientes - 1;

Quando terminar o cliente já estará eliminado.

Vamos criar uma pequena simulação para o nosso programa, supondo que o tenhamos 5 clientes:

Nome[1] = Joao

Nome[2] = Maria

Nome[3] = Pedro

Nome[4] = Paulo

Nome[5] = Isabel

Vamos remover o cliente 2 como no desenho anterior e aplicar a parte do programa acima para conferir se está tudo certo:

NClientes = 5

i = 2

j vai de 2 até 4 (Nclientes-1)

excluir cliente3.jpg

Quando j=2 => Nome[j] := Nome[j+1] => Nome[2] :=Nome[3]

Assim por diante.

Vamos ao código fonte:

 Program Cadastro_de_Clientes_Versao_5;  
 Uses Crt;  
 Var  
  Nome   : Array [1..15] of String[40];  
  Idade   : Array [1..15] of Integer;  
  Sexo   : Array [1..15] of Char;  
  i     : Integer;  
  NClientes : Integer; // Numero de Clientes  
  Opcao   : Integer;  
  s     : String;  
  b     : Boolean;  
 Begin  
  NClientes := 0; // Come‡a com 0 Clientes  
  Repeat  
   ClrScr;  
   WriteLn ('Cadastro de Clientes V1.0');  
   WriteLn;  
   WriteLn ('1 - Incluir Clientes');  
   WriteLn ('2 - Mostrar Clientes');  
   WriteLn ('3 - Alterar Clientes');  
   WriteLn ('4 - Excluir Clientes');  
   WriteLn ('5 - Sair');  
   WriteLn;  
   Write ('Opcao: '); ReadLn (Opcao);  
   Case Opcao of  
    1 :  
    Begin  
     NClientes := NClientes+1;  
     WriteLn ('Cliente No.:',NClientes);  
     Write ('Nome...:'); ReadLn (Nome[NClientes]);  
     Write ('Idade..:'); ReadLn (Idade[NClientes]);  
     Repeat  
      Write ('Sexo...:'); ReadLn (Sexo[NClientes]);  
     Until (Sexo[NClientes]='M') or (Sexo[NClientes]='F');  
    End;  
    2 :  
    Begin  
     For i := 1 to NClientes do  
     Begin  
      if (Copy(Nome[i],1,1)<>'#') Then  
      Begin  
       WriteLn ('Cliente No.: ',i);  
       WriteLn ('Nome.......: ',Nome[i]);  
       WriteLn ('Idade......: ',Idade[i]);  
       WriteLn ('Sexo.......: ',Sexo[i]);  
       WriteLn ('=======================================');  
      End;  
     End;  
     ReadLn;  
    End;  
    3 :  
    Begin  
     Write ('Entre com Nome do Cliente :');  
     ReadLn (s);  
     b := False; // Inicia que nao encotrou  
     i := 0;  
     Repeat  
      i := i + 1;  
      if Nome[i] = s then b := True;  
     Until (b) or (i>=NClientes);  
     if not(b) then  
     Begin  
      WriteLn ('Cliente nÆo encontrado!');  
      ReadLn;  
     End  
     Else  
     Begin  
      WriteLn ('Cliente No.: ',i);  
      WriteLn ('Nome.......: ',Nome[i]);  
      WriteLn ('Idade......: ',Idade[i]);  
      WriteLn ('Sexo.......: ',Sexo[i]);  
      WriteLn;  
      WriteLn ('Nome.......: ');ReadLn(Nome[i]);  
      WriteLn ('Idade......: ');ReadLn(Idade[i]);  
      WriteLn ('Sexo.......: ');ReadLn(Sexo[i]);  
     End;  
    End;  
    4 :  
    Begin  
     Write ('Entre com Nome do Cliente :');  
     ReadLn (s);  
     b := False; // Inicia que nao encotrou  
     i := 0;  
     Repeat  
      i := i + 1;  
      if Nome[i] = s then b := True;  
     Until (b) or (i>=NClientes);  
     if not(b) then  
     Begin  
      WriteLn ('Cliente nÆo encontrado!');  
      ReadLn;  
     End  
     Else  
     Begin  
      WriteLn ('Cliente No.: ',i);  
      WriteLn ('Nome.......: ',Nome[i]);  
      WriteLn ('Idade......: ',Idade[i]);  
      WriteLn ('Sexo.......: ',Sexo[i]);  
      WriteLn;  
      Repeat  
       Write ('Confirma (S/N)?');  
       ReadLn (s);  
      Until (s='S') or (s='N');  
      if s='S' then  
      Begin  
       For j := i to NClientes do  
       Begin  
        Nome [j] := Nome[j+1];  
        Idade [j] := Idade[j+1];  
        Sexo [j] := Sexo[j+1];  
       End;  
       NClientes := NClientes - 1;  
      End;  
     End;  
    End;  
   End;  
  Until (Opcao=5);  
 End.  

Na próxima etapa vamos acertar mais alguns aspectos do programa, espero que esteja sendo útil, o seu comentário já é uma recompensa. A sua sugestão é um esclarecimento para você e outros usuários.

Read more

15 de novembro de 2011

Cadastro de Clientes em Pascal Parte 4

Dando seguimento, vamos adicionar mais duas partes ao nosso programa: ALTERAR e EXCLUIR.

Tudo bem que o nosso programa ainda não esteja como muitos desejariam, mas vamos melhorar pouco a pouco até atingir a meta que irá satisfazer muitos trabalhos que outros professores pedem.

Lembro que a minha solução não é a única e que não é simplesmente para copiar, mas para aprender a criar o seu próprio programa.

Vamos ao programa.

ALTERAR: para alterar nós teremos que ver os dados que inserimos e para isso teremos que localizar o cliente, no programa iremos procurar pelo NOME que é o fator para diferenciar os clientes.

A procura deve começar pelo Cliente 1 e ir até o cliente procurado ou até o final que é o Cliente N (NClientes).

Caso não encontre mostre a mensagem: "Cliente não encontrado", caso contrário mostre o cliente e permita para reescrever.

Outra melhoria do programa será a troca do IF por CASE e agora nós temos 5 opções no menu e o CASE se adequa melhor ao programa.

EXCLUIR: no programa é parte mais complicada, mas também a que tem mais soluções diferentes.

A solução que irei adotar será localizar o Nome e depois pedir para confirmar, caso confirme:

O nome será marcado com # no ínicio do e não deverá mais aparecer na lista e para isso iremos alterar a opção 2 - Mostrar Clientes e checar se no início do nome não tem um sustenido (joguinho da velha, como quiserem).

Código Fonte:

 Program Cadastro_de_Clientes_Versao_4;  
 Uses Crt;  
 Var  
  Nome   : Array [1..15] of String[40];  
  Idade   : Array [1..15] of Integer;  
  Sexo   : Array [1..15] of Char;  
  i     : Integer;  
  NClientes : Integer; // Numero de Clientes  
  Opcao   : Integer;  
  s     : String;  
  b     : Boolean;  
 Begin  
  NClientes := 0; // Come‡a com 0 Clientes  
  Repeat  
   ClrScr;  
   WriteLn ('Cadastro de Clientes V1.0');  
   WriteLn;  
   WriteLn ('1 - Incluir Clientes');  
   WriteLn ('2 - Mostrar Clientes');  
   WriteLn ('3 - Alterar Clientes');  
   WriteLn ('4 - Excluir Clientes');  
   WriteLn ('5 - Sair');  
   WriteLn;  
   Write ('Opcao: '); ReadLn (Opcao);  
   Case Opcao of  
    1 :  
    Begin  
     NClientes := NClientes+1;  
     WriteLn ('Cliente No.:',NClientes);  
     Write ('Nome...:'); ReadLn (Nome[NClientes]);  
     Write ('Idade..:'); ReadLn (Idade[NClientes]);  
     Repeat  
      Write ('Sexo...:'); ReadLn (Sexo[NClientes]);  
     Until (Sexo[NClientes]='M') or (Sexo[NClientes]='F');  
    End;  
    2 :  
    Begin  
     For i := 1 to NClientes do  
     Begin  
      if (Copy(Nome[i],1,1)<>'#') Then  
      Begin  
       WriteLn ('Cliente No.: ',i);  
       WriteLn ('Nome.......: ',Nome[i]);  
       WriteLn ('Idade......: ',Idade[i]);  
       WriteLn ('Sexo.......: ',Sexo[i]);  
       WriteLn ('=======================================');  
      End;  
     End;  
     ReadLn;  
    End;  
    3 :  
    Begin  
     Write ('Entre com Nome do Cliente :');  
     ReadLn (s);  
     b := False; // Inicia que nao encotrou  
     i := 0;  
     Repeat  
      i := i + 1;  
      if Nome[i] = s then b := True;  
     Until (b) or (i>=NClientes);  
     if not(b) then  
     Begin  
      WriteLn ('Cliente nÆo encontrado!');  
      ReadLn;  
     End  
     Else  
     Begin  
      WriteLn ('Cliente No.: ',i);  
      WriteLn ('Nome.......: ',Nome[i]);  
      WriteLn ('Idade......: ',Idade[i]);  
      WriteLn ('Sexo.......: ',Sexo[i]);  
      WriteLn;  
      WriteLn ('Nome.......: ');ReadLn(Nome[i]);  
      WriteLn ('Idade......: ');ReadLn(Idade[i]);  
      WriteLn ('Sexo.......: ');ReadLn(Sexo[i]);  
     End;  
    End;  
    4 :  
    Begin  
     Write ('Entre com Nome do Cliente :');  
     ReadLn (s);  
     b := False; // Inicia que nao encotrou  
     i := 0;  
     Repeat  
      i := i + 1;  
      if Nome[i] = s then b := True;  
     Until (b) or (i>=NClientes);  
     if not(b) then  
     Begin  
      WriteLn ('Cliente nÆo encontrado!');  
      ReadLn;  
     End  
     Else  
     Begin  
      WriteLn ('Cliente No.: ',i);  
      WriteLn ('Nome.......: ',Nome[i]);  
      WriteLn ('Idade......: ',Idade[i]);  
      WriteLn ('Sexo.......: ',Sexo[i]);  
      WriteLn;  
      Repeat  
       Write ('Confirma (S/N)?');  
       ReadLn (s);  
      Until (s='S') or (s='N');  
      if s='S' then  
       Nome [i] := '#'+Nome[i];  
     End;  
    End;  
   End;  
  Until (Opcao=5);  
 End.  

Agora é a vez de vocês usarem a criatividade e comentarem um pouco para melhorar as idéias do programa.

Na próxima etapa vamos remover efetivamente o Cliente e não simplesmente marcá-lo.

Lembre-se quanto vale essa postagem? Quantas horas economizou? Ajude o blog a se manter e para que a cada dia tenha mais postagens completas como essa.

Read more

14 de novembro de 2011

Cadastro de Clientes em Pascal Parte 3

Na parte 2 melhoramos o processo para armazenar os clientes utilizando matriz (no caso um vetor que é uma matriz de 1 por N).

Agora vamos acertar a entrada dos dados.

No campo SEXO só deveriamos entrar com M ou F, podemos limitar a maiúsculas ou minúsculas ou ambas. Só que para efeito de contagem ficaria pior.

Então nessa etapa vamos limitar primeiro a M ou F apena maiúsculo.

Repeat Write ('Sexo...:'); ReadLn (Sexo[i]); Until (Sexo[i]='M') or (Sexo[i]='F');

O processo é bem simples, vamos repetir até a variável SEXO seja M ou F:

Código Fonte:

 Program Cadastro_de_Clientes_Versao_2;
Uses Crt;
Var
Nome : Array [1..15] of String[40];
Idade : Array [1..15] of Integer;
Sexo : Array [1..15] of Char;
i   : Integer;
Begin
ClrScr;
WriteLn ('Cadastro de Clientes V1.0');
WriteLn;
for i := 1 to 15 do
Begin
 WriteLn ('Cliente No',i);
 Write ('Nome...:'); ReadLn (Nome[i]);
 Write ('Idade..:'); ReadLn (Idade[i]);
 Repeat
  Write ('Sexo...:'); ReadLn (Sexo[i]);
 Until (Sexo[i]='M') or (Sexo[i]='F');
End;
ReadLn;
End.

Para essa parte só isso seria pouco, então já vamos avançar para duas coisas mais. Você necessariamente não precisa incluir os quinze clientes de uma vez, então vamos criar um menu com três opções: Incluir os clientes e Mostrar os Clientes e Sair.

1 - Incluir Clientes

2 - Mostrar Clientes

3 - Sair

Agora sim a estrutura vai ser mudada, pois pense o programa irá ficar se repetindo até que se escolha a opção 3 - Sair.

Para selecionar as opções vamos criar uma variável chamada OPCAO e vamos selecionar cada item com um IF primeiro, para depois melhorar.

Outro fator importante é saber a quantidade de clientes para que possamos armazenar o cliente na posição correta no vetor, ou seja, se não tenho clientes (quando o programa começa) nós vaos armazenar na primeira posição, se eu tiver 1 cliente armazenado nós vamos armazenada na segunda posição, pois a primeira já está ocupada.

 Program Cadastro_de_Clientes_Versao_3;
Uses Crt;
Var
Nome   : Array [1..15] of String[40];
Idade   : Array [1..15] of Integer;
Sexo   : Array [1..15] of Char;
i     : Integer;
NClientes : Integer; // Numero de Clientes
Opcao   : Integer;
Begin
NClientes := 0; // Come‡a com 0 Clientes
Repeat
 ClrScr;
 WriteLn ('Cadastro de Clientes V1.0');
 WriteLn;
 WriteLn ('1 - Incluir Clientes');
 WriteLn ('2 - Mostrar Clientes');
 WriteLn ('3 - Sair');
 WriteLn;
 Write ('Opcao: '); ReadLn (Opcao);
 If opcao = 1 then
 Begin
  NClientes := NClientes+1;
  WriteLn ('Cliente No.:',NClientes);
  Write ('Nome...:'); ReadLn (Nome[NClientes]);
  Write ('Idade..:'); ReadLn (Idade[NClientes]);
  Repeat
   Write ('Sexo...:'); ReadLn (Sexo[NClientes]);
  Until (Sexo[NClientes]='M') or (Sexo[NClientes]='F');
 End;
 If opcao = 2 then
 Begin
  For i := 1 to NClientes do
  Begin
   WriteLn ('Cliente No.: ',i);
   WriteLn ('Nome.......: ',Nome[i]);
   WriteLn ('Idade......: ',Idade[i]);
   WriteLn ('Sexo.......: ',Sexo[i]);
   WriteLn ('=======================================');
  End;
  ReadLn;
 End;
Until (Opcao=3);
End.

Está com dúvida? Deixe seu comentário e não deixe de prestigiar o blog. Na próxima etapa vamos ALTERAR e EXCLUIR um cliente.

Read more

9 de novembro de 2011

Cadastro de Clientes em Pascal Parte 2

Dando seguimento a postagem anterior vamos melhorar o nosso programa.

Na postagem anterior o programa armazenava 5 clientes apenas, já nessa nova versão vamos armazenar 15 clientes e fica claro a facilidade de aumentar o número de clientes.

No Pascal a uma boa forma de criar multiplas variáveis é através de uma ARRAY (Matriz).

Matriz?

Sim, a própria matriz da matemática e o funcionamento é igual.

Para o nosso programa vamos criar três matrizes: uma para o nome, uma para idade e uma para o sexo.

A matriz deverá conter no nosso programa 15 valores e será uma matriz de 1 x 15:

[ Joao Maria Pedro Marcelo Joana ..... ]

[ 21 18 30 25 16 ......]

[ M F M M F .....]

Como criar uma matriz assim em Pascal?

Como disse anteriormente vamos usar uma ARRAY.

Então quando for criar as variáveis:

Nome : ARRAY [1..15] of String [40];

Idade: ARRAY [1..15] of Integer;

Sexo : ARRAY [1..15] of Char;

ARRAY [1..15] significa que agora teremos para a variável Nome quinze variáveis dá variável 1 até a 15:

Nome[1]

Nome[2]

Nome[3]

Nome[4]

...

Nome[15]

Lembre-se que poderiamos usar ARRAY[0..14] que teria 15 variáveis também, mas ao invés de começar do 1 iria começar do 0.

Cadastro de Clientes em Pascal 02.jpg

Vamos ao programa:

 Program Cadastro_de_Clientes;  
 Uses Crt;  
 Type  
  Cadastro = Record  
   Nome : String [40];  
   Idade : Integer;  
   Sexo : Char;  
  End;  
 Var  
  Cliente : Array [1..10] of Cadastro;  
  i : Integer;  
 Begin  
  ClrScr;  
  WriteLn ('Cadastro de Clientes');  
  WriteLn;  
  for i := 1 to 10 do  
  Begin  
   WriteLn ('Cliente No',i);  
   Write ('Nome:'); ReadLn (Cliente[i].Nome);  
   Write ('Idade:'); ReadLn (Cliente[i].Idade);  
   Write ('Sexo:'); ReadLn (Cliente[i].Sexo);  
   WriteLn;  
  End;  
  ReadLn;  
 End.  

O programa melhorou, mas temos que acertar vários detalhes que trabalharemos na próxima etapa.

Gostou? Patrocine o blog!

Read more

8 de novembro de 2011

Cadastro de Clientes em Pascal Parte 1

Trago mais um problema clássico em Pascal onde os professores pedem algo do gênero:

"Crie um programa Pascal que armazene os dados de 5 clientes. O cliente deve ser cadastrado com Nome, Idade e Sexo."

Esse problema clássico pode ser resolvido de várias formas e resolvi dividir essa postagem para que cada pessoa de cada nível de Pascal possa entender as soluções.

Cadastro de Clientes em Pascal 01.jpg

Nesse programa inicial se temos que armazenar cinco clientes nós vamos ter que criar cinco variáveis Nome, cinco Idade e cinco Sexo.

Veja o programa:

 Program Cadastro_de_Clientes_Versao_0;  
 Uses Crt;  
 Var  
  Nome1, Nome2, Nome3, Nome4, Nome5 : String[40];  
  Idade1,Idade2,Idade3,Idade4,Idade5 : Integer;  
  Sexo1,Sexo2,Sexo3,Sexo4, Sexo5 : Char;  
 Begin  
  ClrScr;  
  WriteLn ('Cadastro de Clientes VersÆo 0');  
  WriteLn;  
  WriteLn ('Cliente No.1');  
  Write ('Nome...:'); ReadLn (Nome1);  
  Write ('Idade..:'); ReadLn (Idade1);  
  Write ('Sexo...:'); ReadLn (Sexo1);  
  WriteLn ('Cliente No.2');  
  Write ('Nome...:'); ReadLn (Nome2);  
  Write ('Idade..:'); ReadLn (Idade2);  
  Write ('Sexo...:'); ReadLn (Sexo2);  
  WriteLn ('Cliente No.3');  
  Write ('Nome...:'); ReadLn (Nome3);  
  Write ('Idade..:'); ReadLn (Idade3);  
  Write ('Sexo...:'); ReadLn (Sexo3);  
  WriteLn ('Cliente No.4');  
  Write ('Nome...:'); ReadLn (Nome4);  
  Write ('Idade..:'); ReadLn (Idade4);  
  Write ('Sexo...:'); ReadLn (Sexo4);  
  WriteLn ('Cliente No.5');  
  Write ('Nome...:'); ReadLn (Nome5);  
  Write ('Idade..:'); ReadLn (Idade5);  
  Write ('Sexo...:'); ReadLn (Sexo5);  
  ReadLn;  
 End.  

Essa é a estrutura mais simples para fazermos isso, mas imagine se você tiver que cadastrar 50 clientes, como iria ficar o programa?

Na próxima parte vamos melhorar o programa dê modo a poder cadastrar quantos clientes forem necessários.

Read more

Como Trocar de Redes Sem Ficar Alterando o IP Toda Hora

Como é um blog eu seria desonesto em não colocar aqui as minhas experiências e necessidades e por isso eu trago um programa essencial para mim, pois como muitos sabém eu tenho uma vida bem agitada.

NetSetMan.jpg

O programa se chama NetSetMan onde é possível trocar de rede sem ficar fazendo toda aquela configuração manual toda hora. O programa permite você configurar 6 redes diferentes e inclui DNS, WINS, Grupo de Trabalho, Domínio e mais legal de tudo isso: tem versão em português.

Compatibilidade: Windows 2000, 2003, XP, Vista, 2008 e 7

Licença: Freeware para uso não comercial

Idioma: Tem Português Brasil e Portugal

Link: http://www.netsetman.com/index.php?s=nsm

Download: http://www.netsetman.com/dl/netsetman.exe

Read more

3 de novembro de 2011

Cuidado com Link Falso de uma Suposta Promoção Cielo de 20000 Reais e Fatura Zero

Os black hackers que me perdoem, mas da mesma forma que eles tentam pegar as pessoas eu vivo jogando rede para descobrir as atividades deles.

Mais uma pegadinha de email falso e agora é com a Cielo e uma promoção para você concorrer a R$ 20.000,00 e Fatura Zero.

A promoção é falsa! As promoções da Cielo estão no site da Cielo.

Modelo do e-mail (removido os links):

Caso as imagens não apareçam, CLIQUE AQUI, ou clique em "Exibir Imagens"

Você acaba de ter a grande oportunidade de participar da promoção Dois Passos do Paraíso Cielo

participando desta promoção você estara concorrendo a milhares de prêmios

sorteados todos os dias, a R$ 20.000 Mil Reais sorteados semanalmente e ainda FATURA ZERO. Para declarar

sua participação você precisa apenas clicar na maquina CIELO abaixo e preencher o cadastro em seguida.

*Vale lembrar que toda vez que usar o seu cartão, você acumula pontos e concorre a premios na hora !

Boa Sorte

Equipe Promocional Cielo - Nada Supera essa Maquina

Read more

  ©Template by Dicas Blogger.

TOPO