Sie sind auf Seite 1von 33

1 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF.

RANILDO LOPES

INSTITUTO FEDERAL DO PIAU


CEEP PROF. EDGAR TITO
Prog. Ins. de Bolsas de Iniciao Docncia (PIBID)
COOR: Dr. Stephenson Galvo (IFPI)
Prof. Ranildo Lopes (CEPPE) Autor da Apostila
Prof. da Oficina: Charles Jos Lima

APOSTILA 01 da OFICINA
DESENVOLVENDO O
PENSAMENTO
COMPUTACIONAL

Visite nosso stio


http://ueedgartito.wordpress.com

Obrigado pela preferncia de nossa ESCOLA!


2 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES
PLANO DE CURSO
Lgica de Programao
Categoria do Curso
Desenvolvimento de Aplicativos
Carga Horria
____ horas
Estrutura do Curso
Mdulo 04 - Algoritmos
Mdulo 05 - Constantes, Variveis e Tipos de Dados
Mdulo 06 - Operaes Lgicas
Mdulo 07 - Trabalhando com Arquivos
Mdulo 08 - Estruturas de Dados
Mdulo 09 - Informaes Digitais e Registros
Mdulo 10 - Prticas de Acesso a Arquivos

MDULO 02 - SISTEMAS DA COMPUTAO


Estrutura lgica
Unidade Central de Processamento - O processador o crebro do computador, o componente que calcula
operaes de lgica binria (adio, subtrao etc.), l e escreve informao na memria do computador e que diz
aos outros componentes o que fazer.
Dispositivos de Entrada e Sada - As unidades de entrada de dados realizam a interface entre homem e
mquina, exemplo: o teclado, o mouse etc.
J as Unidades de sada de dados devolvem a informao processada entre a mquina e o homem, exemplo: a
impressora, o vdeo etc.
Programas (software) - Apesar de no terem qualquer tipo de implementao fsica, os softwares do vida
aos diversos componentes do computador e os fazem trabalhar para um fim comum.
Isto s possvel, atravs de instrues especficas de operao agrupadas em unidades lgicas ou
programas.
Unidades de Memria - o principal local de operao do computador, pois armazena toda a informao
associada ao programa a ser executado.
A estrutura interna de um computador pode ser dividida em quatro unidades lgicas:
Memria interna ou principal
A memria interna ou principal tem alta velocidade de acesso e o centro de todas as atividades no
computador. Ela armazena temporariamente toda a informao que o computador precisa.
A memria dividida em pequenas unidades ("palavras") cada uma com endereo nico.
As primeiras mquinas usavam vlvulas biestveis e depois passaram a usar ncleos magnticos, atualmente
utiliza-se memrias semicondutoras.
As memrias utilizam o Sistema Binrio: 1(ligado) e 0 (desligado) e tem como finalidade armazenar
instrues e dados para a realizao de uma determinada tarefa.
Vamos fazer uma analogia. Imagine um bloco de notas, nada est permanentemente registrado no papel.
Basta escrever por cima, que toda a informao anterior automaticamente substituda pela nova.

Representao da informao
Um programa, nada mais , do que uma sequncia de comandos que enviados a CPU faz com que as
instrues sejam processadas.
Para que as instrues sejam processadas na memria do computador, toda a informao precisa ser
representada de um modo comum e coerente em todos os tipos de sistemas e ambientes, o que obrigou a criao
de um modelo geral de representao numrica.
3 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES
O sistema baseia-se no nmero de dgitos, chamados de base que podero ser utilizados para a representao
da informao.
Qualquer valor , assim, representado por uma combinao destes dgitos.
Quando analisamos da direita para a esquerda, o produto de cada dgito vai ser equivalente base elevada
posio que ela ocupa, o que torna o primeiro dgito menos significativo do que o ltimo.
O sistema utilizado o sistema decimal, e como consiste em combinaes de dez dgitos distintos, de 0 a 9,
todos os produtos so calculados como potncias da base.
Veja um exemplo!

Sistema binrio
Para que todos os circuitos e dispositivos do computador consigam compartilhar uma informao preciso
que respeitem um modelo de representao comum. Como, a nvel fsico, s existem dois estados possveis -
ausncia ou presena de corrente eltrica - o sistema tem de ser de base dois (binrio), pelo que atribui a cada um
desses estados um dgito (ou bit) distinto - 0 para a ausncia e 1 para a presena de corrente.
A analogia lgica quase imediata, pois os mesmos valores podem, tambm, ser usados para representar o
falso e o verdadeiro.
O bit o menor bloco de informao compreensvel e distinguvel, e que pode servir para a construo de
blocos de informao mais complexos.
Em grupos de oito, os bits formam a unidade mais importante na representao de informao - o byte -
atravs da qual, representada a capacidade de armazenamento e memria.
Exemplo:
8 bits formam 1 byte
1024 bytes formam 1 kilobyte
1024 kilobytes formam 1 megabyte
1024 megabytes formam 1 gigabyte
1024 gigabytes formam 1 terabyte
Sistema Hexadecimal
Mdulo 02
A converso do sistema hexadecimal para o sistema binrio muito simples. Como a base a quarta potncia
da base do sistema binrio, cada dgito pode ser imediatamente convertido num bloco de quatro bits equivalentes.
Uma das vantagens a reduo do comprimento da sequncia da informao, ficando mais fcil a sua
visualizao e manipulao para qualquer pessoa.
Por esse motivo que a utilizao do sistema hexadecimal vem sendo cada vez mais frequente
Nota
normal o uso de aproximaes quando a quantidade de informaes grande. Para isso, foram criados
vrios sufixos que representam vrios tipos de arredondamentos - kilo, mega, giga, tera etc.
Sistema Hexadecimal II
Apesar do sistema binrio ser o mais simples e adequado s necessidades fsicas do computador, no fcil e
rpido para voc entender.
Para tornar esta percepo mais simples, converte-se o primeiro numero em um sistema hexadecimal.
Como o nome indica, o sistema hexadecimal usa uma base de 16 dgitos distintos (de 0 a 9 mais as seis
primeiras letras do alfabeto - A, B, C, D, E,F - que representam os valores de 10 a 15).
Da mesma maneira que o sistema decimal ou binrio, cada combinao representa um valor decimal
equivalente soma dos produtos totais de cada dgito.
Veja o exemplo:

Parabns! Voc chegou ao final do Mdulo 02!


4 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES
Mdulo 03 - Linguagens de Programao
Introduo a Lgica de Programao
A lgica de programao necessria para pessoas que desejam trabalhar com o desenvolvimento de
sistemas e programas. Ela permite definir a sequncia lgica para o desenvolvimento.
Estes pensamentos, podem ser descritos como uma sequncia de instrues, que devem ser seguidas para se
cumprir uma determinada tarefa.
Portanto, podemos dizer que uma sequncia lgica so passos executados at atingir um objetivo ou soluo
de um problema.
Dica: Lgica de programao a tcnica de encadear pensamentos para atingir um determinado objetivo.
Nota :Se voc solucionou um problema, essa soluo provavelmente o resultado de um raciocinio lgico!
Instrues
Na linguagem comum, entende-se por instrues, "um conjunto de regras ou normas definidas para a
realizao ou emprego de algo".
Em informtica, porm, instruo a informao que indica a um computador uma ao elementar a
executar.
Convm ressaltar que uma ordem isolada no permite realizar o processo completo, para isso necessrio
um conjunto de instrues colocadas em ordem sequencial lgica.
Exemplo, se quisermos fazer uma omelete de batatas, precisaremos colocar em prtica uma srie de
instrues: descascar as batatas, bater os ovos, fritar as batatas etc.
evidente que essas instrues tem que ser executadas em uma ordem adequada - no se pode descascar as
batatas depois de frit-las.
Dessa maneira, uma instruo tomada em separado no tem muito sentido; para obtermos o resultado,
precisamos colocar em prtica o conjunto de todas as instrues, na ordem correta.
Instrues: so um conjunto de regras ou normas definidas para a realizao ou emprego de algo. Em
informtica, o que indica a um computador uma ao elementar a executar.

Algoritmos
Vamos comear aprendendo o que um algoritmo. Imagine uma receita de bolo. Voc concorda que uma
receita uma sequncia lgica que fornece instrues? Um algoritmo muito semelhante a uma receita de bolo:
so fornecidos os ingredientes e o modo de fazer.
Podemos, ento, afirmar que uma receita de qualquer alimento nada mais do que um algoritmo.
Toda e qualquer receita, possui os ingredientes(entrada), o modo de preparo (processamento), e o resultado
que o alimento pronto (sada).
Analogamente teremos a Entrada, o Processamento e a Sada!

Algoritmos -imprecises das receitas


