Cap - PowerPoint PPT Presentation

About This Presentation
Title:

Cap

Description:

Cap tulo IV Comandos de Controle de Fluxo 4.1 Comandos compostos 4.2 Comandos condicionais 4.3 Express es condicionais 4.4 Comandos repetitivos – PowerPoint PPT presentation

Number of Views:72
Avg rating:3.0/5.0
Slides: 63
Provided by: Fabio231
Category:
Tags: cap

less

Transcript and Presenter's Notes

Title: Cap


1
Capítulo IV Comandos de Controle de Fluxo
  • 4.1 Comandos compostos
  • 4.2 Comandos condicionais
  • 4.3 Expressões condicionais
  • 4.4 Comandos repetitivos
  • 4.5 Comandos de escape
  • 4.6 Comandos de seleção
  • 4.7 Introdução à metodologia top-down

2
4.6 Comandos de Seleção
Escolher um de vários caminhos alternativos,
conforme o valor da expressão
A expressão e os valores V11, V12, ... , Vnp são
inteiros ou caracteres
  • 4.6.1 Importante estrutura algoritmica

3
  • Em C
  • aplainada

switch (Expressao) V11, V12, ... , V1i Lista
de Comandos V21, V22, ... , V2j Lista de
Comandos . . . . . . Vn1, Vn2, ... , Vnp
Lista de Comandos default Lista de Comandos
4
  • switch (Expressao)
  • case V11 case V12 ... case V1i
  • Lista de comandos break
  • case V21 case V22 ... case V2j
  • Lista de comandos break
  • .
  • .
  • case Vn1 case Vn2 ... case Vnp
  • Lista de comandos break
  • default
  • Lista de comandos

Em C
O comando break é necessário para que somente uma
lista de comandos seja executada
switch (Expressao) V11, V12, ... , V1i
Lista de Comandos V21, V22, ... , V2j Lista
de Comandos . . . . . . Vn1, Vn2, ... , Vnp
Lista de Comandos default Lista de
Comandos
Obs. o ramo default é opcional
5
  • include ltstdio.hgt
  • include ltconio.hgt
  • void main ( )
  • char c int n
  • printf ("Levantar o astral? (s/n) ") c
    getche()
  • while (c 's' c 'S')
  • printf ("\n\n\tDigite um numero de 1 a 7 ")
    scanf ("d", n)
  • switch (n)
  • case 1 printf ("\n\tVoce eh inteligente")
    break
  • case 2 printf ("\n\tVoce eh campeao") break
  • case 3 printf ("\n\tVoce estah com tudo")
    break
  • case 4 printf ("\n\tSeu destino eh vencer")
    break
  • case 5 printf ("\n\tTudo coopera para seu
    sucesso") break
  • case 6 printf ("\n\tA vida sorri para voce")
    break
  • case 7 printf ("\n\tNada pode impedir sua
    vitoria") break
  • default printf ("\n\tO numero deve ser de 1 a
    7")
  • printf ("\n\nLevantar o astral? (s/n) ") c
    getche ()

Exemplo seja o seguinte programa
6
  • include ltstdio.hgt
  • include ltconio.hgt
  • void main ( )
  • char c int n
  • printf ("Levantar o astral? (s/n) ") c
    getche()
  • while (c 's' c 'S')
  • printf ("\n\n\tDigite um numero de 1 a 7 ")
    scanf ("d", n)
  • switch (n)
  • case 1 printf ("\n\tVoce eh inteligente")
  • case 2 printf ("\n\tVoce eh campeao")
  • case 3 printf ("\n\tVoce estah com tudo")
  • case 4 printf ("\n\tSeu destino eh vencer")
  • case 5 printf ("\n\tTudo coopera para seu
    sucesso")
  • case 6 printf ("\n\tA vida sorri para voce")
  • case 7 printf ("\n\tNada pode impedir sua
    vitoria")
  • default printf ("\n\tO numero deve ser de 1 a
    7")
  • printf ("\n\nLevantar o astral? (s/n) ") c
    getche ()

Retirando-se os comandos break
7
  • Fluxograma do switch sem usar break

8
  • Exemplo programa para contar diversos tipos de
    caracteres
  • Digitar uma frase, guardando-a no buffer do
    teclado
  • Ler cada caractere da frase, classificando-o
  • Acrescentar 1 ao contador da classe do caractere
  • No final, escrever no vídeo o valor do contador
    de cada classe

1) A ou a 2) E ou e 3) I ou i 4) O ou o 5) U ou
u 6) W ou w 7) Y ou y 8) Consoantes 9) Dígitos
decimais 10) Outros caracteres
Classes
9
  • include ltstdio.hgt
  • include ltstdlib.hgt
  • / Cabecalho e declaracoes /
  • int main ( )
  • char c
  • int ct_a, ct_e, ct_i, ct_o, ct_u, ct_w, ct_y,
  • ct_cons, ct_dig, ct_outros
  • / Zerar todos os contadores /
  • ct_a ct_e ct_i ct_o ct_u ct_w
  • ct_y ct_cons ct_dig ct_outros 0

