90
Algoritmo e Programação Curso de Engenharia Informá9ca Nocturno 1º Ano / 1º Semestre Prof. Lufialuiso Sampaio Velho Ano Lec9vo 2013

Algorítmos e Programação

Embed Size (px)

Citation preview

Page 1: Algorítmos e Programação

Algoritmo  e  Programação    Curso  de  Engenharia  Informá9ca  -­‐  Nocturno  

1º  Ano  /  1º  Semestre  Prof.  Lufialuiso  Sampaio  Velho        

Ano  Lec9vo  2013  

Page 2: Algorítmos e Programação

Objec&vos  A  disciplina  de  Algoritmo  e  Programação  consiste  em:  •         Permi9r  o  desenvolvimento  do  raciocínio  lógico  •    Aprender   as   técnicas   de   resolução   de   problemas   por   meio   de  algoritmos  •   Criar  e  manipular  estruturas  de  dados  •   Introduzir  a  u9lização  de  linguagens  de  alto  nível    •    U9lizar   os   conhecimentos   adquiridos   durante   as   aulas   para  desenvolver  programas  de  computadores.          

Avaliação    Os  estudantes  serão  avaliados  nas  componentes  prá9cas  e  teóricas:  •   Avaliações  conTnuas  •   Prova  parcelares  •   Exame  final  escrito    •   Projecto  em  grupo  de  duas  (2)  pessoas  

Page 3: Algorítmos e Programação

Metodologia  

•     As  aulas  são  ministradas  de  forma  Teórica  /  Prá9ca  

•     Assuntos  de  interesse  geral  deverão  ser  tratados  na  sala  de  aula.  

•    Em   questão   de   dúvidas,   poderão   u9lizar   o   endereço   eletrônico:  

[email protected]  

Page 4: Algorítmos e Programação

Programa  da  Disciplina  

1.        Conceitos  sobre  a    informá9ca  •  Definição  e  surgimento  da  Informá9ca  •  Computador:   definição,   funcionamento,   gerações   de   computadores,  

esquema  de  um  computador,  arquitectura,  classificação  dos  computadores  2.      Algoritmo  •  Conceito  de  Algoritmo  •  Técnicas  de  Resolução  de  problemas  •  Formas  de  representação  dos  Algoritmos  •  Tipos  de  Dados  •  Variáveis  3.      Expressões  •  Operadores  Aritmé9cos  •  Expressões  Aritmé9cas  •  Precedências  gerais  dos  operadores  aritmé9cos  

Page 5: Algorítmos e Programação

Programa  da  Disciplina  

3.      Expressões  (cont)  •  Operadores  Lógicos  •  Expressões  Lógicas    •  Operadores  Relacionais  •  Estrutura  Condicional  4.    Estruturas  de  Repe9ção  •  Definição  e  9pos  existentes  •  Importância  das  Estruturas  de  Repe9ção  na  construção  de  um  Algoritmo  5.  Estrutura  de  Dados  •  Variáveis   compostas   homogêneas  Unidimensional   e  Mul9dimensional(Definição,  

declaração  e  manipulação)  

6.   Projecto  Final  da  Disciplina  

Nota:   Cada   capítulo   será   acompanhado   por   um   conjunto   de   Exercícios   a   serem  resolvidos  na  sala  de  aula  e/ou  Tarefa  para  Casa    

Page 6: Algorítmos e Programação

Bibliografia  

Barbosa,  LisbeteMadsen.  Ensino  de  Algoritmos  em  cursos  de  Computação.  Educ.  2001  

Boente,  Alfredo.  Construindo  Algoritmos  Computacionais:  Lógica  de  Programação.  Rio  de  Janeiro:  Basport,  2003  

CORMEN,  Thomas  H  (et  al.).  Algoritmos:  Teoria  e  Prá9ca.  Rio  de  Janeiro:  Ed.  Campus,  2002  

FARBELLONE,  André  Luiz  Villar,;  ERBERSPACHER,  Henri  Freederico.  Lógica  de  Programação:    A  construção  de  Algoritmo  e  Estrutura  de  Dados.  São  Paulo,  Editora  Pearson  Fren9ce  Hall,  2005  

SOUZA,  Marco  António  Furlan  de.  Algoritmos  e  Lógica  de  Programação.  São  Paulo:  Thomson,  2005  

Page 7: Algorítmos e Programação

CAP.  I:  Conceitos  sobre  a  Informá&ca  

•    O   Termo   informá9ca   foi   criado   pelo   cien9sta  francês   Philips   Dreyfus   em   1962,   com   sendo  resultado  dos  termos:  Informação  +  Automá9ca  

•   Informá9ca  é  definida  como  a  ciência  que  estuda  

o   tratamento   automá9co   da   Informação   tendo  

como  suporte  o  computador.  

•    Informação:   define   o   conjunto   de   dados   bem  

estruturados   que   geram   o   conhecimento   de   um  

determinado  assunto  ou  temá9ca.  

Ex:  Conjunto  de  dados  do  B.I  de  um  indivíduo  

Automá9ca:  define  a  forma  de  como  a   informação  

é  manipulada.  

Page 8: Algorítmos e Programação

CAP.  I:  Conceitos  sobre  a  Informá&ca  

Dados   consiste   em   factos   ob9dos   a   par9r   de   uma   observação,   levantamento   ou  ocorrência.  

Caracterís9cas  da  Informação  • Intangibilidade  (não  possui  existência  psica)  • U&lidade  (deve  corresponder  aos  objec9vos  a  a9ngir)  • Codificação  (Para  receber  a  informação,  o  receptor  deve  conhecer  o  código  em  que  foi  transmi9da)  

• Tempo  (a  informação  pode  variar  dependendo  do  tempo)    

Page 9: Algorítmos e Programação

CAP.  I:  Conceitos  sobre  a  Informá&ca  

Computador:   é   designado   ao   conjunto   de   disposi9vos  electrônicos   capazes   de   receber   dados,     processá-­‐los   de  forma  automá9ca  e  fornecer  resultados.  

COMPUTADOR  =  HARDWARE  +  SOFTWARE  

Hardware:  define  a  parte  psica  de  um  computador.    Ex:  Monitor,  teclado,  mouse,  etc.  

Sotware:  Define  a  parte  lógica  de  um  computador.    Ex:  Sistema  opera9vo,  programas  aplica9vos,  etc.  

Funções  principais:  

•   Receber  dados  •   Processar  dados  •   Armazenar  dados  

•   Mostrar  resultado    

Page 10: Algorítmos e Programação

CAP.  I:  Conceitos  sobre  a  Informá&ca  

Os   sotwares   são   dis9nguidos   em   Sotware   de   Sistema   e  Sotware  de  Aplicação.  

Sotware  de  Sistema:  é  o  elo  de  ligação  entre  o  homem  e  o  computador.   Isto  é,   todo  o  programa  que  permite  dar  vida  ao  computador.  Ex:  Sistema  Opera9vo.    Sotware   de   Aplicação:   é   todo   o   programa   que   facilita   a  realização   das   nossas   tarefas.   Ex:   Office,   programas   de  jogos,  Autocad,  windows  media  player,  etc.  

Para   podermos   u9lizar   os   sotwares   de   aplicação,   é  necessário   a   existência   de   um   sistema   opera9vo   instalado  no   computador.   Caso   contrário,   consis9rá  em  uma   simples  máquina  que  não  sa9sfaz  as  nossas  necessidades.    Sistema  Opera9vo:  é  todo  o  programa  que  efectua  a  gestão  de  todas  as  tarefas  a  serem  executadas  no  computador  bem  como  a  gestão  de  recursos  (drive  de  CD,  Impressora,  etc).  São   exemplos   de   sistemas   opera9vos:   Windows   Vista,  Windows   8,   Mac   OS   x   ,   Linux   (Ubuntu,   Xubuntu,   Fedora),  etc.  

Page 11: Algorítmos e Programação

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

Define   a   estrutura   de   um   computador,   bem   como   a   interação   entre   os   elementos   que   o  cons9tuem  para  obter  o  resultado  desejado.  

A   Arquitectura   a   ser   estudada   é   denominada   Arquitectura   de   Von  Neumann.   É   representada  pelos  periféricos  de  Entrada,  Saída,  Memórias  e  a  Unidade  Central  de  Processamento.  

Ver  a  figura  abaixo:  

Fig.1  –  Arquitectura  de  Von  Neumann  

Page 12: Algorítmos e Programação

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

Periférico  de  Entrada:  é  todo  o  disposi9vo  que  permite  a  inserção  de  dados  no  computador.  Ex:  Teclado,  leitor  de  código  de  barras,  rato,  Scanner,  etc.  

Periférico  de  Saída:  é   todo  o  disposi9vo  que  permite  a  visualização  da   informação  após  o  seu  processamento.  

