You are on page 1of 90

Algoritmo

e Programao Curso de Engenharia Inform9ca - Nocturno 1 Ano / 1 Semestre Prof. Lualuiso Sampaio Velho
Ano Lec9vo 2013

Objec&vos
A disciplina de Algoritmo e Programao consiste em: Permi9r o desenvolvimento do raciocnio lgico Aprender as tcnicas de resoluo de problemas por meio de algoritmos Criar e manipular estruturas de dados Introduzir a u9lizao de linguagens de alto nvel U9lizar os conhecimentos adquiridos durante as aulas para desenvolver programas de computadores.

Avaliao

Os estudantes sero avaliados nas componentes pr9cas e tericas: Avaliaes conTnuas Prova parcelares Exame nal escrito Projecto em grupo de duas (2) pessoas

Metodologia
As aulas so ministradas de forma Terica / Pr9ca Assuntos de interesse geral devero ser tratados na sala de aula. Em questo de dvidas, podero u9lizar o endereo eletrnico: apisptec@gmail.com

Programa da Disciplina
1. Conceitos sobre a inform9ca Denio e surgimento da Inform9ca Computador: denio, funcionamento, geraes de computadores, esquema de um computador, arquitectura, classicao dos computadores 2. Algoritmo Conceito de Algoritmo Tcnicas de Resoluo de problemas Formas de representao dos Algoritmos Tipos de Dados Variveis 3. Expresses Operadores Aritm9cos Expresses Aritm9cas Precedncias gerais dos operadores aritm9cos

Programa da Disciplina
3. Expresses (cont) Operadores Lgicos Expresses Lgicas Operadores Relacionais Estrutura Condicional

4. Estruturas de Repe9o

Denio e 9pos existentes Importncia das Estruturas de Repe9o na construo de um Algoritmo Variveis compostas homogneas Unidimensional e Mul9dimensional(Denio, declarao e manipulao)

5. Estrutura de Dados

6.

Projecto Final da Disciplina

Nota: Cada captulo ser acompanhado por um conjunto de Exerccios a serem resolvidos na sala de aula e/ou Tarefa para Casa

Bibliograa
Barbosa, LisbeteMadsen. Ensino de Algoritmos em cursos de Computao. Educ. 2001 Boente, Alfredo. Construindo Algoritmos Computacionais: Lgica de Programao. Rio de Janeiro: Basport, 2003 CORMEN, Thomas H (et al.). Algoritmos: Teoria e Pr9ca. Rio de Janeiro: Ed. Campus, 2002 FARBELLONE, Andr Luiz Villar,; ERBERSPACHER, Henri Freederico. Lgica de Programao: A construo de Algoritmo e Estrutura de Dados. So Paulo, Editora Pearson Fren9ce Hall, 2005 SOUZA, Marco Antnio Furlan de. Algoritmos e Lgica de Programao. So Paulo: Thomson, 2005

CAP. I: Conceitos sobre a Inform&ca


O Termo inform9ca foi criado pelo cien9sta francs Philips Dreyfus em 1962, com sendo resultado dos termos: Informao + Autom9ca Inform9ca denida como a cincia que estuda o tratamento autom9co da Informao tendo como suporte o computador. Informao: dene o conjunto de dados bem estruturados que geram o conhecimento de um determinado assunto ou tem9ca. Ex: Conjunto de dados do B.I de um indivduo Autom9ca: dene a forma de como a informao manipulada.

CAP. I: Conceitos sobre a Inform&ca


Dados consiste em factos ob9dos a par9r de uma observao, levantamento ou ocorrncia. Caracters9cas da Informao Intangibilidade (no possui existncia psica) U&lidade (deve corresponder aos objec9vos a a9ngir) Codicao (Para receber a informao, o receptor deve conhecer o cdigo em que foi transmi9da) Tempo (a informao pode variar dependendo do tempo)

CAP. I: Conceitos sobre a Inform&ca


Computador: designado ao conjunto de disposi9vos electrnicos capazes de receber dados, process-los de forma autom9ca e fornecer resultados. COMPUTADOR = HARDWARE + SOFTWARE Hardware: dene a parte psica de um computador. Ex: Monitor, teclado, mouse, etc. Sotware: Dene a parte lgica de um computador. Ex: Sistema opera9vo, programas aplica9vos, etc. Funes principais: Receber dados Processar dados Armazenar dados Mostrar resultado

CAP. I: Conceitos sobre a Inform&ca


Os sotwares so dis9nguidos em Sotware de Sistema e Sotware de Aplicao. Sotware de Sistema: o elo de ligao entre o homem e o computador. Isto , todo o programa que permite dar vida ao computador. Ex: Sistema Opera9vo. Sotware de Aplicao: todo o programa que facilita a realizao das nossas tarefas. Ex: Oce, programas de jogos, Autocad, windows media player, etc. Para podermos u9lizar os sotwares de aplicao, necessrio a existncia de um sistema opera9vo instalado no computador. Caso contrrio, consis9r em uma simples mquina que no sa9sfaz as nossas necessidades. Sistema Opera9vo: todo o programa que efectua a gesto de todas as tarefas a serem executadas no computador bem como a gesto de recursos (drive de CD, Impressora, etc). So exemplos de sistemas opera9vos: Windows Vista, Windows 8, Mac OS x , Linux (Ubuntu, Xubuntu, Fedora), etc.

CAP. I: Conceitos sobre a Inform&ca Arquitectura do Computador


Dene a estrutura de um computador, bem como a interao entre os elementos que o cons9tuem para obter o resultado desejado. A Arquitectura a ser estudada denominada Arquitectura de Von Neumann. representada pelos perifricos de Entrada, Sada, Memrias e a Unidade Central de Processamento. Ver a gura abaixo:

Fig.1 Arquitectura de Von Neumann

CAP. I: Conceitos sobre a Inform&ca Arquitectura do Computador


Perifrico de Entrada: todo o disposi9vo que permite a insero de dados no computador. Ex: Teclado, leitor de cdigo de barras, rato, Scanner, etc. Perifrico de Sada: todo o disposi9vo que permite a visualizao da informao aps o seu processamento. Perifrico de E/S: permitem a comunicao entre o homem e o computador ou vice-versa. Ex: Pendrives, disco rgido, drive de CD, drive de disquete, etc. CPU (Unidade Central de Processamento): considerado como o crebro do computador, pois nela em que os dados so manipulados e os clculos so feitos. cons9tuda por dois (2) componentes principais: Unidade de Controlo (UC) e a Unidade Aritm9ca e Lgica (ULA). A unidade de Controlo, carrega as instrues na Memria principal, interpreta e executa e a ULA responsvel pela execuo de clculos aritm9cos e Lgicos. Memria: so disposi9vos capazes de armazenar dados e/ou instrues.

CAP. I: Conceitos sobre a Inform&ca


