A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Construção de Algoritmos e Programação Prof. Dr. Ednaldo Pizzolato DC - UFSCar.

Apresentações semelhantes


Apresentação em tema: "Construção de Algoritmos e Programação Prof. Dr. Ednaldo Pizzolato DC - UFSCar."— Transcrição da apresentação:

1 Construção de Algoritmos e Programação Prof. Dr. Ednaldo Pizzolato DC - UFSCar

2 Apresentação Disciplina que fornecerá instrumentos para que o aluno aprenda a desenvolver soluções computacionais para problemas bem determinados. Fazem parte do escopo da disciplina o aprendizado de fluxogramas, algoritmo e linguagem C.

3 Apresentação Avaliação: Existem atividades práticas (AP) que auxiliam o aprendizado. A média das avaliações práticas terá peso cor- respondente a 20% das avaliações na média final.

4 Apresentação Avaliação: Existem também as avaliações teóricas cuja média corresponderá a 80% da média final. Assim, a média final (MF) será: MF = 20% MAP + 80% MAT

5 Apresentação Avaliação: Se o aluno não obtiver média igual ou superior a 6, tal aluno deverá fazer uma prova extra chamada de prova substitutiva que substituirá (em benefício do aluno) sua pior nota.

6 Apresentação Avaliação: A SUB não poderá ser feita para aumentar a nota final. Caso o aluno tenha feito a SUB, sua média nunca será superior a 7.

7 Apresentação Avaliação: Caso o aluno mesmo com a sub não tenha conseguido obter média de aprovação (igual ou superior a 6), e caso o mesmo aluno tenha obtido média igual ou superior a 5, poderá realizar uma prova de recuperação no início do próximo semestre. Tal prova versará sobre todo o conteúdo e a média final será a média aritmética entre a média final obtida com a sub e a nota da prova de recuperação. Quem fizer a recuperação e conseguir aprovação terá média final 6.

8 Apresentação Aulas: As aulas acontecerão no laboratório (com computadores). Assim, será possível testar as informações imediatamente (bem como tirar dúvidas e fazer experimentos diferentes).

9 Apresentação Aulas: As provas práticas acontecerão também no laboratório. Elas serão questões relativas às atividades práticas que os alunos deverão fazer em casa. Ou seja, as atividades práticas terão suas notas através das provas práticas.

10 Apresentação Aulas: As provas teóricas acontecerão na sala oficial divulgada pela UFSCar. Elas terão questões relativas ao conteúdo ministrado durante o período.

11 Apresentação Datas: Serão 3 provas e uma substitutiva. Acontecerão nos seguintes dias: P1 – 14/04 P2 – 12/05 P3 – 23/06 Sub – 30/06

12 Apresentação Material de Apoio: Haverá uma área de apoio no MOODLE que permitirá que o aluno faça downloads de slides. Essa área, na verdade, servirá de apoio para a disciplina.

13 Apresentação Bibliografia: Senne, E.L.F. – Primeiro curso de programação em C, Visual Books, Kernighan, B.W. & Ritch, D.M. – C: A linguagem de Programação, Rio de Janeiro, Campus, Mizrahi, V. – Treinamento em Liguagem C – Módulo 1 e 2, São Paulo, McGraw-Hill, 1990.

14 Apresentação Bibliografia: Medina, M. & Fertig, C. - Algoritmos e Programação – Teoria e Prática, Novatec, Tremblay, J-P. & Bunt, R. - Ciência dos Computadores – Uma Abordagem Algoritmica, McGraw-Hill, 1981.

15 INTRODUÇÃO COMPUTAÇÃO Área que estuda os computadores e o que eles podem fazer.

16 INTRODUÇÃO software hardware Programação Equipamento

17 INTRODUÇÃO HardwareHardware –São os equipamentos e dispositivos eletrônicos, elétricos e mecânicos que compõem o computador SoftwareSoftware –São os programas e aplicativos que contêm instruções para comandar o hardware É a parte que você chuta É a parte que você xinga

