quarta-feira, 29 de fevereiro de 2012

Trabalhando com variaveis homogeneas bi dimensionais.


import javax.swing.JOptionPane;
public class UsandoMatriz {
    public static void main(String[] args) {
       int lin = Integer.parseInt(JOptionPane.showInputDialog(null,"Informe a quantidade   de linha da Matriz."));
       int col = Integer.parseInt(JOptionPane.showInputDialog(null,"Informe a quantidade   de coluna da Matriz."));
       int matriz[][] = new int[lin][col];
      
   for (int i=0; i<lin; i++)
         for (int j=0; j<col; j++)
             matriz[i][j] = Integer.parseInt(JOptionPane.showInputDialog(   null,"Digite o valor da posição["+(i+1)+(j+1)+"]","MATRIZ",1));
      
  System.out.println("Matriz Digitada.");
      
  for (int i=0; i<lin; i++){
  System.out.println();
         for (int j=0; j<col; j++)
             System.out.print(matriz[i][j] + "\t");
       }
    }
}

terça-feira, 28 de fevereiro de 2012

Exercicio em sala de aula


public class Quadrado {
   public static void main (String args[ ])     {
         if (args.length < 1)  {
               System.out.println("Informe um numero menor ou igual 50");
               System.out.println("e sera calculado o quadrado dos numeros");
               System.out.println("entre 1 e o numero informado\n");
               System.exit(0);
         }
         // conversao de String para inteiro (outra maneira !)
         Integer x = new Integer(args[0]);
         int a = x.intValue();
         if (a > 50)   {
               System.out.println("O numero deve ser menor que 50");
               System.exit(0);
         }
         for (int i=1;  i<=a;  i++)
                System.out.println ("O quadrado de " + i + " = " + i*i);
   }
}

terça-feira, 21 de fevereiro de 2012

Como ganhar dinheiro com programas de computador?

Explorando Nichos de Mercado no Desenvolvimento de Programas de Computador

Quando falamos em desenvolvimento de software, é comum pensar em aplicações voltadas para o comércio. Sem dúvida, esse é um nicho lucrativo, mas também altamente competitivo. Grandes empresas, como SAP, TOTVS, MICROSIGA e SANKHYA, já dominam o mercado corporativo de soluções para grandes e médias empresas. Portanto, para um desenvolvedor ou empreendedor iniciante, competir nesse terreno pode ser desafiador. Mas, como sempre digo aos meus alunos: o segredo para ganhar dinheiro não é fazer o que a maioria faz, mas fazer algo único, bem feito e com qualidade.

Escolha Bem Seus Clientes e Documente Seus Projetos

Antes de iniciar qualquer projeto, selecione bem seus clientes. Uma boa referência pode se transformar em uma grande dor de cabeça se as expectativas não estiverem claras desde o início. Comece com pequenos trabalhos, garantindo constância e produtividade. Mais importante ainda, documente cada etapa do processo. Durante o desenvolvimento, é comum que clientes solicitem alterações ou novas funcionalidades que podem comprometer prazos e custos. Ter tudo documentado facilita justificar mudanças de escopo, prazos adicionais e ajustes de valor.

Além disso, demonstre como o sistema que você está desenvolvendo pode trazer ganhos financeiros ao cliente. Infelizmente, muitos empresários ainda priorizam investimentos visíveis, como veículos de luxo, em vez de soluções tecnológicas que podem gerar lucros significativos no médio e longo prazo.

Linguagem de Programação: Eficiência e Domínio São Cruciais

A escolha da linguagem de programação pode fazer toda a diferença. Linguagens eficientes e que você domina são essenciais para garantir produtividade e qualidade. Se você for atuar como pessoa jurídica, opte por linguagens com ampla mão de obra disponível no mercado, como Java ou Python. Já como pessoa física, uma boa estratégia pode ser focar em linguagens menos exploradas, mas ainda requisitadas, como COBOL, que, devido à base instalada de sistemas legados, ainda oferece excelentes oportunidades.

Java e COBOL, juntos, podem ser um diferencial competitivo. Muitas grandes empresas estão migrando seus sistemas em COBOL para ambientes Web usando Java, o que cria uma demanda crescente por profissionais com essa combinação de habilidades.

Aplicativos Mobile: Oportunidades no Crescimento da Mobilidade