Funcionamento
Primeiramente quando ligamos o computador, carregado o sotware de inicializao (Boot), que verica o estado de cada hardware e se est pronto para ser usado. A seguir, carregado o sistema opera9vo junto com outros os programas que entram em execuo logo que o computador ligado. necessrio ter em conta que toda a informao que circula no computador no passada com a nossa linguagem (natural), mas sim um conjunto de cdigos binrios denominados bits (menor unidade de representao da informao no computador). Quando digitamos uma letra apar9r do teclado, na verdade esta letra passa por uma converso e s assim que ela manipulada. Aps o envio de um comando (qualquer aco feita pelo disposi9vo de entrada), o processador interpreta este comando (responsabilidade da U.C), e carrega as instrues con9das na memria primria para a sua execuo. Caso seja necessrio efectuar algum clculo lgico ou aritm9co, a U.C trata de encaminhar para a ULA para serem executados. S aps toda a operao de processamento dos dados e execuo de instrues que so a9vados os sinais de sada para podemos obter o resultado desejado.

CAP. I: Conceitos sobre a Inform&ca


Geraes de Computadores
Tudo comeou com a necessidade do ser humano efectuar clculos, sendo que a contagem com os dedos, pedras e paus tornaram-se insuciente para a9ngir os melhores xitos nas suas ac9vidades. Foi a par9r desta fase que surgiu o baco inventado pelos Chineses a aproximadamente 1.000 a.c (placa de madeira com arames e pequenas pedrinhas que podiam ser movidas) para auxiliar nas operaes aritm9cas. J em 1612, foi desenvolvida a primeira calculadora port9l por John Napierque se chamou Ossos de Napier que eram cons9tuidos por um conjunto de bastes para realizar as mul9plicaes por meio de adies.

Fig.2 baco

Fig.3 Ossos de Napier

CAP. I: Conceitos sobre a Inform&ca


Geraes de Computadores
Em 1642, o matem9co Blaise Pascal criou uma mquina calculadora mecnica que efectuava as operaes de adio e subtrao denominada Pascaline, com o intuito de ajudar nos negcios do seu pai. Para o caso das mul9plicaes e divises, efectuava somas e subtraes sucessivas. Em 1801 na Frana, Joseph Jacquard criou uma mquina de tear que usava cartes perfurados onde con9nha a congurao dos modelos de tecidos a serem produzidos, com intuito de subs9tuir o trabalho humano.

Fig.1.4 Somador Pascaline

Fig. 1.5 Tear de Jacquard

CAP. I: Conceitos sobre a Inform&ca


Geraes de Computadores
J em 1822, Charles Babbage comea a projectar uma mquina a vapor programvel denominada mquina de diferenas que efectuava apenas adies; aps 10 anos, Babbage pensou em criar uma mquina que pudesse realizar qualquer 9po de clculo tendo como principio bsico a programao, foi denominada como mquina anal9ca. Esta mquina seria alimentada por cartes, usando o conceito de cartes perfurados de Jacquard mas para armazenar instrues e dados. Ela no foi concluda por descrdito dos seus nanciadores, mas a sua colaboradora Ada King (Ada Lovelace) props programas e ainda tcnicas de programao para a referida mquina. Ada Lovelacetornou-se a primeira programadora do mundo e Charles Babbage como o pai da Computao.

Fig. 1.6 Mquina de diferenas de Babbage

CAP. I: Conceitos sobre a Inform&ca


Geraes de Computadores
Em 1890, o norte americano Hermann Hollerith projectou um tabulador electromecnico, que processava automa9camente os cartes perfurados que era um instrumento essencial para entrada de dados; originando assim o nome de processamento de dados. Cartes perfurados: carto de papel perfurado em cdigo BCD (BinaryCoded Decimal), era usado para recolha de dados no censo de 1890 nos EUA.

Fig. 1.7 Tabulador de Hollerith

Fig. 1.8 Cartes perfurados de Hollerith

CAP. I: Conceitos sobre a Inform&ca


1 Gerao de Computadores
Z1 de Konrad Zuseprojectado em 1936 a par9r de rels, executavam os clculos e dados lidos em tas perfuradas. Tornou-se assim no primeiro computador electro-mecnico. Em 1944 Howard Aikenconcebeu o computador eletromecnico Harvard Mark 1, que funcionava sem o conceito de programa armazenado ou seja para que o programa fosse executado, era necessrio carreg-lo a par9r de uma ta perfurada e as instrues eram executadas durante a leitura da ta. Em 1946 apresentado o ENIAC (ElectronicNumericIntegratorandCalculator ) cujo o desenvolvimento foi liderado por John Mauchly e J. PresperEckert, era cons9tudo por 18 mil vlvulas, pesava 30 toneladas, possua uma memria pequena e os programas eram congurados por cabos. John Von Neumann juntou-se a equipa do ENIAC aps ter proposto o conceito de programa armazenado, ou seja as instrues e os dados deviam ser armazenados segundo uma nica representao este conceito foi denominado por Arquitectura de Von Neumann e implementado no computador EDVAC (ElectronicDiscreteVariableComputer)

CAP. I: Conceitos sobre a Inform&ca


COMPUTADORES DA 1 GERAO (1940 - 1955)
Construdos a base de Vlvulas electrnicas Aplicaes nos campos cienTco e militar Linguagem Mquina Uso restrito Cartes perfurados e tas de papel como memria Grande consumo de energia Elevado peso e processamento na ordem dos milissegundos Grandes problemas de aquecimento Necessidade de reprogramao para cada tarefa a executar
Fig. 1.8 MARK 1

Fig. 1.9 ENIAC Fig. 1.10 Vlvula electrnica

CAP. I: Conceitos sobre a Inform&ca


2 Gerao de Computadores
Com o surgimento do transistor em 1947, reduziu signica9vamente as diculdades apresentadas pelas vlvulas electrnicas. A velocidade de processamento passou a ser medida em microssegundos, e surgiram as linguagens de programao de alto nvel como a FORTRAN e o COBOL. Primeiro computador transistorizado foi o TX-0, construido no Massachuses Ins9tuteofTecnology em 1957. Posteriormente a IBM criou o primeiro modelo comercial denominado IBM 1401, mais barato e bastante rpido. Em 1964 a CDC (Control Data Corpora9ion) criou um Supercomputador denominado CDC 6600 que permi9a descarregar o processamento da CPU pelo uso de pequenos computadores auxiliares que tratavam da entrada e sada de dados, bem como o gerenciamento de tarefas de forma paralela.

CAP. I: Conceitos sobre a Inform&ca


