Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Interrupção em Repetições - Apostilas - Informática, Notas de estudo de Informática

Apostilas de Informática sobre o estudo da Interrupção em Repetições e Recursividade, Interrupção de laços, Sobrecarga de função.

Tipologia: Notas de estudo

2013

Compartilhado em 26/06/2013

Ipanema27
Ipanema27 🇧🇷

4.5

(170)

1 / 11

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Interrupção em Repetições
e Recursividade
CEFET/MG
Marconi de Arruda Pereira
pf3
pf4
pf5
pf8
pf9
pfa

Pré-visualização parcial do texto

Baixe Interrupção em Repetições - Apostilas - Informática e outras Notas de estudo em PDF para Informática, somente na Docsity!

Interrupção em Repetições

e Recursividade

CEFET/MG

Marconi de Arruda Pereira

Recapitulando

• Sub-Rotinas

– Contextualização

– Definição

– Funções

• Sem parâmetros e sem retorno

• Com parâmetros e sem retorno

• Sem parâmetros e com retorno

• Com parâmetros e com retorno

– Local das Funções

– Passagem de parâmetro

  • (^) Por valor
  • (^) Por referência

– Vetores e Matrizes com parâmetro

Interrupção de repetições

• Um laço (for, while, do-while) pode ser

interrompido durante sua execução:

– Interrupção da iteração: continue

– Interrupção completa do laço: break

• Exemplos:

Exemplo

• Encontre os números primos (maiores que 2)

do vetor

#include

using namespace std;

int main () {

int vNumeros[] = {13, 3, 10, 30, 10, 4, 50, 40, 45, 17};

bool vPrimo = true;

for(int i = 0; i < 10; i++) {

vPrimo = true;

for(int j = 2; j < vNumeros[i]; j++){

if(vNumeros[i] % j == 0){

vPrimo = false;

break;

if(vPrimo == true){

cout << vNumeros[i] << '\t';

return 0;

Recursividade

• É uma forma de divisão e conquista, onde a

solução final é dada por:

– Solução de N associada à solução de N – 1. Isto se

repete até que se chegue no primeiro passo

• Exemplo:

– Fatorial.

• Sabe-se que fatorial (1) = 1. Assim podemos calcular o

fatorial (3) da seguinte maneira:

  • (^) Fatorial(3) = 3 * Fatorial (2);
  • (^) Fatorial(2) = 2 * Fatorial (1);
  • (^) Como se sabe calcular Fatorial(1), podemos encontrar o Fatorial(3), utilizando o próprio Fatorial(1) e o Fatorial(2)

Exemplo

• O código da função fatorial recursiva fica

assim:

#include <stdio.h>

int fatorial(int pNumero) {

// passo inicial

if(pNumero == 1) {

return 1;

else {

// recursividade

int vRetorno = pNumero * fatorial(pNumero -1);

return vRetorno;

int main () {

int vNumero = 0;

printf("Digite o número: ");

scanf("%d", &vNumero);

printf ("O fatorial de %d é: %d.\n”, vNumero, fatorial(vNumero));

return 0;

Sobrecarga de funções

• Funções diferentes podem ter um mesmo nome,

desde que possuam assinaturas diferentes

• Ex.:

int minimo(int pNumero[], int pPosicao,

int pMin);

int minimo(int pNumero[], int pTamanho);

• O compilador identificará qual função será

chamada, à partir dos parâmetros passados

Resumo

• Interrupção de laços

• Recursividade

• Sobrecarga de função