Lógica de programação - Blog do Prof. Andersonlinguagens de programação, cuja função é...

14
Capítulo 1 Fluxograma e pseudocódigo Tipos de dados Constantes e variáveis Operadores Comandos Vetor Matriz Programação modular Lógica de programação

Transcript of Lógica de programação - Blog do Prof. Andersonlinguagens de programação, cuja função é...

Page 1: Lógica de programação - Blog do Prof. Andersonlinguagens de programação, cuja função é realizar as diferentes operações de aritmética e de lógica em um ambiente computacional.

Capítulo 1

• Fluxograma e pseudocódigo

• Tipos de dados

• Constantes e variáveis

• Operadores

• Comandos

• Vetor

• Matriz

• Programação modular

Lógica de programação

Page 2: Lógica de programação - Blog do Prof. Andersonlinguagens de programação, cuja função é realizar as diferentes operações de aritmética e de lógica em um ambiente computacional.

Alógicacomputacionaléumdosprimeirospassosparaquempretende entrarnomundoda computação.Normalmente,nãopercebemossuaaplicaçãopararesolverdiferentesníveis

deproblemasnemsuarelaçãocomoutrasáreasdaciência.Issoporque,em geral, a lógica computacional está associada à lógica matemática(FORBELONE, 2005). É um recurso que permite a criação de alter-nativas viáveis e tecnicamente corretas, eficientes e rápidas. Antes deresolverumproblema,noentanto,temosdesaberinterpretá-lo.Assim,evitam-seresultadosindesejáveisoudesviosdepercurso,damesmama-neiraquesurgeaoportunidadedeeliminareventuaisdúvidas,definin-doomelhoralgoritmo,quepodeseropseudocódigoouof luxograma.

Amaioriadasatividadesqueexecutamoséresultadodeumasequênciadepas-sos lógicos. Por exemplo, amarrar o cadarço de um tênis, abrir uma porta,trocarumalâmpadaoufazeraqueledeliciosobolodechocolate.Asequênciadasetapas,oumelhor,dasoperaçõesaexecutar,édeterminadapeloalgoritmodeformalógica.Umamaneiramaissimplesdedizerissoéqueasucessãodeaçõesfaztodoosentido.Usandoomesmoexemplodobolo,ocomeçodetudoéreunirosingredienteseusá-losnasequênciacerta.Éassimtambémcomasoperaçõesdecálculos,representadaspelopseudocódigoapartirdecomandosno formatode texto (exatamente comouma receita)oupelofluxogramadeformagráfica.Eofatodeserconstituídoporsímbolosgeométricosfacilitaoprocessodevisualizaçãodasoperações.

1.1. Fluxograma e pseudocódigoParaentendermelhoroconceito,vamoselaborar,resumidamente,umal-goritmo que represente os passos necessários para que alguém tome umrefrigeranteemumalata:1.pegarorecipiente;2.abriratampa;3.tomaroconteúdo(vejaquadroAlgorítimo com os passos necessários da latinha).Apartir dessamesma situação, épossível inserirmais operações emnossoalgoritmo,deixando-omaisdetalhado(observeoquadroAlgoritmo deta-lhado da latinha).

1 - Pegar o recipiente.

1 - Pegar o refrigerante com a mão esquerda.

4 Eliminar o lacre.

7 - Ingerir o líquido. 8 - Voltar a lata na posição original.

3 - Remover o lacre.

6 - Inclinar a lata.

2 - Abrir a tampa. 3 - Tomar o conteúdo.

2 - Segurar o lacre com a mão direita.

5 Posicionar a lata corretamente na boca.

QuadroAlgoritmo detalhado da latinha.

QuadroAlgoritmo com os passos necessários da latinha.

InFoRmátICa 4

22

CaPítulo 1

23

Page 3: Lógica de programação - Blog do Prof. Andersonlinguagens de programação, cuja função é realizar as diferentes operações de aritmética e de lógica em um ambiente computacional.

Entreosdiferentessímbolosqueconstituemaestruturadeumfluxograma,osmaiscomunsestãoincluídosnatabela1.

Aproveitandoomesmoexemplodalatinhaderefrigerante,vamosreescre-verospassoslógicospormeiodeumf luxograma(figura1).

Figura 1Fluxograma dos passos lógicos.

Programanome_do_programa

Declare

{declaração de variáveis}

Início

{instruções e comandos}

Fim Comandos e instruções ordenados de forma lógica

Declarações de variáveis

Título do Algoritmo

Existemmuitossoftwaresdestinadosàconstruçãodefluxogramas,masépossí-velfazê-lostambémcomousodoMicrosoftWord®.OsexemplosdessematerialforamelaboradospeloMicrosoftVisio®.