COMPUTADORES DA 2 GERAO (1955 - 1963)
Subs9tuio de vlvulas pelo transistor Ocupavam menos espao e consome menos energia Construo de computadores mais baratos, mais potentes e mais veis Uso do conceito sobre memria auxiliar (tas magn9cas e discos magn9cos) Uso das linguagens de programao de Alto nvel (Cobol e Fortran) Velocidade de processamento na ordem dos Microssegundos
Fig. 1.10 TRANSISTOR

CAP. I: Conceitos sobre a Inform&ca


3 Gerao de Computadores
A principal caracters9ca desta gerao o uso dos Circuitos Integrados criado em 1958 por Robert Noyce. O Circuito Integrado cons9tudo por dezenas de Transistores, que executam desde funes lgicas simples at as funes mais complexas. Reduziu bastante o espao, baixou o consumo de energia, e reduziu a velocidade de processamento para nanossegundos. IBM 360 um exemplo de computadores desta gerao.
COMPUTADORES DA 3 GERAO (1963 - 1970)

Subs9tuio dos transistores por Circuitos integrados Velocidade de Processamento em nanossegundos Generalizao das linguagens de alto-nvel Sistemas opera9vos mul9-u9lizadores Inveno do Mouse (rato em 1963 por Douglas Engelbart)
Fig. 1.10 CIRCUITO INTEGRADO

CAP. I: Conceitos sobre a Inform&ca


COMPUTADORES DA 4 GERAO (1971 - 1990)
Esta gerao marcada pelos microprocessadores. Um Microprocessador consiste em um
disposi9vo electrnico encapsulado em um chip que possui internamente uma Unidade de controlo, uma unidade lgico-aritm9ca e uma memria interna. Primeiro Microprocessador que surgiu foi o Intel 4004 desenvolvido para uma empresa de calculadoras. J em 1981, a IBM decidiu inves9r em microprocessadores lanando assim o IBM PC baseado no processador Intel 8088 com 16 KB de memria RAM. CARACTERSTICAS Computadores com Chips VLSI (Aperfeioamento dos Circuitos Integrados) Miniaturizao de componentes Velocidade de Processamento em picossegundos Baixa de preos

CAP. I: Conceitos sobre a Inform&ca


COMPUTADORES DA 5 GERAO (1991 at hoje)
A 5 Gerao de Computadores marcada pela u9lizao dos Circuitos Integrados em grande escala de Integrao. Isto implica a integrao de elevados circuitos electrnicos na ordem dos 100.000 1.000.000 de transistores. Os computadores que u9lizamos hoje ainda podemos enquadr-los na 5 gerao.
CARACTERSTICAS Aumento da capacidade de processamento de dados, armazenamento e transferncia Miniaturizao de componentes Processamento paralelo (vrias operaes a serem executadas ao mesmo tempo) Baixa de preos

CAP. I: Conceitos sobre a Inform&ca


CLASSIFICAO DOS COMPUTADORES
Os computadores podem ser classicados quanto a sua funo que exercem ou pelas suas dimenses (porte). Quanto as suas funes: Servidores: so computadores que servem as redes de computadores. Disponibilizam inmeros servios, como por exemplo: internet, base de dados, cheiros, impressoras, etc. Consola de vdeo games: prove ao u9lizador um ambiente de entretenimento ( jogos). Sistemas Embarcados: so disposi9vos que incorporam um computador no seu interior para realizar uma tarefa especca. Ex: Computadores de bordo de um automvel Quanto ao porte: Grande porte: supercomputadores e mainframes. Supercomputadores, so bastante rpidos, potentes capazes de processar informaes na ordem dos Bilhes de instrues por segundo. Mainframes, processam grandes quan9dades de informao, sendo bastante usados pelos bancos, companhias de seguro e areas, na internet, etc.

Fig. 1.11 Mainframe

CAP. I: Conceitos sobre a Inform&ca


CLASSIFICAO DOS COMPUTADORES
Mdio Porte: Denominadas estaes de trabalho, correspondem aos computadores com grande capacidade de processamento, e em alguns casos permitem o ambiente mul9 u9lizador. Os tambm denominados mini computadores, so menores que os mainframes, e maiores em relao aos computadores pessoais. Onde so u&lizados? Hoje em dia, os minicomputadores so geral- mente u9lizados como servidores nas redes de Computadores.
Fig. 1.12 Worksa&ons

CAP. I: Conceitos sobre a Inform&ca


CLASSIFICAO DOS COMPUTADORES
Pequeno porte: Computadores de uso pessoal. Ex: Desktop, laptop, tablet. So os computadores que u9lizamos no nosso dia dia, quer os que se mantm em nossas casas, bem como os que usamos em qualquer parte (laptops, tablets).

CAPTULO II ALGORITMO
Ano Lec9vo 2013

Algoritmo
Denio
Sequncia finita de passos que visam a atingir um objectivo especfico. Conjunto de passos com uma determinada ordem, que nos permitem resolver um problema. Para a soluo de qualquer problema computacional ou no, necessrio recorrer a tcnica de algoritmo pelo facto de permitir extrair deste o conjunto de detalhes envolvidos, e encontrar a melhor soluo para o devido problema. importante saber que o computador no compreende a linguagem humana; ento os programas quando so construdos, geralmente utiliza-se uma linguagem de alto nvel (JAVA, C, C++, PASCAL) e posteriormente convertidos para linguagem mquina (zeros e uns) por intermdio de um compilador (programa que converte um programa de alto para baixo nvel). Exemplos de algoritmos: receita de bolo, passos para trocar o pneu de um carro, passos para ligar um computador, passos para levantar dinheiro de um Multicaixa, etc.

Algoritmo
Um algoritmo actua sobre um conjunto de entradas(ingredientes no caso do bolo), procedimentos para manipulao das entradas (preparao do bolo) de formas a gerar uma sada benfica para o utilizador (bolo pronto). os algoritmos uma vez concebidos, podem ser traduzidos para qualquer linguagem de programao (processo de codificao), ou seja precisamos projectar apenas uma vez e escrever para qualquer linguagem. Exemplo: a forma como cozinhamos o arroz, pode ser traduzida para o ingls, o francs, etc, tornando-se compreensvel caso utilizamos as regras das respectivas lnguas (sintaxe). Veja abaixo as etapas de um algoritmo

Fig. 2.1 Fases de um Algoritmo

CAP. II

Algoritmo
CARACTERSTICAS Todo algoritmo tem as seguintes caracters9cas principais: Finitude: deve possuir um nmero nito de passos. Denio: as aces devem ser denidas de forma rigorosa e sem ambiguidades Entradas: um algoritmo deve ter zero ou mais entradas isto , as quan9dades que lhe so fornecidas antes do seu incio. Sadas: um algoritmo deve ter uma ou mais sadas, isto , quan9dades relacionadas com as entradas. Efec9vidade: as operaes devem ser alcanveis em um tempo nito. Eccia: Deve resolver o problema proposto Livre de linguagem: a construo de um algoritmo no depende de uma linguagem especca, mas o contrrio vlido.