10
  • / Ler e classificar cada caractere /
  • printf ("Digite uma frase\n\n\t") scanf ("c",
    c)
  • while (c ! '\n')
  • switch (c)
  • case 'a' case 'A' ct_a break
  • case 'e' case 'E' ct_e break
  • case 'i' case 'I' ct_i break
  • case 'o' case 'O' ct_o break
  • case 'u' case 'U' ct_u break
  • case 'w' case 'W' ct_w break
  • case 'y' case 'Y' ct_y break
  • default
  • if (c gt '0' c lt '9') ct_dig
  • else if (c gt 'B' c lt 'Z' c gt 'b'
    c lt 'z')
  • ct_cons
  • else ct_outros
  • scanf ("c", c)

11
  • / Imprimir os contadores e fechar a tela/
  • printf ("\nLetra A 3d\nLetra E 3d",
    ct_a, ct_e)
  • printf ("\nLetra I 3d\nLetra O 3d",
    ct_i, ct_o)
  • printf ("\nLetra U 3d\nLetra W 3d",
    ct_u, ct_w)
  • printf ("\nLetra Y 3d\nConsoantes 3d",
    ct_y, ct_cons)
  • printf ("\nDigitos 3d\nOutros 3d",
    ct_dig, ct_outros)
  • printf ("\n\n") system ("pause") return 0

