© m@nso 2003 introdução à programaçãocomputadores e programação i execução de instruções...

52
© M@nso 2003 Introdução à programação Computadores e programação I Execução de Execução de instruções instruções Aula nº4

Upload: internet

Post on 18-Apr-2015

104 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

© M@nso 2003

Introdução à programação Computadores e programação I

Execução de instruçõesExecução de instruções

Aula nº4

Page 2: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

SumárioSumário

Funções Selecção simples de instruções Operadores lógicos Selecção composta de instruções Selecção múltipla Exercícios

Page 3: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

Algoritmos computacionaisAlgoritmos computacionais

Acções de um algoritmo computacional Manipular dados

Receber dados Guardar dados Imprimir dados

Executar instruções Fazer operações aritméticas Fazer operações lógicas Escolha entre várias instruções. Repetir um conjunto de instruções

Page 4: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

Operadores Aritméticos no PortugolOperadores Aritméticos no Portugol

InteirosInteiros+    Adição-    Subtracção/    Divisão inteira*    Multiplicação%    Resto da divisão inteira ^    Potenciação

ReaisReais+    Adição-    Subtracção/    Divisão inteira*    Multiplicação^    Potenciação

TextoTexto+    Concatenação de texto

Page 5: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

Fluxo de dadosFluxo de dados

Ler lado1Ler lado1

Area := lado1*lado2Area := lado1*lado2

InicioInicio

Programa Área do rectânguloPrograma Área do rectângulo

inicioinicio real lado1, lado2, areareal lado1, lado2, area ler lado1ler lado1 ler lado2ler lado2 area <- lado1 * lado2area <- lado1 * lado2 escrever areaescrever areafimfim

inicioinicio real lado1, lado2, areareal lado1, lado2, area ler lado1ler lado1 ler lado2ler lado2 area <- lado1 * lado2area <- lado1 * lado2 escrever areaescrever areafimfim

fimfim

Ler lado2Ler lado2

Escrever Area

Receber dados

processar dados

Imprimir dados

Page 6: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

FunçõesFunções

Fazem cálculos complexos Podem ter parâmetros

Passados dentro de parêntesis Retornam um resultado

rr

nn

funçãofunção

rr

n2n2n1n1

funçãofunção

SIN

seno

numero

rr

funçãofunção

Page 7: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

Funções do PortugolFunções do Portugol Funções Trigonométricas com 1

parâmetro SEN      Seno  COS     Coseno  TAN     Tangente  CTG     Cotangente  ASEN    Arco Seno  ACOS    Arco Coseno  ATAN    Arco Tangente  ACTG    Arco Cotangent  SENH    Seno hiperbolico  COSH    Coseno hiperbólico  TANH    Tangente hiperbólica  CTGH     Cotangente hiperbólica

SIN

seno

numero

Funções Matemáticas com 1 parâmetro EXP       exponeciação  ABS       valor absoluto  RAIZ      raiz quadrada   LOG        Logaritmo base 10  LN        logaritmo base E  INT       parte inteira de um número real  FRAC     parte fraccionária de um número real  ARRED    Arredondamento um número real

Funções sem parâmetros aleatorio

devolve um número aleatório entre 0 e 1

Page 8: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

ExercícioExercício

Construa um programa que solicite ao utilizador o valor de um ângulo em radianos e de seguida imprima o seu seno, o seu coseno e a sua tangentePrograma test_funcaoPrograma test_funcao

inicioinicio real anguloreal angulo real vseno , vcoseno , vtangente real vseno , vcoseno , vtangente escrever "angulo\t:"escrever "angulo\t:" ler anguloler angulo vseno <- sen ( angulo )vseno <- sen ( angulo ) vcoseno <- cos ( angulo )vcoseno <- cos ( angulo ) vtangente <- tan ( angulo )vtangente <- tan ( angulo ) escrever "seno \t\t:" , vseno , "\n"escrever "seno \t\t:" , vseno , "\n" escrever "coseno \t\t:" , vcoseno , "\n"escrever "coseno \t\t:" , vcoseno , "\n" escrever "tangente \t:" , vtangente , "\n"escrever "tangente \t:" , vtangente , "\n"fimfim

inicioinicio real anguloreal angulo real vseno , vcoseno , vtangente real vseno , vcoseno , vtangente escrever "angulo\t:"escrever "angulo\t:" ler anguloler angulo vseno <- sen ( angulo )vseno <- sen ( angulo ) vcoseno <- cos ( angulo )vcoseno <- cos ( angulo ) vtangente <- tan ( angulo )vtangente <- tan ( angulo ) escrever "seno \t\t:" , vseno , "\n"escrever "seno \t\t:" , vseno , "\n" escrever "coseno \t\t:" , vcoseno , "\n"escrever "coseno \t\t:" , vcoseno , "\n" escrever "tangente \t:" , vtangente , "\n"escrever "tangente \t:" , vtangente , "\n"fimfim

