aula 01 introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfalgoritmos e...

31
Algoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência da Computação Universidade Federal de São Carlos - UFSCar, Sorocaba

Upload: others

Post on 23-Aug-2021

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

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

Page 2: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

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

Page 3: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

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

Page 4: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

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

Page 5: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

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

Page 6: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

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

Page 7: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

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

Page 8: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

Organização básicaArquitetura de hardware

Bacharelado em Ciência da ComputaçãoUniversidade Federal de São Carlos - UFSCar, Sorocaba

Page 9: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

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

Page 10: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

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

Page 11: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

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

Page 12: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

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

Page 13: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

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

Page 14: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

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

Page 15: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

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

Page 16: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

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

Page 17: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

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

Page 18: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

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

Page 19: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

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

Page 20: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

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

Page 21: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

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

Page 22: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

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

Page 23: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

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

Page 24: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

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

Page 25: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

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

Page 26: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

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

Page 27: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

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

Page 28: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

Algoritmos e programação

Portugol IDE

AULA 01

Bacharelado em Ciência da ComputaçãoUniversidade Federal de São Carlos - UFSCar, Sorocaba

Page 29: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

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

Page 30: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

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

Page 31: AULA 01 Introdução: história e conceitos básicostiago/ap1/aula01/aula01.pdfAlgoritmos e programação Introdução: história e conceitos básicos AULA 01 Bacharelado em Ciência

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