Periférico  de  E/S:  permitem  a  comunicação  entre  o  homem  e  o  computador  ou  vice-­‐versa.  Ex:  Pendrives,  disco  rígido,  drive  de  CD,  drive  de  disquete,  etc.  

CPU  (Unidade  Central  de  Processamento):    É  considerado  como  o  cérebro  do  computador,  pois  é  nela  em  que  os  dados  são  manipulados  e  os  cálculos  são  feitos.  É  cons9tuída  por  dois   (2)  componentes  principais:  Unidade  de  Controlo  (UC)  e  a  Unidade  Aritmé9ca  e  Lógica  (ULA).    A  unidade  de  Controlo,   carrega  as   instruções  na  Memória  principal,   interpreta  e  executa  e  a  ULA  é  responsável  pela  execução  de  cálculos  aritmé9cos  e  Lógicos.    Memória:  são  disposi9vos  capazes  de  armazenar  dados  e/ou  instruções.      

Page 13: Algorítmos e Programação

CAP.  I:  Conceitos  sobre  a  Informá&ca      

Funcionamento  

Primeiramente   quando   ligamos   o   computador,   é   carregado   o   sotware   de   inicialização  (Boot),  que  verifica  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  execução  logo  que  o  computador  é  ligado.  É  necessário  ter  em  conta  que  toda  a  informação  que  circula  no  computador  não  é  passada  com  a  nossa   linguagem   (natural),  mas   sim  um  conjunto  de   códigos  binários  denominados  bits   (menor   unidade  de   representação  da   informação  no   computador).  Quando  digitamos  uma   letra  apar9r  do   teclado,  na  verdade  esta   letra  passa  por  uma  conversão  e  só  assim  é  que  ela  é  manipulada.  Após   o   envio   de   um   comando   (qualquer   acção   feita   pelo   disposi9vo   de   entrada),   o  processador   interpreta   este   comando   (responsabilidade   da   U.C),   e   carrega   as   instruções  con9das   na  memória   primária   para   a   sua   execução.   Caso   seja   necessário   efectuar   algum  cálculo  lógico  ou  aritmé9co,  a  U.C  trata  de  encaminhar  para  a  ULA  para  serem  executados.  Só  após  toda  a  operação  de  processamento  dos  dados  e  execução  de  instruções  é  que  são  a9vados  os  sinais  de  saída  para  podemos  obter  o  resultado  desejado.  

Page 14: Algorítmos e Programação

CAP.  I:  Conceitos  sobre  a  Informá&ca      Gerações  de  Computadores  

Tudo   começou   com   a   necessidade   do   ser   humano  efectuar   cálculos,   sendo   que   a   contagem   com   os  dedos,  pedras  e  paus    tornaram-­‐se  insuficiente  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   operações  aritmé9cas.  Já  em  1612,  foi  desenvolvida  a  primeira  calculadora  portá9l   por   John   Napierque   se   chamou   Ossos   de  Napier   que   eram   cons9tuidos   por   um   conjunto   de  bastões  para   realizar  as  mul9plicações  por  meio  de  adições.    

Fig.2  –  Ábaco  

Fig.3  –  Ossos  de  Napier  

Page 15: Algorítmos e Programação

CAP.  I:  Conceitos  sobre  a  Informá&ca      Gerações  de  Computadores  

Em  1642,  o  matemá9co  Blaise  Pascal  criou  uma  máquina  calculadora   mecânica   que   efectuava   as   operações   de  adição  e  subtração  denominada  Pascaline,  com  o  intuito  de   ajudar   nos   negócios   do   seu   pai.   Para   o   caso   das  mul9plicações  e  divisões,  efectuava  somas  e  subtrações  sucessivas.  

Em  1801  na  França,  Joseph  Jacquard  criou  uma  máquina  de   tear   que   usava   cartões   perfurados   onde   con9nha   a  configuração   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  

Page 16: Algorítmos e Programação

CAP.  I:  Conceitos  sobre  a  Informá&ca      Gerações  de  Computadores  

Já   em   1822,   Charles   Babbage   começa   a   projectar   uma  máquina  a  vapor  programável  denominada  máquina  de  diferenças  que  efectuava  apenas  adições;  após  10  anos,  Babbage   pensou   em   criar   uma   máquina   que   pudesse  realizar   qualquer   9po   de   cálculo   tendo   como   principio  básico   a   programação,   foi   denominada   como   máquina  analí9ca.  

Esta  máquina   seria   alimentada   por   cartões,   usando     o  conceito   de   cartões   perfurados   de   Jacquard   mas   para  armazenar  instruções  e  dados.  Ela  não  foi  concluída  por  descrédito   dos   seus   financiadores,   mas   a   sua  colaboradora  Ada  King  (Ada  Lovelace)  propôs  programas  e   ainda   técnicas   de   programação   para   a   referida  máquina.  Ada   Lovelacetornou-­‐se   a   primeira   programadora   do  mundo  e  Charles  Babbage  como  o  pai  da  Computação.   Fig.  1.6  –  Máquina  de  diferenças  de  Babbage  

Page 17: Algorítmos e Programação

CAP.  I:  Conceitos  sobre  a  Informá&ca      

Gerações  de  Computadores  

Em   1890,   o   norte   americano   Hermann   Hollerith  projectou   um   tabulador   electromecânico,   que  processava  automa9camente  os  cartões  perfurados  que  era   um   instrumento   essencial   para   entrada   de   dados;  originando  assim  o  nome  de  processamento  de  dados.        

Cartões   perfurados:   cartão   de   papel   perfurado   em  código   BCD   (BinaryCoded   Decimal),   era   usado   para  recolha  de  dados  no  censo  de  1890  nos  EUA.              

Fig.  1.7  –  Tabulador  de  Hollerith  

Fig.  1.8  –  Cartões  perfurados  de  Hollerith  

Page 18: Algorítmos e Programação

CAP.  I:  Conceitos  sobre  a  Informá&ca      

1ª  Geração  de  Computadores  

Z1  de  Konrad  Zuseprojectado  em  1936  a  par9r  de  relés,  executavam  os  cálculos  e  dados  lidos  em  fitas  perfuradas.  Tornou-­‐se  assim  no  primeiro  computador  electro-­‐mecânico.      Em  1944  Howard  Aikenconcebeu  o  computador  eletromecânico  Harvard  Mark  1,  que  funcionava  sem   o   conceito   de   programa   armazenado   ou   seja   para   que   o   programa   fosse   executado,   era  necessário  carregá-­‐lo  a  par9r  de  uma  fita  perfurada  e  as   instruções  eram  executadas  durante  a  leitura  da  fita.  

Em   1946   é   apresentado   o   ENIAC   (ElectronicNumericIntegratorandCalculator   )   cujo   o  desenvolvimento   foi   liderado   por   John  Mauchly   e   J.   PresperEckert,   era   cons9tuído   por   18   mil  válvulas,  pesava  30  toneladas,  possuía  uma  memória  pequena  e  os  programas  eram  configurados  por  cabos.  John   Von   Neumann   juntou-­‐se   a   equipa   do   ENIAC   após   ter   proposto   o   conceito   de   programa  armazenado,   ou   seja   as   instruções   e   os   dados   deviam   ser   armazenados   segundo   uma   única  representação  este  conceito  foi  denominado  por  Arquitectura  de  Von  Neumann  e  implementado  no  computador  EDVAC  (ElectronicDiscreteVariableComputer)            

Page 19: Algorítmos e Programação

CAP.  I:  Conceitos  sobre  a  Informá&ca      

COMPUTADORES  DA  1ª  GERAÇÃO  (1940  -­‐  1955)  

   Construídos  a  base  de  Válvulas  electrônicas     Aplicações  nos  campos  cienTfico  e  militar     Linguagem  Máquina     Uso  restrito     Cartões  perfurados  e  fitas  de  papel  como  memória     Grande  consumo  de  energia     Elevado  peso  e  processamento  na  ordem  dos  milissegundos     Grandes  problemas  de  aquecimento     Necessidade  de  reprogramação  para  cada  tarefa  a  executar        

Fig.  1.9  –  ENIAC  

Fig.  1.8  –  MARK  1  

Fig.  1.10  –  Válvula  electrônica  

Page 20: Algorítmos e Programação

CAP.  I:  Conceitos  sobre  a  Informá&ca      

2ª  Geração  de  Computadores  