Algoritmo
Exemplo: Algoritmo para tomar banho 1 Entre em baixo do chuveiro. 2 Ligue a gua. 3 Pegue o champ e esfregue no cabelo. 4 Molhe os cabelo. 5 Pegue o sabonete e esfregue por todo o corpo. 6 Molhe o corpo. 7 Desligue o chuveiro. 8 Pegue uma toalha. 9 Enxugue o cabelo e o corpo.

Algoritmo
RESOLUO DE PROBLEMAS Acabamos por denir o conceito sobre algoritmos, agora sabemos que o meio que possumos para resolver problemas quer computacionais ou no. Mas como podemos analisar um problema e chegar ao resultado exacto? Precisamos de antemo: Compreender o problema: geralmente o problema proposto por um enunciado, ou seja um texto que explica o problema e fornece detalhes para a soluo. Nesta podemos nos ques9onar: O que pede o problema?; Quais so as condies do problema? Existe alguma informao para descobrir ou clculo a efectuar? Elabore uma estratgia de resoluo: Encontre conexes entre os dados, use teoremas ou formulas para ajudar, verique se est a levar em conta todos os dados e condies. Execute a estratgia: nesta fase posta em pr9ca todas as estratgias elaboradas para a resoluo do problema. Revise: Examine a soluo ob9da a par9r do resultado ob9do executando o teste de mesa.

Algoritmo
Exerccios
1. 2. Crie um algoritmo que recebe dois nmeros inteiros, fornece o resultado da soma dos mesmos. Trs msicos: Damio, Paulino e Emanuel, tocam guitarra, bateria e baixo. Contudo, no se sabe quem toca o qu. Sabe-se que o Damio no o baixista. Que Paulino ensaia com o guitarrista s Quintas. E que o baixista ensaia sempre sozinho s Teras. Quem toca cada um dos instrumentos? Um comboio parte de Luanda a uma velocidade de 120 Km/h em direco a Malange, ao mesmo tempo em que outro comboio parte de Malange a uma velocidade de 80km/h em direco a Luanda. Quando os comboios se encontram, qual deles est mais prximo de Luanda? Aquele que parte de Luanda ou o que parte de Malange?

3.

Formas de Representao de um Algoritmo


Um algoritmo pode ser representado em trs (3) formas principais: Descrio Narra9va, Fluxograma e Pseudocdigo (Portugol). Descrio Narra&va: Representa-se pela descrio de uma sequncia de passos em nossa lngua natural (portugus). Este mtodo ajuda a compreender e organizar as etapas necessria para resolver um problema; mas esta tcnica no compreendida pelo computador, pois no compreende a linguagem humana. Sendo assim, importante construir os algoritmos em uma linguagem de programao especca; normalmente o Pseudocdigo. Regras de construo U9lizar somente um verbo em cada frase Construir o algoritmo numa viso para leigos em inform9ca U9lizar frases curtas e simples Ser objec9vo No u9lizar palavras que tenham mais do que um sen9do de compreenso

Exemplos de algoritmo em Descrio Narra&va


SOLUO
1. Crie um algoritmo que recebe dois nmeros inteiros, fornece o resultado da soma dos mesmos.

Algor9mo soma de dois numeros Entrada: dois numeros Inicio Receber primeiro numero Receber segundo numero Somar primeiro e segundo numero Sada: Mostrar resultado da soma Fim do algoritmo

Exemplos de algoritmo em Descrio Narra&va


SOLUO
2. Trs msicos: Damio, Paulino e Emanuel, tocam guitarra, bateria e baixo. Contudo, no se sabe quem toca o qu. Sabe-se que o Damio no o baixista. Que Paulino ensaia com o guitarrista s Quintas. E que o baixista ensaia sempre sozinho s Teras. Quem toca cada um dos instrumentos?

Algoritmo instrumento do musico Entrada: tresmusicos tres instrumentos Inicio Excluir o Damio do baixo Excluir o Paulino da guitarra Excluir o Paulino do Baixo Associar Damio a Guitarra Associar Emanuel ao Baixo Associar Paulino a Bateria Sada: Mostrar resultado da associacao Fim do algoritmo

Formas de Representao de um Algoritmo


Fluxograma: Representa-se por smbolos grcos predenidos, que ilustram os passos
individuais e suas interligaes at chegar a soluo do problema; como se es9vesse a juntar um quebra cabeas. As instrues a serem executadas so colocadas no interior de cada gura. Modo de representao

Indica o incio ou m do algoritmo Processamento de dados ou execuo de operaes

Entrada de dados

Sada de dados

Exemplos de algoritmo em Fluxograma


1. Crie um algoritmo que recebe dois nmeros inteiros, fornece o resultado da soma dos mesmos.
inicio

SOLUO

Primeiro numero

Segundo numero

Primeiro + Segundo

Primeiro + Segundo

Nota: Na sada o resultado representado novamente (Primeiro + Segundo) para ilustrar o contedo que sair no ecr. O uso de variveis simplica esta operao. Ver nas prximas aulas.

Exemplos de algoritmo em Fluxograma


1. Crie um algoritmo para tomar banho no chuveiro.
SOLUO

inicio

Entrar no chuveiro

Ligar a gua

Pegar no champ e esfregar na cabea

Molhar o cabelo

Pegar no sabonete e esfregar no corpo

Molhar o corpo

Desligar o chuveiro

Pegar na toalha e enxugar o corpo e o cabelo

Formas de Representao de um Algoritmo


Pseudocdigo (Portugol): u9liza palavras escolhidas e bem denidas. um mtodo
bastante aproximado a uma linguagem de programao de alto nvel. As instrues escritas em Pseudocdigo, so facilmente traduzidas em outras linguagens, desde a denio dos 9pos de dados, instrues de repe9o, seleco, etc, para alm do facto destas serem escritas em portugus. Mas, importante aprender as regras de representao para cada instruo (Sintaxe).

Regras de representao programa <nome_do_programa> declaracoes<denicoes_de_constantes> <declaracoes_de_variaveis> Inicio <instrucoes_do_programa> m

Formas de Representao de um Algoritmo


Representao de instrues principais Entrada de dados: u9lize a instruo leia(). No interior do parnteses so postos os elementos que deseja de entrada do algoritmo. Por ex: uma varivel. Sada de dados: u9lize a instruo escreva (). No interior do parnteses so postos os elementos que deseja mostrar. Por ex: um resultado. Exemplo 1: Crie um algoritmo que imprima na tela a seguinte mensagem: Ola, este o meu primeiro programa Soluo programa imprime_mensagem Inicio Escreva(Ola, este o meu primeiro programa) m

Exemplos de algoritmo em Pseudocdigo


Crie um algoritmo que recebe trs notas de um aluno (p1,p2,p3) e calcula a mdia nal deste aluno.
Resoluo