PseudocódigoOsalgoritmossãodesenvolvidosemumalinguagemdenominadapseudocó-digo ou, como preferem alguns autores, português estruturado. Podem sercriadossemoformalismodaslinguagensdeprogramação,masobedecemaumaregrabásicadeestruturação:cabeçalho,declaraçãoeinstruções,confor-meoseguintemodelo:

Início FimInícioPegar a latinha

Remover olacre

Eliminar olacre

Abrir a tampa

Segurar o lacre

Posicionar alata na boca

Voltar a latana posição

originalTomar o refrigerante

Pegar o refrigerante

Inclinar a lata

Ingerir o líquido

tabela 1

NOME = TERMINALFUNÇÃO = Indica INÍCIO ou FIM de um processamento

NOME = PROCESSAMENTOFUNÇÃO = Defi nição de variáveis ou processamentos em geral (Cálculos)

NOME = ENTRADA MANUALFUNÇÃO = Entrada de dados via teclado, idêntico ao comando LEIA

NOME = DISPLAYFUNÇÃO = Saída de Dados, mostra um texto e/ou variável na tela, idêntico ao comando ESCREVA

NOME = DOCUMENTOFUNÇÃO = Saída de Dados, envia um texto e/ou variável para a impressora, usado em relatórios. Idêntico ao comando IMPRIMA

NOME = DECISÃOFUNÇÃO = Decisão a ser tomada, retornando verdadeiro ou falso, idêntico ao comando SE

NOME = CONECTORFUNÇÃO = Desvia o fl uxo para uma outra página, sendo interligados pelo conector

NOME = ENTRADA/SAÍDAFUNÇÃO = Leitura de gravação de arquivos

NOME = SETAFUNÇÃO = Indica a direção do fl uxo

NOME = LOOPFUNÇÃO = Realiza o controle de loop

SIMBOLOGIA DO FLUXOGRAMA

SÍMBOLO NOME E FUNÇÃO Início

InFoRmátICa 4

24

CaPítulo 1

25

Page 4: Lógica de programação - Blog do Prof. Andersonlinguagens de programação, cuja função é realizar as diferentes operações de aritmética e de lógica em um ambiente computacional.

desuavariávelouconstanteenãoutilizeespaçoembrancooucaracteresespeciais,comexceçãodounderline(_).Exemplos:

nome ß “Joãozinho”

idade ß 0

minha_idade ß 15

pag_fi nal ß “R$ 1.479,00”

Umalgoritmodevetercomocaracterísticaumnúmerofinitodepassos,des-critosdeformaprecisaequepossamserexecutadosemumdeterminadotem-po. Pode permitir zero ou mais entradas de dados e gerar saídas de dadosrefinados.Paraconstruirumalgoritmo,éprecisousar informaçõesclaras eobjetivas,geralmentecompostasdeumverbooudeumafrasedireta.

1.2. tipos de dadosAmanipulaçãodedadosemumalgoritmo–ouatémesmonaslinguagensdeprogramação–sóépossívelcombaseemalgumasregrasfundamentaispara a definição dos tipos de dados. É preciso diferenciar um dado comnúmerosououtrostiposdecaracteres.

• numéricos inteirosEssetipodedadoérepresentadopornúmerosnãofracionadospositivosoune-gativos,como:10,50,-56,-1.000etc.

• numéricos fl utuantes Sãorepresentadospornúmerosfracionadospositivosounegativos,porexemplo:10.5,-45.78,178.67etc.

• Caracteres ou literaisÉomaiorconjuntodedados.Sãorepresentadosporletras,números,sím-boloseespaçoembranco,sempreentreaspas.Exemplo:“cadeira”,“100”,“R$10.00”,“11h00”etc.

1.3. Constantes e variáveisAsconstantessãoexpressõesquerecebemumvalorqualquerquenãoserámodificadodurante oprocessode execuçãodo algoritmo. Já as variáveisterãoumvalorpassíveldemodificaçãoaqualquermomento.UmexemplodeconstanteéovalordePi(3,14).Eumavariávelquetodosconhecemosbempodeseratemperaturadodia,registradadehoraemhora.

• atribuição e declaraçãoAtribuir um valor qualquer para uma constante ou uma variável requero uso do sinal de “ß” ou “=”. Isso quer dizer que o valor na frente do si-nal será armazenado no elemento anterior ao sinal de atribuição. Veja:

nome ß “Joãozinho” idade ß 10 pi ß 3.14