Outro nicho promissor é o desenvolvimento de aplicativos para dispositivos móveis. Com o crescimento do Android, que se consolidou como um dos sistemas operacionais mais utilizados, há inúmeras histórias de desenvolvedores que lucraram com apps simples, vendidos por valores acessíveis e com alta taxa de downloads.

Os usuários de smartphones trocam de dispositivos com frequência e buscam cada vez mais soluções que facilitem o dia a dia. Aplicativos que ajudam na gestão financeira, como lembretes de contas a pagar e a receber, ou que otimizam deslocamentos, como sistemas de rotas alternativas com integração a GPS e câmeras de trânsito, são exemplos de produtos com grande potencial de mercado.

Identifique Necessidades do Século 21

O mundo da programação está cheio de oportunidades, muitas delas ainda inexploradas. Para se destacar, é essencial buscar capacitação contínua, identificar necessidades humanas contemporâneas e pensar além do óbvio. Como diz Alvin Toffler em A Terceira Onda, o mercado de trabalho está mudando radicalmente, e a capacidade de inovar será um diferencial crucial.

Invista em criatividade, planejamento e na construção de soluções tecnológicas que realmente façam a diferença na vida das pessoas. Lembre-se: as portas do mercado de tecnologia estão abertas para aqueles que conseguem enxergar além.

quarta-feira, 15 de fevereiro de 2012

Um calculadora com bugs, mas boa de aprender C#


Como Criar uma Calculadora em C# Semelhante à do Windows: Tutorial Completo

Se você está aprendendo C# e deseja criar algo prático e funcional, desenvolver uma calculadora semelhante à do Windows é um excelente exercício. Neste tutorial, mostrarei um exemplo funcional de uma calculadora com interface gráfica, utilizando o WPF (Windows Presentation Foundation). Este projeto é perfeito para quem quer aprimorar habilidades em desenvolvimento de aplicações desktop.


O Código

Abaixo estão as implementações para os arquivos necessários:

1. MainWindow.xaml

Este é o arquivo de layout, responsável pela interface da calculadora. Incluímos botões para números, operações básicas e outras funcionalidades, como raiz quadrada e inversão de sinal.

<Window x:Class="Calculadora.MainWindow"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        Title="Calculadora" Height="404" Width="426" Background="#FFEBE5E5" WindowStyle="ThreeDBorderWindow">

    <Grid Width="358">

        <Button Content="7" Height="28" HorizontalAlignment="Left" Margin="91,127,0,0" Name="sete" VerticalAlignment="Top" Width="37" Click="sete_Click" />

        <TextBox Height="53" HorizontalAlignment="Right" Margin="0,34,54,0" Name="display" VerticalAlignment="Top" Width="213" FontFamily="Arial" FontSize="28" HorizontalContentAlignment="Right" />

        <!-- Botões para números, operações e funcionalidades -->

    </Grid>

</Window>

2. MainWindow.xaml.cs

Aqui está a lógica por trás da calculadora. Cada botão chama um método que realiza a operação correspondente. Por exemplo, ao clicar no botão "7", o número é exibido no display.

using System;

using System.Windows;


namespace Calculadora

{

    public partial class MainWindow : Window

    {

        double acumula = 0;

        string operacao = "";


        public MainWindow()

        {

            InitializeComponent();

        }


        private void sete_Click(object sender, RoutedEventArgs e)

        {

            display.Text += "7";

        }


        private void soma_Click(object sender, RoutedEventArgs e)

        {

            acumula += double.Parse(display.Text);

            display.Text = "";

            operacao = "+";

        }


        private void igual_Click(object sender, RoutedEventArgs e)

        {

            if (operacao == "+")

            {

                acumula += double.Parse(display.Text);

                display.Text = acumula.ToString();

            }

        }

        // Outros métodos...

    }

}


terça-feira, 14 de fevereiro de 2012

Listagem de Produtos em C#


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Arrayprodutos
{
    class Program
    {
        static void Main(string[] args)
        {
            string[,] produto = new string[10, 2];
            double[,] estoque = new double[10, 2];
            for (int i = 0; i < 10; i++)
            {
                Console.Write("Nome ....: ");
                produto[i, 0] = Console.ReadLine();
                Console.Write("Unidade..: ");
                produto[i, 1] = Console.ReadLine();
                Console.Write("Pr. Unit.: ");
                estoque[i, 0] = double.Parse(Console.ReadLine());
                Console.Write("Qtd Estoq: ");
                estoque[i, 1] = double.Parse(Console.ReadLine());                
            }
            for (int i = 0; i < 10; i++)
            {
                Console.Write("Nome ....: "+produto[i, 0]);
                Console.Write("Total Est. : "+(estoque[i, 0]*estoque[i, 1]));
            }
        }
    }
}

