Post on 27-Sep-2018
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
andreldfepi@gmail.com
208/05/2017
Conceitos
Fundamentos
Estrutura sequencial
Estruturas de seleção
Estruturas de repetição
andreldfepi@gmail.com
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
308/05/2017
andreldfepi@gmail.com
Sintaxe básica
Após codificado, o programa deve ser
compilado e executado para vermos o resultado
408/05/2017
andreldfepi@gmail.com
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
508/05/2017
andreldfepi@gmail.com
Sintaxe básica
608/05/2017
Inicio
Fim
andreldfepi@gmail.com
Sintaxe básica
708/05/2017
Inicio
Fim
andreldfepi@gmail.com
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)
808/05/2017
andreldfepi@gmail.com
Espaços de nome
Na programação moderna usamos
espaços de nome para organizar o
desenvolvimento de grandes projetos
using namespace std;
908/05/2017
andreldfepi@gmail.com
Espaços de nome
1008/05/2017
namespace A namespace B
soma()
delta()
busca() exiba()
delta()
localiza()
andreldfepi@gmail.com
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(){
1108/05/2017
andreldfepi@gmail.com
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
1208/05/2017
andreldfepi@gmail.com
Bloco principal
Fim
return 0;
}
Obs.: a instrução return 0 está intimamente
ligada ao int do bloco principal
1308/05/2017
andreldfepi@gmail.com
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
1408/05/2017
andreldfepi@gmail.com
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
1508/05/2017
andreldfepi@gmail.com
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 commais 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
1608/05/2017
andreldfepi@gmail.com
Comentários
1708/05/2017
andreldfepi@gmail.com
Saída de dados
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
1808/05/2017
"soma = ", soma
andreldfepi@gmail.com
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
1908/05/2017
andreldfepi@gmail.com
Saída de dados
2008/05/2017
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
andreldfepi@gmail.com
Saída de dados (exibir acentos)
2108/05/2017
andreldfepi@gmail.com
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;
2208/05/2017
andreldfepi@gmail.com
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;
2308/05/2017
andreldfepi@gmail.com
Caracteres de escape
2408/05/2017
andreldfepi@gmail.com
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";
2508/05/2017
andreldfepi@gmail.com
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:
2608/05/2017
1 2 3 1
2
3
A
E
D
A
E
D
A
E
D
1
2
3
andreldfepi@gmail.com
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
=======================================
2708/05/2017
andreldfepi@gmail.com
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
2808/05/2017
andreldfepi@gmail.com
Variável
Uma variável é uma posição de memória que
possui:
Nome
Endereço
Conteúdo
Permite operações de:
Leitura
Escrita
2908/05/2017
andreldfepi@gmail.com
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
3008/05/2017
andreldfepi@gmail.com
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
3108/05/2017
andreldfepi@gmail.com
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)
3208/05/2017
andreldfepi@gmail.com
Variável
Exemplos:
int num;
float salario;
double imposto;
char sexo;
bool terminou;
3308/05/2017
andreldfepi@gmail.com
Variável
Exemplos estilos:
3408/05/2017
int n1, n2, soma; int n1,
n2,
soma;int n1;
int n2;
int soma;
andreldfepi@gmail.com
Exercícios
idade
número
x1
sqrt
delta
1_numero
return
salario
nome
ano_nascimento
3508/05/2017
Indique os identificadores como válidos (v)
ou inválidos (i):
andreldfepi@gmail.com
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:
3608/05/2017
a = 10;
x = 2 * y;
pot = pow(3,3);
sexo = 'F';
andreldfepi@gmail.com
Operador de atribuição ()
3708/05/2017
andreldfepi@gmail.com
Operadores aritméticos
3808/05/2017
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 Raiz quadrada (sqrt(9), sqrt(delta))
pow Potência (pow(2,3), pow(x,y))
andreldfepi@gmail.com
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: x2 – 5x + 6
3908/05/2017
andreldfepi@gmail.com
Entrada manual de dados
Entrada
cin >> <variável>;
Variável deve ser do tipo de dados que se
espera, seja digitado
4008/05/2017
num
andreldfepi@gmail.com
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 : comando de entrada de dados
>> : operador de extração de stream
num : variável que receberá o valor digitado
; : ponto e vírgula indicando o fim da instrução
4108/05/2017
andreldfepi@gmail.com
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();
4208/05/2017
andreldfepi@gmail.com
Entrada manual de dados
4308/05/2017
andreldfepi@gmail.com
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
4408/05/2017
andreldfepi@gmail.com
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:
4508/05/2017
a = 1b = -5c = 61x^2 + -5x + 6x1 = 3 e x2 = 2
andreldfepi@gmail.com
Estrutura de seleção
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)
4608/05/2017
x < 4 4
andreldfepi@gmail.com
Estrutura de seleção
...
if(x == 4){
cout << "Numero informado e 4";
else
cout << "Numero informado nao e 4";
...
4708/05/2017
x = 4 4
“Numero é 4” “Numero não é 4”
andreldfepi@gmail.com
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
4808/05/2017
andreldfepi@gmail.com
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
4908/05/2017
andreldfepi@gmail.com
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
5008/05/2017
andreldfepi@gmail.com
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
5108/05/2017
andreldfepi@gmail.com
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
5208/05/2017
andreldfepi@gmail.com
switch case
5308/05/2017
andreldfepi@gmail.com
Solução 1
5408/05/2017
andreldfepi@gmail.com
Solução 2
5508/05/2017
andreldfepi@gmail.com
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
5608/05/2017
andreldfepi@gmail.com
Inicio e fim de bloco
5708/05/2017
andreldfepi@gmail.com
Inicio e fim de bloco
5808/05/2017
andreldfepi@gmail.com
5908/05/2017
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
andreldfepi@gmail.com
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íveiswhile
do while
for
6008/05/2017
andreldfepi@gmail.com
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
6108/05/2017
andreldfepi@gmail.com
Exemplos de loop
6208/05/2017
andreldfepi@gmail.com
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
6308/05/2017
andreldfepi@gmail.com
while
Estrutura de repetição com teste no inicio
Sintaxe:while (<condição>){
Comando_1;
Comando_2;
...
Comando_n;
}
6408/05/2017
andreldfepi@gmail.com
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
6508/05/2017
andreldfepi@gmail.com
Exemplo
6608/05/2017
andreldfepi@gmail.com
do while
Estrutura de repetição com teste no final
Sintaxe:do{
Comando_1;
Comando_2;
...
Comando_n;
} while(<condição>);
6708/05/2017
andreldfepi@gmail.com
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
6808/05/2017
andreldfepi@gmail.com
Exemplo
6908/05/2017
andreldfepi@gmail.com
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
7008/05/2017
andreldfepi@gmail.com
Exemplo
7108/05/2017
andreldfepi@gmail.com
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
7208/05/2017
andreldfepi@gmail.com
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
7308/05/2017
andreldfepi@gmail.com
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
7408/05/2017
andreldfepi@gmail.com
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
7508/05/2017
andreldfepi@gmail.com
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
7608/05/2017