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

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

PROGRAMAÇÃO I Christiano Lima Santos.

Apresentações semelhantes


Apresentação em tema: "PROGRAMAÇÃO I Christiano Lima Santos."— Transcrição da apresentação:

1 PROGRAMAÇÃO I Christiano Lima Santos

2 Uma Introdução à Computação (Aula 1) Christiano Lima Santos

3 Sumário Motivação A História da Computação A Arquitetura de Von Neumann Componentes de um Computador Referências Bibliográficas

4 Motivação Por que Computação? A importância da informação O que é informação? A era da conhecimento Por que Programação? Como funciona um computador? Como NÓS dizemos ao computador como ele deve funcionar?

5 A História da Computação Século XIV – criação do Ábaco Chinês; Operações de adição, subtração, multiplicação e divisão; 1823 – criação da Máquina de Diferenças; Logaritmos e funções trigonométricas.

6 A História da Computação 1945 – criação do ENIAC; O primeiro computador! Cálculos balísticos na segunda guerra mundial; válvulas; 19 toneladas;

7 A História da Computação 1947/48 – invenção do transistor; 1954 – definição de FORTRAN (Formula Translator), primeira linguagem de programação de alto nível; 1958 – Invenção do circuito integrado (CHIP); 1969 – criação da ARPANET; Internet original, com fins militares.

8 A Arquitetura de Von Neumann Arquitetura empregada ainda hoje; Baseia-se em três componentes principais: Memória – usada para armazenar dados e programas; Unidade de Controle – circuito lógico responsável pelo funcionamento da máquina, controlando o fluxo de instruções; Unidade de Processamento – realiza cálculos de acordo com as instruções

9 A Arquitetura de Von Neumann Decompondo a Unidade de Processamento Unidade Lógico- Aritmética (ULA), onde são executadas as operações aritméticas; Registradores Instruction Counter; Instruction Register; Memory Address Register; Memory Buffer Register; Registradores de propósito geral. Memória Unidade de Controle IC MARMBR IR Registrador A Registrador B Registrador C ULA Unidade de Processamento

10 Componentes de um Computador Memória Principal – A memória principal é do tipo RAM (Random access Memory); CPU; BIOS (Binary I/O System) – Memória do tipo ROM (Read Only Memory) ou PROM; Memória auxiliar; Dispositivos de entrada e saída. Unidade de Controle Unidade Lógica Aritmética CPU Memória RAM Bios Interface Periférico Interface Periférico

11 Referências Bibliográficas INSTITUTO MILITAR DE ENGENHARIA, História do Computador, disponível em: LIBRANDI, Rodrigo. História da Computação, disponível em: omputacao001.asp omputacao001.asp RIBEIRO, Fernando L. B. Notas de aula, disponível em: pdf pdf WIKIPEDIA-PT, História da Computação, disponível em:

12 Representação Numérica (Aula 2) Christiano Lima Santos

13 I. Bases mais estudadas em computação Base decimal: N 0..9 Base binária: (N) 2 0,1 Base hexadecimal: (N) , A..F

14 II. Representação de um número em uma base qualquer N = a n.b n + a n-1.b n a 1.b 1 + a 0

15 III. Conversão de base: Base decimal para base binária: 13 = (1101) 2 (a 3 a 2 a 1 a 0 ) 2

16 Base binária para base decimal: (1101)2 = 13 a 3.b 3 + a 2.b 2 + a 1.b 1 + a 0 = = 13 Base decimal para base hexadecimal: 678 = (a 2 a 1 a 0 ) 16 = (2A6) 16

17 Base hexadecimal para base decimal: (2A6)16 = = = 678 Base binária para base hexadecimal:

18 Base hexadecimal para binária:

19 IV. Operação de adição: Na base binária: (1011) 2 + (1010) 2 = (10101) Na base hexadecimal: (25A6) 16 + (3D23) 16 = (62C9) 16 25A6 3D23 62C9

20 V. Operação de Subtração: Na base binária: (1011) 2 – (110) 2 = (101) Na base hexadecimal: (2C8) 16 – (1A9) 16 = (11F) 16 2C8 1A9 11F

21 VI. Operação de multiplicação Na base binária: (10) 2 x (1101) 2 = (11010) Na base hexadecimal: (A6) 16 x (538) 16 = (36250) A6 1F

22 VII. Operação de divisão: A forma mais fácil é converter para a base decimal, efetuar o cálculo e converter para a base desejada;