Algoritmo media do aluno var P1,p2,p3:inteiro media:real Inicio Escreva(digite a primeira nota) Leia(p1) Escreva(digite a segunda nota) Leia(p2) Escreva(digite a terceira nota) Leia(p3) media<-(p1+p2+p3)/3 Escreva(A media nal do aluno e,media) Fim do algoritmo

Formas de Representao de um Algoritmo


Conceitos a ter em conta na criao dos algoritmos em Pseudocdigo
Sintaxe: dene o conjunto de regras grama9cais de formao de sentenas vlidas ou grama9calmente correctas segundo determinada linguagem. Ex: No portugus no deve escrever a palavra Programao como Programacao. Neste caso existe um erro de sintaxe. Semn&ca: indica a associao das sentenas, permi9ndo a sua correcta interpretao. Ex: Belo Angola pas um. Neste caso, em termos de sintaxe est correcto mas no se consegue interpretar a frase pois os termos no esto enquadrados apropriadamente. Considera-se um erro de semn9ca. Com base nas denies, conclui-se que a sintaxe expressa as regras que devem ser obedecidas para a9ngir determinado resultado e a semn9ca representa o contedo das palavras da linguagens, permi9ndo assim uma interpretao correcta do escrito com determinada linguagem.

Tipos de Dados
Para que o computador consiga armazenar ou manipular um dado, necessita saber o seu 9po. Sendo assim, um 9po de dado dene o 9po de informao que entra e sai do computador. Os 9pos de dados podem ser: inteiro, real, literal ou caracter, booleano Tipo de dado Inteiro: envolve o conjunto de nmeros inteiros posi9vos e nega9vos. Ex: -1, 3, 10, 12, -50. Tipo de dado Real: envolve o conjunto de nmeros decimais ou fraccionrios posi9vos e nega9vos. Ex: 0.5, -1.3, -11.3, 12.4. Todo o 9po de dado real possui envolvido um valor inteiro; ou seja os inteiros so subconjuntos dos nmeros reias. Tipo de dado Literal: representa uma sequncia de caracteres com letras, dgitos, ou ainda smblos especiais. So tambm denominados por Strings(cadeia de caracteres) Ex: Ernesto, Rua da Brigada 2, Talatona, etc. Dentro destes existe igualmente o 9po Caractere que permite armazenar apenas um caractere (uma letra, um smbolo, ou um dgito). Ex: M, 2, F Tipo Lgico (Booleano): representado por dois valores principais (Verdadeiro (V) e Falso (F))

CAP. II

Tipos de Dados
Quando u9lizar um ou outro 9po de dado? Imagine que precisas armazenar os dados de uma pessoa: Nome, idade, morada, sexo, altura, e precisa saber se esta ou no casada? Sugesto: Nome da pessoa -> Literal Idade -> Inteiro Morada -> Literal Sexo-> caractere Altura-> Real, pois possui a parte inteira e faccionria. Ex: 1,70 cm A condio de ser casado ou no dar sempre em V ou F; ento u9lize o lgico

CAP. II

Variveis
Uma varivel corresponde a uma posio de memria por onde guardamos os dados, cujo contedo pode mudar ao longo da execuo do programa. Toda varivel tem um nome que conhecido como iden&cador. importante saber que quando ocorre uma alterao do valor con9do na varivel, o valor armazenado anteriormente perdido na mmria. Isto , supondo que tenho o nome Sampaio armazenado em memria; se por algum mo9vo eu alterar o nome Sampaio para Lualuiso, o nome anterior eliminado da memria e subs9tuido pelo novo.

Necessidade da u&lizao de variveis

Vamos supor que queremos fazer um programa que solicita para um u9lizador digitar a sua idade e exibe a este quantos anos faltam para ele a9ngir 100 anos de idade. Precisaremos armazenar a idade do u9lizador para depois realizar o clculo 100 - idade_u9lizador e depois armazenar tambm o resultado. Usando a ideologia acima que a varivel um espao na memria em que armazenamos os dados, seria necessrio dizer o endereo que o mesmo est localizado. Neste contexto, em programao usado o conceito de varivel para representar o apelido do endereo.

CAP. II

Variveis
Regras de uso e declarao de variveis Toda a varivel deve ser declarada antes de ser usada (inclui o seu 9po e o iden9cador); Toda a varivel deve ter sempre um 9po de dado associado O primeiro caractere deve ser uma letra; Uma varivel deve ter sempre um valor inicial antes de ser usada; Nome de variveis escritas com letras maisculas sero diferentes de letras minsculas (case sensi9ve); Nenhuma palavra reservada ferramenta (COMPILADOR) poder ser usada como nome da varivel; U9lize nomes representa9vos para dar uma viso do contedo con9do nela; Se haver mais de um caractere, este s poder ser: letra ou algarismo; O nome de uma varivel no deve conter caracteres especiais, com excepo do underline (_). So exemplo de variveis os seguintes: Nome, aluno1, nome_completo, a, b, idade No representam identificadores vlidos os seguintes: ~nome, 1aluno, nome?completo, idade-pessoa, filhao

CAP. II

Variveis
Regra de u&lizao das variveis
Atribuio: um termo u9lizado para atribuir um valor a uma varivel, ou seja armazenar um determinado contedo em uma varivel. Esta operao representada em Pseudocdigo por uma seta apontando para a esquerda, onde a direita ca o valor a ser atribudo e a esquerda a varivel a receber o valor. Ex: varivel <- constante varivel <- varivel Varivel <- expresso Para cada um dos casos l-se: varivel recebe constante (idem para os outros subs9tuindo o que est a ser atribudo)

CAP. II

Variveis
Regra de declarao de varivel <nome_do_9po> <nome_da_variavel>; <nome_da_variavel> :<nome_do_9po> ou <nome_do_9po> <nome_da_variavel>, ... , <nome_da_variavel>; <nome_da_variavel>, ... , <nome_da_variavel>: <nome_do_9po> Ex: inteiro idade -> inteiro representa o 9po de dado e idade representa o nome da varivel Ano_nascimento : inteiro -> Ano nascimento a varivel e o inteiro o 9po de dado real peso -> real representa o 9po de dado e peso representa o nome da varivel O modo de declarao de varivel pode variar de acordo com a linguagem de programao a ser u9lizada ou o compilador em causa. Para algoritmos, usando o compilador VISUAL G, a declarao feita da seguinte maneira: idade: inteiro Isto quer dizer, que a SINTAXE (Regra de escrita) do compilador dene a declarao de varivel deste modo.

CAP. II

Variveis
Exerccio Faa um algoritmo que recebe trs notas de um aluno e calcula a mdia das notas. Soluo 1- Compreenda o problema e elabore a estratgia de resoluo Questo: O que o problema pede? Preciso de alguma varivel para resolver este problema; se sim, que 9po de dado vou armazenar nestas variveis? O resultado de que 9po ser? De que modo vou representar o algoritmo? Fluxograma ou Pseudocdigo? 2- Execute a estratgia.