Com  o  surgimento  do  transistor  em  1947,  reduziu  significa9vamente  as  dificuldades  apresentadas  pelas   válvulas   electrônicas.   A   velocidade   de   processamento   passou   a   ser   medida   em  microssegundos,   e   surgiram   as   linguagens   de   programação   de   alto   nível   como   a   FORTRAN   e   o  COBOL.  Primeiro   computador   transistorizado   foi   o   TX-­‐0,   construido   no   Massachuse�s  Ins9tuteofTecnology   em   1957.   Posteriormente   a   IBM   criou   o   primeiro   modelo   comercial  denominado  IBM  1401,  mais  barato  e  bastante  rápido.    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  saída  de  dados,  bem  como  o  gerenciamento  de  tarefas  de  forma  paralela.        

Page 21: Algorítmos e Programação

CAP.  I:  Conceitos  sobre  a  Informá&ca      

COMPUTADORES  DA  2ª  GERAÇÃO  (1955  -­‐  1963)  

   Subs9tuição  de  válvulas  pelo  transistor  

   Ocupavam  menos  espaço  e  consome  menos  energia  

   Construção  de  computadores  mais  baratos,  mais  potentes  e  mais  fiáveis  

   Uso  do  conceito  sobre  memória  auxiliar  (fitas  magné9cas  e  discos  magné9cos)  

   Uso  das  linguagens  de  programação  de  Alto  nível  (Cobol  e  Fortran)  

    Velocidade   de   processamento   na   ordem   dos  Microssegundos  

Fig.  1.10  –  TRANSISTOR  

Page 22: Algorítmos e Programação

CAP.  I:  Conceitos  sobre  a  Informá&ca      

3ª  Geração  de  Computadores  

A  principal  caracterís9ca  desta  geração  é  o  uso  dos  Circuitos  Integrados  criado  em  1958  por  Robert  Noyce.    O  Circuito  Integrado  é  cons9tuído  por  dezenas  de  Transistores,  que  executam  desde  funções  lógicas  simples  até  as  funções  mais  complexas.  Reduziu   bastante   o   espaço,   baixou   o   consumo   de   energia,   e   reduziu   a   velocidade   de  processamento  para  nanossegundos.  • IBM  360  é  um  exemplo  de  computadores  desta  geração.  

COMPUTADORES  DA  3ª  GERAÇÃO  (1963  -­‐  1970)  

   Subs9tuição  dos  transistores  por  Circuitos  integrados  

   Velocidade  de  Processamento  em  nanossegundos  

   Generalização  das  linguagens  de  alto-­‐nível  

   Sistemas  opera9vos  mul9-­‐u9lizadores  

   Invenção  do  Mouse  (rato  em  1963  por  Douglas  Engelbart)  

Fig.  1.10  –  CIRCUITO  INTEGRADO  

Page 23: Algorítmos e Programação

CAP.  I:  Conceitos  sobre  a  Informá&ca      

COMPUTADORES  DA  4ª  GERAÇÃO  (1971  -­‐  1990)  

Esta   geração   é   marcada   pelos   microprocessadores.   Um   Microprocessador   consiste   em   um  disposi9vo   electrônico   encapsulado   em   um   chip   que   possui   internamente   uma   Unidade   de  controlo,  uma  unidade  lógico-­‐aritmé9ca  e  uma  memória  interna.  

Primeiro   Microprocessador   que   surgiu   foi   o   Intel   4004   desenvolvido   para   uma   empresa   de  calculadoras.  Já  em  1981,  a  IBM  decidiu  inves9r  em  microprocessadores  lançando  assim  o  IBM  –PC  baseado  no  processador  Intel  8088  com  16  KB  de  memória  RAM.  

CARACTERÍSTICAS  

   Computadores  com  Chips  VLSI  (Aperfeiçoamento  dos  Circuitos  Integrados)  

   Miniaturização  de  componentes  

   Velocidade  de  Processamento  em  picossegundos  

   Baixa  de  preços  

Page 24: Algorítmos e Programação

CAP.  I:  Conceitos  sobre  a  Informá&ca      

COMPUTADORES  DA  5ª  GERAÇÃO  (1991  –  até  hoje)  

A  5ª  Geração  de  Computadores  é  marcada  pela  u9lização  dos  Circuitos  Integrados  em  grande  escala  de   Integração.   Isto   implica   a   integração  de  elevados   circuitos  electrónicos  na  ordem  dos  100.000  à  1.000.000  de  transistores.  Os  computadores  que  u9lizamos  hoje  ainda  podemos  enquadrá-­‐los  na  5ª  geração.        

CARACTERÍSTICAS  

   Aumento  da  capacidade  de  processamento  de  dados,  armazenamento  e  transferência  

   Miniaturização  de  componentes  

   Processamento  paralelo  (várias  operações  a  serem  executadas  ao  mesmo  tempo)  

   Baixa  de  preços  

Page 25: Algorítmos e Programação

CAP.  I:  Conceitos  sobre  a  Informá&ca      

CLASSIFICAÇÃO  DOS  COMPUTADORES  

Os   computadores   podem   ser   classificados   quanto   a   sua   função  que  exercem  ou  pelas  suas  dimensões  (porte).  Quanto  as  suas  funções:  Servidores:   são   computadores   que   servem   as   redes   de  computadores.   Disponibilizam   inúmeros   serviços,   como   por  exemplo:  internet,  base  de  dados,  ficheiros,  impressoras,  etc.  Consola   de   vídeo   games:   prove   ao   u9lizador   um   ambiente   de  entretenimento  (jogos).  Sistemas   Embarcados:   são   disposi9vos   que   incorporam   um  computador  no  seu  interior  para  realizar  uma  tarefa  específica.  Ex:  Computadores  de  bordo  de  um  automóvel    Quanto  ao  porte:  Grande  porte:  supercomputadores  e  mainframes.  Supercomputadores,   são   bastante   rápidos,   potentes   capazes   de  processar   informações   na   ordem   dos   Bilhões   de   instruções   por  segundo.  Mainframes,   processam   grandes   quan9dades   de   informação,  sendo   bastante   usados   pelos   bancos,   companhias   de   seguro   e  aéreas,  na  internet,  etc.  

Fig.  1.11  –  Mainframe  

Page 26: Algorítmos e Programação

CAP.  I:  Conceitos  sobre  a  Informá&ca      

CLASSIFICAÇÃO  DOS  COMPUTADORES  

Médio   Porte:   Denominadas   estações   de   trabalho,  correspondem   aos   computadores   com   grande  capacidade   de   processamento,   e   em   alguns   casos  permitem  o  ambiente  mul9  u9lizador.  Os  também  denominados  mini  computadores,  são  menores  que  os  mainframes,  e  maiores  em    relação  aos  computadores  pessoais.  

Onde  são  u&lizados?  Hoje  em  dia,  os  minicomputadores  são  geral-­‐  mente  u9lizados  como  servidores  nas  redes  de  Computadores.    

Fig.  1.12  –  Worksa&ons  

Page 27: Algorítmos e Programação

CAP.  I:  Conceitos  sobre  a  Informá&ca      

CLASSIFICAÇÃO  DOS  COMPUTADORES  

Pequeno  porte:  Computadores  de  uso  pessoal.  Ex:  Desktop,  laptop,  tablet.  

São  os  computadores  que  u9lizamos  no  nosso  dia  à  dia,  quer  os  que  se    mantém  em  nossas  casas,  bem  como  os  que  usamos  em  qualquer  parte  (laptops,  tablets).      

Page 28: Algorítmos e Programação

CAPÍTULO  II  ALGORITMO  

Ano  Lec9vo  2013  

Page 29: Algorítmos e Programação

Algoritmo    

Definição  Sequência finita de passos que visam a atingir um objectivo específico.

Conjunto de passos com uma determinada ordem, que nos permitem resolver um problema. Para a solução de qualquer problema computacional ou não, é necessário recorrer a técnica de algoritmo pelo facto de permitir extrair deste o conjunto de detalhes envolvidos, e encontrar a melhor solução para o devido problema. É importante saber que o computador não compreende a linguagem humana; então os programas quando são construídos, geralmente utiliza-se uma linguagem de alto nível (JAVA, C, C++, PASCAL) e posteriormente convertidos para linguagem máquina (zeros e uns) por intermédio de um compilador (programa que converte um programa de alto para baixo nível). 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.

Page 30: Algorítmos e Programação

Algoritmo    

Um algoritmo actua sobre um conjunto de entradas(ingredientes no caso do bolo), procedimentos para manipulação das entradas (preparação do bolo) de formas a gerar uma saída benéfica para o utilizador (bolo pronto). os algoritmos uma vez concebidos, podem ser traduzidos para qualquer linguagem de programação (processo de codificação), ou seja precisamos projectar apenas uma vez e escrever para qualquer linguagem. Exemplo: a forma como cozinhamos o arroz, pode ser traduzida para o inglês, o francês, etc, tornando-se compreensível caso utilizamos as regras das respectivas línguas (sintaxe). Veja abaixo as etapas de um algoritmo

