introdução: história e conceitos básicostiago/pub/alg1-aula01.pdf · neste modelo, os programas...

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

Upload: others

Post on 04-Aug-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introdução: história e conceitos básicostiago/pub/ALG1-aula01.pdf · Neste modelo, os programas não acessam os dispositivos do computador diretamente, mas sim através do SO,

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

Page 2: Introdução: história e conceitos básicostiago/pub/ALG1-aula01.pdf · Neste modelo, os programas não acessam os dispositivos do computador diretamente, mas sim através do SO,

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

Page 3: Introdução: história e conceitos básicostiago/pub/ALG1-aula01.pdf · Neste modelo, os programas não acessam os dispositivos do computador diretamente, mas sim através do SO,

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

Page 4: Introdução: história e conceitos básicostiago/pub/ALG1-aula01.pdf · Neste modelo, os programas não acessam os dispositivos do computador diretamente, mas sim através do SO,

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

Page 5: Introdução: história e conceitos básicostiago/pub/ALG1-aula01.pdf · Neste modelo, os programas não acessam os dispositivos do computador diretamente, mas sim através do SO,

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

Page 6: Introdução: história e conceitos básicostiago/pub/ALG1-aula01.pdf · Neste modelo, os programas não acessam os dispositivos do computador diretamente, mas sim através do SO,

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

Page 7: Introdução: história e conceitos básicostiago/pub/ALG1-aula01.pdf · Neste modelo, os programas não acessam os dispositivos do computador diretamente, mas sim através do SO,

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

Page 8: Introdução: história e conceitos básicostiago/pub/ALG1-aula01.pdf · Neste modelo, os programas não acessam os dispositivos do computador diretamente, mas sim através do SO,

Organização básicaArquitetura de hardware

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

Page 9: Introdução: história e conceitos básicostiago/pub/ALG1-aula01.pdf · Neste modelo, os programas não acessam os dispositivos do computador diretamente, mas sim através do SO,

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

Page 10: Introdução: história e conceitos básicostiago/pub/ALG1-aula01.pdf · Neste modelo, os programas não acessam os dispositivos do computador diretamente, mas sim através do SO,

Algoritmos e programação

Algoritmos e programação: introdução

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

Page 11: Introdução: história e conceitos básicostiago/pub/ALG1-aula01.pdf · Neste modelo, os programas não acessam os dispositivos do computador diretamente, mas sim através do SO,

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

Page 12: Introdução: história e conceitos básicostiago/pub/ALG1-aula01.pdf · Neste modelo, os programas não acessam os dispositivos do computador diretamente, mas sim através do SO,

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

Page 13: Introdução: história e conceitos básicostiago/pub/ALG1-aula01.pdf · Neste modelo, os programas não acessam os dispositivos do computador diretamente, mas sim através do SO,

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

Page 14: Introdução: história e conceitos básicostiago/pub/ALG1-aula01.pdf · Neste modelo, os programas não acessam os dispositivos do computador diretamente, mas sim através do SO,

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 15: Introdução: história e conceitos básicostiago/pub/ALG1-aula01.pdf · Neste modelo, os programas não acessam os dispositivos do computador diretamente, mas sim através do SO,

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 16: Introdução: história e conceitos básicostiago/pub/ALG1-aula01.pdf · Neste modelo, os programas não acessam os dispositivos do computador diretamente, mas sim através do SO,

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

Page 17: Introdução: história e conceitos básicostiago/pub/ALG1-aula01.pdf · Neste modelo, os programas não acessam os dispositivos do computador diretamente, mas sim através do SO,

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

Page 18: Introdução: história e conceitos básicostiago/pub/ALG1-aula01.pdf · Neste modelo, os programas não acessam os dispositivos do computador diretamente, mas sim através do SO,

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

Page 19: Introdução: história e conceitos básicostiago/pub/ALG1-aula01.pdf · Neste modelo, os programas não acessam os dispositivos do computador diretamente, mas sim através do SO,

Algoritmos e programação

Recursos para iniciantes

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

Page 20: Introdução: história e conceitos básicostiago/pub/ALG1-aula01.pdf · Neste modelo, os programas não acessam os dispositivos do computador diretamente, mas sim através do SO,

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

Page 21: Introdução: história e conceitos básicostiago/pub/ALG1-aula01.pdf · Neste modelo, os programas não acessam os dispositivos do computador diretamente, mas sim através do SO,

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