23 Exercícios Efetue os seguintes cálculos, convertendo antes os valores para cada uma das três bases: a) b) c) (10110) 2 + (10100) 2 d) (AF8) 16 + (5C0) 16 e) (10110) 2 + (5C0) 16 f) g) ( ) 2 – (100110) 2 h) (AF8) 16 – (5C0) 16 i) (AF8) 16 – ( ) 2 j) (CB) 16 x (101) 2

24 Uma Introdução aos Algoritmos (Aula 3) Christiano Lima Santos

25 Sumário Motivação Definição de Algoritmo Características de um Algoritmo Formas de Representação dos Algoritmos Vantagens do Uso de Algoritmos Elementos Fundamentais de um Algoritmo Linguagem, Compilador e IDE Linguagem Pascal IDEs de Pascal Referências Bibliográficas

26 Motivação Por que estudar algoritmos? Queremos criar programas... O que é um programa (software)? Um sistema para computador que executa tarefas de forma seqüencial; Cada tarefa pode ser compreendida como um conjunto de comandos e decisões;

27 Definição de Algoritmo Seqüência de ações finitas que descrevem como um problema deve ser resolvido; Exemplo: Trocar um pneu; Pentear os cabelos; Calcular a média de um aluno.

28 Características de um algoritmo Possui início e fim; É escrito em termos de ações bem definidas; Suas ações possuem uma ordem seqüencial.

29 Formas de Representação dos Algoritmos Descrição narrativa Ex: Receita de um bolo Separar os ingredientes Bater os ovos em neve na batedeira Acrescentar açúcar e farinha de trigo Acrescentar uma colher de manteiga Acrescentar uma colher de Fermento em pó Colocar na forma Colocar no forno e assar Retirar do forno Tirar da forma e servir Fim do processo!

30 Formas de Representação dos Algoritmos Em uma linguagem de programação Ex: função em ActionScript function colorDifference(color1, color2) { var r1 = Number("0x" + color1.substr(0,2)); var g1 = Number("0x" + color1.substr(2,2)); var b1 = Number("0x" + color1.substr(4,2)); var r2 = Number("0x" + color2.substr(0,2)); var g2 = Number("0x" + color2.substr(2,2)); var b2 = Number("0x" + color2.substr(4,2)); return Math.max(Math.max(Math.abs(r1 - r2), Math.abs(g1 - g2)), Math.abs(b1 - b2)); }

31 Formas de Representação dos Algoritmos Representações Gráficas Fluxograma, por exemplo

32 Formas de Representação dos Algoritmos Pseudocódigo (Portugol) Ex: Cálculo de média leia notaA, notaB, notaC, notaD; media <- (notaA + notaB + notaC + notaD) / 2; retorne media; Os algoritmos são independentes das linguagens de programação. Não existe um formalismo rígido de como deve ser escrito o algoritmo.

33 Vantagens do uso de algoritmos Facilita a compreensão acerca da solução adotada; Pode ser implementado em qualquer linguagem;

34 Elementos Fundamentais de um algoritmo ENTRADA: São os dados de entrada do algoritmo; PROCESSAMENTO: Procedimentos utilizados para chegar ao resultado final; SAÍDA: São os dados já processados. EntradaProcessamentoSaida

35 Linguagem, Compilador e IDE Linguagem Conjunto de regras sintáticas e semânticas usadas para definir um programa de computador; Compilador Programa que, a partir de um código escrito em uma linguagem, o código-fonte, cria um programa semanticamente equivalente porém escrito em outra linguagem, código objeto; Diferente do Interpretador! IDE Integrated Development Environment - Ambiente para desenvolvimento integrado.

36 Linguagem Pascal Linguagem de programação estruturada; O nome é uma homenagem ao matemático Blaise Pascal; Criada em 1970 pelo suíço Niklaus Wirth.

37 IDEs de Pascal Turbo Pascal Para download

38 IDEs de Pascal Free Pascal Para download:

39 Referências Bibliográficas COSTA, Abel. Apostila algoritmos e Fluxogramas, UFBA, disponível em: rtran/abel/HOME%20MAT045%20- %20HOME%20PAGE/APOSTILAS%20F ORTRAN%20FORMATO%20WORD/APO STILA%2003%20algor%EDtimos%20e %20fluxogramas.doc

40 Alguns Conceitos e Comandos em Programação (Aula 4) Christiano Lima Santos

41 Sumário Identificadores Variáveis Constantes Palavras-Reservadas Tipos de Dados Comentários Bloco de código / comandos Video poker

