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

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

Construção de Algoritmos e Programação

Apresentações semelhantes


Apresentação em tema: "Construção de Algoritmos e Programação"— 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, 2003. Kernighan, B.W. & Ritch, D.M. – C: A linguagem de Programação, Rio de Janeiro, Campus, 1986. 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, 2005. Tremblay, J-P. & Bunt, R. - Ciência dos Computadores – Uma Abordagem Algoritmica, McGraw-Hill, 1981.

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

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

17 INTRODUÇÃO Hardware Software
São os equipamentos e dispositivos eletrônicos, elétricos e mecânicos que compõem o computador Software 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 Entrada Saída

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

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

22 Unidade de processamento
Modelo de computador 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 Memória Armazenamento de dados e programas Unidade de processamento Memória Entrada Saída

23 Tipos básicos Memória Não existem posições vazias
Nunca conte com isso!!! 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

24 INTRODUÇÃO Hardware e periféricos executam operações sob controle da UCP (unidade central de processamento) UCP segue os comandos armazenados na memória primária O 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 Hardware Perifé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 Algoritmo Aplicativos Linguagem de Programação
Instruções em 0s e 1s Linguagem de Programação Tradutor ou Compilador Algoritmo Aplicativos

28 SOLUÇÃO ALGORITMICA 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.

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 Remoção de ambiguidade
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 Algoritmo Aplicativos Linguagem de Programação
Instruções em 0s e 1s Linguagem de Programação Tradutor ou Compilador Algoritmo Aplicativos

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: Depois: Trabalhos:
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 Trabalho 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?

40 Trabalho Bibliografia Ciência dos Computadores (Livro)
Outros sites na internet

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

42 Programação 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 8AC416

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

44 Programação 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

45 Programação Linguagem montadora Dificuldades Vantagens
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

46 Copia o conteúdo da posição de memória chamada A para B
Programação 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 Copia o conteúdo da posição de memória chamada A para B B = A

47 Programação 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!!!

48 Programação ... C = A + B A fica no endereço A0FF0216 B fica no endereço A0FF0616 C fica no endereço A0FF0A16 Carrega o conteúdo de A0FF0216 Carrega o conteúdo de A0FF0616 Soma os valores carregados Armazena o resultado em A0FF0A16

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

50 Compiladores e Interpretadores
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
Tradução Algoritmo Programa em uma linguagem Lisp C# Java Executável C C++ Pascal PL/I Cobol

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

56 Bases 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 100

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

58 Bases Conversão de bases 61  base 2 ?? 61 2 1 30 2 0 15 2 1 7 2 1 3 2
61 2 1 0

59 Bases 1 x 25 = 32 + 1 x 24 = 16 1 x 23 = 08 1 x 22 = 04 0 x 21 = 00 1 x 20 = 01 = 61

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

61 Bases Base Hexadecimal Valores entre 0 e F, onde A = 10 B = 11 C = 12
Portanto, 4A3F16 =

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

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

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

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

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

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 DDDDD

69 PROBLEMA SIMPLES SOLUÇÃO 2 D2 F3 D3
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. v0 = 0 v = ?

73 PROBLEMA SIMPLES 3 Entendimento do problema
v0 = 0 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

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/s2 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: real início leia (altura) escreva (4,43 * raiz(altura)) fim 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


Carregar ppt "Construção de Algoritmos e Programação"

Apresentações semelhantes


Anúncios Google