introdução: história e conceitos básicostiago/pub/alg1-aula01.pdf · neste modelo, os programas...
TRANSCRIPT
Algoritmos e programação
Introdução: história e conceitos básicos
Bacharelado em Ciência da ComputaçãoUniversidade Federal de São Carlos - UFSCar, Sorocaba
História
✔ Máquinas de calcular:
* Ábaco (China - 202 a.C a 184 d.C.): ferramentapara auxiliar cálculos aritméticos
* Pascaline (Blaise Pascal - séc XV): operações desoma e subtração
* Calculador diferencial (Charles Babbage - sécXVIII): calculava polinômios por meio de cartõesperfurados
* Máquina de Hollerith (Herman Hollerith - sécXIX): processador de dados armazenados emcartões perfurados. Foi empregada noprocessamento de dados do censo de 1890.
• Hollerith fundou a empresa conhecida hojecomo IBM
Os ancestrais do computador
Bacharelado em Ciência da ComputaçãoUniversidade Federal de São Carlos - UFSCar, Sorocaba
História
✔ Computadores programáveis:
* ENIAC (Eletronic Numeric Integrator AndCalculator, EUA, 1945): primeiro computadorprogramável de propósito geral
• Composto por 17.468 válvulas, 7.200 diodos,1.500 relês, 70.000 resistores e 10.000capacitores
• Pesava 27 toneladas, media 2.4 x 0.9 x 30 me consumia 160 kW de potência
• Capaz de executar 5.000 operaçõesaritméticas por segundo, mas suas válvulasqueimavam com tanta frequência que ele eraoperacional apenas 50% do tempo
Os ancestrais do computador
Bacharelado em Ciência da ComputaçãoUniversidade Federal de São Carlos - UFSCar, Sorocaba
História
✔ Computadores programáveis e periféricos:
* Transistor (1947): permitiu o projeto decomputadores menores e mais confiáveis. Oprimeiro mainframe transistorizado colocado no'mercado' foi o IBM 7090, em 1959
* Circuito integrado (1964): permitiu aconstrução de computadores menores e maisbaratos. Computadores começaram a serpequenos o suficiente para serem embutidos emsatélites artificiais. Um dos primeiroslançamentos com essa tecnologia foi o IBM 360
* Mouse (1968), disquete (1971), Apple II (1977)
Os ancestrais do computador
Bacharelado em Ciência da ComputaçãoUniversidade Federal de São Carlos - UFSCar, Sorocaba
História
✔ Computadores de quarta geração:
* Microprocessadores (década de 80):miniaturização dos circuitos integrados
* IBM-PC (1981): primeiro computador pessoalvendido em larga escala. Aliança entre IBM eMicrosoft
* Windows e Word (1983), Macintosh (1984),Windows 3.0 (1990), Linux (1991), ...
Os ancestrais do computador
Bacharelado em Ciência da ComputaçãoUniversidade Federal de São Carlos - UFSCar, Sorocaba
História
✔ Evolução nas últimas duas décadas:
* Microprocessadores e nanoprocessadores
• Dispositivos móveis com alto poder deprocessamento
• Capacidade de armazenamento praticamenteilimitada
• Popularização da Internet
• Notebooks, microbooks, tablets
• Aparelhos eletrônicos ganham grande poderde processamento: TVs, geladeiras, micro-ondas,máquinas de lavar, …
• Robôs e carros robotizados
• ...
Tecnologia atual
Bacharelado em Ciência da ComputaçãoUniversidade Federal de São Carlos - UFSCar, Sorocaba
Definições
✔ Processador (CPU)
* Unidade: Hertz (~ igual a quantidade deoperações por segundo. 1GHz = 109 oper/seg)
✔ Memória principal (RAM)
* Unidade: Byte (capacidade de armazenamento.
1GB = 109 B) ✔ Memória secundária (dispositivos dearmazenamento)
* Unidade: Bit (capacidade de armazenamento.1TB = 1012 B)
✔ Dispositivos de entrada e saída
✔ Demais periféricos
✔ Hardware x Software
Principais componentes
Bacharelado em Ciência da ComputaçãoUniversidade Federal de São Carlos - UFSCar, Sorocaba
Organização básicaArquitetura de hardware
Bacharelado em Ciência da ComputaçãoUniversidade Federal de São Carlos - UFSCar, Sorocaba
Organização básica
✔ Desde a década de 70, o paradigma deuso do computador envolve a execuçãosimultânea de diversos programas. Isto éobtido delegando a gerência dosrecursos do computador a um softwareespecial chamado Sistema Operacional
✔ Neste modelo, os programas nãoacessam os dispositivos do computadordiretamente, mas sim através do SO, queevita conflitos de uso simultâneo.Embora o acesso à memória seja direto,cada programa 'vê' apenas um pedaço damemória do computador e acessa apenasa região que lhe foi alocada pelo SO
Funcionamento
Bacharelado em Ciência da ComputaçãoUniversidade Federal de São Carlos - UFSCar, Sorocaba
Algoritmos e programação
Algoritmos e programação: introdução
Bacharelado em Ciência da ComputaçãoUniversidade Federal de São Carlos - UFSCar, Sorocaba
Algoritmos e programação
✔ Nosso interesse neste curso é aprender a escrever programas decomputadores que implementam algoritmos para resolver problemas específicos
✔ Um programa é uma sequência de instruções em alguma linguagemcompreendida pelo computador. Programas utilizam a CPU para realizaroperações matemáticas e manipular dados e, através do sistemaoperacional, interagem com os dispositivos do computador
✔ Um algoritmo é uma sequência finita de instruções bem definidas e nãoambíguas para resolver um problema ou realizar algum objetivo
✔ Etimologia: Al-Khwarizmi (matemático persa do século IX)
Algoritmo ??? Programação ???
Bacharelado em Ciência da ComputaçãoUniversidade Federal de São Carlos - UFSCar, Sorocaba
Algoritmos e programação
✔ Assim como problemas podem ser resolvidos de maneiras distintas, osalgoritmos também podem ser diferentes para um mesmo problema
✔ Passos para a construção de qualquer algoritmo:
* Compreender completamente o problema, destacando os objetos que ocompõem
* Definir os dados de entrada
* Definir o processamento (cálculos e restrições) responsável pelatransformação dos dados de entrada em dados de saída
* Definir os dados de saída
* Construir o algoritmo
* Validar por meio de simulações
Características
Bacharelado em Ciência da ComputaçãoUniversidade Federal de São Carlos - UFSCar, Sorocaba
Algoritmos e programação
✔ DESCRIÇÃO NARRATIVA
* Solução (passo-a-passo) escrita em linguagem natural
• Vantagem: não é necessário aprender nenhum conceito novo
• Desvantagem: ocorrência de ambiguidades
✔ FLUXOGRAMA
* A solução é expressa por símbolos gráficos pré-definidos
• Vantagem: compreensão mais simples que texto
• Desvantagem: necessário aprender a simbologia; ausência de detalhes que podemdificultar a implementação
✔ PSEUDOCÓDIGO
* A solução (passo-a-passo) é expressa por meio de regras pré-definidas
• Vantagem: implementação é quase imediata
• Desvantagem: aprender as regras do pseudocódigo
Tipos de representações de algoritmos
Bacharelado em Ciência da ComputaçãoUniversidade Federal de São Carlos - UFSCar, Sorocaba
Algoritmos e programação
✔ Problema: multiplicar dois números
✔ Algoritmo
* Descrição Narrativa
Passo 1 - Receber os dois números que serão multiplicados
Passo 2 - Multiplicar os números
Passo 3 - Mostrar o resultado obtido
Tipos de algoritmos - exemplo
Bacharelado em Ciência da ComputaçãoUniversidade Federal de São Carlos - UFSCar, Sorocaba
Algoritmos e programação
✔ Problema: multiplicar dois números
✔ Algoritmo
* Fluxograma
Tipos de algoritmos - exemplo
Bacharelado em Ciência da ComputaçãoUniversidade Federal de São Carlos - UFSCar, Sorocaba
Algoritmos e programação
✔ Problema: multiplicar dois números
✔ Algoritmo
* Pseudocódigo
Tipos de algoritmos - exemplo
INICIO
VARIAVEL N1, N2, M ESCREVER "Digite dois números: " LER N1, N2 M = N1 * N2 ESCREVER "Resultado = ", M
FIM
Bacharelado em Ciência da ComputaçãoUniversidade Federal de São Carlos - UFSCar, Sorocaba
Algoritmos e programação
✔ Problema: calcular novo salário de um funcionário. Funcionários querecebem atualmente salário de até R$ 500,00 terão aumento de 20%; osdemais terão aumento de 10%
✔ Algoritmo
* Pseudocódigo
Tipos de algoritmos - exemplo
INICIO
VARIAVEL REAL SAL_ATUAL, NOVO_SAL
ESCREVER "Digite o salario atual: " LER SAL_ATUAL
SE SAL_ATUAL <= 500 ENTAO NOVO_SAL = SAL_ATUAL * 1.2 SENAO NOVO_SAL = SAL_ATUAL * 1.1 FIMSE
ESCREVER "Novo salario = ", NOVO_SAL
FIMBacharelado em Ciência da Computação
Universidade Federal de São Carlos - UFSCar, Sorocaba
Algoritmos e programação
✔ Problema: calcular novo salário de um funcionário. Funcionários querecebem atualmente salário de até R$ 500,00 terão aumento de 20%; osdemais terão aumento de 10%
✔ Algoritmo
* Pseudocódigo
Tipos de algoritmos - exemplo
Variáveis e tipo
Comandos de saída e entrada, respectivamente
Comando condicional
Comandos de atribuição
Bacharelado em Ciência da ComputaçãoUniversidade Federal de São Carlos - UFSCar, Sorocaba
INICIO
VARIAVEL REAL SAL_ATUAL, NOVO_SAL
ESCREVER "Digite o salario atual: " LER SAL_ATUAL
SE SAL_ATUAL <= 500 ENTAO NOVO_SAL = SAL_ATUAL * 1.2 SENAO NOVO_SAL = SAL_ATUAL * 1.1 FIMSE
ESCREVER "Novo salario = ", NOVO_SAL
FIM
Algoritmos e programação
Recursos para iniciantes
Bacharelado em Ciência da ComputaçãoUniversidade Federal de São Carlos - UFSCar, Sorocaba
Algoritmos e programação
✔ Site destinado ao ensino dos primeiros passos da programação
✔ Link: http://www.code.org
✔ Desafio da semana
* Tente completar a introdução
acelerada, disponível em:https://studio.code.org/s/20-hour
Code.org
Bacharelado em Ciência da ComputaçãoUniversidade Federal de São Carlos - UFSCar, Sorocaba
Algoritmos e programação
✔ Jogo estilo puzzle para aprendizado de lógica e algoritmos
✔ Site oficial: http://light-bot.com/hocflash.html
Lightbot
Bacharelado em Ciência da ComputaçãoUniversidade Federal de São Carlos - UFSCar, Sorocaba