Buscar

Teoria_ALP_2013 (1)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 271 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 271 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 271 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Algoritmos e Lógica de 
Programação
Profª.: Ivre Marjorie R. Machado
(ivre.machado@prof.una.br) 
Fevereiro - 2013
O que vamos estudar
• Lógica de Programação
• Construção de Algoritmos e Estruturas de 
dados
• Programação na linguagem C/C++
– Conceitos iniciais
– Estrutura sequencial
– Estrutura condicional
– Estrutura de repetição
– Arranjos (vetor e matriz)
Conceitos Iniciais
Profª.: Ivre Marjorie R. Machado
(ivre.machado@prof.una.br) 
Desenvolvimento de um programa
• Etapas para o desenvolvimento de um 
programa:
• Nesta etapa estuda-se o enunciado do 
problema para definir a entrada de dados, o 
processamento e a saída de dados
1- Análise
• Ferramentas do tipo descrição narrativa, 
fluxograma ou pseudocódigo são utilizadas para 
descrever o problema com suas soluções
2- Algoritmo
• O algoritmo é então transformado em códigos 
da linguagem de programação escolhida para 
se trabalhar
3- Codificação
Conceito de Algoritmo
• Algoritmo é:
– “uma sequência de passos que visa atingir um 
objetivo bem definido”
– “a descrição de uma sequência de passos que 
deve ser seguida para a realização de uma tarefa”
– “uma sequência finita de instruções ou operações 
cuja execução, em tempo finito, resolve um 
problema computacional, qualquer que seja sua 
instância”
Exemplos de Algoritmo
• Algoritmo 1 - Somar três números:
Passo 1 – Receber três números 
Passo 2 – Somar os três números
Passo 3 – Mostrar o resultado obtido
Exemplos de Algoritmo
• Algoritmo 2 - Fazer um sanduíche:
Passo 1 – Pegar o pão
Passo 2 – Cortar o pão no meio
Passo 3 – Pegar a maionese 
Passo 4 – Passar a maionese no pão
Passo 5 – Pegar e cortar alface e tomate
Passo 6 – Colocar alface e tomate no pão
Passo 7 – Pegar o hambúrguer 
Passo 8 – Fritar o hambúrguer 
Passo 9 – Colocar o hambúrguer no pão
Exemplos de Algoritmo
• Algoritmo 3 – Ir para a Escola:
Passo 1 – Acordar cedo
Passo 2 – Ir ao banheiro
Passo 3 – Abrir o armário e escolher uma roupa
Passo 4 – Se o tempo estiver quente, pegar uma camiseta 
e uma calça jeans; caso contrário, pegar um agasalho e 
uma calça jeans
Passo 5 – Vestir a roupa escolhida
Passo 6 – Tomar café
Passo 7 – Pegar uma condução
Passo 8 – Descer próximo à escola
Exemplos de Algoritmo
• Algoritmo 4 - Sacar dinheiro no Banco 24 horas:
Passo 1 – Ir até um Banco 24 horas
Passo 2 – Colocar o cartão
Passo 3 – Digitar a senha
Passo 4 – Retirar o cartão
Passo 5 - Escolher a opção de saque
Passo 6 – Solicitar a quantia desejada
Passo 7 – Se o saldo for maior ou igual a quantia 
desejada, sacar; caso contrário, mostrar mensagem de 
impossibilidade de saque
Passo 8 – Sair do Banco 24 horas
Construção de Algoritmos
• Passos:
a) Compreender completamente o problema a ser 
resolvido, destacando os pontos mais importantes e 
os objetos que o compõem
b) Definir os dados de entrada, ou seja, quais dados 
serão fornecidos e quais objetos fazem parte desse 
cenário-problema
c) Definir o processamento, ou seja, quais cálculos serão 
efetuados e quais restrições para esses cálculos. O 
processamento é responsável pela transformação dos 
dados de entrada em dados de saída.
Construção de Algoritmos
• Passos:
d) Definir os dados de saída, ou seja, quais 
dados serão gerados depois do 
processamento
e) Construir o algoritmo utilizando um dos tipos 
descritos na próxima seção
f) Testar o algoritmo realizando simulações 
(chinesinho)
Construção de Algoritmos
Processamento de 
dados
Saída de 
dados
Entrada 
de 
dados
Construção de Algoritmos
Result = X + Y ResultX , Y
Tipos de Algoritmos
• Os tipos mais utilizados são:
1. Descrição Narrativa
2. Fluxograma
3. Pseudocódigo (ou Portugol)
Descrição Narrativa
• Consiste em analisar o enunciado do problema e 
escrever, utilizando uma linguagem natural (por 
exemplo, português), os passos a serem seguidos 
para sua resolução
– Vantagem: não é necessário aprender nenhum 
conceito novo, pois uma linguagem natural, neste 
ponto, já é bem conhecida
– Desvantagem: a língua natural abre espaço para 
várias interpretações, o que posteriormente 
dificultará a transcrição desse algoritmo para 
programa
Fluxograma
• Consiste em analisar o enunciado do problema e 
escrever, utilizando símbolos gráficos 
predefinidos, os passos a serem seguidos para 
sua resolução
– Vantagem: o entendimento de elementos gráficos é 
mais simples que o entendimento de textos
– Desvantagem: é necessários aprender a simbologia 
dos fluxogramas e , além disso, o algoritmo resultante 
não apresenta muitos detalhes, dificultando sua 
transcrição para um programa
Fluxograma
• Fluxograma mínimo: não executa 
absolutamente nada, mas possui um início e 
um fim.
início
fim
Fluxograma - Símbolos
Símbolo utilizado para indicar o início e o fim do 
algoritmo
Permite indicar o sentido do fluxo de dados. Serve 
exclusivamente para conectar os símbolos ou blocos 
existentes.
Símbolo utilizado para indicar cálculos e atribuições de 
valores
Símbolo utilizado para representar a entrada de dados
Símbolo utilizado para indicar que deve ser tomada 
uma decisão, apontando a possibilidade de desvios
Símbolo utilizado para representar a saída de dados
Pseudocódigo ou Portugol
• Consiste em analisar o enunciado do problema e 
escrever por meio de regras predefinidas, os 
passos a serem seguidos para sua resolução
– Vantagem: a passagem do algoritmo para qualquer 
linguagem de programação é quase imediata, 
bastando conhecer as palavras reservadas dessa 
linguagem que serão utilizadas
– Desvantagem: é necessário aprender as regras do 
pseudocódigo, que serão apresentadas nas próximas 
seções
Exemplo 1
Faça um algoritmo para mostrar o 
resultado da multiplicação de dois 
números
Exemplo 1 
Descrição narrativa:
Passo 1 - Receber os dois números que serão 
multiplicados
Passo 2 - Multiplicar os números
Passo 3 - Mostrar o resultado obtido na 
multiplicação
Exemplo 1
Fluxograma:
Início n1, n2
result = n1 * n2
result Fim
Exemplo 1
Pseudocódigo:
ALGORITMO
DECLARE n1, n2, result NUMÉRICO
ESCREVA “Digite um número”
LEIA n1
ESCREVA “Digite outro número”
LEIA n2
result ← n1 * n2
ESCREVA “Multiplicação = ”, result
FIM_ALGORITMO
Exemplo 2
Faça um algoritmo para mostrar o 
resultado da divisão de dois números
Exemplo 2 
Descrição narrativa:
Passo 1 - Receber os dois números que serão 
divididos
Passo 2 – Se o segundo número for igual a 
zero, não poderá ser feita a divisão, pois não 
existe divisão por zero; caso contrário, dividir 
os números e mostrar o resultado da divisão
Exemplo 2
Fluxograma:
Início N1, N2
D = N1/N2
“Impossível 
dividir” Fim
N2 == 0 D
NÃO
SIM
Exemplo 2
Pseudocódigo:
ALGORITMO
DECLARE N1, N2, D NUMÉRICO
ESCREVA “Digite dois números”
LEIA N1, N2
SE (N2 == 0)
ENTÃO ESCREVA “Impossível dividir”
SENÃO INÍCIO
D ← N1 /N2
ESCREVA “Divisão = ”, D
FIM_ALGORITMO
Variável
• Duas pessoas estão conversando e desejam realizar 
uma conta
Vamos 
somar dois 
números?
Vamos sim! 
Variável
• Duas pessoas estão conversando e desejam realizar 
uma conta
O primeiro 
número é 5
Ok! Já 
guardei na 
cabeça
Variável
• Duas pessoas estão conversando e desejam realizar 
uma conta
O segundo 
número é 3
Guardei 
também em 
outra 
posição
Variável
• Duas pessoas estão conversando e desejam realizar 
uma conta
Qual é o 
resultado da 
soma?
O resultado 
é 8
Variável
• A segunda pessoa resgata os valores 
armazenados na memória, realiza a conta e 
responde dizendo que o resultado é 8
Variável
• Um programarecebe dados, que precisam 
ser armazenados no computador para 
serem utilizados no processamento
• Todos os computadores trabalham com 
sistema numérico binário (0 e 1) 
• Cada dígito binário (0 e 1) ocupa porções de 
memória chamadas bytes (8 bits), e cada 
byte é identificado e acessado
Variável
• Desta maneira, uma variável representa 
uma posição de memória 
• Possui nome e tipo e seu conteúdo pode 
variar ao longo do tempo, durante a 
execução do programa
• Embora, uma variável possa assumir 
diferentes valores, ela só pode 
armazenar um valor a cada instante
Variável
4
Memória
num1
Uma variável 
representa uma 
área na memória 
onde se pode 
armazenar um 
valor qualquer
Tipos de dados
• Os tipos mais utilizados são:
1. Numéricos
2. Lógicos
3. Literais ou caracteres
Tipos de dados - Numéricos
• Dividem-se em: inteiros e reais
• Os números inteiros podem ser positivos ou 
negativos e não possuem parte fracionária
Ex.: -23
98
0
-357
237
-2
Tipos de dados - Numéricos
• Os números reais podem ser positivos ou 
negativos e possuem parte fracionária
Ex.: 23,45
346,89
0,0
-357,0
237,88
-2,7
Obs.: os números reais 
seguem a notação da 
língua inglesa, ou seja, a 
parte decimal é 
separada da parte inteira 
por um . (ponto) e não 
por uma , (vírgula).
Tipos de dados - Lógicos
• São também chamados dados booleanos 
(por causa da álgebra de Boole)
• Podem assumir os valores verdadeiro ou 
falso
Tipos de dados – Caracteres
• Ou Literais, são dados formados por um único 
caractere ou por uma cadeia de caracteres
• Podem ser letras maiúsculas, minúsculas, 
números (não podem ser usados para cálculos) 
e os caracteres especiais (&, #, @, ?, +)
• Ex ‘aluno’
‘1234’
‘@ internet’
Formação de identificadores
• Identificadores são os nomes das 
variáveis, dos programas, das constantes, 
das rotinas, das unidades etc
• Os identificadores possuem regras 
básicas para sua formação 
Formação de identificadores
1. Os caracteres que podem ser utilizados são: os 
números, as letras (maiúsculas e minúsculas) e 
o caractere sublinhado (underline)
2. O primeiro caractere deve ser sempre uma 
letra ou caractere sublinhado (underline)
3. Não são permitidos espaços em branco e 
caracteres especiais (@, $, %, &, !, ?)
4. Não podem ser usadas palavras reservadas nos 
identificadores, ou seja palavras que 
pertençam a uma linguagem de programação
Exemplos de identificadores
• Identificadores válidos:
A
A2
Nota
NOTA
nota
XYZ
NOTA1
Nota_1
_Dia
Idade
Linguagem de programação C/C++
• Antecedentes: UNIX, BCPL e B (Bell Labs – AT&T) 
• Inventada e implementada por Dennis Ritchie
• Padrão ANSI C (American Standard for 
Information System - 1990) - criado para guiar 
implementações da linguagem C
• Todo programa em C é composto de uma ou mais 
funções. A Biblioteca C padrão contém funções 
mais comuns
• A linguagem C++ é uma extensão da linguagem C 
(C++ = (C + orientação a objetos: POO))
Exercícios
1- Faça um algoritmo para calcular a média 
aritmética entre três notas de um aluno e 
mostrar a situação, que pode ser 
aprovado ou reprovado. Faça o 
algoritmo usando descrição narrativa, 
fluxograma e pseudocódigo. 
Referência Bibliográfica
• ASCENCIO, Ana Fernanda Gomes e CAMPOS, 
Edilene A. Veneruchi. Fundamentos da 
Programação de Computadores – Algoritmos, 
Pascal e C/C++. São Paulo: Pearson Prentice Hall, 
2007. 2ª Edição. Capítulo 1. 
• SOUZA, A. Furlan; GOMES, Marcelo Marques; 
SOARES, Marcio Vieira e CONCILIO, Ricardo. 
Algoritmos e Lógica de Programação. 2ª ed. Ver. 
e ampl. São Paulo: Cengage Learning, 2011. 
Lógica
Profª.: Ivre Marjorie R. Machado
(ivre.machado@prof.una.br) 
Introdução
1.1- Noções de Lógica
O que lógica?
• Uso corriqueiro da palavra lógica normalmente 
relacionado à coerência e à racionalidade
• Pode-se relacionar a lógica com a ‘correção do 
pensamento’, pois uma de suas preocupações é 
determinar quais operações são válidas e quais não 
são, fazendo análises das formas e leis do 
pensamento
Introdução
O que lógica?
• Arte de bem pensar
• Ciência das formas do pensamento
• Correção do raciocínio
• Ordem da razão
• A nossa razão pode funcionar desordenadamente, 
por isso, a lógica estuda e ensina a colocar ‘ordem no 
pensamento’
Introdução
Exemplos
a) Todo mamífero é um animal.
Todo cavalo é um mamífero.
Portanto, todo cavalo é um animal.
b) A gaveta está fechada.
A caneta está dentro da gaveta.
Precisamos primeiro abrir a gaveta para depois 
pegar a caneta.
Introdução
Exemplos
c) Anacleto é mais velho que Felisberto.
Felisberto é mais velho que Marivaldo.
Portanto, Anacleto é mais velho que Marivaldo.
Na medida em que precisamos especificar uma 
sequência de passos, é necessário utilizar ordem, ou 
seja ‘pensar com ordem’, portanto precisamos 
utilizar lógica.
Introdução
E a lógica de programação?
• O principal objetivo do estudo da Lógica de 
Programação é a construção de algoritmos coerentes 
e válidos
• Um algoritmo é uma sequência de passos que visam 
atingir um objetivo bem definido
Exemplo
Troca de lâmpada
Passo 1- Pegar uma escada
Passo 2- Buscar uma lâmpada nova
Passo 3- Posicionar a escada 
embaixo da lâmpada
Passo 4- Subir na escada
Passo 5- Retirar a lâmpada queimada
Passo 6- Colocar a lâmpada nova
Exercícios
1- Três senhoras – dona Branca, dona Rosa e dona 
violeta – passeavam pelo parque quando dona Rosa 
disse:
- Não é curioso que estejamos vestidas de cores 
branca, rosa e violeta, embora nenhuma de nós 
esteja usando um vestido de cor igual ao próprio 
nome?
- Uma simples coincidência – respondeu a senhora 
com o vestido violeta.
Qual é a cor do vestido de cada senhora?
Exercícios
2- Elabore um algoritmo que mova 3 discos de uma 
torre de Hanói, que consiste em três hastes (a - b 
- c), uma das quais serve de suporte para 3 discos 
de tamanhos diferentes (1 - 2 - 3), os menores 
sobre os maiores. 
Pode-se mover um disco de cada vez para 
qualquer haste, contanto que nunca seja 
colocado um disco maior sobre um menor. O 
objetivo é transferir os três discos para outra 
haste.
Exercícios
“Torre de Hanói”
a b c
1
2
3
Exercícios
Exemplo de movimentação
a b c
1
2
3
Exercícios
Exemplo de movimentação
a b c
1 23
Exercícios
3- Crie uma sequência lógica para tomar banho.
4- Faça um algoritmo para somar 2 números 
quaisquer e multiplicar o resultado pelo 
primeiro número
5- Faça o teste de QI do Einsten no site 
(http://rachacuca.com.br/teste-de-einstein/) 
Referência Bibliográfica
• FORBELLONE, Andre Luiz Villar e 
EBERSPACHER, Henri Frederico. Lógica de 
Programação. 3 ed. São Paulo: Pearson 
Prentice Hall, 2005.
Estrutura Sequencial
Profª.: Ivre Marjorie R. Machado
(ivre.machado@prof.una.br) 
Estrutura Sequencial
1.1- Estrutura Sequencial em Algoritmos
ALGORITMO
DECLARE
Bloco de Comandos
FIM_ALGORITMO
Estrutura Sequencial
1.2- Declaração de Variáveis em Algoritmos
ALGORITMO
DECLARE
X NUMERICO
Y, Z LITERAL
Teste LOGICO
Bloco de Comandos
FIM_ALGORITMO
Estrutura Sequencial
1.3- Comando de atribuição em Algoritmos
Utilizado para atribuir valores ou operações a 
variáveis, sendo representado por ←.
Exemplos:
X ← 4
X ← X + 2
Teste ← falso
Estrutura Sequencial
1.4- Comando de entrada em Algoritmos
Utilizado para receber dados digitados pelo 
usuário. Os dados recebidos são armazenados 
em variáveis. Esse comando é representado 
pela palavra LEIA.
Exemplo:
LEIAX
Estrutura Sequencial
1.4- Comando de entrada em Algoritmos
Utilizado para receber dados digitados pelo 
usuário. Os dados recebidos são armazenados 
em variáveis. Esse comando é representado 
pela palavra LEIA.
Exemplo:
LEIA X
Um valor digitado pelo 
usuário será 
armazenado na variável 
X
Estrutura Sequencial
1.5- Comando de saída em Algoritmos
Utilizado para mostrar dados na tela ou na 
impressora. Esse comando é representado 
pela palavra ESCREVA e os dados podem ser 
conteúdos de variáveis ou mensagens.
Exemplo:
ESCREVA X
Estrutura Sequencial
1.5- Comando de saída em Algoritmos
Utilizado para mostrar dados na tela ou na 
impressora. Esse comando é representado 
pela palavra ESCREVA e os dados podem ser 
conteúdos de variáveis ou mensagens.
Exemplo:
ESCREVA X
Mostra na tela o valor 
armazenado na variável 
X
Estrutura Sequencial
1.5- Comando de saída em Algoritmos
Utilizado para mostrar dados na tela ou na 
impressora. Esse comando é representado 
pela palavra ESCREVA e os dados podem ser 
conteúdos de variáveis ou mensagens.
Exemplo:
ESCREVA “Oi para vocês!!!”
Exemplo
• Pseudocódigo para calcular a área de um triângulo
ALGORITMO
DECLARE base, altura, area NUMÉRICO
ESCREVA "Digite o valor da base do triângulo: "
LEIA base
ESCREVA "Digite o valor da altura do triângulo: "
LEIA altura
area <- (base * altura)/2
ESCREVA "A area do triângulo e: ", area
FIM_ALGORITMO
Exemplo
• Fluxograma para calcular a área de um triângulo
Início
base, 
altura
area = (base * altura) / 2
area Fim
Exercícios
1- Faça um algoritmo (pseudocódigo e 
fluxograma) para somar dois números e 
multiplicar o resultado pelo primeiro número 
(agora usando os comandos apresentados).
2- Faça um algoritmo (pseudocódigo e 
fluxograma) receber valor de duas notas de 
provas, somar os dois valores e mostrar na 
tela. 
Estrutura Sequencial
2.1- Estrutura sequencial em C/C++
# include <nome da biblioteca>
int main()
{
bloco de comandos;
}
Estrutura Sequencial
2.1- Estrutura sequencial em C/C++
Bibliotecas são arquivos contendo várias 
funções que podem ser incorporadas aos 
programas escritos em C/C++. A diretiva
# include faz com que o texto contido dentro 
da biblioteca especificada seja inserido no 
programa.
Estrutura Sequencial
• As bibliotecas iostream.h e conio.h permitem 
a utilização de diversos comandos de entrada 
e saída
• A linguagem C/C++ é sensível a letras 
maiúsculas e minúsculas, ou seja, considera 
que letras maiúsculas são diferentes de 
minúsculas (por exemplo, a é diferente de A)
• Todos os comandos devem, obrigatoriamente, 
ser escritos com letras minúsculas.
Estrutura Sequencial
2.2- Declaração de variáveis em C/C++
int main()
{
int Y;
float X;
char sexo, nome[40];
} 
Estrutura Sequencial
2.2- Declaração de variáveis em C/C++
• As variáveis são declaradas após a 
especificação de seus tipos
• C/C++ não possui dados do tipo booleano, 
pois considera qualquer valor diferente de 
zero como sendo verdadeiro
• C/C++ não possui tipo especial para 
armazenar cadeias de caracteres (strings)
Estrutura Sequencial
2.3- Comando de atribuição em C/C++
Utilizado para atribuir valores ou operações a 
variáveis, sendo representado por = (sinal de 
igualdade)
Exemplos:
X = 4;
X = X + 2;
Sexo = ‘F’;
Estrutura Sequencial
2.4- Comando de entrada em C/C++
Os comandos de entrada mais utilizados na 
linguagem C/C++ são: cin e gets.
Exemplos:
cin>> x;
cin>> resultado;
gets(nomes)
Estrutura Sequencial
2.4- Comando de entrada em C/C++
cin>> x; (um valor digitado pelo usuário será 
armazenado na variável X)
gets(Nome); (um ou vários caracteres 
digitados pelo usuário serão armazenados na 
variável Nome)
Estrutura Sequencial
2.5- Comando de saída em C/C++
O comando de saída mais utilizado na 
linguagem C/C++ é: cout.
Exemplos:
cout<< “Digite um numero”;
cout<< “Diga oi para vocês!”;
Estrutura Sequencial
2.5- Comentários em C/C++
Comentários são textos que podem ser 
inseridos em programa com o objetivo de 
documentá-lo. Os comentários não são 
analisados pelo compilador.
Os comentários podem ocupar uma ou várias 
linhas, devendo ser inseridos nos programas 
utilizando /* */ ou //
Estrutura Sequencial
2.5- Comentários em C/C++
Exemplo: 
/*
Linhas de comentários...
Linhas de comentários...
*/
Ou 
// Linha de comentário
Estrutura Sequencial
2.5- Comentários em C/C++
A região de comentários é aberta com os 
símbolos /* e é encerrada com os símbolos 
*/ 
A região de comentários é aberta com os 
símbolos // e é encerrada automaticamente 
ao final da linha
Exemplo
• Programa em C++ para calcular a área de um triângulo
int main()
{
int base, altura, area;
cout<<"Digite a base do triangulo: ";
cin>>base;
cout<<"Digite a altura do triangulo: ";
cin>>altura;
area = (base * altura)/2;
cout<<"A area do triangulo e: "<<area;
}
Exercícios
1- Faça um programa em C/C++ para somar dois 
números e multiplicar o resultado pelo 
primeiro número. Deverá ser impresso na tela 
o resultado final das operações.
2- Faça um programa em C/C++ que receba três 
notas, calcule a soma das notas e mostre na 
tela o resultado. 
• ASCENCIO, Ana Fernanda Gomes e CAMPOS, 
Edilene A. Veneruchi. Fundamentos da 
Programação de Computadores – Algoritmos, 
Pascal e C/C++. 2ª Edição - São Paulo: Pearson 
Prentice Hall, 2007. 
• SOUZA, A. Furlan; GOMES, Marcelo Marques; 
SOARES, Marcio Vieira e CONCILIO, Ricardo. 
Algoritmos e Lógica de Programação. 2ª ed. Ver. 
e ampl. São Paulo: Cengage Learning 2011. 
Referência Bibliográfica
Operadores Pré-definidos em 
C/C++
Profª.: Ivre Marjorie R. Machado
(ivre.machado@prof.una.br) 
Operadores e funções predefinidas em 
C/C++
• A linguagem C/C++ possui operadores e funções 
predefinidas destinadas a cálculos matemáticos e 
à manipulação de caracteres. 
Operador de Atribuição
Operador Exemplo Comentário
= X = Y O conteúdo da variável Y é atribuído 
a variável X.
Operadores Matemáticos
Operador Exemplo Comentário
+ X + Y Soma o conteúdo de X e de Y.
- X – Y Subtrai o conteúdo de Y do conteúdo de X
* X * Y Multiplica o conteúdo de X pelo conteúdo 
de Y
/ X / Y Obtém o quociente da divisão de X por Y
% X % Y Obtém o resto da divisão de X por Y
++ X ++ Aumenta o conteúdo de X em uma unidade
- - X - - Diminui o conteúdo de X em uma unidade
O operador % só pode ser utilizado com operandos do tipo inteiro
Operadores Relacionais
Operador Exemplo Comentário
= = X == Y O conteúdo de X é igual ao conteúdo de Y
! = X != Y O conteúdo de X é diferente do conteúdo 
de Y
< = X <= Y O conteúdo de X é menor ou igual ao 
conteúdo de Y
> = X >= Y O conteúdo de X é maior ou igual ao 
conteúdo de Y
< X < Y O conteúdo de X é menor que o conteúdo 
de Y
> X > Y O conteúdo de X é maior que o conteúdo 
de Y
Operadores Matemáticos de 
Atribuição
Operador Exemplo Comentário
+ = X + = Y Equivale a X = X + Y.
- = X – = Y Equivale a X = X - Y.
* = X * = Y Equivale a X = X * Y.
/ = X / = Y Equivale a X = X / Y.
% = X % = Y Equivale a X = X % Y.
Funções Matemáticas
Função Exemplo Comentário
cos cos(X) Calcula o cosseno de X (X deve estar 
representado em radianos.
sin sin(X) Calcula o seno de X (X deve estar representado 
em radianos.
pow pow (X, Y) Calcula a potência de X elevado a Y
sqrt sqrt (X) Calcula a raiz quadrada de X.
tan tan(X) Calcula a tangente de X (X deve estar 
representado em radianos.
 A linguagem C++ possui muitas outras funções matemáticas. 
Todas elas podemser observadas detalhadamente na documentação 
da biblioteca math.h.
• ASCENCIO, Ana Fernanda Gomes e CAMPOS, 
Edilene A. Veneruchi. Fundamentos da 
Programação de Computadores – Algoritmos, 
Pascal e C/C++. 2ª Edição - São Paulo: Pearson 
Prentice Hall, 2007. Capítulo 3. 
Referência Bibliográfica
Estrutura Condicional
Profª.: Ivre Marjorie R. Machado
(ivre.machado@prof.una.br) 
Estrutura Condicional
em Algoritmos
Estrutura Condicional
1.1- Estrutura Condicional Simples em 
Algoritmos
Se condição
Então comando
 O comando só será executado se a condição for 
verdadeira, Uma condição é uma comparação que 
possui dois valores possíveis, verdadeiro ou falso.
Estrutura Condicional
1.1- Estrutura Condicional Simples em 
Algoritmos
Se condição
Então INÍCIO
comando1
comando2
comando3
FIM
Estrutura Condicional
1.1- Estrutura Condicional Simples em 
Algoritmos
• Os comandos 1, 2 e 3 só serão executados se a 
condição for verdadeira. 
• As palavras INÍCIO e FIM serão necessárias 
apenas quando dois ou mais comandos forem 
executados.
Estrutura Condicional
1.2- Estrutura Condicional Composta em 
Algoritmos
Se condição
Então comando1
Senão comando2
 Se a condição for verdadeira, será executado o 
comando1, caso contrário, se a condição for falsa, será 
executado o comando2.
Estrutura Condicional
1.2- Estrutura Condicional Composta em 
Algoritmos
Se condição
Então INÍCIO
comando1
comando2
FIM
Senão INÍCIO
comando3
comando4
FIM
Estrutura Condicional
1.2- Estrutura Condicional Composta em 
Algoritmos
• Se a condição for verdadeira, o comando1 e o 
comando2 serão executados; caso contrário, 
se a condição for falsa, o comando3 e o 
comando4 serão executados.
Exemplos
1- Faça um algoritmo (pseudocódigo e fluxograma) 
que receba um número como entrada. Verifique 
se o número é maior ou igual a 2 e mostre na tela 
uma mensagem.
2- Faça um algoritmo (pseudocódigo e fluxograma) 
que receba dois números como entrada e mostre 
na tela o maior.
ALGORITMO
DECLARE num NUMERICO
ESCREVA "Digite um numero: "
LEIA num
SE (num >= 2)
ENTÃO ESCREVA "O numero digitado é maior ou igual a 2"
SENÃO
ENTÃO ESCREVA "O numero digitado é menor que 2"
FIM_ALGORITMO
Exemplo 1
Exemplo 1
Início num
“O numero 
digitado é maior 
ou igual a 2”
Fim
num >= 2
“O numero digitado 
é maior ou igual a 2”
Sim
Não
Exemplo 1
Início num
“O numero 
digitado é maior 
ou igual a 2”
Fim
num >= 2
“O numero digitado 
é maior ou igual a 2”
Sim
Não
Tomada de 
decisão 
ALGORITMO
DECLARE num1, num2 NUMERICO
ESCREVA "Digite o primeiro numero"
LEIA num1
ESCREVA "Digite o segundo numero"
LEIA num2
SE (num1 > num2)
ENTÃO ESCREVA "O maior numero é " , num1
SENÃO SE (num2 > num1)
ENTÃO ESCREVA "O maior numero é " , num2
SENÃO
ENTÃO ESCREVA "Os números são iguais !"
FIM_ALGORITMO
Exemplo 2
Exemplo 2
Início
num1, 
num2
“Os números são 
iguais”
Fim
num2 > 
num1
“O maior numero 
é” num2
Sim
Não
num1 > 
num2
“O maior numero 
é” num1
Sim
Não
Exemplo 2
Início
num1, 
num2
“Os números são 
iguais”
Fim
num2 > 
num1
“O maior numero 
é” num2
Sim
Não
num1 > 
num2
“O maior numero 
é” num1
Sim
NãoTomada de 
decisão 
Tomada de 
decisão 
Estrutura Condicional
em C/C++
Estrutura Condicional
2.1- Estrutura Condicional Simples em C/C++
if (condição)
{
comando;
}
 O comando só será executado se a condição for 
verdadeira, Uma condição é uma comparação que 
possui dois valores possíveis, verdadeiro ou falso.
Obs.: Todas as condições devem estar entre parênteses ( ).
Estrutura Condicional
2.1- Estrutura Condicional Simples em C/C++
if (condição)
{
comando1 ;
comando2 ;
comando3 ;
}
Estrutura Condicional
2.1- Estrutura Condicional Simples em C/C++
• Em c++, torna-se obrigatória a utilização de 
chaves quando houver mais de um comando a 
ser executados.
• Os comandos entre as chaves { } só serão 
executados se a condição for verdadeira.
Estrutura Condicional
2.2- Estrutura Condicional Composta em C/C++
if (condição)
{
comando1 ; 
}
else {
comando2 ;
}
 Se a condição for verdadeira, será executado o comando1, caso 
contrário, se a condição for falsa, será executado o comando2.
Estrutura Condicional
2.2- Estrutura Condicional Composta em C/C++
if (condição)
{
comando1 ;
comando2 ;
}
else {
comando3 ;
comando4 ;
}
Estrutura Condicional
2.2- Estrutura Condicional Composta em C/C++
• Se a condição for verdadeira, o comando1 e o 
comando2 serão executados; caso contrário, 
se a condição for falsa, o comando3 e o 
comando4 serão executados.
Obs.: Todas as condições devem estar entre parênteses ( ).
Exemplos
1- Escreva um programa em C/C++ que receba 
um número como entrada. Verifique se o 
número é maior ou igual a 2 e mostre na tela 
uma mensagem.
2- Escreva um programa em C/C++ que receba 
dois números como entrada e mostre na tela 
o maior.
//Bibliotecas...
int main()
{
float num1;
cout<<"Digite um numero: ";
cin>> num1;
if (num1 >=2) 
{
cout<<"o numero "<<num1<<" e maior ou igual a dois";
}
else
{
cout<<"o numero "<<num1<<" e menor que dois";
} 
getch();
}
Exemplo 1
int main()
{
float num1, num2;
cout<<"Digite um numero: ";
cin>> num1;
cout<<"Digite outro numero: ";
cin>> num2;
if (num1 > num2) 
{ 
cout<<"o numero "<<num1<<" e maior que o numero "<<num2;
} 
else if (num1 < num2) 
{
cout<<"o numero "<<num2<<" e maior que o numero "<<num1;
} 
else
{ 
cout<<"os numeros sao iguais";
}
getch();
}
Exemplo 2
Estrutura Condicional
3.1- Estrutura CASE
switch(variável)
{
case valor1: 
lista de comandos;
break;
case valor2:
lista de comandos;
break;
...
default: lista de comandos;
}
Estrutura Condicional
3.1- Estrutura CASE
 Em situações mutuamente exclusivas, isto é, se uma 
situação for executada, as demais não serão, um 
comando seletivo é o mais indicado (estrutura CASE)
 O comando switch(variável) avalia o valor da 
variável para decidir qual case será executado
 Cada case está associado a UM possível valor da 
variável, que deve ser obrigatoriamente, do tipo char
ou int
Estrutura Condicional
3.1- Estrutura CASE
switch(variável)
{
...
break;
default: lista de comandos;
}
 O comando break; deve ser utilizado para impedir a 
execução dos comando definidos nos cases 
subsequentes
Estrutura Condicional
3.1- Estrutura CASE
switch(variável)
{
...
break;
default: lista de comandos;
}
 O comando default: é executado quando o valor da 
variável não coincidir com nenhum dos especificados 
nos cases
//Bibliotecas...
int main()
{
int num1;
cout<<"Digite um numero: ";
cin>> num1;
switch (num1)
{
case 1: 
cout<<“\n Numero 1";
break; 
case 2: 
cout<<“\n Numero 2";
break; 
default: 
cout<<“\n Numero diferente de 1 e 2";
}
getch();
}
Exemplo 
Estrutura Condicional
3.2- Estrutura CASE (Fluxograma)
valor1
Expressão inteira
Comandos padrão Comandos1 Comandos1 ComandosN... Outras opções ...
false
valor2
valorN
Estrutura Condicional
Exemplo - Estrutura CASE (Fluxograma)
 Como um exemplo para a Estrutura CASE, considere 
o seguinte problema: 
 Elaborar um fluxograma que simule uma 
calculadora simples que some, subtraia, multiplique 
e divida dois números
Exemplo - Estrutura CASE (Fluxograma)
‘ + ’
Expressão inteira
Result = 
num1 + num2
Result = 
num1 - num2
Result =num1 / num2
false
início
num1, 
num2, 
operador
‘ - ’
Result = 
num1 * num2
‘ * ’ ‘ / ’
fim
‘Não é um 
operador válido’
Result
Operadores Lógicos em C/C++
• Os principais operadores lógicos são: 
Operador Lógico
Operador Exemplo Comentário
&& if (x >= 3 && X <= 7 )
Significa que a condição verificada será 
X >= 3 E X <= 7 , ou seja, a condição 
será verdadeira se X estiver entre 3 e 7
|| if (x >= 3 || X >= 7 )
Significa que a condição verificada será 
X >= 3 OU X <= 7 , ou seja, tanto se X 
for maior que 3 como se X for maior 
que 7 a condição será verdadeira
! if (x!=0) A ! significa negação, ou seja, nesse 
exemplo verifica se X é diferente de 0
Tabela verdade
Tabela E (&&) Tabela OU (||) Tabela NÃO (!)
V e V = V V ou V = V Não V = F
V e F = F V ou F = V Não F = V
F e V = F F ou V = V
F e F = F F ou F = F
Operadores Lógicos em C/C++
Exemplos
if(num1 == 2) 
{
cout<<"numero igual a 2 ";
}
if(num1 > 5 && num1 < 10) 
{
cout<<"numero entre 5 e 10";
}
Operadores Lógicos em C++
Exemplos
if(num1 == 5 || num1 == 10) 
{
cout<<"numero igual 5 ou igual a 10";
}
if(num1 != 0) 
{
cout<<"numero diferente de 0";
}
• ASCENCIO, Ana Fernanda Gomes e CAMPOS, 
Edilene A. Veneruchi. Fundamentos da 
Programação de Computadores – Algoritmos, 
Pascal e C/C++. 2ª Edição - São Paulo: Pearson 
Prentice Hall, 2007. Capítulo 4. 
• SOUZA, A. Furlan; GOMES, Marcelo Marques; 
SOARES, Marcio Vieira e CONCILIO, Ricardo. 
Algoritmos e Lógica de Programação. 2ª ed. Ver. 
e ampl. São Paulo: Cengage Learning 2011. 
Capítulo 4. 
Referência Bibliográfica
Estrutura de Repetição
Profª.: Ivre Marjorie R. Machado
(ivre.machado@prof.una.br) 
Introdução
• Como imprimir os 1000 primeiros números a 
partir do número 1?
void main()
{
cout << “1” ;
cout << “2” ;
...
cout << “1000”;
}
A solução 
não é 
prática!
Estrutura de Repetição em Algoritmo
1.1- Estrutura de repetição para um número 
definido de repetições (Estrutura PARA)
PARA i ← valor inicial até valor final FAÇA
INÍCIO
comando1 
comando2
....
FIM
Estrutura de Repetição em Algoritmo
1.1- Estrutura de repetição para um número 
definido de repetições (Estrutura PARA)
 O comando1 e comando2 serão executados
utilizando a variável i como controle, e seu 
conteúdo vai variar do valor inicial até o valor 
final.
ALGORITMO
PARA a ← 1 até 10 FAÇA
INÍCIO
ESCREVA “o valor de a é ”, a
FIM 
FIM_ALGORITMO
Exemplo em Pseudocódigo
A estrutura de repetição PARA, no exemplo 
acima, vai repetir o comando ESCREVA dez 
vezes (de 1 a 10).
Estrutura de Repetição em Fluxograma
2.1- Estrutura PARA
i = valor inicial
i <= valor final
Comandos
i = i + 1
false
Essa estrutura utiliza 
um contador que 
possui um certo valor 
inicial e que, por 
meio de incrementos 
unitários e inteiros 
(de 1 em 1) vai 
alcançar um valor 
final predefinido
ALGORITMO
PARA a ← 1 até 10 FAÇA
INÍCIO
ESCREVA a
FIM 
FIM_ALGORITMO
Exemplo - Algoritmo
a = 1
a <= 10
a = a + 1
início
a
false
fim
true
Estrutura de Repetição em C++
3.1- Estrutura de repetição FOR
for (i = valor inicial; condição; incremento ou 
decremento de i)
{
comando1; 
}
 Essa estrutura é utilizada quando se sabe o número 
de vezes em que um trecho do programa deve ser 
repetido. 
Estrutura de Repetição
3.1- Estrutura de repetição FOR
 A primeira parte atribui um valor inicial à 
variável i, que tem como função controlar o 
número necessário de repetições;
i = valor inicial
Estrutura de Repetição
3.1- Estrutura de repetição FOR
 A segunda parte corresponde a uma 
expressão relacional que, quando assumir valor 
falso, determinará o fim da repetição;
Condição
Estrutura de Repetição
3.1- Estrutura de repetição FOR
 A terceira parte é responsável por alterar o 
valor da variável i (incremento ou decremento) 
com o objetivo de, em algum momento, fazer 
com que a condição assuma valor falso.
incremento ou decremento de i
i++ mesmo que ( i = i + 1)
ou
i -- mesmo que (i = i – 1)
//Bibliotecas .. 
int main()
{
int val;
val=0;
for ( int a=1; a <= 20; a++ )
{
cout<< "\n O valor de a e: " <<a;
val = a + 1;
cout <<"\n O valor de val e: "<<val;
}
getch();
}
Exemplo
//Bibliotecas .. 
int main()
{
int val;
val=0;
for ( int a=1; a <= 20; a++ )
{
cout<< "\n O valor de a e: " <<a;
val = a + 1;
cout <<"\n O valor de val e: "<<val;
}
getch();
}
Exemplo
Faça o chinesinho 
para esse 
programa...
Resultado - tela
... continuação
Exercícios
1. Faça um programa em C++ para somar 10 notas 
e apresentar a média aritmética das notas na 
tela. Use estrutura de repetição.
2. Faça um programa em C++ para receber 15 
números digitados por um usuário, identificar o 
maior e o menor número digitado. Mostre na 
tela o maior e o menor número.
3. Faça um programa em C++ que leia um número 
N e mostre na tela o valor lido e o fatorial desse 
valor.
//Bibliotecas .. 
int main ()
{
int num, fatorial;
cout <<"Digite um numero para calcular o fatorial: ";
cin >> num;
fatorial = 1;
for (int i=2; i<=num; i++)
{
fatorial = fatorial * i;
}
cout << "Fatorial => "<<fatorial;
getch();
}
Uma possível solução ...
Estrutura de Repetição em Algoritmo
1.2- Estrutura de repetição para um número 
indefinido de repetições e teste no início 
(Estrutura ENQUANTO)
ENQUANTO condição FAÇA
INÍCIO
comando1
FIM
Estrutura de Repetição em Algoritmo
1.2- Estrutura de repetição para um número 
indefinido de repetições e teste no início 
(Estrutura ENQUANTO)
 Enquanto a condição for verdadeira o 
comando1 será executado
ALGORITMO
X ← 1
Y ← 5
ENQUANTO X < Y FAÇA
INÍCIO 
X ← X + 2
Y ← Y + 1
FIM
FIM_ALGORITMO
Exemplo Algoritmo
Estrutura de Repetição em Fluxograma
2.2- Estrutura ENQUANTO
Expressão lógica
Comandos
false
true
Na figura ao lado, a 
expressão lógica 
representa alguma 
expressão que, enquanto 
resultar em true, vai 
permitir a execução 
repetitiva dos comandos 
e quando for false segue 
para um outro comando 
fora da estrutura de 
repetição.
ALGORITMO
X ← 1
Y ← 5
ENQUANTO X < Y FAÇA
INÍCIO 
X ← X + 2
Y ← Y + 1
FIM
FIM_ALGORITMO
Exemplo Algoritmo
X < Y
X = X + 2
início
false
fim
true
X = 1
Y = 5
Y = Y +1
Estrutura de Repetição em C++
3.2- Estrutura de repetição WHILE
while (condição)
{
comando1;
comando2;
}
Estrutura de Repetição em C++
3.2- Estrutura de repetição WHILE
 Essa estrutura pode ser utilizada quando o 
número de repetições necessárias não é fixo. 
 Os comandos (comando1, comando2) serão 
repetidos enquanto a condição mostrar-se 
verdadeira.
Estrutura de Repetição em C++
3.2- Estrutura de repetição WHILE
while (condição)
{
comando1;
comando2;
}
Teste condicional 
no início
Estrutura de Repetição em C++
3.2- Estrutura de repetição WHILE
 Existem situações em que o teste condicional 
da estrutura de repetição, que fica no início, 
resulta em um valor falso logo na primeira 
comparação. 
Nesses casos, os comandos de dentro da 
estrutura de repetição não serão executados.
//Bibliotecas .. 
int main()
{
int x, y;
x = 1;
y = 5;
while (x < y )
{
x = x + 2;
y = y + 1;
cout << "\n valor de x " << x;
cout << "\n valor de y " << y;
} 
getch();
}
Exemplo
Resultado - tela
Estrutura de Repetição em Algoritmo
1.3- Estrutura de repetição para um número 
indefinido de repetições e teste no final 
(Estrutura REPITA)
REPITA
comandosATÉ condição 
 Repita os comandos até a condição se tornar 
verdadeira.
ALGORITMO
X ← 1
Y ← 5
REPITA
X ← X + 2
Y ← Y + 1
ATÉ X > = Y
FIM_ALGORITMO
Exemplo Algoritmo
Exemplo Algoritmo -
Simulação
X Y
1 5 Valores iniciais
3 6 Valores
obtidos dentro 
da estrutura 
de repetição
5 7
7 8
9 9
Estrutura de Repetição em Fluxograma
2.3- Estrutura REPITA
Expressão lógica
false
true
Comandos
Na figura ao lado, a 
expressão lógica 
representa alguma 
expressão que, se 
resultar em false, vai 
permitir a repetição de 
comandos quaisquer até 
que a expressão lógica 
seja true.
ALGORITMO
X ← 1
Y ← 5
REPITA
X ← X + 2
Y ← Y + 1
ATÉ X > = Y
FIM_ALGORITMO
Exemplo Algoritmo
X = X + 2
início
false
fim
X = 1
Y = 5
Y = Y +1
X >= Y
true
Estrutura de Repetição em C++
3.3- Estrutura de repetição DO-WHILE
do {
comando1;
comando2;
} while ( condição); 
Estrutura de Repetição em C++
3.3- Estrutura de repetição DO-WHILE
 Essa estrutura pode ser utilizada quando o 
número de repetições necessárias não é fixo.
 Os comandos (comando1, comando2) serão 
repetidos até a condição assumir o valor falso.
Estrutura de Repetição em C++
3.3- Estrutura de repetição DO-WHILE
do {
comando1;
comando2;
} while ( condição); Teste condicional 
no fim
Estrutura de Repetição em C++
3.2- Estrutura de repetição DO-WHILE
 Nesse tipo de estrutura, o teste condicional 
ocorre no fim. 
 Isso significa que a repetição será executada 
no mínimo uma vez, quando todo o bloco for 
executado uma vez e, ao final, a condição 
assumir valor falso.
//Bibliotecas .. 
int main()
{
int x=0;
do {
cout << "\n valor de x = " << x;
x = x + 1;
} while (x != 5); 
getch();
}
Exemplo
Exemplo Algoritmo - Simulação
Tela x
0 Valor inicial
Valor de x = 0 1
Valores obtidos dentro da estrutura da 
repetição
Valor de x = 1 2
Valor de x = 2 3
Valor de x = 3 4
Valor de x = 4 5 Valor obtido dentro da estrutura de repetição, que 
torna a condição falsa e interrompe a repetição
Valor de x depois que sair 
da estrutura = 5
Exercício
Faça um programa em C++ que receba duas
notas de seis alunos, calcule e mostre:
a) A média aritmética das duas notas de cada
aluno;
b) A mensagem que está na tabela a seguir:
Média Aritmética Mensagem
Até 3 Reprovado
De 3 a 7 Exame
Acima de 7 Aprovado
Continuação - Exercício
c) O total de alunos aprovados;
d) O total de alunos de exame;
e) O total de alunos reprovados;
f) A média da classe.
Tente resolver, em seguida 
veja a solução da 
professora...
//Bibliotecas…
int main()
{ 
int cont, ta, te, tr;
float n1, n2, media, media_classe, total_classe;
system ("cls");
total_classe = 0;
tr = 0;
te = 0;
ta = 0;
for (cont=1;cont<=6;cont++)
{ 
cout << "\n\nDigite as duas notas do " << cont << " 
aluno ";
cin >>n1>>n2;
media = (n1 + n2) /2;
cout << "\nMedia do " << cont << " aluno = " << media;
if (media <= 3)
{ 
tr = tr + 1;
cout << " Reprovado";
}
if (media > 3 && media < 7)
{ 
te = te + 1;
cout << " Exame";
}
if (media >= 7)
{ 
ta = ta + 1;
cout << " Aprovado";
}
total_classe = total_classe + media;
}
cout << "\n\nTotal de reprovados = " << tr;
cout << "\nTotal de alunos em exame = " << te;
cout << "\nTotal de aprovados = " << ta;
media_classe = total_classe/6;
cout << "\nMedia da classe = " << media_classe;
getch();
}
Referência Bibliográfica
• ASCENCIO, Ana Fernanda Gomes e CAMPOS, 
Edilene A. Veneruchi. Fundamentos da 
Programação de Computadores – Algoritmos, 
Pascal e C/C++. 2ª Edição - São Paulo: Pearson 
Prentice Hall, 2007. Capítulo 5. 
Arranjo - Vetor
Profª.: Ivre Marjorie R. Machado
(ivre.machado@prof.una.br) 
Introdução
• As variáveis compostas homogêneas 
unidimensionais (vetores) são variáveis capazes 
de armazenar vários valores
• Cada um desses valores é identificado pelo 
mesmo nome sendo diferenciado apenas por um 
índice
• Os índices utilizados para identificar as posições 
de um vetor começam sempre em 0 (zero) e vão 
até o tamanho do vetor menos uma unidade
Vetor em 
Algoritmo
Declaração de um vetor em Algoritmo
• Declarando uma variável do tipo vetor
DECLARE nome [tamanho_do_vetor] Tipo
• tipo: indica do tipo de cada elemento do vetor
• nome: indica o nome da coleção de variáveis
• tamanho_do_vetor: indica o tamanho do 
vetor de elementos, onde o menor valor é 1.
Declaração de um vetor em Algoritmo
DECLARE nome [tamanho_do_vetor] Tipo
• Exemplo:
DECLARE nota[4] NUMÉRICO
1 2 3 4índice
valor
nota[1] nota[2] nota[3] nota[4]
Atribuição de valores a um vetor
• As atribuições em vetor exigem que seja 
informada em qual de suas posições o valor 
ficará armazenado:
– Atribui o valor 0 (zero) na posição de indice 4 do 
vetor nota: nota*1+ ← 3
– Atribui o valor 0 (zero) na posição de indice 4 do 
vetor vet: vet*4+ ← 0
Preenchendo um vetor
• Preencher um vetor significa atribuir valores a 
todas as suas posições. Assim deve-se 
implementar um mecanismo que controle o 
valor do índice:
PARA i ←1 ATÉ 4 FAÇA
INÍCIO 
ESCREVA "Digite uma nota: "
LEIA nota[i]
FIM
Preenchendo um vetor
PARA i ←1 ATÉ 4 FAÇA
INÍCIO 
ESCREVA "Digite uma nota: "
LEIA nota[i]
FIM
No exemplo, a estrutura de repetição PARA foi utilizada para 
garantir que a variável i assuma todos os valores possíveis 
para o índice do vetor. Assim, para cada execução da 
repetição, será utilizada uma posição diferente do vetor
Simulação
Memória Tela
i = 1 nota Digite uma nota: 95
i = 2 nota Digite uma nota: 13
i = 3 nota Digite uma nota: 47
i = 4 nota Digite uma nota: -25
95
1 2 3 4
95 13
1 2 3 4
95 13 47
1 2 3 4
95 13 47 -25
1 2 3 4
Mostrando um vetor
• Mostrar os valores contidos em um vetor 
também implica a utilização do índice:
PARA i ←1 ATÉ 4 FAÇA
INÍCIO 
ESCREVA "A nota ", i , " é: "
ESCREVA nota[i]
FIM
Mostrando um vetor
No exemplo, a estrutura de repetição PARA foi utilizada para 
garantir que a variável i assuma todos os valores possíveis 
para o índice do vetor. Assim, para cada execução da 
repetição, será utilizada uma posição diferente, e dessa 
forma, todos os valores do vetor serão mostrados.
PARA i ←1 ATÉ 4 FAÇA
INÍCIO 
ESCREVA "A nota ", i , " é: "
ESCREVA nota[i]
FIM
Simulação
Memória Tela
i = 1 nota A nota 1 é: 95
i = 2 nota A nota 2 é: 13
i = 3 nota A nota 3 é: 47
i = 4 nota A nota 4 é: -25
95 13 47 -25
1 2 3 4
95 13 47 -25
1 2 3 4
95 13 47 -25
1 2 3 4
95 13 47 -25
1 2 3 4
Vetor em 
C++
Exemplo
int nota[4];
Vetor de inteiros 
nota[0], nota[1], nota[2], nota[3]
Obs.: tamanho m -> índice 0 a (m-1)
20 12 3 13
0 1 2 3índice
valor
Declaração de um vetor em C++
• Declarando uma variável do tipo vetor
Tipo nome [tamanho_do_vetor];
• tipo: indica do tipo de cada elemento do vetor
• nome: indica o nome da coleção de variáveis
• tamanho_do_vetor: indica o tamanho do 
vetor de elementos, onde o menor valor é 1.
Declaração de um vetor em C++
Tipo nome [tamanho_do_vetor];
• Exemplos:
int peso[10];
float nota[41];
char nome[80];
Acesso a valores em um vetor
• Para acessar os elementos do vetor, deve 
utilizar o valor do índice desejado, juntamente 
com o nome da variável, por exemplo, peso[2] 
está associado ao terceiro elemento do vetor 
pois o primeiro elemento está relacionado ao 
índice 0
Atribuição de valores a um vetor
• Atribui o valor 3 ao primeiro elemento do 
vetor => vet[0]= 3; 
• Atribui o nome Maria ao vetor nome (um 
vetor de seis posições é declarado assim: char
nome[6] => strcpy (nome, “Maria”); 
• Inicializando um vetor na declaração
int valores[5] = {100, 200, 300, 400, 500};
Carregando e Imprimindo
• Carregando um vetor
• Imprimindo um vetor
for (int i = 0; i < 10; i++)
{
cin >> num[i]; 
}
for (int i = 0; i < 10; i++)
{
cout << num[i]; 
}
Exemplo
Faça um algoritmo (fluxograma e pseudocódigo)
para calcular a média aritmética das notas das 
provas de 5 alunos. Em seguida, escreva o 
programa em C++.
Fluxograma
i = 1
i <= 5
soma = soma + 
notas[i]
false
fim
true
notas[ i ]
início
media = soma/5
media
ALGORITMO
DECLARE notas[5], soma, media NUMÉRICO
PARA i ← 1 ATÉ 5 FAÇA
INÍCIO
ESCREVA "Digite a nota do aluno ",(i+1)
LEIA notas[i]
soma ← soma + notas*i+
FIM
media ← soma/5
ESCREVA "A media das notas e: ", media
FIM_ALGORITMO
Pseudocódigo
int main()
{
float notas[5], soma, media;
soma = 0;
media =0;
for(int i = 0; i<5; i++)
{
cout<<"\n Digite a nota do aluno "<<(i+1)<<" : ";
cin >> notas[i];
soma = soma + notas[i];
}
media = soma/5;
system("cls"); //usado para apagar o que está na tela
cout<<"\n A media das notas e: "<<media;
getch();
}
Código – C++
Exemplo (Resultado – Tela)
Exercício 1
• Faça um programa que leia um vetor de 100 
posições de números inteiros e, em seguida, 
mostre somente os números positivos.
Exercício 2
• Em uma cidade, sabe-se que, de janeiro ao final 
de fevereiro de 2012, não ocorreu temperatura 
inferior a 15°C, nem superior a 40°C. Faça um 
programa em C++ que armazene as 
temperaturas de cada dia em um vetor (de 30 
posições), calcule e imprima:
– A menor e a maior temperatura ocorrida
– A temperatura média
– O número de dias nos quais a temperatura foi 
inferior a temperatura média
Referência Bibliográfica
• ASCENCIO, Ana Fernanda Gomes e CAMPOS, 
Edilene A. Veneruchi. Fundamentos da 
Programação de Computadores – Algoritmos, 
Pascal e C/C++. São Paulo: Pearson Prentice
Hall, 2007. Capítulo 6. 
Manipulando Cadeia de 
Caracteres
Profª.: Ivre Marjorie R. Machado
(ivre.machado@prof.una.br) 
Introdução
• A linguagem C++ utiliza vetores para 
armazenar uma cadeia de caracteres, 
• onde cada posição representa um caractere
• É importante ressaltar que os compiladores 
identificam o fim de uma cadeia por meio do 
caractere nulo, ou seja, por meio de ‘\0’
Introdução
• Deve-se declarar sempre o vetor com uma 
posição a mais para armazenar o caractere 
nulo (‘\0’)
– que não precisa ser armazenado manualmente, 
isso é feito automaticamente pelo compilador
• Ex.: Para armazenar a palavra CADEIA deve-se 
declarar um vetor do tipo char com 7 
posições (que ocuparão posições contíguas na 
memória)
Introdução
char palavra[7]
• A variável palavra, quando é declarada pode ocupar 
qualquer posição na memória
• Entretanto, todas as posições do vetor ocupam espaços 
de memória adjacentes, sendo que cada caractere ocupa 
1 byte
0 1 2 3 4 5 6 ...
C A D E I A \0 ...
863 864 865 866 867 868 869 ...
índice
valor
Posição 
Memória
Exemplo 1
/* Guardar uma letra de cada vez do alfabeto em uma variável , observe 
que não é usada nenhuma função da Biblioteca string.h*/
int main () 
{
char alfabeto[27]; // 26 letras mais o NULL
char letra;
int i;
for (letra='A', i=0; letra<='Z'; letra++, i++)
{
alfabeto[i] = letra;
}
alfabeto[i] = NULL;
cout << "As letras do alfabeto sao: " << alfabeto;
getch();
}
Manipulando cadeias de caracteres
• Como todas as cadeias de caracteres são 
variáveis compostas homogêneas (vetor ou 
matriz) deve-se utilizar funções específicas
– Essas funções fazem parte da biblioteca 
string.h
–Algumas delas descritas a seguir
Inicializando cadeias de caracteres
1. Inicialização no momento da declaração
• A variável nome1 recebeu as letras 
separadamente (inclusive o caractere nulo). Por 
isso, cada uma das letras está envolvida por 
apóstrofos (' ') – essa é a maneira de identificar 
um caractere isoladamente
char nome1[ ]= {'P', 'r', 'o', 'g', 'r', 'a', 'm', 'a', '\0'};
Inicializando cadeias de caracteres
1. Inicialização no momento da declaração
• A variável nome2 recebeu uma palavra,
recebendo automaticamente o caractere nulo. 
Por isso, a palavra Programa está entre aspas (" ") 
– esta é a maneira de identificar uma cadeia de 
caracteres.
char nome2[ ]= "Programa";
Inicializando cadeias de caracteres
2. Inicialização por meio da atribuição (depois da 
declaração)
• A variável vet1 recebeu um valor constante (a 
palavra Programa).
char vet1[10], vet2[5];
strcpy(vet1, “Programa”);
Inicializando cadeias de caracteres
2. Inicialização por meio da atribuição (depois da 
declaração)
• Nesse caso, o conteúdo da variável vet2 foi 
copiado na variável vet1.
char vet1[10], vet2[5];
strcpy(vet1, vet2);
Inicializando cadeias de caracteres
3. Inicialização por meio do teclado
• O comando cin consegue armazenar valores vindos 
do teclado na variável frase. No caso de uma cadeia 
de caracteres , esse comando consegue armazenar 
todos os símbolos digitados até a primeira 
ocorrência do espaço em branco.
char frase[100];
cout<<“Digite um texto: ”;
cin>> frase;
Inicializando cadeias de caracteres
3. Inicialização por meio do teclado
• A função gets armazena na variável frase todos os 
símbolos digitados até a ocorrência do ENTER. 
• Esta função exige a utilização da biblioteca stdio.h.
char frase[100];
cout<<“Digite um texto: ”;
gets(frase);
Imprimindo cadeias de caracteres
• A função puts() é usada para imprimir uma cadeia 
de caracteres inicializada com o uso da função 
gets().
char frase[100];
cout<<"\n Digite um texto: ";
gets(frase);
cout<<"\n A frase digitada foi: ";
puts(frase);
Imprimindo cadeias de caracteres
• Também é possível imprimir a cadeia de caracteres 
com o comando cout<<
char frase[100];
cout<<"\n Digite um texto: ";
gets(frase);
cout<<"\n A frase digitada foi: "<<frase;
Funções da Biblioteca string.h
Copiando cadeias de caracteres
Função: strcpy( )
strcpy (str1, str2);
• A função strcpy copia a cadeia str2 na cadeia str1
• Sendo assim, a cadeia str1 será substituída pela 
cadeia str2 
Copiando cadeias de caracteres
Função: strncpy( )
strncpy (str1, str2, n);
• A função strncpy copia os n primeiros caracteres da 
cadeia str2 para a cadeia str1
Concatenando cadeias de caracteres
Função: strcat( )
strcat(cadeia1, cadeia2);
• A função strcat concatena a cadeia cadeia2 na 
cadeia cadeia1, ou seja, acrescenta a cadeia 
cadeia1 a cadeia cadeia2 
Comparando cadeias de caracteres
Função: strcmp( )
Resultado = strcmp (cadeia1, cadeia2);
• Compara duas cadeias de caracteres e retorna um número 
inteiro para a variável Resultado, que pode ser:
 Zero: se as duas cadeias forem iguais 
 Um número menor que 0: se a cadeia cadeia1 for 
alfabeticamente menor que cadeia2
 Um número maior que 0: se a cadeia cadeia1 for 
alfabeticamente maior que cadeia2
* Essa função considera letras maiúsculas como 
sendo símbolos diferentes de letras minúsculas 
Comparando cadeias de caracteres
Função: stricmp( )
Resultado = stricmp (cadeia1, cadeia2);
• Compara duas cadeias de caracteres e retorna um número 
inteiro para a variável Resultado, que pode ser:
 Zero: se as duas cadeias forem iguais 
 Um número menor que 0: se a cadeia cadeia1 for 
alfabeticamente menor que cadeia2
 Um número maior que 0: se a cadeia cadeia1 for 
alfabeticamente maior que cadeia2
* Essa função consideraletras maiúsculas e 
minúsculas como sendo símbolos iguais.
Descobrindo o número de caracteres 
de uma cadeia
Função: strlen( )
int Tamanho;
char str1[20];
Tamanho = strlen(str1);
• A função strlen retorna para a variável Tamanho o 
número de caracteres da cadeia str1.
Descobrindo o valor ASCII de um 
caractere
Função: toascii( )
Valor = toascii(caractere);
• A função toascii retorna para a variável Valor o 
valor numérico que representa o caractere na 
tabela ASCII. Essa função exige a utilização da 
biblioteca ctype.h. 
Descobrindo um caractere a partir do 
seu valor ASCII
caractere = int(número);
• A função int retorna para a variável caractere o 
caractere ASCII que é representado pelo número. 
Exemplo 2
//Bibliotecas
int main() 
{
char nome[40] = "Jose", sobrenome[30] = "Maria";
strcat(nome, sobrenome);
cout << " Sobrenome "<<sobrenome;
cout << "\n Nome "<< nome;
getch();
}
Cuidado:
cadeia1 + cadeia2 tem que caber na cadeia1.
Exemplo 2 - Tela
Resultado - Tela
Exemplo 3
//Bibliotecas ...
int main () 
{
char nome[40] = "Jose", sobrenome[30] = "Jose";
int teste;
teste = strcmp (nome, sobrenome);
if (teste != 0)
{ 
cout << "Os strings sao diferentes";
} 
else
cout << "os strings sao identicos";
getch();
}
Exemplo 4
int main()
{
char texto1[]="PROGRAMA COMPUTADOR";
char texto2[]="PARA ";
char texto3[35];
texto3[0]='\0';
int achou,i,j,tam, k;
tam= strlen(texto1);
i = 0;
achou = 0;
while (i < tam && achou == 0)
{
if (texto1[i] == ' ')
{
achou = 1;
}
else
{
i++;
}
}
Continuação - Exemplo 4
// ....continuação do slide anterior
strncpy(texto3,texto1,i+1);
texto3[i+1]='\0';
strcat(texto3,texto2);
strcat(texto3,"\0");
j = strlen(texto3);
for (k=i+1;k<tam;k++)
{
texto3[j] = texto1[k];
j = j + 1;
}
texto3[j]='\0';
cout<<"\nNova cadeia de caracteres = "<<texto3;
getch();
}
Comentários - Exemplo 4
• A variável texto1 ‚ inicializada com a cadeia de 
caracteres PROGRAMA COMPUTADOR
• A variável texto2 ‚ inicializada com a cadeia de 
caracteres PARA
• Em seguida a variável texto3 é inicializada com 
vazio, ou seja, uma cadeia com tamanho zero
• A função strlen retorna o tamanho da cadeia 
armazenada na variável texto1
Comentários - Exemplo 4
• A estrutura de repetição (while) encontra a 
posição do espaço, para colocar a cadeia 
armazenada na variável texto2, dentro da cadeia 
da variável texto1, gerando a cadeia texto3
• A posição do primeiro espaço ser armazenada 
na variável i
• A função strncpy copia da cadeia texto1, para a 
cadeia texto3 a quantidade de caracteres 
existentes antes do primeiro espaço em branco
Comentários - Exemplo 4
• Em seguida, inclui \0 na cadeia TEXTO3 para 
finalizar a cadeia que está sendo gerada
• Na cadeia de caracteres texto3
será acrescentada,ou seja, concatenada, a cadeia 
"PARA " que está na variável texto2
• Em seguida, concatena o \0 para finalizar a 
cadeia que está sendo gerada
• A variável j receberá a próxima posição a ser 
ocupada no vetor que representa a cadeia de 
caracteres que está sendo gerada
Comentários - Exemplo 4
• Até aqui, a variável texto3 contém os seguintes 
caracteres: "PROGRAMA PARA “
• A estrutura de repetição (for) copia os 
caracteres após o espaço em branco da cadeia 
armazenada na variável texto1 para a cadeia 
armazenada na variável texto3
• Em seguida acrescenta o \0 para finalizar a 
cadeia que está sendo gerada
• Por fim, mostra a nova cadeia gerada
Exercícios
1. Faça um programa que receba uma frase, 
calcule e mostre a quantidade de palavras da 
frase digitada.
2. Faça um programa que inverta os caracteres 
de uma string. Seu programa deve fazer isso 
através de um procedimento que recebe uma 
string como parâmetro e coloca a string 
invertida na mesma variável recebida como 
parâmetro. 
Exercício 3
• Faça um programa que receba uma frase e uma 
palavra. Caso a frase contenha a palavra 
ESCOLA, substitua pela palavra digitada. 
Ex.: 
Frase: EU MORO PERTO DE UMA ESCOLA. MAS 
ESSA ESCOLA NÃO É A MELHOR.
Palavra: PADARIA
Resposta: EU MORO PERTO DE UMA PADARIA. 
MAS ESSA PADARIA NÃO É A MELHOR.
Referência Bibliográfica
• ASCENCIO, Ana Fernanda Gomes e CAMPOS, 
Edilene A. Veneruchi. Fundamentos da 
Programação de Computadores – Algoritmos, 
Pascal e C/C++. 2ª Edição - São Paulo: Pearson 
Prentice Hall, 2007. Capítulo 9. 
Arranjo - Matriz
Profª.: Ivre Marjorie R. Machado
(ivre.machado@prof.una.br) 
Introdução
• Uma matriz pode ser definida como um 
conjunto de variáveis de mesmo tipo e 
identificadas pelo mesmo nome (variável 
composta homogênea multidimensional). 
• Essas variáveis são diferenciadas por meio da 
especificação de suas posições dentro dessa 
estrutura.
Introdução
• C++ permite a declaração de:
– Matrizes unidimensionais (mais conhecidas como 
vetores, visto no slide anterior)
– Matrizes bidimensionais e multidimensionais 
• Obs.: o limite de dimensões fica por conta da 
quantidade de recurso disponível pelo 
compilador. Entretanto, as matrizes mais 
utilizadas possuem duas dimensões.
Matriz em 
Algoritmo
Declaração de Matriz
DECLARE nome_variável [dimensão 1, dimensão2, 
... , dimensão n] Tipo_dos_dados
• Onde:
– nome_variável: é o nome da variável do tipo 
matriz
– [dimensão1, ..., dimensão2]: representam as 
possíveis dimensões da matriz
– Tipo_dos_dados: é o tipo de dados que poderá 
ser armazenado
Declaração de Matriz
Exemplo:
DECLARE matrizX[ 3, 5] NUMÉRICO
1 2 3 4 5
1
2
3
índice
Linha
Coluna
Atribuindo valores a Matriz
• MAT [1][4+ ← 5
 Atribui o valor 5 à posição referente à linha 1 
(2ª linha) coluna 4 (5ª coluna) da matriz MAT
1 2 3 4 5 6
1 5
2
índice
PARA i ← 1 ATÉ 2 FAÇA
INÍCIO 
PARA j ← 1 ATÉ 3 FAÇA
INICIO
ESCREVA "Digite uma valor: "
LEIA matX[i,j]
FIM
FIM
Preenchendo uma Matriz
• Para preencher uma matriz, é necessário 
identificar todas as suas posições. Isto exige a 
utilização de um índice para cada dimensão 
da matriz:
Preenchendo uma Matriz
No exemplo, a matriz matX com 2 linhas e 3 colunas é mostrada. 
Observe que a variável i varia dentro do intervalo de 1 a 2, ou 
seja, exatamente nas linhas. Para cada valor de i, a variável j
varia de 1 a 3, ou seja, as três colunas que cada linha possui.
PARA i ← 1 ATÉ 2 FAÇA
INÍCIO 
PARA j ← 1 ATÉ 3 FAÇA
INICIO
ESCREVA "Digite uma valor: "
LEIA matX[i,j]
FIM
FIM
Simulação
Memória
Tela Digitado
i j
1
1 Digite uma valor: 12
2 Digite uma valor: 9
3 Digite uma valor: 3
2
1 Digite uma valor: -23
2 Digite uma valor: 4
3 Digite uma valor: 2
Simulação
1 2 3
1 12 9 3
2 -23 4 2
índice
Como a matriz matX vai ficar....
PARA i ← 1 ATÉ 2 FAÇA
INÍCIO 
PARA j ← 1 ATÉ 3 FAÇA
INICIO
ESCREVA matX[i,j]
FIM
FIM
Mostrando uma Matriz
• Para mostrar os elementos de uma matriz, é 
necessário identificar as suas posições. Isto 
exige a utilização de um índice para cada 
dimensão da matriz:
Preenchendo uma Matriz
No exemplo, a matriz matX com 2 linhas e 3 colunas é mostrada. 
Observe que a variável i varia dentro do intervalo de 1 a 2, ou 
seja, exatamente nas linhas. Para cada valor de i, a variável j
varia de 1 a 3, ou seja, as três colunas que cada linha possui.
PARA i ← 1 ATÉ 2 FAÇA
INÍCIO 
PARA j ← 1 ATÉ 3 FAÇA
INICIO
ESCREVA matX[i,j]
FIM
FIM
Matriz em 
C++
Declaração de Matriz em C++
Tipo_dos_dados nome_variável [dimensão 1] 
[dimensão 2] ... [dimensão n]
• Onde:
– Tipo_dos_dados: é o tipo de dados que poderá 
ser armazenado
– nome_variável: é o nome da variável do tipo 
matriz
– [dimensão1] [dimensão2]:representam as 
possíveis dimensões da matriz
Declaração de Matriz em C++
• Exemplo:
int materia [4][10];
• Interpretação:
Temos 4 matérias, cada uma com 10
alunos.
Linha
Coluna
Matriz em C++
0 1 2 3 4 5 6 7 8 9
0
1
2
3
int materia [4][10];
índice
Linha
Coluna
Matriz em C++
• Da mesma maneira como ocorre com os 
vetores, os índices começam sempre em 0 
(zero) em C++. 
• Sendo assim, com a declaração anterior criou-
se uma variável chamada materia contendo 4 
linhas (0 a 3) com 10 colunas (0 a 9), capazes 
de armazenar números inteiros.
Atribuindo valores a Matriz em C++
• MAT [1][4] = 5 ;
 Atribui o valor 5 à posição referente à linha 1 
(2ª linha) coluna 4 (5ª coluna) da matriz MAT
0 1 2 3 4 5
0
1 5
índice
Atribuindo valores a Matriz em C++
• MAT1 [3][2] = 'D' ; 
 Atribui a letra D à posição referente à linha 3 
(4ª linha) coluna 2 (3ª coluna) da matriz MAT1 
0 1 2
0
1
2
3 D
índice
Atribuindo valores a Matriz em C++
• MAT1 [3][2] = 'D' ; 
 Atribui a letra D à posição referente à linha 3 
(4ª linha) coluna 2 (3ª coluna) da matriz MAT1 
0 1 2
0
1
2
3 D
índice
Preenchendo uma Matriz em C++
• Para ler dados do teclado e atribuir a uma 
matriz, supondo que a mesma tenha sido 
declarada como int MAT [7][3] pode-se 
executar os comandos a seguir:
for (i=0; i<7; i++)
{
for (j=0; j<3; j++)
{
cin>> MAT[i][j] ;
}
}
Preenchendo uma Matriz em C++
• Para ler dados do teclado e atribuir a uma 
matriz, supondo que a mesma tenha sido 
declarada como int MAT [7][3] pode-se 
executar os comandos a seguir:
for (i=0; i<7; i++)
{
for (j=0; j<3; j++)
{
cin>> MAT[i][j] ;
}
}
Preenchendo uma Matriz em C++
• Para ler dados do teclado e atribuir a uma 
matriz, supondo que a mesma tenha sido 
declarada como int MAT [7][3] pode-se 
executar os comandos a seguir:
for (i=0; i<7; i++)
{
for (j=0; j<3; j++)
{
cin>> MAT[i][j] ;
}
}
Linha
Coluna
Preenchendo uma Matriz em C++
• Como a matriz possui sete linhas:
 o for externo deve variar de 0 a 6 
(percorrendo, assim, as sete linhas da 
matriz) e 
 o for interno deve variar de 0 a 2 
(percorrendo, assim, as três colunas da 
matriz)
Mostrando os elementos da Matriz em 
C++
• Para mostrar os valores armazenados dentro 
de uma matriz, supondo que tenha sido 
declarada como float X[10][6], pode-se 
executar os comandos a seguir:
for (i=0; i<10; i++)
{
for (j=0; j<6; j++)
{
cout<< X[i][j] ;
}
}
Mostrando os elementos da Matriz em 
C++
• Como a matriz possui dez linhas:
 o for externo deve variar de 0 a 9 
(percorrendo, assim, as dez linhas da 
matriz) e 
 o for interno deve variar de 0 a 5 
(percorrendo, assim, as seis colunas da 
matriz)
Resumindo
• Sempre vamos precisar de dois for (estrutura 
de repetição) para percorrer uma matriz:
for ( i = 0; i < linhas; i++ )
{
for ( j = 0; j < colunas; j++ )
{
....
}
}
Exemplo
• Observe o exemplo a seguir.
• Nele a matriz mtrX é preenchida, 
sequencialmente por linhas, com os 
números de 1 a 200. 
int main () 
{ 
int mtrX [20][10],i,j,cont=1; 
//Carregando a Matriz
for (i=0;i<20;i++)
{
for (j=0;j<10;j++) 
{ 
mtrX[i][j]=cont; 
cont++; 
} 
}
//Impressão da Matriz
for (i=0;i<20;i++)
{
cout<<"\n";
for (j=0;j<10;j++) 
{ 
cout<<mtrX[i][j]<<" - ";
} 
}
getch();
} 
Exemplo – Tela 
Exercício 1
• Observe o programa a seguir. 
• O que o programa imprime na tela?
• Quais são os valores que serão impressos 
para a matriz?
int main () 
{ 
int t, i, M[3][4]; 
for (t=0;t<3;t++)
{
for (i=0;i<4;i++) 
{ 
M[t][i] = (t*4)+i+1; 
} 
}
for (t=0;t<3;t++)
{
cout<<"\n";
for (i=0;i<4;i++) 
{ 
cout<<M[t][i]<<" - ";
} 
}
getch();
} 
Referência Bibliográfica
• ASCENCIO, Ana Fernanda Gomes e CAMPOS, 
Edilene A. Veneruchi. Fundamentos da 
Programação de Computadores – Algoritmos, 
Pascal e C/C++. São Paulo: Pearson Prentice
Hall, 2007. Capítulo 7.

Outros materiais