resultadoresultado

númeronúmero

funçãofunção

Page 9: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

ExercícioExercício

Construa um programa que solicite ao

utilizador o valor de um ângulo em graus e de seguida imprima o seu seno, o seu coseno e a sua tangente

resultadoresultado

númeronúmero

funçãofunção

Page 10: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

ExercícioExercício

Construa um programa que escreve no monitor seis números aleatório para jogar no totoloto

Programa TotolotoPrograma Totoloto

inicioinicio escrever aleatorio ( ) * 49 + 1 , escrever aleatorio ( ) * 49 + 1 , "\n""\n" escrever aleatorio ( ) * 49 + 1 , escrever aleatorio ( ) * 49 + 1 , "\n""\n" escrever aleatorio ( ) * 49 + 1 , escrever aleatorio ( ) * 49 + 1 , "\n""\n" escrever aleatorio ( ) * 49 + 1 , escrever aleatorio ( ) * 49 + 1 , "\n""\n" escrever aleatorio ( ) * 49 + 1 , escrever aleatorio ( ) * 49 + 1 , "\n""\n" escrever aleatorio ( ) * 49 + 1escrever aleatorio ( ) * 49 + 1fimfim

inicioinicio escrever aleatorio ( ) * 49 + 1 , escrever aleatorio ( ) * 49 + 1 , "\n""\n" escrever aleatorio ( ) * 49 + 1 , escrever aleatorio ( ) * 49 + 1 , "\n""\n" escrever aleatorio ( ) * 49 + 1 , escrever aleatorio ( ) * 49 + 1 , "\n""\n" escrever aleatorio ( ) * 49 + 1 , escrever aleatorio ( ) * 49 + 1 , "\n""\n" escrever aleatorio ( ) * 49 + 1 , escrever aleatorio ( ) * 49 + 1 , "\n""\n" escrever aleatorio ( ) * 49 + 1escrever aleatorio ( ) * 49 + 1fimfim aleatorio - devolve um número aleatório entre 0 e 1aleatorio - devolve um número aleatório entre 0 e 1aleatorio - devolve um número aleatório entre 0 e 1aleatorio - devolve um número aleatório entre 0 e 1

17.991807031331717.991807031331733

2.589963185286182.5899631852861822

31.225030308773631.22503030877367575

34.968706175893234.968706175893299

14.440722666028714.440722666028744

46.264797008923346.264797008923344

Page 11: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

ExercícioExercício

Construa um programa que escreve no monitor seis números aleatório para jogar no totoloto

Programa TotolotoPrograma Totoloto

inicioinicio escrever int ( aleatorio ( ) * 49 + 1 ) , escrever int ( aleatorio ( ) * 49 + 1 ) , "\t""\t" escrever int ( aleatorio ( ) * 49 + 1 ) , escrever int ( aleatorio ( ) * 49 + 1 ) , "\t""\t" escrever int ( aleatorio ( ) * 49 + 1 ) , escrever int ( aleatorio ( ) * 49 + 1 ) , "\t""\t" escrever int ( aleatorio ( ) * 49 + 1 ) , escrever int ( aleatorio ( ) * 49 + 1 ) , "\t""\t" escrever int ( aleatorio ( ) * 49 + 1 ) , escrever int ( aleatorio ( ) * 49 + 1 ) , "\t""\t" escrever int ( aleatorio ( ) * 49 + 1 ) , escrever int ( aleatorio ( ) * 49 + 1 ) , "\t""\t"fimfim

inicioinicio escrever int ( aleatorio ( ) * 49 + 1 ) , escrever int ( aleatorio ( ) * 49 + 1 ) , "\t""\t" escrever int ( aleatorio ( ) * 49 + 1 ) , escrever int ( aleatorio ( ) * 49 + 1 ) , "\t""\t" escrever int ( aleatorio ( ) * 49 + 1 ) , escrever int ( aleatorio ( ) * 49 + 1 ) , "\t""\t" escrever int ( aleatorio ( ) * 49 + 1 ) , escrever int ( aleatorio ( ) * 49 + 1 ) , "\t""\t" escrever int ( aleatorio ( ) * 49 + 1 ) , escrever int ( aleatorio ( ) * 49 + 1 ) , "\t""\t" escrever int ( aleatorio ( ) * 49 + 1 ) , escrever int ( aleatorio ( ) * 49 + 1 ) , "\t""\t"fimfim

  INT       parte inteira de um número real INT       parte inteira de um número real   INT       parte inteira de um número real INT       parte inteira de um número real

10 25 7 40 41 9 35

Page 12: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

© M@nso 2003

Introdução à programação Computadores e programação I

Estruturas de DecisãoEstruturas de Decisão

Page 13: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

ExercícioExercício

Construir um programa que calcule os zeros de uma equação de 2º grau cujos coeficientes são introduzidos pelo utilizador

