• Nenhum resultado encontrado

CI1055: Algoritmos e Estruturas de Dados I

N/A
N/A
Protected

Academic year: 2022

Share "CI1055: Algoritmos e Estruturas de Dados I"

Copied!
26
0
0

Texto

(1)

CI1055: Algoritmos e Estruturas de Dados I

Prof. Dr. Marcos Castilho

Departamento de Inform´atica/UFPR

9 de julho de 2020

Resumo

(2)

Objetivos da aula

apresentar o conceito de algoritmos apresentar o conceito de programas

apresentar um panorama de linguagens de programa¸c˜ao

Prof. Dr. Marcos Castilho CI1055: Algoritmos e Estruturas de Dados I

(3)

Dos problemas ` as solu¸c˜ oes

a computa¸c˜ao s´o existe para resolver problemas para um certo problema, podem haver v´arias solu¸c˜oes algumas solu¸c˜oes s˜ao melhores em algum caso particular as solu¸c˜oes s˜ao escritas em forma de algoritmos e depois na forma de programas

os programas s˜ao escritos em linguagens de programa¸c˜ao

(4)

O que ´ e um algoritmo?

´E uma sequˆencia suficientemente precisa de instru¸c˜oes que detalha o processo de solu¸c˜ao de um problema e que, quando executada por outra pessoa ou por uma m´aquina a partir dos dados de entrada, leva `a solu¸c˜ao do problema

Prof. Dr. Marcos Castilho CI1055: Algoritmos e Estruturas de Dados I

(5)

Para que serve um algoritmo?

para registrar o processo de solu¸c˜ao de um problema

para que outra pessoa possa resolver o mesmo problema, sem ter que reinventar a roda

(6)

Problema: como fazer um bolo

Bata em uma batedeira a manteiga e o a¸cucar. Junte as gemas uma a uma at´e obter um creme homogˆeneo. Adicione o leite aos poucos. Desligue a batedeira e adicione a farinha de trigo, o chocolate em p´o, o fermento e reserve. Bata as claras em neve e junte-as `a massa de chocolate misturando delicadamente. Unte uma forma retangular pequena com manteiga e farinha e leve para assar em forno m´edio pr´e-aquecido por aproximadamente 30 minutos. Desenforme o bolo ainda quente e reserve. . .

Prof. Dr. Marcos Castilho CI1055: Algoritmos e Estruturas de Dados I

(7)

Caracter´ısticas da receita de bolo

outra pessoa pode fazer o bolo as frases est˜ao no imperativo

existe uma ordem para executar as a¸c˜oes

algumas a¸c˜oes devem esperar outras terminarem algumas a¸c˜oes podem ter a ordem invertida, outras n˜ao

(8)

Problemas da receita de bolo

algumas a¸c˜oes s˜ao omitidas, quem as escreveu acha que s˜ao

´

obvias (ex.: separar as gemas das claras)

quem escreveu a receita espera que a outra que vai fazer o bolo tenha um m´ınimo de conhecimento culin´ario

algumas instru¸c˜oes s˜ao obscuras:

at´e obter um creme homogˆeneo misturando delicadamente forno m´edio pr´e-aquecido

Prof. Dr. Marcos Castilho CI1055: Algoritmos e Estruturas de Dados I

(9)

Solu¸c˜ ao: detalhar melhor a solu¸c˜ ao

Pedir para quem escreveu a receita explicar melhor. . . como se faz claras em neve?

como se separa a gema do ovo?

como se quebra um ovo?

onde achar um ovo?

uso ovo marrom ou branco?

pode ser ovo de codorna?

Quando se pode parar de detalhar ???

(10)

N´ıvel m´ aximo de detalhamento

´

e preciso se convencionar o n´ıvel m´aximo de detalhamento assim, pode-se escrever a receita de bolo neste n´ıvel por exemplo: considera-se que quem vai fazer o bolo j´a fez est´agio em alguma doceria por pelo menos 2 anos

agora o algoritmo (receita) pode permanecer do jeito que est´a

Prof. Dr. Marcos Castilho CI1055: Algoritmos e Estruturas de Dados I

(11)

O que ´ e um programa?

´

e um algoritmo escrito com o n´ıvel de detalhamento pr´e-definido para a m´aquina ou pessoa que vai execut´a-lo ele deve ser escrito de maneira extremamente precisa e rigorosa, sem ambiguidades, e deve produzir o mesmo resultado a cada execu¸c˜ao

a diferen¸ca para um algoritmo ´e que este pode ser escrito em mais alto n´ıvel e em linguagem menos formal (portuguˆes, pseudo-linguagem, . . . )

o programa deve ser escrito em uma linguagem de programa¸c˜ao

(12)

Qual ´ e o n´ıvel m´ aximo de detalhamento?

os computadores modernos usam o n´ıvel m´aximo de detalhamento conhecido comoo modelo von Neumann estabelecido em 1946

veremos isso na pr´oxima aula

Prof. Dr. Marcos Castilho CI1055: Algoritmos e Estruturas de Dados I

(13)

Qual linguagem de programa¸c˜ ao adoratemos?

Pascal

by Niklaus Wirth, 1970

Por quˆe Pascal?

(14)

Linguagens e paradigmas de programa¸c˜ ao

estruturado: Pascal, C, . . . funcionais: Lisp, Haskell, . . . l´ogicas: Prolog

orientadas `a objetos: Java, SmallTalk, . . . . . .

