40
EAD Fundamentos da Construção de Algoritmos 2 1. OBJETIVOS Entender como os algoritmos são construídos. Elaborar algoritmos utilizando as estruturas sequenciais. 2. CONTEÚDOS Estrutura sequencial. Variáveis e constantes. Expressões aritméticas. Expressões lógicas. 3. ORIENTAÇÕES PARA O ESTUDO DA UNIDADE Antes de iniciar o estudo desta unidade, é importante que você leia as orientações a seguir: 1) Uma sugestão para leitura é a obra Fundamentos da Programação de Computadores. Para essa unidade, você pode ler os capítulos: 1 – Conceitos básicos e 2 – Estrutura Sequencial. A referência completa está no tópico Referências Bibliográficas, ao final desta unidade. 2) Ao final da unidade, você encontrará um conjunto de exercícios resolvidos. É funda- mental para seu aprendizado que você codifique-os no ambiente VisuAlg. Para verifi- car o funcionamento correto dos algoritmos, você poderá comparar a saída da imple- mentação realizada por você com as saídas ao final de cada algoritmo, indicadas como Resultado da execução do algoritmo. 3) Lembre-se de que a melhor forma de aprender a elaborar algoritmos eficientes, indepen- dentemente da metodologia, é por meio da utilização de um lápis e uma folha em branco.

Fundamentos da Construção EAD de Algoritmos 2

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Fundamentos da Construção EAD de Algoritmos 2

EAD

Fundamentos da Construção de Algoritmos

2

1. OBJETIVOS

• Entendercomoosalgoritmossãoconstruídos.• Elaboraralgoritmosutilizandoasestruturassequenciais.

2. CONTEÚDOS

• Estruturasequencial.• Variáveiseconstantes.• Expressõesaritméticas.• Expressõeslógicas.

3. ORIENTAÇÕES PARA O ESTUDO DA UNIDADE

Antesdeiniciaroestudodestaunidade,éimportantequevocêleiaasorientaçõesaseguir:1) UmasugestãoparaleituraéaobraFundamentos da Programação de Computadores.

Paraessaunidade,vocêpodeleroscapítulos:1–Conceitosbásicose2–EstruturaSequencial.AreferênciacompletaestánotópicoReferências Bibliográficas,aofinaldestaunidade.

2) Aofinaldaunidade,vocêencontraráumconjuntodeexercíciosresolvidos.Éfunda-mentalparaseuaprendizadoquevocêcodifique-osnoambienteVisuAlg.Paraverifi-carofuncionamentocorretodosalgoritmos,vocêpoderácompararasaídadaimple-mentaçãorealizadaporvocêcomassaídasaofinaldecadaalgoritmo,indicadascomoResultado da execução do algoritmo.

3) Lembre-sedequeamelhorformadeaprenderaelaboraralgoritmoseficientes,indepen-dentementedametodologia,épormeiodautilizaçãodeumlápiseumafolhaembranco.

Page 2: Fundamentos da Construção EAD de Algoritmos 2

© Algoritmos e Programação48

4. INTRODUÇÃO À UNIDADE

Naunidadeanterior,alémdeestudarosprincipaisconceitosdalógicamatemática,vocêtambémteveaoportunidadedeconhecerasformasderepresentaçãodealgoritmos.

Nestaunidade,estudaremososconceitosessenciaisparaaconstruçãodealgoritmoscomautilizaçãodométododopseudocódigo.Paratanto,inicialmentevocêteráapossibilidadedeaprendercomodeclararvariáveiseconstantes,comoatribuirvaloresavariáveis,comoexibirinformaçõesnatelaecomoreceberdadosdigitadospelousuário.

Emseguida,teráapossibilidadedeaprendercomoutilizarexpressõesnaelaboraçãodealgoritmoseescreveralgoritmosqueutilizamexpressõesaritméticaseseusoperadoresmate-máticos.Alémdisso,vocêterácondiçõesdediscutirasexpressões lógicaseseusrespectivosoperadoreslógicoserelacionais.

Bonsestudos!

5. ESTRUTURA SEQUENCIAL

Comovocêpôdeaprendernaunidadeanterior,aconstruçãodeumalgoritmodependedaorganizaçãológicaecoerentedeumconjuntodepassos.Essespassosdevemserexecutadosdemaneirasequencial,e,nocasodosalgoritmos,sempredoinícioparaofim.Alémdisso,paracadapassooulinhadoalgoritmo,aexecuçãoocorresempredaesquerdaparaadireita.

Estrutura básica de um algoritmo

Osalgoritmoscomputacionaispossuemumaestruturabásicanaqualsãodefinidos,porexemplo,onomedoalgoritmo,asvariáveisutilizadaseoblocoprincipal.AestruturamínimaexigidaparaumalgoritmoéaapresentadanoCódigo1.Observe:

Código 1

1 algoritmo "nome do algoritmo"

2 //informações sobre o algoritmo

3

4 // declaração das variáveis

5

6 inicio

7

8 {bloco de instruções}

9

10 fimalgoritmo

Fim código 1

NaLinha1,édefinidoonomedoalgoritmo,umainformaçãoessencialparasuaidentifi-cação.Essenomeésempredefinidoentre"aspasduplas"eapareceapósapalavraalgoritmo.

NaLinha2,podemosobservarumrecursomuitoutilizadopelosprogramadoresparaado-cumentaçãodosalgoritmos,chamadode"comentário".Oscomentáriossãoutilizadosapenasparamelhoraralegibilidadeefacilitaroentendimentodoalgoritmo.Nostópicosaseguir,serãoapresentadasmaisinformaçõessobreoscomentários.

ALinha4determinaapartedoalgoritmoemquesãodeclaradasasvariáveiseasconstan-tes.Esseconceitoéfundamentalparaaconstruçãodealgoritmoseseráabordadoembreve.

Page 3: Fundamentos da Construção EAD de Algoritmos 2

Claretiano - Centro Universitário

49© U2 – Fundamentos da Construção de Algoritmos

ALinha6contémapalavrareservadainicio,quedeterminaoiníciodoblocoprincipaldoalgoritmo.Apartirdesseponto,oprogramadorpodeinserirtodaalógicadeprogramaçãooublocodeinstruções.

Finalmente,naLinha10,éespecificadoofimdoalgoritmopelapalavrareservadafimal-goritmo.

Umpontoimportanteaserdestacadoéautilizaçãodelinhasembrancodentrodoalgo-ritmo,fatoquepodeserobservadonasLinhas3,5,7e9doCódigo1.Autilizaçãodelinhasembrancoéumrecursomuitoutilizado,poisfacilitaaleituradoalgoritmo.

Outropontoadestacaréautilizaçãodetabulaçõesaolongodoalgoritmo,comopodesernotadonaLinha8.Astabulaçõessãoimprescindíveisparaaorganizaçãodoalgoritmo:dames-mamaneiraqueaslinhasembranco,tornamaleituramaisfácil.

Oscomentários,as linhasembrancoeastabulaçõesfazempartedasboas práticas de programação.

Tipos de dados

Umalgoritmoquenãomanipulainformaçõespodenãoternenhumautilidade.Agrandeessênciadaconstruçãodealgoritmoseprogramaséapossibilidadedemanipulaçãodegrandesvolumesdeinformação.

Essasinformaçõesquesãomanipuladaspelosalgoritmossãochamadasdetipos abstra-tos de dados.

Ostiposabstratosdedados,ou,simplesmente,tiposdedados,definemquaistiposdein-formaçõespodemserprocessadaspelocomputador.Todotipoabstratodedadoséumconjuntodevaloresespecíficose,também,umconjuntodeoperações.

Otipoabstratodedados inteiropermiteamanipulaçãodevaloresnuméricosquenãopossuemapartedecimal.Sãoexemplosdenúmerosinteiros:10, 8, -23, 183, 3245, 0, -12345.Dentreasoperaçõespermitidasporessesnúmeros,podemosdestacar:asoma,asubtração,adivisãoeamultiplicação.

Paramanipularvaloresnuméricoscompartedecimal,éutilizadootipoabstratodedadosreal.Algunsexemplosdenúmerosreaissão:10,32,943,03,-32,25,0,43,41234,98.Asopera-çõesrealizadascomnúmerosinteirostambémpodemserempregadasnosnúmerosreais.Alémdisso,outrasoperaçõessãopossíveis,como,porexemplo,ocálculodaraizquadradadeumnúmero.

