Upload
trinhnhi
View
216
Download
0
Embed Size (px)
Citation preview
BCC701- Programacao de Computadores I
05 - Funcoes Definidas pelo Usuario
Universidade Federal de Ouro Preto - UFOPDepartamento de Computacao - DECOMhttp://www.decom.ufop.br/bcc701
BCC701 - 2018-02
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 1 / 29
Sumario
1 Introducao
2 SintaxeChamada de FuncaoDefinicao de Funcao
3 ExemplosExemplo 1Exemplo 2Exemplo 3Exemplo 4Exemplo 5Exemplo 6
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 2 / 29
Introducao
Um programa de computador consiste de uma sequencia de instrucoesa serem executadas;
Dependendo do tipo de programa e do problema a ser resolvido, oprograma pode conter de dezenas a milhares de linhas de codigo;
Entretanto, um programa nao deve ser composto de de um blocomonolıtico de instrucoes;
Pelo contrario, para que seja modular, aumentando a legibilidade emanutenibilidade do programa, deve ser composto de variossubprogramas que“se encaixem”, logicamente formando o todo;
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 3 / 29
Introducao
Alem disso, certas tarefas podem ser necessarias varias vezes;
Ao inves de“replicar”codigo, os subprogramas conterao um unicocodigo para a tarefa, que pode ser usado sempre que necessario;
Em Scilab, o recurso para criar subprogramas e a criacao de funcoes;
Voce ja usou varias funcoes disponibilizadas pelo proprio Scilab, porexemplo: input, printf, sprintf, modulo, sqrt, int;
Agora voce vai aprender a criar as suas proprias funcoes;
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 4 / 29
Introducao
Dois conceitos sao muito importantes no entendimento de funcoes:
Chamada de Funcao
Processo pelo qual a funcao e “chamada”, ocasionando na sua execucao,atraves de um desvio na execucao do programa.
Definicao de Funcao
Implementacao do codigo-fonte que define as tarefas a serem executadaspela funcao. Tambem define o que a funcao precisa receber como“entrada”para realizar sua tarefa, e aquilo que ela fornece como“saıda”atraves dos resultados gerados pela sua execucao.Tambem conhecido como“declaracao de funcao”.
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 5 / 29
Chamada de Funcao
“Chamar”uma funcao significa que voce deseja executar a funcao emum momento especıfico da execucao do seu programa;
Quando voce deseja fazer uma entrada de usuario, voce chama afuncao input;Quando voce deseja imprimir um resultado na tela, voce chama afuncao printf ;Quando voce deseja criar um texto com valores de variaveis, vocechama a funcao sprintf ;Quando voce deseja obter o resto da divisao, voce chama a funcaomodulo;
Existe uma sintaxe para“chamar”uma funcao que precisa serrespeitada;
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 6 / 29
Chamada de Funcao
[ <sa ı da> = ] <nome da func ao >([ en t r ada ] )
<saıda>: lista de variaveis de retorno, entre colchetes e separadas porvırgula, que receberao o(s) resultados retornados pela funcao;
Caso seja retornado algum valor, a chamada da funcao pode seracompanhada de uma atribuicao ou estar inserida em uma expressaocompatıvel com os argumentos de saıda;
<nome da func~ao>: nome da funcao que devera ser executada;
[entrada]: lista de argumentos (expressoes), separadas por vırgula,que a funcao precisa receber como entrada para executar a tarefa;
Caso a funcao nao receba nenhum argumento de entrada, a lista naosera definida, mas ainda assim e necessario usar os parenteses;
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 7 / 29
Definicao de Funcao
“Definir”uma funcao significa implementar o codigo-fonte queexecuta a tarefa que ela deve realizar;
Esta tarefa e similar a um programa, mas todas as instrucoes seraovinculadas a funcao, e so serao executadas quando a funcao forchamada;
Assim como para a“chamada”, a“definicao”possui uma sintaxe queprecisa ser respeitada;
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 8 / 29
Definicao de Funcao
funct ion [< sa ı da> = ] <nome da func ao >([ en t r ada ] )<Codigo da func ao>
endfunction
function e endfunction: palavras reservadas obrigatorias, quedelimitam a definicao da funcao;<saıda>: lista de variaveis, entre colchetes e separadas por vırgula,que retornarao o resultado originado da execucao da tarefa;
Os valores para estas variaveis deverao ser definidos dentro da funcao;Caso nao seja retornado nenhum valor, a lista de variaveis e aatribuicao nao devem ser usadas;
<nome da func~ao>: nome da funcao que esta sendo definida. Segueas mesmas regras de definicao de nomes de variaveis;
[entrada]: lista de argumentos (variaveis), separadas por vırgula,que a funcao precisa receber como entrada para executar a tarefa;
<Codigo da func~ao>: subprograma que executa a tarefa;
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 9 / 29
Construindo programas com funcoes
O programa completo sera composto pelas funcoes definidas e umprograma principal;
As funcoes devem ser definidas antes do programa principal;
A execucao do programa se inicia pela primeira instrucao doprograma principal;
Uma funcao e executada apenas se ela for chamada durante o fluxode execucao do programa;
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 10 / 29
Exemplo 1
Implemente um programa que realiza as seguintes tarefas:
Leia dois valores numericos;
Identifique o maior valor entre a subtracao e a soma entre os doisnumeros;
Imprima o maior valor identificado;
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 11 / 29
Exemplo 1: Solucao 1 (SEM funcao)
1 n1 = input ( ”Numero 1 : ”)2 n2 = input ( ”Numero 2 : ”)3 i f n1−n2 > n1+n2 then4 maior = n1−n25 e l s e6 maior = n1+n27 end8 p r i n t f ( ”O maior e : %g. ” , maior )
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 12 / 29
Exemplo 1: Solucao 2 (COM funcao)
1 // Dec l a ra c a o de f un c o e s2 funct ion [ r ] = ma io rVa lo r ( a , b )3 i f a > b then4 r = a5 e l s e6 r = b7 end8 endfunction9 // Programa p r i n c i p a l
10 n1 = input ( ”Numero 1 : ”)11 n2 = input ( ”Numero 2 : ”)12 maior = ma io rVa lo r ( n1−n2 , n1+n2 )13 p r i n t f ( ”O maior e : %g. ” , maior )
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 13 / 29
Exemplo 1: Solucao 2 (COM funcao) - Passo a passo
3 if a > b then4 r = a5 else6 r = b7 end8 endfunction9 // Programa principal
10 n1 = input("Número 1: ")11 n2 = input("Número 2: ")12 maior = maiorValor(n1−n2, n1+n2)13 printf("O maior é: %g.", maior)
Console
Numero 1: ‡Variaveis
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 14 / 29
Exemplo 1: Solucao 2 (COM funcao) - Passo a passo
3 if a > b then4 r = a5 else6 r = b7 end8 endfunction9 // Programa principal
10 n1 = input("Número 1: ")11 n2 = input("Número 2: ")12 maior = maiorValor(n1−n2, n1+n2)13 printf("O maior é: %g.", maior)
Console
Numero 1: 5‡
Variaveis
n1 5
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 14 / 29
Exemplo 1: Solucao 2 (COM funcao) - Passo a passo
3 if a > b then4 r = a5 else6 r = b7 end8 endfunction9 // Programa principal
10 n1 = input("Número 1: ")11 n2 = input("Número 2: ")12 maior = maiorValor(n1−n2, n1+n2)13 printf("O maior é: %g.", maior)
Console
Numero 1: 5Numero 2: ‡
Variaveis
n1 5
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 14 / 29
Exemplo 1: Solucao 2 (COM funcao) - Passo a passo
3 if a > b then4 r = a5 else6 r = b7 end8 endfunction9 // Programa principal
10 n1 = input("Número 1: ")11 n2 = input("Número 2: ")12 maior = maiorValor(n1−n2, n1+n2)13 printf("O maior é: %g.", maior)
Console
Numero 1: 5Numero 2: -3‡
Variaveis
n1; n2 5; -3
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 14 / 29
Exemplo 1: Solucao 2 (COM funcao) - Passo a passo
3 if a > b then4 r = a5 else6 r = b7 end8 endfunction9 // Programa principal
10 n1 = input("Número 1: ")11 n2 = input("Número 2: ")12 maior = maiorValor(n1−n2, n1+n2)13 printf("O maior é: %g.", maior)
Console
Numero 1: 5Numero 2: -3‡
Variaveis
n1; n2 5; -3
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 14 / 29
Exemplo 1: Solucao 2 (COM funcao) - Passo a passo
1 // Declaração de funções2 function [r] = maiorValor(a, b)3 if a > b then4 r = a5 else6 r = b7 end8 endfunction9 // Programa principal
10 n1 = input("Número 1: ")
Console
Numero 1: 5Numero 2: -3‡
Variaveis
n1; n2 5; -3
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 14 / 29
Exemplo 1: Solucao 2 (COM funcao) - Passo a passo
1 // Declaração de funções2 function [r] = maiorValor(a, b)3 if a > b then4 r = a5 else6 r = b7 end8 endfunction9 // Programa principal
10 n1 = input("Número 1: ")
Console
Numero 1: 5Numero 2: -3‡
Variaveis
n1; n2 5; -3a; b 8; 2
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 14 / 29
Exemplo 1: Solucao 2 (COM funcao) - Passo a passo
1 // Declaração de funções2 function [r] = maiorValor(a, b)3 if a > b then4 r = a5 else6 r = b7 end8 endfunction9 // Programa principal
10 n1 = input("Número 1: ")
Console
Numero 1: 5Numero 2: -3‡
Variaveis
n1; n2 5; -3a; b 8; 2
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 14 / 29
Exemplo 1: Solucao 2 (COM funcao) - Passo a passo
1 // Declaração de funções2 function [r] = maiorValor(a, b)3 if a > b then4 r = a5 else6 r = b7 end8 endfunction9 // Programa principal
10 n1 = input("Número 1: ")
Console
Numero 1: 5Numero 2: -3‡
Variaveis
n1; n2 5; -3a; b; r 8 ; 2; 8
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 14 / 29
Exemplo 1: Solucao 2 (COM funcao) - Passo a passo
1 // Declaração de funções2 function [r] = maiorValor(a, b)3 if a > b then4 r = a5 else6 r = b7 end8 endfunction9 // Programa principal
10 n1 = input("Número 1: ")
Console
Numero 1: 5Numero 2: -3‡
Variaveis
n1; n2 5; -3a; b; r 8; 2; 8
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 14 / 29
Exemplo 1: Solucao 2 (COM funcao) - Passo a passo
1 // Declaração de funções2 function [r] = maiorValor(a, b)3 if a > b then4 r = a5 else6 r = b7 end8 endfunction9 // Programa principal
10 n1 = input("Número 1: ")
Console
Numero 1: 5Numero 2: -3‡
Variaveis
n1; n2 5; -3a; b; r 8; 2; 8
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 14 / 29
Exemplo 1: Solucao 2 (COM funcao) - Passo a passo
3 if a > b then4 r = a5 else6 r = b7 end8 endfunction9 // Programa principal
10 n1 = input("Número 1: ")11 n2 = input("Número 2: ")12 maior = maiorValor(n1−n2, n1+n2)13 printf("O maior é: %g.", maior)
Console
Numero 1: 5Numero 2: -3‡
Variaveis
n1;n2 5; -3a; b; r 8;2; 8maior 8
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 14 / 29
Exemplo 1: Solucao 2 (COM funcao) - Passo a passo
3 if a > b then4 r = a5 else6 r = b7 end8 endfunction9 // Programa principal
10 n1 = input("Número 1: ")11 n2 = input("Número 2: ")12 maior = maiorValor(n1−n2, n1+n2)13 printf("O maior é: %g.", maior)
Console
Numero 1: 5Numero 2: -3‡
Variaveis
n1;n2 5; -3maior 8
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 14 / 29
Exemplo 1: Solucao 2 (COM funcao) - Passo a passo
3 if a > b then4 r = a5 else6 r = b7 end8 endfunction9 // Programa principal
10 n1 = input("Número 1: ")11 n2 = input("Número 2: ")12 maior = maiorValor(n1−n2, n1+n2)13 printf("O maior é: %g.", maior)
Console
Numero 1: 5Numero 2: -3O maior e: 8.‡
Variaveis
n1;n2 5; -3maior 8
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 14 / 29
Exemplo 1: Solucao 2 (COM funcao) - Passo a passo
3 if a > b then4 r = a5 else6 r = b7 end8 endfunction9 // Programa principal
10 n1 = input("Número 1: ")11 n2 = input("Número 2: ")12 maior = maiorValor(n1−n2, n1+n2)13 printf("O maior é: %g.", maior)
Console
Numero 1: 5Numero 2: -3O maior e: 8.‡
Variaveis
n1;n2 5; -3maior 8
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 14 / 29
Entendendo melhor o funcionamento
Ao chamar a funcao, havera um desvio da execucao do programa parao codigo da funcao chamada;
Variaveis para os argumentos de entrada sao criadas e recebem osvalores resultantes das expressoes passadas na chamada;
O codigo da funcao e executado como um programa qualquer;
Ao final da execucao da funcao, os valores das variaveis de retornoserao transferidos para“quem”chamou a funcao, dependendo docontexto da chamada:
Caso seja uma atribuicao, os valores serao transferidos entre asvariaveis de saıda da definicao da funcao e da chamada da funcao;Caso seja uma expressao, os valores das variaveis de saıda da definicaoda funcao serao transferidos para a expressao, possibilitando a obtencaodo resultado final da expressao. Neste caso, e importante que os valoresretornados sejam compatıveis com os valores esperados na expressao;
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 15 / 29
Entendendo melhor o funcionamento
As variaveis do programa principal existirao dentro da funcao(variaveis globais);
Mas, as variaveis da funcao nao existirao fora da funcao (variaveislocais);
As variaveis do programa e das funcoes podem possuir o mesmonome, mas ainda assim, serao variaveis diferentes (elas seraohomonimas);
Uma funcao pode ser chamada em qualquer lugar, inclusive dentro deuma funcao definida pelo usuario;
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 16 / 29
Exemplo 2
Implemente um programa que realiza as seguintes tarefas:
Leia dois valores inteiros, obrigando o usuario a digitar valores validos;
Identifique o maior valor entre o subtracao e a soma entre os doisnumeros;
Imprima o maior valor identificado;
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 17 / 29
Exemplo 2: Solucao 1 (SEM funcao para a validacao)
1 // Dec l a ra c a o de f un c o e s2 f u n c t i o n [ r ] = ma io rVa lo r ( a , b )3 i f a > b then4 r = a5 e l s e6 r = b7 end8 end funct i on9 // Programa p r i n c i p a l
10 n1 = i npu t ( ”Numero 1 : ”)11 wh i l e n1 ˜= i n t ( n1 )12 n1 = i npu t ( ”Numero 1 : ”)13 end14 n2 = i npu t ( ”Numero 2 : ”)15 wh i l e n2 ˜= i n t ( n2 )16 n2 = i npu t ( ”Numero 2 : ”)17 end18 maior = ma io rVa lo r ( n1−n2 , n1+n2 )19 p r i n t f ( ”O maior e : %g. ” , maior )
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 18 / 29
Exemplo 2: Solucao 2 (COM funcao para a validacao)
1 // Dec l a ra c a o de f un c o e s2 f u n c t i o n [ n ] = i n t e i r o (mensagem )3 n = i npu t (mensagem )4 wh i l e n ˜= i n t ( n )5 n = i npu t (mensagem )6 end7 end funct i on8 f u n c t i o n [ r ] = ma io rVa lo r ( a , b )9 i f a > b then
10 r = a11 e l s e12 r = b13 end14 end funct i on15 // Programa p r i n c i p a l16 n1 = i n t e i r o ( ”Numero 1 : ”)17 n2 = i n t e i r o ( ”Numero 2 : ”)18 maior = ma io rVa lo r ( n1−n2 , n1+n2 )19 p r i n t f ( ”O maior e : %g. ” , maior )
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 19 / 29
Exemplo 3
Implemente um programa que calcule o numero de combinacoes de ntomados k a k, que pode ser obtido com a expressao:(
n
k
)=
n!
(n − k)!k!
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 20 / 29
Exemplo 3: Solucao 1 (SEM funcao)
(n
k
)=
n!
(n − k)!k!
1 n = i npu t ( ”n = ”)2 k = i npu t ( ”k = ”)3 f a t n = 14 f o r i = 2 : n5 f a t n = f a t n ∗ i6 end7 f a t n k = 18 f o r i = 2 : n − k9 f a t n k = f a t n k ∗ i
10 end11 f a t k = 112 f o r i = 2 : k13 f a t k = f a t k ∗ i14 end15 nComb = f a t n / ( f a t n k ∗ f a t k )16 p r i n t f ( ”O numero de combina c oes e %g. ” , nComb)
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 21 / 29
Exemplo 3: Solucao 2 (COM funcao)
(n
k
)=
n!
(n − k)!k!
1 // Dec l a ra c a o de f un c o e s2 f u n c t i o n [ f a t ] = f a t o r i a l ( n )3 f a t = 14 f o r i = 2 : n5 f a t = f a t ∗ i6 end7 end funct i on8 // Programa p r i n c i p a l9 n = i npu t ( ”n = ”)
10 k = i npu t ( ”k = ”)11 nComb = f a t o r i a l ( n ) / ( f a t o r i a l ( n − k ) ∗ f a t o r i a l ( k ) )12 p r i n t f ( ”O numero de combina c oes e %g. ” , nComb)
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 22 / 29
Exemplo 4
Implemente um programa que leia 3 notas de um aluno, definidas entre osvalores 0 e 10. Em seguida, calcule a media das notas e determine se oaluno foi aprovado ou reprovado, mostrando tambem o valor da mediacalculada. A nota media para aprovacao e 6.
Observacoes
Divida o problema em problemas menores, cada pequeno problema eum candidato a ser uma funcao;
Uma possibilidade e dividir o problema em tres:1 Validar uma entrada, obrigando que o valor lido esteja entre 0 e 10;2 Calcular a media e definir o resultado do aluno;3 Um programa principal, que realiza todo o trabalho, chamando as
funcoes que resolvem os problemas menores.
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 23 / 29
Exemplo 4: Solucao
1 // Dec l a ra c a o de f un c o e s2 f u n c t i o n [ n ] = no taVa l i d a (mensagem )3 n = i npu t (mensagem )4 wh i l e n < 0 | n > 105 n = i npu t (mensagem )6 end7 end funct i on8 f u n c t i o n [ r e s u l t a d o , media ] = ava l i a c a oA l uno ( n1 , n2 , n3 )9 media = ( n1+n2+n3 ) / 3
10 i f media < 6 then11 r e s u l t a d o = ”rep rovado ”12 e l s e13 r e s u l t a d o = ”aprovado ”14 end15 end funct i on16 // Programa p r i n c i p a l17 n1 = no taVa l i d a ( ”Nota 1 : ”)18 n2 = no taVa l i d a ( ”Nota 2 : ”)19 n3 = no taVa l i d a ( ”Nota 3 : ”)20 [ r ,m] = ava l i a c a oA l uno ( n1 , n2 , n3 )21 p r i n t f ( ”A media e %. 2 f , a luno %s . ” , m, r )
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 24 / 29
Exemplo 5
Implemente um programa que calcule o valor do somatorio a seguir:
n∑i=1
i − sen(i)
i3 − cos(2i)
Observacoes
Uma possibilidade e dividir o problema em quatro:1 Calcular o numerador;2 Calcular o denominador;3 Calcular o termo;4 Um programa principal, que realiza o laco e calcula o somatorio.
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 25 / 29
Exemplo 5: Solucao
n∑i=1
i − sen(i)
i3 − cos(2i)
1 // Dec l a ra c a o de f un c o e s2 f u n c t i o n [ r ] = numerador ( i )3 r = i − s i n ( i )4 end funct i on5 f u n c t i o n [ r ] = denominador ( i )6 r = i ˆ3 − cos (2∗ i )7 end funct i on8 f u n c t i o n [ t ] = termo ( i )9 t = numerador ( i ) / denominador ( i )
10 end funct i on11 // Programa p r i n c i p a l12 n = i npu t ( ”Numero de termos : ”)13 soma = 014 f o r i = 1 : n15 soma = soma + termo ( i )16 end17 p r i n t f ( ”O somat o r i o e %. 2 f . ” , soma )
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 26 / 29
Exemplo 6
Implemente um programa que realiza a leitura dos coeficientes de umaequacao de segundo grau e imprime os valores de suas raızes.
Observacoes
Uma possibilidade e dividir o problema em dois:1 Calcular as raızes;2 Um programa principal, que le os coeficientes e imprime o resultado.
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 27 / 29
Exemplo 6: Solucao
1 // Dec l a ra c a o de f un c o e s2 f u n c t i o n [ r , x1 , x2 ] = baska ra ( a , b , c )3 x1 = 0 ; x2 = 0 // P r e c i s o d e f i n i r algum v a l o r de r e t o r n o4 i f a == 0 then5 r = 1 // Codigo para e r r o a == 06 e l s e7 d e l t a = bˆ2 − 4∗a∗c8 i f d e l t a < 0 then9 r = 2 // Codigo para e r r o d e l t a < 0
10 e l s e11 i f ( d e l t a == 0) then12 x = −b / (2∗ a )13 r = 3 // Codigo para d e l t a == 014 x1 = x ; x2 = x15 e l s e16 x1 = (−b + s q r t ( d e l t a ) ) / (2∗ a )17 x2 = (−b − s q r t ( d e l t a ) ) / (2∗ a )18 r = 4 // Codigo para d e l t a > 019 end20 end21 end22 end funct i on
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 28 / 29
Exemplo 6: Solucao
23 // Programa p r i n c i p a l24 a = i npu t ( ’ D i g i t e o c o e f i c i e n t e A : ’ )25 b = i npu t ( ’ D i g i t e o c o e f i c i e n t e B : ’ )26 c = i npu t ( ’ D i g i t e o c o e f i c i e n t e C : ’ )27 [ r , x1 , x2 ] = baska ra ( a , b , c )28 i f r == 1 then29 p r i n t f ( ’ \nERRO: C o e f i c i e n t e a == 0 ’ )30 e l s e i f r == 231 p r i n t f ( ’ \nERRO: De l ta < 0 . ’ )32 e l s e i f r == 333 p r i n t f ( ”x1 = x2 = %g\n ” , x1 )34 e l s e35 p r i n t f ( ’ x1 = %g\nx2 = %g ’ , x1 , x2 )36 end
Observacao
O comportamento sera diferente do programa definido na aula deEstrutura de Decisao, mas resolve o problema proposto.
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 28 / 29
DUVIDAS
DECOM 05 - Funcoes Definidas pelo Usuario BCC701 - 2018-02 29 / 29