Computacional X1 := ( -b + ( b^2 – 4*a*c) ^0.5 )/ ( 2 * a) X2 := ( -b - ( b^2 – 4*a*c) ^0.5 ) / ( 2 * a)

a

acbbx

cbxax

2

4

0

2

2

Page 14: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

ExercícioExercício

Programa Equacao2gPrograma Equacao2g

inicioinicio real a , b , creal a , b , c real x1 , x2real x1 , x2 escrever "Raizes da equação de 2º grau\n"escrever "Raizes da equação de 2º grau\n" escrever " a = "escrever " a = " ler aler a escrever " b = "escrever " b = " ler bler b escrever " c = "escrever " c = " ler cler c x1 <- ( -b - ( b ^ 2 - 4 * a * c ) ^ 0.5 ) / ( 2 * a )x1 <- ( -b - ( b ^ 2 - 4 * a * c ) ^ 0.5 ) / ( 2 * a ) x2 <- ( -b + ( b ^ 2 - 4 * a * c ) ^ 0.5 ) / ( 2 * a )x2 <- ( -b + ( b ^ 2 - 4 * a * c ) ^ 0.5 ) / ( 2 * a ) escrever "\n x1 = " , x1 , " x2 = " , x2escrever "\n x1 = " , x1 , " x2 = " , x2fimfim

inicioinicio real a , b , creal a , b , c real x1 , x2real x1 , x2 escrever "Raizes da equação de 2º grau\n"escrever "Raizes da equação de 2º grau\n" escrever " a = "escrever " a = " ler aler a escrever " b = "escrever " b = " ler bler b escrever " c = "escrever " c = " ler cler c x1 <- ( -b - ( b ^ 2 - 4 * a * c ) ^ 0.5 ) / ( 2 * a )x1 <- ( -b - ( b ^ 2 - 4 * a * c ) ^ 0.5 ) / ( 2 * a ) x2 <- ( -b + ( b ^ 2 - 4 * a * c ) ^ 0.5 ) / ( 2 * a )x2 <- ( -b + ( b ^ 2 - 4 * a * c ) ^ 0.5 ) / ( 2 * a ) escrever "\n x1 = " , x1 , " x2 = " , x2escrever "\n x1 = " , x1 , " x2 = " , x2fimfim

Ler a,b,cLer a,b,c

X1 := ( -b + ( b^2 – 4*a*c) ^0.5 )/ ( 2 * a)

X2 := ( -b - ( b^2 – 4*a*c) ^0.5 ) / ( 2 * a)

X1 := ( -b + ( b^2 – 4*a*c) ^0.5 )/ ( 2 * a)

X2 := ( -b - ( b^2 – 4*a*c) ^0.5 ) / ( 2 * a)

InicioInicio

fimfim

Escrever x1,x2

Page 15: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

Verificação do algoritmoVerificação do algoritmo

02 xx

1

a

acbbx

2

42

Page 16: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

Verificação do algoritmoVerificação do algoritmo

032 x

a

acbbx

2

42

Não tem raízes

Page 17: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

Fluxo de execuçãoFluxo de execução

Entrada de dadosEntrada de dados

Processamento(cálculos)

Processamento(cálculos)

Decisãocondicional

Decisãocondicional

Linha de fluxoLinha de fluxo

Conector de fluxoConector de fluxo

Inicio / FimInicio / Fim

Impressão de dados

Page 18: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

Selecção SimplesSelecção Simples

CondiçãoCondição

Bloco deInstruções

Bloco deInstruções

V

Linguagem estruturadaLinguagem estruturada

Se Se condicao condicao EntaoEntao intrução 1intrução 1 intrução 2intrução 2 intrução 3intrução 3 . . .. . .FimSeFimSe

Se Se condicao condicao EntaoEntao intrução 1intrução 1 intrução 2intrução 2 intrução 3intrução 3 . . .. . .FimSeFimSe

O resultado das condições é sempre:

•Verdadeiro OU

•Falso

O resultado das condições é sempre:

•Verdadeiro OU

•FalsoPRINCÍPIO DO 3º EXCLUÍDOPRINCÍPIO DO 3º EXCLUÍDO

F

Page 19: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

Operadores lógicosOperadores lógicos RELACIONAIS

Maior >

Menor <

Igual =

Maior ou igual >=

Menor ou igual <=

Diferente =/=

O resultado dos operadores lógicos tem apenas dois valores

•Verdadeiro•falso

O resultado dos operadores lógicos tem apenas dois valores

•Verdadeiro•falso

5 < 4

5 > 4

5 =/= 4

delta < 0

0 < delta

comprimento = altura

5 < 4

5 > 4

5 =/= 4

delta < 0

0 < delta

comprimento = altura

ExemplosExemplos

Page 20: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

Operadores relacionaisOperadores relacionais

Programa Operador_RelacionalPrograma Operador_Relacional

