Your SlideShare is downloading. ×
0
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Material Algoritmos e Estruturas de Dados - 1º Bimestre

1,957

Published on

Material Algoritmos e Estruturas de Dados - 1º Bimestre

Material Algoritmos e Estruturas de Dados - 1º Bimestre

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,957
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
89
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Eng. Comp. ALGORITMOS E ESTRUTURAS DE DADOS 28/11/2013 MATERIAL DA PRIMEIRA PROVA 1
  • 2. Informática 28/11/2013 • O termo foi criado na França em 1962. • information automatique = informação automática. • Definição: é a ciência que estuda o tratamento automático e racional da informação; encarregada pelo estudo e desenvolvimento de máquinas e métodos para processar informação. • Principais funções: – Desenvolvimento de novas máquinas; – Desenvolvimento de novos métodos de trabalho; – Construção de aplicações automáticas existentes. Eng. Comp. 2
  • 3. Computação 28/11/2013 • A palavra computador vem de computar que tem sua orgiem no latim do verbo computare qu significa contar ou calcular. Portanto, um computador, no sentido mais geral, é qualquer recurso, ou equipamento que ajude o homem a contar ou calcular. • É um dispositivo físico capaz de realizar cálculos e fazer decisões lógicas com uma velocidade de milhões e até bilhões de vezes mais rápida do que o homem pode fazer e com grande precisão, desde que receba as instruções adequadas. Eng. Comp. 3
  • 4. Computação 28/11/2013 • Por que surgiu a computação? – A computação surgiu da idéia de auxiliar o homen nos trabalhos rotineiros e repetitivos – cálculos e gerenciamento. É uma ferramenta útil e necessária. • Vantagens: – Rapidez de execução; – Confiabilidade dos resultados obtidos – precisão; – Grande capacidade de armazenamento de informações. Eng. Comp. 4
  • 5. Evolução dos modernos equipamentos de computação 28/11/2013 • É comum se dividir em gerações os computadores de acordo com a tecnologia dos componentes usados em seus circuitos eletrônicos. • Com base nessa tecnologia e mais no critério de que esses computadores tenham sido projetados para serem comercializados, é possível estabelecer dados aproximados para início e término de cada geração. • Na verdade, a divisão de computadores em gerações é muito mais complexa e se baseia na análise de diversas outras características, principalmente as funcionais. • Todavia a escolha da tecnologia dos componentes como critério, é um bom ponto de partida. Eng. Comp. 5
  • 6. 1940 – 1952 Eng. Comp. • 1ª Geração de Computadores: – É constituído por todos os computadores construídos à base de válvulas à vácuo e cuja aplicação fundamental se deu nos campos científicos e militar. Exemplo: IBM 360, MARK I e UNIVAC. 28/11/2013 6
  • 7. 1952 – 1964 Eng. Comp. • 2ª Geração de Computadores: – A substituição de válvula pelo transistor deu início à chamada segunda geração de computadores. Utilização de linguagens de alto nível: cobol, fortan, algol. Exemplos: IBM 1401, IBM 7094. 28/11/2013 7
  • 8. 1964 – 1971 Eng. Comp. • 3ª Geração de Computadores: 28/11/2013 – Nesta geração, o elemento mais significativo é o circuito integrado – CI. Surgido em 1964 e que consiste no encapsulamento de uma grande quantidade de componentes discretos – resistências, condensadores, diodos, transistores – instalando-se um ou vários circuitos numa pastilha de silicone. Tecnologia SSI – integração em baixa escala – e MSI – integração em média escala. Grandes desenvolvimentos dos sistemas operacionais. Exemplos: UNIVAC 1108, IBM 360. 8
  • 9. 1971 – 1981 Eng. Comp. • 4ª Geração de Computadores: – Em 1971 aparece o microcomputador, que consiste na inclusão de toda a CPU de um computador num único circuito integrado. LSI – integração em grande escala. Microcomptuadores; redes. Exemplos: IBM 3090, PC. 28/11/2013 9
  • 10. 1981 – ? Eng. Comp. • 5ª Geração de Computadores: – Componentes em: Altíssima escala de integração VLSI Ultra grande escala de integração ULSI Altíssima velocidade de processamento Processamento paralelo 28/11/2013 • • • • 10
  • 11. Esquema do pessoal de informática 28/11/2013 • O pessoal de informática pode ser classificado em: • Direção: encarregado de dirigir e coordenar uma central de processamento de dados – CPD – para obter um bom rendimento da equipe. • Análise: encarregado do desenvolvimento de aplicações no que diz respeito ao projeto e desenvolvimento de algoritmos. Dar apoio técnico aos usuários. • Programação: encarregado de transcrever para linguagem de computador os algoritmos elaborados na fase de análise. • Implementação e operação: execução dos programas, distribuíção dos resultados e mantenção diária dos sitemas existentes. Eng. Comp. 11
  • 12. Sistema de computação • Eng. Comp. Um sistema de computação é formado por usuários, software e hardware. O objetivo é processar dados. Processamento de dados: execução de processos sobre o dados original, para transformá-lo em uma informação. HARDWARE SOFTWARE USUÁRIOS PROCESSAMENTO SAÍDA 28/11/2013 ENTRADA ARMAZENAMENTO 12
  • 13. Software: conceitos básicos Eng. Comp. • Software ou Programa é a parte lógica que data o equipamento físico com a capacidade par realizar algum trabalho. O programa nada mais é do que uma sequencia de instruções escritas em uma linguagem de programação, informando ao hardware o que fazer em que ordem. O software pode ser dividido em dois grandes grupos de programas: os básicos e os aplicativos. 28/11/2013 • Softwares básicos são software destinados à operar e manter um sistema de computação. Incluem-se nesta categoria os sistemas operacionais – SO, os utilitários, os compiladores e os interpretadores. 13
  • 14. Sistema Operacional 28/11/2013 • É o software que controla o hardware, atuando como interface entre o computador e o usuário. • É responsável pelo trafego dos dados entre os componentes do sistema e por checar ininterruptamente todos os dispositivos do computador para tomar atitudes baseadas nas detecções feitas. • Cada linha de computadores tem o seu próprio SO. Exemplos: DOS, OS/2, SYTE 7, UNIX. • Alguns Sos começaram a englobar um ambiente operacional, que permite uma interface gráfica com o usuário,multiplas janelas na tela, como por exemplo o windows 95 e 98. • Os Sos podem ser classificados em diversas categorias. Eng. Comp. 14
  • 15. Sistemas multitarefa e monotarefa Eng. Comp. • Monotarefa: – permite a execução de um único programa aplicativo. Somente um programa pode ser carregado para a memória. 28/11/2013 • Multitarefa: – permite que vários programas aplicativos sejam carregados para a memória. Somente um deles está ativo em um determinado instante, porém, todos estão disponíveis para uso. Exemplo: windows 95. 15
  • 16. Sistemas monousuário e multiusuário Eng. Comp. • Monousuário: – Permite que apenas um usuário trabalhe com ele. 28/11/2013 • Multiusuário: – Diversas pessoas, usando terminais ou micros em rede, usam os recursos de um computador central. 16
  • 17. Sistemas multiprocessados Eng. Comp. • São máquinas mais sofisticadas que possuem diversas CPUs para agilizarem o processamento, executando várias tarefas simultaneamente, uma em cada CPU. Exemplo: windows NT, UNIX, etc. que um de etc. 28/11/2013 • Utilitários ou programas auxiliares: são programas ajduam a manter e aumentar a eficiência de sistema de computação, como os utilitários compactação de arquivos, protetores de tela, Exemplo: Norton Utilities, PKZIP, etc. 17
  • 18. Sistemas multiprocessados Eng. Comp. • Compilador: traduz o programa fonte escrito em uma linguagem de alto nível – por exemplo, Pascal – para a linguagem de máquina, gerando o programa executável que o computador consegue entender e processar diretamente. 28/11/2013 • Interpretador: interpreta cada comando de programa fonte e executa as instruções que a ele correspondem, sem gerar um programa executável. Mais lentos que os compiladores. 18
  • 19. Linguagem de programação Eng. Comp. • É um conjunto de regras que permitem ao homem escrever os programas – conjunto de instruções – que ele deseja que sejam executadas pelo computador. 28/11/2013 19
  • 20. Linguagem de Máquina Eng. Comp. • É um conjunto de instruções capazes de ativar diretamente os dispositivos eletrônicos do computador. Ela é constituída somente por zero ou um, o que dificulta a leitura e a compreensão pelas pessoas. • Bit: binary digit ou digito binário, 0 ou 1. É a menor unidade de informação e apresenta dois estados identificáveis. Sim ou não, chave ligada ou desligada. 28/11/2013 • Byte: é um conjunto de 8 bits, e constitui a unidade de medida básica e universal para a capacidade de armazenamento de todos os dispositivos do computador. 20
  • 21. Linguagem de Máquina Eng. Comp. 28/11/2013 21
  • 22. Programas aplicativos Eng. Comp. • São programas especializados e que realizam tarefas específicas, como processador de textos, planilha eletrônica, gerenciador de banco de dados, folha de pagamento, controle de estoques, etc. 28/11/2013 22
  • 23. Hardware Eng. Comp. • É a parte física de um sistema de computação, ou seja, todos os elementos materiais que o compõem – circuitos eletrônicos, dispositivos mecânicos, elétricos e magnéticos, etc. • Componentes básicos de um computador: – Dispositivo de entrada e saída – periféricos; – Memória; – Unidade central de processamento – UCP; 28/11/2013 • Dispositivos de entrada: serve para receber os dados e programas preparados pelo homem e transformá-los em sinais eletromagnéticos – bits – manipuláveis pelo computador. 23
  • 24. Hardware 28/11/2013 • Memória: é o dispositivo que armazena informações. Existem dois tipos principais de memória: memória principal ou central e memória auxiliar ou secundária. • Memória principal ou central: é a memória interna do computador, caracterizada por ser de alta velocidade. Encarregada de armazenar os programas e dados necessários para que o sistema realize um determinado trabalho. É constituída principalmente por RAM e ROM. • RAM – random access memory ou memória de acesso aleatório: Onde ficam armazenados os dados, os resultados intermediários onde ficam os programas que estão sendo executados pela UCP. Eng. Comp. 24
  • 25. Hardware 28/11/2013 • ROM – ready only memory ou memória exclusivamente de leitura: Onde as informações são gravadas uma única vez, geralente pelo fabricante e nunca mais são alteradas. A memória ROM é não volátil, isto é, mesmo com o desligamento do computador, as informações nela contidas não são perdidas. • PROM: não pode ser alterada – circuitos internos. • EPROM: luz ultravioleta – apaga e remove, programada. • EAROM: tensão em um dos pinos, processos elétricos – altera e romove. • Memória auxiliar: é um dispositivo de armazenamento de longo prazo, no qual o computador armazena dados que poderão ser posteriormente utilizados. Eng. Comp. 25
  • 26. Unidade central de processamento 28/11/2013 • É a principal unidade de controle e processamento de um computador. Tem como funções coordenar, controlar e realizar todas as operações do sistema. É constituída por: – Unidade lógica e aritmética – ULA: realiza todos os cálculos – operações aritméticas e lógicas. – Unidade de controle – UC: controla as intruções dos programas que estão na memória, fazz com que o dispositivo de entrada leia os dados, tranfira os valores adequados da memória para a ULA, armazena e recupera dados e resultados intermediários armazenados na memória e passa os resultados para o dispositivo de saída. Eng. Comp. 26
  • 27. Números Binários 28/11/2013 • Os números binários compõem o sitema numérico de base 2, e é formado por zeros e uns (0 e 1). Os numeros binários foram adotados nos computadores por motivos de precisão e economia, pois construir um circuito eletrônico capaz de detectar a diferença entre dois estados – presença ou ausência de corrente elétrica – é muito mais fácil e barato do que construir um circuito que detecte a difrerença entre dez estados diferentes. Eng. Comp. 27
  • 28. História e Evolução da Computação Eng. Comp. 28/11/2013 28
  • 29. Histórico e evolução Eng. Comp. A primeira tentativa bem-sucedida de criar uma máquina de contar foi o ÁBACO. 28/11/2013 29
  • 30. Histórico e evolução Eng. Comp. O primeiro instrumento moderno de calcular – na verdade, uma somadora – foi construído pelo físico, matemático e filósofo francês Blaise PASCAL, em 1642. 28/11/2013 30
  • 31. Histórico e evolução JACQUARD desenvolveu os perfurados para entrada de dados. Eng. Comp. cartões 28/11/2013 31
  • 32. Histórico e evolução MÁQUINA de BABBAGE Base do funcionamento computador: Eng. Comp. de um 28/11/2013 – Alimentação de dados, através de cartões perfurados. – Uma unidade de memória, onde os números podiam ser armazenados e reutilizados. – Programação sequencial de operações – hoje chamado de sistema operacional. 32
  • 33. Histórico e evolução Eng. Comp. Herman HOLLERITH 28/11/2013 - Juntou os cartões de Jacquard e o conceito de impulsos elétricos para transmissão de dados. - Reconhecimento no censo americano de 1890. - Tempo muito menor gerando economia. 33
  • 34. Histórico e Evolução Eng. Comp. Guerra e Computação: o que tem a ver? - As guerras trouxeram para a computação um enorme desenvolvimento. - 28/11/2013 Os governos incentivaram o desenvolvimento de equipamentos que pudessem calcular trajetórias precisas, construir mísseis, e etc... 34
  • 35. Histórico e evolução 28/11/2013 Alan TURING cria o Colossus, máquina que, uma vez plugada, programada e alimentada, resolvia qualquer questão de criptografia em poucos minutos. Eng. Comp. 35
  • 36. Histórico e evolução Eng. Comp. ENIAC (Eletronic Numerical Integrator And Computer) O computador mais famoso desta época. Foi construído em 1946. 28/11/2013 – 17.840 válvulas – Pesava 4 toneladas – 30 metros de comprimento e 3 metros de altura – Ocupava área de 180 m2 – Capacidade de 5.000 somas por segundo 36
  • 37. Histórico e evolução ENIAC Eng. Comp. 28/11/2013 37
  • 38. Histórico e evolução Eng. Comp. MARK O Mark também reivindica o título de primeiro computador. 28/11/2013 38
  • 39. Eng. Comp. 28/11/2013 39
  • 40. Eng. Comp. 28/11/2013 40
  • 41. Eng. Comp. E hoje?? E o futuro?? 28/11/2013 41
  • 42. Computador ou Tablet? Eng. Comp. 28/11/2013 42
  • 43. Computação nas Nuvens Eng. Comp. 28/11/2013 43
  • 44. TI VERDE Eng. Comp. 28/11/2013 44
  • 45. Lógica de programação 28/11/2013 • Significa o uso correto das leis de pensamento, da “ordem de razão” e de processos de raciocínio e simbolização formais na programação de computadores, objetivando racionalidade e o desenvolvimento de técnias que cooperem para produção de soluções logicamente válidas e coerentes, que resolvam com qualidade os problemas que se deseja programar. • Programação: é responsável pela instrução do computador do que e de como um problema deve ser resolvido. • Algoritmo: é uma sequencia ordenada e sem ambiguidade de passos que visam atingir um objetivo bem definido e, consequentemente levam à solução de um problema. Eng. Comp. 45
  • 46. Lógica de programação Eng. Comp. • Em um algoritmo, é importante salientarmos: – Deve descrever exatamente quais são as instruções que devem ser executadas e em que sequencia; – Eficiente: resolve o problema com o mínimo de recursos; – Eficaz: consegue resolver o problema em qualquer 28/11/2013 situação. Todas as situações de exceção, que possa alterar o comportamento do algoritmo devem ser especificados e tratados. 46
  • 47. Como construir um algoritmo Problema Análise Preliminar Desenvolva um algoritmo para resolver o problema Entenda o problema com a maior precisão possível Se o resultado não for satisfatório, altere o algoritmo e teste novamente Solução Teste de qualidade Produto Final Alteração Algoritmo pronto para ser aplicado – implementado 28/11/2013 Execute o algoritmo para vários testes cujos resultados sejam conhecidos Eng. Comp. 47
  • 48. Exemplo Eng. Comp. • Algoritmo para troca de uma lampada queimada. 1. 2. Remova a lâmpada queimada Coloque um a nova lâmpada • Detalhando ou refinando os passos: – Vamos trocar uma lâmpada de rosquear. Se a lâmpada está queimada não é necessário fazer o teste se está ou não funcionando. Temos uma lâmpada em casa igual àquela que queimou – voltagem e potência. Temos uma lâmpada para trocar pela outra. Temos uma escada para auxiliar na troca. 28/11/2013 • Sempre enumerar os passos a serem executados. • Primeiro fazer a grosso modo e depois detalhar. 48
  • 49. Exemplo 28/11/2013 1.1. Coloque uma escada embaixo da lâmpada queimada. 1.2. Suba na escada até alcançar a lâmpada queimada. 1.3. Gire a lâmpada queimada no sentido anti-horário até que ela se solte. 2.1. Escolha uma nova lâmpada da mesma potência/vontagem da queimada. 2.2. Posicional a lâmpada nova no soquete. 2.3. Gire a lâmpada no sentido horário, até que ela se firme. 2.4. Desça da escada. Eng. Comp. 49
  • 50. Exemplo Eng. Comp. • Ordenando os passos: 28/11/2013 1.1. Coloque uma escada embaixo da lâmpada queimada. 2.1. Escolha uma nova lâmpada da mesma potência/vontagem da queimada. 1.2. Suba na escada até alcançar a lâmpada queimada. 1.3. Gire a lâmpada queimada no sentido anti-horário até que ela se solte. 2.2. Posicional a lâmpada nova no soquete. 2.3. Gire a lâmpada no sentido horário, até que ela se firme. 2.4. Desça da escada. 50
  • 51. Detalhando mais ainda os passos – versão 1 1. 2. 3. 28/11/2013 Coloque uma escada embaixo da lâmpada queimada. Escolha uma lâmpada nova. Enquanto a potência/voltagem não for a mesma da queimada. – Descarte a lâmpada escolhida. – Escolha outra lâmpada. 4. Suba um degrau da escada. 5. Enquanto não possa alcançar a lâmpada queimada – Suba um degrau da escada. 6. Gire a lâmpada no sentido anti-horário. 7. Enquanto a lâmapda nao estiver livre do soquete • Gire a lâmpada no sentido anti-horário. 8. Posicione a nova lâmpada no soquete. 9. Gire a lâmpada no sentido horário. 10. Enquanto a lâmpada não estiver firme no soquete. – Gire a lâmpada no sentido horário. 11. Desça da escada. Eng. Comp. 51
  • 52. Detalhando mais ainda os passos – versão 2 1. 2. 3. – 28/11/2013 Coloque uma escada embaixo da lâmpada queimada. Escolha uma lâmpada nova. Enquanto a potência/voltagem não for a mesma da queimada. – Descarte a lâmpada escolhida. – Escolha outra lâmpada. 4. Suba um degrau da escada. 5. Enquanto não possa alcançar a lâmpada queimada – Suba um degrau da escada. 6. Gire a lâmpada no sentido anti-horário. 7. Enquanto a lâmapda nao estiver livre do soquete • Gire a lâmpada no sentido anti-horário. 8. Posicione a nova lâmpada no soquete. 9. Gire a lâmpada no sentido horário. 10. Enquanto a lâmpada não estiver firme no soquete. – Gire a lâmpada no sentido horário. 11. Desça um degrau da escada. 12. Enquanto não possa alcançar o chão. Eng. Comp. Desça um degrau da escada. 52
  • 53. Estrutura condicional Eng. Comp. Se condição Então Comandos 1 Senão Comandos 2 28/11/2013 53
  • 54. Tipos de dados 28/11/2013 • O objetivo principal de qualquer computador é a resolução de problemas através da manipulação de dados, que podem ser de vários tipos. • Tipos primitivos: tipos de dados básicos utilizados na construção de algoritmos. – Inteiro: informação pertencente ao conjunto dos números inteiros. Exemplo: -10, 0, 5, 100. – Real: informação pertencente ao conjunto dos números reais. Exemplo: 5.2 (tem que usar ponto e não vírgula), -3.93, 0.0, 7. – Caracter: informação composta por um conjunto de caracteres alfanuméricos. Exemplo: „a‟, „ABC‟, “F10B5‟, „$?!5‟. – Lógico: informação que pode receber (assumir) apenas dois valores possíveis: verdadeiro (V) ou falso (F). Eng. Comp. 54
  • 55. Tipos de dados 28/11/2013 • Constante: um dados é constante quando não se modifica durante a execução do algoritmo (programa). Pode ser de qualquer tipo primitivo. • Variáveis: um dado é variável quando possui um conteúdo (valor) que pode variar durante a execução de algoritmo (programa). • Embora a variável possa assumir diferentes valores, ela só pode armazenar um valor a cada instante. Toda variável é conhecida no algoritmo por um nome ou identificador. Ele é formado por uma única letra ou então por uma letra seguida de letras ou dígitos. Exemplo: X, Y, Z, salário, ano, etc. Eng. Comp. 55
  • 56. Observações 28/11/2013 • O cálculo – em computação – é feito com dados, geralmente são números, porém podem ser caracteres. O computador faz cálculos, o programa executa as instruções que damos. Dados são jogados dentro da variável ou constante. • Tipos primitivos são utilizados no algoritmo, porque já vem definido na linguagem. A maioria das linguagens utilizam os quatro tipos de dados. • Tipo inteiro: números dos conjuntos dos números inteiros, positivos, negativos e nulos. • Números naturais: só números inteiros positivos. • Tipo real: mais abrangentes, casas decimais. A casa decimal é representada por ponto e não vírgula. Eng. Comp. 56
  • 57. Observações 28/11/2013 • Os números inteiros está contido no conjunto dos números reais. • O caracter tem que vir com apóstrofo – ou aspas simples – „ABC‟ – cadeia de caracteres. • Tipo lógico: ou é verdadeiro ou é falso. Por exemplo: x = 7 > 2, então x = V. • Tipo constante: espaço de memória onde o dado é jogado e não muda o valor. Exemplo: pi = 3.14. • Variável: espaço de memória do computador onde é guardado um dado e pode ser alterado. • Cada espaço tem um nome obrigatoriamente. Três espaços de memória para três variáveis. Eng. Comp. 57
  • 58. Observações 28/11/2013 • Se chama variável porque os valores podem se alterar. Só precisa saber o nome da variável. • Geralmente a variável terá um nome parecido com o programa – nome sugestivo. • O DOS só reconhece 8 digítos – caracteres. • O tamanho do espaço – ou seja, bytes de memória – vai variar conforme o tipo das variáveis. • O número máximo para os números inteiros são (faixa de valores): -32.756 a 32.756. Eng. Comp. 58
  • 59. Observações Eng. Comp. O 7 é apagado e substituído por -3. Só podemos guardar um valor em cada espaço. Memória 7 0 Y -5 1 Z 28/11/2013 X = -3 Y=0 Z=1 X 2 X=7 Y=2 Z = -5 -3 59
  • 60. Expressões aritméticas Eng. Comp. • São expressões em que os operadores são aritméticos e os operandos são constantes e/ou variáveis numéricos. Operadores Aritméticos Operador Função Operadores Aritméticos Operador Função Adição pot(x,y) Potenciação. Ex: pot(2,3) = 8 - Subtração rad(x,y) Radiciação. Ex: rad(4) = 2 * Multiplicação sqrt(x) sqrt(4) / Divisão mod div sqr(x) Resto da divisão. Ex: 9 mod 4 = 1 Quociente da divisão. Ex: 9 div 4 = 2 Quadrado de x. Ex: sqr(4) = 16 28/11/2013 + 60
  • 61. Prioridades 28/11/2013 Parenteses mais internos pot rad sqr * / div mod +Exemplo: pot(5,2) – 4/2 + rad(1+3*5)/2 pot(5,2) – 4/2 + rad(1+15)/2 pot(5,2) – 4/2 + rad(16)/2 25 – 4/2 + rad(16)/2 25 – 2 + 4/2 25 – 2 + 2 23 + 2 25 Eng. Comp. 61
  • 62. Expressões lógicas Eng. Comp. • São expressões cujos operadores são lógicos, ou relacionais e cujos operandos são relações, constantes e/ou variáveis do tipo lógico. • Operadores relacionais: são utilizados para realizar comparações entre dois valores do mesmo tipo. Estes valores podem ser constantes, variáveis ou expressões aritméticas. Operador Função Igual a > Maior que < Menor que >= Maior ou igual a <= Menor ou igual a <> 28/11/2013 = Diferente 62
  • 63. Expressões lógicas Eng. Comp. Ou ( v ) 28/11/2013 • O resultado obtidode uma expressão realcional é sempre um valor lógico – V ou F. Exemplo: 2 * 4 = 24 / 3 8=8 Operador Função V Não ( ~ ) Negação Operadores Lógicos: E(^) Conjunção Disjunção 63
  • 64. Tabelas verdade Eng. Comp. • Sejam p e q proposições: Negação Conjunção Disjunção p não p p q peq p q p ou q V F F F F F F F F V F V F F V V V F F V F V V V V V V V Prioridades: não e ou Prioridades entre todos os parênteses: Parênteses mais internos Operadores aritméticos Operadores relacionais Operadores lógicos 28/11/2013 O resultado de uma expressão lógica é sempre um valor lógico – V ou F. 64
  • 65. Exemplos Eng. Comp. d = sqr(b) – 4 * a * c 28/11/2013 2 < 5 e 15 / 3 = 5 2<5e5=5 VeV V 65
  • 66. Exemplos 28/11/2013 não V ou pot(3,2) / 3 < 15 - 35 mod 7 não V ou 9 / 3 < 15 - 35 mod 7 (operadores atitméticos) não V ou 3 < 15 - 35 mod 7 (operadores atitméticos) não V ou 3 < 15 - 0 (operadores relacionais) não V ou 3 < 15 (operadores relacionais) não V ou V (operadores lógicos) F ou V (operadores lógicos) V Eng. Comp. 66
  • 67. Exemplos Eng. Comp. não ( 5 < > 10 / 2 ou V e 2 – 5 > 5 – 2 ou V ) não ( 5 < > 5 ou V e 3 > 3 ou V ) não ( F ou V e F ou V ) não ( V e F ou V ) não ( F ou V ) não ( V ) F 28/11/2013 67
  • 68. Paradigmas de Programação Eng. Comp. • Um paradigma de programação fornece e determina a visão que o programador possui sobre a estruturação e execução do programa. 28/11/2013 68
  • 69. Paradigma Imperativo ou Procedural Eng. Comp. • Primeiro faça isso e depois faça aquilo 28/11/2013 • Sequência de comandos passo-a-passo • Algol, Basic, C e Pascal 69
  • 70. Paradigma Declarativo ou Funcionais Eng. Comp. • Qual é o problema? • Descrever um problema, sem se preocupar com qual algoritmo será utilizado para resolvê-lo. • Algoritmo “universal”, capaz de solucionar qualquer problema. O problema se adapta a esse algoritmo, e não o contrário. • Linguagem Prolog; 28/11/2013 • Baseia-se em verdades universais e regras de inferência. 70
  • 71. Paradigma funcional Eng. Comp. • Subdividir o problema em outras funções e resolver cada uma separadamente, pois os utilizados posteriormente. resultados encontrados serão • Sobre o paradigma funcional, é fácil ilustrar através de um fluxograma. • Cada bloco recebe no topo uma entrada de dados e retorna, na base, os dados de saída. 28/11/2013 • A solução geral é dividida em várias funções que, no final, se associam para mostrar o resultado na tela. • Linguagem Haskell 71
  • 72. Paradigma orientado a objetos Eng. Comp. • Um conjunto de classes faz a interação entre objetos (instâncias) e, com a troca de mensagens entre eles, forma-se o software como um todo. 28/11/2013 • Linguagem Java 72
  • 73. Outros • • • • • Linguagens Linguagens Linguagens Linguagens Etc Eng. Comp. de scripts para banco de dados para simulação visuais 28/11/2013 73
  • 74. Linguagens de Baixo Nível Eng. Comp. • Linguagem Assembly • São linguagens simbólicas ou código de máquina • Abstração de dados baixa 28/11/2013 74
  • 75. Linguagens de Médio Nível Eng. Comp. • São linguagens dificieis de programar pois estão tanto na camada mais alta quanto na mais baixa • Abstração de dados média 28/11/2013 • Linguagem C 75
  • 76. Linguagens de Alto Nível Eng. Comp. • São mais fáceis de programar • O programador não precisa saber vários detalhes sobre o computador para usar estas linguagens • Linguagem Java 28/11/2013 • Abstração de dados alta 76
  • 77. Interpretação e Compilação Ambos são tradutores de código Interpretador não gera executável Compilador gera executável Interpretador interpreta as linhas de código e não mostram erros • Compilador analisa a gramática e sintaxe da linguagem e aponta erros. Só funciona, de fato, depois que os erros são eliminados. Eng. Comp. • • • • 28/11/2013 77
  • 78. Introdução Eng. Comp. • Existem diversas formas de representação de algoritmos, mas não há um consenso com relação à melhor delas. • Algumas formas de representação de algoritmos tratam os problemas apenas em nível lógico, abstraindo-se de detalhes de implementação muitas vezes relacionados com alguma linguagem de programação específica. 28/11/2013 • Por outro lado existem formas de representação de algoritmos que possuem uma maior riqueza de detalhes e muitas vezes acabam por obscurecer as idéias principais do algoritmo, dificultando seu entendimento. 78
  • 79. Introdução Eng. Comp. • Dentre as formas de representação de algoritmos mais conhecidas podemos citar: 28/11/2013 • Descrição Narrativa; • Fluxograma Convencional; • Pseudocódigo, também conhecido como Linguagem Estruturada ou Portugol. 79
  • 80. Narração Descritiva Eng. Comp. • Nesta forma de representação os algoritmos são expressos diretamente em linguagem natural. Exemplo de uma receita de bolo: Misture os ingredientes Unte a forma com manteiga Despeje a mistura na forma Se houver coco ralado então despeje sobre a mistura Leve a forma ao forno Enquanto não corar deixe a forma no forno Retire do forno Deixe esfriar 28/11/2013 – – – – – – – – – – 80
  • 81. Narração Descritiva Eng. Comp. • Exemplo de um pneu furado: Troca de um pneu furado: Afrouxar ligeiramente as porcas Suspender o carro Retirar as porcas e o pneu Colocar o pneu reserva Apertar as porcas Abaixar o carro Dar o aperto final nas porcas 28/11/2013 – – – – – – – – 81
  • 82. Narração Descritiva Eng. Comp. • Exemplo do cálculo da média de um aluno: Cálculo da média de um aluno: Obter as suas 2 notas de provas Calcular a média aritmética Se a média for maior que 7, o aluno foi aprovado, senão ele foi reprovado 28/11/2013 – – – – – – 82
  • 83. Narração Descritiva Eng. Comp. • Esta representação é pouco usada na prática porque o uso da linguagem natural muitas vezes dá oportunidade a más interpretações, ambigüidades e imprecisões. • Uma instrução mais precisa seria: "afrouxar a porca, girando-a 30º no sentido anti-horário". 28/11/2013 • Por exemplo, a instrução "afrouxar ligeiramente as porcas" no algoritmo da troca de pneus está sujeita a interpretações diferentes por pessoas distintas. 83
  • 84. Fluxograma 28/11/2013 • É uma representação gráfica de algoritmos onde formas geométricas diferentes implicam ações (instruções, comandos) distintos. • Tal propriedade facilita o entendimento das idéias contidas nos algoritmos e justifica sua popularidade. • Esta forma é aproximadamente intermediária à descrição narrativa e ao pseudocódigo (subitem seguinte), pois é menos imprecisa que a primeira e, no entanto, não se preocupa com detalhes de implementação do programa. • Nota-se que os fluxogramas convencionais preocupam-se com detalhes de nível físico da implementação do algoritmo. • Por exemplo, figuras geométricas diferentes são adotadas para representar operações de saída de dados realizadas em dispositivos distintos, como uma fita magnética ou um monitor de vídeo. Eng. Comp. 84
  • 85. Fluxograma Eng. Comp. • O pacote office possui os símbolos do fluxograma. Na aba INSERT, na parte ILLUSTRATIONS, existe o botão SHAPES. Na setinha aparecem os símbolos de desenho, entre eles o FLOWCHART, ou FLUXOGRAMA. 28/11/2013 85
  • 86. Fluxograma SÍMBOLO FUNÇÃO Eng. Comp. DESCRIÇÃO Representa todo tipo de ação (em Matemática seriam as Operações Aritméticas e Lógicas, a Atribuição, etc). Process Alternate ou Processo Alternativo Raramente utilizado, indica uma forma diferente de se fazer o mesmo processo. Decision ou Decisão Uma ação que é efetuada de acordo com uma condição. Exemplo: Se o aluno tirou nota 7, então ele está aprovado, caso contrário, está reprovado. Data ou Dados Representa o símbolo de dados, entrada e saída simultaneamente. Predefined Process ou Processo PréDefinido Raramente utilizado. Processo já conhecido que será aplicado ao fluxo. 28/11/2013 Process ou Processo 86
  • 87. Fluxograma SÍMBOLO FUNÇÃO Eng. Comp. DESCRIÇÃO Document ou Documento Símbolo utilizado para indicar a criação de um documento. Multi-Document ou Múltiplos Documentos Símbolo utilizado para indicar a criação de vários documentos. Utilizado para inicar e terminar o fluxograma Preparation ou Preparação Raramente utilizado. Manual Input ou Entrada Manual 28/11/2013 Terminator ou Terminador Corresponde à instrução de entrada de dados através do teclado. Atualmente é considerado o símbolo para qualquer entrada de dados. 87
  • 88. Fluxograma SÍMBOLO FUNÇÃO Eng. Comp. DESCRIÇÃO Manual Operation Raramente utilizado. Corresponde à operação ou Operação Manual manual de algum processo. Connector ou Conector Raramente utilizado. Off-Page Connector ou Conector Fora de Página Raramente utilizado. Símbolo que corresponde ao cartão perfurado, que não é mais utilizado atualmente. 28/11/2013 Card ou Cartão Punched Tape ou Fita Símbolo que corrresponde à fita perfurada, que Perfurada não é mais utilizada atualmente. 88
  • 89. Fluxograma SÍMBOLO FUNÇÃO Eng. Comp. DESCRIÇÃO Summing Junction ou Tem a função da tabela verdade E. Somador OR – OU Collate ou Agrupamento Seta de Fluxo Símbolo utilizado para agrupar dados. Símbolo utilizado para classificar os dados, por exemplo, em ordem alfabética 28/11/2013 Sort ou Classificação Tem a função da tabela verdade OU. Indica para onde está indo a informação 89
  • 90. Fluxograma SÍMBOLO FUNÇÃO Eng. Comp. DESCRIÇÃO Internal Storage ou Armazenamento Interno Raramente utilizado. Símbolo que representa o armazenamento em memória. Extract ou Extração Símbolo utilizado para extração de dados. Em banco de dados, através de comandos SQL, conseguir extrair algumas informações, até então tidas como desconexas, da base de dados. Merge ou Mesclar Símbolo utilizado para mesclar os dados. No excel, esse “comando” transforma duas colunas em uma. Delay ou Atraso Referente aos dados que estão guardados. Referente à tempo de atraso. Por exemplo, quanto tempo o resultado de uma conta, vai ficar aparecendo na tela? 28/11/2013 Stored Data ou Dados Armazenados 90
  • 91. Fluxograma SÍMBOLO FUNÇÃO Eng. Comp. DESCRIÇÃO Sequential Storage Access ou Armazenamento de Acesso Sequencial Símbolo para armazenamento de dados de forma sequencial, significa que os dados serão acessados na ordem na qual foram armazenados. Magnetic Disk ou Disco Magnético Símbolo para armazenamento de dados, no caso o disco rígido (HD) Display ou Exibição É considerado também o símbolo para SAÍDA de dados, como uma impressora ou monitor. 28/11/2013 Símbolo para armazenamento de dados direto, Direct Access Storage significa que os dados podem ser recuperados ou Armazenamento diretamente sem passar por outros dados na de Acesso Direto seqüência. 91
  • 92. Exemplos Eng. Comp. • Exemplo 1: – Desenvolva uma solução para o problema a seguir utilizando as formas de representação “descrição narrativa”, “fluxograma” e “algoritmo” para demonstrar o seu raciocínio. ser desenvolvido do tipo real. O Em seguida, o e apresentar o 28/11/2013 – Problema: O software (ou programa) a deve solicitar ao usuário dois números usuário deve digitar esses números. programa deve somar esses números resultado na tela. 92
  • 93. Exemplos • Eng. Comp. Exemplo 1: – Solução: 28/11/2013 • Descrição narrativa: – Apresentar na tela uma mensagem para o usuário, informando-o que deverá digitar dois números do tipo real. – Após ler a mensagem, o usuário deverá inserir os números, através do teclado, que serão lidos e armazenados em duas variáveis diferentes; – Em seguida, será aplicada a operação de soma nos dois operandos, isto é, nos dois números que foram inseridos pelo usuário, sendo o resultado armazendo em uma terceira variável; – O resultado será então apresentado na tela para o usuário por um período de tempo, finalizando assim o programa. 93
  • 94. Fluxograma INÍCIO Eng. Comp. “Digite dois números do tipo real” • Exemplo 1: – Solução: • Fluxograma: Leia X Leia Y Z=X+Y “O resultado da soma entre X e Y é Z” 28/11/2013 FIM 30 segundos 94
  • 95. Fluxograma Eng. Comp. • Exemplo 1: – Solução: 28/11/2013 • Algoritmo: 1. Início do algoritmo; 2. Apresentar na tela a seguinte mensagem para o usuário: “Digite dois números do tipo real”; 3. Ler o número X e ler o número Y; 4. Somar o número X com o número Y; 5. Colocar o resultado em Z; 6. Apresentar na tela a seguinte mensagem para o usuário: “A soma entre os números X, „X‟, e Y, „Y‟, é Z, „Z‟ ”. 7. Manter a mensagem na tela por 30 segundos. 8. Fim do algoritmo 95
  • 96. Exemplos Eng. Comp. • Exemplo 2: – Desenvolva uma solução para o problema a seguir utilizando as formas de representação “descrição narrativa”, “fluxograma” e “algoritmo” para demonstrar o seu raciocínio. 28/11/2013 – Problema: O software (ou programa) a ser desenvolvido deve solicitar que o usuário digite as quatro notas que obteve em suas quatro provas. O usuário deve digitar esses números que são do tipo real. Em seguida, o programa deve fazer a média desses números e apresentar o resultado na tela. 96
  • 97. Exemplos • 28/11/2013 Exemplo 2: – Solução: • Descrição narrativa: – Apresentar na tela uma mensagem para o usuário, informando-o que deverá digitar os valores das notas das quatro provas que realizou. – Após ler a mensagem, o usuário deverá inserir os números, através do teclado, que serão lidos e armazenados em quatro variáveis diferentes; – Em seguida, será aplicada duas operações; » uma que soma os quatro operandos e armazena o resultado em uma variável SOMA; » outra que divide o resultado da SOMA pelo valor 4 (quatro) e armazena o resultado da variável em MÉDIA; – O resultado, MÉDIA, será então apresentado na tela para o usuário por um período de tempo, finalizando assim o programa. Eng. Comp. 97
  • 98. Fluxograma • Exemplo 2: INÍCIO “Digite os valores das quatro provas” Eng. Comp. – Solução: • Fluxograma: Leia X, Y, Z, W SOMA = X + Y + Z + W FIM 30 segundos 28/11/2013 MÉDIA = SOMA / 4 “A nota final do aluno é: , MÉDIA” 98
  • 99. Fluxograma • Eng. Comp. Exemplo 2: – Solução: 28/11/2013 • Algoritmo: 1. Início do algoritmo; 2. Apresentar na tela a seguinte mensagem para o usuário: “Digite as quatro notas das provas (tipo real)”; 3. Ler os números X, Y, Z e W; 4. Somar os números X, Y, Z e W; 5. Colocar o resultado em SOMA; 6. Dividir a SOMA por 4; 7. Colocar o resultado em MÉDIA; 8. Apresentar na tela a seguinte mensagem para o usuário: “A média final do aluno é: , MÉDIA”; 9. Manter a mensagem na tela por 30 segundos; 10. Fim do algoritmo. 99
  • 100. Eng. Comp. Comandos para construção de algoritmos em pseudocódigo 28/11/2013 100
  • 101. Declaração de variáveis Eng. Comp. • Permite definir o nome das variáveis e o tipo de dado que elas poderão armazenar. tipo: identificador; Ex.: 28/11/2013 inteiro: A; real: altura, peso; 101
  • 102. Comando de atribuição Eng. Comp. • Permite que se forneça (atribua) um valor a uma determinada variável. O tipo do dado deve ser compatível com o tipo da variável. Identificador  expressão; • Ex.: 28/11/2013 A  7; Altura  1, 70; Peso  60; A  3 + 2; Peso  altura * 10; 102
  • 103. Comandos de entrada e saída: Entrada de dados. 28/11/2013 leia (identificador); • Sua finalidade é atribuir o dado a ser fornecido pelo usuário à variável identificada. Sendo: • identificador: o nome da variável ou variáveis, cujos conteúdos serão mostrados. • expressão: um valor ou valores que serão mostrados aos usuários através de um dispositivo de saída. • Ex.: escreva(A); escreva(„você pesa‟, pesa, „quilos‟); Eng. Comp. 103
  • 104. Blocos Eng. Comp. • Um bloco pode ser definido como um conjunto de ações, uma ação definida. 28/11/2013 Inicio . . . . fim 104
  • 105. Exemplo Considere as seguintes entradas para o algoritmo em questão: 28/11/2013 inteiro: x, y; x=5 y = 10 real: z; leia(x); escreva(x, „elevado ao cubo=‟, pot(x,3)); leia(y); escreva(x+y); Rastreie o algoritmo e mostre quais são os valores armazenados nas z  x*y; variáveis em cada passagem e qual a saída na tela. escreva(z); z  z+1; x  (y+x)mod2; Eng. Comp. 105
  • 106. Exemplo TELA Memória x 5 y 10 z 50 Eng. Comp. 1 51 5 <enter> 5 elevado ao cubo = 125 10 <enter> 15 50 1 28/11/2013 106
  • 107. Estrutura sequencial Modelo geral de algoritmo Eng. Comp. algoritmo nome; 28/11/2013 início //declaração de variáveis; ação1; ação2; . . . açãon; fim 107
  • 108. Exemplo Eng. Comp. • Construa um algoritmo para ler dois números. Em seguida, calcule a soma desses números, armazenando o resultado em outra variável. Imprima os dados iniciais e a soma. algoritmo exemplo; inicio inicio OU real: x, y, z; leia(x, y); escreva(x, y); z  x + y; escreva(z); fim 28/11/2013 real: x, y, z; leia(x); escreva(x); leia(y); escreva(y); z  x + y; escreva(z); fim algoritmo exemplo; 108
  • 109. Exemplo Eng. Comp. algoritmo exemplo; 28/11/2013 inicio real: n1, n2, soma; escreva(„digite um número‟); leia(n1); escreva(„digite outro número‟); leia(n2); soma  n1 + n2; escreva(„primeiro número=‟, n1); escreva(„segundo número=‟, n2); escreva(„soma=‟, soma); fim. 109
  • 110. Pascal – estrutura básica Eng. Comp. program nome; uses wincrt; begin . . . end. 28/11/2013 NÚMEROS DE CASAS DECIMAIS: formatar a saída com A:5:2 Primeiro digitar o programa e salvar, depois compilar e executar. 110
  • 111. Pascal – tipos de dados Eng. Comp. • Inteiro: integer (operadores de soma, divisão, multiplicação, subtração, mod e div) • Real: real (operadores de soma, subtração, multiplicação e divisão) • Caracter: char • Cadeia de caracteres: string • Lógico: boolean (true ou false) 28/11/2013 • DECLARAÇÃO DE VARIÁVEIS • Var: lista de identificação 111
  • 112. Estrutura de decisão múltipla PSEUDOCÓDIGO MODELO1: PSEUDOCÓDIGO MODELO 2: conforme_seja expressão (E) fazer e1: ações caso_de E fazer . . . . e2: ações Fim_fazer . . se_não ação fim_conforme Eng. Comp.
  • 113. Estrutura de decisão múltipla PSEUDOCÓDIGO MODELO 3: PSEUDOCÓDIGO MODELO 4: opção E de . . Fim_opção conforme E fazer . . fim_conforme Eng. Comp.
  • 114. Estrutura de decisão múltipla PSEUDOCÓDIGO MODELO 5: se E é n fazer . . . fim_se Eng. Comp.
  • 115. Estrutura de decisão múltipla MODELO 6: conforme_seja (expressão) fazer caso expressão constante: [sentença] caso expressão constante: [sentença] outros: [sentença] fim_conforme Eng. Comp.
  • 116. Estrutura de decisão múltipla EM PASCAL: readln (seletor); CASE seletor OF alvo1: BEGIN Instruções END; alvo2: BEGIN Instruções END; ELSE comando4; END; Eng. Comp.
  • 117. Estrutura de decisão múltipla EXEMPLO: algoritmo DiasSemana var inteiro: DIA inicio ler(DIA) conforme_seja DIA fazer 1: escrever(‘SEGUNDA’) 2: escrever(‘Terça’) se-não escrever(‘erro’) fim_conforme fim Eng. Comp.
  • 118. Estrutura de decisão múltipla EXEMPLO: algoritmo DiaSemana var inteiro: DIA inicio ler(DIA) conforme_seja DIA fazer 1: escrever(‘SEGUNDA’) 2: escrever(‘Terça’) se_não escrever(‘erro’) fim_conforme fim Eng. Comp.
  • 119. Fazer-enquanto/do-while fazer <corpo do laço> enquanto (condição_do_laço) fazer <ações> enquanto (<expressão>) Eng. Comp.
  • 120. Fazer-enquanto/do-while algoritmo exemplo var inteiro: num, digitoSig inicio num  198 escrever(‘Numero:  ’, num) escrever(‘Numero em ordem inversa: ’) fazer digitoSig = num MOD 10 escrever(digitoSig) num = num DIV 10 enquanto num > 0 fim Eng. Comp.
  • 121. REPEAT repetir <ações> até_que <condição> repetir <ações> until <condição> Eng. Comp.
  • 122. REPEAT algoritmo exemplo var real: numero inteiro: contador inicio contador  1 repetir ler(numero) contador  contador+1 ate_que contador > 30 escrever(„numeros lidos 30‟) fim Eng. Comp.
  • 123. Estrutura de Repetição sem teste • A estrutura PARA repete a execução do bloco em um número definitivo de vezes pois ela possui limites fixos. Esta estrutura é utilizada quando sabe-se de antemão o número de vezes que o laço deverá ser executado. Para V de Vi até Vf passo P faça Início ação/ações; Fim para; • • • • V = variável de controle do tipo inteiro; Vi = valor inicial da variável V; Vf = valor final da variável V; P = é o valor do incremento dado a variável V; Eng. Comp.
  • 124. Estrutura de Repetição sem PASSO 1: teste 0 + 1 = 1 Eng. Comp. 1+1=2 2+1=3 ...... • Exemplo1: algoritmo exemplo1; PASSO – 1 início 3–1=2 inteiro: cont; 2–1=1 para cont de 1 até 3 passo 1 faça 1 – 1 = 0 Não existe 0 – 1, portanto, no início PASSO -1, pára no 1, não chega escreva(„número = ‟, cont); a 0. fim para; cont Vi Vf Passo 1 cont fim. 1 1 3 1+1=2 2 2 1 3 2+1=3 3 3 1 3 3+1=4 4 4 1 3 ----- -----
  • 125. Estrutura de Repetição sem teste Eng. Comp. • Exemplo2: algoritmo exemplo2; início inteiro: cont; para cont de 5 até 7 passo 1 faça início escreva(„número = ‟, cont); fim para; cont fim. Vi Vf Passo 1 cont 5 5 7 5+1 6 6 5 7 6+1 7 7 5 7 7+1 8 8 5 7 ----- -----
  • 126. Estrutura de Repetição sem teste Eng. Comp. • Exemplo3: algoritmo exemplo3; início inteiro: cont; para cont de 1 até 500 passo 1 faça início escreva(„número = ‟, cont); fim para; cont Vi fim. Vf Passo 1 cont 1 1 500 1+1 2 .... 1 500 ..... .... 500 1 500 500 + 1 501 501 1 500 ---- ----
  • 127. Estrutura de Repetição sem teste Eng. Comp. • Exemplo4: algoritmo exemplo4; início inteiro: cont; para cont de 3 até 1 passo -1 faça início escreva(„número = ‟, cont); fim para; cont fim. Vi Vf Passo -1 cont 3 3 1 3-1 2 2 3 1 2-1 1 1 3 1 1-1 0 0 3 1 ----- ----
  • 128. Estrutura de Repetição em Pascal • Passo 1: for variável := valorInicial to valorFinal do Begin Comandos; End; • Passo -1: for variável := valorInicial to valorfinal do Begin Comandos; End; • A variável deve ser, obrigatoriamente do tipo integer. Eng. Comp.
  • 129. Estrutura de Repetição • Pseudocódigo Para variável de VI até VF passo P faça Início Comandos; Fim para; • Pascal PASSO 1 For variável := VI to VF do Begin Comandos; End; PASSO -1 For variável := VI downto VF do Begin Comandos; End; Eng. Comp.
  • 130. Contadores e somatórios • Exemplo: calcular e imprimir a soma dos cinco primeiros números inteiros positivos. 0 1. 2. 3. 4. 5. 6. 1 2 3 4 5 Zerar somatório: soma  0 Definir valor inicial: num  1 Inicializar contador: cont  1 Realizar operação desejada: soma soma + num Variar valor inicial: num  num + 1 Incrementar/decrementar contador: cont  cont + 1 Eng. Comp.
  • 131. Contadores e somatórios algoritmo exemplo; início inteiro: soma, num, cont; soma  0; num  1; para cont de 1 até 5 passo 1 faça inicio soma  soma + num; num  num + 1; fim para; escreva („soma = ‟, soma); fim. Eng. Comp.
  • 132. Estrutura de Repetição com teste de condição no início – Enquanto/Faça While condição do Begin Comandos; End; • Enquanto uma condição é verdadeira, uma ação ou ações são executadas repetidamente (enquanto, faça) Enquanto condição faça Início Ação/ações Fim enquanto; Eng. Comp.
  • 133. Estrutura de Repetição com teste de condição no início – Enquanto/Faça • Exemplo: imprimir os números inteiros de 0 a 3. algoritmo exemplo; início inteiro: n; n  0; enquanto n <= 3 início escreva („num = ‟, n); n  n+1; fim enquanto; fim. Eng. Comp.
  • 134. Estrutura de Repetição com teste de condição no início – Enquanto/Faça • A estrutura enquanto pode ser escrita como: Inicialização Enquanto condição faça Início ..... incremento / decremento ..... Fim enquanto; Lema: um comando leia, ou de atribuição, antes do enquanto para entrar na repetição e, um ocmando leia, ou de atribuição, antes de fim enquanto para sair da repetição. Eng. Comp.
  • 135. Estrutura de Repetição com teste de condição no início – Enquanto/Faça • Exemplo: ler vários números e imprimí-los até que o número digitado seja zero. algoritmo exemplo; início real:n; escreva(„digite um número ou zero para finalizar‟); enquanto n<>0 faça início escreva(„n = ‟, n); escreva(„digite um número ou zero para final‟); leia(n); fim enquanto; fim. Eng. Comp.
  • 136. Estruturas de seleção ou estrutura condicional Eng. Comp.
  • 137. Estrutura condicional simples se (condição) então inicio ação/ações fim; Se a condição for verdadeira, a ação/ações sob o então será executada; caso contrário – se a condição for falsa – encerra-se a seleção. Eng. Comp.
  • 138. Exemplo algoritmo exemplo; inicio real: nota; escreva(„digite uma nota‟); leia(nota); se(nota<5) então inicio escreva(„reprovado‟); fim; fim. Eng. Comp.
  • 139. Estrutura condicional composta se (condição) então inicio ação1/ações1 fim; senão inicio ação2/ações2 fim Se a condição for verdadeira, a ação1/ações1 sob o então será executada; caso contrário, se a condição for falsa, teremos a execução da ação2/ações2 que segue a cláusula senão. Eng. Comp.
  • 140. Exemplo algoritmo exemplo; inicio real: nota; escreva(„digite uma nota‟); leia(nota); Se(nota<5) então inicio escreva(„reprovado‟); fim senao inicio escreva(„aprovado‟); fim; fim. Eng. Comp.
  • 141. Vetores • Variáveis compostas homogêneas: é um conjunto de dados do mesmo tipo. • Variáveis compostas homogêneas unidimensionais: são variáveis compostas que necessitam de apenas um índice para individualizar um elemento do conjunto. Essas variáveis são chamadas de vetores. • Declaração: nome_do_vetor: vetor[1..dimensao] de tipo_de_dados; • Em que 1 .. Dimensao é a quantidade de elementos do vetor; • Exemplo: nota: vetor[1..50] de reais; Eng. Comp.
  • 142. Vetores • Exemplo: • Media: vetor[1..5] de reais; Posição do elemento no vetor Conteúdo do vetor media[1] 3.2 media[2] 5.7 media[3] 9.5 media[4] 10 media[5] 1.3 Eng. Comp.
  • 143. Vetores algoritmo exemplo; inicio inteiro: i; n: vetor[1..4] de reais; para i de 1 até 4 passo 1 faça inicio escreva(„digite um número‟); leia(n[i]); fim para; escreva(„posição valor‟); para i de 1 até 4 passo 1 faça inicio escreva(i, n[i]); fim para; fim. Eng. Comp.
  • 144. Vetores • Declaração de vetores em pascal: nome_do_vetor: array[1 ... dimensao] of tipo_do_dado; • Em que 1 ... Dimensao é o tamanho do vetor. • Exemplo: var v: array[1..6] of integer; • Atribuindo valores avulsos ao vetor: • V[5]  28; (posição 5 recebe o valor 28) Eng. Comp.
  • 145. Vetores program vetor1; var n,i,maior:integer; nro:array[1..100] of integer; begin write('forneca a quantidade de numeros: '); readln(n); writeln; for i:=1 to n do begin write('forneca o ',i,'o. numero: '); readln(nro[i]); end; writeln; maior:=nro[1]; for i:=2 to n do begin if (nro[i] > maior)then maior:=nro[i]; end; writeln('maior numero: ',maior); readln; end. Eng. Comp.
  • 146. Vetores Não é possível: Não se pode ler todo um vetor diretamente com um comando read. Não se pode escrever: read(v); É necessário ler elemento por elemento, diretamente, ou com um laço de repetição como for. Não se pode escrever todos os elementos de um vetor com um único comando write. Não é permitido escrever: write(v). Também nesse caso cada elemento deve ser tratado como uma variável independente, por exemplo: for i:= 1 to 6 do write(v[i]:3); Eng. Comp.
  • 147. Vetores Não é possível copiar os valores dos elementos de um vetor para outro com um único comando de atribuição. Ou seja, dados dois vetores v e w, ambos do mesmo tamanho e do mesmo tipo, não é permitido fazer: w:= v; . Também aqui é necessário trabalhar elemento a elemento, e o comando for mais uma vez é indicado: for i:= 1 to 6 do w[i]:= v[i]; Não existe comandos ou funções que dão o tamanho (número de elementos) de um vetor. Não é permitido tentar acessar uma posição fora do intervalo de posições definido para o vetor. A tentativa causará um erro em tempo de execução e o programa abortará. No caso do vetor v acima, por exemplo, não é permitido escrever: v[8]:= 20, read(v[8]) ou write (v[8]) porque a faixa de valores das posições vai de 1 a 6 apenas. Eng. Comp.
  • 148. Vetores A faixa de valores das posições não precisa começar em 1. Qualquer intervalo de valores pode ser usado na definição de um vetor. Por exemplo, podemos definir um vetor assim: var v:array[15..20] of real; Nesse caso o vetor v terá apenas os elementos: v[15], v[16], v[17], v[18], v[19] e v[20] As posições não precisam ser necessariamente números inteiros. Podem ser qualquer tipo ordinal, ou seja, que possa ser definido por uma seqüência ordenada de valores. Por exemplo, os caracteres em Pascal formam uma seqüência ordenada na tabela de caracteres, e podem portanto serem marcadores de posição em um vetor. Eng. Comp.
  • 149. Vetores Podemos definir um vetor assim: var letras: array['a'..'z'] of integer; Nesse caso os elementos do vetor são: letras['a'], letras['b'], ….., letras['z'] Um uso possível para esse vetor poderia ser que cada posição poderia guardar a quantidade de vezes que a letra dessa posição aparece em uma determinada frase. Eng. Comp.
  • 150. Vetores Eng. Comp. • Variável composta homogênea unidimensional • Conjunto de variáveis de mesmo tipo • Alocadas sequenciamente na memória • Índice: referencia sua localização dentro da estrutura X [ 10 ] X[1] X 20 21 22 23 24 25 26 27 28 1 2 3 4 5 6 7 8 9 29 10
  • 151. Vetores • Tamanho do vetor: quantidade de elementos que o vetor poderá armazenar VAR nome_da_variavel: ARRAY[índice_inicial .. índice_final] OF tipo_dos_dados_do_vetor; • nome_da_variavel é o nome da variável do tipo vetor; Eng. Comp.
  • 152. Vetores VAR nome_da_variavel: ARRAY[índice_inicial .. índice_final] OF tipo_dos_dados_do_vetor; • índice_inicial é o valor correspondente ao índice da primeira posição do vetor; • índice_final é o valor correspondente ao índice da última posição do vetor; • tipo_d0s_dados_d0_vetor é o tipo básico dos dados que serão armazenados no vetor. Eng. Comp.
  • 153. Vetores • O valor do índice_inicial deve ser maior ou igual ao valor do índice_final • Exemplo1: Var Vetor1: ARRAY[1..10] of integer; • Exemplo 2: Var Vetor2: ARRAY[5..9] of real; Eng. Comp.
  • 154. Vetores • O índice também pode ser representando por caracteres • Exemplo3: Var Vetor1: ARRAY[„C‟.. „G‟] of integer; • Os valores que indicam o índice_inicial e o índice_final devem representar valores fixos literais ou constantes, não podendo ser substituídos por variáveis. • Literal é um valor fixo, definido quando se escreve o programa. Por exemplo, x:=10.3, 10.3 é um literal. Eng. Comp.
  • 155. Vetores • • • • Exemplo 4: x: ARRAY[1..10] of real; Exemplo 5: vet: ARRAY[5..9] of char; Exemplo 6: x: ARRAY[„D‟.. „G‟] of integer; Exemplo 7: – Const min = 3; – Const max = 7; – V: ARRAY[min..max] of integer; Eng. Comp.
  • 156. Vetores: Atribuindo Valores x[4] := 5; //atribui o valor 5 à posição 4 do vetor vet[3]:=„F‟; //atribui o valor F à posição 3 do vetor Y[„d‟]:=4.1; //atribui o valor 4.1 à posição d do vetor Eng. Comp.
  • 157. Vetores: Preenchendo um Vetor Significa atribuir valores à todas as suas posições Usar um FOR para isto! Exemplo1: for i:=1 to 7 do begin readln(x[i]); end; Eng. Comp.
  • 158. Vetores: Preenchendo um Vetor Exemplo2: for i:=„c‟ to „e‟ do begin readln(x[i]); end; Eng. Comp.
  • 159. Vetores: Imprimindo um Vetor Exemplo 1: for i:=1 to 10 do begin writeln(x[i]); end; Exemplo 2: for i:=„c‟ to „e‟ do begin writeln(x[i]); end; Eng. Comp.

×