Correção exercicio de C# para calculo das médias.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace estudantes
{
    class medias
    {
        static void Main(string[] args)
        {
            string[] nome = new string[10];
            double[,] notas = new double[10, 5];
            string[] colunas = new string[6]
            {"\nnome","nota-1","nota-2","nota-3","nota-4","média" };
            for (int i = 0; i < 10; i++)
            {
                Console.Write(colunas[0]);
                nome[i] = Console.ReadLine();
                for (int k = 0; k < 4; k++)
                {
                    Console.Write(colunas[k + 1]);
                    notas[i, k] = double.Parse(Console.ReadLine());
                    notas[i, 4] += notas[i, k] / 4;
                }
            }
            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine(colunas[0]+nome[i]);
                for (int k = 0; k < 5; k++)
                {
                    Console.WriteLine(colunas[k + 1] + notas[i, k]);
                }
                if (notas[i, 4] >= 7) {
                    Console.WriteLine("Situação : Aprovado");
                }
                else if (notas[i, 4] >= 5 && notas[i, 4] < 7)
                {
                    Console.WriteLine("Situação : Prova final");
                }
                else {
                    Console.WriteLine("Situação : Reprovado");
                }              
            }
        }
    }
}

Demonstração de Array bi dimensional

O programa abaixo escrito na linguagem C#(C SHARP ) demonstra como usar um ARRAY bi dimensional. Definimos dois Arrays, sendo um bi dimensional e um VETOR. o ARRAY tabela define a estrutura de armazenamento e o colunas define o rotulo de cada coluna.
Forte abraço e até a próxima.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ArraysBiDimensionais
{
    class Entradados
    {
        static void Main(string[] args)
        {
            string[,] tabela = new string[10, 3];
            string[] colunas=new string[3]
                     {"Produto : ","Unidade : ","Valor  : "};
            for (int i = 0; i < 10; i++)
            {
                for (int k = 0; k < 3; k++)
                {
                    Console.Write(colunas[k]);
                    tabela[i, k] = Console.ReadLine();
                }
            }
            for (int k = 0; k < 3; k++)
            {
                Console.Write(colunas[k] + "***** ");
            }
            Console.WriteLine(" ");
            for (int i = 0; i < 10; i++)
            {
                for (int k = 0; k < 3; k++)
                {
                    Console.Write(tabela[i, k] + "***** ");
                }
                Console.WriteLine(" ");            
            }
            Console.ReadKey();
        }
    }
}

segunda-feira, 13 de fevereiro de 2012

Calculo das raizes da equação do 2º Grau em C#


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Matematica
{
    class Program
    {
        static void Main(string[] args)
        {
            double a, b, c, d, x1, x2;
            Console.WriteLine("Equação 2º Grau");
            Console.Write(" Valor de a : ");
            a = double.Parse(Console.ReadLine());

            Console.Write(" Valor de b : ");
            b = double.Parse(Console.ReadLine());

            Console.Write(" Valor de c : ");
            c = double.Parse(Console.ReadLine());
            Console.WriteLine(a + "x² + " + b + "x + " + c + "=0");
            d = b * b - 4 * a * c;
            if (d > 0) {
                Console.WriteLine("Existem duas raizes reais");
                x1 = (-b + Math.Sqrt(d)) / (2 * a);
                x2 = (-b - Math.Sqrt(d)) / (2 * a);
                Console.WriteLine("x'= " + x1);
                Console.WriteLine("x''= " + x2);
            }
            else if (d == 0)
            {
                Console.WriteLine("Existem duas raizes reais e iguais.");
                x1 = -b / (a * 2);
                Console.WriteLine("x'=x''= " + x1);
            }
            else {
                Console.WriteLine("Nao existem raizes reais");
            }
            Console.ReadKey();

        }
    }
}

terça-feira, 7 de fevereiro de 2012

Programar é um exercício de paciência e disciplina.

