exatasfepi.com.br Programação Computacional C/C++ André Luís Duarte Feliz é o homem que acha sabedoria, e o homem que adquire entendimento; Provérbios 3:13
Conceitos Fundamentos Estrutura sequencial Estruturas de seleção Estruturas de repetição 2
Sintaxe básica Um programa simples em C/C++ possui três áreas básicas Declaração de uso de bibliotecas e espaços de nome Inicio do corpo principal Fim do corpo principal 3
Sintaxe básica Após codificado, o programa deve ser compilado e executado para vermos o resultado 4
Sintaxe básica O compilador verifica o código atrás de erros O compilador une a biblioteca ao código fonte e gera um arquivo intermediário (objeto) O compilador otimiza o código para a arquitetura alvo e gera o executável que pode ser então executado sem que o ambiente de programação esteja presente 5
Sintaxe básica Inicio Fim 6
Sintaxe básica Inicio Fim 7
Declaração de bibliotecas Em C++ fazemos usando a linha #include<iostream> Isso informa ao compilador que usaremos rotinas prontas dentro da biblioteca (cabeçalho) iostream (input output stream) 8
Espaços de nome Na programação moderna usamos espaços de nome para organizar o desenvolvimento de grandes projetos using namespace std; 9
Espaços de nome namespace A namespace B soma() delta() delta() localiza() busca() exiba() 10
Bloco principal Todo programa pode ser codificado usando várias funções Um projeto em C++ deve possuir uma e somente uma função chamada main() que indica onde se inicia o bloco principal int main(){ 11
Bloco principal int main(){ int : tipo de retorno da função main() : nome do bloco principal { : inicio do bloco retorno: normalmente quando um programa termina sem erro, ele envia o valor 0 (zero) para avisar ao sistema operacional que terminou sua execução com sucesso 12
Bloco principal Fim } return 0; Obs.: a instrução return 0 está intimamente ligada ao int do bloco principal 13
Retorno O retorno indica ao sistema operacional o que ocorreu no programa return 0; => o programa executou seus todos os comandos com sucesso O sistema operacional pode então liberar os recursos usados pelo programa 14
Janela de execução Algumas ferramentas congelam a janela após o programa ser executado para vermos o resultado Isso pode ser feito no momento da execução do programa se a ferramenta possuir o recurso Caso não possua, devemos forçar que a janela não seja fechada usando o comando getchar(); Obs.: sempre que a janela exibir o resultado, essa deve ser fechada para evitar erros nas próximas execuções 15
Comentários Comentários são textos importantes inseridos para documentar um programa Em C++, para comentarmos uma linha usamos barras duplas (//) // Comentário de uma linha Para comentarmos mais de uma linha usamos (/**/) /* Comentário com mais de uma linha */ Comentários não são considerados como instrução, por isso, não tornam o arquivo executável maior pode ser usado qualquer tipo de caractere 16
Comentários 17
Saída de dados "soma = ", soma Para exibir uma mensagem na tela do computador usamos a instrução cout A forma mais simples de uso do comando é quando passamos o texto (string) que será exibido na tela 18
Saída de dados Sempre que precisamos exibir algo no monitor usamos o comando cout com o seguinte formato: cout << "Texto"; cout : comando de exibição << : operador de inserção de stream "Texto" : texto a ser exibido entre aspas ; : ponto e vírgula indicando o fim da instrução 19
Saída de dados Obs.: neste caso o caractere a acentuado será trocado por um caractere diferentes, isso ocorre pois o prompt onde o programa será executado usa a língua inglesa 20
Saída de dados (exibir acentos) 21
Saída de dados Além de textos o comando cout pode ser usado para exibir valores numéricos e variáveis cout << 4; cout << 9 + 5; cout << sqrt(16); cout << num; 22
Saída de dados O comando cout pode ser usado para exibir vários valores na mesma linha cout << 4 << "/" << 2 << "=" << 4/2; cout << "Total: R$ " << total; cout << "Raiz de 16 = " << sqrt(16); cout << x << "+" << z << "=" << x+z; 23
Caracteres de escape 24
Caracteres de escape cout << "Algoritmo e Estrutura de Dados"; \n quebra de linha cout << "Algoritmo e \nestrutura de \ndados"; \t tabulação cout << "Algoritmo e \n\testrutura de \n\tdados"; \a beep de alerta cout << "Algoritmo e \aestrutura de \adados"; \r retorno de carro cout << "Algoritmo e Estrutura de Dados\r"; 25
Exercícios de fixação Crie um programa que exiba os números 1, 2 e 3 e os caracteres A, E e D como nos exemplos: 1 2 3 A 1 E D 2 3 E A D 1 3 2 D E A 26
Exercícios de fixação Crie um programa que exiba a seguinte tabela: ======================================= Valor unitario Qtd Total 10 5 50.00 5 6 30.00 ======================================= Total (R$) 80.00 ======================================= 27
Variável Como apresentados em aulas anteriores, todos os dados que iremos processar devem estar em algum lugar na memória do computador A memória que acessamos é a memória RAM 28
Variável Uma variável é uma posição de memória que possui: Nome Endereço Conteúdo Permite operações de: Leitura Escrita 29
Variável Em C++ devemos declarar as variáveis sempre antes de usá-la Sintaxe: tipo <v1, v2,..., vn>; Obs.: podemos declarar várias variáveis na mesma linha separando cada uma com uma vírgula 30
Variável O nome de uma variável deve seguir as seguintes regras de formação de identificadores: Começar com um caractere alfabético Em seguida pode vir caracteres alfabéticos, numéricos e _ Não deve conter caracteres especiais, acentuados e espaços Não pode usar nomes reservados da linguagem 31
Variável Tipos básicos: char: caractere ('a', 'N', '5', '+', etc) int: inteiro (1, -4, 2874, etc) float: número real (-71.987, 0.333, etc) double: numero real duplo (maior que o float) bool: valor lógico (true, false) 32
Variável Exemplos: int num; float salario; double imposto; char sexo; bool terminou; 33
Variável Exemplos estilos: int n1, n2, soma; int n1, n2, int n1; soma; int n2; int soma; 34
Exercícios Indique os identificadores como válidos (v) ou inválidos (i): idade número x1 sqrt delta 1_numero return salario nome ano_nascimento 35
Operador de atribuição O operador de atribuição = é usado para atribuir à uma variável um determinado valor dependendo da natureza (tipo) da variável Exemplo: a = 10; x = 2 * y; pot = pow(3,3); sexo = 'F'; 36
Operador de atribuição ( ) 37
Operadores aritméticos Operador Operação + Adição (2 + 3, n1 + 5) - Subtração (x a, numero 10.55) * Multiplicação (b * 2, 4 * 4) / Divisão (quociente entre inteiros) (delta / 4, 9.66 / 0.55) % Resto da divisão entre inteiros (6 % 4, n % 2) sqrt pow Raiz quadrada (sqrt(9), sqrt(delta)) Potência (pow(2,3), pow(x,y)) 38
Exercício Crie um programa em C++ que armazene os valores 7.55 e -89 e em seguida exiba a soma, subtração, multiplicação e divisão destes valores Crie um programa que armazene um valor qualquer e depois exiba o seu dobro, sua metade, o seu quadrado Crie um programa que exiba as raízes da equação: x 2 5x + 6 39
Entrada manual de dados num Entrada cin >> <variável>; Variável deve ser do tipo de dados que se espera, seja digitado 40
Entrada manual de dados Sempre que precisamos ler um dado a partir do teclado usamos o comando cin com o seguinte formato: cin >> num; cin >> num ; : comando de entrada de dados : operador de extração de stream : variável que receberá o valor digitado : ponto e vírgula indicando o fim da instrução 41
Entrada manual de dados Para trabalharmos com string, devemos usar a função getline() da seguinte forma: getline(cin, nome); Onde nome é uma variável do tipo string Além disso devemos declarar a biblioteca <string> e antes da leitura da string usarmos o comando cin.ignore(); 42
Entrada manual de dados 43
Exercício Crie um programa em C++ que permita ao usuário digitar três valores e seja exibido a diferença entre cada um deles Crie um programa em C++ que permita ao usuário digitar dois números e seja exibido a raiz e a potência sendo o segundo número a potência e o radical: Exemplo 3 e 2 => três ao quadrado e raiz quadrada de 3 6 e 5 => seis a quinta e raiz quinta de 6 44
Exercício Crie um programa em C++ que permita ao usuário digitar os termos a, b e c de uma equação do 2º grau e seu programa exiba suas raízes da seguintes forma: a = 1 b = -5 c = 6 1x^2 + -5x + 6 x1 = 3 e x2 = 2 45
Estrutura de seleção x < 4 4 Em C/C++ temos dois tipos possíveis de estrutura de seleção; if else switch case Estas estruturas equivalem ao teste condicional do fluxograma if(x<4) 46
Estrutura de seleção x = 4 4... if(x == 4){ Numero é 4 Numero não é 4 cout << "Numero informado e 4"; else cout << "Numero informado nao e 4";... 47
Exercícios de fixação Construa um fluxograma e em seguida o programa em C/C++ que: Permita ao usuário digitar dois números e seja exibida a soma, subtração, multiplicação, divisão, potencia de do primeiro pelo segundo e a raiz de ambos Altere o exemplo anterior para o usuário escolher qual operação deseja realizar 48
Exercícios de fixação Construa um fluxograma e em seguida o programa em C/C++ que: Permita ao usuário digitar um número e seja informado se é positivo ou não Permita ao usuário digitar um número e seja informado se é par, impar ou zero Permita ao usuário informar dois números e seja informado qual o maior valor digitado 49
switch case A estrutura de seleção switch case examina o conteúdo de uma variável e verifica se existe um caso que o satisfaça Para finalizar cada caso devemos usar um comando break para que o computador não execute todos os caso subsequentes 50
switch case O comando testa sucessivamente o valor de uma expressão contra uma lista de constantes inteiras ou caractere A estrutura de seleção pode substituir eventuais construções com muitos testes condicionais de igualdade usando if...else sobre a mesma variável 51
switch case O switch difere do if, pois, só pode testar igualdade Duas constantes case no mesmo switch não podem ter valores idênticos Se as constantes são caracteres, essas serão automaticamente convertidas para seus valores inteiros 52
switch case 53
Solução 1 54
Solução 2 55
Inicio e fim de blocos Em C/C++ quando uma estrutura de seleção ou repetição terá um bloco de comandos, devemos delimitá-lo usando as chaves: { indicando inicio do bloco e } indicando o final do bloco Um bloco é formado por mais de uma linha de comandos dentro da mesma estrutura 56
Inicio e fim de bloco 57
Inicio e fim de bloco 58
Conceitos Sintaxe básica Declaração de variáveis Expressões aritmética e relacional Estrutura sequencial Estrutura de seleção Estrutura de repetição 59
Estrutura de repetição A estrutura de repetição, também chamada de loop, é uma estrutura que permite executar um comando ou um bloco de comandos mais de uma vez através de uma condição No C/C++ temos três estruturas possíveis while do while for 60
Estrutura de repetição Toda estrutura de repetição deverá ter uma condição de parada (deve terminar) No geral isso é conseguido através de uma variável de controle No geral, um loop será formado, em relação à variável de controle, por uma atribuição, seguido de um teste lógico sobre a variável (condição) e por fim um incremento / decremento 61
Exemplos de loop 62
Estrutura de repetição Podemos ter dois tipos de estruturas de repetição no C/C++ Loop com teste no início Não sei quantas vezes este loop irá executar seu bloco de instruções Loop com teste no final Este loop irá executar o seu bloco de instruções pelo menos uma vez 63
while Estrutura de repetição com teste no inicio Sintaxe: while (<condição>){ Comando_1; Comando_2;... Comando_n; } 64
while Enquanto o resultado da condição for verdadeira, o while executará os comandos internos ao seu bloco Quando a condição se tornar falsa, o programa irá continuar a execução a partir do primeiro comando após o final do bloco do while É muito útil quando não sabemos quantas vezes o loop será executado 65
Exemplo 66
do while Estrutura de repetição com teste no final Sintaxe: do{ Comando_1; Comando_2;... Comando_n; } while(<condição>); 67
do while Enquanto o resultado da condição for verdadeira, o do while executará os comandos internos ao seu bloco Quando a condição se tornar falsa, o programa irá continuar a execução a partir do primeiro comando após o final do bloco do do while É muito útil quando não sabemos quantas vezes o loop será executado, mas precisa ser executado pelo menos uma vez 68
Exemplo 69
for O for é um loop especial onde o trio atribuição, condição e incremento estão na mesma linha do comando É muito útil quando sabemos quantas vezes o loop será executado 70
Exemplo 71
Operador de incremento ++ O C/C++ possui um operador especial unário chamado ++ Aplicar o operador a uma variável é o mesmo que incrementá-la em uma unidade: cont++ cont = cont + 1 72
Operador de decremento -- O C/C++ possui um operador especial unário chamado -- Aplicar o operador a uma variável é o mesmo que decrementá-la em uma unidade: cont-- cont = cont - 1 73
Exercícios de fixação Crie um fluxograma e um programa em C/C++ que permita ao usuário digitar um número e sejam exibido todos os números inteiros entre 0 e o número digitado Obs.: construa o programa usando os três tipos de loop 74
Exercícios de fixação Altere o exercício anterior para exibir a soma de todos os números inteiros entre 0 (zero) e número digitado pelo usuário Crie um fluxograma e um programa em C/C++ que exiba o fatorial de um número digitado pelo usuário 75
Exercícios de fixação Crie um fluxograma e um programa em C/C++ que calcule a média de todos os números digitados pelo usuário Crie um fluxograma e um programa em C/C++ que realize uma votação para verificar a preferência dos alunos entre três disciplinas: informática, cálculo e estática 76