Ostiposabstratosdedadostambémpermitemamanipulaçãodeinformaçõestextuais.Essetipoéconhecidocomocaractereouliteral.Comotipocaractere,épossívelmanipularnú-meros(0...9),letras(A...Z,a...z)e,também,caracteresespeciais(porexemplo,#,@,!,$,%,*).Entretanto,éimportanteobservarquetodososdadosdotipocaracteresãorepresentadosen-tre"aspas".Issopermiteadistinçãoentreumdadointeiro12345eumdadocaractere"12345".

Porfim,otipodedadosabstratológicopermiteamanipulaçãodeinformaçõesquepodeassumirapenasdoisvalores:verdadeirooufalso.

Observe,noQuadro1,umresumodostiposabstratosdedadosquepodemserutilizadosnamanipulaçãodeinformaçõesnosalgoritmos.Sãodescritastambémassuasprincipaisutiliza-ções,bemcomoalgunsexemplos:

Page 4: Fundamentos da Construção EAD de Algoritmos 2

© Algoritmos e Programação50

Quadro 1Tiposabstratosdedados.

TIPOS ABSTRATOS DE DADOS

Tipo Utilização Exemplo

Inteiro Númerossemcasasdecimais.-500132

Real Númeroscomcasasdecimais.-5,420,93866,92

Caractere Conjuntodecaracteres."OláMundo!""Hojeé05dedezembrode2015""Meue-mailé[email protected]"

Lógico Valoresverdadeirooufalso. VerdadeiroFalso

Constantes, variáveis e comandos de atribuição

ComovimosnotópicoTipos de Dados,osalgoritmossãocapazesdemanipularinforma-çõescomtiposdedadosbemdefinidos.

Dessaforma,quandoconstruímosalgoritmos,podemosdefinirqueumadeterminadain-formaçãonãopoderáseralteradaaolongodaexecução.Esseconceitoéchamadodeconstante.Assim,umaconstanteéumdadodefinidonoalgoritmoquenãopodeterseuvalormodificado.

Tambémépossíveldefinirdadosquepodemterseuvaloralteradoduranteaexecuçãodoalgoritmo.Essesdadosrecebemonomedevariáveis.Quandovocêdeclaraumavariávelemumprograma,significaquevocêestáreservandoumespaçodamemóriaprincipal(RAM)paraoarmazenamentodeumadeterminadainformação.Otamanhodoespaçoreservadodependedotipodedadosutilizadonavariável.

Independentementedaespecificaçãoutilizadaparaa informação,é imprescindívelqueumtipoabstratodedadoestejaassociadoaela.Assim,todaconstanteouvariáveldevepossuirumtipoespecífico.

Dentrodaestruturabásicadeumalgoritmo,aespecificaçãodasvariáveiseconstantessem-predeveserdefinidanocabeçalho.Assim,asvariáveiseconstantessãodeclaradasapósonomedoalgoritmoeantesdoblocoprincipal(início....fimalgoritmo).Paradeterminaroiníciodasde-claraçõesdasvariáveiseconstantes,éutilizadaapalavrareservadadeclare.Observe,noCódigo2:

Código 2

1 algoritmo "declara_variaveis"

2 { algoritmo para demonstrar a declaração

3 de variáveis }

4

5 declare

6 nome: literal

7 idade: inteiro

8

9 inicio

10

11 nome <- "João da Silva"

12 idade <- 21

13 escreva(nome, " tem ", idade , " anos")

14

15 fimalgoritmo

Fim código 2

Page 5: Fundamentos da Construção EAD de Algoritmos 2

Claretiano - Centro Universitário

51© U2 – Fundamentos da Construção de Algoritmos

Parademonstrarofuncionamentodoalgoritmo,vejaoresultadodaexecuçãoaseguir.Asinformaçõesutilizadascomoentradasãoapenasilustrativas.

Resultado da execução do algoritmo:

João da Silva tem 21 anos

Parademonstrarcomoéoprocessode transformação,ou tradução,dealgoritmosemprogramas,oCódigo3apresentaoalgoritmodeclara_variaveistraduzidoparaalinguagemdeprogramaçãoC.Observe:

Código 3

1 #include <stdio.h>

2

3 main()

4 {

5 char nome[] = "Joao da Silva";

6 int idade = 21;

7

8 printf("%s tem %i anos", nome, idade);

9 }

Fim código 3

AsLinhas5,6e7demonstramcomoserárealizadaadeclaraçãodevariáveisdentrodeumalgoritmo.Nãopodemosnosesquecerdequeessadeclaraçãodevesempreserdefinidaapósapalavrareservadadeclare.

Éimportantequevocêsaibaque,casoestejautilizandooprogramaVisuAlgparaconstruirosalgoritmos,apalavrareservadadeclaredevesersubstituídapelapalavravar.OVisuAlgutilizaapalavravarparadeterminaroiníciodadeclaraçãodasvariáveis,emvezdapalavradeclare.

Vocêtambémdeveráobservaraformadadeclaraçãodasvariáveis,quedeveseguirsem-preopadrão:

<nome_da_variável> : <tipo_da_variável>

Para inserirmosos valoresouoperaçõesemumavariável, utilizamososcomandos de atribuição.Assim,pormeiodocomandodeatribuição,adicionamosumdeterminadovalornaposiçãodememóriareservadapelavariável.

Noalgoritmo,ocomandodeatribuiçãoérepresentadopelosímbolo<-(tambémpodesersimbolizadopor←).Veja:

<nome_da_variável> <- <valor> ou <operação>

Observeque,naLinha11,ovalorJoão da Silvaéatribuídoàvariável"nome",e,naLinha12,ovalor21éatribuídoàvariável"idade".Ocomandodeatribuiçãotambémpermiteautili-zaçãodeoperações,como,porexemplo:

media <- (8,5+7,0)/2

Onomedeumavariávelédenominadoidentificador.Oidentificadorpossuiregrasmuitobemdefinidasparaaespecificaçãodenomes.Alémdosnomesdasvariáveis,osnomesdosal-goritmos,dasconstantesedassub-rotinastambémsãoconsideradosidentificadores.

Page 6: Fundamentos da Construção EAD de Algoritmos 2

© Algoritmos e Programação52

Paradefinirumidentificador,algumasregrasdevemserseguidas,taiscomo:1) Todoidentificadordevecomeçarporumcaracteredoalfabeto.2) Nãoépermitidodefiniridentificadoresquecomecemcomnúmeros.3) Nãoépermitidodefiniridentificadoresquecomecemcomcaracteresespeciais.4) Nãoépermitidoutilizarespaçosembranconadefiniçãodoidentificador.

Observe,noQuadro2,osidentificadoresválidoseosinválidos:

Quadro 2Identificadoresválidoseinválidos.

IDENTIFICADORES

Válidos Inválidos

Nome 1valor

media_final #cidade

ENDERECO nomealuno

X dia/mes

valor1 "nome"

Alguns identificadorespodemserutilizadosapenascomumsentidoespecialdentrodaelaboraçãodoalgoritmo.Essesidentificadoresespeciaissãodenominadospalavras reservadas.Sãoexemplosdepalavras reservadas:algoritmo,declare, início, fimalgoritmo, inteiro, literal,caractere,lógico,dentreoutras.Éimportantesalientarquepalavrasreservadasnãopodemserutilizadascomoidentificadores.

Comandos de entrada e saída

Aelaboraçãodeprogramasnãoteriasentidosenãohouvesseapossibilidadedeleituradeinformaçõesdosusuários.Paraqueumprogramaoualgoritmosejacapazdereceberdadosdigitadospelousuário,sãoutilizadososcomandos de entrada.

Dessemodo,quandoutilizamosumcomandodeentradaemumalgoritmo,ovalorinfor-madopelousuárioéarmazenadoemumavariável.Emlinguagemalgorítmica,ocomandodeentradaérepresentadopelapalavraleia.

Exemplo

Ainstruçãoleia(nome)fazqueovalordigitadopelousuáriosejaarmazenadonavariável"nome".

Outra característicaessencial naelaboraçãodeumalgoritmoé a capacidadedeexibirinformaçõesparaousuárionatelaounaimpressora.Paraisso,sãoutilizadoscomandosespecí-ficos,quesãochamadosdecomandos de saída.

Umcomandodesaídatemcomoobjetivoaapresentaçãodeumainformaçãooudeumconteúdodeumavariávelparaousuário.Essecomandoédefinidopelapalavraescreva.

Porexemplo:ainstruçãoescreva("Seja bem-vindo!")exibenateladousuárioamensa-gemdefinidaentreaspas.

Paraexemplificarautilizaçãodoscomandosdeentradaesaída,elaboraremosumalgorit-moquerecebecomoentradaovalordosaláriodeumfuncionárioecalculaumnovosaláriocomreajustede25%.Oresultadoéoapresentadonatela:

Page 7: Fundamentos da Construção EAD de Algoritmos 2

Claretiano - Centro Universitário

53© U2 – Fundamentos da Construção de Algoritmos

Código 4

1 algoritmo "comandos_entrada_saida"

2 { algoritmo para demonstrar a utilização dos

3 comandos de entrada e saída }

4

5 {declaração das variáveis}

6 declare

7 salario_atual: real

8 salario_novo: real

9

10 inicio

11

12 {leitura das informações}

13 escreva("Informe o salário: ")

14 leia(salario_atual)

15

16 {cálculo do novo salário}

17 salario_novo <- salario_atual + (salario_atual * (25/100))

18

19 {escrita do resultado na tela}

20 escreva("Salário com aumento = R$ ", salario_novo)

21

22 fimalgoritmo

Fim código 4

Parademonstrarofuncionamentodoalgoritmo,vejaoresultadodaexecuçãoaseguir.Asinformaçõesutilizadascomoentradasãoapenasilustrativas.

Resultado da execução do algoritmo:

Informe o salário: 1000,00

Salário com aumento = R$ 1250,00

NoCódigo5,édemonstradaautilizaçãodocomandodesaídanaexibiçãodediversasvariáveisaomesmotempo.OalgoritmoelaboradotemcomoobjetivoocálculodoÍndicedeMassaCorpórea(IMC)deumapessoa.Observe:

Código 5

1 algoritmo "calculo_imc"

2 {algoritmo que demonstra como calcular o

3 índice de massa corpórea (IMC) }

4

5 {declaração das variáveis}

6 declare

7 nome: literal

8 peso,altura, imc: real

9

10 inicio

11 {leitura das informações}

12 escreva("Nome: ")

13 leia(nome)

14 escreva("Peso: ")

Page 8: Fundamentos da Construção EAD de Algoritmos 2

© Algoritmos e Programação54

15 leia(peso)

16 escreva("Altura: ")

17 leia(altura)

18

19 {cálculo do índice de massa corpórea}

20 imc <- peso / (altura*altura)

21

22 {escrita do resultado na tela}

23 escreva(nome, " seu IMC é igual a ", imc)

24

25 fimalgoritmo

Fim código 5

Parademonstrarofuncionamentodoalgoritmo,vejaoresultadodaexecuçãoaseguir.Asinformaçõesutilizadascomoentradasãoapenasilustrativas.

Resultado da execução do algoritmo:

Nome: João da Silva

Peso: 72,5

Altura: 1,82

João da Silva seu IMC é igual a 21,88

Ocomandodeentradaleiapermitequemaisdeumainformaçãosejarecebidaaomesmotempo.Noalgoritmoanterior,porexemplo,poderíamossimplificaraleituradopesoedaalturaemumaúnicalinhadaseguinteforma:

14 escreva("Peso e Altura: ")

15 leia(peso,altura)

Pararealizaraleituradasinformaçõesdamaneiraanterior,ousuáriodeveinformarova-lordaprimeiravariável,adicionarumespaço,e,logoemseguida,informarovalordasegundavariável.

Comentários

Oscomentáriossãoumrecurso imprescindívelparaumaboa prática de programação.Pormeiodeles,oprogramadorpodedocumentaroalgoritmoe,comisso,aumentaraclarezadocódigo.

Umaspectoimportantearespeitodoscomentárioséqueelessãodesconsideradosdu-ranteaexecuçãodoalgoritmooudoprograma.Issosignificaqueelesnãointerferemnocon-teúdodoalgoritmo.Porisso,podemosescreverqualquertipodeinformaçãoparafacilitaroseuentendimento.

Vocêpodefazerdoistiposdecomentáriosnoseualgoritmo:• Comentáriosdeumaúnicalinha,quesãodefinidospeloscaracteres//.

Exemplo1 //este é um comentário de uma única linha

Page 9: Fundamentos da Construção EAD de Algoritmos 2

Claretiano - Centro Universitário

55© U2 – Fundamentos da Construção de Algoritmos

• Comentáriosdemúltiplaslinhas,nosquaispodemosescreveroquantofornecessárioentreoblocodechaves{ ... }.

Exemplo1 {No comentário de múltiplas linhas,

2 podemos explicar, detalhadamente, uma

3 determinada parte do algoritmo }

6. EXPRESSÕES ARITMÉTICAS

Vocêsabiaqueumadasgrandeshabilidadesdosprogramasdecomputadoreséacapaci-dadederealizarcálculosmatemáticos?Paraisso,osprogramasutilizamumconjuntodesímbo-losespeciais,quesãochamadosdeoperadores aritméticos.