inicioinicio inteiro x1, x2inteiro x1, x2 logico iguaislogico iguais escrever " x1: "escrever " x1: " ler x1ler x1 escrever " x2 :"escrever " x2 :" ler x2ler x2 iguais <- x1 = x2iguais <- x1 = x2 escrever "\nresultado x1 = x2 \t" , escrever "\nresultado x1 = x2 \t" , iguaisiguais escrever "\nresultado x1 > x2 \t" , escrever "\nresultado x1 > x2 \t" , x1 > x2x1 > x2 escrever "\nresultado x1 >= x2 \t" ,escrever "\nresultado x1 >= x2 \t" , x1 >= x2 x1 >= x2 escrever "\nresultado x1 < x2 \t" ,escrever "\nresultado x1 < x2 \t" , x1 < x2 x1 < x2 escrever "\nresultado x1 <= x2 \t" , escrever "\nresultado x1 <= x2 \t" , x1 <= x2x1 <= x2 escrever "\nresultado x1 =/= x2 \t" , x1 =/= x2escrever "\nresultado x1 =/= x2 \t" , x1 =/= x2fimfim

inicioinicio inteiro x1, x2inteiro x1, x2 logico iguaislogico iguais escrever " x1: "escrever " x1: " ler x1ler x1 escrever " x2 :"escrever " x2 :" ler x2ler x2 iguais <- x1 = x2iguais <- x1 = x2 escrever "\nresultado x1 = x2 \t" , escrever "\nresultado x1 = x2 \t" , iguaisiguais escrever "\nresultado x1 > x2 \t" , escrever "\nresultado x1 > x2 \t" , x1 > x2x1 > x2 escrever "\nresultado x1 >= x2 \t" ,escrever "\nresultado x1 >= x2 \t" , x1 >= x2 x1 >= x2 escrever "\nresultado x1 < x2 \t" ,escrever "\nresultado x1 < x2 \t" , x1 < x2 x1 < x2 escrever "\nresultado x1 <= x2 \t" , escrever "\nresultado x1 <= x2 \t" , x1 <= x2x1 <= x2 escrever "\nresultado x1 =/= x2 \t" , x1 =/= x2escrever "\nresultado x1 =/= x2 \t" , x1 =/= x2fimfim

Page 21: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

Operadores lógicosOperadores lógicos

LÒGICOS Conjunção

E Disjunção

OU Negação

NAO

OU 0 1

0 0 1

1 1 1

E 0 1

0 0 0

1 0 1NAO 0 1

1 0

Multiplicação

Lógica

Multiplicação

Lógica

SomaLógica

SomaLógica

NegaçãoLógica

NegaçãoLógica

Prioridade dos operadoresPrioridade dos operadores

Relacionais ->Negação -> Conjunção -> Disjunção

Page 22: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

Operadores relacionaisOperadores relacionais

Programa Operador_logicoPrograma Operador_logico

inicioinicio logico x1 , x2logico x1 , x2 escrever " x1 :"escrever " x1 :" ler x1ler x1 escrever " x2: "escrever " x2: " ler x2ler x2 escrever "\n x1 E x2 \t" ,escrever "\n x1 E x2 \t" , x1 e x2 x1 e x2 escrever "\n x1 OU x2 \t" ,escrever "\n x1 OU x2 \t" , x1 x1 ou x2ou x2 escrever "\n NAO x1 \t" , escrever "\n NAO x1 \t" , nao x1nao x1 escrever "\n NAO x2 \t" , escrever "\n NAO x2 \t" , nao x2nao x2fimfim

inicioinicio logico x1 , x2logico x1 , x2 escrever " x1 :"escrever " x1 :" ler x1ler x1 escrever " x2: "escrever " x2: " ler x2ler x2 escrever "\n x1 E x2 \t" ,escrever "\n x1 E x2 \t" , x1 e x2 x1 e x2 escrever "\n x1 OU x2 \t" ,escrever "\n x1 OU x2 \t" , x1 x1 ou x2ou x2 escrever "\n NAO x1 \t" , escrever "\n NAO x1 \t" , nao x1nao x1 escrever "\n NAO x2 \t" , escrever "\n NAO x2 \t" , nao x2nao x2fimfim

Page 23: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

ExercíciosExercícios

OU 0 1

0 0 1

1 1 1

E 0 1

0 0 0

1 0 1

NAO 0 1

1 0

Multiplicação

Lógica

Multiplicação

LógicaSomaLógica

SomaLógica

NegaçãoLógica

NegaçãoLógica

2 < 3 E 3 < 5

2 < 3 E 4 < 2

2 < 3 OU 3 < 4 E 4 >5

NAO( 2 =/= 3) E NAO( 4 >3)

2 < 3 E 3 < 5

2 < 3 E 4 < 2

2 < 3 OU 3 < 4 E 4 >5

NAO( 2 =/= 3) E NAO( 4 >3)

ExemplosExemplos

Verdadeiro

Falso

Verdadeiro

Falso

Page 24: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

Fluxograma – eq2gFluxograma – eq2g

Ler a,b,cLer a,b,c