42 Identificadores Nomes dados a variáveis, tipos, procedimentos, funções, constantes, programas, units e campos de registros; Pascal não é case-sensitive, logo: Pascal = Pascal = PASCAL; Quais as regras para identificadores válidos? Ex. de identificadores válidos: PAGAMENTO Soma_Total maiorValor

43 Variáveis É um valor (referenciado por um identificador) que pode ser alterado durante a execução do programa; Em Pascal, nós precisamos declarar as variáveis antes de usá-las var [, ] : ; Ex: var a, b: integer; c: real; Na maioria das linguagens de programação, uma variável está associada a um tipo de dado, que define quais valores podem ser armazenados e como devem ser manipulados;

44 Constantes É um valor (referenciado por um identificador) que não muda durante a execução de um programa; Podem ser inteiras, reais ou literais; As constantes também devem ser declaradas em Pascal (constantes nomeadas); const = ; Quem vai especificar o tipo do identificador da nossa constante? Atenção quanto às constantes tipadas: const : = ; Na verdade, são variáveis inicializadas!

45 Palavras-Reservadas Termos que não podem ser usados pelo desenvolvedor ao declarar variáveis, constantes, tipos, procedimentos ou funções, por já serem empregados pela linguagem ou compilador em outras situações; Exemplos de palavras-reservadas: And, array, function, if, implementation;

46 Tipos de Dados Um tipo especifica as características de um dado; Toda variável e constante usada em um programa tem um tipo associado com ela.

47 Os tipos podem ser divididos em três categorias: Tipo escalar (ou simples) – representa uma única peça de dados; Tipo estruturado – representa uma coleção de itens de dados; Tipo apontador – faz referência ou aponta para outra peça de dados; Um novo tipo pode ser declarado do seguinte jeito: type = ;

48 Comentários São textos escritos dentro do código-fonte para explicar ou descrever alguns aspectos relativos ao mesmo; No momento de compilação, esses textos serão ignorados. Os comentários podem ser de final de linha, linha ou de bloco; Em Pascal, um comentário pode ser escrito assim: (* Texto aqui *); { Texto aqui };

49 Bloco de código/comandos Também conhecido como comando composto; Um ou mais comandos agrupados a serem executados seqüencialmente sendo assim possível usá-los em onde somente um comando é permitido; Em Portudol Início... comandos... Fim Em Pascal begin... comandos end;

50 Comandos para Atribuição Permitem estabelecer o valor de uma expressão (lado direito ou R-Value), como sendo o valor de uma variável (l-value e r- value); Em Portugol variável valor; Em Pascal Variável := valor.

51 Comandos para Impressão Permitem imprimir mensagens de texto legíveis ao usuário; Em Portugol Imprima Texto; Em Pascal write(...); writeln(...);

52 Comandos para Leitura Permitem que o usuário insira valores que serão armazenados em variáveis; Em Portugol Leia variavel; Em Pascal read(variavel); readln(variavel);

53 Operadores e Expressões Aritméticas As operações básicas ( +, -, x, / ) em Portugol e Pascal funcionam de forma similar a como usamos no cotidiano; Atentar-se a: Uso de parênteses; Prioridade das operações.

54 Estrutura Básica de um Programa em Pascal program ; [ >] [ ] 0; [ ]; [ ;] BEGIN comando1[; ];...corpo do programa} END.

55 Expressões (Aula 5) Christiano Lima Santos

56 Sumário Definição de Expressão Tipos de Expressões Expressões Numéricas / Aritméticas Expressões Literais Expressões Relacionais Expressões Booleanas Expressões Constantes Exercícios

57 Definição de Expressão Conjunto de operações efetuadas sobre certos dados (operandos) a fim de obter um resultado.

58 Tipos de Expressões Expressões Numéricas/Aritméticas Expressões Literais Expressões Relacionais Expressões Booleanas Expressões Constantes

59 Expressões Numéricas/Aritméticas Operador de negação (not); Operadores multiplicativos: multiplicação (*); divisão real (/); divisão inteira (div); resto da divisão (mod); e lógico (and); deslocamento (shift) lógico para a esquerda(shl); deslocamento (shift) lógico para a direita (shr);

60 Operadores aditivos: adição e subtração (+, -); ou lógico (or); ou exclusivo (xor);

61 Expressões Literais Operador de concatenação (+)

62 Expressões Relacionais Igual a = Maior do que > Maior ou igual do que >= Menor do que < Menor ou igual do que <= Diferente de <> Obs: São válidas tanto para inteiros, reais, caracteres e strings!

