Apostila de Algoritmo
Apostila de Algoritmo
Aula 1º
Lógica
Objetivos de aprendizagem
GHILQLU/yJLFDUHFRQKHFHUVXDLPSRUWkQFLDHDSOLFiODQDVROXomRGHSUREOHPDV
FRQFHLWXDUHLQWURGX]LURWHUPR$OJRULWPR
GHVHQYROYHUHRXDPSOLDUDFDSDFLGDGHGHSHUFHSomRGHXPSUREOHPDHXWLOL]iODQDFULDomRGH$OJRULWPRV
192 Algoritmo e Programação 6
No decorrer da disciplina você terá a oportunidade de entender Note que a sequência de instruções apresentada precisou
melhor a técnica para desenvolver o raciocínio lógico, lembrando ser definida para que fosse possível assistir ao filme no
que, para que isso aconteça você precisará ser persistente e praticá- aparelho de DVD. Para nós, pode parecer uma coisa simples,
lo constantemente. Passemos, a seguir, para o estudo sobre os mas tivemos que montar uma sequência de instruções para que
Algoritmos. fosse possível atender à necessidade (problema) em questão.
Assim como esse exemplo, em nossa vida cotidiana
7 193
encontraremos diversas outras situações em que teremos f) colocar a lâmpada nova.
que desenvolver Algoritmos para resolver determinados
problemas, tais como: trocar o pneu de um carro, preparar um Mas, e se a lâmpada não estiver queimada?
bolo, arrumar o filho para ir à escola, etc. Neste caso, a pessoa poderá trocar a lâmpada do mesmo
modo, mesmo não prevendo essa situação. Para solucionar
esse novo problema, podemos efetuar um teste seletivo,
-DSRQHVHVDȴUPDPWHUFULDGRR$OJRULWPRTXHDGLYLQKDDSUR[LPLGDGH
verificando se a lâmpada está ou não queimada:
da morte. “A insólita descoberta foi feita por programadores da
Universidade de Yokohama com base na análise de seis meses de D SHJDUXPDHVFDGD
JUDYD©·HV¢VFKDPDGDVSDUDRVVHUYL©RVGHHPHUJ¬QFLDVGDORFDOLGDGH E SRVLFLRQDUHPEDL[RGDOkPSDGD
>@6HJXQGRRVLQYHVWLJDGRUHVRREMHWLYRGR$OJRULWPR«LGHQWLȴFDUDV F EXVFDUXPDOkPSDGDQRYD
chamadas de emergência de quem está mais necessitado, no momento G OLJDURLQWHUUXSWRU
da triagem” (CURIOSIDADES 10, 2011). e) se a lâmpada não acender, então:
Como podemos perceber, criar Algoritmos pode nos ajudar a solucionar VXELUQDHVFDGD
RVPDLVGLYHUVRVSUREOHPDVHHQFRQWUDUVROX©·HVSDUDGLIHUHQWHV£UHDV UHWLUDUDOkPSDGDYHOKD
do conhecimento. FRORFDUDOkPSDGDQRYD
Vale a pena
Minhas DQRWD©·HV
196 Algoritmo e Programação
2º Aula
Algoritmos
Objetivos de aprendizagem
LGHQWLILFDUDUHODomRHQWUH$OJRULWPRVHSURJUDPDV
GLIHUHQFLDUDVWUrVOLQJXDJHQVGHSURJUDPDomRHVDEHUTXDQGRXViODV
UHFRQKHFHUHHQWHQGHURVVtPERORVGRGLDJUDPDGHEORFR RXGLDJUDPDGHIOX[R
11 197
incondicional ou de interrupção do Algoritmo. Um desvio
Seções de estudo incondicional é aquele em que o programa muda seu fluxo
de execução arbitrariamente. Esse artifício pode ser usado
quando não se tem um completo domínio da lógica do
1 - Algoritmos estruturados
programa, mas deve ser evitado, pois provoca a quebra da
2 - Linguagens de programação
estrutura lógica do Algoritmo.
Os Algoritmos estruturados são fantásticos, você não
1 - Algoritmos estruturados acha? Agora, vamos passar ao estudo sobre as linguagens de
programação.
1.1 - Introdução
Desenvolver Algoritmos estruturados significa, 2 - Linguagens de programação
basicamente, utilizar uma metodologia de projeto de programas,
com o objetivo de facilitar:
D DHVFULWDGRV$OJRULWPRV Escrever um programa é o mesmo que traduzir um
E DOHLWXUDHRHQWHQGLPHQWRGRV$OJRULWPRV Algoritmo para uma linguagem de programação qualquer.
c) a manutenção e modificação dos Algoritmos. As linguagens de programação são softwares que permitem
transformar um Algoritmo em um programa de computador.
Aprender uma nova linguagem de programação é
9RF¬M£KDYLDSHQVDGRVREUHDVUD]·HVHDLPSRUW¤QFLDGHVHGHVHQYROYHU
uma tarefa fácil quando se tem um bom conhecimento
Algoritmos estruturados?
de Algoritmos, pois o maior problema na criação de um
programa não é a linguagem em si, mas sim as dificuldades na
O grande desafio da escrita de programas é reduzir a percepção do problema e na formulação de uma boa solução.
complexidade. Muitos programas são escritos de uma forma Existem linguagens para os mais diversos domínios
tão complicada que até o próprio autor tem dificuldade de aplicação, cada uma com seus propósitos. Algumas são
de interpretá-los depois. Para reduzir a complexidade dos destinadas ao desenvolvimento de aplicações comerciais,
Algoritmos deve-se: outras têm propósito científico, aplicações em inteligência
a) Escrever o Algoritmo fazendo refinamentos sucessivos. artificial ou na criação de programas para internet.
Isso é chamado de desenvolvimento top-down – essa técnica
consiste em ir escrevendo as funções principais do programa e
depois detalhar cada uma delas em funções menores, até que se Toda e qualquer linguagem é constituída por signos. Signos são
tenha um último nível que não é mais possível detalhar. LPDJHQV JHVWRV VRQV PHOµGLFRV H RXWURV VLVWHPDV GH VLJQLȴFD©¥R
b) Decompor o Algoritmo todo em módulos funcionais. 2VVLJQRVQ¥RW¬PVLJQLȴFDGRSRUVLPHVPRVPDVUHFHEHPVHQWLGRV
É mais fácil compreender uma solução se a analisarmos por convencionados e, assim, passam a ser usados na comunicação, seja
partes, ao invés de olharmos a solução como um todo. A esse linguística, seja de programação. A ciência que estuda os signos é a
processo chamamos de modularização. Semiologia (BARTHES, 2006).
c) Usar soluções simples e não muito extensas em cada um
dos módulos, com poucas estruturas de controle para facilitar
o entendimento.
As linguagens de programação podem ser dos seguintes
Vamos, agora, observar em mais detalhes como utilizar tipos: interpretadas, compiladas ou híbridas.
cada uma das técnicas citadas.
2.1 - Linguagens interpretadas
1.2 - Principais Técnicas de
Estruturação dos Algoritmos Nas linguagens interpretadas, o interpretador lê, analisa
e executa cada instrução do programa fonte, sem traduzir
As três principais técnicas para a estruturação dos para uma linguagem de máquina. Cada linha ou instrução
Algoritmos são: é executada na sequência. Quando um erro é encontrado, a
a) Desenvolvimento top-down: depois que entendemos o execução do programa é interrompida.
problema a ser solucionado, precisamos formular alternativas O interpretador simula por software uma máquina
de solução. Para isso, formulamos uma possível solução, a qual virtual, na qual o ciclo de execução entende os comandos da
precisa ser refinada, ou seja, detalhada em partes menores até linguagem de alto nível.
que se tenha uma visão de todos os detalhes. Note que esse tipo de linguagem oferece algumas
b) Modularização: a modularização consiste em dividir desvantagens, como a necessidade da presença do código fonte
a solução do problema em partes, ou módulos, cada um para a execução do programa. Além disso, o interpretador da
com funções bem definidas, dando maior agilidade ao linguagem precisa estar instalado no computador onde está o
desenvolvimento. programa.
c) Estruturas de controle: o uso de estruturas de controle A execução do programa é bem mais lenta do que nas
adequadas afeta diretamente a qualidade do Algoritmo. Muitos linguagens compiladas, uma vez que o interpretador precisa
programadores têm o costume de usar comandos de desvio analisar as instruções do programa sempre que vai executá-las.
198 Algoritmo e Programação 12
Vamos visualizar como funcionam as linguagens interpretadas na [...] Que uma linguagem híbrida “tem maior portabilidade que uma
Figura 2.1. linguagem compilada”? (UFSCAR, 2011)
Retirar a lâmpada
Fechar o drive de DVD
velha Vale a pena
Minhas DQRWD©·HV
201
Aula 3º
Linguagem algorítmica
Objetivos de aprendizagem
FRQFHLWXDURWHUPROLQJXDJHP$OJRUtWPLFDHVXDIXQomRHWHUPRVFRUUHODFLRQDGRVWDLVFRPR3RUWXJROGDGRVRSHUDGRUHV
HFRQVWDQWHV
DSOLFDUDOLQJXDJHP$OJRUtWPLFDQDSURJUDPDomR
GHVHQYROYHUHRXDPSOLDUDFDSDFLGDGHGHSHUFHSomRHGHXWLOL]DomRGDOLQJXDJHPDOJRUtWPLFD
202 Algoritmo e Programação 16
problemas do Algoritmo pode ser uma tarefa extensa e difícil.
Seções de estudo Já a programação em uma linguagem algorítmica é uma
simples transcrição de palavras-chave, o que torna o processo
bem mais fácil: uma vez predefinidas as sequências lógicas
1 - Portugol
das tarefas ou instruções a serem realizadas passo a passo,
2 - Tipos de dados
necessita-se apenas traduzi-las em uma linguagem própria que
3 - Operadores
o computador reconheça para, então, submetê-las à máquina
4 - Constantes
para análise e obter o seu resultado.
5 - Palavras Reservadas
A vantagem dos Algoritmos, portanto, não está no fato de
eliminar a adoção de regras comuns na programação, mas no
1 - Portugol fato de o usuário ter a possibilidade de escrever seu programa
em português, o que dará ao programador maior facilidade
Vamos começar nossos estudos, conhecendo o “Portugol”. Ele é para compreender e assimilar a lógica do programa, ao mesmo
indispensável para quem pretende dominar a lógica de programação, tempo em que exigirá o cumprimento de regras obrigatórias
o princípio de construção de Algoritmos, além de desenvolver boas para confecção dos Algoritmos.
SU£WLFDVGHSURJUDPD©¥R%RQVHVWXGRV
9RF¬SHUFHEHXFRPRR3RUWXJROSRGHIDFLOLWDURFRWLGLDQRSURȴVVLRQDO
Para entender o que é o Portugol, é preciso responder a do analista em desenvolvimento de sistemas? Assim, é importante
uma questão: o que é linguagem Algorítmica? que continue buscando conhecimentos sobre esse tema... Para tanto,
Uma linguagem algorítmica é uma pseudolinguagem VXJHULPRVTXHFRQVXOWHDVREUDVSHULµGLFRVHVLWHVLQGLFDGRVDRȴQDO
de programação, que utiliza comandos e instruções em desta Aula.
Português para representar as ações dos Algoritmos. A essa
pseudolinguagem damos o nome de Portugol, também Na Seção seguinte vamos avançar em nossa aprendizagem
conhecida como Português Estruturado. estudando os tipos de dados!
A necessidade de facilitar o trabalho dos profissionais
de informática no computador é constante e uma das formas 2 - Tipos de dados
para se conseguir esse objetivo é fazer com que o computador
seja, cada vez mais, capaz de compreender a linguagem escrita
9RF¬ VDELD TXH RV ȊWLSRV GH GDGRV LQȵXHQFLDP QD IRUPD FRPR R
ou falada, reduzindo ao máximo a quantidade de códigos e
Algoritmo irá trabalhar, o desempenho do Algoritmo e o seu consumo
símbolos que precisam ser aprendidos e memorizados.
de memória”? (EXPERT.NET, 2011).
booleano. Exemplos:
O dado lógico também é denominado booleano por ter sido Quadro 3.2([HPSORVGHRSHUDGRUHVDULWP«WLFRV
desenvolvido na álgebra de George Boole. Este teórico teve uma 2+3 5
formação inicial rudimentar. Contudo, foi autodidata. Aos 20 anos,
7*4 28
fundou “sua própria escola e dedicou-se ao estudo da Matemática.
Em 1840 publicou o seu primeiro trabalho original e em 1844 foi 5/2 2.5 o quociente de uma divisão real
condecorado com a medalha de ouro da Royal Society pelo seu trabalho 5\2 2 o quociente de uma divisão inteira
sobre cálculo de operadores. Em 1847 publicou um volume sob o título 5 MOD 2 1 o resto de uma divisão inteira
The mathematical analysis of logic em que introduziu os conceitos de
Fonte: acervo pessoal.
lógica simbólica demonstrando que a lógica podia ser representada por
HTXD©·HVDOJ«EULFDV(VWHWUDEDOKRIRLIXQGDPHQWDOSDUDDFRQVWUX©¥RH 3.2 - Operadores relacionais
programação dos computadores eletrônicos iniciada cerca de 100 anos
mais tarde” (BRASIL ESCOLA, 2011). Um operador relacional existe para estabelecer uma
relação entre dois elementos.
Com isso o resultado da comparação na expressão será
Os dados lógicos também são representados da seguinte
sempre falso -.f. ou Verdadeiro –.v. Conheça esses operadores:
forma: Verdadeiro - .v. – Falso - .f.
O dado lógico em Portugol é representado pelo comando Quadro 3.3 - Operadores relacionais
“lógico”.
Igual a =
3 - Operadores Menor que <
Maior que >
Ȋ2SHUDGRUHV V¥R VLQDLV TXH V¥R DOLPHQWDGRV SRU H[SUHVV·HV H TXH Maior ou igual a >=
retornam um valor de acordo com a operação realizada” (NOBIOS, Menor ou igual a <=
2011). Desigualdade (diferente de) <>
Fonte: acervo pessoal.
Vamos entender mais claramente: os operadores possuem
uma sequência na qual as expressões são avaliadas e resolvidas. Se 3.3 - Operadores lógicos
dois operadores de uma mesma expressão possuírem o mesmo
nível de precedência, a expressão será avaliada da esquerda para a Os operadores lógicos permitem estender o uso dos
direita. As expressões contidas entre parênteses serão resolvidas operadores relacionais, permitindo, desse modo, composições
em primeiro lugar, a começar pelos parênteses mais internos. lógicas mais sofisticadas nas expressões. Observe-os:
A ordem de precedência é a seguinte:
1º - Expressões dentro de parênteses e funções. Quadro 3.4 - Operadores lógicos
2º - Operador unário menos ou negação. E - AND $H[SUHVV¥R ( «YHUGDGHLUDVHWRGDVDVFRQGL©·HV
3º - Operadores aritméticos multiplicativos: *, /. ^ para conjunção forem verdadeiras.
4º - Operadores aritméticos aditivos: +, -.
OU - OR $ H[SUHVV¥R 28 « YHUGDGHLUD VH SHOR PHQRV
5º - Operadores relacionais: =, <>, <, >, <=, >=.
v para disjunção uma condição for verdadeira.
6º - Operadores lógicos: e, ou, não.
NÃO - NOT $H[SUHVV¥R 1 2 LQYHUWHRYDORUGDH[SUHVV¥R
Possuímos três tipos de operadores: os aritméticos, ¬ para negação ou condição, se verdadeira inverte para falsa e
relacionais e lógicos, os quais vamos compreender em detalhes, vice-versa
nos tópicos a seguir. Fonte: acervo pessoal.
204 Algoritmo e Programação 18
Como você pôde deduzir partindo da leitura do Quadro a) Exemplo 01 (constantes numéricas): podem ser
3.1, a conjunção de duas proposições é verdadeira se e representadas por um número inteiro ou real, positivo, negativo
somente se ambas as proposições são verdadeiras. ou nulo (32, 3, 1415, -54, 0342).
b) Exemplo 02 (constantes lógicas): podem ser lógicas
8ID ΖVVR SDUHFH FRPSOLFDGR PDV QR 4XDGUR HVW£ WXGR assumindo um dos seguintes valores: Verdadeiro (V) ou Falso
H[HPSOLȴFDGR9HMDP (F).
c) Exemplo 03 (constantes caractere [literal]): são
valores do tipo caractere, ou seja, qualquer sequência de
Quadro 3.5&RQMXQ©¥RGHGXDVSURSRVL©·HV
caracteres (letras, dígitos ou símbolos especiais). A constante
p q p^q literal deve sempre aparecer entre aspas (“Castro Alves”,
V V V “X1Y2W3”, “*A!B?-/”, “1234”).
V F F
F V F
Compreenderam?
8PD FRQVWDQWH « XP YDORU TXH Q¥R VH PRGLȴFD QR GHFRUUHU GR
F F F
$OJRULWPR 3RGH VHU H[SUHVVD SRU ȊQ¼PHURV YDORUHV OµJLFRV OHWUDV
Fonte: acervo pessoal. palavras e frases” (ICMC-USP, 2011).
Neste contexto:
a) p ^ q = F.
b) p ^ r = F. 5 - Palavras reservadas
c) q ^ r = F. O que lhe vem à mente quando lê o termo: “palavras
reservadas”?
Já a disjunção de duas proposições é verdadeira se e
As palavras reservadas são nomes utilizados pelo
somente se, pelo menos, uma delas for verdadeira. Veja:
Algoritmo que tem um sentido predeterminado. Portanto, não
Quadro 3.6'LVMXQ©¥RGHGXDVSURSRVL©·HV podem ser redefinidas pelo usuário como identificadores ou
utilizados de outra forma senão para a que foram criadas.
p q pvq Vamos identificar algumas delas:
V V V
V F V
Quadro 3.8 - Palavras reservadas
F V V se de até
F F F então declare escreva
Fonte: acervo pessoal. senão ȴPDOJRULWPR procedimento
Para o exemplo anterior: enquanto ȴPVH função
a) p v q = V. faça ȴPHQTXDQWR início
b) p v r = V. repita ȴPSDUD ȴP
c) q v r = F.
até que para inteiro
Finalmente, a negação pode ser formada inserindo-se a real caractere ou literal lógico
palavra não antes da proposição. Assim: Fonte: acervo pessoal.
Quadro 3.7 - Negação em uma proposição. Em sites de busca você pode localizar a lista de palavras
reservadas das diferentes linguagens de programação, tais
p ¬p como: Pascal, Java, C, C++, MySQL, Acess, etc. Desse modo,
V F sugerimos que realize pesquisas utilizando o termo “palavras
F V reservadas” como palavra-chave. Nessa ocasião, procure
Fonte: acervo pessoal.
verificar a consistência dos sites pesquisados e das informações
neles disponibilizadas, antes de considerá-las como verdadeiras.
No decorrer desta e das demais Aulas da disciplina, você terá a Lembre-se de que uma simples pesquisa realizada de forma crítica
oportunidade de entender melhor o uso dos operadores aritméticos. pode ser uma ótima ferramenta de aprendizagem e trabalho!
Porém, para que isso aconteça é necessário ser persistente e estudar
constantemente sobre esse tema. Pense nisso... Retomando a aula
4 - Constantes
Constante é um identificador que armazena um valor fixo, Vamos recordar:
ou seja, um valor não se modifica no decorrer do Algoritmo.
As constantes podem ser dos tipos: numérica, lógica ou 1 - Portugol
caractere (literal). Para entendê-las, vamos conhecer alguns
exemplos: Na primeira Seção construímos conhecimentos sobre
19 205
o Portugol (Português Estruturado). Vimos que ele é uma
pseudolinguagem de programação que utiliza comandos htm>. Acesso em: 28 jun. 2011.
e instruções em Português para representar as ações dos ICMC-USP. Algoritmos. Disponível em: <http://www.
Algoritmos. icmc.usp.br/~sce180/sce180-2/Aulas/Algoritmos.pdf>.
Acesso em: 28 jun. 2011.
2 - Tipos de dados e 3 - Operadores NOBIOS. Operadores aritméticos, relacionais, lógicos
Em prosseguimento, reconhecemos e compreendemos os e de atribuição. Disponível em: <http://everson.com.
dados numéricos (inteiros e real), caracteres (valores alfabéticos br/Operadores-Aritmeticos-Relacionais-Logicos-de-
ou alfanuméricos) e lógicos (valores verdadeiros ou falsos), Atribuicao>. Acesso em: 28 jun. 2011.
bem como os operadores aritméticos, relacionais e lógicos, os SIEBRA, S. A. Introdução à programação. Disponível
quais podem ser fornecidos para possibilitar a formação de em: <http://pt.scribd.com/doc/50982387/4/Unidade-2-
vários tipos de expressões. %E2%80%93-Linguagem-Algoritmica>. Acesso em: 28
jun. 2011.
4 - Constantes e 5 - Palavras Reservadas
Vale a pena
4º Aula
Gramática do portugol
Objetivos de aprendizagem
GHILQLULQWURGX]LUHFRQFHLWXDURWHUPR´*UDPiWLFDGH3RUWXJROµ
UHFRQKHFHUDLPSRUWkQFLDGD*UDPiWLFDGH3RUWXJRO
DSOLFDURVFRPDQGRVEiVLFRVGD*UDPiWLFDGH3RUWXJROQDSURJUDPDomR
21 207
estabelecida por vários autores em iniciação de Algoritmos.
Seções de estudo É válido salientar que essa sintaxe pode variar, todavia,
o padrão estabelecido por nós no decorrer deste curso será o
que utiliza o programa “VisuAlg” (que é um interpretador de
1 - Definição e sintaxe geral de um algoritmo Algoritmos). Com isso, poderemos testar todos os Algoritmos
2 - Variáveis (e constantes) da gramática do portugol exemplificados, tornando bem prático o entendimento do
3 - Comandos básicos Algoritmo e seu funcionamento.
Segue a sintaxe:
1 'HȴQL©¥R H VLQWD[H JHUDO GH XP algoritmo “Nome do Programa”
algoritmo. var9DULiYHLVȺ'HFODUDomRGHYDULiYHLVGR$OJRULWPR
<variável01>: <tipo1>
<variável02>: <tipo2>
9DPRVLQLFLDUQRVVDVUHȵH[·HVVREUH*UDP£WLFDGR3RUWXJRODSUHQGHQGR // Corpo do Algoritmo à Isto indica um comentário
VHXFRQFHLWRLPSRUW¤QFLDHDSOLFD©·HVQRFRQWH[WRGDSURJUDPD©¥R inicio //inicio sem acentuação, pois o VisuAlg não
6XJHULPRV TXH GXUDQWH D OHLWXUD GHVWD H GDV GHPDLV 6H©·HV GD $XOD //suporta acentuação
DQRWH VXDV LQGDJD©·HV V¯QWHVHV H UHȵH[·HV (VVH K£ELWR DO«P <comando1>
de contribuir para organização de seus estudos, ajudará a manter <comando2>
um registro de toda a sua trajetória acadêmica, percebendo com <comando3>
PDLV FODUH]D HYHQWXDLV GLȴFXOGDGHV SDUD VDQ£ODV H DYDQ©RV SDUD fimalgoritmo
comemorá-los).
E aí, você já conseguiu formar uma ideia sobre o que
%RQVHVWXGRV
vem a ser a sintaxe geral de um algoritmo? Em caso de
resposta negativa, não se preocupe: nosso estudo está apenas
Para entender a Gramática do Portugal, vamos conceituar começando e com os conteúdos das próximas Seções será
alguns termos importantes relacionados a ela! mais fácil compreendê-la. Além disso, você pode ampliar
Leland L. Beck afirma que “a gramática de uma seus conhecimentos, consultando as obras, periódicos e sites
linguagem de programação é uma descrição formal da indicados ao final desta Aula. Seja persistente! Passemos,
sintaxe, ou forma, dos programas e instruções individuais agora, para o estudo da Seção sobre as Variáveis!
escritas nessa linguagem” (BECK, 1997, grifo nosso).
Nesse contexto, Gilvan Vilarim defende que: 2 - Variáveis (e constantes) da
A Sintaxe é o nome dado ao conjunto de regras
gramática do portugol
a serem seguidas para a escrita dos Algoritmos.
Variáveis também são identificadores que armazenam
Do mesmo modo que em nossa língua,
precisamos seguir algumas regras para escrita,
valores, porém, ao contrário das constantes, o valor de uma
uniformizando os Algoritmos e facilitando variável pode mudar dentro do Algoritmo.
VXD SRVWHULRU FRGLÀFDomR HP SURJUDPDV FDVR As variáveis, assim como as constantes, podem ser dos
seja necessário. Já a semântica refere-se ao tipos: numérica (inteiro ou real), lógica ou literal.
que é efetuado pelo computador quando ele Observe que o conceito de variável talvez seja o mais
encontra um comando. “Portanto, se a sintaxe importante na confecção de um Algoritmo, uma vez que um
está relacionada à forma de um comando, a Algoritmo utiliza, quase sempre, uma declaração de variável.
semântica está relacionada ao seu conteúdo” Além disso, por definição, tudo aquilo que é sujeito
(VILARIM, 2004, grifo nosso). a variações, que é incerto, instável ou inconstante, em um
programa de computador são os dados a serem processados.
Reconhecendo a definição da gramática de uma linguagem
de programação, da sintaxe e da semântica, é preciso lembrar 2.1 - Nomeando constantes e
que, como você já estudou na Aula 3, o Portugol (Português variáveis
Estruturado) é constituído de letras maiúsculas e minúsculas
(“A” - “Z”, “a” - “z”), caractere sublinhado (“_”), os dígitos de Os nomes de constantes e variáveis (identificadores)
DHRVVtPERORVHVSHFLDLV ! ^`· são nomes simbólicos para os objetos referenciados nos
Algoritmos. Esses nomes são escolhidos pelo usuário para
representar endereços de memória onde vão ser alocadas as
$*UDP£WLFDGR3RUWXJROFRPVXDVLQWD[HHVHP¤QWLFD«UHSUHVHQWDGD informações.
SRU ȊXP FRQMXQWR GH SDODYUDV LQVWUX©·HV OLPLWDGDV H UHFRQKHFLGDV O nome da variável, por exemplo, é utilizado para sua
FRPR FRPDQGRV TXH WHP UHJUDV ȴ[DV H Q¥R FRQȵLWDQWHV GH XVR R identificação e representação dentro de um programa de
TXHVLJQLȴFDTXHXPDLQVWUX©¥RWHPDSHQDVXPVLJQLȴFDGRSDUDXP computador, sendo os identificadores formados por um ou
compilador [...]” (INFORMÁTICA EDUCATIVA, 2011). mais caracteres, os quais devem seguir algumas regras:
1) começar sempre por um caractere alfabético ou o
CONCEITO VtPEROR´Bµ VXEOLQKDGR
Para conceituar a sintaxe geral de um Algoritmo, veja VHUFRQVWLWXtGRVGHFDUDFWHUHVDOIDEpWLFRVRXQXPpULFRV
o exemplo a seguir. Nele, utilizamos uma sintaxe padrão 3) não podem conter caracteres especiais, como por
208 Algoritmo e Programação 22
H[HPSOR ! ^`·
4) não podem ter o mesmo nome que comandos
var ΖGHQWLȴFDGRU inteiro
ou palavras reservadas do Algoritmo ou da linguagem de
programação que será usada.
real
3DUD HQWHQGHU PHOKRU YHMDPRV FRPR DFRQWHFH D GHȴQL©¥R GH XP caractere
LGHQWLȴFDGRUQD)LJXUD
lógico
)LJXUD'LDJUDPDGDGHȴQL©¥RGHXPDYDUL£YHO
Fonte: acervo pessoal.
Letra
Exemplo:
Letra algoritmo “Exemplo”
var
Dígito VARIÁVEL_1, VARIÁVEL_2: inteiro
VARIÁVEL_3, VARIÁVEL_4: real
inicio
Sublinhado leia (VARIÁVEL_1, VARIÁVEL_2)
leia (VARIÁVEL_3, VARIÁVEL_4)
Figura 4.1 Palavras reservadas.
fimalgoritmo
Fonte: acervo pessoal.
2.2 - Declaração de Variáveis Que “variáveis não podem ter caracteres especiais? Portanto,
LGHQWLȴFDGRUHV QRPHV GH YDUL£YHLV IXQ©·HV H GR $OJRULWPR Q¥R
As variáveis devem ser declaradas logo no início do SRGHPWHUDFHQWRVRXFDUDFWHUHVHVSHFLDLVFRPRHWF$GHȴQL©¥R
Algoritmo (ou no início do procedimento ou função como GH XP LGHQWLȴFDGRU HP *3RUWXJRO « HTXLYDOHQWH DR GDV OLQJXDJHQV
veremos mais adiante). A declaração de variáveis deve iniciar populares: uma letra (a-z ou A-Z) seguido de qualquer número de letras
pela palavra reservada “Var” e segue a sintaxe apresentada na ou número” (GPT.BERLIOS, 2011).
figura a seguir:
3 - Comandos básicos
8ID
ΖVVRSDUHFHFRPSOLFDGRPDVQDȴJXUDDVHJXLUHVW£WXGRH[SOLFDGLQKR CONCEITO
Vejam. Os comandos especificam as ações a serem realizadas
pelo computador, como comparações e atribuições. Eles se
23 209
constituem por expressões, palavras-chave e operadores.
Para interpretar o Portugol, podemos imaginá-lo como a estrutura de
3.1 - Atribuição uma árvore (estrutura de dados) que estabelece a sequência em que o
Para atribuirmos um valor a uma variável usaremos o $OJRULWPRGHYHVHUH[HFXWDGR
símbolo de atribuição . Sua sintaxe é apresentada na figura a
Ⱥ
seguir: Comando Leia
Esse comando permite que o usuário informe dados de
entrada para o Algoritmo. A sintaxe desse comando é definida
ΖGHQWLȴFDGRU ([SUHVV¥R na figura a seguir:
Ⱥ
)LJXUD'LDJUDPDGDDWULEXL©¥RGHYDORUHVDLGHQWLȴFDGRUHV ,
Fonte: acervo pessoal.
leia ΖGHQWLȴFDGRU
Exemplo: VALOR (TOTAL1+TOTAL2) * (A/B)
Ⱥ
3 - Comandos Básicos
Vale a pena
%(5*$OH[DQGUH),*8(,5Ð-RLFH3DYHNLógica de
programação. 3 ed. Canoas: Ulbra, 2006.
SAID, Ricardo. Curso de lógica de programação. São Paulo:
Universo dos livros, 2007.
213
Aula 5º
Estruturas condicionais
Objetivos de aprendizagem
GHILQLU(VWUXWXUDV&RQGLFLRQDLVUHFRQKHFHUVXDLPSRUWkQFLDHDSOLFiODQDFRQVWUXomRGHDOJRULWPRV
FRQFHLWXDUHLQWURGX]LURWHUPR(VWUXWXUDV&RQGLFLRQDLV
GHVHQYROYHUHRXDPSOLDUDFDSDFLGDGHGHSHUFHSomRGDFRQGLomRGDHVWUXWXUDHXWLOL]iOD
214 Algoritmo e Programação 28
Exemplo 10 – Ler quatro valores referentes a quatro
Seções de estudo notas escolares de um aluno e imprimir a média da nota do
aluno. Se a média for maior que 7 escreva a média e a frase
“aluno aprovado”.
1 - Estruturas condicionais
algoritmo “Média”
var
1 - Estruturas condicionais media, P1, P2, P3, P4: real
Até o presente momento, utilizamos as estruturas de inicio
processamento de entrada e saída que compõem os Algoritmos leia (P1)
puramente sequenciais. Isso quer dizer que aprendemos a leia (P2)
utilizar as variáveis, as constantes e os operadores aritméticos. leia (P3)
Se utilizarmos como referência o exemplo do cálculo leia (P4)
da média dos alunos, é possível perceber que foram usados media < - (P1 + P2 + P3 + P4) / 4
apenas as entradas simples das notas e o cálculo da média. se (media >= 7) entao
Desse modo, será necessária a aplicação de novas estruturas, escreva (media,“Aluno Aprovado”)
se desejarmos que o Algoritmo também nos apresente uma fimse
mensagem dizendo “se” o aluno foi aprovado ou reprovado, fimalgoritmo
no caso de sua nota ter sido maior ou igual a 7. Em outras
palavras, são necessárias as estruturas condicionais. Veja como fica com o teste de mesa:
fimse
Para exemplificar a vantagem oferecida por esta estrutura,
fimalgoritmo
imagine a seguinte situação: você deseja criar um algoritmo para
uma calculadora, o usuário digita o primeiro número, a operação
Compreenderam? que deseja executar e o segundo número. Dependendo do que
Condição: comparação que somente possui dois valores possíveis o usuário informar como operador, o algoritmo executará um
(verdadeiro ou falso); cálculo diferente (soma, subtração, multiplicação ou divisão).
8WLOL]DDVSDODYUDVFKDYH HQW¥RVHQ¥RȴPVH Vejamos como seria esse algoritmo implementado com o
Simples, vocês não acham? desvio condicional SE......ENTÃO......SENÃO.
algoritmo “Calculadora1”
var
1.4 - Estrutura de seleção múltipla numero1: real
(Escolha......caso) numero2: real
O uso desta estrutura proporciona uma solução elegante operacao: caractere
quanto se tem vários desvios condicionais (SE......ENTÃO...... resultado: real
SENÃO) encadeados. Ou seja, quando outras verificações são inicio
realizadas caso a anterior tenha falhado (ou seja, o fluxo do escreva (“Digite o primeiro número: “)
algoritmo entrou no bloco SENÃO). A proposta da estrutura leia (numero1)
ESCOLHA......CASO é permitir ir direto ao bloco de código escreva (“Digite a operação: “)
desejado, dependendo do valor de uma variável de verificação. leia (operacao)
Porém, esta estrutura só pode ser usada em situações onde a escreva (“Digite o segundo número: “)
verificação é feita apenas com valores fixos e não em um intervalo. leia (numero2)
se operacao = “+” entao
Sintaxe: resultado < - numero1 + numero2
senao
escolha <variável de verificação> se operacao = “-” entao
caso <valor1> resultado < - numero1 - numero2
<comando1> senao
<comando2> se (operacao = “*”) entao
...... resultado < - numero1 * numero2
<comando n> senao
caso <valor2> se operacao = “/” entao
<comando1> resultado < - numero1 / numero2
<comando2> fimse
...... fimse
<comandon> fimse
caso <valor3> fimse
<comando1> escreva (“Resultado: “, resultado)
<comando2> fimalgoritmo
......
<comandon> Observe como o desvio condicional encadeado deixa o
outrocaso código mais complexo. É possível a compreensão da lógica,
218 Algoritmo e Programação 32
porém não é muito elegante. Agora vamos ver como ficaria a
mesma lógica com a estrutura ESCOLHA......CASO.
&DVR YRF¬ WHQKD ȴFDGR FRP G¼YLGDV VREUH D $XOD DFHVVH DV
algoritmo “Calculadora2”
ferramentas “fórum”, “quadro de avisos” ou “chat” e interaja com seus
var
colegas de curso e com seu professor. Lembre-se de que você faz
numero1: real
parte de uma comunidade colaborativa de conhecimento... Portanto,
numero2 : real
HVWDUHPRVHVSHUDQGRVXDSDUWLFLSD©¥R
operacao : caracter
resultado : real
inicio
escreva (“Digite o primeiro número: “) Vale a pena
leia (numero1)
escreva (“Digite a operação: “)
leia (operacao)
escreva (“Digite o segundo número: “)
Vale a pena ler
leia (numero2)
escolha operacao DEITEL, H. M. C++: como programar. Tradução de
caso “+” Carlos Arthur Lang Lisboa e Maria Lúcia Lang Lisboa. 3. ed.
resultado < - numero1 + numero2 Porto Alegre: Bookman, 2001.
caso “-” SENNE, Edson Luiz França. Primeiro Curso de
resultado < - numero1 - numero2 Programação em C. 2. ed. Florianópolis: Visual Books, 2006.
caso “*”
resultado < - numero1 * numero2
caso “/”
resultado < - numero1 / numero2
outrocaso
escreva(“Operação digitada inválida!”)
Vale a pena acessar
fimescolha
escreval (“Resultado: “, resultado) SOUZA, E. Estruturas condicionais. Disponível em:
fimalgoritmo <http://blog.ericksouza.com/31/>. Acesso em: 28 jun.
2011.
UFERSA - Universidade Federal Rural do Semi-Árido.
Informática aplicada – aula 6. Disponível em: <http://www2.
ufersa.edu.br/portal/view/uploads/setores/164/arquivos/
Retomando a aula InformaticaAplicada/Aula06_sequencial_apresentacao_1.
pdf>. Acesso em: 28 jun. 2011.
WIKILIVROS. Estrutura condicional. Disponível
em: <http://pt.wikibooks.org/wiki/Pascal/Estrutura_
Condicional>. Acesso em: 28 jun. 2011.
6º Aula
Estruturas de repetição
Objetivos de aprendizagem
FRQFHLWXDUHLGHQWLILFDUDV´(VWUXWXUDVGH5HSHWLomRµ
UHFRQKHFHUDLPSRUWkQFLDGDV(VWUXWXUDVGH5HSHWLomR
GHVHQYROYHUHRXDPSOLDUDFDSDFLGDGHGHSHUFHSomRGHXPSUREOHPDHXWLOL]DURVFRQKHFLPHQWRVFRQVWUXtGRVQDFULDomR
de Algoritmos.
35 221
1.3 - Repetição condicional -
Seções de estudo Enquanto......faça
A estrutura ENQUANTO......FAÇA executa uma
1 - Estruturas de repetição
sequência de comandos repetidas vezes, enquanto uma
determinada condição permanece válida (verdadeira).
1 - Estruturas de repetição Para tanto, a referida estrutura faz o teste da condição
DQWHVGHLQLFLDUDUHSHWLomRVHRSULPHLURWHVWHIDOKDUREORFR
de instruções de comandos no seu interior não é executado
9DPRV LQLFLDU QRVVDV UHȵH[·HV HVWUXWXUDV GH UHSHWL©¥R SURFXUDQGR
nenhuma vez e a execução prossegue normalmente pela
compreender brevemente o seu conceito e tipologia.
instrução seguinte ao Fimenquanto.
Para facilitar sua aprendizagem lembre-se de estabelecer intervalos
Nesse contexto, se a condição for verdadeira o comando
periódicos (de no mínimo 10 minutos) em meio aos seus estudos, uma
composto é executado e ao seu término retorna-se ao teste
vez que estudar muitas horas seguidas pode diminuir seu nível de
da condição. Assim, o processo acima será repetido enquanto
atenção e seu ânimo. Aprender é muito bom, você não acha?
a condição testada for verdadeira. Quando esta for falsa, o
(QW¥RRUJDQL]HVHHERQVHVWXGRV
fluxo de execução prosseguirá normalmente pelas instruções
posteriores ao Fimenquanto.
Em alguns casos é necessário repetir uma parte do Sintaxe:
Algoritmo um determinado número de vezes. Para tanto, enquanto <condição> faça
estão disponíveis as estruturas de repetição, que realizam o <comando1>
processamento de um determinado trecho tantas vezes quantas <comando2>
forem necessárias. Essa repetição também pode ser chamada .....
de laço ou loop. <comandon>
As estruturas de repetição podem ser divididas em duas: fimenquanto
a) Loops contados: quando se conhece previamente
quantas vezes o comando composto no interior da construção Note que uma vez dentro do corpo do laço, a execução
será executado. somente o abandonará quando a condição for falsa. O usuário
b) Loops condicionais: quando não se conhece de desse tipo de construção deve estar atento à necessidade de que
antemão o número de vezes que o conjunto de comandos no em algum momento a condição deverá ser avaliada como falsa.
interior do laço será repetido, pelo fato dele estar amarrado a Caso contrário, o programa permanecerá indefinidamente
uma condição sujeita à modificação pelas instruções do interior no interior do laço, o que é conhecido como laço infinito.
do laço. Confira a Figura 6.1:
Comando "C"
Quando uma variável é contadora ela tem por característica
armazenar dentro de si um número referente a certa quantidade
de elementos ou iterações.
Exemplo 19: Mostrar a soma dos números pares inteiros E aí, você já entendeu amplamente o que é Estrutura de Repetição, suas
positivos menores que 100. YDUL£YHLVHUHSHWL©·HVFRQGLFLRQDLVHVWXGDGDVDW«DTXL"(PFDVRGHXPD
algoritmo “InteiroPositivo” resposta negativa: não se preocupe, ainda temos outros conteúdos
var TXHQRVDMXGDU¥RDFODUHDUDVLGHLDV6HMDSHUVLVWHQWH$JRUDVHVXD
SOMA, NUMERO: inteiro UHVSRVWDIRUDȴUPDWLYD3DUDE«QV&RQWXGRSDUDDPEDVDVUHVSRVWDV«
inicio válido lembrar que há inúmeros outros conhecimentos para construir
NUMERO <- 2 // inicia a variável contadora sobre o tema... Para tanto, sugerimos que consulte as obras, periódicos
SOMA <- 0 HVLWHVLQGLFDGRVDRȴQDOGHVWD$XOD9HMDPRVDJRUDRXWUD
enquanto NUMERO < 100 faca
SOMA <- SOMA + NUMERO // expressão
//soma=0+2
1.4 - Repetição Condicional - repita...
NUMERO < - NUMERO + 2 // variável
até que
//acumuladora numero=2+2 A estrutura “Repita” executa um bloco de comandos até
fimenquanto que uma condição seja verdadeira. Isso significa dizer que ela
escreva (“A soma dos números pares inteiros é:”, executa os comandos enquanto a condição for falsa. Quando
SOMA) essa condição passar a ser verdadeira, a repetição se encerrará.
fimalgoritmo Vale salientar que os comandos dentro do bloco dessa
Exemplo 20: Segue um Algoritmo que escreve 10 vezes estrutura serão executados pelo menos uma vez. Quando a
a frase “FLAMENGO”. Confira: condição é encontrada, ela será testada. Se for verdadeira passa
algoritmo “Repetição” o controle para o comando imediatamente abaixo da instrução
var “Até que”. Se a condição for falsa, os comandos do bloco
I : inteiro são novamente executados, até que se tenha uma condição
inicio verdadeira.
I <- 1 // Inicia a variável contador = 1 Sintaxe:
enquanto I <= 10 faca repita
escreval (“FLAMENGO”) // Escreval – irá <comando1>
//pular uma linha <comando2>
I<- I + 1 // variável acumuladora = I=1+1 .....
ILPHQTXDQWR <comandon>
fimalgoritmo ate <condição>
Exemplo 22: Faça um Algoritmo que escreva os números
Exemplo 21: Faça um Algoritmo que leia um número inteiros positivos menores que 100.
inteiro positivo e apresente o resultado de sua tabuada de um
a dez (1 a 10). algoritmo “Repita ate”
var
Supondo que o valor desejado seja 2, então: NUMERO: inteiro
37 223
inicio algoritmo “Tabuada’
NUMERO < - 0 // inicia o contador em 0 var
repita valor, contador: inteiro
escreval (NUMERO) // Escreval – irá pular inicio
//uma linha na execução do Algoritmo escreva (“Entre com o Valor:”)
NUMERO < - NUMERO + 1 // variável leia (valor)
//acumuladora contador < - 1 // Inicia a variável contador = 1
ate NUMERO >= 100 repita
fimalgoritmo escreval (valor, “ x “,contador,” = “, (valor * contador))
contador < - Contador +1 // variável acumuladora
Notem que a variável número foi utilizada também como ate contador >= 11
contadora, ela irá controlar o número de vezes que o trecho do fimalgoritmo
programa deve ser executado. Nesse exemplo ela foi iniciada
com zero. Diferente do enquanto, quando chegarmos à linha
de execução do repita automaticamente, ele entrará no loop, Você sabia que as estruturas de repetição condicionais podem ser
não testando a condição, logo escreve “0”, em seguida realiza o FODVVLȴFDGDV HP SU«WHVWH H SµVWHVWH" Ȋ$ HVWUXWXUD GH UHSHWL©¥R
incremento da variável (NÚMERO=0+1). FRQGLFLRQDO FRP SU«WHVWH SHUPLWH TXH Y£ULDV LQVWUX©·HV VHMDP
O novo valor de número será “1”, ele agora irá testar a H[HFXWDGDV UHSHWLGDPHQWH HQTXDQWR XPD FRQGL©¥R TXDOTXHU IRU
condição e somente irá parar quando esta for verdadeira, verdadeira. A estrutura de repetição condicional com pós-teste permite
quando o número for maior ou igual a 100. TXHY£ULDVLQVWUX©·HVVHMDPH[HFXWDGDVUHSHWLGDPHQWHHQTXDQWRXPD
condição qualquer não for verdadeira” (LAWISCH, 2011).
Exemplo 23: Mostrar a soma dos números pares inteiros
positivos menores que 100.
algoritmo “ InteiroPositivo” 1.5 - Repetição contados - Para...
var até...faça
SOMA, NUMERO: inteiro Como você já sabe, quando uma sequência de comandos
inicio deve ser executada repetidas vezes, tem-se uma estrutura
NUMERO < - 2 de repetição. Na repetição contados o Algoritmo apresenta
SOMA < - 0 // Inicia a variável contador = 0 previamente a quantidade de repetições. A estrutura de
repita repetição, assim como a de decisão, envolve sempre a avaliação
SOMA < - SOMA + NUMERO de uma condição.
NUMERO < - NUMERO + 2 // variável A repetição ocorre por meio de uma variável de controle
//acumuladora definida pelo analista que atua como uma contadora automática.
ate NUMERO > 100 Fornecemos um valor inicial no próprio comando, enquanto
escreva (“A soma dos números pares inteiros é: “, esse limite final não for ultrapassado, o conteúdo dessa
SOMA) variável é incrementado em uma unidade automaticamente, e
fimalgoritmo os comandos dentro do loop são executados.
Sintaxe:
Exemplo 24: Segue um Algoritmo que escreve 10 vezes a
para <variável> de <valor inicial> ate <valor final>
frase “FLAMENGO”. Veja: repetido
passo <incremento> faca
algoritmo “Repetição”
<comando1>
var
<comando2>
I : inteiro
.....
inicio
<comandon>
I < - 1 // inicia a variável contador
fimpara
repita
escreval (“FLAMENGO O MENGÃO”) Essa estrutura de repetição utiliza uma variável a ser
I <- I + 1 incrementada de um valor inicial para um valor final. Os
ate I >=10 // variável acumuladora comandos serão executados tantas vezes quantos forem os
fimalgoritmo incrementos da variável.
Esse incremento do valor da variável é definido pelo
Exemplo 25: Faça um Algoritmo que leia um número comando passo, que indica qual o valor a ser acrescentado ou
inteiro positivo e apresente o resultado de sua tabuada de um a subtraído da variável. Quando o incremento for de 1, não é
dez (1 a 10). repetido necessário informar o passo.
Supondo que o valor desejado seja 2, então: O valor da variável de controle não deve ser alterado
2x1=2 2x2=4 dentro do bloco de comandos da estrutura “Para”.
2x3=6 2x4=8 É recomendável o uso dessa instrução sempre que se
2 x 5 = 10 2 x 6 = 12 souber o valor inicial e o valor final da variável de controle.
2 x 7 = 14 2 x 8 = 16
2 x 9 = 18 2 x 10 = 20 Exemplo 26: Faça um Algoritmo que escreva os números
224 Algoritmo e Programação 38
inteiros positivos menores que 100. para NUMERO de 0 ate 99 passo 2 faca
Veja a Figura 6.2: escreval (NUMERO)
fimpara
Variável de controle Valor inicial
Ⱥ
fimalgoritmo
Vale a pena
7º Aula
Estruturas de dados
homogêneas
Objetivos de aprendizagem
FRQFHLWXDUHLQWHUSUHWDURWHUPR´HVWUXWXUDVKRPRJrQHDVµ
GHILQLUUHFRQKHFHUDLPSRUWkQFLDGDV(VWUXWXUDV+RPRJrQHDV9HWRUHVHDSOLFiODVQDSURJUDPDomR
GHVHQYROYHUHRXDPSOLDUDFDSDFLGDGHGHSHUFHSomRGHXPSUREOHPDHXWLOL]iODQDFULDomRGH$OJRULWPRV
41 227
Valores 8 5 9 3,5 4 10 5 7,5 8,5 2,5 6 7
Seções de estudo Índice 1 2 3 4 5 6 7 8 9 10 11 12
Figura 7.2 Estrutura “nota”.
1 - Estruturas de dados homogêneas Fonte: acervo pessoal.
Vale a pena
Minhas DQRWD©·HV
232 Algoritmo e Programação
8º Aula
Estruturas homogêneas II
Objetivos de aprendizagem
UHFRQKHFHUDLPSRUWkQFLDGDV(VWUXWXUDV+RPRJrQHDV0DWUL]HDSOLFiODQDSURJUDPDomR
GHVHQYROYHUHRXDPSOLDUDFDSDFLGDGHGHSHUFHSomRGHXPSUREOHPDHXWLOL]iODQDFULDomRGH$OJRULWPRV
47 233
<identificador> é o nome atribuído à estrutura de dados
Seções de estudo (Matriz)
<tipo de dado> é o tipo de dado que será armazenado na
estrutura (inteiro, real)
1 - Matriz
<inicial> e <final> correspondem respectivamente à
quantidade de linhas da Matriz, sendo uma constante inteira
1 - Matriz e positiva.
<inicial2> e <final2> correspondem respectivamente à
Nesta Seção, você irá ampliar seus conhecimentos sobre as Estruturas quantidade de colunas da Matriz, sendo uma constante inteira
Homogêneas estudando um vetor denominado, Matriz... Você pode e positiva.
estar indignado: mas o que é uma matriz? Como isso pode ser aplicado As palavras “vetor” e “de” são palavras reservadas
D XP $OJRULWPR" (LV DOJXQV GRV GHVDȴRV TXH YDPRV VXSHUDU FRP R que fazem sentindo para o Algoritmo e nunca devem estar
HVWXGRSURSRVWRDVHJXLU3UHSDUHHRUJDQL]HVHXDPELHQWHGHHVWXGRV ausentes na instrução de declaração de uma matriz.
DYLVHDWRGRVTXHLU£HVWXGDUHERDDXOD A leitura de dados de uma matriz é passo a passo um
elemento de cada vez. Note que ela também é referenciada por
um índice, nesse caso, indicando a linha e coluna, na qual essa
Até a presente Aula, nós utilizamos uma única variável
intersecção é o endereço onde o elemento está armazenado.
indexada com apenas uma dimensão, uma coluna para várias
Vamos imaginar a seguinte matriz - 5 linhas por 5 colunas
linhas. Contudo, existem situações em que a natureza dos
(5 X 5):
dados nos indica que a sua forma de armazenamento possui
mais de uma dimensão. Portanto, em Algoritmo uma matriz é
um vetor que possui mais de uma dimensão. 8ID ΖVVR SDUHFH FRPSOLFDGR PDV QD ȴJXUD DEDL[R HVW£ WXGR
H[SOLFDGLQKR9HMDP
Um vetor é uma estrutura de dados homogênea, isto é, agrupa valores
de um mesmo tipo; o tipo do vetor é o mesmo tipo dos dados que ele Coluna
armazena (BRASIL ACADÊMICO, 2011).
Poderíamos utilizar também o mesmo processo de Na última Aula desta disciplina tivemos a oportunidade
leitura: de entender que uma matriz é uma coleção de variáveis de um
para I de 1 ate 8 passo 1 faca mesmo tipo que é referenciada por um nome comum.
para J de 1 ate 4 passo 1 faca Vimos ainda que os vetores são matrizes unidimensionais,
// Escreve o valor da Matriz fimpara ao passo que as matrizes bidimensionais são matrizes de
escreval (“Notas dos Alunos em Matriz:”,notas[I,J]) matrizes unidimensionais.
fimpara
fimpara &DVR YRF¬ WHQKD ȴFDGR FRP G¼YLGDV VREUH D $XOD DFHVVH DV
ferramentas “fórum”, “quadro de avisos” ou “chat” e interaja com seus
colegas de curso e com seu professor.
Os conteúdos desta Aula são breves. Mesmo assim podem ocorrer Lembre-se de que os conteúdos estudados nesta disciplina representam
HYHQWXDLVG¼YLGDV1HVVHFDVRYRF¬WHU£DRSRUWXQLGDGHGHHQWHQG¬ apenas o primeiro passo de sua construção de conhecimentos sobre os
ORVPHOKRUDW«RȴQDOGHVWD$XODFRPRVWHPDVHH[HPSORVSURSRVWRVH Algoritmos, uma vez que aprender é algo que vamos fazer nossa vida
com as dicas em destaque, bem como com a consulta das referências WRGD $VVLP « IXQGDPHQWDO TXH FRQWLQXH SHVTXLVDQGR H LQWHUDJLQGR
disponibilizadas. Continue estudando com dedicação. Estamos indo com seus colegas de curso sobre o tema, uma vez que sua dedicação
PXLWREHP SRGHVHUXPDGDVUHVSRQV£YHLVSHODH[FHO¬QFLDGHVXDYLGDDFDG¬PLFD
HSURȴVVLRQDO3HQVHQLVVR
$JRUD«FRPYRF¬
Exemplo 40: Elaborar um Algoritmo para receber uma
matriz 3 por 3, multiplicar os elementos da diagonal principal
por uma constante X, que será lida, e exibir a matriz modificada:
Vale a pena
4 5 6 8 5 6
7 8 9 [ 7 16 9
4 3 2 4 3 4
Figura 8.3 Matriz 3 por 3.
Vale a pena ler
Fonte: acervo pessoal.
Referências
Minhas DQRWD©·HV