Independentementedotipodedadoadotado–caracteresvariados(“Joãozinho”),númerosinteiros(10)ouflutuantes(3.14)–,oprocessodeatribuiçãoéomesmo.Masadeclaraçãorequercuidado.Porisso,procureescolheronomedavariáveldeacordocomotipodedadoqueserárecepcionado,iniciesemprecomletrasonome

1.4. operadoresOsoperadoressãoutilizadospelospseudocódigos.Omesmoacontececomaslinguagensdeprogramação,cuja funçãoé realizarasdiferentesoperaçõesdearitméticaedelógicaemumambientecomputacional.

• aritméticosEsse grupo tem como responsabilidade realizar as operações aritméticas(tabela 2) de um pseudocódigo. As operações serão realizadas de acordocom a prioridade, ou seja, parênteses, potência, multiplicação, divisão e,porúltimo,somaesubtração.

Programa variáveis

Declare

nome como caractere

idade como inteiro

salário como fl utuante

Início

nomeß“Joãozinho”

idadeß15

salárioß1.500,00

Fim

Figura 2Estrutura de pseudocódigo.

Início

Fim

nome como caractereidade como inteiro

salário como fl utuante

nome ß “Joãozinho”idade ß 15

salário ß 1500

Nopseudocódigo(figura2),asconstantesouvariáveisdeverãoestarrelaciona-dascomosseusrespectivostiposdedados:

InFoRmátICa 4

26

CaPítulo 1

27

Page 5: Lógica de programação - Blog do Prof. Andersonlinguagens de programação, cuja função é realizar as diferentes operações de aritmética e de lógica em um ambiente computacional.

Paracompreenderoprocessológicodedados,observeastabelasabaixo,mos-trandoosvaloresoriginais eos resultadosadquiridosapartirdosoperadoreslógicos.EssetipodequadroéconhecidocomoTabelaVerdade(tabela5).

• RelacionaisOsoperadoresrelacionais(tabela3)permitemaexecuçãodetestesentrecons-tantesevariáveis.

• lógicos e tabela Verdade

Osoperadoreslógicos(tabela4)executamfunçõesespeciaisdentrodospseudo-códigos,quandorelacionadosaostestescondicionaisouaoutrosvaloreslógicos.

1.5. Comandos Umaaçãoparaocomputadorédefinidacomumcomandoqueexecutadeter-minadaoperação(mostrarosdadoserealizarumcálculo,porexemplo).Essasaçõesserãorepresentadasnospseudocódigospormeiodeexpressõespredefini-dasnalógicacomputacional.

• Comando Escreva()Éutilizadoparamostrarasaídadedados(figura3),ouseja,quandoumamen-sagemouresultadodeumaoperaçãodeverá serexibidaaousuário.Paraquesejapossívelavisualizaçãododado,algunscuidadossãofundamentais:asex-pressõesdevemaparecerentreaspas,excetoasvariáveisevalores (inteirosouflutuantes).

Escreva(“bom dia”)

valor ß 10

Escreva(valor)

Escreva(56)

Figura 3 Comando Escreva().

Simulação dos operadores “E” e “OU”

tabela 2

tabela 3

tabela 5

tabela 4

Mensagem ouvariável

OPERADORES ARITMÉTICOS + adição de números fl utuantes ou inteiros

+ Concatenação de valores literais (caracteres)

- Subtração de números fl utuantes ou inteiros

* multiplicação de números fl utuantes ou inteiros

/ Divisão de números fl utuantes e inteiros

** Potência de números fl utuantes e inteiros

NÃO // NOT Valor Entrada 01 Resultado Verdadeiro Falso Falso Verdadeiro

E // AND Valor Entrada 01 Valor Entrada 02 Resultado Verdadeiro Verdadeiro Verdadeiro Verdadeiro Falso Falso Falso Verdadeiro Falso Falso Falso Falso

OU // OR Valor Entrada 01 Valor Entrada 02 Resultado Verdadeiro Verdadeiro Verdadeiro Verdadeiro Falso Verdadeiro Falso Verdadeiro Verdadeiro Falso Falso Falso

OPERADORES RELACIONAIS = Igual

<> Diferente

> maior

< menor

<= menor igual

>= maior igual

OPERADORES LÓGICOS

não / not Inverte o resultado de uma expressão

E / and Retorna verdadeiro caso todas as

condições retornem verdadeiro

ou / or Retorna verdadeiro quando uma das condições retorna verdadeiro

chave 1 chave 2

Lógica E lâmpada

bateria

lógica ou

InFoRmátICa 4

28

CaPítulo 1

29

Page 6: Lógica de programação - Blog do Prof. Andersonlinguagens de programação, cuja função é realizar as diferentes operações de aritmética e de lógica em um ambiente computacional.