18 INTRODUÇÃO Programação software hardware

19 INTRODUÇÃO processamento EntradaSaída

20 INTRODUÇÃO Exemplo: Cálculo da média entre 3 números Entradas: ??? Saídas: ???

21 INTRODUÇÃO Unidade de processamento Memória Entrada Saída Pentium Athlon Motorola + Co-proces- sador Teclado Mouse Modem Monitor Impressora Modem MODELO DE COMPUTADOR Primária Secundária

22 Modelo de computador Memória –Armazenamento de dados e programas Unidade de processamento Memória Entrada Saída Endereçamento Identificação de onde as informações estão Capacidade Quantidade de informação que pode ser armazenada Volatilidade Exigência de eletricidade Velocidade Taxa de transferência dos dados para processamento

23 Tipos básicos Memória –Não existem posições vazias –Há sempre bits em posições de memória Pode-se não saber o que está lá Em posições com conteúdo desconhecido, diz-se que existe lixo –Alguns compiladores mais modernos, mas não todos, tendem a ter bits zero nas áreas de dados Nunca conte com isso!!!

24 INTRODUÇÃO Hardware e periféricos executam operações sob controle da UCP (unidade central de processamento)Hardware e periféricos executam operações sob controle da UCP (unidade central de processamento) UCP segue os comandos armazenados na memória primáriaUCP segue os comandos armazenados na memória primária O sistema operacional é o conjunto básico de comandos que gerenciam o computadorO sistema operacional é o conjunto básico de comandos que gerenciam o computador –Gerencia também o uso de outros programas Editores de texto Planilhas de cálculo Jogos Programas em geral... feitos pelo usuário

25 INTRODUÇÃO HardwarePeriféricos S.O. Aplicativos

26 Sistemas operacionais Exemplos de S.O. (principais) –1961 – CTSS –1966 – DOS/360 (IBM) –1969 – Unix –1970 – DOS/Batch 11 (PDP-11) –1976 – CP/M –1978 – VMS –1981 – MS/DOS (Microsoft) –1981 – SunOS –1984 – MacOS (McIntosh) –1985 – AmigaOS –1985 – Windows 1.0 –1987 – Minix –1987 – IRIX (SGI) –1987 – OS/2 (IBM) –1987 – Windows 2.0 –1989 – SCO Unix –1991 – Linux –1992 – Windows 3.1 –1993 – FreeBSD –1993 – Windows NT 3.1 –1995 – Windows 95 –1997 – MacOS 7.6 –1998 – Windows 98 –1999 – MacOS 8 –2000 – Windows 2000 –2000 – Windows ME –2001 – Windows XP –2001 – MacOS X –2003 – Windows 2003 Server –2005 – Windows Vista

27 Aplicativos Instruções em 0s e 1s Linguagem de Programação Tradutor ou Compilador Algoritmo

28 Algoritmo: –Definição informal Conjunto finito de instruções que, em um tempo também finito, transforma um conjunto de dados em um conjunto de dados processados, com o intuito de resolver um problema. Uma linguagem de programação permite que um algoritmo seja convertido em programa. SOLUÇÃO ALGORITMICA

29 Algoritmos Algoritmos envolvem –Linguagem algorítmica Formalização dos comandos Formalização de estruturas de controle –Ferramental de representação de dados Tipos de dados variados Composições de tipos de dados –Metodologia de desenvolvimento Abordagem de problemas e proposição de solução –Objetivo final Algoritmos têm como objetivo ser a base para programas

30 SOLUÇÃO ALGORITMICA Lógica de interpretação –Sequencia linear Remoção de ambiguidade Abstração da execução –Velocidade arbitrária –Memória infinita –Sem limitação para a representação de informação

31 SOLUÇÃO ALGORITMICA Ciclo de desenvolvimento –Entendimento do problema –Entendimento da solução não- algorítmica –Proposição da solução algorítmica –Depuração da solução: testes, correções, reavaliação da solução –Avaliação da solução quanto a melhorias e desempenho