CAP.  II  

Fig.  2.1  –  Fases  de  um  Algoritmo  

Page 31: Algorítmos e Programação

Algoritmo    

CARACTERÍSTICAS  

Todo  algoritmo  tem  as  seguintes  caracterís9cas  principais:  Finitude:  deve  possuir  um  número  finito  de  passos.  

Definição:  as  acções  devem  ser  definidas  de  forma  rigorosa  e  sem  ambiguidades  Entradas:  um  algoritmo  deve  ter  zero  ou  mais  entradas  isto  é,  as  quan9dades  que  lhe  são  fornecidas  antes  do  seu  início.  Saídas:  um  algoritmo  deve  ter  uma  ou  mais  saídas,  isto  é,  quan9dades  relacionadas  com  as  entradas.  Efec9vidade:  as  operações  devem  ser  alcançáveis  em  um  tempo  finito.  

Eficácia:  Deve  resolver  o  problema  proposto  Livre   de   linguagem:   a   construção   de   um   algoritmo   não   depende   de   uma   linguagem  específica,  mas  o  contrário  é  válido.  

Page 32: Algorítmos e Programação

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.  

Page 33: Algorítmos e Programação

Algoritmo    RESOLUÇÃO  DE  PROBLEMAS  

Acabamos   por   definir   o   conceito   sobre   algoritmos,   agora   sabemos   que   é   o   meio   que  possuímos  para  resolver  problemas  quer  computacionais  ou  não.  Mas  como  podemos  analisar  um  problema  e  chegar  ao  resultado  exacto?  Precisamos  de  antemão:  

  Compreender  o  problema:   geralmente  o  problema  é  proposto  por  um  enunciado,  ou  seja   um   texto   que   explica   o   problema   e   fornece   detalhes   para   a   solução.   Nesta  podemos   nos   ques9onar:   O   que   pede   o   problema?;     Quais   são   as   condições   do  problema?  Existe  alguma  informação  para  descobrir  ou  cálculo  a  efectuar?  

  Elabore  uma  estratégia  de  resolução:  Encontre  conexões  entre  os  dados,  use  teoremas  ou  formulas  para  ajudar,  verifique  se  está  a  levar  em  conta  todos  os  dados  e  condições.  

  Execute  a  estratégia:  nesta  fase  é  posta  em  prá9ca  todas  as  estratégias  elaboradas  para  a  resolução  do  problema.  

  Revise:   Examine  a   solução  ob9da  a  par9r  do   resultado  ob9do  executando  o   teste  de  mesa.          

Page 34: Algorítmos e Programação

Algoritmo    Exercícios  

1.  Crie  um  algoritmo  que  recebe  dois  números   inteiros,   fornece  o  resultado  da  soma  dos  mesmos.  

2.  Três  músicos:  Damião,  Paulino  e  Emanuel,  tocam  guitarra,  bateria  e  baixo.  Contudo,  não  se  sabe  quem  toca  o  quê.  Sabe-­‐se  que  o  Damião  não  é  o  baixista.  Que  Paulino  ensaia   com   o   guitarrista   às   Quintas.   E   que   o   baixista   ensaia   sempre   sozinho   às  Terças.  Quem  toca  cada  um  dos  instrumentos?  

3.  Um   comboio   parte   de   Luanda   a   uma   velocidade   de   120   Km/h   em   direcção   a  Malange,   ao   mesmo   tempo   em   que   outro   comboio   parte   de   Malange   a   uma  velocidade  de  80km/h  em  direcção  a  Luanda.  Quando  os  comboios  se  encontram,  qual   deles   está  mais   próximo   de   Luanda?   Aquele   que   parte   de   Luanda   ou   o   que  parte  de  Malange?    

Page 35: Algorítmos e Programação

Formas  de  Representação  de  um  Algoritmo    

Um  algoritmo  pode  ser  representado  em  três   (3)   formas  principais:  Descrição  Narra9va,  Fluxograma  e  Pseudocódigo  (Portugol).  

Descrição  Narra&va:  Representa-­‐se  pela  descrição  de  uma  sequência  de  passos  em  nossa  língua   natural   (português).   Este   método   ajuda   a   compreender   e   organizar   as   etapas  necessária   para   resolver   um   problema;   mas   esta   técnica   não   é   compreendida   pelo  computador,  pois  não  compreende  a  linguagem  humana.    Sendo  assim,   é   importante   construir   os   algoritmos  em  uma   linguagem  de  programação  específica;  normalmente  o  Pseudocódigo.  

Regras  de  construção  

•  U9lizar  somente  um  verbo  em  cada  frase  

•  Construir  o  algoritmo  numa  visão  para  leigos  em  informá9ca  

•   U9lizar  frases  curtas  e  simples  

•  Ser  objec9vo  •  Não  u9lizar  palavras  que  tenham  mais  do  que  um  sen9do  de  compreensão  

Page 36: Algorítmos e Programação

Exemplos  de  algoritmo  em  Descrição  Narra&va    SOLUÇÃO  

1.  Crie  um  algoritmo  que  recebe  dois  números   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  

Saída:  Mostrar  resultado  da  soma  

Fim  do  algoritmo  

Page 37: Algorítmos e Programação

SOLUÇÃO  

2.  Três  músicos:  Damião,  Paulino  e  Emanuel,  tocam  guitarra,  bateria  e  baixo.  Contudo,  não  se  sabe  quem  toca  o  quê.  Sabe-­‐se  que  o  Damião  não  é  o  baixista.  Que  Paulino  ensaia   com   o   guitarrista   às   Quintas.   E   que   o   baixista   ensaia   sempre   sozinho   às  Terças.  Quem  toca  cada  um  dos  instrumentos?  

Algoritmo  “instrumento  do  musico”  Entrada:  tresmusicos  tres  instrumentos  Inicio  Excluir  o  Damião  do  baixo  Excluir  o  Paulino  da  guitarra  Excluir  o  Paulino  do  Baixo  Associar  Damião  a  Guitarra  Associar  Emanuel  ao  Baixo  Associar  Paulino  a  Bateria  Saída:  Mostrar  resultado  da  associacao  Fim  do  algoritmo  

Exemplos  de  algoritmo  em  Descrição  Narra&va    

Page 38: Algorítmos e Programação

Formas  de  Representação  de  um  Algoritmo    

Fluxograma:  Representa-­‐se   por   símbolos   gráficos   predefinidos,   que   ilustram   os   passos  individuais  e  suas  interligações  até  chegar  a  solução  do  problema;  é  como  se  es9vesse  a  juntar  um  quebra  cabeças.  As  instruções  a  serem  executadas  são  colocadas  no  interior  de  cada  figura.  

Modo  de  representação  

Indica  o  início  ou  fim  do  algoritmo  

Processamento  de  dados  ou  execução  de  operações  

Entrada  de  dados    

Saída  de  dados  

Page 39: Algorítmos e Programação

Exemplos  de  algoritmo  em  Fluxograma  

1.  Crie  um  algoritmo  que  recebe  dois  números   inteiros,   fornece  o  resultado  da  soma  dos  mesmos.  

SOLUÇÃO  inicio  

Primeiro  numero  

Segundo  numero  

Primeiro  +  Segundo     Primeiro  +  Segundo     fim  

Nota:   Na   saída   o   resultado   é   representado   novamente   (Primeiro   +   Segundo)   para   ilustrar   o  conteúdo  que  sairá  no  ecrã.  O  uso  de  variáveis  simplifica  esta  operação.  Ver  nas  próximas  aulas.  

Page 40: Algorítmos e Programação

Exemplos  de  algoritmo  em  Fluxograma  

1.  Crie  um  algoritmo  para  tomar  banho  no  chuveiro.  SOLUÇÃO  

inicio  

Entrar  no  chuveiro  

Ligar  a  água   Pegar  no  champô  e  esfregar  na  cabeça   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  

fim  

Page 41: Algorítmos e Programação

Formas  de  Representação  de  um  Algoritmo    

Pseudocódigo   (Portugol):   u9liza   palavras   escolhidas   e   bem   definidas.   É   um   método  bastante  aproximado  a  uma  linguagem  de  programação  de  alto  nível.  As  instruções  escritas  em  Pseudocódigo,  são  facilmente  traduzidas  em  outras  linguagens,  desde  a  definição  dos  9pos  de  dados,  instruções  de  repe9ção,  selecção,  etc,  para  além  do  facto   destas   serem   escritas   em   português.   Mas,   é   importante   aprender   as   regras   de  representação  para  cada  instrução  (Sintaxe).  

Regras  de  representação  

programa  <nome_do_programa>  

declaracoes<definicoes_de_constantes>  

<declaracoes_de_variaveis>  

Inicio  

<instrucoes_do_programa>  