• Comando leia()AocontráriodocomandoEscreva(),oLeia()permiteainserçãodedadospelainteraçãocomousuário.Elesserãoarmazenadosemvariáveisdevidamentede-finidas(figura5).

Leia(nome)

Leia(nota1)

Leia(nota2)

Leia(temp)

Aorealizarumaentradadedados,oidealéqueousuáriosejanotificadosobreotipodeinformaçãoquedeveráserinserida.Vejacomo:

Programa exemplo_leia

Declare

nome como caractere

média, nota1, nota2 como fl utuante

Início

Escreva(“calculando a média”)

Escreva(“Qual o seu nome?”)

Leia(nome)

Escreva(“Qual a sua nota 1?”)

Leia(nota1)

Escreva(“Qual a sua nota 2?”)

Leia(nota2)

media ß (nota1 + nota2)/2

Escreva(“Sua média fi nal é:”)

Escreva(media)

Fim

Opseudocódigoaseguirrepresentaumexemplomaiscompleto,assimcomoofluxograma,nasequência(figura4):

Programa exemplo_escreva

Declare

nome como caractere

média, nota1, nota2 como fl utuante

Inicio

nome ß “Fulaninho”

nota1 ß 10.0

nota2 ß 2.0

media ß (nota1 + nota2)/2

Escreva(“Sua nota fi nal é:”)

Escreva(média)

Fim

Figura 4 Fluxograma Escreva.

Figura 5 Entrada de Dados.

Entrada de dados

Fim

nome ß “Fulaninho”nota1 ß 10.0nota2 ß 2.0

média ß (nota1+nota2)/2

Início

nome como caractere média, nota1, nota2 como

fl utuante

“Sua nota fi nal é”

média

InFoRmátICa 4

30

CaPítulo 1

31

Page 7: Lógica de programação - Blog do Prof. Andersonlinguagens de programação, cuja função é realizar as diferentes operações de aritmética e de lógica em um ambiente computacional.

• Estrutura de decisão – Se...Senão...Fim-SePodemosorganizarocomandoSe(),paracriardesvioscondicionaisdeverdadei-rooufalsonomesmoteste(figura8):

Observenafigura6,amesmarepresentação,noformatodefluxograma:

Figura 6 Fluxograma Leia.

• Estrutura de decisão – Se...Fim-SeOsalgoritmos,assimcomoaslinguagensdeprogramação,executamasativi-dadesde forma sequencial.Mas, às vezes,devemosdefinir algunsdesviosdeacordocomascondiçõesestabelecidasnoprocessodeexecuçãodoalgoritmoconformea interferênciadousuário.Paraque issoocorra, épreciso executarocomandoSe(),quepermiterealizardesvioscondicionaiscombaseemtesteslógicos.Aestruturadosalgoritmosécompostaporumtestecondicionaleporumcomandoouconjuntodecomandosaseremexecutadosapartirdesseteste,massomentequandooresultadoforverdadeiro(figura7).

Figura 8 Se...Senão...Fim-Se.

Comoficariaarepetiçãodotestecomavariávelmédia.

Se(media>=7.00)Então

Escreva(“Vocêestáaprovado!!!!”)

Senão

Escreva(“Vocêestáreprovado!!!!”)

Fim-Se

Se(condição)Então

{comando(s)}

Fim-Se

Nopróximoexemplo,paraestabeleceracondiçãovamosutilizarosoperadoreslógicosjávistos.

Se(média>=7.00)Então

Escreva(“Vocêestáaprovado!!!!”)

Fim-Se

Figura 7 Se...Fim-Se.

Se(condição)Então

{comando(s)condiçãoverdadeira}

Senão

{comando(s)condiçãofalsa}

Fim-Se

Sim

SimNão

Início

nome como caractere média, nota1, nota2

como fl utuantenome Fim

nota1“Qual a sua nota 1”

“Calculando a média”

“Qual o seu nome?”

média =(nota1+nota2)/2nota2

“Qual a sua nota 2”

“Sua média fi nal é”

média

InFoRmátICa 4

32

CaPítulo 1

33

Page 8: Lógica de programação - Blog do Prof. Andersonlinguagens de programação, cuja função é realizar as diferentes operações de aritmética e de lógica em um ambiente computacional.

• Estrutura de decisão – Selecione Caso...Senão...Fim-Selecione

Emalgunsmomentos,haveránecessidadedetestaramesmavariáveldiversasvezes,comoacontecenomenudeopções.Paraisso,utilizamosocomando“Se-lecioneCaso”daseguinteforma(figura10):

Vamosorganizartodoopseudocódigo,apresentando-o,também,noformatodefluxograma(figura9).