Delta <- b^2 – 4*a*cDelta <- b^2 – 4*a*c

InicioInicio

fimfim

Escrever x1,x2

delta >= 0delta >= 0 X1 <- ( -b + delta ^0.5 )/ ( 2 * a)

X2 <- ( -b - delta ^0.5 )/ ( 2 * a)

X1 <- ( -b + delta ^0.5 )/ ( 2 * a)

X2 <- ( -b - delta ^0.5 )/ ( 2 * a)

simsim

nãonão

a

acbbx

cbxax

2

4

0

2

2

Page 25: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

ExercícioExercício

Programa Equacao2gPrograma Equacao2g

inicioinicio real a , b , c , x1 , x2 , deltareal a , b , c , x1 , x2 , delta escrever "Raizes da equação de 2º escrever "Raizes da equação de 2º grau"grau" escrever "\na = "escrever "\na = " ler aler a escrever "b = "escrever "b = " ler bler b escrever "c = "escrever "c = " ler cler c delta <- b ^ 2 - 4 * a * cdelta <- b ^ 2 - 4 * a * c se delta >= 0 entaose delta >= 0 entao x1 <- ( -b - delta ^ 0.5 ) / ( 2 * a )x1 <- ( -b - delta ^ 0.5 ) / ( 2 * a ) x2 <- ( -b + delta ^ 0.5 ) / ( 2 * a )x2 <- ( -b + delta ^ 0.5 ) / ( 2 * a ) escrever " x1 = " , x1 , " x2 = " , x2escrever " x1 = " , x1 , " x2 = " , x2 fimsefimsefimfim

inicioinicio real a , b , c , x1 , x2 , deltareal a , b , c , x1 , x2 , delta escrever "Raizes da equação de 2º escrever "Raizes da equação de 2º grau"grau" escrever "\na = "escrever "\na = " ler aler a escrever "b = "escrever "b = " ler bler b escrever "c = "escrever "c = " ler cler c delta <- b ^ 2 - 4 * a * cdelta <- b ^ 2 - 4 * a * c se delta >= 0 entaose delta >= 0 entao x1 <- ( -b - delta ^ 0.5 ) / ( 2 * a )x1 <- ( -b - delta ^ 0.5 ) / ( 2 * a ) x2 <- ( -b + delta ^ 0.5 ) / ( 2 * a )x2 <- ( -b + delta ^ 0.5 ) / ( 2 * a ) escrever " x1 = " , x1 , " x2 = " , x2escrever " x1 = " , x1 , " x2 = " , x2 fimsefimsefimfim

Ler a,b,cLer a,b,c

delta:= b^2 – 4*a*cdelta:= b^2 – 4*a*c

InicioInicio

fimfim

Escrever x1,x2

delta > 0delta > 0 X1 := ( -b + delta ̂ 0.5 )/ ( 2 * a)

X2 := ( -b - delta ̂ 0.5 )/ ( 2 * a)

X1 := ( -b + delta ̂ 0.5 )/ ( 2 * a)

X2 := ( -b - delta ̂ 0.5 )/ ( 2 * a)

simsim

nãonão

Identação

Page 26: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

Selecção em AlternativaSelecção em Alternativa

CondiçãoCondição

InstruçõesInstruções

FluxogramaFluxograma

V

InstruçõesInstruções

F Linguagem estruturadaLinguagem estruturada

Se condicao EntaoSe condicao Entao intruçãointrução . . .. . .SenaoSenao intruçãointrução . . .. . .FimseFimse

Se condicao EntaoSe condicao Entao intruçãointrução . . .. . .SenaoSenao intruçãointrução . . .. . .FimseFimse

Page 27: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

Fluxograma – eq2gFluxograma – eq2g

Ler a,b,cLer a,b,c

delta:= b^2 – 4*a*cdelta:= b^2 – 4*a*c

InicioInicio

fimfim

Escrever x1,x2

delta >= 0delta >= 0 X1<- ( -b + delta ^0.5 )/ ( 2 * a)

X2 <- ( -b - delta ^0.5 )/ ( 2 * a)

X1<- ( -b + delta ^0.5 )/ ( 2 * a)

X2 <- ( -b - delta ^0.5 )/ ( 2 * a)

simsimnãonão

Escrever”Não tem zeros”

Page 28: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

ExercícioExercício

Programa Equacao2gPrograma Equacao2g

variaveisvariaveis numerico a,b,c, x1,x2, deltanumerico a,b,c, x1,x2, deltainicioinicio escrever "Raizes da equação de 2º escrever "Raizes da equação de 2º grau" grau" escrever " a = "escrever " a = " ler aler a escrever " b = "escrever " b = " ler bler b escrever " c = "escrever " c = " ler cler c delta := b^2 - 4*a*cdelta := b^2 - 4*a*c se delta >= 0 entaose delta >= 0 entao x1 <- ( -b - delta^0.5 )/ ( 2*a)x1 <- ( -b - delta^0.5 )/ ( 2*a) x2 <- ( -b +delta^0.5 )/ ( 2*a)x2 <- ( -b +delta^0.5 )/ ( 2*a) escrever " x1 = ", x1 , " x2 = " , escrever " x1 = ", x1 , " x2 = " , x2x2 senaosenao escrever "Não tem zeros"escrever "Não tem zeros" fim_sefim_sefimfim