CAP. II

Variveis
Soluo do exerccio u9lizando pseudocdigo: algoritmo media_de_tres_notas Var nota1, nota2, nota3: real media : real Inicio escreva (Digite as tres notas do aluno) leia (nota1) leia (nota2) leia (nota3) media<-(nota1+nota2+nota3)/3 escreva (A mdia do aluno corresponde a , media) malgoritmo

CAP. II

Constantes
Uma constante um valor xo que no alterado durante o tempo ou durante a execuo do algoritmo. Ex1: 5, 2.4, OLA, V. Nota: A constante V con9da no exemplo do 9po lgico. Ex2: escreva(ests a aprender) -> o frase con9da no parnteses determina uma constante. Para diferenciar os dados constantes do 9po Caractere dos outros 9pos de dados, usa-se aspas ( ) para delimit-los; e os dados do 9po lgico u9lizam as constantes V -> Verdadeiro e F -> Falso. Possuem um nome nico para a sua iden9cao (iden9cador) Recomenda-se o uso de nomes suges9vos. Ex: pi=3.1415 , sexo=feminino As regras para a declarao de constantes so as mesmas usadas para as variveis

CAP. II

Constantes
Declarao de constantes Sintaxe: const <nome_da_constante> = valor Const uma palavra reservada, usada sempre que declarar uma constante. nome_da_constante iden9cador da constante Valor valor xo atribudo a constante. Ex: const pi=3,1415 morada=Sambizanga

CAP. II

Operadores e Expresses aritm&cas


So denominados operadores aritm9cos os seguintes elementos:
OPERADOR DENOMINAO PRIORIDADE DE EXECUO (os com maior prioridade so os primeiros a serem executados) 1 1 2 2 2 2 3

+ - * / DIV MOD ou % ** ou ^

Adio Subtraco Mul9plicao Diviso Diviso inteira Resto da diviso inteira Potenciao

As expresses aritm9cas so expresses cujos operadores so aritm9cos e os operandos so variveis ou constantes do 9po inteiro ou real. Ex: 3+3/2 , X+Y, 2*K Nota: Caso a prioridade for igual, a expresso aritm9ca resolvida da esquerda para a direita.

CAP. II

Operadores lgicos e relacionais


So denominados operadores lgicos os seguintes elementos:
Operador Tipo PRIORIDADE DE EXECUO (os com maior prioridade so os primeiros a serem executados) 1 2 3

OU E NO

Binrio Binrio Unrio

As expresses lgicas so cons9tudas por operadores lgicos e variveis ou constantes do 9po lgico originando resultados do 9po verdadeiro ou falso. Nota: U9lizando os operadores lgicos necessrio saber que: uma expresso A E B s ser verdadeira se A for Verdadeira e B for Verdadeira. Caso contrrio ser falsa Uma expresso A OU B ser verdadeira caso pelo menos uma delas (A OU B) forem verdadeiras.

CAP. II

Operadores Relacionais
So denominados operadores os seguintes elementos:
Operador = > < >= <= < > Funo Igual Maior que Menor que Maior ou igual Menor ou igual Diferente de

O Resultado ob9do numa relao sempre um valor lgico ( V ou F). Ex: A+B=C, uma expresso que ser verdadeira ou falsa a medida em que o resultado da expresso aritm9ca for igual ao contedo de C.

CAP. II

CAPTULO III Estruturas de Seleco


Ano Lec9vo 2013

Estrutura de Seleco (Condicional)


A estrutura de seleco permite a execuo de instrues caso determinadas condies, representadas por expresses lgicas ou relacionais, so ou no verdadeiras. Existem as seguintes estruturas de seleco: Estrutura de Seleco Simples Estrutura de Seleco Composta Estrutura de Seleco encadeada Escolha ml9pla SIM Representao grca de uma estrutura condicional (Fluxograma): NO Estrutura de Seleco Simples: u9lizada quando necessitamos executar uma ou vrias ins- trues caso uma condio seja sa9sfeita. Esta estrutura no executa nada caso a condio seja falsa. Sintaxe: Se <condio> entao Instruo mse;

CAP. III

Estrutura de Seleco
Ex: Faa um algoritmo que verica se um dado nmero par? Resolva u9lizando Fluxograma e Pseudocdigo. Soluo usando Fluxograma:

CAP. III

Estrutura de Seleco
Ex: Faa um algoritmo que verica se um dado nmero par? Resolva u9lizando Fluxograma e Pseudocdigo. Soluo usando Pseudocodigo: algoritmo "numero par var n:inteiro Inicio escreva("Insira um numero") leia (n) se (n mod 2=0) entao escreva (n," par ") mse malgoritmo

CAP. III

Estrutura de Seleco
Estrutura de Seleco Composta: permite a execuo de duas alterna9vas a par9r de uma nica condio; isto suponha que um conjunto de aces dependa da avaliao verdadeira e apenas uma dependa de uma falsa? Usando o 9po de seleco Simples estudada anteriormente, isto no possvel. Mas vejamos como a composta funciona: Sintaxe: se <condio> entao <sequncia de instrues> seno <instrues> mse;

CAP. III

Estrutura de Seleco
Ex: Crie um algoritmo que dado a idade de um indivduo, determina se o mesmo Jovem ou no. Admite que o indivduo Jovem caso a sua idade es9ver entre os 18 e 40 Anos. Soluo em pseudocdigo algoritmo "teste se jovem" var idade:inteiro inicio escreva("Digite a Idade do indivduo") leia(idade) se ((idade>=18)E (idade<=40)) entao escreva("Este individuo Jovem") senao escreva("O individuo no Jovem. Poder ser um Adolescente ou Idoso") mse malgoritmo

CAP. III

Estrutura de Seleco
Estrutura de Seleco Encadeada: representa o agrupamento de vrias seleces. Normalmente, usada quando uma determinada ao ou bloco deve ser executado caso um grande conjunto de possibilidades forem sa9sfeitas. Sintaxe: se <condio> entao se <condio> entao <conjunto de instrues> mse; senao <instruo> mse;

CAP. III

Estrutura de Seleco
Ex: Crie um algoritmo em que dado dois nmeros inteiros, verique se os dois so pares. Caso forem, adicione 2 ao maior. Caso forem mpares some os dois nmeros e imprima os resultados. Solucione u9lizando pseudocdigo Soluo algoritmo "dois_pares
var n1:inteiro n2:inteiro