32 SOLUÇÃO ALGORITMICA Entendimento do problema –Avaliação de qual o problema –Determinação com clareza de quais são os dados de que se dispõe –Determinação com clareza de qual a resposta à qual se precisa chegar

33 SOLUÇÃO ALGORITMICA Entendimento da solução não-algorítmica –Aquisição de conhecimento (ou consulta a alguém que o tenha) para que se tenha uma solução para o problema Proposição da solução algorítmica –Desenvolvimento do algoritmo Estruturação organizada Abordagem com enfoque do panorama mais geral para o mais específico

34 SOLUÇÃO ALGORITMICA Depuração da solução: testes, correções, reavaliação da solução –Avaliação do algoritmo para certificar que as respostas produzidas são as esperadas Checagem para diferentes entradas das saídas produzidas –Correção e adequação do algoritmo frente às deficiências encontradas Avaliação da solução quanto a melhorias e desempenho –Reavaliar a solução proposta Busca de melhores opções para a solução proposta Avaliação das partes do algoritmo para torná-lo mais rápido (usando um menor número do comandos/operações)

35 Aplicativos Instruções em 0s e 1s Linguagem de Programação Tradutor ou Compilador Algoritmo

36 Programação Máquina programável –Capacidade de executar instruções a partir de uma lista de comandos especificada por um programador Cartões perfurados Fitas de papel perfurado HD, CD, DVD etc.

37 Programação No começo: –Os programas eram feitos através da mudança física dos circuitos (chaves). Depois: –Evoluiu para programas armazenados; –A máquina é capaz de obter a lista de comandos e armazená-la internamente, em um dispositivo chamado memória. Trabalhos: –História dos computadores até 1900 –História dos computadores de 1901 a 1960 –História dos computadores de 1961 a 2009 –História da programação

38 Trabalho Trabalhos (em powerpoint): Título Número do Trabalho Nome de cada membro do grupo Data da Entrega Conteúdo Bibliografia

39 Perguntas a serem respondidas –O que é um ábaco? –O que é uma régua de cálculo? –O que são os bastões de Napier? –O que são válvulas, relés e transístores? –O que são bugs e por que esta denominação? –Qual foi a participação de Da Vinci, Pascal, Babbage, Ada Augusta, Hollerith, Von Neumann entre outros na história dos computadores e da programação? Trabalho

40 Bibliografia –Ciência dos Computadores (Livro) –http://www.hitmill.com/computers/history/index.htmlhttp://www.hitmill.com/computers/history/index.html –http://lecture.eingang.org/toc.htmlhttp://lecture.eingang.org/toc.html –http://www.islandnet.com/~kpolsson/comphist/http://www.islandnet.com/~kpolsson/comphist/ –http://www.maxmon.com/history.htmhttp://www.maxmon.com/history.htm –http://inventors.about.com/library/weekly/aa htmhttp://inventors.about.com/library/weekly/aa htm –Outros sites na internet Trabalho

41 Voltando ao assunto de programação... Programação

42 Como era no início... –Instruções do processador Exigia conhecimento das instruções (em binário?!?) Exigia paciência para identificar e corrigir erros A chance de erros era grande AC4 16

43 Linguagem montadora –Mnemônicos para as instruções do processador 8AC4 16 MOV ADD SUB JMP... Programação

44 Linguagem montadora –Um programa específico Interpreta os mnemônicos Gera a instrução adequada para o processador –Nome do programa Programa montador Em inglês: assembler –Nome da linguagem dos mnemônicos Assembly Programação

45 Linguagem montadora –Dificuldades Ainda sujeita a erros Ainda exigia atenção do programador O assembly era específico para cada processador –Vantagens Documentação –O texto assembly admitia comentários escritos pelo programador –Os comentários eram simplesmente ignorados pelo programa montador Programação

46 Linguagem de nível alto –Substitui o assembly por instruções independentes do processador –O programador não escreve diretamente as instruções do processador, mas um conjunto de comandos mais abstrato B = A Copia o conteúdo da posição de memória chamada A para B Programação