Figura 9 Exemplo de teste.

Programaexemplo_teste

Declare

nomecomocaractere

media,nota1,nota2comoflutuante

Início

Escreva(“calculandoamédia”)

Escreva(“Digiteoseuprimeironome.”)

Leia(nome)

Escreva(“Qualasuanota01?”)

Leia(nota1)

Escreva(“Qualasuanota02?”)

Leia(nota2)

médiaß(nota1+nota2)/2

Escreva(“Suanotafinalé:”)

Escreva(média)

Se(media>=7.00)Então

Escreva(“Aprovado”)

Senão

Escreva(“Reprovado”)

Fim-Se

Escreva(“Fimdeprograma”)

Fim

Selecione Caso{variável}

Casocondição01

{comando(s)}

Casocondição02

{comando(s)}

Casocondição03

{comando(s)}

Senão

{comando(s)}

Fim-Selecione

Figura 10 Selecione Caso.

Sim

Sim

Não

Sim

Não

Fim

nota2

“Aprovado”

“Reprovado”

média >=7.00

Início

nota1 nome

média

“Qual a suanota 02?”

“Qual a suanota 01?”

“Sua médiafi nal é”

“Fim doprograma”

média =(nota1 + nota2)/2

“Qual o seunome?”

“Calculando a média”

nome como caractere média, nota1, nota2

como fl utuante

InFoRmátICa 4

34

CaPítulo 1

35

Page 9: Lógica de programação - Blog do Prof. Andersonlinguagens de programação, cuja função é realizar as diferentes operações de aritmética e de lógica em um ambiente computacional.

• Estrutura de repetição – Para...Fim-ParaAlémdosdesviossequenciais,épossívelcriardesviosemloop,ouseja,repetirtrechosdoalgoritmosobredeterminadacondiçãoecontrolaraformacomqueosloopsserãoexecutados.OcomandoPara...Fim-Parapermitequeumavariávelrealizeacontagemdonúmerodeloopsaexecutar,conformeaindicaçãoinicialefinaldessacontagem(figura12),etambémidentifiqueoformatoemqueessatarefaserárealizada.

Éprecisodescobrir,emdeterminadasituação,seousuárioescolheuosnúmeros1,2ou3.Qualqueroutrodiferente,deverágeraramensagem“númeroinváli-do”(figura11):

Figura 11Selecione caso.

Algunsexemplos:

Parax=1Até5Faça Escreva(x)//Serãovisualizadososnúmeros:1,2,3,4e5. Fim-Para

Paranum=3Até6Faça Escreva(num)//Serãovisualizadososnúmeros:3,4,5e6. Fim-Para

Paravlr=0Até10Passo2Faça Escreva(vlr)//Serãovisualizadososnúmeros:0,2,4,6,8e10. Fim-Para

Paracont=3Até0Passo-1Faça Escreva(cont)//Serãovisualizadososnúmeros:3,2,1e0. Fim-Para

Figura 12Para...Fim-Para.

Leia(número)

Selecione Casonúmero

Caso1

Escreva(“Vocêescolheuonúmero01”)

Caso2

Escreva(“Vocêescolheuonúmero02”)

Caso3

Escreva(“Vocêescolheuonúmero03”)

Senão

Escreva(“Númeroinválido”)

Fim-Selecione

Para<variável>=<vlr.inicial>Até<vlr.final>Passo<arg>Faça

{comando(s)}

Fim-Para

Cont = Inicial atéFinal

Comando(s)

Não

Sim

Não

Sim

Não

Sim

030201

“Você escolheu o número 01”

“Você escolheu o número 02”

“Você escolheu o número 03”

“Númeroinválido”

número

InFoRmátICa 4

36

CaPítulo 1

37

Page 10: Lógica de programação - Blog do Prof. Andersonlinguagens de programação, cuja função é realizar as diferentes operações de aritmética e de lógica em um ambiente computacional.

• Estrutura de repetição – Repita...até queOcomandoRepitatemamesmafinalidadedocomandoEnquanto,quandooassuntoé funcionalidade.Aúnicadiferençaéa localizaçãodacondiçãodeteste,queocorrenofinaldacadeiadeloop(figura14),garantindoaexecuçãodoscomandosnomínimoumavez.

Repita {comando(s)} Até que(condição)

• Estrutura de repetição – Enquanto...Fim-EnquantoAssimcomoocomandoPara...Fim-Parapermiterealizarloop,ainstruçãoEn-quanto...Fim-Enquantoexecutaomesmoprocesso (figura13).Maséprecisolembrarqueessecomandonãorealizaacontagemautomaticamente.Porisso,énecessárioimplementarumcontadordepassos.