63 Expressões Booleanas Operador de negação (not); Operador e booleano (and); Operador aditivos: ou booleano (or); ou booleano exclusivo (xor); Algumas Observações: Operadores booleanos têm mais hierarquia (prioridade) que os operadores relacionais; Avaliação completa x avaliação curto-circuito.

64 Expressões Constantes Ex: const X = 32768*2 – 1; S = valor + total; K = 256 div 2;

65 Exercícios Represente em Pascal as seguintes expressões: 2 (x+3y)2 0,029x 1,5 2,7y 2,7 1 + x + x 2 + x 3 + x 4 2! 3! 4! z está entre x + 2 e x + 7, inclusive x, y e z são iguais x ou y são negativos, mas não os dois

66 Comandos Condicionais (Aula 6) Christiano Lima Santos

67 Sumário Comando Condicional If Definição Sintaxe Comando Condicional Case Definição Sintaxe

68 Comando Condicional If Permite executar uma instrução se e somente se uma condição expressa for verdadeira; Caso a expressão seja falsa, o programa poderá executar uma instrução declarada para esse caso (else) ou simplesmente seguir, sem a execução de um comando.

69 Comando Condicional If If Simples Em Portugol se então Em Pascal if then ; Se a condição expressa for verdadeira, execute o comando, caso contrário, ignore-o.

70 Comando Condicional If Obs: Comandos condicionais podem ser aninhados Ex: if then ;

71 Comando Condicional If If Composto Em Portugol se então senão Em Pascal if então else ; Aqui, nós dizemos que se a condição expressa for verdadeira, execute o comando1, caso contrário, execute o comando2. Em Pascal, o último comando antes do else não pode ter ; caso contrário o programa pensará que o if termina ali e o else ficará sem um if, o que gera um erro em tempo de compilação!

72 Comando Condicional If Problema dos Ifs compostos aninhados: Dado o comando: if b1 then if b2 then s1 else s2; O else pertence a qual if? Por quê? Na maioria das linguagens, a associação é feita sempre entre os pares mais próximos, logo: if b1 then if b2 then s1 else s2;

73 Comando Condicional If Nós podemos usar blocos de código (begin e end) a fim de tornar mais claro qual else pertence a qual if: if b1 then begin if b2 then s1 end else s2; Lembrando que blocos de código podem ser usados em qualquer lugar de um código que aceite um comando, a fim de melhorar a legibilidade ou para incluir mais comandos onde só poderíamos escrever um. Perceba que usando begin e end eu alterei facilmente a posse do else. Ficou também claro agora a quem o else pertence (neste caso, ao primeiro if).

74 Comando Condicional Case O if não é nossa única opção! O case consiste de uma expressão (seletor) e uma lista de comandos associados a rótulos de case; Tanto o seletor quanto os rótulos de case devem assumir o mesmo tipo escalar ordinal; Será executado o comando cujo rótulo representa o valor do seletor;

75 Comando Condicional Case Em Pascal, o comando é: case of : ;... else [; ]... end;

76 Comando Condicional Case opcao := 2; case opcao of 1: ; 2: ; 3: ; else ; end; No exemplo dado ao lado, o case irá avaliar a expressão (opcao) e determinará seu valor como sendo 2; Ele então buscará qual o rótulo que possui esse valor (no caso, o rótulo 2), e então executará o comando associado a ele (comando2); E se opção fosse 4? Não encontrando o valor, se houver uma cláusula else, ele a executará, caso contrário, ele não executa comando algum;

77 Comando Condicional Case Quando é bom usar Trabalhando condicionais de igualdade com um única variável ou uma expressão do tipo escalar ordinal; Mais de dois possíveis desvios (comandos a executar); Quando não é bom usar Trabalhando com tipos não-escalares ou escalares não-ordinais; Strings e arrays, por exemplo; Utilizando condições de desigualdade Ex: >, >=,.

78 Comandos de Repetição (Aula 7) Christiano Lima Santos

79 Sumário Definição Comando For Comando While Comando Repeat Comandos de Interrupção de Laços Continue Break

80 Definição São comandos usados para executar um comando (ou um conjunto de comandos) mais de uma vez; O número de execuções pode ser fixado no início do comando (comando for) ou o comando pode ser repetido até que uma condição seja verdadeira (comando repeat) ou falsa (comando while).

81 Comando For O comando For executa repetitivamente um comando enquanto é atribuído uma série de valores a uma variável de controle; Sintaxe em Portugol para até faça Sintaxe em Pascal for := to / downto do ;

