Ir para conteúdo
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×

_Guguinha_

Membro Avançado
  • Total de Posts

    29
  • Registro em

  • Última visita

  • WCoins

    0

Posts postados por _Guguinha_

  1. Quando estamos desenvolvendo programas que exigem muitas lihas de código, isso gera uma grande confusão, pois nos obriga em caso de bugs a percorrer algumas linhas, ou então quando vamos modificar uma função, classe ou struct, sempre temos que percorrer aquele código infernal! Para acabar com este tipo de problema típico de programadores como eu, sempre devemos fazer com compilação separada, ou seja, fragmentar o programa em arquivos .h (headers), .cpp, ou raramente .o (Object), isso é útil também em termos de organização, cada um poderá fazer a manutenção do código sem problema nenhum, eu tinha postado um programa interativo aqui, acho que todos sabem de qual eu estou me referindo, o source dele é extremamente gigantesco, e com isso, gera uma lerdeza na compilação e tmb não sabemos onde está nada com nada, ele funciona perfeitamente mas em termos de organização, está um lixo completo hehehehe, mas legal acima de tudo! As chances de um programador experiente e profissional fazer um programa grande sem fragmentá-lo é remota, se isto ocorrer, talvez ele esteja provando que ñ tem capacidade para organizar seu trabalho, e isto poderá desencadear muitos problemas para ele, principalmente financeiros se ele trabalhar em algum lugar respeitado. Bem, através deste tópico mostrarei um exemplo de um programa com compilação separada, AH! vou citar as duas principais razões de ser recomendada a fragmentação do código grande:

     

    1ª Porque demora para compilar um arquivo e parece tolice esperar que o compilador fique traduzindo código que ñ se alterou. Se o seu código estiver distribuído em vários arquivos-fontes, então somente aqueles arquivos que vc alterou necessitam ser recompilados.

     

    2ª A segundo razão se torna aparente quando vc trabalha com outros programadores em uma equipe. Seria bastante difícil para vários programadores editar simultaneamente um único arquivo-fonte. Portanto, o código do programa é particionado de modo que cada programador somente é responsável por um conjunto separado de arquivos.

     

    Deve existir um caminho de comunicação entre os arquivos. Em C++, esta comunicação ocorre através da inclusão de arquivos de cabeçalho (.h). Um arquivo de cabeçalho contém:

     

     

    • definição de constantes
    • definição de classes
    • declarações de funções não-membro
    • declaração de protótipos
    • declaração de variáveis globais

     

    O arquivo-fonte contém:

     

    • definição de funções-membro
    • definições de funções não-membro
    • declaração de protótipos
    • definições de variáveis globais

     

    Permita-me considerar inicialmente um caso simples. Vou criar um conjunto de dois arquivos, b.cpp, c.h, que contém a interface e a implementação da classe Max e da struct Aplicativo.

    O arquivo de cabeçalho contém a definição da classe e da struct. Ele também inclui todos os cabeçalhos que são necessários para definir a classe e a struct. Por exemplo, a classe Max é definida em termos da classe standard vector. Portanto, vc deve incluir o cabeçalho <vector> também, Cada vez que vc inclui um cabeçalho proveniente de biblioteca padrão, vc também deve incluir o comando using namespace std; .

     

    Arquivo c.h

     

    É necessário se cadastrar para acessar o conteúdo.

     

    Observe este estranho conjunto de diretivas de pré-processamento que envolve o arquivo:

     

    É necessário se cadastrar para acessar o conteúdo.

     

    Essas diretivas são uma proteção contra inclusões múltiplas. Suponha que um arquivo inclua c.h e outro arquivo de cabeçalho, que por sua vez inclui c.h. Então o compilador vê a definição de classe duas vezes e ele reclama a respeito de duas classes com o mesmo nome (lamentavelmente, ele ñ verifica se as definições são idênticas).

     

    O arquivo-fonte simplismente contém as definições das funções-membro.

     

    Arquivo b.cpp

     

    É necessário se cadastrar para acessar o conteúdo.

     

    O arquivo b.cpp não contém uma função main.

     

    Aqui está um programa de teste simples que coloca em uso a classe Max e a struct Aplicativo. Seu arquiv-fonte inclui o arquiivo de cabeçalho c.h

     

    Arquivo a.cpp

     

    É necessário se cadastrar para acessar o conteúdo.

     

    Para construir o programa completo. você precisa compilar ambos os arquivos fontes a.cpp e b.cpp. Os detalhes dependem do seu compilador. Por exemplo, com o compilador Gnu, vc usa os comandos

     

    g++ -c a.cpp

    g++ -c b.cpp

    g++ -o a b.o a.o[/b]

     

     

    ufa, que tutorial e tento não? hehe, fui, depois dessa vou descansar! ^^

  2. Todas as linguagens tem seus prós e contras, sempre é bom mais conteúdo em qualquer área da WC, a do C++ tmb merece, nenhuma linguagem é inútil, ainda até hoje a COBOL e FORTRAN são usadas em larga escala, muito bom cara pelo seu post,pode me audar muito, principalmente é claro profissionais e iniciantes!

     

    davirmts

     

    não aprenda C e C++ ao mesmo tempo, mesmo porque as mesmas são completamente distintas e tem suas características próprias, o C++ já não é mais um "C com classes", ele já tem novos equipamentos tecnológicos ultra-avançados se compararmos com o C, concluindo, o C é uma linguagem primitiva e de baixo nível, embora seja usada em alguns sistemas operacionais como o linux, ela já não está mais sendo mais escolhida pela maioria dos programadores, devido a ela ñ ser orientada a objetos, sem falar que para se fazer cast (Conversões), vc tem q fazer coisas extremamentes primitivas, como por exemplo:

     

    para converter o número 1.5 em um inteiro no C, faz-se isto:

     

    É necessário se cadastrar para acessar o conteúdo.

     

    no C++ faz-se isso:

     

    É necessário se cadastrar para acessar o conteúdo.

     

    Ou seja, o C++ ainda deixa explícito para o leitor do código que o que ele está querendo fazer é uma conversão, e no C, fica implícito, fica uma bizonhisse!

     

    no C++ nós temos os seguintes cast:

     

    static_cast, dynamic_cast, const_cast, reinterpret_cast

     

    Eu comecei aprendendo pelo C, mas já ia desistindo, foi qaundo conheci o C++, vi q ele era mais poderoso comparado ao C, e mandei brasa, por isso, recomendo fortemente que aprendam C++ de primeira, isso pq, como já disse, o C++ tem muitas grandes diferenças do C, embora sejam "irmãs", se aprender o C primeiro, pode ocorrer uma certa insatisfação quando vc pular para o C++, isso vai te obrigar a ficar bitolado no C para sempre!

     

    flws

  3. Para quem gosta de um código mais rápido, e sem ter que apelar para muitas bibliotecas da STL, então, pare para pensar, "por que não criar a própria função?", neste caso, eu queria fazer um calculadora do tipo científica, mas vi que demora uns 10 segundos para compilar, isto pelo fato de serem compiladas no programa, funções da biblioteca padrão que ñ estão sendo usadas, neste tópico, vou dar um exemplo de como calcular potencias, sem ter que apelar para a lib cmath usando a função pow!

     

    bom, de início, eu elaborei uma função simples para calcular potências, eis o código dela a seguir:

     

    É necessário se cadastrar para acessar o conteúdo.

     

    Funciona perfeitamente que é uma beleza, porém, diferente da função padrão pow, ela ñ tem capacidade de calcular potencias de números negativos, por exemplo, 2 elevado à -2, é 0.25, e fazendo isso nesta função que elaborei, o resultado sai completamente bizarro e errado, ou seja, podemos concluir que está função que eu criei é um lixo completo, totalmente contraproducente e desaconselhada!

     

    Depois de +/- uma semana, estive estudando uma técnica de fazer com que a função calculasse expoentes negativos, daew criei esta aqui, esta um pouco complicada para leigos, mas se alguém conseguir fazer algo mnelhor e mais fácil, por favor poste aqui =D

     

    É necessário se cadastrar para acessar o conteúdo.

     

    Essa sim, funciona perfeitamente, podem testar, para teste, compilem este programa que eu fiz, e vejam, podemos concluir que esta é excelente para quem quer deixar o programa mais leve e por conseqüência mais rápido, flws

     

    É necessário se cadastrar para acessar o conteúdo.

  4. Olá pessoal, eu estou vindo novamente para entupir está área de conteúdo de excelente qualidade =D

     

    O programa que eu vou mostrar logo abaixo, sobrecarrega o operador ==, como alguns sabem os operadores !=, ==, >=, <=, >, < são (pelo que eu sei) mais usados em funções operators com o tipo bool, neste caso eu usei, sobrecarreguei o == para trabalhar com onjetos da classe A!

     

    É necessário se cadastrar para acessar o conteúdo.

     

    Este processo tmb pode ser usado de uma forma similiar com o !=, neste programa abaixo, vou demonstrar os == e != interagindo:

     

    É necessário se cadastrar para acessar o conteúdo.

     

    Para mim este segundo source é mais politicamente correto de se usar hehe, mas fica a critério do programador

  5. Bem pessoal, venho através deste tópico poder ensinar a algumas pessoas que ingressaram no C++ como usar tamplates!

     

    Suponha que vc quer escrever uma função que percorre um vetor e simultaneamente procura o máximo e o mínimo:

     

    É necessário se cadastrar para acessar o conteúdo.

     

    Para retornar ambos os valores, crie uma classe simples Pair (Par).

     

    É necessário se cadastrar para acessar o conteúdo.

     

    Agora vc pode completar a função como segue:

     

    É necessário se cadastrar para acessar o conteúdo.

     

     

    O invocador da função recupera ambos os valores como segue:

     

    É necessário se cadastrar para acessar o conteúdo.

     

    Entretando, a classe Par não é muito flexível. Suponha que você quer reunir alguns valores double ou string. Então vc precisa definir outra classe. O que é realmente necessário é um mecanismo para definir pares de tipos arbitrários. Para esta finalidade, vc pode definir um gabarito de classe, que pode produzir pares de tipos particulares. O gabarito pode ser instanciado como classes Pair<int>, Pair<string> e assim sucessivamente. Vc pode pensar no gabarito Pair como uma fábrica de classes, e uma classe instanciada tal como Pair<int> como sendo uma classe produzidapor esta fábrica.

    Para definir o gabarito, indique o tipo arbitrário com um parâmetro de tipo T. Substitua todos os tipos int pela variável de tipo T; Finalmente, adicione uma linha template<typename T> antes da definição da classe:

     

    É necessário se cadastrar para acessar o conteúdo.

     

    Com compiladores antigos, vc deve usar template<class T> em vez de template<typename T>. O C++ padrão permite ambas as escolhas, typename é preferido porque torna claro e evidente que T pode ser de qualquer tipo, e não apenas uma classe. Por exemplo, vc pode formar um Pair<int>, mesmo que int ñ seja um tipo de classe.

     

    Finalmente, vc deve transformar cada definição de função membro em um gabarito, como mostrado abaixo:

     

    É necessário se cadastrar para acessar o conteúdo.

     

    Note que cada função é tranformada em um gabarito separado. Cada nome de função é prefixado pelo qualificador "Pair<T>::". E, naturalemnte, a variável T é usada em lugar do tipo int.

    Pessoal, o gabarito Pair é um exemplo simples que foi apresentado com propósito de demonsteação (na realidade, existe um gabarito pair na biblioteca padrão de C++ que é similiar a este gabarito).

    O uso mais comum de gabaritos é nas classes contêiners. Naturalmente, as construções padrão vector e list são um bom exemplo de gabaritos.

     

    Ah, pessoal, e para enriquecer mais o post que eu fiz, vou dar mais um forte exemplo de gabaritos (templates).

     

    Se lembra do gabarito list que eu citei logo a alguma linhas atrás? Vou dar um exemplo de uma aplicação que usa a mesma:

     

    É necessário se cadastrar para acessar o conteúdo.

     

    Observem que neste caso ela esta usando o tipo string, mas eu poderia usar os tipos, int, double, float, etc, graças ao gabarito!

     

    Um amigo meu (A pedido dele, não vou divulgar o seu nome e nick), que se dedicou em estudar os gabaritos, criou a própria classe list dele, e acho que vai ser um grande exemplo para todos divulgar o source, o código abaixo é a obra dele, o exemplo que eu dei logo acima baseou-se no programa que ele fez hehehe!

     

    Os únicos problemas são:

    1º Não está comentado, mas, em breve vou editar o post e vou comentar, aguardem =D

    2º Ele deveria estar fragmentado em arquivos diferentes, mas a obra ñ é minha mesmo xD,

    3º Está uma coisa de louco hehehe

     

    É necessário se cadastrar para acessar o conteúdo.

     

    OBS: Não compilei o código!

     

    Existe uma ligeria diferença entre o gabarito List que meu amigo definiu e o gabarito list padrão de C++. Com o gabarito dele, vc define um iterador assim:

     

    É necessário se cadastrar para acessar o conteúdo.

     

    Entretanto, com a class list padrão, vc usa uma sintaxe levemente diferente:

     

    É necessário se cadastrar para acessar o conteúdo.

     

    O que faz esta diferança é que, na biblioteca padrão, a classe iterator é aninhada dentro da classe list!

     

    Classes aninhadas poderá ser o próximo tutorial que vou desenvolver, até lá, bons estudos à todos!

     

     

    bye :lol:

  6. Olá pessoal,

    eu reservei um tempo na minha madrugada de ontem para eu estudar mais sobre matrizes e etc etc, a partir daí tive a magnífica idéia de desenvolver um simples jogo da velha em console (também só para praticar), o resultado do projeto foi o jogo que vai ser exibido a seguir, curtam bem, demorei para fazer o mesmo =D

     

    É necessário se cadastrar para acessar o conteúdo.

     

    :lol:

  7. Bem, primeiramente olá e boa tarde a todos,

     

    Eu estive freqüentando este fórum por alguns dias e fiquei estupefato com ele, principalmente pq ele é rico em vários assuntos em demasia, quero dar os meus parabéns à esta equipe organizada e desejo ainda mais sucesso, pois este fórum vai dar muito futuro ainda ^^

     

    Como vocês perceberam, eu sou um dos muitos adimiradores do WC, e, por es´ta adimiração e estima que eu tenho, gostaria de sugerir duas

    áreas que poderiam ajudar muito o fórum em termos de atrair guests:

     

    1º Uma área hacking

     

    2º Uma sub área na parte deprogramação assim: "Scripts em geral

     

     

    Aguardo as respostas com ansiedade,

     

    abrsços a todos

     

    :P

  8. Olá galera, para o pessoal que gosta de batch script ou que está precisando de algo relacionado à segurança dos seus PCs, estou disponibilizando o source de um removedor de vírus que eu mesmo fiz, embora a primeira versão dele tenha sido feita no mais puro C++, eu pensei comigo mesmo, "está muito complexo, por que não deixa-lo de uma forma mais acessivel e legível para leigos?", a partir daí criei está versão em batch script, façam um bom uso pois este está bem atualizado, ele também tem duas opções extras, uma permite ao usuário otimizar o computador, excluindo os cookies e arquivos temporários, fazendo com que o computador fique mais leve e de quebra mais rápido, e a segunda opção permite ao usuário otimizar a velocidade da central de processamento de dados (CPU). O código eu vou mostrar logo a seguir!

     

     

    Interface bonita, convincente e simples:

     

    interfacegv6.jpg

     

    Menu simplificado, explícito e detalhado:

     

    menueo6.jpg

     

     

    O Source Code está exibido logo abaixo:

     

    É necessário se cadastrar para acessar o conteúdo.

     

    Espero que este meu feito ajude ao máximo de pessoas, bye :P

  9. Bem, primeiramente olá a todos, faz um bom tempo que não venho mais à este fórum, mas já que estou frequentando este dia, vou postar alguns programinhas meus. Quando eu tenho um tempo vago, começo a brincar e praticar os meus conhecimentos em C++, eu por exemplo, fiz este dois programas, muitos poderiam dizer que ambos os programas não servem para nada, mas para mim serviram, serviram de inspiração para idéias futuras, e também eles tem a utilidade de ensinar aos intermediários em C++ de aprenderem vários conceitos, bem, os programas vocês poderão ver a seguir:

     

    Selecionador de strings aleatórias:

     

    É necessário se cadastrar para acessar o conteúdo.

     

     

    Testador de números aleatórios:

     

    É necessário se cadastrar para acessar o conteúdo.

     

    Bem, é isso aí

  10. Este programa, pode ser útil, inútil, pode ser o que for, depende do seu ponto de vista, mas a minha intenção foi acumular ao máximo os meus conhecimentos em C++, aqui está ele, ele está em constante modificação: Peguem a versão recente:

     

    É necessário se cadastrar para acessar o conteúdo.

     

    Pelomenos divirtão-se ^^, PS: Qualquer erro, por favor me contatem neste tópico, obrigado

  11. hehehe, bem legalzinho! obs: naum foi feito por mim, os créditos estão no próprio código

     

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

     

    <html>

    <head>

    <title>Jogo da Velha</title>

    <style type="text/css">

    <!--

    .bla{

    width: 100px;

    height: 100px;

    background: #99ccff;

    font-size: 80px;

    color: #ff0000;

    cursor: pointer;

    }

    .ble{

    background: #000066;

    }

    -->

    </style>

    <script language="JavaScript" type="text/javascript">

    <!--

    letra = "X";

     

    function joga(celula){

    celulaclicada = document.getElementById(celula).innerHTML;

    if (celulaclicada == "X" || celulaclicada == "O"){

    alert("Opa, este quadrado já foi escolhido!");

    }else{

    document.getElementById(celula).innerHTML = letra;

    if (letra == "X"){

    letra = "O";

    }else{

    letra = "X";

    }

    }

    }

     

    function verif(){

    c11 = document.getElementById('cel11').innerHTML;

    c12 = document.getElementById('cel12').innerHTML;

    c13 = document.getElementById('cel13').innerHTML;

    c21 = document.getElementById('cel21').innerHTML;

    c22 = document.getElementById('cel22').innerHTML;

    c23 = document.getElementById('cel23').innerHTML;

    c31 = document.getElementById('cel31').innerHTML;

    c32 = document.getElementById('cel32').innerHTML;

    c33 = document.getElementById('cel33').innerHTML;

    if (((c11 != '') && (c12 != '') && (c13 != '') && (c11 == c12) && (c12 == c13)) || ((c11 != '') && (c22 != '') && (c33 != '') && (c11 == c22) && (c22 == c33)) || ((c11 != '') && (c21 != '') && (c31 != '') && (c11 == c21) && (c21 == c31)) || ((c21 != '') && (c22 != '') && (c23 != '') && (c21 == c22) && (c22 == c23)) || ((c31 != '') && (c32 != '') && (c33 != '') && (c31 == c32) && (c32 == c33)) || ((c12 != '') && (c22 != '') && (c32 != '') && (c12 == c22) && (c22 == c32)) || ((c13 != '') && (c23 != '') && (c33 != '') && (c13 == c23) && (c23 == c33)) || ((c31 != '') && (c22 != '') && (c13 != '') && (c31 == c22) && (c22 == c13))){

    alert('Você ganhou! Parabéns campeão!');

    novo();

    }

    }

     

    function novo(){

    for (i=1; i<4; i++){

    for (j=1; j<4; j++){

    nomecelula = 'cel' + i + j

    document.getElementById(nomecelula).innerHTML = '';

     

    }

    }

    }

     

     

    //-->

    </script>

     

    </head>

    <body>

    <table class="ble">

     

    <tr>

    <td align="center" valign="middle" id="cel11" class="bla" onclick="joga(this.id);verif();"></td>

    <td align="center" valign="middle" id="cel12" class="bla" onclick="joga(this.id);verif();"></td>

    <td align="center" valign="middle" id="cel13" class="bla" onclick="joga(this.id);verif();"></td>

    </tr>

     

    <tr>

    <td align="center" valign="middle" id="cel21" class="bla" onclick="joga(this.id);verif();"></td>

    <td align="center" valign="middle" id="cel22" class="bla" onclick="joga(this.id);verif();"></td>

    <td align="center" valign="middle" id="cel23" class="bla" onclick="joga(this.id);verif();"></td>

    </tr>

     

    <tr>

    <td align="center" valign="middle" id="cel31" class="bla" onclick="joga(this.id);verif();"></td>

    <td align="center" valign="middle" id="cel32" class="bla" onclick="joga(this.id);verif();"></td>

    <td align="center" valign="middle" id="cel33" class="bla" onclick="joga(this.id);verif();"></td>

    </tr>

     

    </table>

     

    <input type="button" name="limpar" value="Novo jogo" onclick="novo();" />

    </body>

    </html>

  12. Esse código faz a tela tremer pra qdo vc n quer q copiem ele faz um bloqueio do botão direito e exibe um alerta. Caso o usuário insista com o botão direito atela come´ará a tremer e só irá parar no próximo clique com o mouse é um script interessante por exemplo agora eu estou adaptando ele para o flash para q qdo o usuário passe por cima d um botão a tela trema e depois pare para chamar a aten´ão.

     

    <script language=JavaScript>

    <!--

    document.onmousedown=click

    var msg1="Estamos pedindo para que não copie na próxima tentativa irá sofrer as consequências!"

    var times=0

    var times2=10

    function click() {

    if ((event.button==2) || (event.button==3)) {

    if (times>=1) { earthquake() }

    alert("Nós avisamos");

    times++ } }

    function earthquake () {

    alert(msg1)

    window.moveTo(0, 0)

    window.moveTo(1, 1)

    window.moveTo(2, 2)

    window.moveTo(3, 3)

    window.moveTo(4, 4)

    window.moveTo(5, 5)

    window.moveTo(6, 6)

    window.moveTo(7, 7)

    window.moveTo(8, 8)

    window.moveTo(9, 9)

    window.moveTo(10, 10)

    window.moveTo(9, 9)

    window.moveTo(8, 8)

    window.moveTo(7, 7)

    window.moveTo(6, 6)

    window.moveTo(5, 5)

    window.moveTo(4, 4)

    window.moveTo(3, 3)

    window.moveTo(2, 2)

    window.moveTo(1, 1)

    tremmors()

    }

    function tremmors() {

    window.moveTo(0, 0)

    window.moveTo(1, 1)

     

    window.moveTo(2, 2)

    window.moveTo(3, 3)

    window.moveTo(4, 4)

    window.moveTo(5, 5)

    window.moveTo(6, 6)

    window.moveTo(7, 7)

    window.moveTo(8, 8)

    window.moveTo(9, 9)

    window.moveTo(10, 10)

    window.moveTo(9, 9)

    window.moveTo(8, 8)

    window.moveTo(7, 7)

    window.moveTo(6, 6)

    window.moveTo(5, 5)

    window.moveTo(4, 4)

    window.moveTo(3, 3)

    window.moveTo(2, 2)

    window.moveTo(1, 1)

    tremmors()

    }

    // -->

    </SCRIPT>

     

     

    OBS: este código ñ foi feito por mim!

  13. Todos os Direitos Reservados a Microsoft

     

    O que é vb script:

    Declara´ão If...Then...Else

    Declara´ão Select Case

     

    Fazendo Decisões Usando If...Then...Else

    O If...Then...Else é uma declara´ão usada para avaliar uma condi´ão seja ela Falsa (False) ou Verdadeira (True) e, contando com o resultado, para executar um ou mais comandos. Usualmente a condi´ão é uma expressão que usa um operador de compara´ão para comparar um valor ou variável com outra. Para informa´ão sobre operadores de compara´ão, ver Operadores de Compara´ão. If...Then...Else pode estar identadas em muitos níveis dependendo de sua necessidade.

    Executando uma Declara´ões se a Condi´ão for

    Verdadeira

    Para executar unicamente um declara´ão quando uma condi´ão é Verdadeira, use uma única linha com a sintaxe If...Then...Else. Note que neste exemplo foi omitido a palavra chave Else.

    Sub FixDate()

    Dim myDate

    myDate = #2/13/95#

    If myDate < Now Then myDate = Now

    End Sub

    Para executar mais de uma linha de código, você deve usar múltiplas-linhas (ou bloco). Esta sintaxe inclue a declara´ão End If, como mostra o exemplo a seguir:

    Sub AlertUser(value)

    If value = 0 Then

    AlertLabel.ForeColor = vb script:

    Do...Loop: Permanece no la´o, enquanto ou até uma condi´ão ser Verdadeira.

    While...Wend: Permanece no la´os enquanto uma condi´ão é Verdadeira.

    For...Next: Usa um contador para executar as declara´ões num número específico de vezes. For Each...Next: Repete um grupo de declara´ões para cada item de uma cole´ão ou cada elemento de um array.

    Usando Do Loops

    Você pode usar a declara´ão Do...Loop para executar um bloco de declara´ões num número indeterminado de vezes. As declara´ões são repetidas enquanto a condi´ão for Verdadeira ou até uma condi´ão torna-se Verdadeira.

    Repetindo Declara´ões Enquanto uma Condi´ão

    é Verdadeira

    Use a palvra-chave While para checar a condi´ão em uma declara´ão Do...Loop. Você pode checar a condi´ão antes de entra no la´o (como é mostrado no exemplo ChkFirstWhile), ou você pode checar depois de ter entrado no la´o no mínimo uma vez (como é mostrado no exemplo ChkLastWhile). No procedimento ChkFirstWhile, se myNum é recebe o valor igual a 9 em vez de 20, o código no interior do la´o nunca será executado. No procedimento ChkLastWhile, o código no interior do la´o é executado apenas uma vez porque a condi´ão já é Falsa.

    Sub ChkFirstWhile()

    Dim counter, myNum

    counter = 0

    myNum = 20

    Do While myNum > 10

    myNum = myNum - 1

    counter = counter + 1

    Loop

    MsgBox "The loop made " & counter & " repetitions."

    End Sub

    Sub ChkLastWhile()

    Dim counter, myNum

    counter = 0

    myNum = 9

    Do

    myNum = myNum - 1

    counter = counter + 1

    Loop While myNum > 10

    MsgBox "The loop made " & counter & " repetitions."

    End Sub

    Repetindo uma Declara´ão Até uma Condi´ão

    Torna-se Verdadeira

    Você pode usar a palavra-chave Until de duas maneiras para checar uma condi´ão da declara´ão Do...Loop. Você pode checar a condi´ão antes de entrar no la´o (como é mostrado no exemplo ChkFirstUntil), ou você pode checar depois de ter entrado no la´o no mínimo uma vez (como é mostrado no exemplo ChkLastUntil). Enquanto a condi´ão é Falsa, o looping ocorre.

    Sub ChkFirstUntil()

    Dim counter, myNum

    counter = 0

    myNum = 20

    Do Until myNum = 10

    myNum = myNum - 1

    counter = counter + 1

    Loop

    MsgBox "The loop made " & counter & " repetitions."

    End Sub

    Sub ChkLastUntil()

    Dim counter, myNum

    counter = 0

    myNum = 1

    Do

    myNum = myNum + 1

    counter = counter + 1

    Loop Until myNum = 10

    MsgBox "The loop made " & counter & " repetitions."

    End Sub

    Saindo do Interior de um la´o Do...Loop

    Você pode sair de um la´o Do...Loop usando a

    declara´ão Exit Do Ocorrerá casos em que você

    desejará sair do la´o em certas situa´ões. No

    seguinte exemplo, myNum é designado um valor que

    cria um la´o infinito. A declara´ão If...Then...Else

    checa a condi´ão, prevenindo a repeti´ão infinita

    Sub ExitExample()

    Dim counter, myNum

    counter = 0

    myNum = 9

    Do Until myNum = 10

    myNum = myNum - 1

    counter = counter + 1

    If myNum < 10 Then Exit Do

    Loop

    MsgBox "The loop made " & counter & " repetitions."

    End Sub

    Usando While...Wend

    A declara´ão While...Wend é fornecida no VBScript para familiarizar a linguagem. Entretanto, por falta de flexibilidade na declara´ão While...Wend, é recomendado que você use a declara´ão Do...Loop.

    Usando For...Next

    Você pode usar a declara´ão For...Next para executar um bloco de declara´ões num número específico de vezes. É usado uma variável de contador cujo valor é aumentado ou decrescido com cada repeti´ão do la´o.

    Por exemplo, o seguinte procedimento executa 50 vezes um chamado no procedimento MyProc. A declara´ão For especifica um contador, uma variável x que recebe um valor inicial, precedida de uma palavra-chave To e depois de um valor final. A declara´ão Next incrementa a variável contador de 1 unidade.

    Sub DoMyProc50Times()

    Dim x

    For x = 1 To 50

    MyProc

    Next

    End Sub

    Usando a palavra-chave Step, você pode aumentar ou decresce a variável contador pelo valor especificado na declara´ão Step. No seguinte exemplo, o contador uma variável j é incrementado de 2 unidades. Quando o la´o é terminado, a variável total terá a soma de 2, 4, 6, 8, e 10.

    Sub TwosTotal()

    Dim j, total

    For j = 2 To 10 Step 2

    total = total + j

    Next

    MsgBox "The total is " & total

    End Sub

    Para decrescer a variável contador, deve-se atribuir um valor negativo para a declara´ão Step. Você deve especificar um valor final que é menor que o valor inicial. No seguinte exemplo, o contador a variável myNum decrescido der 2 unidades. Quando o la´o é terminado, a variável total terá a soma de 16, 14, 12, 10, 8, 6, 4, e 2.

    Sub NewTotal()

    Dim myNum, total

    For myNum = 16 To 2 Step -2

    total = total + myNum

    Next

    MsgBox "The total is " & total

    End Sub

    Você pode sair da declara´ão For...Next antes do contador alcan´ar seu valor final usando a declara´ão Exit For. Ocorrerá casos em que você desejará sair do la´o em certas situa´ões.

    Usando For Each...Next

    Um la´o For Each...Next é parecido com um la´o For...Next. Em vez de de repetir as declara´ões num número específico de vezes, um la´o For Each...Next repete um grupo de declara´ões para cada item em uma cole´ão de objetos ou para cada elemento de um array. Este la´o é muito útil quando você fazer não sabe quantos elementos estão em uma cole´ão.

    No seguinte exemplo de código HTML, os conteúdos de um objeto Dicionário é usado para colocar texto em várias caixas de texto:

    <HTML>

    <HEAD><TITLE>Forms and Elements</TITLE></HEAD>

    <script LANGUAGE="VBScript">

    <!--

    Sub cmdChange_OnClick

    Dim d 'Create a variable

    Set d = CreateObject("Scripting.Dictionary")

    d.Add "0", "Athens" 'Add some keys and items

    d.Add "1", "Belgrade"

    d.Add "2", "Cairo"

     

    For Each I in d

    Document.frmForm.Elements(I).Value = D.Item(I)

    Next

    End Sub

    -->

    </SCRIPT>

    <BODY>

    <CENTER>

    <FORM NAME="frmForm"

     

    <Input Type = "Text">

     

     

    <Input Type = "Text">

     

     

    <Input Type = "Text">

     

     

    <Input Type = "Text">

     

     

    <Input Type = "Button" NAME="cmdChange" VALUE="Click Here">

     

     

    </FORM>

    </CENTER>

    </BODY>

    </HTML>

     

    VBScript Procedures

     

     

    Espécies de Procedimentos

    No VBScript há duas espécies de procedimentos; o procedimento Sub e o procedimento Function.

    Procedimentos Sub

    Um procedimento Sub é uma série de declara´ões do VBScript, dentro das declara´ões Sub e End Sub. Um procedimento Sub não retorna valor, mas você pode tomar argumentos (constantes, variáveis, ou expressões que são passados durante a chamada da Sub). Se um procedimento Sub não tem argumentos, sua declara´ão deve incluir um conjunto vazio de parêntesis ().

    O seguinte procedimento Sub usa duas fun´ões intrínsecas do VBScript, MsgBox e InputBox, para obter do usuário alguma informa´ão. Depois exibe os resultados de um cálculo baseado nas informa´ões. O cálculo é desempenhado em um procedimento Function criado usando o VBScript. O procedimento Function será discutido a seguir.

    Sub ConvertTemp()

    temp = InputBox("Please enter the temperature in degrees F.", 1)

    MsgBox "The temperature is " & Celsius(temp) & " degrees C."

    End Sub

    Procedimentos Function

    Um procedimento Function é uma série de declara´ões do VBScript dentro das declara´ões Function e End Function. Um procedimento Function é parecido com um procedimento Sub, com a diferen´a de você poder retornar um valor. Um procedimento Function pode tomar argumentos (constantes, variáveis, ou expressões que são passadas pelo procedimento de chamada). Se um procedimento Function não tem argumentos, sua declara´ão deve incluir um conjunto vazio de parêntesis. Uma Function retorna um valor que será atribuido ao nome da fun´ão no procedimento de chamada. O tipo do valor retornado por uma Function será sempre Variant.

    No seguinte exemplo, a fun´ão Celsius calcula a temperatura em graus Celsius do grau Fahrenheit. Quando a fun´ão é chamada do procedimento Sub ConvertTemp, uma variável contendo o valor do argumento é passado à fun´ão. O resultado do cálculo é voltado ao procedimento chamado e exibido em uma caixa de mensagem.

    Sub ConvertTemp()

    temp = InputBox("Please enter the temperature in degrees F.", 1)

    MsgBox "The temperature is " & Celsius(temp) & " degrees C."

    End Sub

    Function Celsius(fDegrees)

    Celsius = (fDegrees - 32) * 5 / 9

    End Function

    Obtendo dados dentro de um Procedimento

    Cada valor é passado dentro de seus procedimentos usando um argumentos. Argumentos servem como "pontes de valor" dos dados que você deseja passar dentro de seu procedimento. Você pode especificar seus argumentos com um nome de uma variável. Quando você cria um procedimento usando uma declara´ão Sub ou uma declara´ão Function, os parêntesis devem incluir os nomes dos argumentos. Quaisquer argumentos são colocados no interior desses parêntesis, separados por vírgulas. No seguinte exemplo, fDegrees é uma "ponte de valor" que passa o valor da temperatura a ser calculada na fun´ão:

    Function Celsius(fDegrees)

    Celsius = (fDegrees - 32) * 5 / 9

    End Function

    Para obter o valor dos dados de um procedimento, você deve usar uma Function. Lembre-se, que um procedimento Function pode retornar um valor; e um procedimento Sub não pode.

    Usando Procedimentos Sub e Function em seu Código

    Você deve usar um procedimento Function em seu código do lado direito a uma expressão. Por Exemplo:

    Temp = Celsius(fDegrees)

    ou

    MsgBox "A temperatura do Celsius está " & Celsius(fDegrees) & " graus."

    Para chamar um procedimento Sub de outro procedimento, você deve apenas referenciar o nome da procedure passando ou não argumentos. A declara´ão Call não é requerida, mas se você usá-la, deve colocar os argumentos entre parêntesis.

    O seguinte exemplo mostra duas chamadas ao procedimento MyProc. Um usa a declara´ão Call no código; o outro não. Ambos fazer exatamente a mesma coisa.

    Call MyProc(firstarg, secondarg)

    MyProc firstarg, secondarg

     

    Note que os parêntesis são omitidos na chamada quando a declara´ão Call não é usada.

     

    Conven´ões do Coding do

    VBScript

     

     

     

    O que é Conven´ões de Código ?

    Conven´ões do Coding são sugestões que podem ajudá-lo a escreve seus códigos usando Microsoft Visual Basic Scripting Edition. As conven´ões do Coding podem inclui os seguintes ítens:

    Especificando conven´ões para objetos,

    variáveis, e procedimentos

    Comentando as conven´ões

    Formatando textos e indentando diretrizes

     

    A principal razão para usar um conjunto consistente de conven´ões do coding é padronizar a estrutura e estilo do código de um script, ou atribuir um modo de escrever seus códigos de forma que você e outros possam facilmente ler e compreendem o algorítimo. Usando boas conven´ões do coding o resultado é legível, preciso, com um código consistente com outras conven´ões da línguagem.

    Constante Conven´ões de Nomes

    Versões mais antecipadas de VBScript não tem nenhum mecânismo para criar constantes definidas pelo usuário. Constantes, se forem implementadas como variáveis se distinguem de outras variáveis usando todos caracteres maiúsculos. Palavras múltiplas foram separadas usando o caracter sublinhado (_). Por Exemplo:

    USER_LIST_MAX

    NEW_LINE

    Enquanto isto ainda é um caminho aceitável para indentificar suas constantes, você pode usar uma alternativa especificando agora um esquema verdadeiro na declara´ão das constantes usando o Const. Esta conven´ão usa uma mescla de formato em que os nomes das constantes têm um prefixo "con". Por Exemplo:

    conYourOwnConstant

    Conven´ão dos Nomes das Variáceis

    Com o propósitos de consistência, use os seguintes prefixos com nomes descritivos para variáveis em seu código do VBScript.

    Subtype

    Prefixo

    Exemplo

    Boolean

    bln

    blnFound

    Byte

    byt

    bytRasterData Date (Time)

    dtm

    dtmStart

    Double

    dbl

    dblTolerance

    Error

    err

    errOrderNum

    Integer

    int

    intQuantity

    Long

    lng

    lngDistance

    Object

    obj

    objCurrent

    Single

    sng

    sngAverage

    String

    str

    strFirstName

     

    Escopo Variável

    Variáveis deveriam sempre ser definidas com o menor escopo possível. Variáveis do VBScript podem ter o seguinte escopo.

    Escopo

    Onde Variável é

    Declarada

    Visibilidade

    Nível-Procedure

    Eventos, Fun´ão,

    ou procedures Sub

    Visível na

    procedure em

    que foi

    declarada

    Nível-Script

    Se´ão HEAD de

    uma página HTML,

    exteriormente em

    qualquer procedure

    Visível em todas

    as procedures

    do Script

     

     

    Prefixos de Escopo de Variáveis

    Como o tamanho do Script cresce, assim faz o valor de existência capaz para rapidamente diferencia o escopo de variáveis. Um um-letra prefixo de escopo precedendo o prefixo de tipo fornece este, sem o unduly aumentando o tamanho de nomes variáveis.

    Escopo

    Prefixo

    Exemplo

    Nível-Procedure

    None

    dblVelocity

    Nível-Script

    s

    sblnCalcInProgress

     

    Variável Descritiva e Nomes De Procedimento

    O corpo de uma variável ou nome de uma procedurce deve ser usada para descrever a necessidade de seu propósito. Em resumo, os nomes de procedures deveriam come´ar com um verbo, tal como IniciarVariáveis ou FecharJanela.

    Para termos freqüentes e longos, abrevia´ões padronizadas são recomendadas para minimizar o comprimento do nome. No geral, nomes de variáveis maiores que 32 caracteres podem ser de difíceis leituras. Quando usar abrevia´ões, certifique-se que elas serão consistentes para todo o Script. Por Exemplo, aleatoriamente mudando de Cnt para Conta dentro de um Script pode gerar um erro no seu código.

    Objeto Especificando Conven´ões

    As seguintes listas da tabela são conven´ões

    recomendadas para objetos que você pode

    encontrar enquanto programa em VBScript.

     

    Tipo Objeto

    Prefixo

    Exemplo

    3D Panel

    pnl

    pnlGroup

    Animated Button

    ani

    aniMailBox

    Check Box

    chk

    chkReadOnly

    Combo Box, drop-down list

    box

    cbo

    cboEnglish

    Command Button

    cmd

    cmdExit

    Common Dialog

    dlg

    dlgFileOpen

    Frame

    fra

    fraLanguage

    Horizontal Scroll Bar

    hsb

    hsbVolume

    Image

    img

    imgIcon

    Label

    lbl

    lblHelpMessage

    Line

    lin

    linVertical

    List Box

    lst

    lstPolicyCodes

    Spin

    spn

    spnPages

    Text Box

    txt

    txtLastName

    Vertical Scroll Bar

    vsb

    vsbRate

    Slider

    sld

    sldScale

     

    Comentando Conven´ões de Códigos

    Todos os procedimentos deveriam come´ar com um breve comentário descrevendo o que eles fazem. Este comentário não deveria descrever os detalhes de implementa´ão (como: isto faz isto) porque os códigos mudam freqüentemente, resultando num enorme trabalho e perca de tempo ne manuten´ão de comentários desnecessários, ou comentários errôneos, pior. O código por si mesmo e quaisquer breves comentários necessários descrevem a implementa´ão.

    Argumentos passados para um procedimento devem ser descritos quando seu propósito não está óbvio no código. Valores que voltam para fun´ões e variáveis que são mudadas por um procedimento, especialmente através de argumentos por referência, devem ser descritos no come´o de cada procedure.

    Comentários no cabe´alho da Procedure devem incluir os seguintes títulos. Por Exemplo:

    Título De

    Se´ão

    Comentário do Conteúdo

    Propósito

    Que o procedimento faz (não como).

    Suposi´ões

    Lista de qualquer variável externa, controle, ou outro elemento que declare a´ões nesta procedimento.

    Efeitos

    Lista de efeito do procedimento em cada variável externa, controle, ou outro elemento.

    Entradas

    Explica´ão de cada argumento que não esteja óbvio. Cada argumento deve ter uma linha separada com os comentários.

    Valores

    Retornados

    Explica´ão do valor voltado.

     

    Recorde os seguintes pontos:

    Toda declara´ão de uma importante variável deve incluir um comentário descrevendo o uso e a existência da variável declarada.

    Variáveis, controles, e procedimentos devem ter comentários claros e específicos pois, deles resulta a complexidade da implementa´ão. No come´o de seu script, você deve incluir um resumo que descreva, enumerando objetos, procedimentos, algorítimos, caixas de diálogo, e outras dependências do sistema. Às vezes um peda´o de pseudocódigo, descrevendo o algorítimo pode ser bastande prestativo.

    Formatando Seu Código

    O espa´o da tela dever ser conservado, enquanto ainda permita formatar seu código refletindo a estrutura lógica do algorítimo. Estes são uns pontos básicos:

    Blocos identados padronizados devem ser

    indentados com quatro espa´os.

    O resumo do comentário de um procedimento dever ser indentar com um espa´o.

     

    '*********************************************************

    ' Purpose: Locates the first occurrence of a specified user

    ' in the UserList array.

    ' Inputs: strUserList(): the list of users to be searched.

    ' strTargetUser: the name of the user to search for.

    ' Returns: The index of the first occurrence of the strTargetUser

    ' in the strUserList array.

    ' If the target user is not found, return -1.

    '*********************************************************

     

    Function intFindUser (strUserList(), strTargetUser)

    Dim i ' Loop counter.

    Dim blnFound ' Target found flag

    intFindUser = -1

    i = 0 ' Initialize loop counter

    Do While i <= Ubound(strUserList) and Not blnFound

    If strUserList(i) = strTargetUser Then

    blnFound = True ' Set flag to True

    intFindUser = i ' Set return value to loop count

    End If

    i = i + 1 ' Increment loop counter

    Loop

    End Function

     

     

    Nível de Procedimento

    Descreve declara´ões localizadas dentro de um procedimento Function ou Sub. Declara´ões são realizadas primeiro, seguido por designa´ões e outro código do executável.

    Por Exemplo:

    Sub MySub() ' This statement declares a sub procedure block.

    Dim A ' This statement starts the procedure block.

    A = "My variable" ' Procedure-level code.

    Debug.Print A ' Procedure-level code.

    End Sub ' This statement ends a sub procedure block.

     

     

     

     

    Controle do ActiveX

    Um objeto que você coloca em um formulário, para habilitar ou acentuar a intera´ão do usuário com uma página na Web (No caso do VBScript). Controles ActiveX têm eventos e podem ser incorporados dentro de outros controles. Os controles são arquivos que possuem extensão .OCX.

     

    Objeto do ActiveX

    Um objeto que é exibido para outros aplica´ões ou programado através de ferramentas de interfaces de Automa´ão.

     

    Argumento

    Uma constante, variável, ou expressão passada para um procedimento.

     

    Array

    Um conjunto de seqüências de elementos ordenados, tendo o mesmo tipo de dados. Cada elemento de um array tem um único identificador referenciado por um número (índice). Mudan´as feitas para um elemento de um array, não afeta os demais elementos.

     

    Conjunto de Caracter ASCII

    American Standard Code for Information Interchange (ASCII) 7-bit caracter atribuídos amplamente para representar letras e símbolos encontrados em um teclado padrão U.S. O conjunto de caracter ASCII é o mesmo dos primeiros 128 caracteres (0–127) do conjunto de caracter ANSI.

     

    Objeto de Automa´ão

    Um objeto que é exibido para outros aplica´ões ou programado através de ferramentas de interfaces de Automa´ão.

     

    Compara´ão bitwise

    Uma compara´ão idêntica de bit-a-bit bits posicionando o bit nas duas expressões numéricas.

     

    Expressão do Boolean

    Uma expressão que avalia a condi´ão Falso (False) ou Verdadeiro (True).

     

    Por Referência

    Um meio de passar um argumento para um procedimento, usando o endere´o, em vez do valor. Isto permite ao procedimento acessar a variável real. Como resultado, o valor real da variável pode ser alterado dentro do procedimento que ela foi passada.

     

    Por Valor

    Um meio de passar um argumento para um procedimento, usando o valor, em vez do endere´o de memória da variável. Isto permite ao procedimento acessar uma cópia da variável. Como um resultado, o valor real da variável não pode ser alterado dentro do procedimento que ela foi passada.

     

    Código de Caracter

    Um número que representa um caracter específico dm um conjunto, tal como o conjunto de caracter da tabela ASCII.

     

    Classe

    A defini´ão formal de um objeto. A classe define as propriedades do objeto e os métodos usados para controlar o comportamento do objeto. É possível criar uma classe para um objeto.

     

    Módulo de classe

    Um módulo contendo a defini´ão de uma classe (sua propriedade e defini´ões de método).

     

    Cole´ão

    Um objeto que contem um conjunto de objetos relacionados. A posi´ão de um objeto na cole´ão pode ser alterada, sempre que uma altera´ão ocorrer na cole´ão; portanto, a posi´ão de qualquer objeto especifico na cole´ão pode variar.

     

    Comentário

    Texto que contribue na explica´ão do código facilitando o trabalho do programador. No Visual Basic Scripting Edition, um comentário pode ser feito usando uma apóstofe ('), ou uma palvra chave Rem seguido por um espa´o.

     

    Operador de Compara´ão

    Um caracter ou símbolo indicando um relacionamento entre

    dois ou mais valores ou expressões. Esses operadores

    incluem menor que (<), menor que ou igual a (<=), maior

    que (>), maior que ou igual a (>=), diferentel (<>), e igual

    (=).

     

     

    Constante

    Um nome específico que contém um valor constante para toda a execu´ão de um programa. Constantes podem ser usadas em qualquer parte de seu código. Uma constante pode ser uma string ou número literal, outra constante, ou qualquer combina´ão que inclua aritmética ou operadores lógicos exceto Is e exponencia´ão. Por Exemplo:

    Const A = "MyString"

     

     

    Tipos de Dados

    Cada subtipo do tipo Variant tem uma série especifica de valores:

    Subtype

    Série

    Byte

    0 a 255.

    Boolean

    False ou True.

    Integer

    32,768 a 32,767.

    Long

    2,147,483,648 a 2,147,483,647.

    Single

    3.402823E38 a -1.401298E-45 para valores negativos; 1.401298E-45 a 3.402823E38 para valores positivos.

    Double

    1.79769313486232E308 a

    4.94065645841247E-324 para valores negativos; 4.94065645841247E-324 a 1.79769313486232E308 para valores positivos.

    Currency

    922,337,203,685,477.5808 a

    922,337,203,685,477.5807.

    Date

    Janeiro 1, 100 a Dezembro 31, 9999,

    inclusive.

    Object

    Qualquer referência de Objeto.

    String

    Variáveis alfanuméricas, que podem ter um comprimento de 0 até aproximadamente 2 bilhões de caracteres.

     

     

    Expressão de Data

    Qualquer expressão que pode ser interpretada como uma data. Isto inclue qualquer combina´ão literal de data, números que comparem datas iguais, strings que comparem datas iguais, e datas voltadas de fun´ões. Uma expressão de data é limitada pelo número ou string, em qualquer combina´ão, limitada 1 Janeiro de 100 até 31 Dezembro de 9999.

    Datas são armazenadas como partes de um número real. Valores à esquerda do decimal representa a data; valores à direita do decimal representa o tempo. Números negativos representam datas anterior a 30 Dezembro 1899.

     

     

    Data Literal

    Qualquer seqüência de caracteres com um formato válido que é circundado por sinais de número (#). Formatos válidos incluem o formato de data especificado pelos valores localis, ou o formato universal de data. Por Exemplo, #12/31/99# é a data literal que representa Dezembro 31, 1999, onde English-U.S. é o valor da localidade para seu requerimento.

    No VBScript, o unico formato reconhecido é o US-ENGLISH, apesar da localidade real do usuário. O formato interpretado é mm/dd/yyyy.

     

     

    Separadores de Data

    Caracteres usados para separar o dia, mês, e ano quando o valore da data é formatado.

    Vazio (Empty)

    Um valor que indica o primeiro valor designado para uma variável. Variáveis Vazias são 0 num contexto numérico, ou zero-comprimento ("") num contexto de string. fio.

     

    Número de Erro

    Um número que abrange toda a série de 0 a 65,535, que corresponde ao número do erro refenciado pelo objeto Err. Este número representa uma mensagem de erro particular.

     

    Expressão

    Uma combina´ão de palavras-chave, operadores, variáveis, constantes, número, ou objeto. Uma expressão pode desempenhar um cálculo, manipular caracteres, ou testar dados.

     

    Constante Intrínseca

    Uma constante fornecida por uma aplica´ão. Você não pode desabilitar constantes intrínsecas, e não pode criar uma constante com o mesmo nome da instríseca.

     

    Palavra-Chave

    Uma palavra ou símbolo reconhecida pela linguagem VBScript; por exemplo, uma declara´ão, nome de funcão, ou operador.

     

    Localidade

    O conjunto de informa´ões que corresponde a língua de um país. Uma localidade afeta a funcionalidade de uma aplica´ão nos itens de valores, conversões, formatos, datas dos locais específicos. Há dois contextos onde a informa´ão da localidade é importante:

    A localidade de código afeta a linguagem de termos tais como as palavras-chaves, as defini´ões de valores locais como o decimal, formatos de data, e caracteres que classificam pedidos.

    A localidade do sistema afeta a funcionalidade da aplica´ão, quando você exibe números ou converte caracteres em data. Você pode modificar a localidade do sistema usando os utilitários do Painel de Controle fornecidos pelo sistema operacional.

     

    Nada (Nothing)

    Um valor especial que indica que uma variável de objeto não é mais longa associada com qualquer objeto real.

     

    Nulo (Null)

    Um valor indicando que uma variável não contêm dados válidos. Nulo é o resultado de:

    Uma designa´ão explícita de Nula para uma variável. Qualquer opera´ão entre expressões que contêm valores Nulos.

     

    Expressão Numérica

    Qualquer expressão que pode ser avaliada como um número. Elementos da expressão pode incluir qualquer combina´ão de palavras-chave, variáveis, constantes, e operadores que resultam em um número.

     

    Tipo de Objeto

    Um tipo de objeto exposto por uma aplica´ão, por exemplo, Requerimento, Arquivo. Consulte a documenta´ão das aplica´ões (Microsoft Excel, Microsoft Project, Microsoft Word) para uma listagem completa dos objetos disponíveis.

     

    Pi

    Pi é um valor igual a constante matemática aproximadamente de 3.1415926535897932.

     

    Private

    Variáveis que são visíveis apenas ao Script em que elas são declaradas.

    Procedimento

    Uma seqüência específica de declara´ões executadas em uma unidade. Por Exemplo, Function e Sub são tipos de procedimentos.

     

    Nível de Procedimento

    Descreve declara´ões localizadas dentro de um procedimento Function ou Sub. Declara´ões são realizadas primeiro, seguido por designa´ões e outro código do executável. Por Exemplo:

    Sub MySub() ' This statement declares a sub procedure block.

    Dim A ' This statement starts the procedure block.

    A = "My variable" ' Procedure-level code.

    Debug.Print A ' Procedure-level code.

    End Sub ' This statement ends a sub procedure block.

     

     

    Propriedade

    Um atributo específico de um objeto. Propriedades definem as características do objeto tais como tamanho, cor, localiza´ão na tela, ou o estado de um objeto, tal como habilitado (Enabled) ou desabilitado (Disabled).

     

    Public

    Variáveis declaradas Public são visíveis para todos procedimentos em todos módulos de uma aplica´ão.

     

    Tempo Execu´ão (Run Time)

    É momento em que o código está sendo executado. Durante o tempo de execu´ão, você não pode editar o código.

     

    Erro Tempo de Execu´ão

    Um erro que ocorre quando código está sendo executado. Um erro em tempo de execu´ão resulta quando uma declara´ão efetua uma opera´ão inválida.

     

    Escopo

    Define a visibilidade de uma variável, procedimento, ou objeto. Por Exemplo, uma variável declarada como Public é visível para todos os procedimentos em todos os módulos. Variáveis declaradas em procedimentos são visíveis unicamente dentro do procedimento que a declarou, perdendo seu valor ao término deste procedimento.

     

    SCODE

    Um valor inteiro longo (Long Integer) que é usado para passar informa´ões detalhadas a fun´ão API. Os códigos de condi´ão para interfaces de OLE e APIs são definidas no FACILITY_ITF.

     

    Nível de Escrita

    Qualquer código exterior a um procedimento é referido como um nível de código.

     

    Seed

    Um valor inicial usado para gerar números do pseudo aleatórios. Por exemplo, a declara´ão Randomize cria um número usado pela fun´ão Rnd para criar seqüências de número do pseudo aleatórios.

     

    Comparando Strings

    Uma compara´ão de duas seqüências de caracteres. A menos que especificado na fun´ão que fará a compara´ão, todas compara´ões de string são do tipo binário.

     

    Expressão com String

    Qualquer expressão que avalia para seqüência de caracteres contíguos. Elementos de uma expressão de string podem incluir uma fun´ão que retorne uma string, uma string literal, uma constante de string, ou uma variável de string.

     

    Variável

    Uma posi´ão de memória para armazenamento de dados que podem ser modificados durante execu´ão do programa. Cada variável tem um nome que a identifica dentro do seu nível de escopo.

  14. Pessoal,

     

    Aqui vai um 'mini-curso' sobre C/C++. Para todos que ainda não sabem programar. Ele estará dividas em aulas: estrutura seqüencial, condicional, repeti´ão, etc... Não irei abordar os princípios da lógica de programa´ão porque já existe um tópico sobre isto. Espero que gostem.

     

    parte 1:

     

    .:Conceitos Básicos:.

     

    :idea: Compilador

    Programa que compila nosso programa. Sugiro Bloodshed Dev C++

     

    :idea: Conceito de Variável

    Variavel é um número não determinado. Exemplo: x+5=10. No exemplo usamos a variavel x porque não sabemos o número, mas podemos calculá-lo.

     

    :idea: Tipos de dados

    Numérico: Podem ser fracionários(float) ou inteiros(int)

    Lógico: Do tipo booleano(or, and, not)

    Literal: Podem ser caracteres(char) ou texto(strings)

     

    Ps.: A linguagem C/C++ é case sensitive, ou seja, CASA é diferente de casa. Usamos sempre ;(ponto e vírgula) depois de cada argumento.

     

    .:Aula 1 - Estrutura Sequencial em C/C++:.

    Estruturas seqüencias são estruturas que seguem uma seqüencia. Ex.: 1. Leia 2. Calcule 3. Escreva

     

    :idea: Bibliotecas

    Bibliotecas são arquivos que contém várias fun´ões para sermos usadas. As chamamos no come´o do programa através da diretiva #include. Usaremos muitas a stdio.h que contem fun´ões de entrada e saida e conio.h para manipula´ão. Ex.: #include <stdio.h>

     

     

    :idea: Declara´ão de variaveis

    As variáveis são declaradas após a especifica´ão de seus tipos. Tipos: int, float, boolean e strings. Cada tipo tem o seu tamanho, que podem variar com o processador ou compilador.Ex.: int soma;

     

    :idea: Comando de atribui´ão

    É utilizado para atribuir valores ou opera´ões a variáveis, representado por = (sinal de igualdade).Ex.: x = 2+4;

     

    :idea: Comandos de Entrada

    É utilizado para receber os dados que foram digitados pelo usuário. Os dados recebidos são armazenados em variáveis. Em C/C++ usamos os comandos scanf, gets e cin. Em nossos exemplos usaremos o scanf. Ex.: scanf("%d", &dados); Isso significa. Computado, leia(scanf) a variavel do tipo inteiro(%d) e coloque-a no endere´o(&) da variavel dados.

     

    :idea: Comando de Saída

    Utilizado para mostrar dados na tela ou impressora. Comando: cout e printf. Usaremos o printf. Exemplo.: printf("O valor da soma: %d", soma); Significa: Computador, escreva(printf) "o valor da soma é" e mostre o valor que é inteiro(%d) da variával soma .

     

    :idea: Comentários

    Textos que podem ser inserido que o usuário não irá ver, somente nós. Comandos: /* texto */ ou // texto.

     

    :idea: Operadores e fun´ões pré definidas

    São destinadas a cálculos e manipula´ão de caracteres. Só irei colocar os básicos. Alguns:

     

    :idea: Operador de Atribui´ão

    Operador Ex.

    = x =y

     

    :idea: Operadores Matemáticos

    operador Comentário

    +, -,*,/ Para somar, subtrair, multiplicar e dividir

     

    Outros: %,++,--,+=, -=,*=,/=,%=,==,!=,<,>,<=,>=, etc...

     

    Exemplo de um programa para ler 2 numeros, soma-los e mostrar(Usando os conhecimentos da aula)

     

    #include <stdio.h> //Blioteca com fun´ões de entrada e saida

    #include <conio.h> //Biblioteca que contem o getch()

     

    main(){ //Abre o nosso programa

    int a, b, soma; //Declara´ão

    printf("Digite a: ");//Saida

    scanf("%d", &a); //Entrada

    printf("Digite b: ");

    scanf("%d", &b);

    soma = a+b; //Atribui´ão

    printf("A soma é %d", soma);

    getch(); //Faz o programa esperar uma tecla ser prescionada

    }

     

    parte 2:

    Aqui vai a próxima aula: estrutura Condicional

     

    .:Aula 2 - Estrutura Condicional:.

    Uma condi´ão é uma compara´ão que possui dois estados: verdeiro ou falso.

     

    Estrutura COndicional Simples

    Adicionado uma estrura de condi´ão, o comando só será executado se a condi´ão foi verdadeira.

    Exemplo: if condi´ão

    comando;

     

    Lembrando que, se houver mais de um comando, há necessidade de {}(Conceito de Blocos de comandos*).

    Exemplo: if condi´ão {

    comando1;

    comando2;

    }

     

    Estrutura Condicional Composta

    Utilizando o conceito acima. Se a condi´ão foi verdadeira, executa o comando 1, se falsa, executa o comando 2.

    Exemplo: if condi´ão

    comando1;

    else

    comando2;

    Entendendo: se condi´ao verdadeira, comando1, senão, comando2.

     

    Estrutura CASE

    Em alguns programas há necessidade de exclusividade de comandos, ou seja, se um comando for executado, os demais não serão. Usamos uma estrutura mais seletiva chama CASE.

     

    switch(seletor) //Para definir a variavel

    case opcao1: //'Caso opcao1 fa´a..rs

    comando1;

    break; //Para para e não executar os outros

    case opcao2:

    comando2

    break;

    default:

    cin >> "Opcao Invalida" //Caso nenhum for usado

     

    Entendendo: Se o seletor for igual a op´ão 1 somente o comando 1 será executado. Se o seletor for igual a op´ão 2, somente o comando 2 será executado. Se nenhum deles ou uma outra op´ão for digitada, escreverá na tela Opa´ão Invalida.

     

    Exemplo de programa com a aula de hoje: Programa para verificar se A é maior ou menor que B.

     

    #include <conio.h>

    #include <stdio.h>

     

    main() {

    int a, b;

     

    a=2;

    b=4;

     

    if(a>b)

    printf("A é maior que B");

    else

    printf("A é menor que B");

    getch();

    }

     

    parte 3:

     

    Aqui vai a 3ª aula. Estrutura de Repeti´ão

     

    .:Aula 3 - Estrutura de Repeti´ão:.

     

    Estrutura de Repeti´ão for

    Utilizada quando se sabe o número de vezes que o trecho do programa irá ser repetido.

    for(i=valor inicial; condi´ão; adi´ão ou subtra´ão de i)

    Exemplo:

    for(i=0; i<=5; i++)

    comando;

    Entendendo: A 1 parte atribui um valor a i. A 2 determinará o final da repeti´ão. E 3 irá alterar o valor de i. Assim nosso programa ira repetir 6 vezes, pois come´a do 0 e vai até 5 aumentando de um em um(i++)

     

    Estrutura de Repeti´ão while

    Usado quando o número de repeti´ão não é fixo. Os comandos serão repetidos até a condi´ão assumir valor falso. Exemplo:

    while(condi´ão){

    comando1;

    comando2;

    }

     

    Estrutura de Repeti´ão do-while

    A mesma coisa que o while, so que agora o teste de condi´ão acontecerá no fim. Exemplo:

    do {

    comando1;

    comando2;

    }while(condi´ão);

     

    Exemplo de um programa com estruta de repeti´ão: Programa para somar o intervalo de 1 a 100.

     

    #include <stdio.h>

    #include <conio.h>

     

    main() {

    int i, soma;

    soma=0;

     

    for (i=1; i<=100; i++)

    soma+=i;

    }

     

    parte 4:

    Um vetor são variáveis compostas homogêneas unidimencionalmente. NOssa, o que é isso?!?Analogamente seria uma string que contém mais de um valor. Por exemplo: Um vetor de tamanho 5, possui 5 posi´ões dentro dele. Visualiza´ão:

     

    ----------------------

    Vetor[5] | 2 | 4 | 7 | 3 | 9 |

    ----------------------

    Posi´ão 0 1 2 3 4

     

    Declarando um vetor

     

    O número de posi´ões fica entre colchetes. Declaramos com uma variavel comum, podendo ser int, char..etc

    Ex.:

    int vet[5];

    char vetor[32];

     

    P.S. "OLA" é um vetor d tipo char com 3 posi´ões: vet[3]={"O", "L", "A"};

     

    Atribuindo valores

     

    Quando atribuimos um valor ao vetor, o número de posi´ões entre os colchetes vira agora endere´o. Por exemplo: tenho um vetor de 5 posi´ões(Lembrando que come´a do 0 ficando assim: 0, 1, 2, 3, 4) e quero atribuir o valor 1 á 4 posi´ão: vet[3]=1;

    Para texto:

    strcpy(vetor,"Markos");

     

    Carregando um vetor

     

    for (i=0; i<=4; i++)

    cin >> vetor;

     

    Imprimindo um vetor na tela

     

    for (i=0; i<=4; i++)

    cout << vetor;

     

    parte 5:

    .: Aula 5 - Matrizes:.

     

    É um conjunto de variavés de mesmo tipo e identifica´ão pelo mesmo nome. Acho todo mundo viu matriz na escola, não? Se divide pelo número de linhas e colunas, entre colchetes. matriz[linha][coluna]

    Exemplo:

    m[3][3];

    0 1 2

    ----------

    | | | | 0

    ----------

    | | | | 1

    ----------

    | | | | 2

    ----------

     

    Declarando uma matriz

    Ex.:

    int m[2][3]; números inteiros

    float x[4][2]; números fracionários

    char y[4][4]; caracteres

     

    Atribuindo valores

     

    Lembrando que, assim como em vetor, o qe antes erá dimensão([l][c]) agora vira endere´o.

    Ex.: Atrui o valor 5 referente à linha 1 coluna 4

    x[1][4]=5;

     

    Carregando uma matriz

    Ex.: Matriz 3 por 3

     

    for (i=0; i<=2; i++) { //percorre a linha

    for (j=-0; j<-3; j++) //percorre a coluna

    cin >> matriz[j];

    }

     

    Imprimindo uma matriz na tela

     

    for (i=0; i<=2; i++) {

    for (j=-0; j<-3; j++)

    cout << matriz[j];

    }

     

    é isso aew e sem mais!!!

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.