Figura 13 Enquanto...

Fim-Enquanto.

Figura 14 Repita...Fim-Repita.

Vamos repetiros exemplosda instrução Para...Fim-Para,mas agora comocomandoEnquanto.

xß1 Repita Escreva(x)//Serãovisualizadososnúmeros:1,2,3,4e5. xßx+1 Até que(x<=5)

numß3 Repita Escreva(num)//Serãovisualizadososnúmeros:3,4,5e6. numßnum+1 Até que(x<=6)

vlrß0 Repita Escreva(vlr)//Serãovisualizadososnúmeros:0,2,4,6,8e10. vlr=vlr+2 Até que(vlr<=10)

contß3 Repita Escreva(cont)//Serãovisualizadososnúmeros:3,2,1e0. contßcont-1 Até que(cont>=0)

Enquanto(condição)Faça {comando(s)} Fim-Enquanto

xß1 Enquanto(x<=5)Faça Escreva(x)//Serãovisualizadososnúmeros:1,2,3,4e5. xßx+1 Fim-Enquanto

numß3 Enquanto(num<=6)Faça Escreva(num)//Serãovisualizadososnúmeros:3,4,5e6. numßnum+1 Fim-Enquanto

vlrß0 Enquanto(vlr<=10)Faça Escreva(vlr)//Serãovisualizadososnúmeros:0,2,4,6,8e10. vlrßvlr+2 Fim-Enquanto

contß3 Enquanto(cont>=0)Faça Escreva(cont)//Serãovisualizadososnúmeros:3,2,1e0. contßcont-1 Fim-Enquanto

comando(s)

Repita (condição)

Condição

Comando(s)

InFoRmátICa 4

38

CaPítulo 1

39

Page 11: Lógica de programação - Blog do Prof. Andersonlinguagens de programação, cuja função é realizar as diferentes operações de aritmética e de lógica em um ambiente computacional.

Programavetores Declare vetcomoconjunto[1..5]deinteiro Início vet[1]ß90 vet[2]ß1 vet[3]ß100 vet[4]ß4-1 vet[5]ß21 Fim

1.6. VetorDefinidotambémcomomatrizunidimensional,umvetor(tabelas6e7)éumavariávelquepossuiváriosdados,acessadospormeiodeumaposiçãorelativa,seguindoamesmaregradaconcepçãoeatribuiçãodasvariáveis.

Noexemploanterior,podemosverificarquecadaelementodeumvetorécarac-terizadoporumaposiçãorelativa.Observandoovetordeletras,teremos:

Posição1àvalorA

Posição5àvalorR

Posição8àvalorQ

Emumpseudocódigo,realizamosadeclaraçãodeumvetordaseguinteforma:

tabela 6 Vetor de Letras.

tabela 7Vetor de Números.

Programavetores Declare vetcomoconjunto[n..n1]de<tipo> Início {comandosoublocodecomandos} Fim

A H M B R J G Q S P

1 2 3 4 5 6 7 8 9 10

10 56 -4 60 2 6 99 3 1 -10

1 2 3 4 5 6 7 8 9 10

Onomedovetorérepresentadopelaexpressão“vet”,cujoconjuntodeinfor-maçõesé identificadopor“n”,posição inicial,e“n1”,posiçãofinal,ouseja,umvetorde10posiçõespoderáserrepresentadocomo[1..10].Eo“tipo”deinformaçãoqueestevetordeveráreceber.

Pararealizaroacessoàposiçãodeumvetor,éprecisoidentificaraposiçãoqueestáentreossinaisde[],logoapósonomedovetor:

Escreva(vet[3])

Leia(vet[2])

• trabalhando com vetorAentradadedadosemumvetorérealizadaporintermédiodeseuidentifica-dor.Paraisso,utiliza-seumcontadorcrescenteoudecrescente,deacordocomanecessidade.Vamoscarregar10informaçõesnuméricasdentrodeumvetor.

vetcomoconjunto[1..10]deinteiro Parai=1Até10Faça Escreva(“Digiteumvalornaposição”,i,“dovetor”) Leia(vet[i]) Fim-Para

Seguindoamesmalógica,podemosrealizaraimpressãodoconteúdodessevetor.

Parai=1Até10Faça Escreva(“Valordaposição:”,i,“dovetoré”,vet[i]) Fim-Para

Vamosreunirosconceitosdeleituraeimpressãonomesmoalgoritmo.

Programavetor_dados Declare vetcomoconjunto[1..10]deinteiro icomointeiro Início Parai=1Até10Faça Escreva(“Digiteumvalornaposição”,i,“dovetor”)

InFoRmátICa 4

40