47 Linguagem de nível alto –Um programa interpreta o código escrito na linguagem Equipamentos distintos interpretam o mesmo código para gerar instruções para seus próprios processadores –Vantagens Um mesmo código de nível alto pode ser usado em várias máquinas diferentes –Desvantagens Máquinas diferentes exigem programas específicos para interpretar a linguagem Nem sempre estes programas interpretam exatamente a mesma linguagem –Dialetos!!! Programação

48 A fica no endereço A0FF02 16 B fica no endereço A0FF06 16 C fica no endereço A0FF0A 16 Carrega o conteúdo de A0FF02 16 Carrega o conteúdo de A0FF06 16 Soma os valores carregados Armazena o resultado em A0FF0A 16 C = A + B Programação

49 Compiladores e Interpretadores Aplicativos Instruções em 0s e 1s Linguagem de Programação Tradutor ou Compilador Algoritmo

50 Compiladores e Interpretadores Compilador –Interpreta o código de nível alto inteiro e gera todo o conjunto de instruções –Se houver erro, nenhuma instrução é gerada Interpretador –Interpreta o código de nível alto comando por comando e o executa na hora –Se houver erro, o programa executa até o ponto do erro, então pára - Somente executa se não houver erros (sintáticos) no programa - Resultados parciais podem ser obtidos antes do erro

51 Compiladores e Interpretadores Um compilador converte um programa (escrito em uma linguagem de programação) em um código compreendido pelo computador. Um interpretador também executa tarefa semelhante à de um compilador, mas a diferença está no fato de que o interpretador terá que executar a mesma tarefa de tradução a cada vez que o usuário executar o programa.

52 Compiladores e Interpretadores O interpretador tem que ouvir pouco a pouco o que o locutor está falando e traduzir para todos os ouvintes. Se o locutor for apresentar 10 palestras iguais, o intérprete terá que traduzir 10 vezes... Bla...

53 Compiladores e Interpretadores O compilador ouve tudo uma única vez e cria um livro tradu- zido com o conteúdo da palestra do locutor. Assim, o trabalho do compilador ocorre so- mente uma vez e as coisas ficam bem mais rápidas... Bla...

54 Compiladores e Interpretadores Algoritmo Programa em uma linguagem Tradução Executável C C++ Pascal Cobol JavaC# PL/I Lisp

55 Aplicativos Instruções em 0s e 1s Linguagem de Programação Tradutor ou Compilador Algoritmo

56 Sistema de base decimal –Composto de 10 algarismos (0 a 9) –Algarismo é o termo usado para denominar os símbolos de zero a nove e é em homenagem a um matemático chamado al- Khowarizmi. –5.326 = 5 x x x x 1 – = 5 x x x x 10 0 Bases

57 Sistema binário –Composto de 0s e 1s –Nro = b n x 2 n + b n-1 x 2 n b 0 x 2 0 –Exemplo: –Bits 0s e 1s –Byte agrupamento de 8 bits –Palavra agrupamento de 4 bytes Bases

58 Conversão de bases 61 base 2 ?? Bases

59 1 x 2 5 = x 2 4 = x 2 3 = x 2 2 = x 2 1 = x 2 0 = 01 Bases = 61

60 Mudar da base 10 para a base 8 (octal) –61 –120 –56 Bases

61 Base Hexadecimal –Valores entre 0 e F, onde A = 10 B = 11 C = 12 D = 13 E = 14 F = 15 Portanto, 4A3F 16 = Bases

62 Operações –Soma de binários = = = = 0 (e vai 1) Bases

63 Operações –Subtração de binários = = = = 1 (e empresta 1) Bases

64 Operações –Adição de Hexadecimais B C B F = 18 – 16 = 2 (e vai 1) = 17 – 16 = 1 (e vai 1) Bases 11

65 Código ASCII –Representação interna (computador) de símbolos em binário A = B = C = Representação