A linguagem utilizada nas receitas muito vaga para ser utilizada no desenvolvimento de programas.
Analise a receita ao lado.
Voc consegue perceber que alguns detalhes importantes foram omitidos?
Na receita no foi especificada a quantidade de queijo nem se o presunto deveria ser fatiado.
Podemos chamar o algoritmo ao lado de algoritmo no-computacional (uma sequncia ordenada e sem
ambiguidade de passos que no levam a uma soluo do problema).
Ingredientes:
5 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES
2 fatias de po de forma integral
1 tomate
Queijo mussarela
Presunto
Organo
Modo de preparo:
Corte o tomate e o queijo em fatias e coloque sobre o po. Acrescente o presunto e uma pitada de organo.
Feche com a outra fatia. Voc pode levar o sanduche ao forno se preferir.
Nota
Algortmos computacionais podem ser definidos como sendo uma seqncia ordenada e sem ambigidade
de passos que levam a soluo de um problema.
Linguagens de programao
Os programas de computadores nada mais so do que algoritmos escritos numa linguagem de computador
(Pascal, C, Cobol, Fortran, Visual Basic entre outras) e que so interpretados e executados por uma mquina (um
computador).
Dada esta interpretao rigorosa, um programa por natureza muito especfico e rgido em relao aos
algoritmos da vida real.
As linguagens de programao so o que permite a comunicao entre homem e mquina. So projetadas de
modo que cada sentena tenha significado nico.
Em nosso dia-a-dia usamos a Linguagem Natural sempre com verbos e substantivos. J as Linguagens de
Programao se utilizam de comandos e dados. Vamos analisar algumas caractersticas dos tipos de Linguagens.
Conjunto de nmeros binrios
Baixo Nvel: mnemnicos
Alto Nvel: prximas a linguagem comum
Variam de acordo com a mquina
Baixo Nvel: variam de acordo com a mquina
Alto Nvel: teoricamente independem da mquina
Programao
Baixo nvel: difcil programar
Alto nvel: fceis de serem usadas
Execuo
Baixo nvel: rpida execuo
Alto nvel: execuo lenta
Nota
Comando uma ao que definimos para que o computador possa executar. Programa a expresso de um
algoritmo numa linguagem de programao
Linguagens de programao II
Voc j parou para pensar o porque um software to caro? justamente por este motivo que devemos
sempre tentar otimizar o desenvolvimento de qualquer programa e, uma das formas, observarmos algumas
etapas durante o desenvolvimento e sempre se utilizar de tcnicas como exemplo os algoritmos.
O custo do software determinado por:
Tempo de programao
Tempo de depurao (debugging time)
Rapidez de execuo
Clareza da documentao
Tamanho do programa e dados
Flexibilidade e expansibilidade
Portabilidade para outros computadores
Sendo assim importante seguir as etapas de desenvolvimento descritas a seguir, que visam racionalizar o
custo de produo e venda do sistema que voc venha a desenvolver.
Etapas no desenvolvimento de um sistema ou programa
Voc j sabe que desenvolver um programa no to simples. No basta simplesmente voc conhecer as
linguagens de programao e to pouco o ambiente de desenvolvimento. necessrio se ter um objetivo e seguir as
etapas descritas abaixo.
Anlise das necessidades (seleo do projeto).
6 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES
Estudo de viabilidade (tcnica e anlise custo).
Definio do projeto (analisar as necessidades do usurio, planejar as fases do projeto e de implantao).
Codificao (lgica, layouts, procedimentos de controle).
Fase de implantao testes, depurao e treinamento).
Avaliao (custo real, benefcios, satisfao do usurio).
Podemos dizer que as etapas, claramente definidas, so nada menos do que uma metodologia para a anlise
de sistemas.

Dividir para conquistar


Se voc percebeu a metodologia da anlise de sistemas permite que voc divida o processo de
desenvolvimento de um programa ou sistema em algumas etapas facilitando, organizando e agilizando o processo
como um todo. Analise a animao ao lado.
"Qual o nvel de detalhamento que devemos alcanar? Depende de quem vai executar a ao. Pode ser voc!"

Metodologia de soluo
Para concluir, vamos reforar alguns conceitos sobre a metodologia para a anlise de sistemas.
Como voc j sabe todo e qualquer sistema ou programa sempre surge de uma necessidade e normalmente
tem um objetivo claramente definido, sendo assim devemos observar algumas regras antes mesmo de iniciar o
desenvolvimento de um sistema ou programa:
Entender o problema imprescindvel.
Formular um esboo da soluo necessrio.
Fazer uma primeira aproximao das variveis que podero ser utilizadas.
Rever os passos originais, detalhando o processo.
Se o algoritmo estiver suficientemente detalhado, testar com um conjunto de dados significativos.
Implementar numa linguagem de programao.
Se voc seguir as etapas de desenvolvimento descritas durante nosso curso com certeza voc alcanar
excelentes resultados!
7 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES
Prtica
Abordamos conceitos e definies que muitas vezes fazem parte do nosso dia a dia, porm no paramos
para analis-los.
O raciocnio lgico desenvolvido a medida que procuramos utiliz-los naturalmente na rotina diria como
por exemplo organizando uma agenda de compromissos.
Faa o exerccio proposto com ateno e se encontrar dificuldades registre-as no frum para discuti-las com
seus colegas de curso.
Parabns! Voc chegou ao final do Mdulo 03!
MDULO 04 - ALGORITMOS
Tcnicas para a construo de algoritmos
Para se desenvolver algoritmos existem algumas tcnicas que veremos a seguir, entre elas esto os
pseudocdigos e os fluxogramas ou o diagrama de bloco.
Se formos analisar cada uma das tcnicas vamos chegar a concluso de que todas apresentam vantagens e
desvantagens, mas todas seguem um raciocnio lgico.
Pseudocdigo
Este nome uma aluso posterior implementao em uma linguagem de programao, ou seja, quando
formos programar em uma linguagem, por exemplo Visual Basic, estaremos gerando cdigo em Visual Basic. Por isso
os algoritmos so independentes das linguagens de programao. Ao contrrio de uma linguagem de programao
no existe um formalismo rgido de como deve ser escrito o algoritmo.
O algoritmo deve ser fcil de se interpretar e fcil de codificar. Ou seja, ele deve ser o intermedirio entre a
linguagem falada e a linguagem de programao.

Regras para construo de algoritmos


Para escrever um algoritmo precisamos descrever a seqncia de instrues, de maneira simples e objetiva.
Para isso utilizaremos algumas tcnicas:
Usar somente um verbo por frase.
Imaginar que voc est desenvolvendo um algoritmo para pessoas que no trabalham com informtica.
Usar frases curtas e simples.
Ser objetivo.
Procurar usar palavras que no tenham sentido duplo.
O algoritmo deve funcionar.
O algoritmo no deve realizar tarefas inteis. Ele deve ser feito da forma mais simples possvel.
O algoritmo deve ser claro, isto , fcil de se ler e entender.
Nota
O pseudocdigo tambm conhecido como Portugus Estruturado.
Propriedades de um algoritmo
Cada operao descrita em um algoritmo deve ser bem definida e perfeitamente clara. Cada operao deve
ser efetiva e o algoritmo deve, pelo menos a princpio, permitir a uma pessoa munida apenas de papel e lpis
execut-lo em um tempo finito.
Um algoritmo que apresenta todas as propriedades anteriores, salvo a de terminao chamado de
procedimento computacional.
8 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES
Ex.: sistema de uma videolocadora ou at mesmo o sistema operacional. Para que um algoritmo seja
implementado num computador ele deve ser codificado numa linguagem de programao. Um algoritmo preciso
torna a codificao de um programa de computador direta, ou seja, a codificao vai seguir todos os passos
descritos em cada instruo do algoritmo at o seu resultado final.
Dica
O Clculo de todos os nmeros primos um exemplo de um no-ritmo.
Nota
Todo algoritmo deve terminar aps um nmero finito de passos.
Fases de desenvolvimento de um algoritmo
Voc j sabe que ALGORITMO uma seqncia lgica de instrues que podem ser executadas.
importante ressaltar que qualquer tarefa que siga determinado padro pode ser descrita por um algoritmo,
como por exemplo: COMO FAZER ARROZ DOCE ou ento CALCULAR O SALDO FINANCEIRO DE UM ESTOQUE.
Entretanto, ao montar um algoritmo, precisamos primeiro dividir o problema apresentado em trs fases
fundamentais. Voc lembra da primeira pgina de nossa aula?
ENTRADA: so os dados de entrada do algoritmo.
PROCESSAMENTO: so os procedimentos utilizados para chegar ao resultado final.
SADA: so os dados j processados.

Exemplo de algoritmo
Imagine o seguinte problema:
Calcular a mdia final dos alunos da 3 Srie. Os alunos realizaro quatro provas: P1, P2, P3 e P4.
Onde:

Para montar o algoritmo proposto, faremos trs perguntas:


Quais so os dados de entrada?
R: Os dados de entrada so P1, P2, P3 e P4.
Qual ser o processamento a ser utilizado?
R: O procedimento ser somar os 4 dados de entrada
(P1, P2, P3, P4) e dividir o seu resultado por 4.
Quais sero os dados de sada?
R: O dado de sada ser a mdia final.
ALGORITMO
Receba a nota da prova1
Receba a nota de prova2
Receba a nota de prova3
Receba a nota da prova4
Some todas as notas e divida o resultado por 4
Mostre o resultado da diviso
TESTE DE MESA
Aps desenvolver um algoritmo ele dever sempre ser testado. Este teste chamado de TESTE DE MESA,
que significa, seguir as instrues do algoritmo de maneira precisa para verificar se o procedimento utilizado est
correto ou no.
Veja o exemplo:
Nota da Prova 1
Nota da Prova 2
9 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES
Nota da Prova 3
Nota da Prova 4
Utilize a tabela abaixo para realizar o Teste de Mesa:

Para se utilizar a tabela ao lado basta seguir o fluxo da pgina anterior e atribuir valores para a Prova1,
Prova2, Prova3 e Prova4, o resultado da mdia dever ser obtido seguindo a frmula especificada no algoritmo.
Em clculos complexos voc pode utilizar uma calculadora para checar o resultado das operaes. O resultado
obtido na calculadora dever ser o mesmo para o calculado via algoritmo.
Diagrama de bloco ou fluxograma
Voc sabe o que um diagrama de bloco?
O diagrama de blocos, tambm conhecido como fluxograma, uma forma padronizada e eficaz para
representar os passos lgicos de um determinado processamento.
Com o diagrama podemos definir uma sequncia de smbolos, com significado bem definido, portanto, sua
principal funo a de facilitar a visualizao dos passos de um processamento.
Para a representao de uma sequncia lgica utilizando o diagrama de bloco necessrio seguir uma
simbologia. Existem diversos smbolos em um diagrama de bloco. No decorrer do curso apresentaremos os mais
utilizados.
Veja na animao abaixo, alguns dos smbolos que iremos utilizar. Dentro do smbolo sempre ter algo
escrito, pois somente os smbolos no nos dizem nada.

No fluxo ao lado seguimos uma sequncia lgica somente com informaes diretas, j no fluxo ao lado
utilizamos clculo, exibimos o resultado do mesmo e ainda utilizamos uma estrutura de deciso.
Um fluxograma pode se tornar muito difcil de se ler quando o algoritmo se torna complexo, alm de gastar
muito papel para ser desenhado!
INCIO
Receber n1
Receber n2
Receber n3
Calcular Mdia=(n1+n2+n3) / 3
Exibir Mdia
Se mdia > 5 exibir "aprovado"
Seno exibir "reprovado"
FIM
Exemplos de Diagrama de Bloco
10 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES

Cada informao desta aula muito importante para a construo de um raciocnio lgico.
Faa o exerccio proposto com ateno e se encontrar dificuldades registre-as no frum para discuti-las com
seus colegas de curso.
EXERCCIO PROPOSTO
1. Elabore um algoritmo para calcular o preo total de uma mercadoria, sabendo que Preo Total = (Preo
Unitrio X quantidade)
2. Faa um teste de mesa com o algoritmo anterior com dados definidos por voc;
Parabns! Voc chegou ao final do Mdulo 04!
MDULO 05 - CONSTANTES, VARIVEIS E TIPOS DE DADO
Constantes, variveis e tipos de dados
O objetivo de um algoritmo manipular dados e chegar a soluo de um problema. Para manipular dados
uma linguagem de programao, qualquer que seja, utiliza variveis e constantes.
Uma varivel um espao reservado na memria do computador para armazenar um tipo de dado
determinado. Variveis devem receber nomes para poderem ser referenciadas e modificadas quando necessrio.
Um programa deve conter declaraes que especificam de que tipo so as variveis que ele utilizar e as vezes um
valor inicial.
Tipos podem ser por exemplo: inteiros, reais, caracteres etc. As expresses combinam variveis e constantes
para calcular novos valores.
CONSTANTES
Constante um determinado valor fixo que no se modifica ao longo do tempo, durante a execuo de um
programa. Conforme o seu tipo, a constante classificada como sendo numrica, lgica e literal. Exemplo de
constantes:

VARIVEIS
Varivel a representao simblica dos elementos de um certo conjunto. Cada varivel corresponde a uma
posio de memria, cujo contedo pode se alterado ao longo do tempo durante a execuo de um programa.
Embora uma varivel possa assumir diferentes valores, ela s pode armazenar um valor a cada instante.
Podemos dizer que o valor da CPMF, se utilizado em um algoritmo, uma Constante pois seu valor no vai
mudar durante a execuo do mesmo e o valor do saldo de sua conta bancria pode variar de acordo com a
movimentao financeira, neste caso o saldo pode ser considerado uma Varivel.
EXEMPLOS DE VARIVEIS
Variveis:
Salrio = salrio fixo + comisso
Varivel -> NOME = "JOSE" <- contedo da varivel
Varivel -> IDADE = 50 <- contedo da varivel
TIPOS DE VARIVEIS
As variveis e as constantes podem ser basicamente de quatro tipos: numricas, caracteres, alfanumricas
ou lgicas.
11 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES
Numricas - Especficas para armazenamento de nmeros, que posteriormente podero ser utilizados para
clculos. Podem ser ainda classificadas como inteiras ou reais. As variveis do tipo inteiro so para armazenamento
de nmeros inteiros e as reais so para o armazenamento de nmeros que possuam casas decimais.
Caracteres - Especficas para armazenamento de conjunto de caracteres que no contenham nmeros
(literais). Ex: nomes.
Alfanumricas - Especficas para dados que contenham letras e/ou nmeros. Pode em determinados
momentos conter somente dados numricos ou somente literais. Se usado somente para armazenamento de
nmeros, no poder ser utilizada para operaes matemticas.
Lgicas - Armazenam somente dados lgicos que podem ser verdadeiro ou falso.
As variveis s podem armazenar valores de um mesmo tipo, de maneira que tambm so classificadas como
sendo numricas, lgicas e literais.
Numricos
o Inteiros 13, 7, -3
o Reais 22.5, 9.5, -6.6
o Ponto flutuante 0.321 x 10E9
Caracteres / Alfanumricos
o Caracteres 'A', 'B', 'a', 'b'
o Cadeia de caracteres (STRINGS)
o 'Ol! Voc entendeu?'
Lgicos
o S podem assumir os valores falso e verdadeiro -> (10<3) falso (8=8) verdadeiro
Operaes sobre os dados - Operadores
Os operadores so meios pelo qual incrementamos, decrementamos, comparamos e avaliamos dados
dentro do computador. Existem trs tipos de operadores:
Operadores Aritmticos
Operadores Relacionais
Operadores Lgicos
Os operadores aritmticos so os utilizados para obter resultados numricos. Alm da adio, subtrao,
multiplicao e diviso, voc pode utilizar o operador para exponenciao.
Para a formulao de operaes aritmticas usaremos a seguinte simbologia:
Nota
"Escolha nomes que indiquem a funo da varivel no algoritmo."
S=(a * b)/2.0 um pssimo exemplo;
Area_Triangulo=(Base * Altura) / 2.0. Assim no fica mais legvel?

Operadores Relacionais - Teste de mesa


Os operadores relacionais so os utilizados para comparar STRING de caracteres e nmeros. Os valores a
serem comparados podem ser caracteres ou variveis.
Estes operadores sempre retornam valores lgicos (verdadeiro ou falso / true ou false).
Para estabelecer prioridades no que diz respeito a qual operao executar primeiro, utilize os parnteses.
Os operadores relacionaro:
Descrio Smbolo
Igual a =
Diferente de <> ou #
Maior que >
12 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES
Menor que <
Maior ou igual >=
Menor ou igual <=
Analise o exemplo:
Tendo duas variveis A = 10 e B = 8. Os resultados das expresses seriam:

Operadores Lgicos
Os operadores lgicos servem para combinar resultados de expresses, retornando se o resultado final
verdadeiro ou falso.
Veja na tabela abaixo os operadores Lgicos:
E AND
OU OR
NO NOT
E/AND - Uma expresso AND (E) verdadeira se todas as condies forem verdadeiras.
OU/OR - Uma expresso OR (OU) verdadeira se pelo menos uma condio for verdadeira.
NO/NOT - Uma expresso NOT (NO) inverte o valor da expresso ou condio, se verdadeira inverte para
falsa e vice-versa.
Operadores lgicos II
A tabela a seguir mostra todos os valores possveis criados pelos trs operadores lgicos (AND, OR e NOT).
1 valor Operador 2 valor Resultado
T AND T T
T AND F F
F AND T F
F AND F F
T OR T T
T OR F T
F OR T T
F OR F F
T NOT F
F NOT T
Veja o exemplo!
Suponha que temos trs variveis A = 10, B = 15 e C = 2.
Os resultados das expresses seriam:
1 valor Operador 2 valor Resultado
T AND T T
T AND F F
F AND T F
F AND F F
T OR T T
T OR F T
13 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES
F OR T T
F OR F F
T NOT F
F NOT T
Expresses Resultados
A = B AND B > C Falso
A <> B ORB < C Verdadeiro
A > B NOT Verdadeiro
A < B AND B > C Verdadeiro
A >= B OR B = C Falso
A <= B NOT Falso
Regras para nomes de constantes e variveis
Os nomes para as constantes e variveis devem ser nomes que expressem o que determinada varivel ou
constante realmente faz e sempre bom voc tomar os devidos cuidados na criao de cada varivel dentro de seu
algoritmo. Leve em considerao as regras abaixo:
Devem comear com uma letra.
O restante pode ser letra ou dgito ou algum caracter especial permitido.

Exemplos de nomes vlidos


TOTAL
UMNOMEMUITOCOMPRIDOEDIFICILDELER
LADO2 UM_NOME_MUITO_COMPRIDO_MAS_FACIL_DE_LER
L123
DUAS_PALAVRAS
Nomes Invlidos
3ARQUIVO - comea com dgito
X+Y - no permitido, pode ser soma.
Expresses
Uma expresso nada mais do que a forma de como voc pode manipular as constantes ou variveis,
definindo operaes sobre elas. Veja abaixo o exemplo de uma expresso:

Dentro de uma expresso podemos realizar o que chamamos de operao de atribuio. Uma operao de
atribuio especifica que uma varivel vai receber determinado valor, e indicada pelo smbolo ' <-'. como por
exemplo:
LADO2 <- 5
BASE <- 6
Uma varivel s pode receber valores do tipo em que ela foi definida. Ex: variveis reais s recebem valores
reais.
X <- 5.6
Y <- -0.006
Variveis tipo caracter
Nome <- 'Maria'
Tipo booleano
Condio <- Falso
Forma geral
14 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES
varivel <- expresso
Temos tambm o smbolo alternativo: ' = '
Ex: Base <- 5.0
Altura <- 6.0
Area_Triangulo <- (Base * Altura) / 2.0
Nota
Variveis do lado direito no sofrem alterao. Toda varivel usada no lado direito deve possuir um valor
antes da expresso ser avaliada.
Prioridades dos operadores
Vamos agora lembrar um regra matemtica que chamamos de precedncia. Voc consegue se lembrar de
suas primeiras aulas de matemtica?
Toda expresso composta de um ou mais operandos, e nas expresses e seus operandos que a regra da
precedncia se aplica.
Analise a expresso: 3 + 6 * 13 = 117 ou 81?

Voc consegue responder a questo acima? Voc j deve ter concludo que na matemtica existe uma
prioridade no clculo de expresses como acima descrita, no exemplo, o resultado correto 81 pois existe
prioridade da multiplicao em relao a adio.
Esta regrinha apesar de ser simples muito importante quando codificamos expresses matemticas em
qualquer linguagem de programao e at mesmo nos algoritmos.
+ Adio Esquerda p/Direita
- Subtrao Esquerda p/Direita
* Multiplicao Esquerda p/Direita
/ Diviso Esquerda p/ Direita
** ou ^^ Exponenciao Direita p/Esquerda
Dica: Voc deve conhecer as regras e us-las de forma que a expresso seja facilmente lida. E
principalmente que estejam corretas!
Parabns! Voc chegou ao final do Mdulo 05!
MDULO 06 - OPERAES LGICAS
Operaes lgicas
Operaes lgicas so utilizadas quando se torna necessrio tomar decises em um diagrama de bloco.
Num diagrama de bloco, toda deciso ter sempre como resposta o resultado VERDADEIRO ou FALSO.
Como no exemplo do algoritmo "COMER UM CHOCOLATE". Imaginemos que algumas pessoas no gostem de
comer chocolate branco, neste caso teremos que modificar o algoritmo para: "Comer um Chocolate".
Pegar o chocolate
O chocolate branco?
o Se sim, no coma o chocolate
o Se no, continue com o algoritmo
Retirar o papel
Coma o chocolate
Jogar o papel no lixo
15 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES

Estrutura de deciso e repetio


Voc j sabe que na maioria das vezes necessitamos tomar decises no andamento do algoritmo. Essas
decises interferem diretamente no andamento do programa.
Trabalharemos com dois tipos de estrutura. A estrutura de deciso e a estrutura de repetio.
Comandos de deciso
Os comandos de deciso ou desvio fazem parte das tcnicas de programao que conduzem a estruturas de
programas que no so totalmente seqenciais. Com as instrues de SALTO ou DESVIO pode-se fazer com que o
programa proceda de uma ou outra maneira, de acordo com as decises lgicas tomadas em funo dos dados ou
resultados anteriores.
As principais estruturas de deciso so: se ento, se ento seno e caso selecione.
SE ENTO / IF ... THEN
A estrutura de deciso SE/IF normalmente vem acompanhada de um comando, ou seja, se determinada
condio for satisfeita pelo comando SE/IF ento execute determinado comando.
Imagine um algoritmo que determinado aluno somente estar aprovado se sua mdia for maior ou igual a 5.0,
veja no exemplo de algoritmo, ao lado como ficaria.
Se Mdia >= 5.0 ento Aluno Aprovado
Em Portugus Estruturado:
Em Visual Basic:
Mdia>=5.0
Sim
Aluno Aprovado
No
FIM
IF Media >= 5 Then
Text1 = Aprovado
ENDIF

SE ENTO SENO / IF ... THEN ... ELSE


A estrutura de deciso SE/ENTO/SENO, funciona exatamente como a estrutura SE, com apenas uma
diferena, em SE somente podemos executar comandos caso a condio seja verdadeira, diferente de SE/SENO
16 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES
pois sempre um comando ser executado independente da condio, ou seja, caso a condio seja verdadeira o
comando da condio ser executado, caso contrrio o comando da condio falsa ser executado.
No exemplo ao lado est sendo executada uma condio que, se for verdadeira, executa o comando
APROVADO, caso contrrio executa o segundo comando REPROVADO. Podemos tambm dentro de uma mesma
condio testar outras condies.

CASO SELECIONE / SELECT ... CASE


A estrutura de deciso CASO/SELECIONE utilizada para testar, na condio, uma nica expresso, que
produz um resultado, ou, ento, o valor de uma varivel, em que est armazenado um determinado contedo.
Compara-se, ento, o resultado obtido no teste com os valores fornecidos em cada clusula Caso.
No exemplo do diagrama de blocos abaixo, recebido uma varivel Op e testado seu contedo, caso uma das
condies seja satisfeita, atribudo para a varivel titulo a string Opo X, caso contrrio atribudo a * Opo
Errada.
Diagrama de Blocos
OP = 1
Titulo = ""
SE Op = 2 SIM
Titulo ="Opo 1"
SE Op = 3 SIM
Titulo ="Opo 2"
SE Op = 4 SIM
Titulo ="Opo 3"
SE Op = 5 SIM
Titulo ="Opo 4"
SENO
Opo = "Opo Errada"
EXIBE Titulo
FIM
Em Visual Basic utilizamos a seguinte sequncia de comandos para representar o diagrama anterior.
Ttulo = ""
Op = InputBox("Digite a Opo")
Select Case Op
Case 1
Ttulo = "Opo 1 "
Case 2
Ttulo = "Opo 2"
Case 3
Ttulo = "Opo 3"
Case 4
Ttulo = "Opo 4"
Case 5
Ttulo = "Opo 5"
Case Else Ttulo = "Opo Errada"
End Select
Label1.Caption = Ttulo
Prtica
Pratica_Aula05.pdf
17 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES
importante que voc tenha entendido os conceitos e funcionalidades sobre operaes lgicas e estrutura de
deciso, por isso faa o exerccio proposto e veja se tem dvidas, antes de prosseguirmos o estudo.
COMANDOS DE REPETIO
Voc dever utilizar os comandos de repetio quando desejar que um determinado conjunto de instrues
ou comandos sejam executados um nmero definido ou indefinido de vezes, ou enquanto um determinado estado
de coisas prevalecer ou at que seja alcanado.
Veja abaixo os comandos de repetio que voc ir estudar:
Enquanto x, processar (Do while ...Loop);
At que x, processar ... (Do until ... Loop);
Processar ..., Enquanto x (Do ... Loop while);
Processar ..., At que x (Do ... Loop until);
Para ... At ... Seguinte (For ... To ... Next);
Neste caso, o bloco de operaes ser executado enquanto a condio x for verdadeira. O teste da condio
ser sempre realizado antes de qualquer operao. Enquanto a condio for verdadeira o processo se repete.
Podemos utilizar essa estrutura para trabalharmos com contadores. Veja a estrutura de um exemplo de contador:
Portugus Estruturado:
Se Nr = 0 ... No
Se Nr < = 100
Cont. No
Sim Cont. Sim
Processar Nr = Nr + 1
Visual Basic:
Nr = 0
Do While Nr < = 100
Nr = Nr + 1
Loop
At que X, Processar ... (Do until Loop)
Neste caso, o bloco de operaes ser executado at que a condio seja satisfeita, ou seja, somente
executar os comandos enquanto a condio for falsa.
Exemplos
Se ...
Sim
Cont.
No
Processar
Nr = 0
Se Nr = 100
Sim
Cont.
No
Nr = Nr + 1
Em Visual Basic
Nr = 0
Do Until Nr = 100
Nr = Nr + 1
Loop
Label1.Caption = Nr

Processar ..., Enquanto x (Do ... Loop While)


Neste caso primeiro so executados os comandos, e somente depois realizado o teste da condio. Se a
condio for verdadeira, os comandos so executados Novamente, caso seja falso encerrado o comando DO.
Exemplos
Processar
Se...
Sim -> Processar
No
Cont.
18 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES
Nr = Nr + 1
Se Nr <= 100
Sim
Processar Nr= Nr + 1
No
Cont.
EM VISUAL BASIC
Nr = 0
Do
Nr = Nr + 1
Loop While Nr <= 100
Label1.Caption = Nr
Processar ..., At que x (Do ... Loop Until)
Neste caso, executa-se primeiro o bloco de operaes e somente depois realizado o teste de condio. Se a
condio for verdadeira, o fluxo do programa continua normalmente. Caso contrrio processado novamente os
comandos antes do teste da condio.
Exemplos
Processar
Se...
No-> Processar
Sim
Cont.
Nr = Nr + 1
Se Nr >= 100
No
Processar Nr= Nr + 1
Sim
Cont.
Em Visual Basic
Nr = 0
Do
Nr = Nr + 1
Loop until Nr >= 100
Label1.Caption = Nr
Prtica
Pratica_Aula05_2.pdf
Comandos de repetio so bastante utilizados e otimizam algoritmos tornando seu resultado gil e eficiente.
Para construir comandos de repetio necessrio que saiba estrutur-los da melhor maneira e utiliz-los nos
momentos certos.
Faa o exerccio proposto com ateno e se encontrar dificuldades registre-as no frum para discuti-las com
seus colegas de curso.
Parabns! Voc chegou ao final do Mdulo 06!

MDULO 07 - TRABALHANDO COM ARQUIVOS