82 Comando For Funcionamento 1. A variável de controle e as expressões devem ser do mesmo tipo escalar ordinal; 2. Inicialmente a variável recebe o valor de expressão1; 3. Antes de começar a execução, o programa testa se a variável é menor ou igual (se usado to) ou maior ou igual (se usado downto) à expressão2; 4. Se o resultado do teste for verdadeiro, o comando do laço é executado;

83 Comando For Funcionamento (continuando) 5. Ao terminar a execução do comando do laço, a variável de controle é testada para verificar se é igual ao valor final (expressão2); 6. Se for igual, a execução do laço é terminada, caso contrário, a variável é incrementada (to) ou decrementada (downto) e o comando do laço é executado novamente, ao fim do qual retorna ao passo 5, até atingir o valor de expressão2.

84 Comando For O que acontecerá em cada um desses casos for i := 0 to 10 do for i := 10 to 0 do for i := 10 downto 0 do for i := 0 downto 10 do

85 Comando For Observações O Turbo Pascal calcula o valor das expressões no começo da execução do comando for e usa estes valores enquanto durar a repetição Por isso os valores das expressões não podem ser alterados dentro do laço; O valor da variável de controle não deveria ser alterado dentro do laço;

86 Comando For Observações (continuando) O que aconteceria com for i := 1 to 10 do i := i + 15; Ao terminar o for, a variável de controle terá o valor da expressão2; Exceto se for interrompido por goto ou break;

87 Comando While O comando while executa repetitivamente um comando enquanto uma expressão de controle for verdadeira (true); Sintaxe em Portugol enquanto faça Sintaxe em Pascal while do ;

88 Comando While Observações As variáveis da expressão podem (e devem!) ser alteradas durante a execução do laço; Caso contrário, a expressão será sempre verdadeira! Cuidados com a declaração do caso de parada; Senão, o seu laço será executado indefinidamente; Se ao começar o comando while o valor da expressão for falsa, o laço não será executado nenhuma vez;

89 Comando Repeat O comando repeat executa seu comando uma primeira vez e re-executa-o até que a expressão de controle seja verdadeira; Sintaxe em Portugol repita [; ]... até Sintaxe em Pascal repeat [; ]... until

90 Comando Repeat Observações Diferentemente do for e do while, o comando repeat será executado ao menos uma vez, já que o teste é feito somente ao final; Enquanto que o while é executado enquanto a expressão de controle for verdadeira, com o repeat a execução do comando é repetida enquanto a expressão for falsa.

91 Comandos de Interrupção de Laços Continue Causa um desvio para o final do laço mais interno de um comando de repetição, em outras palavras, salta os comandos subseqüentes, mas não interrompe completamente a execução do laço; Break Interrompe completamente a execução do laço; Os comandos de execução não estão disponíveis no Pascal padrão.

92 Funções e Procedimentos (Aula 8) Christiano Lima Santos

93 Sumário Definição Comando For Comando While Comando Repeat Comandos de Interrupção de Laços Continue Break

94 Definição de Função Grupo de comandos que efetuam determinada operação (sobre argumentos passados ou não) e cujo resultado será utilizado em uma expressão;

95 Sintaxe de uma Função function ( [, ]...: [; [, ]...: ]...) : [declarações] begin [; ]... end; Obs: O retorno da função é dado por := valor_desejado;

96 Funções Numéricas sin(x) cos(x) tan(x) arctan(x) exp(x) ln(x) sqr(x) sqrt(x) abs(x) frac(x) int(x) round(x) trunc(x) random[(x)] pi odd(x)

97 Funções Literais chr(I) copy(S, inicio, comprimento) length(S) ord(C) DownCase(C) UpCase(C)

98 Definição de Procedimento Grupo de comandos que efetuam determinada operação (sobre argumentos passados ou não) mas que NÃO retorna seu resultado para uma expressão;

99 Sintaxe de um Procedimento procedure ( [, ]...: [; [, ]...: ]...) [declarações] begin [; ]... end; Obs: Em um procedimento, não há retorno.

100 Procedimentos de Entrada/Saída de Dados read e readln Usados para receber dados do teclado ou para leitura de arquivos; write e writeln Usados para exibir dados, gravar arquivos ou mesmo impressão;

101 Outros Procedimentos dec(x [, N]) inc(x [, N]) delete(S, inicio, quantidade) insert(S, destino, inicio) str(x[:W[:D], S) val(S, V, codigo) exit halt


Carregar ppt "PROGRAMAÇÃO I Christiano Lima Santos."

Apresentações semelhantes


Anúncios Google