CaPítulo 1

41

Page 12: Lógica de programação - Blog do Prof. Andersonlinguagens de programação, cuja função é realizar as diferentes operações de aritmética e de lógica em um ambiente computacional.

matcomoconjunto[1..5][1..3]deinteiro Início {comandooublocodecomandos} Fim

Leia(vet[i]) Fim-Para ParaI=1Até10Faça Escreva(“Valordaposição:”,i,“dovetoré”,vet[i]) Fim-Para Fim Assimcomoosvetores,paraaatribuiçãodevaloresemumamatriz,devemos

identificaralinhaeacoluna.

Programamatriz Declare matcomoconjunto[1..2][1..2]deinteiro Início mat[1,1]ß19 mat[1,2]ß2 mat[2,1]ß77 mat[2,2]ß16 Fim

Outroexemploparaanalisar:

Programamédia Declare vetorcomoconjunto[1..8]deinteiro soma,médiacomoflutuante ctcomointeiro Início soma=0 Paract=1Até8Faça Escreva(“Digiteumvalornaposição”,ct,“dovetor”) Leia(vetor[ct]) somaßsoma+vetor[ct] Fim-Para médiaßsoma/8----ou----médiaßsoma/ct Escreva(“Amédiafinalé:”,média) Fim

1.7. matrizAmatriz,aocontráriodovetor,émultidimensional.Nessecaso,osdadossãoarmazenadosoulidosdeacordocomarelaçãoentreoseixos,eseuíndiceére-presentadopordoisoumaisvalores.Umamatriz3x2,porexemplo,possuitrêslinhasporduascolunas.Portanto,qualquerreferênciaaosdadosdeveráapontarparaambasasposiçõesdaformamatriz[2,1],indicandoqueainformaçãorefe-renciadaestánalinha2enacoluna1damatriz.Graficamente,tem-se:

Paraimplementação,realizamosadeclaraçãodamatrizdaseguinteforma:

Programamatriz Declare

• trabalhando com matrizAleituraeaimpressãodasmatrizesseguemomesmoesquemadosvetores.Masseránecessárioutilizardoiscontadores:umparaidentificaralinhaeoutro,paracoluna.Vejamosoexemplodeumamatriz2x2.

Programamatriz Declare matrizcomoconjunto[1..2][1..2]deflutuante lin,colcomointeiro Início Paralin=1Até2Faça Paracol=1Até2Faça Escreva(“Linha”,lin,“damatriz”) Escreva(“Coluna”,col,“damatriz”) Escreva(“Qualovalor?”) Leia(matriz[lin,col]) Fim-Para Fim-Para Escreva(“Visualizandoosdadosdamatriz:”) Paralin=1Até2Faça Paracol=1Até2Faça Escreva(“Linha”,lin,“damatriz”) Escreva(“Coluna”,col,“damatriz”) Escreva(“Ovaloré:”) Escreva(matriz[lin,col]) Fim-para Fim-paraFim

1 21 9 20

2 10 63 2 11

matriz[2,1]

matriz 3x2

InFoRmátICa 4

42

CaPítulo 1

43

Page 13: Lógica de programação - Blog do Prof. Andersonlinguagens de programação, cuja função é realizar as diferentes operações de aritmética e de lógica em um ambiente computacional.

Programaprocedimento Declare opcomocaractere Procedimentobomdia Escreva(“Bomdia!!!!!”) Fim-procedimento Início Escreva(“Desejavernossamensagem?(S/N)”) Leia(op) Seop=‘S’Ouop=‘s’Então bomdia //chamadaouprocedimento Fim-Se Fim

Outroexemplo:

Programasoma Declare a,b,ccomoconjunto[1..8][1..4]deflutuante ln,clcomointeiro Início Paraln=1Até8Faça Paracl=1Até4Faça Escreva(“DigiteovalorparaaMatrizA:”) Leia(a[ln,cl]) Escreva(“DigiteovalorparaaMatrizB:”) Leia(b[ln,cl]) Escreva(“ValoressomadosparaaMatrizC:”) c[ln,cl]=a[ln,cl]+b[ln,cl] Escreva(c[ln,cl]) Fim-Para Fim-Para Fim

1.8. Programação modularUmadastécnicasbemempregadasparaodesenvolvimentodeprogramaséamodulaçãodepartedocódigo.Issosignificaqueoprogramaprincipaléque-bradoempartesmenores.Ecadaparterepresentaumaunidadefuncional.Essassub-rotinas são identificadas comoprocedimentosou funções.Permitemquepartedocódigosejareaproveitadaemoutrapartedocódigoprincipalou,atémesmo,emprojetosdiferentes,poroutrosprogramadores.