Arquivo de dados
Os dados manipulados at o momento, estavam em memria, ou seja, aps a execuo do diagrama os dados
se perdiam. Para resolver esse problema comearemos a trabalhar com arquivos, onde poderemos guardar os
dados e tambm manipul-los.
Para isso voc necessita conhecer alguns conceitos como: campos, registros e arquivos.
Ser que agora vai complicar?
Conceitos Bsicos
CAMPO um espao reservado em memria para receber informaes (dados).
Exemplo: Campo Nome, Campo Endereo
Campo na memria:
NOME
Joo da Silva
19 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES
Conceitos bsicos
REGISTRO um conjunto de campos.
Exemplo: Registro de clientes.
CODIGO DO CLIENTE NOME ENDEREO TELEFONE
1313 JOO DA SILVA R. UM, 200 7759-9887
ARQUIVO um conjunto de registros.
Exemplo: o arquivo de clientes da empresa onde esto armazenados os dados de todos os clientes dela.
Arquivo de clientes:
CODIGO DO CLIENTE NOME ENDEREO TELEFONE
Registro 1 1313 JOO DA SILVA R. UM, 200 7759-9887
Registro 2 1314 MARIA JOS R. DIAS, 155 2275-7845
Registro 3 1315 MANOEL DOS SANTOS R. FLORES, 100 7844-8578
Voc entendeu? Simples no ?
Abertura de arquivos
Voc se lembra da simbologia?
Toda vez que for necessrio trabalhar com arquivo, primeiramente precisamos ABRIR o arquivo. Abrir o
arquivo significa alocar o perifrico (disco, pen drive) em que o arquivo se encontra, e deix-lo disponvel para
leitura/gravao.
Fechamento de Arquivos
Da mesma maneira que precisamos abrir um arquivo antes do processamento, tambm se faz necessrio o
fechamento do mesmo, para que suas informaes no possam ser violadas ou danificadas. Fechar um arquivo
significa liberar o perifrico que estava sendo utilizado.
Voc se lembra da simbologia? Escreva o NOME DE CADA ELEMENTO AO LADO

Leitura de arquivos
Aps abrir um arquivo necessrio LER os dados que esto em disco e transfer-los para a memria. Essa
transferncia feita por registro. Esse procedimento gerenciado pelo prprio sistema operacional.
O smbolo para leitura de arquivo:

Toda vez que abrimos um arquivo ele posiciona o "ponteiro" no primeiro registro, ou seja, no incio do
arquivo. Para que voc possa trabalhar com os dados se torna necessrio saber onde est o ponteiro do registro.
Isso voc pode fazer testando se o ponteiro est no incio (BOF - Bottom Of File) ou no final do arquivo (EOF -
End Of File). Esse sempre executado aps a leitura do registro (mudana da posio do ponteiro).
Simbolicamente voc pode representar esse passo da seguinte maneira. Veja o exemplo de diagrama de bloco
abaixo.
inicio
abrir arquivo
contreg=0
20 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES
ler arquivo
SE fim de arquivo EOF
exibir contreg
fechar arquivo
fim
NAO
contreg = contreg + 1
Volta ler arquivo
Movimentao de registros: Como voc viu na pgina anterior, quando um arquivo aberto o
ponteiro est no primeiro registro. A cada leitura do arquivo o ponteiro se movimenta para o prximo registro e
assim por diante.
Veja a tabela abaixo:
CODIGO DO CLIENTE NOME ENDEREO TELEFONE
Registro 1 1313 JOO DA SILVA R. UM, 200 7759-9887
Registro 2 1314 MARIA JOS R. DIAS, 155 2275-7845
Registro 3 1315 MANOEL DOS SANTOS R. FLORES, 100 7844-8578
Gravao de arquivos: Da mesma maneira que os registros so lidos de um arquivo, tambm
devemos gravar registros em um arquivo.
A gravao consiste na transferncia de um registro da memria, para um perifrico (disco, pen drive).
Macrofluxo: O macrofluxo a representao grfica dos arquivos que sero processados em um programa.
Os dois exemplos de macrofluxo, ao lado, do uma viso geral de como devemos proceder com cada um dos
programas.
O primeiro diz que haver um arquivo de entrada, um processamento e um arquivo de sada. J o segundo
exemplo diz que haver um arquivo de entrada, um processamento, e a sada ser um relatrio.
Exemplo 1
ARQ ENT
PROGRAMA
ARQ SAI
Exemplo 2Z
ARQ CLI
PROGRAMA
RELATRIO
RELATRIOS
A impresso de relatrios o registro de informaes processadas pelo computador em um meio de
armazenamento de dados chamado de formulrio. Para efetuarmos a impresso de relatrios devemos nos
preocupar com os seguintes aspectos:
Caractersticas do formulrio
Controle de linhas e salto de pgina
Impresso de cabealho e esttica da pgina
Impresso de rodap
Caractersticas do formulrio
A maioria dos formulrios possui um formato padro, isto , a quantidade de linhas por pgina e de
caracteres por linha so constantes.
Controle de linhas e salto de pginas
Uma preocupao com impresso de relatrios no permitir que a impressora imprima fora do papel, pois
alm de esteticamente no ficar bom, haveria perda de informaes.
Para controlarmos o nmero de linhas impressas, devemos criar um contador de linha e no deixar o valor
desses contadores ultrapassarem o nmero desejado de linhas por pginas.
Impresso de cabealho e esttica de pgina
Para termos uma idia melhor da esttica do formulrio, veja a tabela ao lado.
Rodap
21 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES
22 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES

Prtica
extremamente importante utilizarmos a lgica e algoritmos para manipulao de dados.
O resultado de um bom trabalho desenvolvido para manipular dados a integridade da informao,
otimizao de recursos e agilidade da aplicao.
Faa o exerccio proposto com ateno e se encontrar dificuldades registre-as no frum para discuti-las com
seus colegas de curso.
Parabns! Voc chegou ao final do Mdulo 07!
MDULO 08 - ESTRUTURAS DE DADOS
INTRODUO A ESTRUTURAS DE DADOS
Agora que voc j sabe o que um algoritmo e j est preparado para utilizar as tcnicas utilizadas para o
desenvolvimento de sequncias lgicas, voc, a partir deste ponto estar se aprofundando e exercitando ainda mais
o seu raciconio abstrato.
O seu objetivo entender os conceitos da organizao e manipulao de informaes em computadores
digitais e compreender os conceitos de tipos abstratos de dados, trabalhar com vetores, matrizes, entender as
tcnicas para manipulao de arquivos, Listas, Filas, Pilhas e rvores.
No esquea que a sua dvida pode ser a de todos, interaja com seu Tutor e no perca a oportunidade de
aprender!
Informao
Voc j sabe que a unidade bsica de informao, para uso em computadores, o dgito binrio (binary digit),
usualmente chamado bit. Um bit pode representar dois estados mutuamente exclusivos (ligado/desligado, zero/um,
verdadeiro/falso, etc.). Por exemplo, uma lmpada pode estar em ligada ou no e, portanto, um bit de
informao. Se for necessrio representar mais que dois estados, ento uma quantidade maior de bits ser utilizada,
como no exemplo a seguir, onde so usados 2 bits para representar um dispositivo de 4 estados:
Como regra, so necessrios n bits para representar 2n estados. Os dgitos 0 e 1 so utilizados para cada
estado possvel de um bit. Assim, vrios bits so indicados por uma sequncia de 0s e 1s. No entanto, nenhum
elemento da seqncia indica que esta representa um dado em particular. Por exemplo, pode-se representar um
inteiro ou um caracter com um conjunto de bits, mas a interpretao depende do criador do conjunto e no dos
seus elementos, nas prximas pginas voc ver quais so os tipos de representao.
Estado bit 0 bit 1
Estado A 0 0
Estado B 0 1
Estado C 1 0
Estado D 1 1
Informao II
Inteiros no negativos
Cada inteiro formado pelas potncias de 2 de cada bit 1 na sequncia, Veja o exemplo abaixo:
23 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES
Em Binrio Convertendo... Em decimais
00100110 2^1+2^2+2^5 = 2 + 4 + 32 38
As posies so numeradas da direita para esquerda, iniciando em zero. Logo, a sequncia 00100110 tem 1s
nas posies 1, 2 e 5. Uma sequncia de n bits pode representar um nmero inteiro entre 0 e 2^n - 1.
INTEIROS
Uma representao de nmeros inteiros negativos pode ser feita pelo complemento de um, mtodo em que
um nmero negativo representado pela inverso individual de cada bit do nmero positivo. Assim, se 00100110
significa 38, 11011001 significa -38.
O bit mais esquerda passa a ser o bit de sinal: se zero, o nmero positivo e se um, negativo. Dados n
bits, pode-se representar um valor entre -2^(n-1) +1 e 2^(n-1) - 1, havendo duas notaes para o zero, +0 e -0,
respectivamente 00000000 e 10000000.
Outra forma o uso do complemento de dois, que soma 1 na representao do complemento de um do
nmero: se 11011001 -38 em complemento de um, 11011010 o mesmo nmero em complemento de dois.
Nesta ltima notao, h uma nica representao para o zero, considerando nmeros de um tamanho fixo, e n bits
denotam valores entre -2^(n-1) e 2^(n-1)-1.
Informao III
Dgitos decimais
Nmeros reais
Nmeros decimais podem ser representados por sequncias de grupos de 4 bits, cada grupo representando
um dgito decimal entre 0 e 9. Por exemplo, 00100110 separado em 0010 (2) e 0110 (6), representando o valor 26
em decimal. Esta notao chamada decimal codificado em binrio (binary coded decimal - bcd).
Nota
Valor decimal Mantissa Base Expoente Sequncia Hexadecimal
0000 0000 0000 0000
0 0 10 0 00 00 00 00 H
0000 0000 0000 0000
0000 0000 0000 0000
100 1 10 2 00 00 01 02 H
0000 0001 0000 0010
0000 0000 0000 0000
0.5 5 10 -1
0000 0101 1111 1111
0000 0000 0000 0000
12000 12 10 3
0000 1100 0000 0011
1111 1111 1111 1111
-12000 -12 10 3
1111 0100 0000 0011
256 256 10 0
NMEROS REAIS
O mtodo usual para representao de nmeros reais a notao de ponto flutuante, onde o valor
representado por um nmero, chamado mantissa, multiplicado por uma base, geralmente fixa, elevada a uma
potncia inteira, chamada expoente.
Assim, o valor v denotado por v = mantissa x base ^ expoente. Numa sequncia de 32 bits, com mantissa de
24 e expoente de 8bits, o valor 387,53 pode ser expresso como 000000001001011101100001 (= 38753)
multiplicado por dez elevado a 11111110 (-2), formando a sequncia 00000000100101110110000111111110.
Informao IV
Cadeias de caracteres
Dados de oito bits, podem ser representados com 256 diferentes caracteres. Ento, cada caractere
denotado por um padro de bits, escolhido arbitrariamente. conveniente que o padro escolhido facilite a
intercomunicao de sistemas e operaes sobre os dados (por exemplo, ordenao).
Na codificao ASCII, a sequncia 00100110 indica o smbolo &. O caractere A representado por 1100 0000,
B por 1100 0001, etc. A cadeia AB, com efeito, formada por 1100 00001100 0001.
INFORMAO DIGITAL
A informao digital, ento, no tem significado por si mesma. A interpretao de um padro de bits que
fornece o seu significado. Um mtodo de interpretao de padres de bits chamado freqentemente de tipo de
dados.
24 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES
"A memria de um computador simplesmente um grupo de bits. Em qualquer instante da operao do
computador, qualquer particular bit da memria est em um estado 0 ou 1, chamado valor ou contedo deste
bit."
INFORMAO DIGITAL
Os bits so agrupados em unidades maiores, chamadas bytes. Estas, por sua vez, so agrupadas em palavras
(words). A cada uma destas unidades atribudo um endereo, que um nome identificando aquela unidade entre
todas as demais. O endereo usualmente numrico e, da, pode-se referenciar o byte 500, a word 2048 etc.
Cada computador tem um conjunto de tipos de dados nativos, isto , sua construo prov mecanismos para
manipular os padres de bits consistentemente com os objetos que estes representam. Por exemplo, a adio de
dois nmeros inteiros envolve instrues que interpretam corretamente os padres de bits, produzem um terceiro
padro que representa a soma dos dois primeiros e o armazena em um endereo especfico. Se a mesma operao
feita com nmeros reais, um conjunto diferente de instrues deve ser executado, para que os padres de bits
representando valores reais sejam corretamente interpretados.
de responsabilidade do programador escolher o conjunto de instrues apropriado aos seus propsitos.
Neste ponto, uma linguagem de alto nvel pode ajudar consideravelmente. Veja o exemplo, ao lado, codificado em
Linguagem C.
int num1, num2;
float v_real1, v_real2;
num1 = num1 + num2;
v_real1 = v_real1 + v_real2;
};
INFORMAO DIGITAL II
O compilador reserva espao para quatro diferentes nmeros. Estes espaos so referenciados pelos
identificadores num1, num2, v_real1 e v_real2, usados em substituio aos endereos numricos para uma
manipulao mais conveniente. Os valores inteiros sero interpretados como inteiros e os reais como reais, sendo
da responsabilidade do compilador a correta traduo das declaraes nas respectivas instrues do computador.
Neste sentido, o operador "+" um operador genrico, pois tem diferentes significados dependendo do contexto
em que est.
As declaraes de uma linguagem de alto nvel especificam como o contedo da memria do computador
interpretado pelo programa, especificando quanta memria necessria para um objeto especfico, qual a
interpretao do contedo deste objeto e outras informaes essenciais. Especificam, tambm, qual o significado
exato dos operadores que so utilizados a partir delas
Um tipo de dados pode ser entendido como um mtodo para interpretar os padres de bits em memria. No
entanto, pode ser visto de uma perspectiva totalmente diferente, no mais em relao s funes implementadas
eletronicamente no computador, mas em relao ao ponto de vista do usurio e das suas expectativas.
{
int num1, num2;
float v_real1, v_real2;
num1 = num1 + num2;
v_real1 = v_real1 + v_real2;
};
PONTEIROS EM C
A linguagem C permite a criao de ponteiros, que so referncias a endereos de memria ou, dito de outra
forma, referncia a localizaes de objetos.
Assim, se valor_1 uma varivel, &valor_1 o endereo onde o contedo da varivel est armazenado e
recebe o nome de ponteiro. Uma varivel pode ser declarada como sendo um ponteiro para um tipo de dados,
como no exemplo:
int * valor_inteiro;
float * valor_ptoflut;
char * valor_caracter;
Pode-se atribuir valores a ponteiros, copi-los para outros ponteiros ou executar operaes de aritmtica de
ponteiros (+ e -). Veja o exemplo ao lado:
valor_inteiro = &valor_1;
/* atribuindo valores */
valor_auxiliar = valor_inteiro;
/* copiando ponteiros */
25 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES
valor_auxiliar = 256;
/* atribuindo valor ao endereo referenciado */
valor_controle = valor_auxiliar;
/* resgatando valor do endereo referenciado */
valor_inteiro++;
/* apontando para o proximo inteiro na memria */
valor_auxiliar--;
/* apontando para o inteiro anterior na memria */
printf("%i\n",*valor_auxiliar);
/* exibe na tela a varivel */
MDULO 09 - INFORMAES DIGITAIS E REGISTROS
Variveis
Variveis compostas homogneas
Assim como na teoria dos conjuntos, uma varivel pode ser interpretada como um elemento e uma estrutura
de dados como um conjunto.
Quando uma determinada estrutura de dados for composta de variveis com o mesmo tipo primitivo, temos
um conjunto homogneo de dados. Voc pode considerar que uma varivel composta homognea seja como uma
manada de elefantes, e seus elementos (variveis) sejam como os prprios elefantes (que so da mesma espcie).
Vamos, novamente, utilizar uma analogia. Imaginemos um edifcio com um nmero finito de andares,
representando uma estrutura de dados, e seus andares, parties dessa estrutura. Visto que os andares so uma
segmentao direta do prdio, estes compem ento o que chamado de estrutura unidimensional (uma
dimenso).
Voc agora j sabe o que um vetor e nas prximas pginas voc estar aprendendo como declar-los e
manipul-los.
Variveis II
Declarao de vetores
Veja, abaixo, como declarar um vetor:
Onde:
LI - representa o limite inicial do vetor
LF - representa o limite final do vetor
<tipo> - representa qualquer um dos tipos bsicos ou tipo anteriormente definido
Lista de variveis - lista de variveis (separadas por vrgulas) que tero o mesmo tipo denotado por VARIVEL.
Voc pode criar uma estrutura de dados, utilizando um vetor, para armazenar as notas de alunos de uma
determinada classe. Veja o exemplo ao lado:
tipo VARIVEL = vetor [LI..LF] de ;
VARIVEL: lista de variveis;
Exemplo:
tipo CLASSE = vetor[1..40] de reais;
CLASSE: VCLASSE;
7,5 8,5 9,5 6,5 ......... 7,5 2,5
1 2 3 4 39 40
Variveis III
Declarao de vetores
Podemos notar, no exemplo anterior, que LI e LF devem ser obrigatoriamente constantes e LI > LF.
O nmero de elementos do vetor ser dado por LF - LI + 1. Isto significa que as posies do vetor so
identificadas a partir de LI, com incrementos unitrios, at LF.