Para que serve um paradigma de programa¸c˜ao?

Prof. Dr. Marcos Castilho CI1055: Algoritmos e Estruturas de Dados I

(15)

Exemplos de linguagens e paradigmas

vamos considerar um problema bem simples pois sem problema n˜ao h´a computa¸c˜ao!

Imprimir o texto Alo mamae na tela

(16)

Paradigma estruturado

Pascal

program alomamae ; begin

writeln (’Alo mamae’) ; end.

C

#include<stdio . h>

i n t main() {

p r i n t f (”Alo mamae\n”) ; return 0;

}

Prof. Dr. Marcos Castilho CI1055: Algoritmos e Estruturas de Dados I

(17)

Paradigma funcional

Lisp

( defun h e l l o ()

( format t ”Hello , World!˜%”))

Haskell

main : : IO ()

main = putStrLn ”Alo mamae”

(18)

Paradigma l´ ogico

Prolog

? write(’Alo mamae’) , nl .

Prof. Dr. Marcos Castilho CI1055: Algoritmos e Estruturas de Dados I

(19)

Paradigma orientado ` a objetos

Java

public c l a s s alomamae {

public s t a t i c void main(

String [ ] args ) { System . out . p r i n t l n (”

Alo mamae”) ; }

}

Smalltalk

object Alo {

def main( args : Array [ String ] ) = {

p r i n t l n (”Alo mamae”) }

}

(20)

Exemplos em linguagens variadas

Basic

10 PRINT ”ALO MAMAE”

20END

Python

p r i n t ”Alo mamae”

Prof. Dr. Marcos Castilho CI1055: Algoritmos e Estruturas de Dados I

(21)

Enfim: porquˆ e Pascal

todas as linguagens de programa¸c˜ao seguem uma gram´atica elas variam em detalhes sint´aticos e semˆanticos

em todas elas o b´asico ´e comum

(22)

Enfim: porquˆ e Pascal

ela ´e simples

´

e fortemente tipada (importante para calouros) compilador “amig´avel”

possui compilador para diversos sistemas operacionais est´a presente em vasta literatura sobre algoritmos em geral e. . .

Prof. Dr. Marcos Castilho CI1055: Algoritmos e Estruturas de Dados I

(23)

Enfim: porquˆ e Pascal

provavelmente vocˆe nunca mais vai usar!

´

e importante aprender uma segunda linguagem de programa¸c˜ao

(24)

Exerc´ıcios

fazer os exerc´ıcios 2 e 3 do cap´ıtulo 3 do livro [1]

http://www.inf.ufpr.br/cursos/ci055/livro_alg1.pdf

Prof. Dr. Marcos Castilho CI1055: Algoritmos e Estruturas de Dados I

(25)

Fim do t´ opico

o conte´udo da parte importante desta aula est´a no livro no cap´ıtulo 3

a parte sobre linguagens de programa¸c˜ao n˜ao ´e relevante e pode ser facilmente encontrada na Internet e na literatura da

´ area

na pr´oxima aula veremos o modelo Von Neumann

(26)

Licen¸ca

Slides feitos em LATEX usando beamer Licen¸ca

Creative Commons Atribui¸ao-Uso N˜ao-Comercial-Vedada a Cria¸ao de Obras Derivadas 2.5 Brasil License.http://

creativecommons.org/licenses/by-nc-nd/2.5/br/

Creative Commons Atribui¸ao-Uso N˜ao-Comercial-Vedada a Cria¸ao de Obras Derivadas 2.5 Brasil License.http://

creativecommons.org/licenses/by-nc-nd/2.5/br/

Prof. Dr. Marcos Castilho CI1055: Algoritmos e Estruturas de Dados I

Referências

Documentos relacionados

Visando estas práticas educativas, a formação continuada vem para fortalecer este elo entre a educação e a sociedade, pois o professor e a instituição de ensino são

As modificações contribuíram para a vivência acontecer nas academias e instituições de ensino públicas e privadas, em 2003 ganhou o direito de seu espaço ser garantido

Uma busca local ´e, portanto, uma busca por solu¸c˜oes de melhor qualidade realizada em um conjunto de solu¸c˜oes vizinhas da solu¸c˜ao original.. Esse processo ´e

A presente pesquisa teve o objetivo de traçar o perfil socioeconômico dos alunos do Curso de Administração do Centro de Ciências Jurídicas e Sociais, da

2 Controlabilidade Exata na Fronteira: Caso Linear 28 2.1 Solu¸c˜ oes Fortes e Solu¸c˜ oes

A tutora do PET zootecnia Maria Luisa Appendino Nunes Zotti, torna público as regras do processo de seleção 01/2018 de acadêmicos para o Programa de Educação Tutorial –

Para tanto, é de suma importância que o pesquisador realize um planejamento sistemático do processo de pesquisa, compreendendo desde a definição temática,

Quando o corta-relvas não consegue encontrar a estação de carga após um determinado período de procura irregular, ele também começa a procurar os fios de guia e, após mais