Baixe o app para aproveitar ainda mais
Prévia do material em texto
Ju d so n S an to s S an ti ag o INTRODUÇÃO AO C++ Programação de Computadores Resumo da Aula Estrutura básica de um programa C++ Comandos de Entrada/Saída Constantes/Variáveis Declaração de variáveis Atribuição de valor Alteração de variáveis Iniciação ao C++ Uma diretiva de pré-processamento Cabeçalho da função Comentário Dispensa uso do nome longo std::cout, std::endl Imprime mensagem na tela Inicia uma nova linha Mais saída de dados Finaliza a função main() Espera pelo pressionamento de uma tecla C o rp o d a fu n çã o // primeiro.cpp – mostra uma mensagem #include <iostream> int main() { using namespace std; cout << "Bem vindo ao C++."; cout << endl; cout << "Meu primeiro programa!" << endl; system ("pause"); return 0; } Iniciação ao C++ A linguagem C++ faz diferença entre letras maiúsculas e minúsculas Só existe uma forma de escrever cout: cout √ kout × Cout × cour × COUT × coot × O compilador retorna um erro de identificador desconhecido se for usada uma palavra inválida int main() { instruções return 0; } A estrutura principal da função main() é: A Função main() Corpo da função Definição da função Cabeçalho da função Nome da função Instruções sempre terminam com ponto e vírgula Instrução de retorno Instruções Para traduzir corretamente as instruções, o compilador precisa saber exatamente onde uma instrução termina: FORTRAN: uma instrução por linha PASCAL: separa uma instrução da próxima com ; C/C++: cada instrução termina por um ; cout << "Bem vindo ao C++."; cout << "Meu primeiro programa!" << endl; return 0; Instruções Ao contrário de PASCAL, na linguagem C++ o ponto e vírgula faz parte da instrução // primeiro.cpp – mostra uma mensagem #include <iostream> int main() { using namespace std; cout << "Bem vindo ao C++."; cout << endl; cout << "Meu primeiro programa!" << endl; system ("pause"); return 0; } O Cabeçalho da Função O cabeçalho de uma função descreve a interface da função A função main é a interface entre o sistema operacional e o seu programa int main() Lista de parâmetros/argumentosTipo de retorno O Cabeçalho da Função Muitos programas existentes usam o cabeçalho clássico da linguagem C Uma alternativa válida é dizer explicitamente que a função não recebe argumentos main() // estilo original C × int main(void) // estilo explícito √ O Cabeçalho da Função Alguns programadores usam este cabeçalho para omitir a instrução de retorno O padrão ANSI/ISO C++ permite que o programador omita a instrução de retorno (unicamente para a função main) void main() // não está no padrão C++ × int main() { } // sem retorno explícito = return 0; √ Comentários Comentários podem ser introduzidos com o uso de barras duplas O compilador ignora os comentários Comentários devem ser usados para documentar os programas: Ajudam outros a entenderem o programa Permitem que o programador lembre o que fez meses ou anos atrás // comentários acabam no final da linha O Pré-processador de C++ Um pré-processador é um programa que processa (modifica) o código fonte antes da compilação O pré-processador trata as diretivas que iniciam com o símbolo # A diretiva #include adiciona o conteúdo de um arquivo ao código fonte do programa // adiciona o arquivo iostream ao programa #include <iostream> O Arquivo iostream O arquivo iostream contém as definições das funções de entrada e saída de dados i = input (entrada) o = output (saída) stream = fluxo ou canal Programas que usam cin e cout para entrada e saída de dados devem incluir o arquivo iostream // necessário para usar cin e cout #include <iostream> Arquivos de Cabeçalho Arquivos como iostream são chamados: Arquivos de cabeçalho (header files) ou Arquivos de inclusão (include files) A tradição da linguagem C/C++ era usar a extensão .h para identificar estes arquivos iostream.h – funções de entrada/saída math.h – funções matemáticas A convenção de C++ é não usar extensão As extensões são reservadas para antigos arquivos de cabeçalho da linguagem C Arquivos de Cabeçalho Cabeçalho Convenção Exemplo Usado por C++ estilo antigo .h iostream.h Programas C++ C estilo antigo .h math.h Programas C e C++ C++ novo estilo Sem extensão iostream Programas C++ C convertido Prefixo c cmath Programas C++ C++ aceita arquivos de cabeçalho: Na nova convenção sem extensão. Ex.: iostream No antigo formato do C. Ex.: math.h Convertidos do C para C++. Ex.: cmath Namespaces Ao incluir iostream em um programa é preciso acrescentar a seguinte diretiva using: Isto permite usar os objetos cin e cout sem a designação do espaço de nome ao qual eles pertencem #include <iostream> using namespace std; // utilização sem a diretiva using std::cout << "Bem vindo ao C++."; Namespaces É um recurso que permite combinar códigos existentes de diferentes fornecedores. Se duas empresas desenvolverem um objeto cout, elas o farão sob diferentes namespaces Microflop::cout – objeto cout da Microflop Wanda::cout – objeto cout da Wanda Para usar todos os objetos da Microflop: using namespace Microflop; Namespaces As funções, classes e objetos padrões da linguagem C++ foram colocados no espaço de nomes std Para ter acesso a todos os objetos definidos no espaço de nomes std: Para usar apenas alguns: using std::cout; using std::cin; using std::endl; using namespace std; Saída de Dados com cout O programa primeiro.cpp usa cout para imprimir uma mensagem na tela: cout << "Bem vindo ao C++."; conjunto de caracteres (string) Um objeto predefinido que sabe como mostrar números e caracteres. Operador de inserção: indica a direção do fluxo de informações O Manipulador endl O programa primeiro.cpp usa cout também para pular linhas na tela: Enviando endl para a saída faz o cursor saltar para o início da próxima linha Assim como cout, endl é definido no arquivo de cabeçalho iostream cout << endl; Manipulador cout não pula linha automaticamente: Produzirá a saída: O Bom, oruim, e o desconhecido. O Manipulador endl cout << " O Bom, o "; cout << " ruim, "; cout << " e o desconhecido. "; cout << endl; O Caractere de Nova Linha C++ possui uma outra forma de produzir um salto de linha na saída: \n A combinação \n é considerada como um único caractere // \n significa comece uma nova linha cout << " E agora?\n "; // os pares de instruções abaixo são equivalentes cout << " Júpiter é um planeta grande.\n "; cout << " Júpiter é um planeta grande. " << endl; cout << " \n "; cout << endl; Formatação do Código Fonte Ao editar um código C++ o programador tem muita flexibilidade na formatação do código #include <iostream> int main () { using namespace std; cout << "Bem vindo ao C++." ;cout << endl; cout << "Meu primeiro programa!" << endl; system ("pause"); return 0; } A leitura do código fonte é facilitada se o programador seguir as seguintes regras: // primeiro.cpp – mostra uma mensagem #include <iostream> using namespace std; int main() { cout << "Bem vindo ao C++."; cout << endl; cout << "Meu primeiro programa!" << endl; system("pause"); return 0; } Estilo de Código C++ Uma instrução por linha Abra e feche chaves em linhas separadas Instruções indentadas Sem espaços entre o nome da função e os parênteses Outras Instruções Básicas// cenouras.cpp – programa de processamento de comida #include <iostream> using namespace std; int main() { int cenouras; // declara uma variável inteira cenouras = 25; // atribui um valor a uma variável cout << "Eu tenho "; cout << cenouras; // imprime o valor da variável cout << " cenouras."; cout << endl; cenouras = cenouras – 1; // modifica a variável cout << "Agora eu tenho " << cenouras << " cenouras." << endl; system("pause"); return 0; } Constantes versus Variáveis Uma constante tem valor fixo e inalterável Decimal: números na base 10 são escritos de forma direta. Ex.: 25, 8390, -403 Hexadecimal: números na base 16 devem ser precedido por 0x (representação comum para endereços de memória). Ex.: 0x19, 0x20C6, 0xFFFFFE6D Octal: números na base 8 devem ser precedidos por um 0 (zero). Ex.: 031, 020306, 037777777155 Constantes versus Variáveis Uma constante tem valor fixo e inalterável Caractere: deve ser escrito entre aspas simples. Ex.: 'a', 'b', 'B', '*', '?' String: um conjunto de caracteres deve ficar entre aspas duplas. Ex.: "primeiro programa", "oi", "a" Existe uma diferença entre as constantes 'a' e "a": 'a' é um caractere "a" é um conjunto de caracteres Constantes versus Variáveis // constvar.cpp – exemplifica o uso de constantes #include <iostream> using namespace std; int main() { cout << "A letra " << 'm'; cout << " tem " << 3 << " pernas." << endl; char ch = 'M'; // tipo caractere int num = 0x1E; // tipo inteiro cout << "Dez letras M " << ch; cout << " têm " << num << " pernas." << endl; system("pause"); return 0; } Constantes versus Variáveis Uma variável é um dos métodos que a linguagem C++ fornece para o programador guardar informações no computador Informações guardadas em variáveis são armazenadas na memória do computador Dados 0xCB20 0xCB21 0xCB22 0xCB23 0xCB24 0xCB25 0xCB26 0xCB27 Declaração de Variáveis Para guardar informação na memória é preciso indicar: O endereço de armazenamento A quantidade de memória necessária 00100110 00001100 00110110 01011000 Endereços de memória Dados 32 bits = 4 bytes 0xCB20 0xCB21 0xCB22 0xCB23 0xCB24 0xCB25 0xCB26 0xCB27 Declaração de Variáveis A forma mais simples de guardar informações é através de uma declaração de variável A declaração fornece: O tipo da informação (quantidade de memória) Um rótulo para um endereço de memória int cenouras; Nome da variável (rótulo) Tipo de dado armazenado Marca o fim da instrução Declaração de Variáveis 0xCB20 = cenouras 0xCB21 0xCB22 0xCB23 0xCB24 0xCB25 0xCB26 0xCB27 Endereços de memória Dados int int cenouras; Nome da variávelTipo de dado armazenado Declaração de Variáveis No exemplo anterior: O programa alocará memória suficiente para guardar um inteiro (número natural) O programa usará cenouras para indicar um endereço de memória cenouras é chamada de variável porque o seu valor pode ser alterado Em C++ todas as variáveis devem ser declaradas Declaração de Variáveis Por que as variáveis devem ser declaradas? Em BASIC as variáveis são criadas automaticamente A criação automática de variáveis pode gerar erros difíceis de achar Programa válido em BASIC cenouras = 34; ... cenoura = cenouras + 1; PRINT cenouras Declaração de Variáveis A declaração pode ser feita em qualquer ponto do programa, sempre antes do primeiro uso da variável #include <iostream> using namespace std; int main() { cout << "Eu tenho vegetais para vender.\n"; int cenouras, beterrabas, alfaces; cenouras = 25; beterraba = 10; alfaces = 18; ... } Atribuição de Valor Uma instrução de atribuição coloca um valor em um endereço de memória cenouras = 25; ValorRótulo do endereço de memória Operador de atribuição 00000000 00000000 00000000 00011001 25 0xCB20 = cenouras 0xCB21 0xCB22 0xCB23 0xCB24 0xCB25 0xCB26 0xCB27 Atribuição de Valor Em linguagem C/C++ é permitido usar o operador de atribuição de forma serial int main() { int cenouras; // declara uma variável int alfaces; // declara outra variável int tomates; // declara mais uma variável // atribui 25 a todas as variáveis cenouras = alfaces = tomates = 25; ... } Atribuição de Valor A segunda instrução de atribuição em cenouras.cpp mostra que o valor de uma variável pode ser alterado A expressão matemática é avaliada e o resultado é atribuído a variável cenouras cenouras = cenouras – 1; // modifica a variável cenouras = cenouras – 1; Expressão Resultado Imprimindo Variáveis cout é capaz de imprimir o conteúdo de variáveis cout imprime tanto valores string como valores inteiros cout << cenouras; cout << "cenouras"; cout << cenouras; Variável inteiraPeriférico de Saída cout versus printf cout é inteligente o suficiente para identificar o tipo de dado e convertê-lo para a saída em modo texto // função de saída de dados da linguagem C++ cout << "Imprimindo uma string: " << "25"; cout << "Imprimindo um inteiro: " << 25; cout << "Imprimindo uma string: " << "cenouras"; cout << "Imprimindo um inteiro: " << cenouras; // função de saída de dados da linguagem C printf("Imprimindo uma string: %s", "cenouras"); printf("Imprimindo um inteiro: %i", cenouras); Entrada de Dados em C++ // lerinfos.cpp – entrada e saída de dados #include <iostream> using namespace std; int main() { int cenouras; cout << "Quantas cenouras você tem?" << endl; cin >> cenouras; // entrada de dados em C++ cout << "Aqui estão mais duas."; cenouras = cenouras + 2; // concatena a saída cout << "Agora você tem " << cenouras << " cenouras." << endl; system("pause"); return 0; } Entrada de Dados com cin O valor digitado no teclado é atribuído a variável cenouras O arquivo de cabeçalho iostream deve ser incluído para usar cin cin >> cenouras; Variável tipo inteiroA entrada padrão é o teclado Operador de extração Concatenando com cout cout permite concatenar múltiplos elementos em uma única instrução Não há diferença entre espaço, tabulação e carriage return (enter): // concatena a saída cout << "Agora você tem " << cenouras << " cenouras." << endl; // concatena a saída cout << "Agora você tem " << cenouras << " cenouras." << endl; // concatena a saída cout << "Agora você tem "; cout << cenouras; cout << " cenouras."; cout << endl; Conclusão Programas começam a sua execução a partir de uma função chamada main() Uma função consiste em: Um cabeçalho: define o tipo de valor recebido e retornado pela função Um corpo: consiste em uma série de instruções entre um par de colchetes ({}) Toda instrução da linguagem C++ termina com ponto e vírgula Conclusão A diretiva de pré-processamento #include insere o conteúdo de um arquivo no programa As instruções de entrada (cin) e saída (cout) de dados estão definidas no arquivo de inclusão iostream Dados podem aparecer em um programa na forma de constantes ou de variáveis
Compartilhar