fim  

Page 42: Algorítmos e Programação

Formas  de  Representação  de  um  Algoritmo    

Representação  de  instruções  principais  

Entrada  de  dados:  u9lize  a  instrução   leia().  No  interior  do  parênteses  são  postos  os  elementos  que  deseja  de  entrada  do  algoritmo.  Por  ex:  uma  variável.    Saída  de  dados:  u9lize  a  instrução  escreva  ().  No  interior  do  parênteses  são  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”  

Solução  

programa  “imprime_mensagem”    

Inicio  

Escreva(“Ola,  este  é  o  meu  primeiro  programa”)    

fim  

Page 43: Algorítmos e Programação

Crie  um  algoritmo  que  recebe  três  notas  de  um  aluno  (p1,p2,p3)  e  calcula  a  média  

final  deste  aluno.  

Resolução  

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  final  do  aluno  e”,media)  

Fim  do  algoritmo  

Exemplos  de  algoritmo  em  Pseudocódigo  

Page 44: Algorítmos e Programação

Formas  de  Representação  de  um  Algoritmo    

Conceitos  a  ter  em  conta  na  criação  dos  algoritmos  em  Pseudocódigo  

Sintaxe:   define   o   conjunto   de   regras   grama9cais   de   formação   de   sentenças   válidas   ou  grama9calmente  correctas  segundo  determinada  linguagem.  Ex:  No  português  não  deve  escrever  a  palavra  Programação  como  Programacao.    

Neste  caso  existe  um  erro  de  sintaxe.  

Semân&ca:  indica  a  associação  das  sentenças,  permi9ndo  a  sua  correcta  interpretação.  Ex:  Belo  Angola  é  país  um.    

Neste  caso,  em  termos  de  sintaxe  está  correcto  mas  não  se  consegue  interpretar  a  frase  pois   os   termos   não   estão   enquadrados   apropriadamente.   Considera-­‐se   um   erro   de  semân9ca.  Com   base   nas   definições,   conclui-­‐se   que   a   sintaxe   expressa   as   regras   que   devem   ser  obedecidas  para  a9ngir  determinado  resultado  e  a  semân9ca  representa  o  conteúdo  das  palavras   da   linguagens,   permi9ndo   assim   uma   interpretação   correcta   do   escrito   com  determinada  linguagem.  

Page 45: Algorítmos e Programação

Tipos  de  Dados    

Para  que  o   computador   consiga   armazenar   ou  manipular   um  dado,   necessita   saber   o   seu  9po.  Sendo  assim,  um  9po  de  dado  define  o  9po  de   informação  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  números  inteiros  posi9vos  e  nega9vos.    

Ex:  -­‐1,  3,  10,  12,  -­‐50.  

Tipo   de   dado   Real:   envolve   o   conjunto   de   números   decimais   ou   fraccionários   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  são  subconjuntos  dos  números  reias.    

Tipo   de   dado   Literal:   representa   uma   sequência   de   caracteres   com   letras,   dígitos,   ou   ainda  símblos  especiais.  São  também  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  símbolo,  ou  um  dígito).  Ex:  ‘M’,    ‘2’,  ‘F’  

Tipo  Lógico  (Booleano):  é  representado  por  dois  valores  principais  (Verdadeiro  (V)  e  Falso  (F))      

CAP.  II  

Page 46: Algorítmos e Programação

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  não  casada?  

Sugestão:  

Nome  da  pessoa  -­‐>  Literal  

Idade  -­‐>  Inteiro  

Morada  -­‐>  Literal    

Sexo-­‐>  caractere  

Altura-­‐>  Real,  pois  possui  a  parte  inteira  e  faccionária.  Ex:  1,70  cm  

A  condição  de  ser  casado  ou  não  dará  sempre  em  V  ou  F;  então  u9lize  o  lógico  

CAP.  II  

Page 47: Algorítmos e Programação

Variáveis  

Uma   variável   corresponde   a   uma   posição   de   memória   por   onde   guardamos   os   dados,   cujo  conteúdo   pode  mudar   ao   longo   da   execução   do   programa.   Toda   variável   tem  um  nome   que   é  conhecido  como  iden&ficador.  

É   importante   saber   que   quando   ocorre   uma   alteração   do   valor   con9do   na   variável,   o   valor  armazenado  anteriormente  é  perdido  na  mémória.   Isto  é,  supondo  que  tenho  o  nome  Sampaio  armazenado   em  memória;   se   por   algum  mo9vo   eu   alterar   o   nome   Sampaio   para   Lufialuiso,   o  nome  anterior  é  eliminado  da  memória  e  subs9tuido  pelo  novo.  

CAP.  II  

   Necessidade  da  u&lização  de  variáveis  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  cálculo  100   -­‐   idade_u9lizador  e  depois  armazenar  também  o  resultado.  

Usando  a   ideologia   acima  que   a   variável   é   um  espaço  na  memória   em  que   armazenamos  os  dados,   seria   necessário   dizer   o   endereço   que   o   mesmo   está   localizado.   Neste   contexto,   em  programação  é  usado  o  conceito  de  variável  para  representar  o  apelido  do  endereço.  

Page 48: Algorítmos e Programação

Variáveis  

Regras  de  uso  e  declaração  de  variáveis  

   Toda  a  variável  deve  ser  declarada  antes  de  ser  usada  (inclui  o  seu  9po  e  o  iden9ficador);     Toda  a  variável  deve  ter  sempre  um  9po  de  dado  associado    

   O  primeiro  caractere  deve  ser  uma  letra;     Uma  variável  deve  ter  sempre  um  valor  inicial  antes  de  ser  usada;  

   Nome  de  variáveis  escritas   com   letras  maiúsculas   serão  diferentes  de   letras  minúsculas   (case  sensi9ve);  

    Nenhuma   palavra   reservada   à   ferramenta   (COMPILADOR)   poderá   ser   usada   como   nome   da  variável;  

   U9lize  nomes  representa9vos  para  dar  uma  visão  do  conteúdo  con9do  nela;     Se  haver  mais  de  um  caractere,  este  só  poderá  ser:  letra  ou  algarismo;     O  nome  de  uma  variável  não  deve  conter  caracteres  especiais,  com  excepção  do  underline  (_).  

CAP.  II  

•  São exemplo de variáveis os seguintes: Nome, aluno1, nome_completo, a, b, idade •  Não representam identificadores válidos os seguintes: ~nome, 1aluno, nome?completo, idade-pessoa, filhação

Page 49: Algorítmos e Programação

Variáveis  

Regra  de  u&lização  das  variáveis  

Atribuição:  é  um   termo  u9lizado  para   atribuir   um  valor   a   uma   variável,   ou   seja   armazenar  um  determinado  conteúdo  em  uma  variável.  

Esta  operação  é  representada  em  Pseudocódigo  por  uma  seta  apontando  para  a  esquerda,  onde  a  direita  fica  o  valor  a  ser  atribuído  e  a  esquerda  a  variável  a  receber  o  valor.  

Ex:  variável  <-­‐  constante              variável  <-­‐  variável    

           Variável  <-­‐  expressão  Para  cada  um  dos  casos  lê-­‐se:  variável  recebe  constante  (idem  para  os  outros  subs9tuindo  o  que  está  a  ser  atribuído)    

CAP.  II  

Page 50: Algorítmos e Programação

Variáveis  

Regra  de  declaração  de  variável  

<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  variável          Ano_nascimento  :  inteiro  -­‐>  Ano  nascimento  é  a  variável  e  o  inteiro  é  o  9po  de  dado                real  peso  -­‐>  real  representa  o  9po  de  dado  e  peso  representa  o  nome  da  variável  

O   modo   de   declaração   de   variável   pode   variar   de   acordo   com   a   linguagem   de   programação   a   ser  u9lizada  ou  o   compilador  em  causa.   Para   algoritmos,  usando  o   compilador  VISUAL  G,   a  declaração  é  feita  da  seguinte  maneira:  idade:  inteiro  Isto  quer  dizer,  que  a  SINTAXE   (Regra  de  escrita)  do  compilador  define  a  declaração  de  variável  deste  modo.  

CAP.  II  

Page 51: Algorítmos e Programação

Variáveis  

Exercício  

Faça  um  algoritmo  que  recebe  três  notas  de  um  aluno  e  calcula  a  média  das  notas.  

Solução  1-­‐  Compreenda  o  problema  e  elabore  a  estratégia  de  resolução  Questão:  O  que  o  problema  pede?    Preciso  de  alguma  variável  para  resolver  este  problema;  se  sim,  que  9po  de  dado  vou  armazenar  nestas  variáveis?  O  resultado  de  que  9po  será?  De  que  modo  vou  representar  o  algoritmo?  Fluxograma  ou  Pseudocódigo?  