Há quem diga que programar é fácil. É uma tese difícil de ser dita como verdadeira. Não quero desmotivar meus leitores quanto menos meus alunos, mas programar é uma arte disciplinar.
Quando programamos colocamos nosso cérebro no modo de pensamento em que devemos abstrair, sincronizar, interagir, testar, observar comportamentos e claro fazer alguns cálculos. Toda essa sinergia de pensamento pode ser abalada por um simples tocar de telefone, uma campainha do MSN e a sua filha pedindo lhe atenção para ver uma cachorrinho brincando. Claro que não podemos ficar ligados 24 horas no ar pensando no problema. Brincar com o filho ou a filha faz parte da vida. 
Quando estamos programando também somos professores pois estamos ensinando uma máquina fazer o que desejamos. Se devemos agir como professores então devemos planejar corretamente como vamos abordar o problema para obter o comportamento correto.  Além disso devemos pensar na capacidade de processamento e também qual é a saída desejada. Por essa razão devemos ter cuidados especiais neste momento pois o computador faz tudo o que pedimos ao pé da letra. Ter lucidez ao fazer uma linha de código é um exercício diário de paciência e disciplina. Acredito que as duas andam juntas. 
A paciência é o ato de acompanhar passo a passo o que cada linha de código retorna. A disciplina usamos quando observamos o comportamento do programa. Captar o que um programa faz as vezes não é uma tarefa simples pois os códigos podem ocultar informações que nos enganam quando a procedência e como foram gerados levando a conclusões errôneas e dai um tempo perdido pode vir acontecer. O pensamento matemático o ajudará na eliminação de código redundante e também alcançar a eficiência de desempenho.  Desta forma colocada podemos afirmar que paciência e disciplina andam juntas nesta arte pois uma dará suporte a outra a medida que avançamos na construção de um código.



quinta-feira, 2 de fevereiro de 2012

COBOL? Nao morreu!

Muitas pessoas me perguntam:  Ainda hoje o COBOL é usado? Eu começo esse artigo repetindo um brincadeira dos profissionais que lidam com essa ferramenta: "Se houver um holocausto nuclear apenas duas coisas sobreviveriam, são elas, baratas e cobol.". Claro que há um grande absurdo nisso, mas essa discussão não seria frutífera aqui. Dizemos isso porque várias vezes falaram por ai que a linguagem estaria morta e que seria necessário migrar para outra linguagem, mas o que presenciei foi um ressurgimento da linguagem cada vez mais melhorada. Talvez no inicio dos anos 60 a CODASYL(Conference on Data Systems Languages) não tivesse essa pretensão. 
Hoje a linguagem de programação COBOL é bastante utilizada em diversos seguimentos, bancos, hotéis, supermercados e muitos outros estabelecimentos sejam comerciais ou governamentais. 
A migração de plataforma de banco de dados e de sistema operacional é uma opção hoje em dia quando  alguém que não tem experiência com a linguagem e quer mudar de sistema. Mas a confiabilidade em novo sistema pode trazer alguns transtornos para a organização e consequentemente afetam as suas operações no dia a dia. Estes transtornos trazem a antiga aplicação uma certa confiabilidade e estabilidade.
E isso faz o COBOL uma linguagem que vem atravessando mais de 50 anos como ferramenta de desenvolvimento de aplicações. Esta confiabilidade foi obtida através dos primeiros anos da linguagem, época em que houve um boooom na adoção de computadores e consequentemente a necessidade de desenvolver programas confiáveis  no começo dos anos 70 e 80, sendo reforçada pela inclusão dos PC's(personal Computers) introduzidos no começo dos anos 80. De la para cá tem se criado muitas linguagens de programação mas a migração as vezes não é bem sucedida. 
Mas a linguagem não ficou parada neste período, sendo atualizada varias vezes pelo CODASYL e por várias empresas que desenvolveram compiladores e também IDE(Ambiente de desenvolvimento Integrado) a fez manter atualizada com os paradigmas de programação atualmente em voga no mercado. Podemos destacar estes paradigmas como orientação a objeto e GUI (Graphical User Interfaces). 
Hoje o COBOL encontramos sistemas desenvolvidos para Windows 32 e 64 bits, ambiente Linux, Unix e claro não poderia deixar de citar, o Main Frame, bem como ferramentas de desenvolvimento de relatórios.
Você pode que trabalha na área ou esta entrando agora pode se perguntar, quem usa cobol para desenvolver, talvez pequenas e medias empresa não usem por serem muito novas em relação a idade do cobol mas empresas que sobreviveram aos últimos cinquenta anos, certamente adotou, adota ou mantém sistemas em COBOL. Os bancos e grandes corporações se utilizam destes sistemas. Talvez não esteja ao seu alcance se você estiver pensando em morar na sua cidade e trabalhar, mas estiver sintonizado com o mercado e tiver disponibilidade poderá ver essa tendência. Os dinossauros(nos programadores de quase 60 anos) estão se retirando e ainda há muitos sistemas por ai para dar manutenção ou desenvolver. Pense! Ganha dinheiro na área de informatica quem faz algo diferente da maioria.
Fiquem todos com Deus e um forte abraço a todos, obrigado.

