Obra: Programar em C++/Alô, Mundo!
Matéria: Física
Nível: médio
olá mundo comum no aprendizado de uma linguagem de programação que seu primeiro programa faça com que computador exiba olá mundo na linguagem este primeiro programa já introduz muitos conceitos sobre linguagem veja código do nosso primeiro programa include using namespace std int main cout assim como para começar dirigir não necessário saber toda mecânica do carro para programar não precisamos logo de início nos prender todos os detalhes no programa acima vamos dar atenção apenas ao conteúdo que se encontra entre as chaves cout cout cout vem de onsole out saída do console onde geralmente temos saída no monitor cout seguido do operador da frase que se quer informar entre aspas olá mundo intuitivamente isso nos leva ideia de que sequência de caracteres será levada ao cout return este comando termina programa estudaremos melhor no capítulo sobre funções retornos atenção caso seu sistema operacional seja microsoft windows você deve adicionar imediatamente antes de return seguinte linha system pause função system executa um comando do windows como se próprio usuário digitasse pause no prompt do msdos este comando deve ser evitado pois diminui portabilidade do programa já que pause só existe nos sistemas microsoft no entanto se está usando windows necessário adicionar esta linha caso contrário computador escreveria olá mundo fecharia programa antes que pudéssemos ler qualquer coisa uma forma elegante de lidar com estas peculiaridades do windows usar predefinições de forma que programa seja portável para qualquer sistema operacional if defined estas linhas serão executadas apenas quando programa for compilado por alguma versão do microsoft visual system pause endif em sistemas parecidos com unix como gnu linux ou freebsd pode se usar um terminal de linha de comando facilmente pois os mesmos possuem recurso facilmente acessível mesmo quando usuário está usando interface gráfica por isso para esses sistemas um comando para solicitar pausa ao sistema não necessário entrada de dados comentários no código comentário um recurso muito útil em programação ele permite que programador adicione texto ao programa para facilitar entendimento do programa por parte de outros programadores ou até dele mesmo os comentários são usados para explicar trechos de código adicionar cláusulas qualquer texto em geral vamos agora para um programa mais completo com entrada de dados comentários dentro do código este um comentário de uma linha este um comentário de várias linhas include using namespace std int main int cout cout comentários no programa observemos esta linha este um comentário de uma linha esta uma linha de comando para preprocessador ou precompilador que preprocessador durante processo de montagem do programa em formato binário existem três fases principais compilação fase de ligação link preprocessador um programa invocado pelo compilador para remover comentários substituir certas partes do programa conforme necessidade do código criado pelo programador preprocessa
stituir certas partes do programa conforme necessidade do código criado pelo programador preprocessador faz algumas alterações no texto fonte que basicamente consistem em eliminar pedaços de código ou substituí los por outros copy paste enfim mesmo altera código fonte contendo comandos iniciados com outros comandos específicos por outro código sem comandos de puramente em linguagem ao analisar código preprocessador encontra sequência vai eliminar texto que está seguir até ao fim da linha mais uma forma de adicionar comentários este um comentário de várias linhas linguagem permite também fazer comentários por mais do que uma linha chama se comentário por bloco que faz eliminar tudo que encontrar entre sequência inicial final vantagem de termos esta possibilidade poder comentar nosso código existem algumas regras de boa conduta para comentários que foram criadas por pessoas que já têm muito tempo nisto uma criar logo no topo um comentário dizer que nosso programa que faz numa forma geral outra fazer comentários cada função que aparece no código explicar outra comentar uma linha mais obscura mais difícil de entender que não óbvia outra não comentar tudo comentar deve ser para sobressair esta última regra pode ser esquecida quando programa didático neste caso pode se usar programa como texto comentado incluindo cabeçalhos include símbolo uma chamada de atenção ao compilador dizer que aquela linha para preprocessador depois temos include que basicamente diz para incluir código incluir quê deve incluir ficheiro arquivo iostream ut stream fluxo de entrada saída padrão na maioria das vezes como entrada padrão temos teclado como saída temos monitor este ficheiro arquivo contém declarações das funções definições que nosso código fonte irá necessitar este código que será incluído chamado de cabeçalho devido uma característica evidente fato de ser código de declaração inicial do programa que deve estar no topo do arquivo ficheiro existem outros arquivos ficheiros cabeçalho iostream para fluxos de entrada saída mas temos muitos mais para matemática manipulação de tempo tratamento de caracteres etc na maioria das vezes os arquivos de cabeçalho fazem parte de uma biblioteca podemos ver na parte dos anexos algumas bibliotecas que existem juntamente com as funções de cada uma nós próprios podemos criar uma biblioteca com código nosso próprio cabeçalho até podemos comprar bibliotecas existentes comercialmente através de empresas especializadas em desenvolvimento que também terão seus arquivos ficheiros de cabeçalhos mas que são bibliotecas são arquivos com um conjunto de códigos que alguém fez antes as que enunciamos antes são as standard são aquelas que têm as funcionalidades básicas pertencentes aos padrões da linguagem repare se que precisamos da biblioteca até para escrever no ecrã na tela stream out que nos permite utilizar cout ficheiro arquivo iostream está envolvido em isto significa que preprocessador deve procurar ficheiro arquivo no sítio diretório usua
nvolvido em isto significa que preprocessador deve procurar ficheiro arquivo no sítio diretório usual que onde compilador usa como padrão para os includes se tivéssemos ficheiro arquivo iostream envolvido em significaria que preprocessador deveria procurá lo dentro de uma lista de diretórios de inclusão includes iniciando pelo diretório atual as bibliotecas são compostas por partes um índice de todas as funções definições declarações cabeçalho depois definição de todas as funções existentes no índice arquivos de código as diretivas de não terminam com ponto vírgula como nas instruções namespace using namespace std observando esta linha alguns tradicionais programadores em linguagem têm uma novidade namespaces são espaços de nomes dentro do código eles funcionam entre outras coisas como um meio de evitar duplicação de nomes dentro de um projeto extenso que geralmente contam com inúmeros arquivos usa os namespaces para organizar os diferentes nomes usados nos programas cada nome usado no ficheiro arquivo biblioteca standard iostream faz parte do namespace chamado de std objeto de saída padrão cout está definido dentro do namespace std ele um objeto da classe ostream output stream para acessá lo temos que referenciá lo como std cout para evitar que tenhamos que informar std todas as vezes que precisarmos usar os recursos deste namespace podemos informar que estamos usando dentro do arquivo atual conforme vemos na linha declarada no início deste tópico namespace permite que as variáveis sejam localizadas em certas regiões do código declarar namespace std permite que todos os objetos funções da biblioteca standard input output possam ser usados sem qualquer qualificações específicas desta maneira não mais necessário uso de std este um conceito avançado que podemos explorar mais vamos deixá lo para depois função main int main como na linguagem função principal de entrada do programa partir do sistema operacional função main por isso mesmo ela obrigatória em qualquer programa se não existisse uma main function não haveria entrada para que sistema iniciasse programa todas as funções são declaradas usadas com operador assim que compilador reconhece que estas são funções ideia de ter funções permitir encapsulamento de uma ideia ou operação dar um nome isso depois chamar essa operação de várias partes do programa simplesmente usando seu nome as funções declaradas como membros de uma classe de objetos podem ser chamadas de métodos do ponto de vista funcional um código dentro de uma função executa operações em outra parte do programa que não aquela de onde foi chamada por este motivo as mesmas contam com um mecanismo de passagem de dados ao declarar uma função indicamos quais os dados que entram que ela deve fornecer quem lhe chamou pode se dizer que tal qual uma função matemática função em poderá ser substituída depois de sua execução pelo valor que ela retorna este valor será especificado antes do nome da função na declaração da mesma conforme vemos no iníc
a este valor será especificado antes do nome da função na declaração da mesma conforme vemos no início deste tópico int significa que função vai retornar um inteiro existem outros tipos de dados como por exemplo os seguintes int que abreviatura de inteiro char que abreviatura de caratere float que abreviatura de floating point number ou seja uma representação para número real vejamos um exemplo quando criamos uma função soma obviamente só para ilustração pois isso não necessário podemos fazer int soma int int return agora imagine que tenhamos que somar colocando resultado em outra variável chamada valor para isto faremos valor soma primeiro analisamos qual resultado depois substituímos função pelo valor que ela retorna valor simples não final de sequência de instruções ponto vírgula funciona como ponto final separa as instruções contextos repare que apenas as funções ou melhor as definições de funções as diretivas de que não têm importante notar que código poderia ser todo escrito quase numa linha tipo int main int cout cout realmente que faz terminação das instruções ao encontrar as chaves compilador reconhece como um delimitador de bloco ou body corpo corpo de uma função ou bloco de código começa com termina com como temos as instruções agrupadas já não há necessidade de colocar no final para indicar onde fim do bloco no nosso exemplo existem instruções no corpo da função as instruções são executadas por ordem do topo até ao fim menos que existam funções que alterem fluxo da leitura ou que existam códigos de controle de execução execution control codes que alteram caminho de execução entrada saída cin cout cout cout resultado seria impresso em hexadecimal para entrada de dados temos cin que esta linha faz colocar valor que foi digitado numa área de memória que foi chamada de da mesma forma que cout existe para saída de dados temos outro objeto para entrada através do teclado este objeto chamado de onsole in cin seguindo mesma analogia observe que operador usado para dar ideia de que os dados estão vindo do cin para variável cout aqui voltamos utilizar objeto cout primeiro para imprimir no na ecrã tela frase você digitou número depois vai buscar valor que está naquela área de memória que chamamos de por fim coloca fim de linha através de em podemos usar um finalizador de linha chamado endl uso do mesmo mais eficiente pois descarrega os dados do stream logo após finalização da linha função system pause system pause maioria dos compiladores quando estão executando em modo gráfico fecha console de saída assim que programa finaliza isto impede que possamos ver que aconteceu principalmente quando programa contém apenas umas poucas instruções função system faz parte do padrão da linguagem ela executa uma chamada de sistema ou seja ela passa um comando para sistema que neste caso pause como já informamos no início deste capítulo este comando destinado sistemas da microsoft coloquei esta linha para que programa não finalizasse sem que pudéssemos ver uma
stemas da microsoft coloquei esta linha para que programa não finalizasse sem que pudéssemos ver uma janela com resultado se não fizesse janela abriria fecharia sem que pudéssemos ver aconteceu durante execução do programa em sistemas como gnu linux freebsd solaris etc temos acesso terminais de console compiladores em linha de comando assim basta compilar programa sem esta linha depois executá lo para ver resultado retornando valor return faz com que função retorne valor zero como esta função principal do programa por onde sistema operativo operacional iniciou execução do mesmo este retorno recebido pelo sistema comum que valores diferentes de zero sejam interpretados como erro do programa esta instrução manda retornar valor zero para sistema operativo operacional windows unix este zero representa dizer que programa finalizou normalmente pode acontecer que programa não finalize como seria de esperar ele tem um crash ou porque ficou com falta de memória sistema operativo operacional necessita de lidar com estas terminações anormais de uma forma diferente das normais por isso que programa diz ao sistema operativo operacional que terminou normalmente questão porque que sistema operativo necessita de saber que programa terminou bem