inicio escreva("Insira o primeiro numero") leia (n1) escreva("Insira o segundo numero") leia (n2) se ((n1 mod 2=0) e (n2 mod 2=0)) entao se (n1>n2) entao n1<-n1+2 escreva ("O primeiro nmero par e resulta em ", n1) senao n2<-n2+2 escreva ("O segundo nmero par e resulta em ", n2) mse senao escreva ("Condio para impares e a soma ", n1+n2) mse malgoritmo

CAP. III

Estrutura de Seleco
Seleco de ml&pla escolha: u9lizada quando necessitamos testar um conjunto de valores, e quando aces diferentes so associadas a esses valores. Imagine que 9vssemos mais do que cinco (5) condies para serem testadas para executar determinadas aces; poderia-mos u9lizar vrias seleces encadeadas. Mas no pr9co. Sintaxe: escolha (expresso) caso <hiptese 1>: <instruo1> caso <hiptese 2>: <instruo2> caso <hiptese 3>: <instruo3> caso contrrio : <instruo n> mescolha

CAP. III

Estrutura de Seleco
Questes a levar em conta na Seleco de ml&pla escolha: A expresso avaliada, e o valor ser comparado com cada uma das hipteses. A opo caso contrrio (outrocaso em outros compiladores) opcional A hiptese referida na sintaxe denida como uma constante caractere, uma constante numrica, e em alguns casos literais Esta estrutura, amplamente u9lizada em algoritmos com menus (P.e: Calculadora) Exemplo: Crie um algoritmo que simule a execuo de uma mquina calculadora.

CAP. III

algoritmo calculadora a,b:inteiro soma,subtraccao, mul9plicacao:inteiro divisao:real op:caractere inicio escreva ("Digite o primeiro numero") leia(a) escreva ("Digite o segundo numero") leia(b) escreval ("Digite a operao que deseja: + (soma) - (subtraccao) * (Mul9plicacao) / (Divisao)") leia(op) escolha (op) caso "+" soma<-a+b escreva (soma) caso "-" subtraccao<-a-b escreva (subtraccao) caso "*" mul9plicacao<- a*b escreva (mul9plicacao) caso "/" divisao<-a/b escreva (divisao) outrocaso escreva ("Operacao inexistente") mescolha malgoritmo

CAP. III

CAPTULO IV Estruturas de Repe9o


Ano Lec9vo 2013

Estruturas de Repe&o
So estruturas que permitem a execuo repe9da de um certo trecho do programa por um determinado nmero de vezes ou ainda enquanto uma certa condio mantm-se verdadeira. Existem trs principais 9pos de estruturas de repe9o: enquanto repita para As estruturas de repe9o diferem-se pelo seu modo de funcionamento, algumas precisam que uma certa condio seja verdadeira para que execute o loop (lao de repe9o), outras dependem do valor de uma varivel de controlo para que execute as instrues. Imagine que deseja mostrar a tabuada de um nmero inteiro qualquer. At o momento, com o que foi aprendido, o ideal seria mul9plicar o nmero dado com cada nmero no intervalo de 1 n. Isto quer dizer que teramos n mul9plicaes, o que no seria vivel. Sendo assim, aplica-se o conceito sobre laos de repe9o para resolver casos similares.

CAP. IV

Estruturas de Repe&o
Enquanto: uma estrutura que efectua um teste condicional no incio do lao e a execuo do bloco de aces ou da aco necessita que a condio seja verdadeira. Quando a condio for falsa, as instrues no so executadas nenhuma vez. Sintaxe (Pseudocdigo): enquanto (condio) faca /* instrues a serem executadas enquanto a condio for verdadeira*/ menquanto Representao Fluxograma:

CAP. IV

Estruturas de Repe&o
Modo de funcionamento: 1. Na estrutura enquanto, o teste lgico permite controlar o nmero de repe9es a serem realizadas pelo lao. 2. Ao executarmos o algoritmo, caso o resultado do teste lgico for verdadeiro, as instrues dentro do lao sero realizadas; quando o algoritmo encontra o menquanto (ou a bolinha do uxograma) ele retorna para o teste lgico am de avali-lo novamente para saber se deve repe9r mais uma vez. 3. Se o teste der verdadeiro, os comandos do lao so novamente executados, mas se der falso o algoritmo sai do lao e segue a sua execuo realizando o prximo comando que es9ver aps o menquanto.

CAP. IV

Estruturas de Repe&o
Contadores e Somadores: Em laos de repe9o, necessitamos de contadores para contar o nmero de repe9es a serem efectuadas, e de somadores para acumular os valores de entrada em uma nica varivel. Imagine que deseja mostrar a soma dos 10 primeiros nmeros naturais. Como vamos saber o nmero de vezes j repe9das? A resposta u9lizando uma varivel contadora que receber um valor inicial (geralmente zero) e em cada repe9o incrementada em uma unidade atravs de uma atribuio (Ex: a<-a+1). Usando esta analogia, podemos dizer que incremento: a aco de acrescentar uma unidade ao valor de uma varivel; e decremento a aco contrria. E como obter o total da soma dos nmeros? Neste caso temos de u9lizar um acumulador para que em cada lao, acumule numa varivel os valores que sero fornecidos(neste caso 1+2+3+.....10).

CAP. IV

Estruturas de Repe&o
Ex: Crie um algoritmo que soma a quan9dade de nmeros pares de 1 20. Soluo: Algoritmo "soma_pares"
var soma:inteiro cont:inteiro inicio cont <- 1 soma<- 0 enquanto (cont<=20) faca se (cont mod 2 = 0) entao soma<- soma+cont mse cont<- cont+1 menquanto escreva ("A soma total ", soma) malgoritmo

CAP. IV

soma:inteiro cont:inteiro

incio

cont<-1 soma<-0

Cont<=20

Cont mod 2 = 0

soma <- soma+cont

cont <- cont+1

CAP. IV

7im

Estruturas de Repe&o
Repita: uma estrutura que efectua um teste condicional no nal do lao. Deste modo, o bloco de instrues do lao sero executados no mnimo uma vez, at que uma determinada condio seja verdadeira; isto quer dizer que ela executa enquanto for falsa. Sintaxe (Pseudocdigo): repita /* instrues a serem executadas enquanto a condio for verdadeira*/ at (condio) Representao Fluxograma:

CAP. IV

Estruturas de Repe&o
Para: uma estrutura que repete um conjunto de operaes por um determinado nmero de vezes previamente denido. Esta estrutura no prev uma condio tal como as outras, pois possui limites xos (inicio e nal). Sintaxe (Pseudocdigo): para V de vi at vf passo p faca /* instrues a serem executadas enquanto a condio for verdadeira*/ mpara Ou ainda para V de vi at vf faca /* instrues a serem executadas enquanto a condio for verdadeira*/ mpara Representao Fluxograma:

CAP. IV

Estruturas de Repe&o
Onde: V - a varivel de controlo vi o valor inicial da varivel V vf o valor nal da varivel V p o valor do incremento varivel V Nota: tudo o que es9ver o faa e o mpara ser caracterizado como o que deve ser feito para cada ocorrncia.