Exemplo

Pararealizarasomaentredoisnúmeros,como,porexemplo,10e20,énecessáriaauti-lizaçãodooperadoraritméticodeadição.Esseoperadorérepresentadopelosímbolo+.Assim,ainstruçãosoma = 10+20realizaasomaentreosvaloreseatribuioresultadoàvariávelsoma.

Asprincipaisoperaçõesmatemáticaspossuemoperadoresaritméticos,osquaispodemseraplicadosaqualquertipodeexpressãocontendonúmerosinteirosounúmerosreais.Obser-ve,noQuadro3,osprincipaisoperadoresaritméticos.

Quadro 3 Operadoresaritméticos.

OPERADORES ARITMÉTICOS

Operação Operador Exemplo

Adição + 10+20

Subtração - 9–2

Multiplicação * 2*4

Divisão / 6/3

Osparêntesespodemserutilizadosnaconstruçãodeexpressõesalgorítmicasdamesmamaneiraquesãoempregadosnasexpressõesmatemáticas.Observe:

Exemplo1 resultado <- (10 + 20) * ( 5 – ( 9 / 3 ) )

Alémdisso,épossívelutilizarvariáveisnaconstruçãodeexpressões.

Exemplo1 a <- 10

2 b <- 5

3 c <- 5

4 d <- 9

5 e <- 3

6 resultado <- (a + b) * ( c – (d / e) )

Page 10: Fundamentos da Construção EAD de Algoritmos 2

© Algoritmos e Programação56

NoCódigo6,construiremosumalgoritmoqueresolveráaseguinteexpressãomatemática:

( )( )A B * B C / 2C+ −

Código 6

1 algoritmo "expressao_matematica"

2 {algoritmo para calcular uma determinada expressão

3 matemática }

4

5 declare

6 A, B, C : real

7 resultado: real

8

9 inicio

10 {leitura das informações}

11 escreva("Informe o valor de A: ")

12 leia(A)

13 escreva("Informe o valor de B: ")

14 leia(B)

15 escreva("Informe o valor de C: ")

16 leia(C)

17

18 {cálculo da expressão matemática}

19 resultado <- ( (A+B)/C ) * ( (B-C)/2 )

20

21 {resultado da expressão}

22 escreva("O resultado da expressão é = ", resultado)

23

24 fimalgoritmo

Fim código 6

Parademonstrarofuncionamentodoalgoritmo,vejaoresultadodaexecuçãoaseguir.Asinformaçõesutilizadascomoentradasãoapenasilustrativas.

Resultado da execução do algoritmo:

Informe o valor de A: 10

Informe o valor de B: 2

Informe o valor de C: 6

O resultado da expressão é = -4

Alémdosoperadoresvistosatéomomento,háumoperadoraritméticomuitointeressan-te,queéconhecidocomomódulo.Esseoperadortemcomofunçãocalcularorestodadivisãoepodeseraplicadoapenasnasdivisõesentrenúmerosinteiros.

Exemplo

Suponhaquevocêtenhaduasvariáveisinteiras,A eB,emqueA = 6eB = 2.Oresultadodaexpressão A / Béiguala3.

Page 11: Fundamentos da Construção EAD de Algoritmos 2

Claretiano - Centro Universitário

57© U2 – Fundamentos da Construção de Algoritmos

Noentanto,imagine,agora,queasvariáveisassumiramosseguintesvalores:A = 5eB = 2.Qualé,então,oresultadodaexpressãoA / B?Nãoseesqueçadequeestamostrabalhandocomnúmerosinteiros;assim,oresultadonãoé 2,5.

Oresultadocorretoparaessaexpressãoentrevariáveisinteirasé2,ouseja,adivisãode5por2éiguala2eresta(ousobra)1.

Dessaforma,podemosescreverexpressõesaritméticascapazesderesultaroquocientedadivisãoentredoisnúmerosinteiros,paraisso,utilizamosooperadormatemático/.Alémdis-so,tambémpodemoselaborarexpressõesqueresultemorestodadivisãoentreinteiros.Paraisso,utilizamosooperadormatemático%.Esseoperadoréresponsávelpelorestooumódulodadivisãoentrenúmerosinteiros.

OalgoritmodoCódigo7ilustraautilizaçãodosoperadoresaritméticosdedivisãointeiratantoparacálculodoquocientequantoparaocálculodoresto.Veja:

Código 7

1 algoritmo "divisao_de_inteiros"

2 { para demonstrar os operadores matemáticos

3 para divisão inteira }

4

5 declare

6 A, B: inteiro

7 quociente: inteiro

8 resto: inteiro

9

10 inicio

11 {leitura das informações}

12 escreva("Informe o valor de A: ")

13 leia(A)

14 escreva("Informe o valor de B: ")

15 leia(B)

16

17 {cálculo do quociente da divisão e resto}

18 quociente <- A / B

19 resto <- A % B

20

21 escreva("O quociente da divisão é igual a ", quociente)

22 escreva("O resto da divisão é igual a ", resto)

23

24 fimalgoritmo

Fim código 7

Parademonstrarofuncionamentodoalgoritmo,vejaoresultadodaexecuçãoaseguir.Asinformaçõesutilizadascomoentradasãoapenasilustrativas.

Resultado da execução do algoritmo:

Informe o valor de A: 10

Informe o valor de B: 3

O quociente da divisão é igual a 3O

O resto da divisão é igual a 1

Page 12: Fundamentos da Construção EAD de Algoritmos 2

© Algoritmos e Programação58

Observação:noprogramaVisuAlg,ooperadormatemáticoparanúmerosinteirosérepre-sentadopelosímbolo\.Assim,naLinha18doalgoritmo,teríamosquociente <- A\B.

Noconjuntodeoperadoresmatemáticos,tambémépossívelrepresentarasoperaçõesdepotenciaçãoeradiciação.Paraisso,utilizamososoperadores poteraiz.

Exemplo

Apotenciaçãorealizaaoperaçãodeumnúmeroelevadoaoutro,como,porexemplo,23(2elevadoa3).Representamosessaoperaçãonoalgoritmocomopot(2,3).

Jáaoperaçãoderadiciação,responsávelpelocálculodaraizquadradadeumnúmero,érepresentadapelooperadorraiz.Assim,araizquadradade25,ouseja, 25 ,éformalizadapelaoperaçãoraiz(25).

OalgoritmodoCódigo8ilustraafuncionalidadedooperadormatemáticodepotenciação.Observe:

Código 8

1 algoritmo "potenciacao"

2 { algoritmo para demonstrar o operador matemático

3 de potenciação }

4

5 declare

6 A, B: inteiro

7 resultado: real

8

9 inicio

10 {leitura das informações}

11 escreva("Informe o valor de A: ")

12 leia(A)

13 escreva("Informe o valor de B: ")

14 leia(B)

15

16 {cálculo de A elevado a B}

17 resultado <- pot(A,B)

18

19 {resultado}

20 escreva(A, " elevado a ", B, " é igual a ", resultado)

21

22 fimalgoritmo

Fim código 8

Parademonstrarofuncionamentodoalgoritmo,vejaoresultadodaexecuçãoaseguir.Asinformaçõesutilizadascomoentradasãoapenasilustrativas.

Resultado da execução do algoritmo:

Informe o valor de A: 2

Informe o valor de B: 3

2 elevado a 3 é igual a 8

Page 13: Fundamentos da Construção EAD de Algoritmos 2

Claretiano - Centro Universitário

59© U2 – Fundamentos da Construção de Algoritmos

Observação:noVisuAlg,aoperaçãodepotenciaçãoérepresentadapelosímbolo^.Assim,ainstruçãodaLinha17deveserexpressadaseguintemaneira:resultado<-A^B.

Nopróximoexemplo,édemonstradaautilizaçãodooperadorderadiciação.Assim,diantedeumnúmeroinformadopelousuário,érealizadoocálculodaraizquadrada.Veja:

Código 9

1 algoritmo "raiz_quadrada"

2 { algoritmo para demonstrar o operador matemático

3 de radiciação }

4

5 declare

6 A: real

7 resultado: real

8

9 inicio

10 {leitura das informações}

11 escreva("Informe o valor de A: ")

12 leia(A)

13

14 {cálculo da raiz quadrada A}

15 resultado <- raiz(A)

16

17 {resultado}

18 escreva("Raiz quadrada de ", A, " é igual a ", resultado)

19

20 fimalgoritmo

Fim código 9

Parademonstrarofuncionamentodoalgoritmo,vejaoresultadodaexecuçãoaseguir.Asinformaçõesutilizadascomoentradasãoapenasilustrativas.

Resultado da execução do algoritmo:

Informe o valor de A: 25

Raiz quadrada de 25 é igual a 5

Observação:noVisuAlg,aoperaçãoderadiciaçãoérepresentadapelafunção raizq.As-sim,ainstruçãodaLinha17deveserexpressadaseguintemaneira:resultado<-raizq(A).

Naresoluçãodeexpressõesmatemáticas,éfundamentalobedecermosàordemdeproce-dência(ouprioridade)dosoperadores.Essaordemdefinequaisoperaçõesdevemserrealizadasemprimeirolugar.

Dessemodo,quandotemosoperaçõesqueenvolvemmaisdeumoperador,énecessárioseguirumaprioridadeemsuarealização.

Quadro 4Prioridadeaserrespeitadaemoperações.

ORDEM DAS OPERAÇÕES

Ordem Operador

1o parêntesesmaisinteiros

2o potraiz

3o */

4o +-

Page 14: Fundamentos da Construção EAD de Algoritmos 2

© Algoritmos e Programação60

Emexpressõesmatemáticasenvolvendooperadorescomamesmaprioridade,devemosresolverinicialmenteosoperadoresmaisàesquerda,e,emseguida,osmaisàdireita.Porexem-plo,naexpressãoresultado <- 10 * 2 / 5,resolvemosinicialmente10 * 2(iguala20),e,depois,dividiremosoresultadopor5.Assim,oresultadodaexpressãoéiguala4.

Expressões lógicas

Aconstruçãodeinstruçõesdealgoritmospermiteautilizaçãodeexpressões lógicas.Es-sasexpressõessãoresponsáveisporestabelecerrelaçõesemvaloresouemvariáveisdentrodoalgoritmo.

Oresultadodaavaliaçãodeumaexpressão lógicaésempreumvalor lógico,ouseja,aexpressãosempreresultaumvalorverdadeirooufalso.

Hátrêstiposdeoperadores:operadores deigualdade, relacionais e lógicos.

Osoperadores de igualdadesãoutilizadosparaestabelecerequivalênciaentreinforma-çõespresentesnosalgoritmos.Comeles,vocêpode,porexemplo,avaliarseumadeterminadavariáveléounãoigualaoutra.Verifique,noQuadro5,osoperadoresdeigualdade.