LI LI + 1 LI + 2 LF - 1 LF
Manipulao
Ao imaginar o elevador de um prdio, sabemos que este capaz de acessar qualquer um de seus andares.
Entretanto, no basta saber que andar desejamos atingir se no soubermos o nome do edifcio, pois qualquer um
possui andares. O que precisamos de antemo saber o nome do edifcio e s ento nos preocuparmos para qual
daqueles andares queremos ir.
26 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES
Manipulando variveis
O mesmo acontece com vetores , vistos que so compostos por diversas variveis e, como podem existir
muitos vetores, torna-se necessrio determinar primeiro qual vetor contm o dado necessrio e depois especificar
em qual posio este se encontra.
Veja o exemplo abaixo:
VCLASSE [3]
..........
1 2 39 40
O nome do vetor determinado por meio do identificador que foi utilizado na definio de variveis, e a
posio, por meio da constante, expresso aritmtica ou varivel que estiver dentro dos conchetes, tambm
denominada NDICE.
Aps isolar um nico elemento do vetor, voc poder manipul-lo atravs de qualquer operao de entrada,
sada ou atribuio.
Exemplo:
V [3] <- 30;
leia (V[3]);
escreva (V[3]);
Manipulando variveis II
As estruturas de dados so estritamente relacionadas com o algoritmo. Ento, para voc entender e solidificar
seus conhecimentos, utilizaremos alguns algoritmos em portugus estruturado que calcule a mdia aritmtica geral
de uma classe com dez alunos e imprima a quantidade de notas acima da mdia.
Analise e entenda o algoritmo ao lado.
Voc deve estar se perguntando em como proceder a contagem dos alunos com nota acima da mdia da
turma, faz-se necessria a comparao de cada uma das dez notas com o contedo da varivel MEDT. Entretanto,
todas as notas foram lidas em uma mesma varivel, e seu valor foi acumulado em uma segunda varivel a fim de
poder calcular a mdia. Isto implica que ao ter calculado a mdia, no teramos acesso as nove notas anteriores que
o algoritmo descartou. Para corrigir este problema voc poderia utilizar uma varivel para cada nota
Veja o exemplo:
incio
{declarao de variveis}
real: MED, {mdia anual de um dado aluno}
ACUM, {acumulador}
MEDT; {mdia anual da turma}
inteiro: CONT; {contador}
CONT = 0;
ACUM = 0;
faa enquanto CONT < 10 {condio}
leia (MED);
ACUM = ACUM + MED;
CONT = CONT + 1;
fim enquanto;
MEDT = ACUM / 10;
escreva ("Mdia anual da Turma = ", MEDT);
fim.
Manipulando variveis III
O algoritmo ao lado torna-se impraticvel para uma grande quantidade de notas. Voc concorda?
Seria muito mais coerente se usssemos uma s varivel que contm muitas outras, isto , um vetor,
armazenando cada nota numa posio diferente do mesmo.
Se voc quiser parar em todos os andares, bastaria apertar todos os botes. Em outras palavras, teramos de
"apertar boto" vrias vezes, s que a cada vez seria um boto diferente (haveria uma variao) exatamente o
mesmo poderamos fazer para acessar todos os elementos de um vetor: bastaria utilizar uma varivel como ndice, a
qual teria sua variao controlada de acordo com nossa convenincia.
incio
{declarao de variveis}
inteiro: A,B,C,D,E,F,G,H,I,J,NOTACIMA;
real: MEDIA;
27 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES
notacima = 0;
leia (A,B,C,D,E,F,G,H,I,J);
MEDIA = (A,B,C,D,E,F,G,H,I,J)/10;
se A > MEDIA entao NOTACIMA=NOTACIMA+1;
se B > MEDIA entao NOTACIMA=NOTACIMA+1;
se C > MEDIA entao NOTACIMA=NOTACIMA+1;
se D > MEDIA entao NOTACIMA=NOTACIMA+1;
se E > MEDIA entao NOTACIMA=NOTACIMA+1;
se F > MEDIA entao NOTACIMA=NOTACIMA+1;
se G > MEDIA entao NOTACIMA=NOTACIMA+1;
se H > MEDIA entao NOTACIMA=NOTACIMA+1;
se I > MEDIA entao NOTACIMA=NOTACIMA+1;
se J > MEDIA entao NOTACIMA=NOTACIMA+1;
escreva (NOTACIMA);
fim.
Manipulando variveis IV
Rescrevendo o exemplo, teramos o seguinte algoritmo:
incio
{definio de tipos}
tipo CLASSE = vetor [1..10] de reais;
{declarao de variveis}
CLASSE: VCLASSE;
real: SOMA, MDIA;
inteiro: NOTACIMA, X;
SOMA: 0;
NOTACIMA: 0;
para X de 1 at 10 faa
leia (VCLASSE [X]);
fim para;
para X de 1 at 10 faa
leia SOMA = SOMA+VCLASSE[X]
fim para;
MEDIA = SOMA/10;
para X de 1 at 10 faa
se VCLASSE[X] > MEDIA ento NOTACIMA
= NOTACIMA + 1
fim se;
fim para;
escreva (NOTACIMA);
fim.
Variveis compostas multidimensionais
Suponha que , alm do acesso pelo elevador at determinado andar, tenhamos tambm a diviso desse andar
em apartamentos. Para chegar a algum deles no basta s o nmero do andar, precisamos tambm do nmero do
apartamento.
Os vetores tm como principal caracterstica a necessidade de apenas um ndice para endereamento - so
estruturas unidimensionais.
Uma estrutura que precisasse de mais de um ndice, como no caso do edifcio dividido em apartamentos,
seria ento denominada estrutura composta multidimensional, neste caso, de duas dimenses (bidimensional).
Voc pode tambm chamar estas estruturas de matrizes.
Variveis compostas multidimensionais II
Declarao de matrizes
Veja, abaixo, como declarar uma matriz:
tipo VARIVEL = matriz [LI1..LF1, LI2..LF2,...LIn..LFn] de tipo;
VARIVEL: lista de variveis;
Onde:
LI1..LF1,LI2..LF2,...,LIn..LFn - so os limites dos intervalos de variao dos ndices da varivel, onde cada par de
limites est associado a um ndice.
28 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES
tipo - representa qualquer um dos tipos bsicos ou tipo anteriormente definido.
lista de variveis - lista de variveis (separadas por vrgulas) que tero o mesmo tipo denotado por VARIVEL.
tipo SALA = matriz[1..4,1..4] de inteiros;
SALA: MSALA;
O nmero de dimenses da matriz igual ao nmero de intervalos.
O nmero de elementos igual ao produto do nmero de elementos de cada dimenso: (LF1 - LI1+1)*(LF2-
LI2+1)*...*(LFn-LIn+1).
Exemplo:
tipo M = matriz[1..3,2..4,3..4] de reais;
M: MAT;
MAT tem trs dimenses e (3-1+1) * (4-2+1) * (4-3+1) = 18 elementos
MSALA tem duas dimenses e (4-1+1) * (4-1+1) = 16 elementos
Variveis compostas multidimensionais III
Manipulao
Para acessar um elemento em uma matriz precisamos, como num edifcio, de seu nome, de seu andar e do
nmero de seu apartamento. Considerando uma estrutura bidimensional (dois ndices: andar e apartamento), o
primeiro ndice indica a linha e o segundo, a coluna.
Exemplo:

Para matrizes com trs dimenses, repete-se a estrutura bidimensional tantas vezes quantos forem os
elementos da terceira dimenso, numerando-as de acordo com os limites especificados na declarao de tipo.
Variveis compostas multidimensionais IV
Manipulao
Exemplo:
A matriz MAT poderia ser representada por:
2 3 4 2 3 4
1 1
2 2
3 3
3 4
MAT
O elemento assinalado na figura anterior corresponde a MAT [2,3,4].
Observando mais profundamente, percebemos que uma estrutura composta multidimensional na realidade
um conjunto de vetores que so determinados por cada intervalo que compem o tipo matriz.
Para utilizar o vetor, ns o inserimos em um nico lao de repetio, fazendo com que haja variao de seu
ndice. Como em uma estrutura multidimensional possumos mais de um ndice, faz-se necessria a utilizao de
mais laos de repetio em mesmo nmero do que o nmero de dimenses da matriz.
Variveis compostas multidimensionais V
Manipulao
As matrizes mais utilizadas so as bidimensionais, devido a sua direta relao com muitas aplicaes (por
exemplo, tabelas), que devem possuir dois laos de repetio. Uma aplicao prtica deste exemplo um jogo de
azar muito conhecido, a loteria esportiva.
1 X 2
1 ___ Remo _ Paissand ___
29 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES
_ ___ _
___ _ ___
2 So Paulo Palmeiras
_ ___ _
___ _ ___
3 Bahia Fortaleza
_ ___ _
___ _ ___
4 Gremio Internacional
_ ___ _
___ _ ___
5 Bangu Botafogo
_ ___ _
___ _ ___
6 Ponte Preta Guarani
_ ___ _
___ _ ___
7 Corinthians Portuguesa
_ ___ _
___ _ ___
8 Atltico MG Cruzeiro
_ ___ _
___ _ ___
9 Atltico Botafogo SP
_ ___ _
___ _ ___
10 Juventude Coritiba
_ ___ _
___ _ ___
11 Flamengo Fluminense
_ ___ _
___ _ ___
12 Olaria Vasco
_ ___ _
___ _
13 River Santos
_ ___
Variveis compostas multidimensionais VI
Manipulao
Voc preencheu o carto da Loteria Esportiva e agora voc deseja saber qual o jogo que possui mais
marcaes, ou seja, qual dos 13 jogos possui um triplo, ou se este no existir, um duplo.
Como cada jogo esta disposto em trs parties, voc ter de avaliar se cada uma delas possui ou no uma
marcao "X" e, em segueguida, avaliar o prximo jogo do mesmo modo. Resumindo, para cada linha voc
percorrer todas as colunas.
Para percorrer a matriz desta forma, voc deve:
Fixar a linha
Variar a coluna
Outro problema seria descobrir qual das colunas do carto possui mais marcaes, se a coluna um, a coluna
dois ou a coluna do meio.
Para resolver essa questo, voc precisar determinar quantas marcaes existem em cada coluna e verificar
qual dos trs valores o maior. Neste caso, voc estar invertendo o modo de percorrer a matriz, verificando todas
as linhas de uma coluna e seguindo depois para a prxima coluna.
Para percorrer a matriz desta forma, voc deve:
Veja o algoritmo!
Algoritmo
incio
{definio de tipos} se QTMARLIN > QTMAR entao
tipo JOGO = matriz [1..13,1..3] de incio
caracteres; QTMAR = QTMARLIN;
{declarao de variveis} NJOGO = LIN
JOGO: MJOGO; {nome da matriz} fim;
inteiro: LIN, {ndice para linha} fim se;
COL, {ndice para fim para;
coluna} escreva ("Jogo Mais Marcado: ",
QTMAR, {maior nmero NJOGO);
30 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES
de marcaes encontrado} escreva ("Qtde. de marcaes: ",
NJOGO, {nmero do QTDMAR);
jogo com mais marcaes} fim.
QTMARLIN; {Nmero de
marcaes em uma linha}
QTMAR=0;
para LIN de 1 at 13 faa
QTMARLIN=0;
para COL de 1 at 3 faa
se MJOGO[LIN,COL] =
"X" entao
QTMARLIN = QTMARLIN + 1;
fim se
fim para;
Outro problema seria descobrir qual das colunas do carto possui mais marcaes, se a coluna um, a coluna
dois ou a coluna do meio.
Para resolver essa questo, voc precisar determinar quantas marcaes existem em cada coluna e verificar
qual dos trs valores o maior. Neste caso, voc estar invertendo o modo de percorrer a matriz, verificando todas
as linhas de uma coluna e seguindo depois para a prxima coluna.
Para percorrer a matriz desta forma, voc deve:
Fixar a coluna
Variar a linha
Veja o algoritmo!
Algoritmo
incio
{definio de tipos}
tipo JOGO = matriz [1..13,1..3] de caracteres;
{declarao de variveis}
JOGO: MJOGO; {nome da matriz}
inteiro: LIN, {ndice para linha}
COL, {ndice para coluna}
QTMAR, {maior nmero de marcaes encontrado}
NCOL, {nmero da coluna com mais marcaes}
QTMARCOL; {Nmero de marcaes em uma coluna}
QTMAR=0;
para COL de 1 at3 faa
QTMARCOL=0;
para LIN de 1 at 13 faa
se MJOGO[LIN,COL] = "X" entao
QTMARCOL = QTMARCOL + 1;
fim se
fim para;
se QTMARCOL > QTMAR entao
incio
QTMAR = QTMARCOL;
NCOLUNA = COL;
fim;
fim se;
fim para;
escreva ("Coluna mais Marcada: ", NCOL);
escreva ("Qtde. de marcaes: ", QTDMAR);
fim.
Registro
Uma das principais estruturas de dados o registro. Para exemplificar, imagine uma passagem de avio, que
formada por um conjunto de informaes logicamente relacionadas, porm de tipos diferentes, tais como nmero
da passagem (inteiro), origem e destino (caractere), data (caractere), horrio (caractere), poltrona (inteiro),
31 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES
distncia (real), fumante (lgico), que so subdivises do registro (elementos do conjunto), tambm chamadas de
campos. Logo, um registro composto por campos que so partes que especificam cada uma das informaes.
Declarao
tipo VARIVEL = registro
tipo1 : campo1;
tipo2 : campo2;
..
tipoN : campoN;
fim registro;
VARIVEL : lista de variveis;
Registros II
Onde:
VARIVEL - representa o nome associado ao tipo de registro construdo.
tipo1, tipo2, tipoN - representam qualquer um dos tipos bsicos ou tipo anteriormente definido.
campo1, campo2, campoN - representam nomes associados a cada campo de registro.
lista de variveis - lista de variveis (separadas por vrgulas) que tero o mesmo tipo denotado por VARIVEL.
O exemplo, ao lado, corresponde definio de um modelo REGPASSAGEM de um registro e criao de
uma rea de memria chamada passagem, capaz de conter oito subdivises.
Exemplo:
tipo REGPASSAGEM = registro
inteiro : nmero;
caractere : origem;
caractere : destino;
caractere : data;
caractere : horrio;
inteiro : poltrona;
real : distncia;
lgico : fumante;
fim registro;
REGPASSAGEM : passagem;
Registro III
Manipulao
Em determinados momentos voc pode precisar de todas as informaes contidas no registro (PASSAGEM)
ou de apenas algum campo do registro (como frequentemente, o nmero da poltrona).
Quando voc acessa um registro genericamente, voc esta se referenciando obrigatoriamente todos os
campos por ele envolvidos. Exemplo:
leia (PASSAGEM);
escreva (PASSAGEM.FUMANTE);
leia (PASSAGEM.POLTRONA);
escreva (PASSAGEM.FUMANTE);
Para utilizar um campo especfico do registro, voc deve diferenciar esse campo. Para tal voc utilizar o
caractere "." (ponto) para estabelecer a separao do nome do registro do nome do campo
leia (PASSAGEM.POLTRONA);
escreva (PASSAGEM.FUMANTE);
Exemplo: Utilizando o registro PASSAGEM

incio
{definies anteriores}
.
.
.
leia(PASSAGEM.NMERO); {acesso especfico a um campo do registro}
leia(PASSAGEM.ORIGEM); {acesso especfico a um campo do registro}
leia(PASSAGEM.DESTINO); {acesso especfico a um campo do registro}
.
.
.
32 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES
escreva(PASSAGEM); {acesso genrico ao registro}
fim
Registro IV
Registro de conjuntos
Os registros vistos at agora possuam em seus campos apenas informaes de tipos primitivos, entretanto,
voc pode dispor tambm campos que so compostos, ou seja, formados por outros tipos construdos.
Digamos que voc possui um registro de estoque de um produto contendo como um de seus campos um
valor numrico que indique baixas por dia do produto, por dia da semana. Temos ento, um valor de seis posies,
no qual cada posio corresponde a um dia til da semana.
Nome:Cdigo: Preo:
Baixa:
1 2 3 4 5 6

Registro V
Declarao
Para declarar o tipo de registro da pgina anterior, voc pode utilizar um tipo construdo: o vetor. Voc
precisar primeiramente declarar tal tipo, e depois o tipo de registro, isto , voc precisar declarar todos os
conjuntos que sero includos no registro antes da sua declarao.
Exemplo:
tipo VDIAS = vetor[1...6] de inteiros
tipo REGPROG = registro
caractere : nome;
inteiro : cdigo;
real : preo;
VDIAS : baixa;
fim registro;
REGPROD : produto;
Registro VI
Manipulao
A manipulao de um registro de conjuntos deve obedecer s manipulaes prprias de cada estrutura de
dados anteriormente definida.
Exemplo: para acessar o quanto foi vendido do produto no terceiro dia da semana da quarta semana,
teramos:
PRODUTO.BAIXA[4,3]
Se voc necessitar obter do registro o nome do produto, o cdigo, o preo e as baixas da segunda semana o
trecho do algoritmo seria:
incio
{definies anteriores}
.
.
.
escreva(PRODUTO.NOME);
escreva(PRODUTO.CDIGO);
escreva(PRODUTO.PREO);
para J de 1 at 5 faa
escreva(PRODUTO2.BAIXA[2,J]);
fim para
.
.
fim
REGISTRO VII - CONJUNTO DE REGISTROS
Nas estruturas compostas homogneas (vetores e matrizes) utilizamos tipos de dados primitivos como sendo
os elementos dessas estruturas. Agora voc utilizar como componente dessa estrutura no apenas um tipo
primitivo, mas sim os tipos construdos, neste caso os registros. Supondo que quisssemos manter um registro de
informaes relativas a passagens areas de todos os lugares de um avio, voc poderia utilizar um registro
33 U.E. Edgar Tito DESEN.O PENSAMENTO COMPUTACIONAL PROF. RANILDO LOPES
referente a cada poltrona (PASSAGEM), e para agrupar todos eles voc poderia utilizar um conjunto desses
registros.
O seu avio possui 12 lugares, numerados sequencialmente de 1 a 12, voc pode, para uni-los, criar um vetor
no qual cada posio um elemento de tipo construdo do registro (PASSAGEM).
1 Nmero: 0001 Fumante:
2 De: Para:
Data: / / Horrio:
3 Poltrona: Destino:
...
12
Registro VIII
Declarao
No exemplo anterior voc possui um vetor composto por registros. Voc no poder declarar este vetor sem
antes ter declarado seus elementos.Portanto, voc deve declarar primeiro o tipo construdo de registro e depois o
vetor.
Exemplo:
tipo REPASSAGEM = registro
inteiro : nmero;
caractere : origem, destino;
caractere : data, horrio;
inteiro : poltrona;
real : distncia;
lgico : fumante;
fim registro;
tipo VETPASSAGEM = vetor[1...12] de REPASSAGEM;
VETPASSAGEM : AVIO
Registro IX
Manipulao
Ao acessar as informaes contidas em um conjunto de registros, voc pode utilizar o modo de acesso
caracterstico de cada estrutura.
Exemplo: para saber a baixa do dcimo produto, da terceira semana do ms e do quarto dia da semana, voc
escreveria:
PRODUTO[10].BAIXA[3,4]
Para obter um algoritmo que imprima o total de movimentao do estoque para cada um dos 500 produtos o
algoritmo seria:
incio
{definio anteriores}
.
para N de 1 at 500 faa
ACM = 0;
para I de 1 at 4 faa
para J de 1 at 6 faa
ACM = ACM + PRODUTO[N].BAIXA[I,J];
fim para
fim para
escreve (PRODUTO[N].NOME,ACM);
fim para
.
fim para.
Prtica
Variveis sero sempre utilizadas em suas aplicaes. Por isso muito importante que voc tenha entendido
seus conceitos e funcionalidades.
Faa o exerccio proposto com ateno e se encontrar dificuldades registre-as no frum para discuti-las com
seus colegas de curso.

Das könnte Ihnen auch gefallen