Documente Academic
Documente Profesional
Documente Cultură
Numero: 3
Caractere: *
***
***
***
Laos 3
10.3 Enlaamento Laos Encaixados
IDIA: Este programa deve imprimir na mesma linha, n vezes o
caractere lido. A seguir ele deve pular uma linha e imprimir
novamente n vez o caractere lido. Isto deve ser feito n vezes.
n vezes
}
**** *
n vezes
printf(\n);
for (j=1; j <= n; j++)
{
printf("%c", c);
}
printf(\n); **** *
Ao invs de se escrever n vezes o comando for, com a varivel j,
pode-se colocar um lao externo com uma varivel i de modo que
Laos 5
para cada valor de i o lao interno, do j, se repita n vezes.
10.3 Enlaamento Laos Encaixados
Numero: 5
1
12
123
1234
12345
Laos 7
10.3 Enlaamento Laos Encaixados
Coluna j
Linha i j=1 j=2 j=3 j=4 j=5
i=1 1 2 3 4 5
i=2 1 2 3 4 5
i=3 1 2 3 4 5
i=4 1 2 3 4 5
Laos 8
i=5 1 2 3 4 5
10.3 Enlaamento Laos Encaixados
Para se imprimir a matriz do slide anterior bastaria fazermos:
for (i=1; i <= n; i++) j=1 j=2 j=3 j=4 j=5
{
for (j=1; j <= n; j++) i=1 1
{ i=2 1 2
printf("%d", j); i=3 1 2 3
} i=4 1 2 3 4
printf(\n); i=5 1 2 3 4 5
}
#include <stdio.h>
#include <stdlib.h>
main() Resultado na Tela
{ int i,j,n;
printf(Digite o no. de linhas n\n); 1
scanf(%d,&n);
for (i=1; i <= n; i++)
1 2
n vezes
{
for (j=1; j <= i ; j++)
{
printf("%d", j);
}
printf(\n);
} 1 2 3 ... n
system (pause);
} Laos 11
10.4 Enlaamento: Comando BREAK
O comando break quando aplicado dentro de um lao interrompe
a execuo do mesmo, para qualquer um dos comandos que
representam o lao: while, do-while e for. Os programas abaixo
so equivalentes.
#include <stdio.h>
#include <stdlib.h> #include <stdio.h>
main() #include <stdlib.h>
{ int i; main()
for (i=1; ;i=i+1) { int i;
{
printf( %d \n,i); for (i=1; i<=5 ;i=i+1)
if (i == 5) {
break; printf( %d \n,i);
} }
system (pause); system (pause);
Laos 12
} }
10.4 Enlaamento: Comando BREAK
Laos (N-1) 15
N simo programa ---2 =Erros.
10.6 Enlaamento Mais Exerccios
//Programa exerccio 10
#include <stdlib.h>
#include <stdio.h>
main()
{ int Erro, Cont, Prog ;
// Ler o nmero de programas a ser executado
printf("Digite o numero de programas feitos\n");
scanf("%d",&Prog);
// [Inicializar variveis]
Erro =1;
Cont = 1;
//[Iniciar lao]
while (Cont<Prog)
{//4. [Calcular o nmero de erros]
Erro = Erro * 2;
// [Atualizar contador]
Cont= Cont + 1;
}// fim do lao
printf("Numero de erros cometidos no programa %d=%d\n",Prog,Erro);
system("pause");
}// Fim programa
Laos 16
10.7 Enlaamento Aplicaes
Aplicao 1: Por volta do ano 1202, Fibonacci prope na sua
obra Liber abaci o seguinte problema:
Laos 18
10.7 Enlaamento Aplicaes
Laos 19
10.7 Enlaamento Aplicaes
Laos 20
10.7 Enlaamento Aplicaes
Aplicao 1: Calcular a seqncia de Fibonacci: 1 1 2 3 5
8 13 ... dado o nmero de termos n. Para tanto, pode-se
utilizar a seguinte frmula:
F(n)=F(n-1)+F(n-2)
Laos 21
10.7 Enlaamento Aplicaes
Laos 22
10.7 Enlaamento Aplicaes
0 1 2 3 4 5 6
0
0 (0) (x+a)0 = 1
1 ( 10 ) ( 11 ) (x+a)1 = 1x + 1a
3 ( 30 ) ( 31 ) 3 3
(2) (3) (x+a)3 = 1x3 + 3x2a + 3xa2 + 1a3
6
6 6
(0) (1) ( 62 ) ( 63 ) ( 64 ) ( 65 ) ( 66 ) (x+a)6 =Laos
1 6 15 20 15 6 123
10.7 Enlaamento Aplicaes
Os valores do tringulo de Pascal na verdade representam
os coeficientes do binmio de Newton.
0 1 2 3 4 5 6 0 1 2 3 4 5 6
0
0 0)
( 0 1
1 1
1 0) (1)
( 1 1 1
2 2 2
2 (0) (1) (2) 2 1 2 1
3 ( 30 ) ( 31 ) ( 32 ) ( 33 ) 3 1 3 3 1
4
4 4
(0) (1) ( 42 ) ( 43 ) ( 44 ) 4 1 4 6 4 1
5 5 5 5
5 ( 50 ) ( 51 ) (2) (3) (4) (5) 5 1 5 10 10 5 1
6 ( 60 ) ( 61 ) ( 62 ) ( 63 ) ( 64 ) ( 65 ) ( 66 ) 6 1 6 15 20 15 6 1
Laos 24
10.7 Enlaamento Aplicaes
1 1
1 2 3
1 1 5 8 Para isto, basta somar
os elementos da Diagonal
1 2 1 13
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1 Laos 25
10.7 Enlaamento Aplicaes
Sada Programa C
Nmero
A: ****
C B: ********
B C: ************
A D D: ****
E
Conceito E: **
Laos 27
10.7 Enlaamento Aplicaes
f(b) f(x)
p1(x)
f(a) Matematicamente:
b
h
f ( x)dx ( f ( x0 ) f ( x1 ))
a
2
a=x0 b=x1 onde: h = x1 x0
Ou seja:
f (xk )
b n
f ( x)dx lim
max xk 0
f (x
k 1
k )xk
a Laos 29
xk
10.7 Enlaamento Aplicaes
Aplicao 6: A partir da Regra dos Trapzios descrita anteriormen-
mente possvel obter a Regra dos Trapzios Repetida cuja frmula
dada por:
b
h
f ( x)dx f ( x0 ) 2 f ( x1 ) ... f ( x m 1 ) f ( xm )
a
2
f(x)
f(b)
ATR = A1 + A2 + A3
f(a) ATR = h/2*(f(x0)+f(x1)) +
A1 A2 A3 h/2*(f(x1)+f(x2)) +
h/2*(f(x2)+f(x3))
a=x0 x1=h+x0 x2=2h+x0 b=x3
= h/2*(f(x0)+2(f(x1)+f(x2))+f(x3))
h = (b - a)/3 = xi xi-1 Laos 30
10.7 Enlaamento Aplicaes
Matematicamente:
Laos 31
10.6 Enlaamento Aplicaes
Aplicao 8: Construir um programa que cifra mensagens
digitadas pelo usurio atravs da cifra de Jlio Csar
(General Romano), tal como dado no exemplo abaixo:
Alfabeto original a b c d ... v w x y z
Texto original v e n i v i d i v i c i
Texto cifrado Y H Q L Y L G L Y L F L
FIM
Aula 11 Referncias dos slides
Curso de Programao de Computadores
Prof. Anbal Tavares
Profa. Cassilda Ribeiro
Prof. Dcio Mouro
Laos Prof. Galeno Sena 33