quarta-feira, 1 de fevereiro de 2012

Listagem de clientes na tela com opção de editar.


       identification division.
       program-id. listaClientes.
       author. jorgefox.
       environment division.
         configuration section.
         input-output section.
           file-control.
             select clientes assign to "clientes.dat"
             organization is indexed
             access mode is dynamic
             record key is codigo
             alternate key is nome with duplicates
             file status is fs-clientes.
       data division.
         file section.
           fd clientes.
             01 registro-clientes.
                02 codigo              pic 9999.
                02 nome                pic x(50).
                02 data-nas.
                   03 dia-nas             pic 99.
                   03 mes-nas             pic 99.
                   03 ano-nas             pic 9999.
                02 telefone               pic x(30).
                02 endereco               pic x(50).
                02 numero                 pic 9(6).
                02 complemento            pic x(30).
                02 bairro                 pic x(30).
                02 cidade                 pic x(30).
                02 cep                    pic x(8).
                02 estado                 pic AA.
                02 email                  pic x(50).
       working-storage section.
          01 fs-clientes.
             02 fs-clientes-1            pic 9.
             02 fs-clientes-2            pic 9.
             02 fs-cliente-r redefines fs-clientes-2 pic 99 comp-x.
          77 opcao                       pic x value spaces.
          77 codigop                     pic 9999 values zeros.
          77 linha                       pic 9999 value 0902.
       procedure division.
       abertura.
         open input clientes
         if fs-clientes unequal zero then
            display erase
            display "Erro ao abrir clientes.dat" at 1010 fs-clientes
            accept opcao
            close clientes
            exit program
         else
         display "deu certo"
         accept opcao
         end-if
       .
       inicio.
         display erase
         display "Listagem de clientes" at 0330
         display "+------+----------------------------------------------
      -"----------------+-------+" at 0601
         display "|codigo|                         Nome Cliente
      -"                |Dt Nasc|" at 0701
         display "+------+----------------------------------------------
      -"----------------+-------+" at 0801
         move " " to nome
         start clientes key is not less nome
         if fs-clientes=00 then
            perform imprime
            display "Digite o codigo desejado [....]" at 2201
            accept codigop at 2227
            call "aplicacao" using codigop
            exit program
         else
            display "deu erro " fs-clientes
            accept opcao
         end-if
         close clientes
         exit program
       .
       imprime.
         read clientes next
         perform until fs-clientes<>00
            display codigo at linha
            add 8 to linha
            display nome at linha
            add 61 to linha
            display dia-nas at linha "/"
            add 3 to linha
            display mes-nas at linha "/"
            add 3 to linha
            display  ano-nas at linha
            subtract 76 from linha giving linha
            add 101 to linha
            read clientes next
         end-perform
       .

Como controlar erros de leitura e gravação em cobol

No COBOL há uma forma de fazer a verificação se um arquivo foi aberto corretamente. A principio isso acontece por que como o cobol usa arquivos do tipo texto para armazenar suas informações, e que neste caso, estão sujeitos a corrompimento por vírus ou abertura de forma ilegal.
Para ajudar nessa questão vou postar um link de pagina que o ajudará a determinar qual o problema com a file status.
http://supportline.microfocus.com/documentation/books/sx20books/fhscod.htm#s001
 Caso ocorra um erro busque nesta tabela os erros e suas causas.
[]s a todos