66 Vamos brincar um pouco de programar! Motivação - programação

67 PROBLEMA SIMPLES COMANDOS –F (FRENTE) –T (TRAS) –D (DIREITA) –E (ESQUERDA)

68 PROBLEMA SIMPLES SOLUÇÃO 1 –DD –FFF –EE –FF –DDDD –TT –EEEE –FFF –DDDDD

69 PROBLEMA SIMPLES SOLUÇÃO 2 –D2 –F3 –D3 –F3 PERGUNTA: Pode-se trocar a ordem dos comandos?

70 PROBLEMA SIMPLES 2 Siga em frente até a prefeitura. Depois vire à direita e siga em frente por um quarteirão e meio.

71 PROBLEMA SIMPLES 2 Siga em frente significa que os sinais de trânsito devem ser respeita- dos.

72 PROBLEMA SIMPLES 3 Um professor de física necessita de uma solução computacional que resolva o problema de cálculo da velocidade final de um objeto, solto do repouso na direção vertical a partir de uma dada altura, quando este atinge o solo. Este problema é parte de um outro problema maior em que o professor está trabalhando, em cinética. v 0 = 0 v = ?

73 PROBLEMA SIMPLES 3 Entendimento do problema É um caso de queda livre Entendimento da solução não-algorítmica Consultando o material do cursinho Fazendo as manipulações algébricas adequadas Solução: h – altura g – aceleração gravitacional v 0 = 0

74 PROBLEMA SIMPLES 3 –Desenvolvimento do algoritmo algoritmo quedaLivre início Obtenha o valor da altura Calcule a velocidade Devolva como resposta a velocidade calculada fim Esboço inicial

75 PROBLEMA SIMPLES 3 –Desenvolvimento do algoritmo algoritmo quedaLivre início Obtenha o valor para altura Calcule velocidade pela fórmula Devolva o valor de velocidade fim Esboço mais refinado

76 PROBLEMA SIMPLES 3 Exemplo –Desenvolvimento do algoritmo algoritmo quedaLivre { Calcula a velocidade de uma partícula ao atingir o solo após ser largada do repouso a uma dada altura } declare altura, velocidade: real início leia(altura) velocidade 4,43 * raiz(altura) escreva(velocidade) fim Versão final

77 PROBLEMA SIMPLES 3 Exemplo –Observações O problema proposto foi bastante específico –A altura deve ser dada em metros e o valor deve ser positivo –A velocidade resultante é em m/s O algoritmo não é geral –O valor da gravidade foi estimado em 9,8m/s 2 –Não se admite outro valor para g –Não se admite velocidade inicial diferente de zero –Não se considera resistência do ar –Etc. etc. etc.

78 PROBLEMA SIMPLES 3 –Teste do algoritmo Acompanhamento dos cálculos realizados

79 PROBLEMA SIMPLES 3 Exemplo –Melhorias Verificou-se que o cálculo intermediário da velocidade podia ser omitido Algoritmo QuedaLivre { Calcula a velocidade de uma partícula ao atingir o solo após ser largada do repouso a uma dada altura } Declare Altura, Velocidade: real Início Leia (Altura) Velocidade 4,43 * Raiz(Altura) Escreva (Velocidade) Fim Versão final

80 PROBLEMA SIMPLES 3 Exemplo –Melhorias Algoritmo QuedaLivre { Calcula a velocidade de uma partícula ao atingir o solo após ser largada do repouso a uma dada altura } Declare Altura, Velocidade: real Início Leia (Altura) Velocidade 4,43 * Raiz(Altura) Escreva (Velocidade) Fim Versão final algoritmo quedaLivre { Calcula a velocidade de uma partícula ao atingir o solo após ser largada do repouso a uma dada altura } declare Altura: real início leia (altura) escreva (4,43 * raiz(altura)) fim


Carregar ppt "Construção de Algoritmos e Programação Prof. Dr. Ednaldo Pizzolato DC - UFSCar."

Apresentações semelhantes


Anúncios Google