2-­‐  Execute  a  estratégia.  

CAP.  II  

Page 52: Algorítmos e Programação

Variáveis  

     Solução  do  exercício  u9lizando  pseudocódigo:  

  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  média  do  aluno  corresponde  a    ”,  media)       fimalgoritmo  

CAP.  II  

Page 53: Algorítmos e Programação

Constantes  

Uma  constante  é  um  valor  fixo  que  não  é  alterado  durante  o   tempo  ou  durante  a  execução  do  algoritmo.  

Ex1:  5,  2.4,  “OLA”,  V.  

Nota:  A  constante  V  con9da  no  exemplo  é  do  9po  lógico.  

Ex2:  escreva(“estás  a  aprender”)  -­‐>  o  frase  con9da  no  parênteses  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   lógico   u9lizam   as   constantes   V   -­‐>   Verdadeiro   e   F   -­‐>  Falso.  

   Possuem  um  nome  único  para  a  sua  iden9ficação  (iden9ficador)    

   Recomenda-­‐se  o  uso  de  nomes  suges9vos.  Ex:  pi=3.1415  ,  sexo=“feminino”  

   As  regras  para  a  declaração  de  constantes  são  as  mesmas  usadas  para  as  variáveis  

CAP.  II  

Page 54: Algorítmos e Programação

Constantes  

Declaração  de  constantes  

Sintaxe:  const  <nome_da_constante>  =  valor  

Const  –  é  uma  palavra  reservada,  usada  sempre  que  declarar  uma  constante.  

nome_da_constante  –  iden9ficador  da  constante  Valor  –  valor  fixo  atribuído  a  constante.  

Ex:  const  pi=3,1415  

               morada=“Sambizanga”  

CAP.  II  

Page 55: Algorítmos e Programação

Operadores  e  Expressões  aritmé&cas  

CAP.  II  

São  denominados  operadores  aritmé9cos  os  seguintes  elementos:    

OPERADOR   DENOMINAÇÃO   PRIORIDADE  DE  EXECUÇÃO    (os  com  maior  prioridade  são  os  primeiros  a  serem  executados)  

+   Adição   1  

-­‐   Subtracção   1  

*   Mul9plicação   2  

/   Divisão   2  

DIV   Divisão  inteira   2  

MOD  ou  %   Resto  da  divisão  inteira   2  

**  ou  ^   Potenciação   3  

As  expressões  aritmé9cas   são  expressões  cujos  operadores   são  aritmé9cos  e  os  operandos   são  variáveis  ou  constantes  do  9po  inteiro  ou  real.  

Ex:  3+3/2  ,    X+Y,    2*K  Nota:  Caso  a  prioridade  for  igual,  a  expressão  aritmé9ca  é  resolvida  da  esquerda  para  a  direita.    

Page 56: Algorítmos e Programação

Operadores  lógicos  e  relacionais  

CAP.  II  

São  denominados  operadores  lógicos  os  seguintes  elementos:    

Operador   Tipo   PRIORIDADE  DE  EXECUÇÃO    (os  com  maior  prioridade  são  os  primeiros  a  serem  executados)  

OU   Binário   1  

E   Binário   2  

NÃO   Unário   3  

As  expressões  lógicas  são  cons9tuídas  por  operadores  lógicos  e  variáveis  ou  constantes  do  9po  lógico  originando  resultados  do  9po  verdadeiro  ou  falso.  

Nota:       U9lizando  os  operadores  lógicos  é  necessário  saber  que:  uma  expressão  A  E  B  só  será  verdadeira  se  A  for  Verdadeira  e  B  for  Verdadeira.  Caso  contrário  será  falsa     Uma  expressão  A  OU  B  será  verdadeira  caso  pelo  menos  uma  delas  (A  OU  B)  forem  verdadeiras.  

Page 57: Algorítmos e Programação

Operadores  Relacionais  

CAP.  II  

São  denominados  operadores  os  seguintes  elementos:    

O   Resultado   ob9do   numa   relação   é   sempre   um   valor   lógico   (   V   ou   F).   Ex:   A+B=C,   é   uma  expressão  que  será  verdadeira  ou  falsa  a  medida  em  que  o  resultado  da  expressão  aritmé9ca  for  igual  ao  conteúdo  de  C.    

Operador   Função  

=   Igual  

>   Maior  que  

<   Menor  que  

>=   Maior  ou  igual  

<=   Menor  ou  igual  

<  >   Diferente  de  

Page 58: Algorítmos e Programação

CAPÍTULO  III  Estruturas  de  Selecção  

Ano  Lec9vo  2013  

Page 59: Algorítmos e Programação

Estrutura  de  Selecção  (Condicional)  

A   estrutura   de   selecção   permite   a   execução   de   instruções   caso   determinadas   condições,  representadas   por   expressões   lógicas   ou   relacionais,   são   ou   não   verdadeiras.   Existem   as  seguintes  estruturas  de  selecção:  

   Estrutura  de  Selecção  Simples  

   Estrutura  de  Selecção  Composta  

   Estrutura  de  Selecção  encadeada     Escolha  múl9pla  

Estrutura  de  Selecção  Simples:  É  u9lizada  quando  necessitamos  executar  uma  ou  várias  ins-­‐  truções   caso   uma   condição   seja   sa9sfeita.   Esta   estrutura   não   executa   nada   caso   a   condição  seja  falsa.        Sintaxe:                                  Se  <condição>  entao           Instrução             fimse;    

SIM  

NÃO  

Representação  gráfica  de  uma  estrutura  condicional  (Fluxograma):      

CAP.  III  

Page 60: Algorítmos e Programação

Estrutura  de  Selecção  

CAP.  III  

Ex:   Faça   um   algoritmo   que   verifica   se   um   dado   número   é   par?   Resolva   u9lizando  Fluxograma  e  Pseudocódigo.  Solução  usando  Fluxograma:  

Page 61: Algorítmos e Programação

Estrutura  de  Selecção  

CAP.  III  

Ex:   Faça   um   algoritmo   que   verifica   se   um   dado   número   é   par?   Resolva   u9lizando  Fluxograma  e  Pseudocódigo.  Solução  usando  Pseudocodigo:  

algoritmo  "numero  par”  var  n:inteiro  Inicio  escreva("Insira  um  numero")  leia  (n)  se  (n  mod  2=0)  entao  escreva  (n,"  é  par  ")  fimse  fimalgoritmo  

Page 62: Algorítmos e Programação

Estrutura  de  Selecção  

CAP.  III  

Estrutura  de  Selecção  Composta:  permite  a  execução  de  duas  alterna9vas  a  par9r  de  uma  única  condição;  isto  é  suponha  que  um  conjunto  de  acções  dependa  da  avaliação  verdadeira  e   apenas   uma   dependa   de   uma   falsa?   Usando   o   9po   de   selecção   Simples   estudada  anteriormente,  isto  não  é  possível.  Mas  vejamos  como  a  composta  funciona:  Sintaxe:  

      se  <condição>  entao  

      <sequência  de  instruções>  

    senão  

      <instruções>  

      fimse;  

Page 63: Algorítmos e Programação

Estrutura  de  Selecção  

CAP.  III  

Ex:  Crie  um  algoritmo  que  dado  a  idade  de  um  indivíduo,  determina  se  o  mesmo  é  Jovem  ou  não.  Admite  que  o  indivíduo  é  Jovem  caso  a  sua  idade  es9ver  entre  os  18  e  40  Anos.  Solução  em  pseudocódigo        

algoritmo  "teste  se  é  jovem"  

var  idade:inteiro            inicio            escreva("Digite  a  Idade  do  indivíduo")            leia(idade)               se  ((idade>=18)E  (idade<=40))  entao            escreva("Este  individuo  é  Jovem")            senao            escreva("O  individuo  não  Jovem.  Poderá  ser  um  Adolescente  ou  Idoso")            fimse  

  fimalgoritmo  

Page 64: Algorítmos e Programação

Estrutura  de  Selecção  

Estrutura   de   Selecção   Encadeada:   representa   o   agrupamento   de   várias   selecções.  Normalmente,   é   usada  quando  uma  determinada   ação  ou  bloco  deve   ser   executado   caso  um  grande  conjunto  de  possibilidades  forem  sa9sfeitas.  

Sintaxe:  

      se  <condição>  entao  

      se  <condição>  entao  

        <conjunto  de  instruções>         fimse;  

    senao  

      <instrução>  

    fimse;  

CAP.  III  

Page 65: Algorítmos e Programação

Estrutura  de  Selecção  

Ex:  Crie  um  algoritmo  em  que  dado  dois  números   inteiros,   verifique  se  os  dois   são  pares.  Caso  forem,  adicione  2  ao  maior.  Caso  forem  ímpares  some  os  dois  números  e  imprima  os  resultados.  Solucione  u9lizando  pseudocódigo  