Quadro 5Operadoresdeigualdade.

OPERADORES DE IGUALDADE

Operador Símbolo Exemplo

Igualdade = 10=20

Diferença <> 10!=20

ObserveoalgoritmodescritonoCódigo10,que ilustraautilizaçãodosoperadoresdeigualdade:

Código 10

1 algoritmo "operadores_igualdade"

2 // algoritmo para demonstrar os operadores de igualdade

3 Var

4 A,B: inteiro

5 igual, diferente: lógico

6

7 inicio

8 {leitura das informações}

9 escreva("Informe o valor de A: ")

10 leia(A)

11 escreva("Informe o valor de B: ")

12 leia(B)

13

14 {utilização dos operadores de igualdade}

15 igual <- A = B

16 diferente <- A <> B

17

18 {resultado}

19 escreva(A, " é igual a ", B, " = ", igual)

20 escreva(A, " é diferente de ", B, " = ", diferente)

21

22 fimalgoritmo

Fim código 10

Page 15: Fundamentos da Construção EAD de Algoritmos 2

Claretiano - Centro Universitário

61© U2 – Fundamentos da Construção de Algoritmos

Parademonstrarofuncionamentodoalgoritmo,vejaoresultadodaexecuçãoaseguir.Asinformaçõesutilizadascomoentradasãoapenasilustrativas.

Resultado da execução do algoritmo:

Informe o valor de A: 10

Informe o valor de B: 2

10 é igual a 2 = FALSO

10 é diferente de 2 = VERDADEIRO

Osoperadoresrelacionaispermitemrealizarcomparaçõesentrevaloresdomesmotipo.Asrelaçõesquepodemserestabelecidasentredoisvaloressão:maiorque,menorque,maiorouigualque,menorouigualque.

Quadro 6Operadoresrelacionais.

OPERADORES RELACIONAIS

Operador Símbolo Exemplo

maiorque > 10>20

menorque < 8<2

maiorouigualque >= 5>=5

menorouigualque <= 25<=38

NoCódigo11,vocêpoderáobservarautilizaçãodosoperadoresrelacionaisnaconstruçãodosalgoritmos.

Código 11

1 algoritmo "operadores_relacionais"

2 {algoritmo para demonstrar os operadores relacionais}

3

4 declare

5 A,B: inteiro

6 maior, menor: logico

7 maiorque, menorque: logico

8

9 inicio

10 {leitura das informações}

11 escreva("Informe o valor de A: ")

12 leia(A)

13 escreva("Informe o valor de B: ")

14 leia(B)

15

16 {utilização dos operadores relacionais}

17 maior <- A > B

18 menor <- A < B

19 maiorque <- A >= B

20 menorque <- A <= B

21

22 {resultado}

23 escreva(A, " é maior que ", B, " = ", maior)

Page 16: Fundamentos da Construção EAD de Algoritmos 2

© Algoritmos e Programação62

24 escreva(A, " é menor que ", B, " = ", menor)

25 escreva(A, " é maior ou igual a ", B, " = ", maiorque)

26

27 fimalgoritmo

Fim código 11

Parademonstrarofuncionamentodoalgoritmo,vejaoresultadodaexecuçãoaseguir.Asinformaçõesutilizadascomoentradasãoapenasilustrativas.

Resultado da execução do algoritmo:

Informe o valor de A: 5

Informe o valor de B: 2

5 é maior que 2 = VERDADEIRO

5 é menor que 2 = FALSO

5 é maior ou igual a 2 = VERDADEIRO

5 é menor ou igual a 2 = FALSO

Osoperadores lógicossãoasrepresentaçõescomputacionaisdosconectivoslógicosdalógicamatemática.Essesconectivos,damesmamaneiraquena lógica,podemserutilizadosparaaconstruçãodeproposições(tambémchamadasde"condições").

Éimportantesalientarqueosoperadoreslógicospodemseraplicadosapenasparavalo-reslógicos.

Exemplo

SejaA = verdadeiroeB = falso,oresultadodaexpressãoA e Béigualafalso.

Ooperadorlógiconãorepresentaanegaçãodeumvalorlógico.Jáooperadoreestabele-ceaconjunçãoentredoisvaloreslógicos,eooperadorou,adisjunção.Porfim,ooperadorxourepresentaadisjunçãoexclusiva(ouexclusivo).

Paraaavaliaçãodasexpressões lógicas,utilizamosas tabelas-verdadeapresentadasnaunidadeanterior.

Tabela 1Expressõeslógicas.

A B A e B A ou B A xou B

Verdadeiro Verdadeiro Verdadeiro Verdadeiro Falso

Verdadeiro Falso Falso Verdadeiro Verdadeiro

Falso Verdadeiro Falso Verdadeiro Verdadeiro

Falso Falso Falso Falso Falso

OalgoritmopresentenoCódigo12ilustraautilizaçãodosoperadoreslógicos.Nesteexem-plo,elaboraremosumalgoritmocapazdeconstruirtabelas-verdade.Acompanhe:

Page 17: Fundamentos da Construção EAD de Algoritmos 2

Claretiano - Centro Universitário

63© U2 – Fundamentos da Construção de Algoritmos

Código 12

1 algoritmo "operadores_logicos"

2 {algoritmo para demonstrar os operadores lógicos}

3

4 inicio

5

6 escreva("Tabela Verdade do conectivo NAO ")

7 escreva("Não ", VERDADEIRO, " = ", nao VERDADEIRO)

8 escreva("Não ", FALSO, " = ", nao FALSO)

9

10 escreva("Tabela Verdade do conectivo E ")

11 escreva(VERDADEIRO, " e ", VERDADEIRO, " = ", (VERDADEIRO e VERDADEIRO) )

12 escreva(VERDADEIRO, " e ", FALSO, " = ", (VERDADEIRO e FALSO) )

13 escreva(FALSO, " e ", VERDADEIRO, " = ", (FALSO e VERDADEIRO) )

14 escreva(FALSO, " e ", FALSO, " = ", (FALSO e FALSO) )

15

16 escreva("Tabela Verdade do conectivo OU ")

17 escreva(VERDADEIRO, " ou ", VERDADEIRO, " = ", (VERDADEIRO ou VERDADEIRO) )

18 escreva(VERDADEIRO, " ou ", FALSO, " = ", (VERDADEIRO ou FALSO) )

19 escreva(FALSO, " ou ", VERDADEIRO, " = ", (FALSO ou VERDADEIRO) )

20 escreva(FALSO, " ou ", FALSO, " = ", (FALSO ou FALSO) )

21

22 escreva("Tabela Verdade do conectivo XOU ")

23 escreva(VERDADEIRO, " ou exclusivo ", VERDADEIRO, " = ", (VERDADEIRO xou VERDADEIRO) )

24 escreva(VERDADEIRO, " ou exclusivo ", FALSO, " = ", (VERDADEIRO xou FALSO) )

25 escreva(FALSO, " ou exclusivo ", VERDADEIRO, " = ", (FALSO xou VERDADEIRO) )

26 escreva(FALSO, " ou exclusivo ", FALSO, " = ", (FALSO xou FALSO) )

27

28 fimalgoritmo

Fim código 12

Parademonstrarofuncionamentodoalgoritmo,vejaoresultadodaexecuçãoaseguir.Asinformaçõesutilizadascomoentradasãoapenasilustrativas.

Page 18: Fundamentos da Construção EAD de Algoritmos 2

© Algoritmos e Programação64

Resultado da execução do algoritmo:

Tabela Verdade do conectivo NAO

Não VERDADEIRO = FALSO

Não FALSO = VERDADEIRO

Tabela Verdade do conectivo E

VERDADEIRO e VERDADEIRO = VERDADEIRO

VERDADEIRO e FALSO = FALSO

FALSO e VERDADEIRO = FALSO

FALSO e FALSO = FALSO

Tabela Verdade do conectivo OU

VERDADEIRO ou VERDADEIRO = VERDADEIRO

VERDADEIRO ou FALSO = VERDADEIRO

FALSO ou VERDADEIRO = VERDADEIRO

FALSO ou FALSO = FALSO

Tabela Verdade do conectivo XOU

VERDADEIRO ou exclusivo VERDADEIRO = FALSO

VERDADEIRO ou exclusivo FALSO = VERDADEIRO

FALSO ou exclusivo VERDADEIRO = VERDADEIRO

FALSO ou exclusivo FALSO = FALSO

7. EXERCÍCIOS RESOLVIDOS

Nestetópico,vocêencontraráalgunsexercíciosresolvidosecomentadosquefacilitarãoasuacompreensãoeoauxiliarãoemsuaaprendizagem.

1) Construaumalgoritmoquecalculeaáreadeumtriângulo.Lembre-sedeque,pararealizarocálculodaáreadotriângulo,énecessárioutilizarafórmula:

*2

base alturaÁrea =

Código 13

1 algoritmo "e1_areatriangulo"

2 {algoritmo para calcular a área de um triângulo}

3

4 declare

5 area, base, altura: real

6

7 inicio

8

9 escreva("Cálculo da Área do Triângulo")

Page 19: Fundamentos da Construção EAD de Algoritmos 2

Claretiano - Centro Universitário

65© U2 – Fundamentos da Construção de Algoritmos

10 escreva("Informe a base: ")

11 leia(base)

12 escreva("Informe a altura: ")

13 leia(altura)

14

15 {cálculo da área do triângulo}

16 area <- (base*altura)/2

17

18 {resultado}

19 escreva("A área do triângulo é = ", area)

20

21 fimalgoritmo

Fim código 13Parademonstrarofuncionamentodoalgoritmo,vejaoresultadodaexecuçãoaseguir.Asinformaçõesutilizadascomoentradasãoapenasilustrativas.

Resultado da execução do algoritmo:

Cálculo da Área do Triângulo

Informe a base: 6,5

Informe a altura: 2,2

A área do triângulo é = 7,15

2) Escrevaumalgoritmoquerecebaumnúmerointeirodotecladoeimprimanatelatantooseusucessor(numero+1)quantooseuantecessor(numero-1).

Código 14

1 algoritmo "e2_sucessor_antecessor"

2 { algoritmo para calcular o sucessor e

3 antecessor de um número inteiro }

4

5 declare

6 numero: inteiro

7

8 inicio

9 {leitura das informações}

10 escreva("Informe um número: ")

11 leia(numero)

12

13 {escrita do resultado na tela}

14 escreva("Sucessor = ", (numero+1))

15 escreva("Antecessor = ", (numero-1))

16 fimalgoritmo

Fim código 14Parademonstrarofuncionamentodoalgoritmo,vejaoresultadodaexecuçãoaseguir.Asinformaçõesutilizadascomoentradasãoapenasilustrativas.

Resultado da execução do algoritmo:

Informe um número: 10

Sucessor = 11

Antecessor = 9