variaveisvariaveis numerico a,b,c, x1,x2, deltanumerico a,b,c, x1,x2, deltainicioinicio escrever "Raizes da equação de 2º escrever "Raizes da equação de 2º grau" grau" escrever " a = "escrever " a = " ler aler a escrever " b = "escrever " b = " ler bler b escrever " c = "escrever " c = " ler cler c delta := b^2 - 4*a*cdelta := b^2 - 4*a*c se delta >= 0 entaose delta >= 0 entao x1 <- ( -b - delta^0.5 )/ ( 2*a)x1 <- ( -b - delta^0.5 )/ ( 2*a) x2 <- ( -b +delta^0.5 )/ ( 2*a)x2 <- ( -b +delta^0.5 )/ ( 2*a) escrever " x1 = ", x1 , " x2 = " , escrever " x1 = ", x1 , " x2 = " , x2x2 senaosenao escrever "Não tem zeros"escrever "Não tem zeros" fim_sefim_sefimfim

Ler a,b,cLer a,b,c

delta:= b^2 – 4*a*cdelta:= b^2 – 4*a*c

InicioInicio

fimfim

Escrever x1,x2

delta >= 0delta >= 0 X1 := ( -b + delta ̂ 0.5 )/ ( 2 * a)

X2 := ( -b - delta ̂ 0.5 )/ ( 2 * a)

X1 := ( -b + delta ̂ 0.5 )/ ( 2 * a)

X2 := ( -b - delta ̂ 0.5 )/ ( 2 * a)

simsimnãonão

Escrever”Não tem zeros”

Identação

Identação

Page 29: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

Verificação do algoritmoVerificação do algoritmo

032 x

a

acbbx

2

42

Não tem zeros

Page 30: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

Verificação do algoritmoVerificação do algoritmo

02 x

a

acbbx

2

42

X1 = 0X2 = 0

Page 31: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

Selecção encadeadaSelecção encadeada

CondiçãoCondição

InstruçõesInstruções

V

InstruçõesInstruções

F

CondiçãoCondição

InstruçõesInstruções

V

InstruçõesInstruções

F

CondiçãoCondição

InstruçõesInstruções

V

InstruçõesInstruções

F

CondiçãoCondição

InstruçõesInstruções

V

InstruçõesInstruções

F

InstruçõesInstruções

Page 32: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

Selecção em AlternativaSelecção em Alternativa

Linguagem estruturadaLinguagem estruturada

Se condicao EntaoSe condicao EntaoSe condicao EntaoSe condicao Entao intruçãointrução . . .. . .SenãoSenão intruçãointrução . . .. . .Fim_seFim_se

SenãoSenãoSe condicao EntaoSe condicao Entao intruçãointrução . . .. . .SenãoSenão intruçãointrução . . .. . .Fim_seFim_se

Fim_seFim_se

Se condicao EntaoSe condicao EntaoSe condicao EntaoSe condicao Entao intruçãointrução . . .. . .SenãoSenão intruçãointrução . . .. . .Fim_seFim_se

SenãoSenãoSe condicao EntaoSe condicao Entao intruçãointrução . . .. . .SenãoSenão intruçãointrução . . .. . .Fim_seFim_se

Fim_seFim_se

CondiçãoCondição

VF

CondiçãoCondição

InstruçõesInstruções

V

InstruçõesInstruções

F

CondiçãoCondição

InstruçõesInstruções

V

InstruçõesInstruções

F

Page 33: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

ExercícioExercício

Programa Equacao2gPrograma Equacao2g

inicioinicio real a , b , c , x1 , x2 , deltareal a , b , c , x1 , x2 , delta escrever "Raizes da equação de 2º grau"escrever "Raizes da equação de 2º grau" escrever "\na = "escrever "\na = " ler aler a escrever "b = "escrever "b = " ler bler b escrever "c = "escrever "c = " ler cler c delta <- b ^ 2 - 4 * a * cdelta <- b ^ 2 - 4 * a * c se delta >= 0 entaose delta >= 0 entao se delta = 0 entaose delta = 0 entao x1 <- ( ( b * -1 ) + delta ^ 0.5 ) / ( 2 * a )x1 <- ( ( b * -1 ) + delta ^ 0.5 ) / ( 2 * a ) escrever "Zero duplo x1 = " , x1escrever "Zero duplo x1 = " , x1 senaosenao x1 <- ( ( b * -1 ) - delta ^ 0.5 ) / ( 2 * a )x1 <- ( ( b * -1 ) - delta ^ 0.5 ) / ( 2 * a ) x2 <- ( ( b * -1 ) + delta ^ 0.5 ) / ( 2 * a )x2 <- ( ( b * -1 ) + delta ^ 0.5 ) / ( 2 * a ) escrever " x1 = " , x1 , " x2 = " , x2escrever " x1 = " , x1 , " x2 = " , x2 fimse fimse senaosenao escrever "não tem raizes"escrever "não tem raizes" fimsefimsefimfim

