LINGUAGEM DE PROGRAMAÇÃO C++ Prof. Ed LINGUAGEM DE PROGRAMAÇÃO Uma linguagem de programação é um método padronizado para expressar instruções para um computador. É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador. LINGUAGEM DE PROGRAMAÇÃO Uma linguagem permite que um programador especifique precisamente sobre quais dados um computador vai atuar, como estes dados serão armazenados ou transmitidos e quais ações devem ser tomadas sob várias circunstâncias. LINGUAGEM DE PROGRAMAÇÃO O conjunto de palavras, compostos de acordo com essas regras, constituem o código fonte de um software. Esse código fonte é depois traduzido para código de máquina, que é executado pelo processador. LINGUAGEM DE PROGRAMAÇÃO Linguagens de programação são ferramentas importantes para que programadores e engenheiros de software possam escrever programas mais organizados e com maior rapidez. Linguagens de programação também tornam os programas menos dependentes de computadores ou ambientes computacionais específicos (propriedade chamada de portabilidade). LINGUAGEM DE PROGRAMAÇÃO Isto acontece porque programas escritos em linguagens de programação são traduzidos para o código de máquina do computador no qual será executado em vez de ser diretamente executado. Uma meta ambiciosa do Fortran, uma das primeiras linguagens de programação, era esta independência da máquina onde seria executada. LINGUAGEM DE PROGRAMAÇÃO Uma linguagem de programação pode ser convertida, ou traduzida, em código de máquina por compilação ou interpretação, que juntas podem ser chamadas de tradução. LINGUAGEM DE PROGRAMAÇÃO Se o método utilizado traduz todo o texto do programa (também chamado de código), para só depois executar (ou rodar, como se diz no jargão da computação) o programa, então diz-se que o programa foi compilado. O mecanismo utilizado para a tradução é um compilador (que por sua vez nada mais é do que um programa). LINGUAGEM DE PROGRAMAÇÃO A versão compilada do programa tipicamente é armazenada, de forma que o programa pode ser executado um número indefinido de vezes sem que seja necessária nova compilação, o que compensa o tempo gasto na compilação. Isso acontece com linguagens como Pascal e C. LINGUAGEM DE PROGRAMAÇÃO Se o texto do programa é traduzido à medida em que vai sendo executado, como em Javascript, Python ou Perl, num processo de tradução de trechos seguidos de sua execução imediata, então diz-se que o programa foi interpretado e que o mecanismo utilizado para a tradução é um interpretador. LINGUAGEM DE PROGRAMAÇÃO Programas interpretados são geralmente mais lentos do que os compilados, mas são também geralmente mais flexíveis, já que podem interagir com o ambiente mais facilmente (freqüentemente linguagens interpretadas são chamadas também de script). COMPILADOR Um compilador é um programa que, a partir de um código escrito em uma linguagem, o código fonte, cria um programa semanticamente equivalente porém escrito em outra linguagem, código objeto. Um compilador é um dos dois tipos mais gerais de tradutores, sendo que o segundo tipo que a ele deve ser comparado é um interpretador. COMPILADOR Normalmente, o código fonte é escrito em uma linguagem de programação de alto nível, com grande capacidade de abstração, e o código objeto é escrito em uma linguagem de baixo nível, como uma sequência de instruções a ser executada pelo processador. INTRODUÇÃO AO C++ C++ é uma linguagem derivada da linguagem C. O que foi adicionado em C++ foram as classes, os objetos e a programação orientada a objeto. ESTRUTURA BÁSICA DE UM PROGRAMA EM C++ A unidade fundamental de programas C++ são as funções. Um programa C++ consiste em uma ou várias funções. ESTRUTURA BÁSICA DE UM PROGRAMA EM C++ Forma geral das funções C++ tipo nome() { instrucao_1; instrucao_2; . . instrucao_n; } ESTRUTURA BÁSICA DE UM PROGRAMA EM C++ O primeiro programa #include<iostream.h> void main() { cout<<“Primeiro programa”; } ESTRUTURA BÁSICA DE UM PROGRAMA EM C++ Nome das funções Este programa compõe-se de uma única função chamada main. O nome de uma função pode ser qualquer um, com exceção de main, reservado para a função que inicia a execução do programa. Se existir só uma função, esta deve ser main. O programa termina quando for encerrada a execução da função main. ESTRUTURA BÁSICA DE UM PROGRAMA EM C++ Chaves Toda função C++ deve começar com uma chave de abertura de bloco { e deve terminar com uma chave de fechamento de bloco }. As chaves delimitam o corpo da função. ESTRUTURA BÁSICA DE UM PROGRAMA EM C++ Espaços em branco Você pode inserir espaços em branco e tabulações e pular linhas à vontade em seus programas. O compilador ignora esses caracteres. ESTRUTURA BÁSICA DE UM PROGRAMA EM C++ Instruções de programa O nosso primeiro programa contém uma única instrução: Cout<<“Primeiro Programa”; Toda instrução C++ termina com um ponto-e-vírgula. ESTRUTURA BÁSICA DE UM PROGRAMA EM C++ Instruções de programa Uma função pode ter qualquer número de instruções. As instruções devem ser escritas entre as chaves que delimitam o corpo da função e são executadas na ordem em que as escrevemos. ESTRUTURA BÁSICA DE UM PROGRAMA EM C++ Imprimindo usando cout Cout (pronuncia-se “c out”) é um objeto da classe de I/O (leitura e impressão) predefinida em C++. O PRÉ-PROCESSADOR C++ A primeira linha do nosso programa não é uma instrução C++ e sim uma diretiva do préprocessador C++. A diretiva #include provoca a inclusão de outro arquivo em nosso programa-fonte. O PRÉ-PROCESSADOR C++ Quando usamos os sinais < e >, o arquivo é procurado somente no diretório INCLUDE. Quando usamos aspas duplas, o arquivo é procurado primeiro no diretório atual e depois, se não for encontrado, no diretório INCLUDE. O PRÉ-PROCESSADOR C++ O arquivo iostream.h é um exemplo de arquivo de inclusão. Ele contém declarações necessárias ao uso do objeto cout e do operador de inserção <<. Sem essas declarações, o compilador não reconhece cout e <<. IMPRIMINDO NUMA NOVA LINHA Vamos alterar o primeiro programa: #include<iostream.h> void main(){ cout<<“Primeira instrucao\n”; cout<<“Segunda instrucao”; } CADEIA DE CARACTERES CONSTANTE A expressão “Primeiro programa” é um exemplo de cadeia de caracteres constante. A linguagem C++ reconhece uma cadeia de caracteres constante quando delimitada por aspas duplas, como mostrado na expressão anterior. ASPAS SIMPLES OU ASPAS DUPLAS Algumas linguagens de programação permitem o uso de aspas simples ou duplas indistintamente. Em C++, as aspas simples servem para representar um único caractere ASCII com um valor numérico entre 0 e 255 e as aspas duplas, para representar cadeias caracteres. SEGUNDO PROGRAMA #include<iostream.h> int main(){ cout << “Venus esta a “ << 67 << “milhoes de milhas” << ‘\n’ << “do sol”; } TERCEIRO PROGRAMA #include<iostream.h> int main(){ cout<<“A letra “ << ‘j’; cout<<“ pronuncia-se “<<“jota”<<‘.’; } TERCEIRO PROGRAMA Observe que ‘j’ é delimitado por aspas simples, enquanto ”jota” é delimitado por aspas duplas. Isto indica ao compilador como diferenciar um caractere de uma cadeia de caracteres. TERCEIRO PROGRAMA Note também que a saída é escrita em duas linhas de programa, o que não constitui duas linhas impressas de texto. Se você desejar imprimir um caractere de nova linha, deve inseri-lo explicitamente. VARIÁVEIS As variáveis são o aspecto fundamental de qualquer linguagem de programação. Uma variável em C++ é um espaço de memória reservado para armazenar um certo de tipo de dado e tendo um nome para referenciar o seu conteúdo. VARIÁVEIS Uma variável é um espaço de memória que pode conter, a cada tempo, valores diferentes. VARIÁVEIS #include<iostream.h> int main(){ int num1; num1=44; cout<<\nO primeiro numero é “<<num1; int num2; num2=88; cout<<“\nO segundo numero é “<<num2; } DECLARAÇÃO DE VARIÁVEIS As instruções: int num1; int num2; São exemplos de declaração de variáveis, isto é, apresentam um tipo int e um nome para acessar seu conteúdo. DECLARAÇÃO DE VARIÁVEIS Uma declaração de variável consiste no nome de um tipo, seguido do nome da variável, seguido de ponto-e-vírgula. As variáveis devem ser declaradas antes de serem usadas no programa. Elas podem ser declaradas em qualquer parte do programa. DECLARAÇÃO DE VARIÁVEIS Se você tiver mais de uma variável do mesmo tipo, poderá declará-las de uma única vez, separando seus nomes por vírgulas. int aviao, foguete, helicoptero; TIPOS DE VARIÁVEIS O tipo de uma variável informa a quantidade de memória, em bytes, que a variável ocupará e a forma como um valor deverá ser armazenado e interpretado. Existem cinco tipos básicos de variáveis. TIPOS DE VARIÁVEIS TIPO BIT ESCALA char 8 -128 a 127 int 16 -32768 a 32767 float 32 3.4E-38 a 3.4E+38 double 64 1.7E-308 a 1.7E+308 void 0 nenhum valor INICIALIZAÇÃO DE VARIÁVEIS Inicializar uma variável significa atribuir um valor a ela na mesma instrução de sua declaração. VARIÁVEIS EM PONTO FLUTUANTE (FLOAT) Números em ponto flutuante correspondem ao que os matemáticos chamam de “números reais”. Existem várias maneiras de escrever números em ponto flutuante. VARIÁVEIS EM PONTO FLUTUANTE (FLOAT) A notação “3.16E7” é um meio de indicar que 3.16 será multiplicado por 10 elevado à potência 7, isto é, 31600000. Esta indicação chama-se notação científica. VARIÁVEIS EM PONTO FLUTUANTE (FLOAT) Valores armazenados em variáveis float são guardados em duas partes: mantissa e expoente. NOMES DE VARIÁVEIS Em C++, letras maiúsculas e minúsculas são diferentes. Em C++, somente os 32 primeiros caracteres são significativos. Uma variável não pode ter o mesmo nome de uma palavra-chave. OPERADOR DE ATRIBUIÇÃO Em C++, o sinal de igual não tem a interpretação dada em matemática. Representa a atribuição da expressão à sua direita à variável à sua esquerda. Atribuições múltiplas. OPERADORES ARITMÉTICOS + Soma - Subtração * Multiplicação / Divisão % Módulo (somente com inteiros) LENDO COM CIN E O OPERADOR DE EXTRAÇÃO >> O objeto cin (“C in”) manipula toda entrada do teclado por meio do operador de extração >> que conecta a entrada de dados à variável que a conterá. MÚLTIPLAS ENTRADAS COM CIN #include<iostream.h> void main(){ cout<<“\nDigite as notas das 4 provas: “; float p1,p2,p3,p4; cin>>p1>>p2>>p3>>p4; float media=(p1+p2+p3+p4)/4; cout<<“\nMedia: “<<media; } CONVERSÕES DE TIPO E O OPERADOR DE MOLDE Suponhamos que desejemos imprimir o valor numérico de um caractere da tabela ASCII. Para isso, usaremos um novo operador chamado operador de molde, que consiste em escrever o nome do tipo desejado e em seguida o valor ou a expressão a ser avaliada entre parênteses. Char ch = ‘A’; Cout << int(ch); //Imprime 65 AS FUNÇÕES GETCHE() E GETCH() #include <iostream.h> #include <conio.h> void main(){ char ch; cout<<“\nPressione uma tecla “; ch = getche(); cout<<“\nA tecla sucessora ASCII é “<<char(ch+1); } AS FUNÇÕES GETCHE() E GETCH() A função getche() retorna o caractere lido no teclado. O valor retornado de uma função pode ser chamado de valor da função ou resultado da função. A expressão ch=getche(); atribui o valor da função getche à variável ch. AS FUNÇÕES GETCHE() E GETCH() A função getch() é similar à função getche(), exceto pelo fato de que o caractere digitado não é impresso no vídeo. As duas necessitam do arquivo “conio.h”. COMENTÁRIOS Comentários podem ser colocados em qualquer lugar do programa e são tratados pelo compilador como espaços em branco. Comentários são utilizados para documentar o seu código-fonte. OPERADORES DE INCREMENTO E DE DECREMENTO A instrução x=x+1; é equivalente a ++x; que é equivalente a x++; OPERADORES DE INCREMENTO E DE DECREMENTO n=5; x=++n; cout<<“\nN= “<<n<<“ X= “<<x; A saída será N=6 X=6 OPERADORES DE INCREMENTO E DE DECREMENTO n=5; x=n++; cout<<“\nN= “<<n<<“ X= “<<x; A saída será N=6 X=5 OPERADORES RELACIONAIS > maior >= maior ou igual < menor <= menor ou igual == igual != diferente PROGRAMA EXEMPLO #include<iostream.h> void main(){ int verdadeiro, falso; verdadeiro = (15<20); falso = (15==20); cout<<“\nVerdadeiro “<<verdadeiro; cout<<“\nFalso “<<falso; } OPERADORES LÓGICOS: && || ! C++ oferece três operadores lógicos. São eles: && lógico e || lógico ou ! Lógico não COMANDOS DE DECISÃO Os comandos de decisão permitem determinar qual é a ação a ser tomada com base no resultado de uma expressão condicional. O COMANDO IF A instrução if consiste na palavra-chave if seguida de uma expressão de teste entre parênteses. Se a expressão de teste for verdadeira, a instrução é executada; do contrário, nada é feito. O COMANDO IF if (expressão de teste) { Instrução; Instrução; } O COMANDO IF-ELSE O comando if-else é uma expansão de um simples comando if. O comando if permite que executemos algo somente se a sua expressão de teste for verdadeira, caso contrário nada é executado. O COMANDO IF-ELSE Suponhamos que você queira executar alguma coisa se a expressão de teste for verdadeira e outra coisa se a expressão de teste for falsa. Neste caso, você deve usar o comando if-else. O COMANDO IF-ELSE if (expressão de teste) { instrução; instrução; } else { instrução; instrução; } O COMANDO IF-ELSE if (expressão de teste 1) { instrução; instrução; } else if (expressão de teste 2) { instrução; instrução; } else { instrução; instrução; }