Page 20: Fundamentos da Construção EAD de Algoritmos 2

© Algoritmos e Programação66

3) Escrevaumalgoritmoquerecebaumnúmerointeiropositivoemaiorquezero.Calculeeapresentenatela:a) Araizquadradadonúmero.b) Onúmeroaoquadrado.c) Onúmeroaocubo.

Código 15

1 algoritmo "e3_calculos"

2 { algoritmo para calcular raiz quadrada e a potência }

3

4 declare

5 numero: real

6 raizquadrada: real

7 quadrado, cubo: real

8

9 inicio

10

11 escreva("Informe um número: ")

12 leia(numero)

13

14 {raiz quadrada}

15 raizquadrada <- raiz(numero)

16

17 {numero elevado ao quadrado}

18 quadrado <- pot(numero, 2)

19

20 {numero elevado ao cubo}

21 cubo <- pot(numero,3)

22

23 {resultado}

24 escreva("Raiz quadrada = ", raizquadrada)

25 escreva("Quadrado = ", quadrado)

26 escreva("Cubo = ", cubo)

27

28 fimalgoritmo

Fim código 15Parademonstrarofuncionamentodoalgoritmo,vejaoresultadodaexecuçãoaseguir.Asinformaçõesutilizadascomoentradasãoapenasilustrativas.

Resultado da execução do algoritmo:

Raiz quadrada = 5

Quadrado = 625

Cubo = 15625

4) Umtrabalhadorrecebeuseusaláriomensal.Porém,precisapagarascontasdeágua,luzetelefone.Combasenessasinformações,escrevaumalgoritmoquesoliciteaousuárioqueinformeseusalárioeosvaloresdascon-tas.Calculeeapresentenatelaquantosobrouparaotrabalhadorapósopagamentodascontas.

Código 16

1 algoritmo "e4_salariorestante"

2 { algoritmo para o salário restante de um trabalhador }

3

4 declare

Page 21: Fundamentos da Construção EAD de Algoritmos 2

Claretiano - Centro Universitário

67© U2 – Fundamentos da Construção de Algoritmos

5 salario: real

6 agua, luz, telefone: real

7 restante: real

8

9 inicio

10

11 escreva("Informe seu salário: ")

12 leia(salario)

13 escreva("Valor da conta de Água: ")

14 leia(agua)

15 escreva("Valor da conta de Luz: ")

16 leia(luz)

17 escreva("Valor da conta de Telefone: ")

18 leia(telefone)

19

20 {cálculo do restante}

21 restante <- salario - (agua+luz+telefone)

22

23 {resultado}

24 escreva("O restante do seu salário é R$ ", restante)

25

26 fimalgoritmo

Fim código 16Parademonstrarofuncionamentodoalgoritmo,vejaoresultadodaexecuçãoaseguir.Asinformaçõesutilizadascomoentradasãoapenasilustrativas.

Resultado da execução do algoritmo:

Informe seu salário: 950,00

Valor da conta de Água: 32,45

Valor da conta de Luz: 88,50

Valor da conta de Telefone: 42,30

O restante do seu salário é R$ 786,75

5) Elaboreumalgoritmoquerealizeaconversãodemoedas.Oalgoritmodeverásolicitaraousuárioacotaçãododólar,bemcomoacotaçãodoeuro.Emseguida,ousuárioinformaráovalor,emreais,quedesejaconverter.Apósoscálculosnecessários,oalgoritmodeveráexibirnatela:a) Ovaloremreaisconvertidoparadólar.b) Ovaloremreaisconvertidoparaeuro.

Código 17

1 algoritmo "e5_conversor_de_moedas"

2 { algoritmo para converter moedas }

3

4 declare

5 cotacao_dolar: real

6 cotacao_euro: real

7 valor_reais, valor_dolar, valor_euro: real

8

9 inicio

10

Page 22: Fundamentos da Construção EAD de Algoritmos 2

© Algoritmos e Programação68

11 escreva("Informe um valor para conversão (em reais): ")

12 leia(valor_reais)

13 escreva("Cotação do Dólar: ")

14 leia(cotacao_dolar)

15 escreva("Cotação Euro: ")

16 leia(cotacao_euro)

17

18 {conversão real para dólar}

19 valor_dolar <- valor_reais / cotacao_dolar

20

21 {conversão real para euro}

22 valor_euro <- valor_reais / cotacao_euro

23

24 {resultado}

25 escreva("Valor em dólar = ", valor_dolar)

26 escreva("Valor em euro = ", valor_euro)

27

28 fimalgoritmo

Fim código 17Parademonstrarofuncionamentodoalgoritmo,vejaoresultadodaexecuçãoaseguir.Asinformaçõesutilizadascomoentradasãoapenasilustrativas.

Resultado da execução do algoritmo:

Informe um valor para conversão (em reais): 100,00

Cotação do Dólar: 2,07

Cotação Euro: 2,85

Valor em dólar = 48,30

Valor em euro = 35,08

6) Elaboreumalgoritmoquesejacapazdeleronomeeosobrenomedeumapessoaearmazenaressasinfor-maçõesemduasvariáveisdotipocaractere.Porexemplo,avariávelnomerecebeovalor João eavariávelsobrenomerecebeovalorda Silva.Oalgoritmodeveráapresentarnatelaessasinformaçõesconcatenadas,daseguintemaneira:João da Silva.

Código 18

01 algoritmo "concatenarinformacoes"

02 {Exemplo de algoritmo que demonstra a concatenação de duas variáveis contendo um conjunto de caracteres. }

03

04 {declaração das variáveis}

05 var {utilize a palavra "var" ao invés de "declare" para execução no VisuAlg}

06 nome: caractere

07 sobrenome: caractere

08 nomecompleto: caractere

09

10 {algoritmo principal}

11 inicio

12 { ---------- entrada de dados ----------}

13 escreva("Informe seu nome:")

14 leia(nome)

Page 23: Fundamentos da Construção EAD de Algoritmos 2

Claretiano - Centro Universitário

69© U2 – Fundamentos da Construção de Algoritmos

15 escreva("Informe seu sobrenome:")

16 leia(sobrenome)

17

18 {concatenação das informações literais}

19 nomecompleto <- nome+sobrenome

20

21 { ---------- saída de dados ----------}

22 escreva("O seu nome completo é ", nomecompleto)

23

24 fimalgoritmo

Fim código 18Parademonstrarofuncionamentodoalgoritmo,vejaoresultadodaexecuçãoaseguir.Asinformaçõesutilizadascomoentradasãoapenasilustrativas.

Resultado da execução do algoritmo:

Informe seu nome: João

Informe seu sobrenome: da Silva

O seu nome completo é João da Silva

7) Escrevaumalgoritmoquesoliciteaousuáriodoisnúmerosdotiporeal.Calculeeapresentanatela:(i)asomadosnúmeros;(ii)asubtraçãodosnúmeros;(iii)amultiplicaçãodosnúmerosea(iv)adivisãodosnúmeros.Importante:Paraocorretofuncionamentodestealgoritmo,énecessárioqueosegundonúmerosejadiferentedezero,umavezqueparaocálculodadivisãoodivisor(segundonúmero)nãopodeserigualazero.

Código 19

01 algoritmo "calculadora"

02 {Exemplo de algoritmo que demonstra o cálculo de algumas operações matemáticas basicas }

03

04 {Neste algoritmo foi utilizado a função disponível no VisuAlg denominada "escreval" que tem como objetivo a escrita de uma informação na tela e a mudança de linha. Comparativamente a linguagem C, esta função (escreval) tem a mesma funcionalidade do especificador "\n".}

05

06 {declaração das variáveis}

07 var {utilize a palavra "var" ao invés de "declare" para execução no VisuAlg}

08 {variáveis para entrada do usuário}

09 numero1: real

10 numero2: real

11 {variáveis para armazenar o resultado dos cálculos}

12 resultado_soma: real

13 resultado_subtracao: real

14 resultado_multiplicacao: real

15 resultado_divisao: real

16

17 {algoritmo principal}

18 inicio

19 {---------- entrada de dados ----------}

20 escreval("CÁLCULO DAS OPERAÇÕES MATEMÁTICAS BÁSICA")

21 escreval("") {pular uma linha}

22 escreval("Importante: para o correto funcionamento deste algoritmo é ")

23 escreval("necessário que o segundo número seja diferente de zero, uma ")

24 escreval("vez que para o cálculo da divisão o divisor (segundo número) ")

Page 24: Fundamentos da Construção EAD de Algoritmos 2

© Algoritmos e Programação70

25 escreval("não pode ser igual a zero.")

26 escreval("") {pular uma linha}

27 escreva("Informe o primeiro número: ")

28 leia(numero1)

29 escreva("Informe o segundo número: ")

30 leia(numero2)

31

32 {----- cálculo das operações matemáticas básicas -----}

33 {-- cálculo da soma}

34 resultado_soma <- numero1 + numero2

35 {-- cálculo da subtracao}

36 resultado_subtracao <- numero1 - numero2

37 {-- cálculo da multiplicacao}

38 resultado_multiplicacao <- numero1 * numero2

39 {-- cálculo da divisao}

40 resultado_divisao <- numero1 / numero2

41

42

43 {---------- saída de dados ----------}

44 escreval("") {pular uma linha}

45 escreval("RESULTADOS")

46 escreval("A soma de ", numero1 , " e ", numero2, " é igual a ", resultado_soma)

47 escreval("A subtração de ", numero1 , " e ", numero2, " é igual a ", resultado_subtracao)

48 escreval("A multiplicação de ", numero1 , " e ", numero2, " é igual a ", resultado_multiplicacao)

49 escreval("A divisão de ", numero1 , " e ", numero2, " é igual a ", resultado_divisao)

50

51 fimalgoritmo

Fim código 19Parademonstrarofuncionamentodoalgoritmo,vejaoresultadodaexecuçãoaseguir.Asinformaçõesutilizadascomoentradasãoapenasilustrativas.

Resultado da execução do algoritmo:

CÁLCULO DAS OPERAÇÕES MATEMÁTICAS BÁSICAS

Importante: para o correto funcionamento deste algoritmo, é necessário que o segundo número seja diferente de zero, uma vez que para o cálculo da divisão o divisor (segundo número) não pode ser igual a zero.

Informe o primeiro número: 10

Informe o segundo número: 20

RESULTADOS

A soma de 10 e 20 é igual a 30

A subtração de 10 e 20 é igual a -10

A multiplicação de 10 e 20 é igual a 200

A divisão de 10 e 20 é igual a 0.5

Page 25: Fundamentos da Construção EAD de Algoritmos 2

Claretiano - Centro Universitário

71© U2 – Fundamentos da Construção de Algoritmos