CAP. IV

CAPTULO V Estruturas de Dados


Ano Lec9vo 2013

Estruturas de Dados
Denio:
As estruturas de dados, denem a forma como os dados esto organizados e armazenados na memria do computador, por forma a facilitar o seu acesso e manipulao. At aqui, estudamos que numa varivel s possvel armazenar um valor; ou seja, caso 9ver um valor armazenado numa varivel, e desejar armazenar outro valor na mesma varivel, o que poder acontecer ser a subs9tuio do an9go pelo novo. Quando precisamos armazenar um conjunto de valores so u9lizadas variveis compostas que podem ser: Homogneas e Heterogneas; as variveis compostas Homogneas agregam um conjunto de dados do mesmo 9po e as variveis compostas Heterogneas, agregam um conjunto de dados de 9pos diferentes. Nesta primeira seco, estudaremos as variveis compostas Homogneas, que envolvem Vectores e Matrizes, tambm conhecidas como Arrays.

CAP. V

Variveis compostas homogneas unidimensional (vectores)


Suponhamos que nos proposto o seguinte problema: Crie um algoritmo que solicita o nome de 10 estudantes e as suas respec9vas notas, calcula as suas mdias e imprime o nome de cada um e a mdia do nal do semestre. Possvel soluo: Algoritmo dados escolares de 10 alunos var nome1, nome2,....nome10:literal media1, media2, media3,.....media10:real inicio leia(nome1) leia(nome2) ...... leia(nome10) .......... malgoritmo

CAP. V

Variveis compostas homogneas unidimensional (vectores)


U9lizando a soluo apresentada anteriormente, seria bastante trabalhoso solucionar o problema proposto; o mais fcil seria u9lizar o conceito de vectores. Denio: Vector representa um conjunto de variveis capazes de armazenar valores do mesmo 9po (literal, inteiro, real, etc). Um vector visto como uma caixa com vrios compar9mentos onde podemos guardar documentos; para o nosso caso especco considerado como uma varivel onde podemos armazenar mais de um dado. Caracters&cas de um Vector Possui um nome (iden9cador) Possui um ndice (posio) U9liza colchetes (dois parnteses rectos ) para representar as posies do vector Armazena apenas dados do mesmo 9po (qualquer 9po de dado) Elementos individuais so acessados por meio da sua posio

CAP. V

Variveis compostas homogneas unidimensional (vectores)


Sintaxe para declarao de um vector <nome do vector>: vetor [Li..Lf] de <&po de dado> Ex: nome: vetor [0..4] de literal Representao grca de um Vector nome [0] [1] [2] Maria Valdino Snia [3] Eliana [4] Sandra

A gura acima representa um vector de cinco (5) posies com valores do 9po literal. Imagine que o nome da varivel do 9po vector seja nome tal como na gura acima: Signica o seguinte: nome[0] = Maria, nome[1]=Valdino, ... , nome[4]=Sandra

CAP. V

Variveis compostas homogneas unidimensional (vectores)


OPERAES COM VECTORES No possvel manipular directamente todos os elementos do vector; apenas um de cada vez. O acesso individual a cada componente do vector realizado pela especicao do nome e a posio do mesmo por meio de ndices. O ndice no representa o valor con9do no vector; mas sim a posio em que um determinado valor est armazenado no vector. ATRIBUIO DE VALORES Ex: Nome[2] <- Joaquim , quer dizer que atribudo a constante Joaquim do 9po literal para a segunda posio do vector Nome. idade[10] <- 50, quer dizer que atribudo o valor 50 para a dcima posio do vector idade

CAP. V

Variveis compostas homogneas unidimensional (vectores)


Nota: necessrio levar em conta que o valor a ser atribudo pode ser uma constante, uma varivel ou uma expresso. LEITURA DE VECTORES A leitura dos elementos do vector feita passo a passo; ou seja um elemento de cada vez, considerando o nome do vector e a posio correspondente. Neste caso : Sintaxe leia (<lista de variveis>). Ex: leia (escola [3]) ESCRITA DE VECTORES Os passos so os mesmos em comparao aos referidos acima. Sendo assim teremos: Sintaxe escreva (<lista de variveis>). Ex: escreva (escola [3])

CAP. V

Variveis compostas homogneas unidimensional (vectores)


Para a manipulao dos vectores, quer para a leitura como para a escrita de valores nele con9dos, ou qualquer operao a ser efectuada so u9lizadas estruturas repe9o. Suponha que deseja armazenar em um vector N, 5 valores do 9po inteiro e imprimir os mesmos valores. Considerando uma leitura e escrita normal sem estruturas de repe9o, teramos o seguinte: leia (N[0], N[1],N[2],N[3],N[4]) escreval(N[0]) escreval(N[1]) escreval(N[2]) escreval(N[3]) escreval(N[4])

CAP. V

Variveis compostas homogneas unidimensional (vectores)


Para solucionar esta situao, u9lizamos estruturas de repe9o (enquanto ... faca, repita...at e para de... at) ento teremos:
algoritmo "vector de 5 elementos Var N:vetor [0..4] de inteiro i:inteiro Inicio para i de 0 ate 4 faca leia (N[i]) mpara para i de 0 ate 4 faca escreval(N[i])

CAP. V

mpara malgoritmo

Variveis compostas homogneas unidimensional (vectores)


Exemplos: 1. Crie um algoritmo que dado 10 nmeros aleatrios, imprima os mesmos na ordem inversa em que foram inseridos. Ex: 2,3,4,6 resultar em: 6,4,3,2 2. Escreva um algoritmo que soma todos elementos con9dos no vector e imprima o resultado da soma. 3. Faa um algoritmo que l uma sequncia innita de nmeros e termina apenas quando digitar o nmero zero (0)

CAP. V

Variveis compostas homogneas unidimensional (vectores)


1. Soluo algoritmo "vector de 10 elementos" var N:vetor [0..9] de inteiro i:inteiro inicio i<-0 escreva("Digite 10 nmeros") enquanto (i<=9) faca leia (N[i]) i<-i+1 menquanto escreval("O inverso dos valores inseridos : ") enquanto (i>0) faca i<-i-1 escreval(N[i]) menquanto malgoritmo

CAP. V

Variveis compostas homogneas unidimensional (vectores)


2. Soluo algoritmo "soma de 10 elementos" var N:vetor [0..9] de inteiro soma:inteiro i:inteiro inicio i<-0 soma<-0 escreva("Digite 10 nmeros") enquanto (i<=9) faca leia (N[i]) i<-i+1 menquanto para i de 0 ate 9 faca soma<-soma+N[i] mpara escreval("O somatrio dos valores inseridos : ",soma) malgoritmo

CAP. V