View
11
Download
0
Category
Preview:
Citation preview
Algoritmos e programação
Introdução: história e conceitos básicos
AULA 01
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.): ferramenta para auxiliar cálculos aritméticos
* Pascaline (Blaise Pascal - séc XV): operações de soma e subtração
* Calculador diferencial (Charles Babbage - séc XVIII): calculava polinômios por meio de cartões perfurados
* Máquina de Hollerith (Herman Hollerith - séc XIX): processador de dados armazenados em cartões perfurados. Foi empregada no processamento de dados do censo de 1890.
• Hollerith fundou a empresa conhecida hoje como 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 And Calculator, EUA, 1945): primeiro computador programável de propósito geral
• Composto por 17.468 válvulas, 7.200 diodos, 1.500 relês, 70.000 resistores e 10.000 capacitores
• Pesava 27 toneladas, media 2.4 x 0.9 x 30 m e consumia 160 kW de potência
• Capaz de executar 5.000 operações aritméticas por segundo, mas suas válvulas queimavam com tanta frequência que ele era operacional 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 de computadores menores e mais confiáveis. O primeiro mainframe transistorizado colocado no 'mercado' foi o IBM 7090, em 1959
* Circuito integrado (1964): permitiu a construção de computadores menores e mais baratos. Computadores começaram a ser pequenos o suficiente para serem embutidos em satélites artificiais. Um dos primeiros lanç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 pessoal vendido em larga escala. Aliança entre IBM e Microsoft
* 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 de processamento
• Capacidade de armazenamento praticamente ilimitada
• Popularização da Internet
• Notebooks, microbooks, tablets
• Aparelhos eletrônicos ganham grande poder de 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 de operações por segundo. 1GHz = 109 oper/seg)
✔ Memória principal (RAM)
* Unidade: Byte (capacidade de armazenamento.
1GB = 109 B) ✔ Memória secundária (dispositivos de armazenamento)
* 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 de uso do computador envolve a execução simultânea de diversos programas. Isto é obtido delegando a gerência dos recursos do computador a um software especial chamado Sistema Operacional
✔ Neste modelo, os programas não acessam os dispositivos do computador diretamente, mas sim através do SO, que evita conflitos de uso simultâneo. Embora o acesso à memória seja direto, cada programa 'vê' apenas um pedaço da memória do computador e acessa apenas a 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
PARTE 01
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 de computadores que implementam algoritmos para resolver problemas específicos
✔ Um programa é uma sequência de instruções em alguma linguagem compreendida pelo computador. Programas utilizam a CPU para realizar operações matemáticas e manipular dados e, através do sistema operacional, interagem com os dispositivos do computador
✔ Um algoritmo é uma sequência finita de instruções bem definidas e não ambí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çãoAlgoritmo - exemplo
Bacharelado em Ciência da ComputaçãoUniversidade Federal de São Carlos - UFSCar, Sorocaba
✔ Problema: multiplicar dois números
✔ Algoritmo
Passo 1 - Receber os dois números que serão multiplicados
Passo 2 - Multiplicar os números
Passo 3 - Mostrar o resultado obtido
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 podem dificultar a implementação
✔ PSEUDOCÓDIGO OU PORTUGOL
* 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 algoritmos
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, os algoritmos 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 o compõem
* Definir os dados de entrada
* Definir o processamento (cálculos e restrições) responsável pela transformaçã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
✔ 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 INTEIRO 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: dividir dois números
✔ Algoritmo
* Descrição Narrativa
Passo 1 - Receber os dois números que serão divididos
Passo 2 - Se o segundo número for igual a zero, não poderá ser feita a divisão; caso contrário, dividir os números e mostrar o resultado
Tipos de algoritmos - exemplo
Bacharelado em Ciência da ComputaçãoUniversidade Federal de São Carlos - UFSCar, Sorocaba
Algoritmos e programação
✔ Problema: dividir 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: dividir dois números
✔ Algoritmo
* Pseudocódigo
Tipos de algoritmos - exemplo
INICIO
VARIAVEL INTEIRO N1, N2, D ESCREVER "Digite dois números: " LER N1, N2 SE N2 = 0 ENTAO ESCREVER "Impossível dividir." SENAO D <- N1 / N2 ESCREVER "Resultado = ", D FIMSE
FIM
Bacharelado em Ciência da ComputaçãoUniversidade Federal de São Carlos - UFSCar, Sorocaba
Algoritmos e programação
✔ Problema: calcular média aritmética entre duas notas e mostrar situação
✔ Algoritmo
* Descrição Narrativa
Passo 1 - Receber duas notas
Passo 2 - Calcular a média
Passo 3 - Mostrar a média
Passo 4 - Se média for maior ou igual a 7, então a situação é igual a aprovado; caso contrário, a situação é reprovado
Tipos de algoritmos - exemplo
Bacharelado em Ciência da ComputaçãoUniversidade Federal de São Carlos - UFSCar, Sorocaba
Algoritmos e programação
✔ Problema: calcular média aritmética entre duas notas e mostrar situação
✔ 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: calcular média aritmética entre duas notas e mostrar situação
✔ Algoritmo
* Pseudocódigo
Tipos de algoritmos - exemplo
INICIO
VARIAVEL INTEIRO N1, N2 VARIAVEL REAL M ESCREVER "Digite duas notas: " LER N1, N2 M <- (N1 + N2)/2 ESCREVER "Media = ", M SE M >= 7 ENTAO ESCREVER "\nAprovado" SENAO ESCREVER "\nReprovado" FIMSE
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 que recebem atualmente salário de até R$ 500,00 terão aumento de 20%; os demais terão aumento de 10%
✔ Algoritmo
* Descrição Narrativa
Passo 1 - Receber o salário atual do funcionário
Passo 2 - Se o salário atual for de até R$ 500,00, calcular o novo salário com percentual de aumento de 20%; caso contrário, calcular o novo salário com percentual de aumento de 10%
Passo 3 - Mostrar o novo salário
Tipos de algoritmos - exemplo
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 que recebem atualmente salário de até R$ 500,00 terão aumento de 20%; os demais terão aumento de 10%
✔ 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: calcular novo salário de um funcionário. Funcionários que recebem atualmente salário de até R$ 500,00 terão aumento de 20%; os demais 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 que recebem atualmente salário de até R$ 500,00 terão aumento de 20%; os demais 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
Portugol IDE
AULA 01
Bacharelado em Ciência da ComputaçãoUniversidade Federal de São Carlos - UFSCar, Sorocaba
Algoritmos e programação
✔ Ambiente de aprendizagem de algoritmos desenvolvido pelo Instituto Politécnico de Tomar, Portugal
✔ Site oficial: http://www.dei.estt.ipt.pt/portugol/node/2
Portugol IDE
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
Algoritmos e programação
✔ Site oficial: http://www.plastelina.net/
Problemas de raciocínio lógico
Bacharelado em Ciência da ComputaçãoUniversidade Federal de São Carlos - UFSCar, Sorocaba
Recommended