8) Afórmulaquecalculaaáreadeumacircunferênciaéapresentadadaseguintemaneira:A= pR2,emqueAéumvariáveldotiporealquearmazenaráoresultadodocálculodaárea,péumvalorconstantequerepresentaaproximadamente3,14159,eRéoraiodacircunferência(aoquadrado).Dentrodessecontexto,combasenasinformaçõesapresentadasnoenunciado,elaboreumalgoritmocapazdecalcularaáreadeumacircunferência.

Código 20

01 algoritmo "calculo_da_circunferencia"

02 {Exemplo de algoritmo que demonstra o cálculo da área da circunferência }

03

04

05 {declaração das variáveis}

06 var {utilize a palavra "var" ao invés de "declare" para execução no VisuAlg}

07 {variável para entrada do usuário}

08 raio: real

09 {variável contendo o valor constante de PI}

10 valor_pi: real

11 {variável para armazenar o resultado dos cálculos}

12 area: real

13

14 {algoritmo principal}

15 inicio

16 {----- inicialização das variáveis -----}

17 {-- valor aproximado do PI}

18 valor_pi <- 3,14159

19

20 {---------- entrada de dados ----------}

21 escreval("CÁLCULO DA ÁREA DE UMA CIRCUNFERÊNCIA")

22 escreval("") {pular uma linha}

23 escreva("Informe o valor do raio: ")

24 leia(raio)

25

26 {- cálculo da área da circunferência ---}

27 {-- Importante: o cálculo de R ao quadrado pode ser efetuado }

28 { pela multiplicação de raio por raio. Uma outra maneira de }

29 { realizar esta tarefa é utilizar uma função de potenciação}

30 { que em algoritmo é representada como pot}

31 area <- valor_pi*(raio*raio)

32

33

34

35 {---------- saída de dados ----------}

36 escreval("") {pular uma linha}

37 escreval("RESULTADOS")

38 escreval("A área da circunferência é igual a ", area)

39

40 fimalgoritmo

Fim código 20Parademonstrarofuncionamentodoalgoritmo,vejaoresultadodaexecuçãoaseguir.Asinformaçõesutilizadascomoentradasãoapenasilustrativas.

Page 26: Fundamentos da Construção EAD de Algoritmos 2

© Algoritmos e Programação72

Resultado da execução do algoritmo:

CÁLCULO DA ÁREA DE UMA CIRCUNFERÊNCIA

Informe o valor do raio: 2.50

RESULTADOS

A área da circunferência é igual a 18.75

9) Elaboreumalgoritmocapazdeefetuaratrocadevaloresentreduasvariáveis.Porexemplo:sejaAumavariáveldotipointeirocontendoovalor10eBoutravariáveldotipointeirocontendoovalor20;oalgoritmodeverásercapazdemanipularessasinformaçõesdeformaque,aofinal,avariávelAtenhaovalor20eavariávelBtenhaovalor10.Depoisdeelaboradooalgoritmo,apresenteosresultadosnatela.OsvaloresdasvariáveisAeBdevemserinformadospelousuário.

Código 21

01 algoritmo "troca_entre_variaveis"

02 {Exemplo de algoritmo que demonstra a troca de valores entre duas variáveis. }

03

04

05 {declaração das variáveis}

06 var {utilize a palavra "var" ao invés de "declare" para execução no VisuAlg}

07 {variáveis para entrada do usuário}

08 valor1: inteiro

09 valor2: inteiro

10

11 {variável para armazenar o resultado dos cálculos}

12 auxiliar: inteiro

13

14 {algoritmo principal}

15 inicio

16 {---------- entrada de dados ----------}

17 escreval("TROCA DE VALORES ENTRE DUAS VARIÁVEIS")

18 escreval("") {pular uma linha}

19

20 escreva("Informe o primeiro valor: ")

21 leia(valor1)

22 escreva("Informe o segundo valor: ")

23 leia(valor2)

24

25 {----- exibicação dos valores originais das variáveis -----}

26 escreval("") {pular uma linha}

27 escreval("VALORES ORIGINAIS")

28 escreval("Valor 1: ", valor1)

29 escreval("Valor 2: ", valor2)

30

31 {----- troca de valores entre as variáveis -----}

32 auxiliar <- valor1

33 valor1 <- valor2

34 valor2 <- auxiliar

35

36

37

Page 27: Fundamentos da Construção EAD de Algoritmos 2

Claretiano - Centro Universitário

73© U2 – Fundamentos da Construção de Algoritmos

38 {---------- saída de dados ----------}

39 {----- exibicação dos valores APÓS a troca das variáveis -----}

40 escreval("") {pular uma linha}

41 escreval("VALORES APÓS A TROCA")

42 escreval("Valor 1: ", valor1)

43 escreval("Valor 2: ", valor2)

44 fimalgoritmo

Fim código 21Parademonstrarofuncionamentodoalgoritmo,vejaoresultadodaexecuçãoaseguir.Asinformaçõesutilizadascomoentradasãoapenasilustrativas.

Tela da execução do algoritmo no programa VisuAlg:

TROCA DE VALORES ENTRE DUAS VARIÁVEIS

Informe o primeiro valor: 10

Informe o segundo valor: 20

VALORES ORIGINAIS

Valor 1: 10

Valor 2: 20

VALORES APÓS A TROCA

Valor 1: 20

Valor 2: 10

10)Oquadradodasomadedoistermoséumimportanteconceitomatemáticoepodesercalculadocombasenafórmula:(a+b)2=a2+b2+2ab.Parademonstraresseconceito,elaboreumalgoritmocapazdereceberdoisvaloresinteiros(aeb)erealizaroscálculosnecessáriosconformeafórmulaapresentada.Aofinal,oresultadodoalgo-ritmodeveráserapresentadonatela.

Código 22

01 algoritmo "quadrado_da_soma"

02 {Exemplo de algoritmo que demonstra o cálculo do quadrado da soma entre dois termos. }

03

04

05 {declaração das variáveis}

06 var {utilize a palavra "var" ao invés de "declare" para execução no VisuAlg}

07 {variáveis para entrada do usuário}

08 a: inteiro

09 b: inteiro

10

11 {variável para armazenar o resultado dos cálculos}

12 resultado: inteiro

13

14 {algoritmo principal}

15 inicio

16

17 {---------- entrada de dados ----------}

Page 28: Fundamentos da Construção EAD de Algoritmos 2

© Algoritmos e Programação74

18 escreval("QUADRADO DA SOMA DE DOIS TERMOS")

19 escreval("") {pular uma linha}

20

21 escreva("Informe o primeiro valor: ")

22 leia(a)

23 escreva("Informe o segundo valor: ")

24 leia(b)

25

26 {----- cálculo do quadrado da soma entre dois termos -----}

27 resultado <- (a*a)+(b*b)+(2*a*b)

28

29 {---------- saída de dados ----------}

30 escreval("") {pular uma linha}

31 escreval("RESULTADO")

32 escreval("O quadrado da soma é igual a ", resultado)

33

34 fimalgoritmo

Fim código 22Parademonstrarofuncionamentodoalgoritmo,vejaoresultadodaexecuçãoaseguir.Asinformaçõesutilizadascomoentradasãoapenasilustrativas.

Resultado da execução do algoritmo:QUADRADO DA SOMA DE DOIS TERMOS

Informe o primeiro valor: 3

Informe o segundo valor: 8

RESULTADO

O quadrado da soma é igual a 121

11)Umpostodecombustíveisdesejainformatizarseuprocessodeabastecimentodeveículos.Paraisso,énecessá-rioquesejacriadoumalgoritmocomputacionalcapazdecalcularototalpagoporcadacliente.Essealgoritmodeverásolicitaraousuárioopreçodocombustíveleonúmerodelitroscomoqualoveículofoiabastecido,e,combasenessasinformações,deverácalcularototalaserpagopelocliente.Elaboreumalgoritmoparasolu-cionartalproblemae,aofinal,apresentenatelaasinformaçõesnecessárias.

Código 23

01 algoritmo "calculo_do_total_pago_no_posto"

02 {Exemplo de algoritmo que demonstra o cálculo do total pago no posto de combustível por cada cliente. }

03

04

05 {declaração das variáveis}

06 {utilize a palavra "var" ao invés de "declare" para execução no VisuAlg}

07 var

08 {variável para entrada do usuário}

09 preco_combustivel: real

10 numero_litros: real

11

12 {variável para armazenar o resultado dos cálculos}

Page 29: Fundamentos da Construção EAD de Algoritmos 2

Claretiano - Centro Universitário

75© U2 – Fundamentos da Construção de Algoritmos

13 resultado: real

14

15 {algoritmo principal}

16 inicio

17 {---------- entrada de dados ----------}

18 escreval("POSTO DE COMBUSTÍVEL DO JOÃO")

19 escreval("") {pular uma linha}

20 escreva("Informe o preço do combustível: ")

21 leia(preco_combustivel)

22 escreva("Informe o número de litros abastecido pelo cliente: ")

23 leia(numero_litros)

24

25 {----- cálculo do total pago -----}

26 resultado <- preco_combustivel*numero_litros

27

28 {---------- saída de dados ----------}

29 escreval("") {pular uma linha}

30 escreval("RESULTADOS")

31 escreval("O total pago pelo cliente será R$ ", resultado)

32

33 fimalgoritmo

Fim código 23Parademonstrarofuncionamentodoalgoritmo,vejaoresultadodaexecuçãoaseguir.Asinformaçõesutilizadascomoentradasãoapenasilustrativas.

Resultado da execução do algoritmo:

POSTO DE COMBUSTÍVEL DO JOÃO

Informe o preço do combustível: 1.49

Informe o número de litros abastecido pelo cliente: 22.50

RESULTADOS

O total pago pelo cliente será R$ 33.525

12)Umviajantedesejacalcularoconsumomédiodecombustíveldeseuveículo.Paraisso,eletemanotadasasseguintesinformações:totaldequilômetrosrodadoscomoveículo,totaldelitrosdecombustívelabastecidoepreçodocombustívelporlitro.Combasenessasinformações,elaboreumalgoritmocapazdecalcularoconsu-momédiodecombustíveldoviajante.Alémdisso,apresenteovalorgastoemreais.

Código 24

01 algoritmo "consumo_medio_combustivel"

02 {Exemplo de algoritmo que demonstra o cálculo do consumo médio de combustível. }

03

04

05 {declaração das variáveis}

06 {utilize a palavra "var" ao invés de "declare" para execução no VisuAlg}

Page 30: Fundamentos da Construção EAD de Algoritmos 2

© Algoritmos e Programação76

07 var

08 {variável para entrada do usuário}

09 total_quilometros: real

10 total_litros: real

11 preco_combustivel: real

12

13 {variável para armazenar o resultado dos cálculos}

14 resultado_consumo: real

15 resultado_valor_reais: real

16

17 {algoritmo principal}

18 inicio

19 {---------- entrada de dados ----------}