Resultado
Digite uma frase hberoçh 9g59y9
)_Y(HHU 3_at_UDFUYapok Letra A 1 Letra E
1 Letra I 0 Letra O 2 Letra U
3 Letra W 0 Letra Y 3 Consoantes
11 Digitos 5 Outros 14 Pressione . .
.
12
  • Exercícios 4.6
  • Dizer que características uma frase digitada deve
    ter para que o programa do próximo slide a
    considere correta

13
  • include ltstdio.hgt
  • include ltstdlib.hgt
  • int main ( )
  • char c, erro int c1, c2, c3, c4, c5, c6
  • c1 c2 c3 c4 c5 c6 0 erro 0
    printf ("Digite uma frase ")
  • do
  • scanf ("c", c)
  • if (c ! '\n')
  • switch (c)
  • case ' ( ' c1 break case ' ) '
    c2 break
  • case ' ' c3 break case ' '
    c4 break
  • case ' ' c5 break case ' '
    c6 break
  • if (c2 gt c1 c4 gt c3 c6 gt c5)
    erro 1
  • while (c ! ' \n ' erro 0)
  • if (erro 0 c1 c2 c3 c4
    c5 c6) printf ("Frase correta")
  • else printf ("Frase com erros")
  • printf ("\n\n") system ("pause") return 0

14
Capítulo IV Comandos de Controle de Fluxo
  • 4.1 Comandos compostos
  • 4.2 Comandos condicionais
  • 4.3 Expressões condicionais
  • 4.4 Comandos repetitivos
  • 4.5 Comandos de escape
  • 4.6 Comandos de seleção
  • 4.7 Introdução à metodologia top-down

15
4.7 Introdução à Metodologia Top-down
  • 4.7.1 Conceito
  • É a decomposição de uma grande tarefa numa
    coleção de tarefas menores interligadas
  • Cada uma dessas tarefas menores pode ser
    decomposta da mesma forma
  • No final, chega-se a uma coleção de tarefas
    triviais interligadas
  • Cada uma delas poderá ser resolvida por um
    comando típico dos algoritmos

16
  • 4.7.2 Desenvolvimento de um algoritmo para
    encontrar os n primeiros números naturais primos
  • Método
  • Por definição, 1 não é primo
  • Percorrer o campo dos naturais, do no 2 em
    diante, até encontrar n números primos

17
  • 4.7.2 Desenvolvimento de um algoritmo para
    encontrar os n primeiros números naturais primos
  • Método
  • Para ver se um número num é primo

num tem divisor na região B se e somente se tem
divisor na região A
Então basta procurar divisores para num na região
A
18
  • Desenvolvimento do algoritmo por top-down
  • 1ª Etapa
  • N_PrimeirosNúmerosPrimos
  • Escrever o título da tarefa
  • Pedir e ler o valor de n
  • Se (n lt 0) Escrever mensagem de erro
  • Senão
  • Encontrar e Escrever os n 1os números primos

19
  • N_PrimeirosNúmerosPrimos
  • Escrever o título da tarefa
  • Pedir e ler o valor de n
  • Se (n lt 0) Escrever mensagem de erro
  • Senão
  • Encontrar e Escrever os n 1os números primos

2ª Etapa
20
  • N_PrimeirosNúmerosPrimos
  • write (Relacao dos n primeiros numeros
    primos)
  • write (Digite o valor de n) read (n)
  • Se (n lt 0) Escrever mensagem de erro
  • Senão
  • Encontrar e Escrever os n 1os números primos

2ª Etapa
21
  • N_PrimeirosNúmerosPrimos
  • write (Relacao dos n primeiros numeros
    primos)
  • write (Digite o valor de n) read (n)
  • Se (n lt 0) Escrever mensagem de erro
  • Senão
  • Encontrar e Escrever os n 1os números primos

2ª Etapa
22
  • N_PrimeirosNúmerosPrimos
  • write (Relacao dos n primeiros numeros
    primos)
  • write (Digite o valor de n) read (n)
  • if (n lt 0) write (n, - valor improprio para
    n)
  • else
  • Encontrar e Escrever os n 1os números primos

2ª Etapa
23
  • N_PrimeirosNúmerosPrimos
  • write (Relacao dos n primeiros numeros
    primos)
  • write (Digite o valor de n) read (n)
  • if (n lt 0) write (n, - valor improprio para
    n)
  • else
  • Encontrar e Escrever os n 1os números primos

2ª Etapa
24
  • N_PrimeirosNúmerosPrimos
  • write (Relacao dos n primeiros numeros
    primos)
  • write (Digite o valor de n) read (n)
  • if (n lt 0) write (n, - valor improprio para
    n)
  • else
  • num 2 cont 0
  • do
  • Testar se num é primo
  • if (num é primo)
  • write (num) cont
  • num
  • while (cont lt n)

2ª Etapa
num número a ser testado cont contador de
números primos encontrados
Faltam detalhes
25
  • Desenvolvimento de
  • Testar se num é primo
  • if (num é primo)
  • Procurar divisor para num, no intervalo 2, ?
    ?
  • if (não encontrar divisor para num)

3ª Etapa
26
  • Desenvolvimento de
  • Procurar divisor para num, no intervalo 2, ?
    ?
  • if (não encontrar divisor para num)
  • div 2
  • while ((não encontrar divisor) (div2 lt num))
  • Testar div
  • if (div é divisor de num)
  • Encontrou divisor
  • else div
  • if (não encontrar divisor para num)

4ª Etapa
27
  • div 2
  • while ((não encontrar divisor) (div2 lt num))
  • Testar div
  • if (div é divisor de num)
  • Encontrou divisor
  • else div
  • if (não encontrar divisor para num)

5ª e última Etapa
28
  • div 2 achou False
  • while ((achou False) (div2 lt num))
  • Testar div
  • if (div é divisor de num)
  • Encontrou divisor
  • else div
  • if (achou False)

5ª e última Etapa
29
  • div 2 achou False
  • while ((achou False) (div2 lt num))
  • Testar div
  • if (div é divisor de num)
  • Encontrou divisor
  • else div
  • if (achou False)

5ª e última Etapa
30
  • div 2 achou False
  • while ((achou False) (div2 lt num))
  • resto num div
  • if (resto 0)
  • achou True
  • else div
  • if (achou False)

5ª e última Etapa
Copia-se este trecho no resultado da 2ª Etapa
31
  • N_PrimeirosNúmerosPrimos
  • write (Relacao dos n primeiros numeros
    primos)
  • write (Digite o valor de n) read (n)
  • if (n lt 0) write (n, - valor improprio para
    n)
  • else
  • num 2 cont 0
  • do
  • Testar se num é primo
  • if (num é primo)
  • write (num) cont
  • num
  • while (cont lt n)

Faltam detalhes
32
  • N_PrimeirosNúmerosPrimos
  • int n, num, cont, div, resto logic achou
  • write (Relacao dos n primeiros numeros
    primos)
  • write (Digite o valor de n) read (n)
  • if (n lt 0) write (n, - valor improprio para
    n)
  • else
  • num 2 cont 0
  • do
  • div 2 achou False
  • while ((achou False) (div2 lt num))
  • resto num div
  • if (resto 0) achou True
  • else div
  • if (achou False)
  • write (num) cont
  • num
  • while (cont lt n)

Obs. todos os comandos resolvem problemas
triviais e já podem ser traduzidos para a
Linguagem C
33
  • include ltstdio.hgt
  • include ltstdlib.hgt
  • / Declaracao do tipo e das constantes logicas
    /
  • typedef char logic
  • const logic True 1, False 0
  • / Cabecalho e declaracoes das variaveis locais
    /
  • int main ()
  • int n, num, cont, div, resto logic achou

34
  • / Escrita do titulo e leitura de n /
  • printf ("Relacao dos n primeiros numeros
    primos")
  • printf ("\n\n\tDigite o valor de n ") scanf
    ("d", n)
  • printf ("\n")
  • / Caso de valor improprio para n /
  • if (n lt 0) printf ("d - valor improprio para
    n", n)
  • / Caso de valor correto para n
  • Procura dos n primeiros numeros primos /
  • else
  • num 2 cont 0
  • do

35
  • / Procura de divisor para um numero /
  • div 2 achou False
  • while ((achou False) (divdiv lt num))
  • resto num div
  • if (resto 0) achou True
  • else div
  • / Escrita de cada numero primo encontrado
  • 10 numeros em cada linha /
  • if (achou False)
  • printf ("5d", num) cont
  • if (cont 10 0) printf ("\n")

Não será usado for, pois o último comando do
while é um if
36
  • / Preparando para testar o proximo numero,
  • ate que os n primeiros numeros primos sejam
    encontrados /
  • num
  • while (cont lt n)
  • / Fechamento da tela de execucao /
  • printf ("\n\n") system ("pause") return 0

Relacao dos n primeiros numeros primos
Digite o valor de n 26 2 3 5 7
11 13 17 19 23 29 31 37 41 43
47 53 59 61 67 71 73 79 83 89
97 101 Digite algo para encerrar
Resultado para n 26
37
  • 4.7.3 Desenvolvimento de um algoritmo para
    encontrar os fatores primos de números lidos
  • Requisitos para o
  • programa
  • Gerar relatórios do
  • tipo

FATORES PRIMOS DE NUMEROS INTEIROS Fatorar
numero? (s/n) s Digite o numero 504
Fatores primos de 504 23 32
71 Fatorar numero? (s/n) s Digite o
numero 348 Fatores primos de 348 22
31 291 Fatorar numero? (s/n) s
Digite o numero 750 Fatores primos de
750 21 31 53 Fatorar numero? (s/n)
n Pressione qualquer tecla para continuar. . .
38
  • Método ilustrado com os fatores primos de 504,
    348 e 750

504
2
348
2
750
2
252
2
174
2
375
3
126
2
87
3
125
5
63
3
29
29
25
5
21
3
1
5
5
7
7
1
1
Encontrar o próximo primo como divisor é de
programação trabalhosa Mais fácil é testar
divisores consecutivos a partir de 2
39
  • Desenvolvimento do algoritmo por top-down
  • 1ª Etapa
  • FatoresPrimos
  • Escrever o título da tarefa
  • Perguntar se quer fatorar número
  • Aguardar a resposta
  • Enquanto a resposta for sim
  • Perguntar qual o número
  • Aguardar o número
  • Fatorar o número e escrever seus fatores
  • Perguntar se quer fatorar outro número
  • Aguardar a resposta

40
  • FatoresPrimos
  • Escrever o título da tarefa
  • Perguntar se quer fatorar número
  • Aguardar a resposta
  • Enquanto a resposta for sim
  • Perguntar qual o número
  • Aguardar o número
  • Fatorar o número e escrever seus fatores
  • Perguntar se quer fatorar outro número
  • Aguardar a resposta

2ª Etapa
41
  • FatoresPrimos
  • write (FATORES PRIMOS DE NUMEROS INTEIROS)
  • write (Fatorar numero? (s/n) )
  • read (resposta)
  • Enquanto a resposta for sim
  • Perguntar qual o número
  • Aguardar o número
  • Fatorar o número e escrever seus fatores
  • Perguntar se quer fatorar outro número
  • Aguardar a resposta

2ª Etapa
char resposta
42
  • FatoresPrimos
  • write (FATORES PRIMOS DE NUMEROS INTEIROS)
  • write (Fatorar numero? (s/n) )
  • read (resposta)
  • Enquanto a resposta for sim
  • Perguntar qual o número
  • Aguardar o número
  • Fatorar o número e escrever seus fatores
  • Perguntar se quer fatorar outro número
  • Aguardar a resposta

2ª Etapa
char resposta
43
  • FatoresPrimos
  • write (FATORES PRIMOS DE NUMEROS INTEIROS)
  • write (Fatorar numero? (s/n) )
  • read (resposta)
  • while (resposta s resposta S)
  • Perguntar qual o número
  • Aguardar o número
  • Fatorar o número e escrever seus fatores
  • Perguntar se quer fatorar outro número
  • Aguardar a resposta

2ª Etapa
char resposta
44
  • FatoresPrimos
  • write (FATORES PRIMOS DE NUMEROS INTEIROS)
  • write (Fatorar numero? (s/n) )
  • read (resposta)
  • while (resposta s resposta S)
  • Perguntar qual o número
  • Aguardar o número
  • Fatorar o número e escrever seus fatores
  • Perguntar se quer fatorar outro número
  • Aguardar a resposta

2ª Etapa
char resposta
45
  • FatoresPrimos
  • write (FATORES PRIMOS DE NUMEROS INTEIROS)
  • write (Fatorar numero? (s/n) )
  • read (resposta)
  • while (resposta s resposta S)
  • write (Digite o numero)
  • read (num)
  • Fatorar o número e escrever seus fatores
  • write (Fatorar numero? (s/n) )
  • read (resposta)

2ª Etapa
char resposta int num
46
  • FatoresPrimos
  • write (FATORES PRIMOS DE NUMEROS INTEIROS)
  • write (Fatorar numero? (s/n) )
  • read (resposta)
  • while (resposta s resposta S)
  • write (Digite o numero)
  • read (num)
  • Fatorar o número e escrever seus fatores
  • write (Fatorar numero? (s/n) )
  • read (resposta)

2ª Etapa
A ser desenvolvido na próxima etapa
char resposta int num
47
  • Desenvolvimento de Fatorar num e escrever seus
    fatores

504
504 2 0
2
2 2 504
252
252 2 0
2
3x
126
126 2 0
2
aux
63
3
63 2 ? 0
3 3 63
63 3 0
2x
21
3
21 3 0
1x
7
7
4 4 gt 7
7 3 ? 0
1
Copiar num numa variável aux Dividir aux
pelos fatores encontrados
Aqui, aux é primo
504 23 32 71
3ª Etapa
48
  • Desenvolvimento de Fatorar num e escrever seus
    fatores

348
348 2 0
2
2 2 348
2x
174
174 2 0
2
1x
87
3
87 2 ? 0
3 3 87
87 3 0
1x
aux
29
29
4 4 29
29 3 ? 0
29 4 ? 0
5 5 29
29 5 ? 0
6 6 gt 29
1
Aqui, aux é primo
348 22 31 291
3ª Etapa
49
  • Desenvolvimento de Fatorar num e escrever seus
    fatores

750
750 2 0
2
2 2 750
1x
375
375 2 ? 0
3
375 3 0
3 3 375
1x
125
5
125 3 ? 0
125 4 ? 0
125 5 0
4 4 125
5 5 125
aux
25
5
3x
25 5 0
5
5
5 5 0
1
Aqui, aux não é primo
750 21 31 53
3ª Etapa
50
  • Desenvolvimento de Fatorar num e escrever seus
    fatores
  • write (Fatores primos de , num, )
  • aux num
  • Procurar fatores para aux no intervalo 2, ?
    ?
  • Atualizando o valor de aux, ou seja
  • Dividindo aux pelos fatores encontrados
  • Imprimindo cada fator ao lado de seu expoente
  • Testar se aux restante é um fator

char resposta int num, aux
3ª Etapa
51
  • write (Fatores primos de , num, )
  • aux num
  • Procurar fatores para aux no intervalo 2, ?
    ?
  • Atualizando o valor de aux, ou seja
  • Dividindo aux pelos fatores encontrados
  • imprimindo cada fator ao lado de seu expoente
  • Testar se aux restante é um fator

char resposta int num, aux
4ª Etapa
52
  • write (Fatores primos de , num, )
  • aux num
  • fat 2
  • while (fat2 lt aux )
  • Calcular expoente de fat e atualizar aux
  • se expoente de fat gt 0
  • Escrever fat ao lado do expoente
  • fat
  • Testar se aux restante é um fator

char resposta int num, aux, fat
4ª Etapa
53
  • write (Fatores primos de , num, )
  • aux num
  • fat 2
  • while (fat2 lt aux )
  • Calcular expoente de fat e atualizar aux
  • se expoente de fat gt 0
  • Escrever fat ao lado do expoente
  • fat
  • Testar se aux restante é um fator

char resposta int num, aux, fat
4ª Etapa
54
  • write (Fatores primos de , num, )
  • aux num
  • fat 2
  • while (fat2 lt aux )
  • Calcular expoente de fat e atualizar aux
  • se expoente de fat gt 0
  • Escrever fat ao lado do expoente
  • fat
  • if (aux gt 1 num 1)
  • write (aux, 1)

char resposta int num, aux, fat
4ª Etapa
55
  • write (Fatores primos de , num, )
  • aux num
  • fat 2
  • while (fat2 lt aux )
  • Calcular expoente de fat e atualizar aux
  • se expoente de fat gt 0
  • Escrever fat ao lado do expoente
  • fat
  • if (aux gt 1 num 1)
  • write (aux, 1)

5ª Etapa
char resposta int num, aux, fat
56
  • fat 2
  • while (fat2 lt aux )
  • Calcular expoente de fat e atualizar aux
  • se expoente de fat gt 0
  • Escrever fat ao lado do expoente
  • fat

5ª Etapa
char resposta int num, aux, fat
57
  • fat 2
  • while (fat2 lt aux )
  • expo 0
  • while (aux fat 0)
  • expo
  • aux / fat
  • if (expo gt 0)
  • write (fat, , expo)
  • fat

5ª Etapa
char resposta int num, aux, fat, expo
58
  • FatoresPrimos
  • char resposta int num, aux, fat, expo
  • write (FATORES PRIMOS DE NUMEROS INTEIROS)
  • write (Fatorar numero? (s/n) ) read
    (resposta)
  • while (resposta s resposta S)
  • write (Digite o numero) read (num)
  • write (Fatores primos de , num, )
  • aux num fat 2
  • while (fatfat lt aux )
  • expo 0
  • while (aux fat 0)
  • expo aux / fat
  • if (expo gt 0) write (fat, , expo)
  • fat
  • if (aux gt 1 num 1) write (aux, 1)
  • write (Fatorar numero? (s/n) ) read
    (resposta)

Algoritmo final
59
  • FatoresPrimos
  • char resposta int num, aux, fat, expo
  • write (FATORES PRIMOS DE NUMEROS INTEIROS)
  • write (Fatorar numero? (s/n) ) read
    (resposta)
  • while (resposta s resposta S)
  • write (Digite o numero) read (num)
  • write (Fatores primos de , num, )
  • aux num
  • for (fat 2 fatfat lt aux fat )
  • for (expo 0 aux fat 0 expo, aux /
    fat)
  • if (expo gt 0) write (fat, , expo)
  • if (aux gt 1 num 1) write (aux, 1)
  • write (Fatorar numero? (s/n) ) read
    (resposta)

Algoritmo final, usando comandos for
60
  • include ltstdio.hgt
  • include ltstdlib.hgt
  • / Cabecalho e declaracoes /
  • int main ()
  • char resposta, lixo int num, aux, fat, expo
  • / Escrita do titulo da tarefa e oferecimento de
    servico ao operador /
  • printf ("FATORES PRIMOS DE NUMEROS INTEIROS")
  • printf ("\n\nFatorar numero? (s/n) ") scanf
    ("c", resposta)
  • while (resposta 's' resposta 'S')
  • / Solicitacao do numero a fatorar /
  • printf ("\n\tDigite o numero ") scanf ("dc",
    num, lixo)
  • printf ("\n\tFatores primos de d ", num)

Programa em C
61
  • / Pesquisa por fatores primos no intervalo 2,
    sqrt(aux) /
  • aux num
  • for (fat 2 fatfat lt aux fat)
  • / Calculo do expoente de um fator /
  • for (expo 0 aux fat 0 expo, aux /
    fat)
  • / Escrita de um fator ao lado de seu expoente /
  • if (expo gt 0) printf ("dd ", fat, expo)

62
  • / Testando se o ultimo aux eh fator primo /
  • if (aux gt 1 num 1) printf ("d1", aux)
  • / Novo oferecimento de servico ao operador /
  • printf ("\n\nFatorar numero? (s/n) ") scanf
    ("c", resposta)
  • / Fechamento da tela /
  • printf ("\n\n") system ("pause") return 0
Write a Comment
User Comments (0)
About PowerShow.com