Programa de menu - cobol


       identification division.
       program-id. menu.
       author. jorgefox.
       data division.
       working-storage section.
       77 wopcao          pic 9 value zero.
       screen section.
       01 menu-principal.
          02 blank screen.
          02 line 1 col 1 value "***************************************
      -"************************************".
          02 line 2 col 21 value "Sistema de compra e venda Mercadorias"
      -.
          02 line 3 col 1 value "***************************************
      -"************************************".
          02 line 4 col 33 value "Menu Principal".
          02 line 7 col 10 value "[1] Cadastro Mercadoria".
          02 line 8 col 10 value "[2] Cadastro Cliente".
          02 line 9 col 10 value "[3] Cadastro Vendedor/Comprador".
          02 line 10 col 10 value "[4] Listagem de Mercadoria".
          02 line 11 col 10 value "[5] Listagem de Cliente".
          02 line 12 col 10 value "[6] Sair sistema".
          02 line 15 col 10 "Digite a opção desejada[.]".
          02 opcao line 15 col 34 pic 9 using wopcao auto.
       procedure division.
       inicio.
          display menu-principal
          accept menu-principal
          evaluate wopcao
             when 1
                call "cadmercadoria" using wopcao
                go to inicio
             when 2
                call "aplicacao"
                go to inicio
             when 6
                stop run
             when other
                 go to inicio
          end-evaluate.

Tela de Cadastro de Clientes - Cobol


       identification division.
       program-id. aplic.
       author. jorgefox.
       environment division.
         configuration section.
         input-output section.
           file-control.
             select clientes assign to "clientes.dat"
             organization is indexed
             access mode is dynamic
             record key is codigo
             alternate key is nome with duplicates
             file status is fs-clientes.
       data division.
         file section.
           fd clientes.
             01 registro-clientes.
                02 codigo              pic 9999.
                02 nome                pic x(50).
                02 data-nas.
                   03 dia-nas             pic 99.
                   03 mes-nas             pic 99.
                   03 ano-nas             pic 9999.
                02 telefone               pic x(30).
                02 endereco               pic x(50).
                02 numero                 pic 9(6).
                02 complemento            pic x(30).
                02 bairro                 pic x(30).
                02 cidade                 pic x(30).
                02 cep                    pic x(8).
                02 estado                 pic AA.
                02 email                  pic x(50).
             01 reg-cliente.
                02 wcodigo              pic 9999 values zero.
                02 wnome                pic x(50) values spaces.
                02 wdata-nas.
                   03 wdia-nas             pic 99 values zero.
                   03 wmes-nas             pic 99 values zero.
                   03 wano-nas             pic 9999 values zero.
                02 wtelefone               pic x(30) value spaces.
                02 wendereco               pic x(50) value spaces.
                02 wnumero                 pic 9(6) value zero.
                02 wcomplemento            pic x(30) value spaces.
                02 wbairro                 pic x(30) value spaces.
                02 wcidade                 pic x(30) value spaces.
                02 wcep                    pic x(8) value spaces.
                02 westado                 pic AA value spaces.
                02 wemail                  pic x(50) value spaces.
       working-storage section.
          01 fs-clientes.
             02 fs-clientes-1            pic 9.
             02 fs-clientes-2            pic 9.
             02 fs-cliente-r redefines fs-clientes-2 pic 99 comp-x.
          77 opcao                       pic x value spaces.
       procedure division.
       abertura.
       open i-o clientes.
       inicio.
          display erase
          perform tela
          if opcao="S" or opcao="s" then
             perform grava-dados
             perform limpa-campos
             go to inicio
          else
             go to inicio
          end-if
       .
       tela.
         display "Cadastro de cliente" at 0430
         display "Codigo             : " at 0605
         display "Nome               : " at 0705
         display "Data Nascimento    :   /  /" at 0805
         display "Endereco           : " at 0905
         display "Telelefone         : " at 1005
         display "Numero             : " at 1105
         display "Complemento        : " at 1205
         display "Bairro             : " at 1305
         display "Cidade             : " at 1405
         display "C.E.P              : " at 1505
         display "Estado             : " at 1605
         display "E-mail             : " at 1705
         accept wcodigo at 0625
         if wcodigo = 9999 then
             close clientes
             exit program
         end-if
         accept wnome at 0725
         accept wdia-nas at 0825
         accept wmes-nas at 0828
         accept wano-nas at 0831
         accept wendereco at 0925
         accept wtelefone at 1025
         accept wnumero at 1125
         accept wcomplemento at 1225
         accept wbairro at 1325
         accept wcidade at 1425
         accept wcep at 1525
         accept westado at 1625
         accept wemail at 1725
         display "Dados corretos [S/N] [.]" at 1905
         accept opcao at 1927
         .
       limpa-campos.
           move spaces to reg-cliente.
       grava-dados.
       move reg-cliente to registro-clientes
       write registro-clientes.