20 escreval("CONSUMO MÉDIO DE COMBUSTÍVEL")

21 escreval("") {pular uma linha}

22 escreva("Informe o total de quilômetros rodados pelo veículo: ")

23 leia(total_quilometros)

24 escreva("Informe o total de litros abastecido: ")

25 leia(total_litros)

26 escreva("Informe o preço do combustível: ")

27 leia(preco_combustivel)

28

29 {----- cálculos -----}

30 {-- consumo médio}

31 { determina o número de quilometros rodados por litro de combustível}

32 resultado_consumo <- (total_quilometros/total_litros)

33 {-- gasto de combustível}

34 { determina quanto o viajante gastou em reais}

35 resultado_valor_reais <- (total_litros * preco_combustivel)

36

37 {---------- saída de dados ----------}

38 escreval("") {pular uma linha}

39 escreval("RESULTADOS")

40 escreval("O consumo médio de combustível deste veículo é de ", resultado_consumo ," quilômetros por litro")

41 escreval("O total gasto pelo viajante em reais é de R$ ", resultado_valor_reais)

42

43 fimalgoritmo

Fim código 24Parademonstrarofuncionamentodoalgoritmo,vejaoresultadodaexecuçãoaseguir.Asinformaçõesutilizadascomoentradasãoapenasilustrativas.

Page 31: Fundamentos da Construção EAD de Algoritmos 2

Claretiano - Centro Universitário

77© U2 – Fundamentos da Construção de Algoritmos

Resultado da execução do algoritmo:

CONSUMO MÉDIO DE COMBUSTÍVEL

Informe o total de quilômetros rodados pelo veículo: 420.00

Informe o total de litros abastecido: 38

Informe o preço do combustível: 1.5

RESULTADOS

O consumo médio de combustível deste veículo é de 11.05 quilômetros por litro

O total gasto pelo viajante em reais é de R$ 57

13)Elaboreumalgoritmoquesejacapazdeconverterângulosdefinidosemgrausparaângulosdefinidosemra-dianos.Paraisso,oalgoritmodeverásolicitaraousuáriooânguloemgrauseexibirnatelasuaconversãopararadianos.

Código 25

01 algoritmo "conversao_graus_radianos"

02 {Exemplo de algoritmo que demonstra a conversão de um ângulo definido em graus para radianos }

03

04

05 {declaração das variáveis}

06 {utilize a palavra "var" ao invés de "declare" para execução no VisuAlg}

07 var

08 {variável para entrada do usuário}

09 angulo_graus: real

10

11 {valor aproximado do PI}

12 valor_pi: real

13

14 {variável para armazenar o resultado dos cálculos}

15 angulo_radiano: real

16

17 {algoritmo principal}

18 inicio

19 {----- inicialização das variáveis -----}

20 {-- valor aproximado do PI}

21 valor_pi <- 3.14159

22

23 {---------- entrada de dados ----------}

24 escreval("CONVERSAO DE GRAUS PARA RADIANOS")

25 escreval("") {pular uma linha}

26 escreva("Informe o valor do ângulos em graus: ")

27 leia(angulo_graus)

28

29 {----- conversão para radianos -----}

30 angulo_radiano <- (angulo_graus*valor_pi)/180

31

Page 32: Fundamentos da Construção EAD de Algoritmos 2

© Algoritmos e Programação78

32

33 {---------- saída de dados ----------}

34 escreval("") {pular uma linha}

35 escreval("RESULTADOS")

36 {DICA: No programa VisuAlg você pode especificar como serão apresentadas }

37 {as casas decimais de um valor do tipo REAL. Para isso, após o }

38 {número você deve definir o número de casas antes da vírgula e o}

39 {número de casas após a vírgula. }

40 { Por exemplo, }

41 { X <- 1.23456 }

42 { escreva(X:0:2)// exibirá na tela 1.23 }

43 {escreva(X:0:3)// exibirá na tela 1.234 }

44 escreval("O ângulo de ", angulo_graus, " graus é igual a ", angulo_radiano:0:4, " em radianos")

45

46 fimalgoritmo

Fim código 25Parademonstrarofuncionamentodoalgoritmo,vejaoresultadodaexecuçãoaseguir.Asinformaçõesutilizadascomoentradasãoapenasilustrativas.

Resultado da execução do algoritmo:

CONVERSAO DE GRAUS PARA RADIANOS

Informe o valor do ângulo em graus: 45

RESULTADOS

O ângulo de 45 graus é igual a 0.7853975 em radianos

14)Baseando-senoexercícioanterior,elaboreumalgoritmocapazderealizaraconversãoopostadosângulos,ouseja,capazdeconverterumânguloespecificadoemradianosparaumângulodefinidoemgraus.Oalgoritmodeveráapresentaroresultadonatela.

Código 26

01 algoritmo "conversao_radianos_graus"

02 {Exemplo de algoritmo que demonstra a conversão de um ângulo definido em radianos para graus }

03

04

05 {declaração das variáveis}

06 {utilize a palavra "var" ao invés de "declare" para execução no VisuAlg}

07 var

08 {variável para entrada do usuário}

09 angulo_radiano: real

10

11 {valor aproximado do PI}

12 valor_pi: real

13

14 {variável para armazenar o resultado dos cálculos}

15 angulo_graus: real

16

Page 33: Fundamentos da Construção EAD de Algoritmos 2

Claretiano - Centro Universitário

79© U2 – Fundamentos da Construção de Algoritmos

17

18 {algoritmo principal}

19 inicio

20 {---- inicialização das variáveis -------}

21 {-- valor aproximado do PI}

22 valor_pi <- 3.14159

23

24 {---------- entrada de dados ----------}

25 escreval("CONVERSAO DE RADIANOS PARA GRAUS")

26 escreval("") {pular uma linha}

27 escreva("Informe o valor do ângulos em radianos: ")

28 leia(angulo_radiano)

29

30 {----- conversão para graus -----}

31 angulo_graus <- (angulo_radiano*180)/valor_pi

32

33 {---------- saída de dados ----------}

34 escreval("") {pular uma linha}

35 escreval("RESULTADOS")

36 escreval("O ângulo de ", angulo_radiano:0:2, " radianos é igual a ", angulo_graus:0:2, " em graus")

37

38 fimalgoritmo

Fim código 26Parademonstrarofuncionamentodoalgoritmo,vejaoresultadodaexecuçãoaseguir.Asinformaçõesutilizadascomoentradasãoapenasilustrativas.

Resultado da execução do algoritmo:

CONVERSAO DE RADIANOS PARA GRAUS

Informe o valor dos ângulos em radianos: 3.14159

RESULTADOS

O ângulo de 3.14159 radianos é igual a 180 em graus

15)Osjurosrepresentamaremuneraçãodeumcapitalempregadoemalgumaatividadeprodutiva.Nessesentido,umdoscálculosempregadosnaáreafinanceiraéadeterminaçãodosjurossimples.Essetipodejuroutilizacomobaseonúmerodeperíodosqueocapitalfoiaplicado,ataxaunitáriadoperíodoeovalorprincipalquefoiempregado.Combasenessasinformações,ocálculoérealizadopormeiodafórmula:J=Pin, emqueJrepre-sentaoresultadodocálculodosjurossimples;Povalorprincipal;iataxaunitáriaaoperíodoenonúmerodeperíodos.Deacordocomasinformações,elaboreumalgoritmocapazdecalcularosjurossimples.Paraisso,oalgoritmodeverásolicitarasinformaçõesaousuárioeaofinalapresentarnatelaocálculodosjuros.

Código 27

01 algoritmo "calculo_juros_simples"

02 {Exemplo de algoritmo que demonstra o cálculo do juros simples }

03

04

05 {declaração das variáveis}

Page 34: Fundamentos da Construção EAD de Algoritmos 2

© Algoritmos e Programação80

06 {utilize a palavra "var" ao invés de "declare" para execução no VisuAlg}

07 Var

08 {variável para entrada do usuário}

09 valor_principal: real

10 numero_periodos: real

11 taxa_unitaria: real

12

13 {variável para armazenar o resultado dos cálculos}

14 juros_simples: real

15

16

17 {algoritmo principal}

18 Inicio

19 {---------- entrada de dados ----------}

20 escreval("JUROS SIMPLES")

21 escreval("") {pular uma linha}

22 escreva("Informe o valor principal: ")

23 leia(valor_principal)

24 escreva("Informe o número de períodos: ")

25 leia(numero_periodos)

26 escreva("Informe a taxa unitária (Exemplo, para 15% informe 0.15): ")

27 leia(taxa_unitaria)

28

29 {----- cálculo dos juros simples -----}

30 { Fórmula: J = Pin }

31 juros_simples <- valor_principal * taxa_unitaria * numero_periodos

32

33 {---------- saída de dados ----------}

34 escreval("") {pular uma linha}

35 escreval("RESULTADOS")

36 escreval("Valor principal: R$ ", valor_principal:4:2)

37 escreval("Taxa unitária: ", (taxa_unitaria*100), "%")

38 escreval("Número de períodos: ", numero_periodos)

39 escreval("JUROS SIMPLES: R$ ", juros_simples:4:2)

40

41 Fimalgoritmo

Fim código 27Parademonstrarofuncionamentodoalgoritmo,vejaoresultadodaexecuçãoaseguir.Asinformaçõesutilizadascomoentradasãoapenasilustrativas.

Page 35: Fundamentos da Construção EAD de Algoritmos 2

Claretiano - Centro Universitário

81© U2 – Fundamentos da Construção de Algoritmos

Resultado da execução do algoritmo:

JUROS SIMPLES

Informe o valor principal: 1000.00

Informe o número de períodos: 12

Informe a taxa unitária (Exemplo, para 15% informe 0.15): 0.25

RESULTADOS

Valor principal: R$ 1000.00

Taxa unitária: 25%

Número de períodos: 12

JUROS SIMPLES: R$ 3000.00

16)Osjuroscompostossãopopularmenteconhecidoscomo"jurossobrejuros",esãomuitoutilizadosemcálculosdefinanciamentos.Essetipodejurosutilizacomobaseparaocálculotrêsinformações: P,querepresentaovalorprincipal financiado(ouaplicado) inicialmente; i,ataxaunitária;en,onúmerodeperíodosdeaplica-ção.Combasenessas informações,aseguintefórmulaéempregadaparaocálculodos juroscompostos:JC=P(1+i)n.Porexemplo, imaginequeuminvestidoraplicounapoupançaovalordeR$1.000,00duranteseismeses,aumataxadejurosfixade0,5%(queéiguala0,005).Substituindoosvaloresnafórmula,temosJC=1.000,00(1+0,005)6.Assim,aofinaldessesseismesesoinvestidorteráumtotaldeR$1.030,38.Parademons-trarocálculodosjuroscompostos,elaboreumalgoritmocompletocombasenasinformaçõesespecificadasnoenunciadoeapresenteoresultadonofinal.