Solução      

CAP.  III  

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  número  é  par  e  resulta  em  ",  n1)  senao  n2<-­‐n2+2          escreva  ("O  segundo  número  é  par  e  resulta  em  ",  n2)  fimse  senao  escreva  ("Condição  para  impares  e  a  soma  é  ",  n1+n2)  fimse  fimalgoritmo  

Page 66: Algorítmos e Programação

Estrutura  de  Selecção  

Selecção   de   múl&pla   escolha:   é   u9lizada   quando   necessitamos   testar   um   conjunto   de  valores,  e  quando  acções  diferentes  são  associadas  a  esses  valores.  Imagine  que  9véssemos  mais  do  que  cinco  (5)  condições  para  serem  testadas  para  executar  determinadas  acções;  poderia-­‐mos  u9lizar  várias  selecções  encadeadas.  Mas  não  é  prá9co.    

Sintaxe:  

      escolha  (expressão)  

      caso  <hipótese  1>:      <instrução1>         caso  <hipótese  2>:      <instrução2>  

      caso  <hipótese  3>:      <instrução3>  

      caso  contrário  :  <instrução  n>  

    fimescolha        

CAP.  III  

Page 67: Algorítmos e Programação

Estrutura  de  Selecção  

Questões  a  levar  em  conta  na  Selecção  de  múl&pla  escolha:  

   A  expressão  é  avaliada,  e  o  valor  será  comparado  com  cada  uma  das  hipóteses.     A  opção  caso  contrário  (outrocaso  em  outros  compiladores)  é  opcional  

   A  hipótese  referida  na  sintaxe  é  definida  como  uma  constante  caractere,  uma  constante  numérica,  e  em  alguns  casos  literais  

   Esta  estrutura,  é  amplamente  u9lizada  em  algoritmos  com  menus  (P.e:  Calculadora)  

Exemplo:  Crie  um  algoritmo  que  simule  a  execução  de  uma  máquina  calculadora.            

CAP.  III  

Page 68: Algorítmos e Programação

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  operação  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")  

fimescolha  

fimalgoritmo  CAP.  III  

Page 69: Algorítmos e Programação

CAPÍTULO  IV  Estruturas  de  Repe9ção  

Ano  Lec9vo  2013  

Page 70: Algorítmos e Programação

Estruturas  de  Repe&ção  

São  estruturas  que  permitem  a  execução  repe9da  de  um  certo  trecho  do  programa  por  um  determinado   número   de   vezes   ou   ainda   enquanto   uma   certa   condição   mantém-­‐se  verdadeira.  Existem  três  principais  9pos  de  estruturas  de  repe9ção:  

   enquanto       repita     para  

As  estruturas  de  repe9ção  diferem-­‐se  pelo  seu  modo  de  funcionamento,  algumas  precisam  que  uma  certa  condição  seja  verdadeira  para  que  execute  o  loop  (laço  de  repe9ção),  outras  dependem  do  valor    de  uma  variável  de  controlo  para  que  execute  as  instruções.  

Imagine  que  deseja  mostrar  a  tabuada  de  um  número  inteiro  qualquer.  Até  o  momento,  com  o  que  foi  aprendido,  o  ideal  seria  mul9plicar  o  número  dado  com  cada  número  no  intervalo  de  1  à  n.  Isto  quer  dizer  que  teríamos  n  mul9plicações,  o  que  não  seria  viável.  

Sendo  assim,  aplica-­‐se  o  conceito  sobre  laços  de  repe9ção  para  resolver  casos  similares.    

CAP.  IV  

Page 71: Algorítmos e Programação

Estruturas  de  Repe&ção  

Enquanto:  é  uma  estrutura  que  efectua  um  teste  condicional  no  início  do  laço  e  a  execução  do   bloco   de   acções   ou   da   acção   necessita   que   a   condição   seja   verdadeira.   Quando   a  condição  for  falsa,  as  instruções  não  são  executadas  nenhuma  vez.  

Sintaxe  (Pseudocódigo):               Representação  Fluxograma:      

enquanto  (condição)  faca  

/*  instruções  a  serem  executadas    enquanto  a  condição  for  verdadeira*/  

fimenquanto    

CAP.  IV  

Page 72: Algorítmos e Programação

Estruturas  de  Repe&ção  

Modo  de  funcionamento:  

1.  Na  estrutura  enquanto,  o  teste  lógico  permite  controlar  o  número  de  repe9ções  a  serem  realizadas  pelo  laço.    

2.  Ao   executarmos   o   algoritmo,   caso   o   resultado   do   teste   lógico   for   verdadeiro,   as  instruções   dentro   do   laço   serão   realizadas;   quando   o   algoritmo   encontra   o  “fimenquanto”   (ou   a   bolinha   do   fluxograma)   ele   retorna   para   o   teste   lógico   afim   de  avaliá-­‐lo  novamente  para  saber  se  deve  repe9r  mais  uma  vez.  

3.   Se  o  teste  der  verdadeiro,  os  comandos  do  laço  são  novamente  executados,  mas  se  der  falso  o  algoritmo  sai  do  laço  e  segue  a  sua  execução  realizando  o  próximo  comando  que  es9ver  após  o  “fimenquanto”.  

CAP.  IV  

Page 73: Algorítmos e Programação

Estruturas  de  Repe&ção  

Contadores  e  Somadores:  

Em  laços  de  repe9ção,  necessitamos  de  contadores  para  contar  o  número  de  repe9ções  a  serem   efectuadas,   e   de   somadores   para   acumular   os   valores   de   entrada   em   uma   única  variável.  

Imagine  que  deseja  mostrar  a  soma  dos  10  primeiros  números  naturais.  Como  vamos  saber  o   número   de   vezes   já   repe9das?   A   resposta   é   u9lizando   uma   variável   contadora   que  receberá  um  valor   inicial   (geralmente   zero)   e   em  cada   repe9ção  é   incrementada  em  uma  unidade  através  de  uma  atribuição  (Ex:  a<-­‐a+1).  Usando   esta   analogia,   podemos   dizer   que   incremento:   é   a   acção   de   acrescentar   uma  unidade  ao  valor  de  uma  variável;  e  decremento  é  a  acção  contrária.  E  como  obter  o  total  da  soma  dos  números?  Neste   caso   temos  de  u9lizar  um  acumulador  para  que  em  cada   laço,  acumule  numa  variável  os  valores  que  serão  fornecidos(neste  caso  1+2+3+.....10).        

CAP.  IV  

Page 74: Algorítmos e Programação

Estruturas  de  Repe&ção  

Ex:  Crie  um  algoritmo  que  soma  a  quan9dade  de  números  pares  de  1  à  20.    

Solução:  

  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  

      fimse         cont<-­‐  cont+1  

    fimenquanto  

    escreva  ("A  soma  total  é  ",  soma)         fimalgoritmo  

CAP.  IV  

Page 75: Algorítmos e Programação

CAP.  IV  

cont  <-­  cont+1  

soma:inteiro  cont:inteiro  

início  

cont<-­1 soma<-­0  

Cont<=20  

Cont  mod  2  =  0  

soma  <-­  soma+cont  

7im  

F  

V

V

F  

Page 76: Algorítmos e Programação

Estruturas  de  Repe&ção  

Repita:  é  uma  estrutura  que  efectua  um  teste  condicional  no  final  do   laço.  Deste  modo,  o  bloco  de  instruções  do  laço  serão  executados  no  mínimo  uma  vez,  até  que  uma  determinada  condição  seja  verdadeira;  isto  quer  dizer  que  ela  executa  enquanto  for  falsa.    

Sintaxe  (Pseudocódigo):               Representação  Fluxograma:      

repita    

/*  instruções  a  serem  executadas    enquanto  a  condição  for  verdadeira*/  

até  (condição)      

CAP.  IV  

Page 77: Algorítmos e Programação

Estruturas  de  Repe&ção  

Para:  é  uma  estrutura  que  repete  um  conjunto  de  operações  por  um  determinado  número  de  vezes  previamente  definido.  Esta  estrutura  não  prevê  uma  condição  tal  como  as  outras,  pois  possui  limites  fixos  (inicio  e  final).      

Sintaxe  (Pseudocódigo):               Representação  Fluxograma:      

para  V  de  vi  até  vf  passo  p  faca    

/*  instruções  a  serem  executadas    enquanto  a  condição  for  verdadeira*/  

fimpara  

Ou  ainda  

para  V  de  vi  até  vf    faca      

/*  instruções  a  serem  executadas  

 enquanto  a  condição  for  verdadeira*/  

fimpara  

CAP.  IV  

Page 78: Algorítmos e Programação