inicioinicio real a , b , c , x1 , x2 , deltareal a , b , c , x1 , x2 , delta escrever "Raizes da equação de 2º grau"escrever "Raizes da equação de 2º grau" escrever "\na = "escrever "\na = " ler aler a escrever "b = "escrever "b = " ler bler b escrever "c = "escrever "c = " ler cler c delta <- b ^ 2 - 4 * a * cdelta <- b ^ 2 - 4 * a * c se delta >= 0 entaose delta >= 0 entao se delta = 0 entaose delta = 0 entao x1 <- ( ( b * -1 ) + delta ^ 0.5 ) / ( 2 * a )x1 <- ( ( b * -1 ) + delta ^ 0.5 ) / ( 2 * a ) escrever "Zero duplo x1 = " , x1escrever "Zero duplo x1 = " , x1 senaosenao x1 <- ( ( b * -1 ) - delta ^ 0.5 ) / ( 2 * a )x1 <- ( ( b * -1 ) - delta ^ 0.5 ) / ( 2 * a ) x2 <- ( ( b * -1 ) + delta ^ 0.5 ) / ( 2 * a )x2 <- ( ( b * -1 ) + delta ^ 0.5 ) / ( 2 * a ) escrever " x1 = " , x1 , " x2 = " , x2escrever " x1 = " , x1 , " x2 = " , x2 fimse fimse senaosenao escrever "não tem raizes"escrever "não tem raizes" fimsefimsefimfim

a,b,ca,b,c

delta:= b^2 – 4*a*cdelta:= b^2 – 4*a*c

InicioInicio

fimfim

X1x2

delta >= 0delta >= 0

X1 := ( -b + delta ̂ 0.5 )/ ( 2 * a)

X2 := ( -b - delta ̂ 0.5 )/ ( 2 * a)

X1 := ( -b + delta ̂ 0.5 )/ ( 2 * a)

X2 := ( -b - delta ̂ 0.5 )/ ( 2 * a)

simsimnãonão

“Não tem zeros”

delta > 0delta > 0

“Zero duplo”x1

X1 := -b / ( 2 * a)X1 := -b / ( 2 * a)

nãonão simsim

Page 34: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

exercícioexercício

Construir um programa que solicite o estado civil de uma pessoa (s, c, d, v) e o imprima por extenso (solteiro , casado, divorciado, viuvo)

Entrada Letra

Saída Texto

Algoritmo ?

Page 35: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

exercícioexercício

ecivilecivil

InicioInicio

ecivil=secivil=s

nãonão

Estado = SolteiroEstado = Solteiro

simsim

ecivil=cecivil=c

Estado = casadoEstado = casado

ecivil=decivil=d

Estado =divorciadoEstado =divorciado

simsimnãonão

ecivil=vecivil=v

Estado = viuvoEstado = viuvo

simsim

Estado = ERROEstado = ERRO

naonao

nãonão simsim

estado FimFim

Page 36: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

exercícioexercício

Construir um programa que solicite o número do mês e o imprima por extenso Entrada

numero Saída

Texto

Algoritmo ?

Page 37: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

Selecção MúltiplaSelecção Múltipla

variavelvariavel

Intruções 1

Intruções 1

Intruções 2

Intruções 2 Intruções

d

Intruções d

v1v1v2v2

Intruções Intruções

vv defeitodefeito

Page 38: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

Selecção MúltiplaSelecção Múltipla

ecivilecivilss cc …… defeitodefeito

estado

ecivilecivil

InicioInicio

Estado = solteiroEstado = solteiro

Estado = casadoEstado = casado

Estado = ERROEstado = ERRO

FimFim

Estado = …Estado = …

Page 39: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

Selecção MúltiplaSelecção Múltipla

Linguagem EstruturadaLinguagem Estruturada

ESCOLHE <EXPRESSAO>ESCOLHE <EXPRESSAO>        CASO <expressao>:CASO <expressao>:        <bloco-de-        <bloco-de-instrucoes1...>instrucoes1...>      CASO <expressao>:CASO <expressao>:        <bloco-de-        <bloco-de-instrucoes2...>instrucoes2...>      CASO <expressao>:CASO <expressao>:        <bloco-de-        <bloco-de-instrucoes3...>instrucoes3...> . . . . . .

        defeitodefeito ::       <bloco-de-instrucoes        <bloco-de-instrucoes 4...>4...>FIMESCOLHEFIMESCOLHE