Código 28

01 algoritmo "calculo_juros_compostos"

02 {Exemplo de algoritmo que demonstra o cálculo do juros compostos }

03

04

05 {declaração das variáveis}

06 {utilize a palavra "var" ao invés de "declare" para execução no VisuAlg}

07 var

08 {variável para entrada do usuário}

09 valor_principal: real

10 numero_periodos: real

11 taxa_unitaria: real

12

13 {variável para armazenar o resultado dos cálculos}

14 juros_composto: real

15

16

17 {algoritmo principal}

18 inicio

19 {---------- entrada de dados ----------}

20 escreval("JUROS SIMPLES")

21 escreval("") {pular uma linha}

22 escreva("Informe o valor principal: ")

23 leia(valor_principal)

24 escreva("Informe o número de períodos: ")

25 leia(numero_periodos)

26 escreva("Informe a taxa unitária (Exemplo, para 15% informe 0.15): ")

27 leia(taxa_unitaria)

28

Page 36: Fundamentos da Construção EAD de Algoritmos 2

© Algoritmos e Programação82

29 {----- cálculo dos juros simples -----}

30 { Fórmula: J = P(1+i)^n }

31 juros_composto <- valor_principal * (1+taxa_unitaria)^numero_periodos

32

33 {---------- saída de dados ----------}

34 escreval("") {pular uma linha}

35 escreval("RESULTADOS")

36 escreval("Valor principal: R$", valor_principal:4:2)

37 escreval("Taxa unitária: ", (taxa_unitaria*100), "%")

38 escreval("Número de períodos: ", numero_periodos)

39 escreval("JUROS COMPOSTO: R$ ", juros_composto:4:2)

40

41 fimalgoritmo

Fim código 28Parademonstrarofuncionamentodoalgoritmo,vejaoresultadodaexecuçãoaseguir.Asinformaçõesutilizadascomoentradasãoapenasilustrativas.

Resultado da execução do algoritmo:

JUROS SIMPLES

Informe o valor principal: 1000.00

Informe o número de períodos: 6

Informe a taxa unitária (Exemplo, para 15% informe 0.15): 0.005

RESULTADOS

Valor principal: R$1000.00

Taxa unitária: 0.5%

Número de períodos: 6

JUROS COMPOSTO: R$ 1030.38

17)Sejaf(x)umafunçãorepresentadadaseguintemaneira: 2 2= − + −f ( x ) ( a b ) ( c d ) .Elaboreumalgoritmoquesoliciteaousuárioasinformaçõesnecessáriasparaocálculodafunçãoeapresenteoresultadonatela.

Código 29

01 algoritmo "calculo_funcao"

02 {Exemplo de algoritmo que demonstra o cálculo de uma função }

03

04

05 {declaração das variáveis}

06 {utilize a palavra "var" ao invés de "declare" para execução no VisuAlg}

07 var

08 {variável para entrada do usuário}

09 variavel_a: real

10 variavel_b: real

11 variavel_c: real

12 variavel_d: real

13

Page 37: Fundamentos da Construção EAD de Algoritmos 2

Claretiano - Centro Universitário

83© U2 – Fundamentos da Construção de Algoritmos

14 {variável para armazenar o resultado dos cálculos}

15 resultado_fx: real

16

17

18 {algoritmo principal}

19 inicio

20 {---------- entrada de dados ----------}

21 escreval("CÁLCULO DE UMA FUNÇÃO f(x)")

22 escreval("") {pular uma linha}

23 escreva("Informe o valor da variável A: ")

24 leia(variavel_a)

25 escreva("Informe o valor da variável B: ")

26 leia(variavel_b)

27 escreva("Informe o valor da variável C: ")

28 leia(variavel_c)

29 escreva("Informe o valor da variável D: ")

30 leia(variavel_d)

31

32 {----- cálculo da função -----}

33 {Dica: O programa VisuAlg possui uma função específica }

34 { para o cálculo da RAIZ QUADRADA de um número. }

35 { Esta função é denominada raizq }

36 resultado_fx <- raizq( (variavel_a-variavel_b)^2+(variavel_c-variavel_d)^2)

37

38 {---------- saída de dados ----------}

39 escreval("") {pular uma linha}

40 escreval("RESULTADOS")

41 escreval("Valor da variável A", variavel_a)

42 escreval("Valor da variável B", variavel_b)

43 escreval("Valor da variável C", variavel_c)

44 escreval("Valor da variável D", variavel_d)

45 escreval("Resultado da função F(X)= ", resultado_fx)

46

47 fimalgoritmo

Fim código 29Parademonstrarofuncionamentodoalgoritmo,vejaoresultadodaexecuçãoaseguir.Asinformaçõesutilizadascomoentradasãoapenasilustrativas.

Page 38: Fundamentos da Construção EAD de Algoritmos 2

© Algoritmos e Programação84

Resultado da execução do algoritmo:

CÁLCULO DE UMA FUNÇÃO f(x)

Informe o valor da variável A: 2

Informe o valor da variável B: 8

Informe o valor da variável C: 3

Informe o valor da variável D: 5

RESULTADOS

Valor da variável A 2

Valor da variável B 8

Valor da variável C 3

Valor da variável D 5

Resultado da função F(X)= 6.32455532033676

18)Escrevaumprogramaquesoliciteaousuárioumadata.Eledeveráinformarseparadamenteodia,omêseoano.Emseguida,oalgoritmodeveráapresentarnatelaadataformatada,talcomo:dia/mês/ano.

Código 30

01 algoritmo "data_formatada"

02 {Exemplo de um algoritmo que exibe na tela uma data formatada dd/mm/aaaa }

03

04

05 {--------- declaração das variáveis ---------- }

06 {Dica: utilize a palavra "var" ao invés de "declare" }

07 { para execução no programa VisuAlg }

08 var

09 {variável para entrada do usuário}

10 dia: inteiro

11 mes: inteiro

12 ano: inteiro

13

14 {variável para armazenar o resultado dos cálculos}

15 {nenhum}

16

17 {algoritmo principal}

18 inicio

19

20 {---------- entrada de dados ----------}

21 escreval("DATA FORMATADA")

22 escreval("") {pular uma linha}

23 escreva("Informe o dia: ")

24 leia(dia)

25 escreva("Informe o mês: ")

26 leia(mes)

Page 39: Fundamentos da Construção EAD de Algoritmos 2

Claretiano - Centro Universitário

85© U2 – Fundamentos da Construção de Algoritmos

27 escreva("Informe o ano: ")

28 leia(ano)

29

30

31 {---------- saída de dados ----------}

32 escreval("") {pular uma linha}

33 escreval("RESULTADOS")

34 escreval("Data formatada: ", dia, "/", mes, "/", ano)

35

36 fimalgoritmo

Fim código 30Parademonstrarofuncionamentodoalgoritmo,vejaoresultadodaexecuçãoaseguir.Asinformaçõesutilizadascomoentradasãoapenasilustrativas.

Resultado da execução do algoritmo:

DATA FORMATADA

Informe o dia: 05

Informe o mês: 07

Informe o ano: 1923

RESULTADOS

Data formatada: 5/ 7/ 1923

8. QUESTÕES AUTOAVALIATIVAS

Oestudodealgoritmoseprogramaçãoenvolvequestõesteóricasepráticas.Porisso,éessencial que você esteja sintonizado comos assuntos teóricos e, especialmente, que saibacomoaplicá-losemproblemaspráticos.Asquestõesautoavaliativasdestaunidadeabordamosaspectosfundamentaisdaconstruçãodealgoritmos,osquaissãoessenciaisaolongodetodasasunidades.Aproveitepararealizarumarevisãoebonsestudos.

1) Qualéaestruturabásicadeumalgoritmo?

2) Oquesãocomentáriosequaléautilidadenaelaboraçãodealgoritmos?

3) Oquesãoblocosdeinstruçõesequaléautilidadedasinstruçõesinícioefimalgoritmo?

4) Oquesãotiposdedados?

5) Quaissãoosprincipaistiposdedados?

6) Qualtipodedadoséutilizadopararepresentaçãodenúmerossemcasasdecimais?Apresentepelosmenostrêsexemplosdevaloresdessetipo.

7) Qualtipodedadoséutilizadopararepresentaçãodenúmeroscomcasasdecimais?Apresentepelosmenostrêsexemplosdevaloresdessetipo.

8) Qual tipodedados éutilizadopara representaçãode conjuntode caracteres?Apresentepelosmenos trêsexemplosdevaloresdessetipo.

9) Definaeapresenteexemplosdostermosconstanteevariável.

Page 40: Fundamentos da Construção EAD de Algoritmos 2

© Algoritmos e Programação86

10)Qualéaformapadrão,tambémconhecidacomo"sintaxe",utilizadaparadeclararumavariável?

11)Oquesãoidentificadores?

12)Apresentepelomenoscincoexemplosdeidentificadoresválidos.Osexemplosdevemserdiferentesdospre-sentesnoCaderno de Referência de Conteúdo.

13)Apresentepelomenoscincoexemplosdeidentificadoresinválidos.Osexemplosdevemserdiferentesdospre-sentesnoCaderno de Referência de Conteúdo.

14)Oquesãocomandosdeentradaequalasuautilidadenaelaboraçãodealgoritmos?

15)Oquesãocomandosdesaídaequalésuautilidadenaelaboraçãodealgoritmos?

16)Quaissãoosprincipaisoperadoresmatemáticosquepodemserutilizadosnaelaboraçãodealgoritmos?

17)Expliqueeapresenteexemplosdeutilizaçãodooperadordeigualdade.

18)Expliqueeapresenteexemplosdeutilizaçãodooperadordediferença.

19)Oquesãooperadoresrelacionaisecomoelespodemserutilizadosnaconstruçãodealgoritmos?

20)Oquesãooperadoreslógicos?

21)ConsiderandoA=verdadeiroeB=falso,qualéoresultadodasexpressões:a) AeB.b) AouB.c) AxouB.d) Ae(AouB).

9. CONSIDERAÇÕES

Nesta unidade, você teve oportunidade de conhecer os principais conceitos para aconstruçãodealgoritmos.Tambémteveoportunidadedeestudaroscomandosdeentradaesaídadeinformações,alémdasexpressõeslógicasearitméticas.

Apósestudartodososexercíciosresolvidos,terminamosoconteúdodestaunidade.Esteéomomentoparatreinarmososconceitosapresentadosaolongodoseudesenvolvimento;porisso,éimportantíssimoquevocêrealizeasatividadespropostasnoCaderno de Atividades e Interatividades.

10. REFERÊNCIA BIBLIOGRÁFICA

ASCENCIO,A.F.G.;EDILENE,A.V.de.Fundamentos da programação de computadores:algoritmos,PascaleC/C++.SãoPaulo:PrenticeHall,2002.