• Procedimento

Umprocedimento,assimcomooprogramaprincipal,éformadoportodaaes-truturalógica(início-fim,variáveiseinstruções).Podeserutilizadoemqualquerpartedeumprogramaquesejareferenciado.Dessaforma,aoseracionado,oprocedimentoassumeocontroledaexecução.E,quandoéfinalizado,ocontroleretornaaoprogramaprincipal.

Procedimentonome-do-procedimento(parâmetro:tipo) Declare{variáveis} {comandooublocodecomando Fim-Procedimento

Onome-do-procedimentofazaidentificaçãodoprograma–eéporessaex-pressãoqueeleseráreferenciado.Logoapósessaetapa,encontramososparâ-metroseadefiniçãodeseutipo,osquaisrepresentamvariáveisquereceberãovaloresnomomentodachamada.Assimcomoocódigoprincipal,oproce-dimentopossuiasvariáveis locaisdemanipulaçãodedadoseoscomandosnecessáriosparaasuaexecução.

• Variáveis locais ou globaisAsvariáveislocaissãoconsideradasapenasemumasub-rotina(procedimentooufunção).Dessaforma,sãodesconhecidaspeloalgoritmoprincipal,aocontrá-riodasglobais,quesãoconsideradasportodooalgoritmo.

Programatipos_variáveis Declare a,bcomoINTEIRO//sãovariáveisdotipoglobal Procedimentoteste Declare x,ycomointeiro//sãovariáveislocais //estaáreareconhece(a),(b),(x)e(y) Fim-procedimento Início //estaáreareconhece(a)e(b). Fim

Oquadroemseguidamostraocampodevisualizaçõesdasvariáveis,conformeopseudocódigoapresentadoanteriormente.

Acompanheumexemploparaocálculodaáreadoquadradousandooprocedimento.

Programa tipos_variaveis

Visualização das variáveis

(a) e (b)

Procedimento teste

Visualização das variáveis (a),(b),(x) e (y)

InFoRmátICa 4

44

CaPítulo 1

45

Page 14: Lógica de programação - Blog do Prof. Andersonlinguagens de programação, cuja função é realizar as diferentes operações de aritmética e de lógica em um ambiente computacional.

Programaquadrado Declare opcomocaracter ladocomointeiro

Procedimentoquadrado (ld como inteiro) Declare areacomointeiro áreaßld*ld Escreva(“Aáreadoquadradoé:”,area) Fim-Procedimento Início Escreva(“Gostariadesaberaáreadeumquadrado(S/N)?”) Leia(op) Seop=‘S’Ouop=‘s’Então Escreva(“Digiteovalor:”) Leia(lado) quadrado(lado)

Fim-Se Fim

• FunçãoUmafunçãotemasmesmascaracterísticasestruturaisdeumprocedimento,noquedizrespeitoafatorescomofuncionalidade,visualizaçãodevariáveisecha-madas.Masasuaprincipalvantageméapossibilidadederetornodevaloresemtemporeal.Issoquerdizerque,quandochamamosdeterminadafunção,pode-mosrecebervaloresemtemporeal,armazenandooresultadoemumavariável.

Programaquadrado Declare opcomocaractere Procedimentoquadrado Declare lado,áreacomointeiro Escreva(“Digiteumnúmerointeiro:”) Leia(lado) áreaßlado*lado Escreva(“Aáreadoquadradoé:”,área) Fim-Procedimento Início Escreva(“Gostariadesaberaáreadeumquadrado(S/N)?”)

Leia(op) Seop=‘S’Ouop=‘s’Então quadrado Fim-Se Fim

• Passagem de parâmetroApassagemdeparâmetrosporvaloréutilizadaparaqueassub-rotinaspossamreceberinformaçõeserealizarqualquertipodemanipulaçãoforadopseudocó-digoprincipal.

Funçãonome-da-função( parâmetros:tipo):<tipo-de-retorno> Declare{variáveis} {comandooublocodecomandos} Fim-Função

Diferentementedoprocedimento,éprecisofazeraidentificaçãodotipodevaloraserretornado.

Programaquadrado Declare opcomocaractere ladocomointeiro

Funçãoquadrado (ld como inteiro): inteiro Declare áreacomointeiro áreaßld*ld Fim-Função Início Escreva(“Gostariadesaberaáreadeumquadrado(S/N)?”) Leia(op) Seop=‘S’Ouop=‘s’Então Escreva(“Digiteovalor:”) Leia(lado) Escreva(“Aáreadoquadradoé:”) Escreva(quadrado(lado)) Fim-Se

Fim

InFoRmátICa 4

46

CaPítulo 1

47