Algorimtos Estrutura de Dados 2 (AED 2)
2026/1
Aula 01 – Revisão
Me Eng. De Software
Prof. Jean Carlos Figueiredo
(Revisão) Introdução ao
(Revisão)
• Introdução
• Recursos
• C/C++
• Conceitos Básicos
• A estrutura de um programa
• Variáveis, tipos de dados e operadores
• Declaração estática de vetores e matrizes
• Recursos interessantes
• Containers, Templates e Operators
• Bibliografia e Conclusão
• O que vem pela frente?
Introdução
• Qual a diferença entre C e C++?
• O princípio básico da programação estruturada (tal como a da
linguagem C) é que um programa pode ser divido em três partes que
se interligam:
• Sequência: são implementados os passos de processamento necessários
para descrever determinada funcionalidade.
• Seleção: o fluxo a ser percorrido depende de uma escolha. Ex: If, Else,
Switch/Case;
• Iteração: é permito a execução de instruções de forma repetida, onde ao fim
decada execução a condição é reavaliada e enquanto seja verdadeira a
execução departe do programa continua. Ex: While e For.
Introdução: O que C++ traz de novo?
• Em primeiro lugar a mudança de paradigma, agora Orientado a
Objetos, o qual só iremos ver em POO (ano que vem).
• C++ faz uso a estrutura definida na linguagem anterior (e.g., tipos
primitivos, seleção, interação, ponteiros) e adiciona novos conceitos
que aumentam o poder da linguagem.
• O beneficio de reutilizar a estrutura é não precisar reinventar a roda.
• E o problema nisso é a linguagem permitir que em um mesmo programa
sejam mesclados os paradigmas, tornando o código confuso e
problemático.
• As linguagens orientadas a objetos (tal como C++) prezam pela
organização, simplificação e reuso de código.
Estrutura de um programa
• A estrutura do programa em C++ é muito semelhante à da
linguagem C. A declaração de variáveis e funçõe, comentários,
agrupamentos e laços de repetição permanecem os mesmos.
• Percebe-se a utilização de novos operadores e funções diferentes
para entrada e saída do console.
• A função cout imprime um valor.
Estrutura de um programa
Conceitos Básicos: Variáveis
• Identificadores em C++
• Palavras-chave/reservadas vs. identificadores
• Distinção entre maiúsculas/minúsculas
• Validade dos Identificadores
• Nomes com significado!
• Variáveis
• Um local na memória para armazenar dados para um programa
• Todas devem ser declaradas antes de serem usadas em um programa
Conceitos Básicos: Variáveis
• Podemos citar alguns tipos de dados fundamentais:
• bool Booleano*, possíveis valores são true/false.
• char Caractére, ex: ‘a’, ‘z’ e ‘9’
• int Número inteiro, como 1, 12545 e 0.
• short Número inteiro pequeno
• long Número inteiro grande
• float Número ponto flutuante.
• double Número ponto flutuante com dupla precisão.
• ng double Número p. f. longo com dupla precisão.
Conceitos Básicos: Variáveis
• Podemos citar alguns tipos de dados fundamentais:
• *O tipo bool é único que ainda não existia na linguagem C.
• Obs. : Ao adicionar “unsigned” antes de qualquer um desses tipos retira-se a possibilidade de
existirem números negativos.
E/S de Terminal
Para qualquer um deles, podemos utilizar os seguintes operadores:
• Operadores aritméticos • Operadores de comparação
• + soma • == igual
• - subtração • != diferente
• * multiplicação • < menor
• / divisão • > maior
• % resto da divisão • <= menor ou igual
Sequencia de escapes
• Conjunto de caracteres “Extendidos”
• Contrabarra, “\” precedendo um caracter, instruindo o compilador: Um
‘carácter de escape’ ou especial está vindo
Exemplo Equivalente a
contagem += 2; contagem = contagem + 2;
total -= desconto; total = total - desconto;
bônus *= 2; bônus = bônus * 2;
tempo /= fatorPressa; tempo = tempo / fatorPressa;
troco %= 100; troco = troco % 100;
quantia *= cnt1 + cnt2; quantia = quantia * (cnt1 + cnt2);
Strings
• O C++ oferece um suporte mais completo às strings, agora definidas
pela classe “string”. Manipulá-las se tornou uma tarefa muito mais
simples. Veja o exemplo abaixo:
Declaração estática de vetores e matrizes
• Um detalhe da linguagem C++, é que, para declarar um vetor, ou
matriz primitivos com um tamanho x, não é mais necessário realizar
a alocação dinâmica, exemplo:
Declaração estática de vetores e matrizes
• Para utilizar matrizes em c++:
E/S de Terminal
• Objetos E/S cin, cout, cerr
• Definidos em C++ na biblioteca chamada <iostream>
• Devem conter essas linhas junto ao início do código:
• #include <iostream>
• using namespace std;
• Instrui o C++ a usar a biblioteca apropriada, assim podemos usar os objetos
de E/S cin, cout, cerr
Saída de Terminal
• O que pode ser apresentado como saída?
• Qualquer dado pode ser apresentado
• Variáveis
• Constantes
• Literais
• Expressões (as quais podem conter tudo acima)
• cout << numeroDeJogos << " Jogos realizados.";
• 2 valores serão apresentados:
• valor da variável numeroDeJogos
• a string "Jogos realizados."
Separando Linhas de Saída
• Novas linhas na saída
• Lembre-se: \n é a sequência de escape de caractere de “nova linha”
• Segundo método: objeto endl
• Exemplos:
• cout << "Olá Mundo\n";
• Envia a string "Olá Mundo" para a tela e a sequência de escape \n, pulando para a
próxima linha
• cout << "Olá Mundo" << endl;
• Apresenta o mesmo resultado
Formatando a Saída
• Formatando valores numéricos para a saída
• Valores podem não ser mostrados como você espera!
• cout << "O preço é R$ " << preco << endl;
• Se preco (declarado como double) tem o valor 78.5, você pode obter:
• O preço é R$ 78.500000 ou
• O preço é R$ 78.5
• Precisamos dizer explicitamente ao C++ como queremos formatar a
saída.
Formatando números
• Formatando valores numéricos para a saída
• Valores podem não ser mostrados como você espera!
• cout << "O preço é R$ " << preco << endl;
• Se preco (declarado como double) tem o valor 78.5, você pode obter:
• O preço é R$ 78.500000 ou
• O preço é R$ 78.5
• Precisamos dizer explicitamente ao C++ como queremos formatar a
saída.
Formatando números
• “Fórmula Mágica” para forçar tamanhos decimais:
• [Link](ios::fixed);
• [Link](ios::showpoint);
• [Link](2);
• Estas linhas forçam todos os comandos cout’s:
• Terem exatamente dois dígitos após o ponto decimal
• Exemplo:
• cout << "O preço é R$ " << preco << endl;
• Saída: O preço é R$ 78.50
Saída de Erro
• Saída com cerr
• cerr é utilizado como cout
• Fornece o mecanismo para distinguir entre uma saída regular e uma saída de
erro
• Redireciona a saída:
• A maioria dos sistemas permite que cout e cerr sejam “redirecionados” para
outros dispositivos
• Ex.: Impressora, Arquivo, Terminal de erros, etc.
Entrada usando o CIN
• cin para entrada, cout para saída
• Diferenças:
• >> as setas apontam para a direção oposta
• Pense nelas como “apontando na direção para onde os dados vão”
• Objeto cin usado em vez de cout
• Nenhuma literal é permitida para cin
• Deve entrar “para uma variável”
• cin >> num;
• Aguarda na tela por um valor digitado
• O valor digitado é “atribuído” a num
Entrada usando o CIN
• Solicitando uma Entrada: cin e cout
• Sempre “solicita” ao usuário uma entrada
• cout << "Entre com o número de dragões: ";
cin >> numeroDeDragoes;
• Nenhum \n em cout. O cursor “aguarda” na mesma linha por uma entrada
digitada
• Cada cin tem um cout solicitando dados
• Faça Entradas/Saídas amigáveis ao usuário
Estilo de Programa
• Estilo de Programa
• Comentários, dois métodos:
• // Duas barras indicam que a linha inteira deve ser ignorada
• /* ... */ Delimitadores indicam que tudo entre eles deve ser ignorado
• Ambos os métodos são usados com frequência
• Nomeando Identificadores
• MAIÚSCULAS para constantes
• mais baixo para mais alto para variáveis
• Mais importante: NOMES SIGNIFICATIVOS!
Bibliotecas
• #include <Nome_Biblioteca>
• Diretiva para “adicionar” o conteúdo do arquivo de biblioteca em seu
programa
• Chamada “diretiva de pré-processador”
• Executa antes do compilador e simplesmente “copia” o arquivo de biblioteca em seu
programa
• C++ tem muitas bibliotecas
• Entrada/Saída, matemática, strings, etc.
Namespaces
• Namespaces definidos: Coleção de definições de nomes
• Por ora: interesse no namespace std
• Todas as bibliotecas-padrão que usaremos colocam suas definições no
namespace std
• Exemplos:
#include <iostream>
using namespace std;
• Inclui bibliotecas-padrão inteiras de definições de nomes
• #include <iostream>
using std::cin;
using std::cout;
• Pode especificar exatamente os objetos que precisamos
Sintaxe da linguagem
Exercícios
• Alguns exercícios progressivos para você praticar:
• 1. Soma e Média Criar um programa que lê 10 números inteiros
em um vetor e calcula a soma e a média dos elementos.
• 2. Maior e Menor Ler N números em um vetor e encontrar o maior
e menor valor, mostrando também suas posições.
• 3. Inverter Vetor Ler um vetor de 8 elementos e criar outro vetor
com os elementos na ordem inversa.
• 4. Números Pares Ler 15 números e armazenar apenas os pares
em um novo vetor, mostrando quantos foram encontrados.
Exercícios
• Alguns exercícios progressivos para você praticar:
• 5. Busca Simples Ler um vetor de 20 elementos e um valor X,
verificar se X está no vetor e em qual posição.
• 6. Diagonal Principal Ler uma matriz 4x4 e mostrar os elementos
da diagonal principal.
• 7. Soma de Linhas Ler uma matriz 3x3 e calcular a soma de cada
linha.
• 8. TAD Ponto Criar um TAD para representar um ponto 2D (x, y)
com funções para calcular distância entre pontos.
Exercícios
• Alguns exercícios progressivos para você praticar:
• 9. TAD Retângulo Criar um TAD retângulo com base e altura, com
funções para calcular área e perímetro.
• 10. TAD Aluno Criar um TAD para aluno (nome, matrícula, 3
notas) com calculo de média.
Alguma Dúvida?
Até a próxima aula...
[Link]@[Link]