ESCOLHE <EXPRESSAO>ESCOLHE <EXPRESSAO>        CASO <expressao>:CASO <expressao>:        <bloco-de-        <bloco-de-instrucoes1...>instrucoes1...>      CASO <expressao>:CASO <expressao>:        <bloco-de-        <bloco-de-instrucoes2...>instrucoes2...>      CASO <expressao>:CASO <expressao>:        <bloco-de-        <bloco-de-instrucoes3...>instrucoes3...> . . . . . .

        defeitodefeito ::       <bloco-de-instrucoes        <bloco-de-instrucoes 4...>4...>FIMESCOLHEFIMESCOLHE

valorvalor

Intruções 1Intruções 1 Intruções 2Intruções 2Intruções dIntruções d

v1v1v2v2

IntruçõesIntruções

vv defeitodefeito

Page 40: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

ExercícioExercícioEstado civilEstado civil

inicioinicio caracter ecivilcaracter ecivil escrever "Estado civil (SCDV):"escrever "Estado civil (SCDV):" ler eciviller ecivil escolhe ecivilescolhe ecivil caso "s" , "S":caso "s" , "S": escrever "solteiro"escrever "solteiro" caso "c" , "C":caso "c" , "C": escrever "Casado"escrever "Casado" caso "d" , "Divorçiado":caso "d" , "Divorçiado": escrever "solteiro"escrever "solteiro" caso "v" , "Viuvo":caso "v" , "Viuvo": escrever "solteiro"escrever "solteiro" defeito :defeito : escrever "erro"escrever "erro" fimescolhefimescolhe fimfim

inicioinicio caracter ecivilcaracter ecivil escrever "Estado civil (SCDV):"escrever "Estado civil (SCDV):" ler eciviller ecivil escolhe ecivilescolhe ecivil caso "s" , "S":caso "s" , "S": escrever "solteiro"escrever "solteiro" caso "c" , "C":caso "c" , "C": escrever "Casado"escrever "Casado" caso "d" , "Divorçiado":caso "d" , "Divorçiado": escrever "solteiro"escrever "solteiro" caso "v" , "Viuvo":caso "v" , "Viuvo": escrever "solteiro"escrever "solteiro" defeito :defeito : escrever "erro"escrever "erro" fimescolhefimescolhe fimfim

Page 41: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

© M@nso 2003

Introdução à programação Computadores e programação I

ExercíciosExercícios

Page 42: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

ExercíciosExercícios

Pretende-se um programa para calcular a nota final de um aluno de IP ou CPI e imprima se o aluno está aprovado ou reprovado.

Desenhe o fluxograma

Construa o programa

Page 43: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

ExercíciosExercícios

Pretende-se um programa que leia dois números e uma operação ( + , - , * ou /) e imprima o resultado da operação sobre os números.

Desenhe o fluxograma

Construa o programa

Page 44: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

ExercícioExercício

Pretende-se um programa que dado o número de anos de uma pessoa escreve a sua faixa etária.

Criança - [0 12] Adolescente [13 17] Adulto - [18 64] idoso - [65 . . .[

Page 45: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

ExercíciosExercícios

Pretende-se imprimir a informação “negativa” “estável” e “positiva” do valor de cotação de uma acção na BVL. O utilizador introduz o valor anterior e o valor actual e o programa imprime a variação

Desenhe o fluxograma

Construa o programa

Page 46: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

ExercíciosExercícios

Pretende-se calcular as raízes de um polinómio com grau inferior a 3

Desenhe o fluxograma

Construa o programa

a

acbbx

2

42

cbxax 2

Page 47: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

ExercíciosExercícios

Pretende-se calcular as raízes reais e imaginárias de uma equação de 2º grau.

Desenhe o fluxograma Construa o programa

a

acbbx

2

42

1i

Page 48: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

ExercíciosExercícios

Pretende-se solicitar dois números ao utilizador e o programa troca os valores das variáveis.

Desenhe o fluxograma Construa o programa

X1 = 20 X2 = 30

X1 = 30 X2 = 20

Page 49: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

ExercíciosExercícios

Pretende-se solicitar dois números ao utilizador e imprime-os por ordem crescente.

Desenhe o fluxograma Construa o programa

X1 = 50 X2 = 30

X1 = 30 X2 = 50

Page 50: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

ExercícioExercício

Construa um programa que imprima se um ano é bissexto ou comum Todos os múltiplos de 400 Todos os que são múltiplos de 4 e não são

múltiplos de 100

2000 Bisexto

2001 Comum

2100 Comum

2004 bisexto

Page 51: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

ExercícioExercício

Construa um programa que solicite ao utilizador uma data e imprima o dia seguinte.

Page 52: © M@nso 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4

Introdução à programação Computadores e programação I

© M@nso 2003

ExercícioExercício

Construa um programa que solicite a data de nascimento de um aluno e verifique se a data é válida ou não

Construa um programa que solicite o nome e a data de nascimento de dois alunos e imprima o nome do mais velho.