Estruturas  de  Repe&ção  

Onde:  

V  -­‐  é  a  variável  de  controlo  

vi  –  é  o  valor  inicial  da  variável  V  vf  –  é  o  valor  final  da  variável  V  

p  –  é  o  valor  do  incremento  à  variável  V  

Nota:   tudo  o  que  es9ver  o   faça  e  o  fimpara  será  caracterizado  como  o  que  deve  ser   feito  para  cada  ocorrência.  

CAP.  IV  

Page 79: Algorítmos e Programação

CAPÍTULO  V  Estruturas  de  Dados  

Ano  Lec9vo  2013  

Page 80: Algorítmos e Programação

Estruturas  de  Dados  

Definição:  As  estruturas  de  dados,  definem  a  forma  como  os  dados  estão  organizados  e  armazenados  na  memória  do  computador,  por  forma  a  facilitar  o  seu  acesso  e  manipulação.  

Até  aqui,  estudamos  que  numa  variável  só  é  possível  armazenar  um  valor;  ou  seja,  caso  9ver  um  valor    armazenado  numa  variável,  e  desejar  armazenar  outro  valor  na  mesma  variável,  o  que  poderá  acontecer  será  a  subs9tuição  do  an9go  pelo  novo.    

Quando  precisamos  armazenar  um  conjunto  de  valores   são  u9lizadas   variáveis   compostas  que   podem   ser:   Homogêneas   e   Heterogêneas;   as   variáveis   compostas   Homogêneas  agregam   um   conjunto   de   dados   do  mesmo   9po   e   as   variáveis   compostas  Heterogêneas,  agregam  um  conjunto  de  dados  de  9pos  diferentes.  

Nesta   primeira   secção,   estudaremos   as   variáveis   compostas  Homogêneas,   que   envolvem  Vectores  e  Matrizes,  também  conhecidas  como  Arrays.  

CAP.  V  

Page 81: Algorítmos e Programação

Variáveis  compostas  homogêneas  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  médias  e  imprime  o  nome  de  cada  um  e  a  média  do  final  do  semestre.  Possível  solução:  

    Algoritmo  “dados  escolares  de  10  alunos”  

    var  

      nome1,  nome2,....nome10:literal  

    media1,  media2,  media3,.....media10:real  

    inicio  

      leia(nome1)  

    leia(nome2)       ......  

    leia(nome10)  

    ..........  

      fimalgoritmo      CAP.  V  

Page 82: Algorítmos e Programação

Variáveis  compostas  homogêneas  unidimensional  (vectores)    

U9lizando   a   solução   apresentada   anteriormente,   seria   bastante   trabalhoso   solucionar   o  problema  proposto;  o  mais  fácil  seria  u9lizar  o  conceito  de  vectores.  

Definição:  

Vector  representa  um  conjunto  de  variáveis    capazes  de  armazenar  valores  do  mesmo  9po  (literal,   inteiro,   real,   etc).   Um   vector   é   visto   como   uma   caixa   com   vários   compar9mentos  onde  podemos  guardar  documentos;  para  o  nosso  caso  específico  é  considerado  como  uma  variável  onde  podemos  armazenar  mais  de  um  dado.  

Caracterís&cas  de  um  Vector  

   Possui  um  nome  (iden9ficador)  

   Possui  um  índice  (posição)  

   U9liza  colchetes  (dois  parênteses  rectos  )  para  representar  as  posições  do  vector     Armazena  apenas  dados  do  mesmo  9po  (qualquer  9po  de  dado)     Elementos  individuais  são  acessados  por  meio  da  sua  posição                

CAP.  V  

Page 83: Algorítmos e Programação

Variáveis  compostas  homogêneas  unidimensional  (vectores)    

Sintaxe  para  declaração  de  um  vector  

<nome  do  vector>:  vetor  [Li..Lf]  de  <&po  de  dado>  

Ex:  nome:  vetor  [0..4]  de  literal  

Representação  gráfica  de  um  Vector  

A  figura  acima  representa  um  vector  de  cinco  (5)  posições  com  valores  do  9po  literal.  

Imagine  que  o  nome  da  variável  do  9po  vector  seja  nome  tal  como  na  figura  acima:  

Significa  o  seguinte:  nome[0]  =  “Maria”,  nome[1]=“Valdino”,  ...  ,  nome[4]=“Sandra”  

CAP.  V  

Maria   Valdino   Sónia     Eliana   Sandra  

[0]   [1]   [2]   [3]   [4]  nome  

Page 84: Algorítmos e Programação

Variáveis  compostas  homogêneas  unidimensional  (vectores)    

OPERAÇÕES  COM  VECTORES  

   Não  é  possível  manipular  directamente  todos  os  elementos  do  vector;  apenas  um  de  cada  vez.  

   O  acesso  individual  a  cada  componente  do  vector  é  realizado  pela  especificação  do  nome  e  a  posição  do  mesmo  por  meio  de  índices.  

    O   índice   não   representa   o   valor   con9do   no   vector;   mas   sim   a   posição   em   que   um  determinado  valor  está  armazenado  no  vector.  

ATRIBUIÇÃO  DE  VALORES  

Ex:  Nome[2]  <-­‐  “Joaquim”   ,  quer  dizer  que  é  atribuído  a  constante  Joaquim  do  9po   literal  para  a  segunda  posição  do  vector  Nome.  

idade[10]  <-­‐  50,  quer  dizer  que  é  atribuído  o  valor  50  para  a  décima  posição  do  vector  idade    

CAP.  V  

Page 85: Algorítmos e Programação

Variáveis  compostas  homogêneas  unidimensional  (vectores)    

Nota:  É  necessário  levar  em  conta  que  o  valor  a  ser  atribuído  pode  ser  uma  constante,  uma  variável  ou  uma  expressão.  

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  posição  correspondente.  Neste  caso  é:  

Sintaxe  

leia  (<lista  de  variáveis>).  Ex:  leia  (escola  [3])  

ESCRITA  DE  VECTORES  

Os  passos  são  os  mesmos  em  comparação  aos  referidos  acima.  Sendo  assim  teremos:  

Sintaxe    

 escreva  (<lista  de  variáveis>).  Ex:  escreva  (escola  [3])  

CAP.  V  

Page 86: Algorítmos e Programação

Variáveis  compostas  homogêneas  unidimensional  (vectores)    

Para  a  manipulação  dos   vectores,   quer  para   a   leitura   como  para  a  escrita  de   valores  nele  con9dos,  ou  qualquer  operação  a  ser  efectuada  são  u9lizadas  estruturas  repe9ção.  

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   repe9ção,  teríamos  o  seguinte:  

CAP.  V  

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])  

Page 87: Algorítmos e Programação

Variáveis  compostas  homogêneas  unidimensional  (vectores)    

Para   solucionar   esta   situação,   u9lizamos   estruturas   de   repe9ção   (enquanto   ...   faca,  repita...até  e  para  de...  até)  então  teremos:    

CAP.  V  

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])  

fimpara  

para  i  de  0  ate  4  faca  

escreval(N[i])  

fimpara  

fimalgoritmo  

Page 88: Algorítmos e Programação

Variáveis  compostas  homogêneas  unidimensional  (vectores)    

Exemplos:    

1.  Crie   um   algoritmo   que   dado   10   números   aleatórios,   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.  Faça  um  algoritmo  que  lê  uma  sequência  infinita  de  números  e  termina  apenas  quando  digitar  o  número  zero  (0)      

CAP.  V  

Page 89: Algorítmos e Programação

Variáveis  compostas  homogêneas  unidimensional  (vectores)    

1.  Solução  

CAP.  V  

algoritmo  "vector  de  10  elementos"  

var          N:vetor  [0..9]  de  inteiro          i:inteiro  inicio            i<-­‐0  escreva("Digite  10  números")  enquanto  (i<=9)  faca  leia  (N[i])  i<-­‐i+1  fimenquanto  escreval("O  inverso  dos  valores  inseridos  é:  ")  enquanto  (i>0)  faca  i<-­‐i-­‐1  escreval(N[i])  fimenquanto  fimalgoritmo  

Page 90: Algorítmos e Programação

Variáveis  compostas  homogêneas  unidimensional  (vectores)    

2.  Solução  

CAP.  V  

algoritmo  "soma  de  10  elementos"  

var          N:vetor  [0..9]  de  inteiro          soma:inteiro          i:inteiro  inicio            i<-­‐0            soma<-­‐0  escreva("Digite  10  números")  enquanto  (i<=9)  faca  leia  (N[i])  i<-­‐i+1  fimenquanto  para  i  de  0  ate  9  faca  soma<-­‐soma+N[i]  fimpara  escreval("O  somatório  dos  valores  inseridos  é:  ",soma)  fimalgoritmo