29 de maio de 2012

Silvio Santos Perde as Calças na Televisão

Se fosse qualquer outra pessoa poderia se mico, mas Silvio Santos faz show com isso.

Read more

21 de maio de 2012

Cadastro de Clientes em Pascal

Um leitor me passou a seguinte dúvida em Pascal:

“Elabore um programa de cadastro de clientes cujos dados devem ser salvos em um arquivo texto.

Exemplo:

assign(arq,’MariaSilva12345.txt’);

ou

assign(arq,’MariaSilva12345_JoaoSouza5…

Deve ser seguida a estrutura de dado conforme ilustra a figura 1:

O programa deve permitir:

1. Incluir novo cliente;

2. Pesquisar por um cliente e mostrar;

3. Alterar dados de determinado cliente;

4. Excluir cliente;

5. Mostrar total de clientes cadastrados.

Para cada opção de operação, faça um subprograma.

As operações definidas nos itens 1, 3 e 4 devem ser gravadas no arquivo.”

Vamos a solução:

 Program Cadastro_de_Clientes;  
 Uses Crt;  
 Var  
  arq : Text;  
  s : String;  
  o : Byte;  
  codigo : String [5];  
  nome : String [50];  
  tname : String [40];  
  logradouro : String [50];  
  numero : String [10];  
  cidade : String [25];  
  email : String [30];  
  telefone : String [15];  
  celular : String [15];  
  quant : Text;  
 Procedure Incluir;  
 var  
  i, j : Integer;  
 Begin  
  WriteLn ('Incluir');  
  WriteLn;  
  WriteLn ('Cliente');  
  WriteLn;  
  Write ('Codigo:'); ReadLn (codigo);  
  Write ('Nome..:'); ReadLn (nome);  
  WriteLn;  
  WriteLn ('Endereco');  
  WriteLn;  
  Write ('Logradouro:'); ReadLn (logradouro);  
  Write ('Numero....:'); ReadLn (numero);  
  Write ('Cidade....:'); ReadLn (cidade);  
  WriteLn;  
  WriteLn ('Contato');  
  WriteLn;  
  Write ('E-mail..............:'); ReadLn (email);  
  Write ('Telefone residencial:'); ReadLn (telefone);  
  Write ('Celular.............:'); ReadLn (celular);  
  // Remove Espacos  
  tname := nome;  
  while pos(' ',tname)<>0 do delete (tname,pos(' ',tname),1);  
  // Grava os dados  
  Assign (arq,tname+codigo);  
  ReWrite (arq);  
  WriteLn (arq,codigo);  
  WriteLn (arq,nome);  
  WriteLn (arq,logradouro);  
  WriteLn (arq,numero);  
  WriteLn (arq,cidade);  
  WriteLn (arq,email);  
  WriteLn (arq,telefone);  
  WriteLn (arq,celular);  
  Close (arq);  
  // Le a quantidade de registros  
  Assign (quant,'quantidade.txt');  
  Reset (quant);  
  ReadLn (quant,s);  
  val (s,i,j);  
  Close (quant);  
  // Soma 1 e grava  
  i := i + 1;  
  Assign (quant,'quantidade.txt');  
  ReWrite(quant);  
  Str(i,s);  
  WriteLn (quant,s);  
  Close (quant);  
 End;  
 Procedure Pesquisar;  
 Begin  
  WriteLn ('Pesquisar');  
  WriteLn;  
  Write ('Codigo:'); ReadLn (codigo);  
  Write ('Nome..:'); ReadLn (nome);  
  // Remove Espacos  
  tname := nome;  
  while pos(' ',tname)<>0 do delete (tname,pos(' ',tname),1);  
  Assign (arq,tname+codigo);  
  {$I-}  
  Reset (arq);  
  if IORESULT()<>0 then  
  Begin  
   WriteLn ('Cliente nao encontrado!');  
   ReadLn;  
  End  
  Else  
  Begin  
   WriteLn ('Cliente');  
   WriteLn;  
   ReadLn (arq,codigo);  
   WriteLn ('Codigo:',codigo);  
   ReadLn (arq,nome);  
   WriteLn ('Nome..:',nome);  
   WriteLn;  
   WriteLn ('Endereco');  
   WriteLn;  
   ReadLn (arq,logradouro);  
   WriteLn ('Logradouro:',logradouro);  
   ReadLn (arq,numero);  
   WriteLn ('Numero....:',numero);  
   ReadLn (arq,cidade);  
   WriteLn ('Cidade....:',cidade);  
   WriteLn;  
   WriteLn ('Contato');  
   WriteLn;  
   ReadLn (arq,email);  
   WriteLn ('E-mail..............:',email);  
   ReadLn (arq,telefone);  
   WriteLn ('Telefone residencial:',telefone);  
   ReadLn (arq,celular);  
   WriteLn ('Celular.............:',celular);  
   Close (arq);  
   ReadLn;  
  End;  
  {$I+}  
 End;  
 Procedure Alterar;  
 Begin  
  WriteLn ('Alterar');  
  WriteLn;  
  Write ('Codigo:'); ReadLn (codigo);  
  Write ('Nome..:'); ReadLn (nome);  
  // Remove Espacos  
  tname := nome;  
  while pos(' ',tname)<>0 do delete (tname,pos(' ',tname),1);  
  Assign (arq,tname+codigo);  
  {$I-}  
  Reset (arq);  
  if IORESULT()<>0 then  
  Begin  
   WriteLn ('Cliente nao encontrado!');  
   ReadLn;  
  End  
  Else  
  Begin  
   WriteLn ('Cliente');  
   WriteLn;  
   ReadLn (arq,codigo);  
   WriteLn ('Codigo:',codigo);  
   ReadLn (arq,nome);  
   WriteLn ('Nome..:',nome);  
   WriteLn;  
   WriteLn ('Endereco');  
   WriteLn;  
   ReadLn (arq,logradouro);  
   WriteLn ('Logradouro:',logradouro);  
   ReadLn (arq,numero);  
   WriteLn ('Numero....:',numero);  
   ReadLn (arq,cidade);  
   WriteLn ('Cidade....:',cidade);  
   WriteLn;  
   WriteLn ('Contato');  
   WriteLn;  
   ReadLn (arq,email);  
   WriteLn ('E-mail..............:',email);  
   ReadLn (arq,telefone);  
   WriteLn ('Telefone residencial:',telefone);  
   ReadLn (arq,celular);  
   WriteLn ('Celular.............:',celular);  
   Close (arq);  
   WriteLn;  
   WriteLn ('Cliente');  
    WriteLn;  
    Write ('Codigo:'); ReadLn (codigo);  
    Write ('Nome..:'); ReadLn (nome);  
    WriteLn;  
    WriteLn ('Endereco');  
    WriteLn;  
    Write ('Logradouro:'); ReadLn (logradouro);  
    Write ('Numero....:'); ReadLn (numero);  
    Write ('Cidade....:'); ReadLn (cidade);  
    WriteLn;  
    WriteLn ('Contato');  
    WriteLn;  
    Write ('E-mail..............:'); ReadLn (email);  
    Write ('Telefone residencial:'); ReadLn (telefone);  
    Write ('Celular.............:'); ReadLn (celular);  
    // Remove Espacos  
    tname := nome;  
    while pos(' ',tname)<>0 do delete (tname,pos(' ',tname),1);  
    // Grava os dados  
    Assign (arq,tname+codigo);  
    ReWrite (arq);  
    WriteLn (arq,codigo);  
    WriteLn (arq,nome);  
    WriteLn (arq,logradouro);  
    WriteLn (arq,numero);  
    WriteLn (arq,cidade);  
    WriteLn (arq,email);  
    WriteLn (arq,telefone);  
    WriteLn (arq,celular);  
    Close (arq);  
  End;  
  {$I+}  
 End;  
 Procedure Excluir;  
 var  
  confirma : String[1];  
  i,j : Integer;  
 Begin  
  WriteLn ('Excluir');  
  WriteLn;  
  Write ('Codigo:'); ReadLn (codigo);  
  Write ('Nome..:'); ReadLn (nome);  
  // Remove Espacos  
  tname := nome;  
  while pos(' ',tname)<>0 do delete (tname,pos(' ',tname),1);  
  Assign (arq,tname+codigo);  
  {$I-}  
  Reset (arq);  
  if IORESULT()<>0 then  
  Begin  
   WriteLn ('Cliente nao encontrado!');  
   ReadLn;  
  End  
  Else  
  Begin  
   WriteLn ('Cliente');  
   WriteLn;  
   ReadLn (arq,codigo);  
   WriteLn ('Codigo:',codigo);  
   ReadLn (arq,nome);  
   WriteLn ('Nome..:',nome);  
   WriteLn;  
   WriteLn ('Endereco');  
   WriteLn;  
   ReadLn (arq,logradouro);  
   WriteLn ('Logradouro:',logradouro);  
   ReadLn (arq,numero);  
   WriteLn ('Numero....:',numero);  
   ReadLn (arq,cidade);  
   WriteLn ('Cidade....:',cidade);  
   WriteLn;  
   WriteLn ('Contato');  
   WriteLn;  
   ReadLn (arq,email);  
   WriteLn ('E-mail..............:',email);  
   ReadLn (arq,telefone);  
   WriteLn ('Telefone residencial:',telefone);  
   ReadLn (arq,celular);  
   WriteLn ('Celular.............:',celular);  
   Close (arq);  
   Repeat  
    Write ('Confirma apagar (S/N)?');  
    ReadLn (confirma);  
   Until (confirma='S') or (confirma='N');  
   if confirma='S' then  
   begin  
    Assign (arq, tname+codigo);  
    Erase (arq);  
    // Le a quantidade de registros  
    Assign (quant,'quantidade.txt');  
    Reset (quant);  
    ReadLn (quant,s);  
    val (s,i,j);  
    Close (quant);  
    // diminui 1 e grava  
    i := i - 1;  
    Assign (quant,'quantidade.txt');  
    ReWrite(quant);  
    Str(i,s);  
    WriteLn (quant,s);  
    Close (quant);  
   end;  
   ReadLn;  
  End;  
  {$I+}  
 End;  
 Procedure Quantidade;  
 Var  
  s : String;  
 Begin  
  Assign (quant,'quantidade.txt');  
  Reset (quant);  
  ReadLn (quant,s);  
  Close (quant);  
  WriteLn ('Ha ',s,' registro(s)!');  
  ReadLn;  
 End;  
 Begin  
  Assign (quant,'quantidade.txt');  
  {$I-}  
  Reset (quant);  
  if IORESULT()<>0 then  
  Begin  
  {$I+}  
   ReWrite (quant);  
   WriteLn (quant,'0');  
  End;  
  Close (quant);  
  o := 0;  
  Repeat  
   ClrScr;  
   WriteLn ('Cadastro de Clientes');  
   WriteLn;  
   WriteLn ('1. Incluir');  
   WriteLn ('2. Pesquisar');  
   WriteLn ('3. Alterar');  
   WriteLn ('4. Excluir');  
   WriteLn ('5. Quantidade de Clientes');  
   WriteLn ('0. Sair');  
   WriteLn;  
   ReadLn (o);  
   Case o of  
    1 : Incluir;  
    2 : Pesquisar;  
    3 : Alterar;  
    4 : Excluir;  
    5 : Quantidade;  
   End;  
  Until o =0;  
 End.  
Read more

12 de maio de 2012

Editor PDF Gratuito é Wondershare PDF Editor

Wondershare PDF Editor

Quantas vezes você não quis editar algo em um arquivo PDF?

O Adobe Acrobat é caro e vários outros editores também.

Agora trago o Wondershare PDF Editor onde permitir editar e converter seus arquivos PDF. Ele pode editar todo o documento, não só anotações.

Ainda tem a possibilidade de converter de PDF para Word.

Após instalar, desinstale a barra do ASK para não ficar incomodando.

Wondershare PDF Editor Screen

Compatibilidade: MAC, Windows XP, Vista e 7

Licença: Freeware

Link: http://www.wondershare.com/pdf-editor/

Download:

Windows: http://download.wondershare.com/pdf-editor_full1042.exe

Mac (Free Trial):

http://download.wondershare.com/mac-pdf-editor_full738.dmg

Read more

Papel de Parede Anti Wireless

Não só no Brasil, mas em alguns países o longo alcance de um roteador Wireless pode ser um problema, pois além de interferir em outros roteadores, os seus vizinhos podem querer usar ou bisbilhotar a sua rede Wireless.

Vale lembrar que alguns roteadores têm funções capazes de reduzir a potência.

Mas, além disso de acordo com ITProPortal foi desenvolvido uma papel de parede que bloqueia sinais WI-FI. Foi desenvolvido por cientistas do Instituto Politécnico de Grenoble (França) e do Centre Technique Du Papier.

O papel de parede contém partículas de prata que pelo padrão é capaz de filtrar três frequências de rádio simultaneamente.

A primeira tentativa a alguns anos atrás gerou um papel de custo em torno de 620 euros o metro quadrado, já essa nova versão tem o custo similar a um papel de parede de mesma espessura.

A previsão de venda é para 2013 assim que a empresa adquirir a licença.

papel_de_parede_wireless

Read more

5 de maio de 2012

Diablo III já está sendo vendido

Finalmente depois de longa espera e promessas contínuas o jogo Diablo III foi lançado e já se encontra em pré-venda. Em várias lojas você já pode encomendar.

A previsão é para o dia 07 de junho de 2012.

Para pré-venda tem camiseta extra e versão em português.

vitrine_diabloIII

Em Curitiba o Link das Livrarias Curitiba para comprar:

http://www.livrariascuritiba.com.br/listgroup.aspx?idlistgroup=diblo%20iii

Read more

1 de maio de 2012

Freeware para Diagnóstico de Disco Rígido

Continuando o post anterior, vou apresentar um software para verificar se o disco rígido já apresenta algum defeito.

O software CrystalDiskInfo é capaz de fazer o diagnóstico do disco rígido que suportam o S.M.A.R.T. e parte dos disco rígidos externos (USB-HDD).

Compatibilidade: Windows XP em diante

Licença: Freeware

Link: http://crystalmark.info/software/CrystalDiskInfo/index-e.html

Download: http://crystalmark.info/download/index-e.html#CrystalDiskInfo

Instalável:http://release.crystaldew.info/redirect.php?product=CrystalDiskInfoSetupEn

Read more

Quando Devemos Trocar um Disco Rígido

O disco rígido tem uma vida útil e como é um disco físico e de metal girando com um motor elétrico, depois de certo tempo o seu funcionamento pode falhar, mas quando é a hora certa para essa troca?

Se o disco rígido falhar e dentro dele tiver dados importantes que você não fez backup, você irá gastar um bom dinheiro para recuperar os dados (mais de R4 1.000,00).

Hard Disk Assembly

Então como se precaver?

Primeiro, sempre faça backups regularmente em um DVD ou em um disco rígido externo.

Segundo, tem vários programas que fazer a avaliação do seu disco rígido e vai dizer o status dele. Em alguns computadores ao ligar o aviso é imediato desde que esteja habilitado o S.M.A.R.T na BIOS do seu computador.

Se tanto o programa ou a BIOS acusarem que há uma falha no seu disco rígido, o meu conselho é que o quanto antes vá a uma loja de informática e já compre outro disco rígido e faça a migração de um disco para o outro.

Read more

27 de abril de 2012

Aceitar Só Números e Limitar a Quantidade de Números em Pascal

Com a dúvida de um leitor eu resolvi fazer uma versão completa para que ao receber um dado numérico, só aceite números e que tenha um limite de números.

Isso é muito bem aplicado, pois em um programa Pascal se você inserir uma letra em um programa que estava esperando um número o programa será interrompido.

Não descobri ainda uma solução simples, pois o controle tem de ser total do programa.

Pascal Numeros Limite

É claro que podemos colocar esse programa em uma função que facilita bastante em aplicações maiores.

Alguns já vão dizer: Para que tanto esforço para uma coisa dessas em Pascal?

Eu explico que: Esse programa é aplicado a várias outras liguagens de programação e é pela própria origem dos objetos do Windows.

Vamos ao programa:

 Program NUMERO_LIMITADO;  
 Uses Crt;  
 Const  
  algarismos = ['0'..'9'];  
  backspace = chr(8);  
  enter = chr(13);  
 Var  
  tecla : Char;  
  resultado : String;  
  digitos : Byte;  
  numero : Integer;  
  erro : Integer;  
 Begin  
  ClrScr;  
  resultado := '';  
  Write ('Entre com um numero de 6 digitos:');  
  digitos := 0;  
  repeat  
   repeat  
    tecla := ReadKey;  
   until (tecla in algarismos) or (tecla=backspace) or (tecla=Enter);  
   if digitos < 6 then  
   if (tecla in algarismos) then  
   Begin  
    resultado := resultado + tecla;  
    Write (tecla);  
    digitos := digitos + 1;  
   End;  
   if (tecla = Backspace) then  
   Begin  
    if (digitos > 0) then  
    Begin  
     gotoXY (wherex-1,wherey);  
     clreol;  
     delete(resultado,Length(resultado),1);  
     digitos := digitos - 1;  
    End;  
   End;  
  until (digitos = 6) and (tecla = Enter);  
  WriteLn;  
  WriteLn ('Resultado:',Resultado);  
  ReadLn;  
 End.  

Qualquer dúvida entre em contato.

Read more

  ©Template by Dicas Blogger.

TOPO