algoritmos e programação introducao.pdf · 2016-11-08 · computador = hardware (corpo) +...

35
Algoritmos e Programação Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 [email protected] www.univasf.edu.br/~marcus.ramos

Upload: others

Post on 03-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

Algoritmos e Programação

Professor Marcus Vinícius Midena Ramos

Colegiado de Engenharia de Computação

(74)3614.1936

[email protected]

www.univasf.edu.br/~marcus.ramos

Page 2: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

Objetivos:• Desenvolver o raciocínio lógico e abstrato;• Dominar o processo básico de desenvolvimento

de programas;• Compreender e saber usar o computador como

ferramenta de produtividade pessoal e profissional, além dos aplicativos comerciais;

• Conseguir autonomia na organização e implementação de soluções mecanizadas para os seus próprios problemas.

Page 3: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

• Ferramenta indispensável;• Faz parte das nossas

vidas;• Por si só não faz nada

de útil;• Grande capacidade de

resolução de problemas;• Necessita ser

instruído.

Computador

Page 4: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

Computador

• Capaz apenas de excutar poucas tarefas básicas distintas, todas muito simples;• É extremamente rápido;• Possui um comportamento

previsível;• É excelente para reproduzir

“roteiros” pré-concebidos;• Não se cansa e pode ser

usado à exaustão.

Page 5: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

Computador =Hardware (corpo) + Software (alma)

O corpo fornece suporte para a alma.

O corpo procura suprir as necessidades da alma.

O corpo pode criar novas possibilidades para a alma, ou então estabeldcer limitações.

A alma se expressa através do corpo.

A alma usa os recursos do corpo.

Page 6: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

Computador•Hardware:

Parte física: placas, periféricos, circuitos, cabos e componentes.

Quanto mais usado, mais propenso à falhas.

Sozinho, não serve para nada.

Vem pronto da fábrica.

Page 7: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

Computador• Software:

Parte intangível: conhecimentos e idéias que fazem o hardware exibir um certo comportamento.

Quanto mais usado, menos propenso à falhas.

Confere funcionalidade ao hardware.

Pode ser adquirido ou desenvolvido.

Page 8: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

Software

•Comprar?

Oferta; Soluções de prateleira, não

personalizadas; Custo de aquisição; Vínculos (plataforma,

localização, performance, funcionalidade etc.)

Custo de personalização;

Page 9: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

Software

•Desenvolver?

Recursos próprios ou de terceiros (contratação).

Custo de criação; Custo de manutenção; Conhecimento tecnológico; Personalização.

Page 10: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

Nosso objetivo

•Desenvolver software

Organização de idéias; Modelo de funcionamento do

computador; Conceitos básicos de programação; Transcrição para linguagens apropriadas; Comunicação e interação com o

computador; Obtenção dos resultados pretendidos; Prática em laboratório.

Page 11: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

Desenvolver software

1. Problema;2. Solução;3. Algoritmo;4. Programa;5. Resultados.

•Roteiro

Page 12: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

Problema

Precisa ser conhecido em todos os seus aspectos;

É necessário ter resposta para todas as perguntas que dele possam suscitar;

É fundamental considerar todas as situações adversas;

Nenhuma faceta deve ser omitida.

Page 13: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

Solução

Existe solução para o problema?

Qual o custo da sua implementação?

Qual o custo da sua execução?

Como iremos representá-la?

Page 14: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

Algoritmo Representação de uma

solução para um problema, com algumas características:

o Seqüência finita de etapas;o Individualmente, existe

realização possível para cada uma das etapas consideradas;

o Termina após um tempo finito.

Page 15: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

Algoritmo Representação :

o Linguagem natural;o Pseudocódigo (linguagem

textual com poucos símbolos e regras, que são simples);

o Fluxograma (linguagem visual composta por poucos símbolos e regras)

Um algoritmo expressa uma solução para um problema.

Page 16: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

Terminou?

Page 17: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

Não!!!

Page 18: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

Acontece que...Computadores não entendem (normalmente, ou pelo menos da forma como nós precisamos):

• Linguagens naturais;• Pseudocódigos;• Fluxogramas.

Page 19: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

Precisamos ir além...

Não estou entendendo!!!!

Algoritmo!

Page 20: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

O que o computador

entende afinal?

Page 21: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

0110101011001010110101010001010100010111111010100100001011111010101100111

1111?????

Faça isso. Depois aquilo. Se OK, então pare, senão

refaça tudo.

Page 22: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

Temos um problema de comunicação

.

Page 23: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

Solução?

Page 24: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

Melhorar um pouco as coisas prá ele

(computador) sem piorar tanto prá nós

(humanos).

Page 25: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

⇒ Escrever um “programa” de computador, a partir do algoritmo.

⇒ Para isso, vamos usar uma “linguagem de programação”.

⇒ Um pouco mais complexas do que as linguagens usadas para representar algoritmos;

⇒ Mas mais fáceis de serem entendidas pelo computador.

Page 26: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

Java?C?

C++?Delphi?Pascal?HTML?

Perl?Python?Ruby?

Fortran?Assembly?

PHP?Cobol?SQL?Lisp?

Prolog?

Java!!C!!

C++!!Delphi!!Pascal!!HTML!!

Perl!!Python!!Ruby!!

Fortran!!Assembly!!

PHP!!Cobol!!SQL!!Lisp!!

Prolog!!

Page 27: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

E...?

Page 28: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

Sim, vamos precisar traduzir algoritmos para programas.

Sim, precisaremos conhecer (pelo menos)duas linguagens.

Sim, cometeremos erros nas traduções.

Page 29: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

C´est la vie...

Eu não existo.

Page 30: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

Como ficamos então?

Page 31: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

Sua parte:

Page 32: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

Parte do computador (com a sua supervisão...):

Page 33: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

⇒Deu errado?

⇒Não era bem isso que você queria?

Page 34: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

Não tem problema.

Volte à prancheta...

E descubra onde está o erro.

Page 35: Algoritmos e Programação Introducao.pdf · 2016-11-08 · Computador = Hardware (corpo) + Software (alma) O corpo fornece suporte para a alma. O corpo procura suprir as necessidades

Cic

lo

de dese

nvol

vim

ento