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

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

Christiano Lima Santos

Apresentações semelhantes


Apresentação em tema: "Christiano Lima Santos"— Transcrição da apresentação:

1 Christiano Lima Santos
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? Por que Programaçã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 Unidade de Processamento IC MAR MBR Instruction Counter - contém o endereço na memória com a próxima instrução a ser executada; Instruction Register - contém a próxima instrução a ser executada; Memory Address Register - contém o endereço da posição da memória a ser lida ou escrita; Memory Buffer Register - contém o dado a ser lido ou escrito na memória; Registradores de propósito geral – usados para armazenar resultados intermediários. IR Registrador A ULA Registrador B Registrador C

10 Componentes de um Computador
CPU Bios 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 Memória RAM Unidade Lógica Aritmética Interface Interface Periférico 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: RIBEIRO, Fernando L. B. Notas de aula, disponível em: 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 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 = an.bn + an-1.bn a1.b1 + a0

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

16 Base binária para base decimal: (1101)2 = 13
a3.b3 + a2.b2 + a1.b1 + a0 = = 13 Base decimal para base hexadecimal: 678 = (a2a1a0)16 = (2A6)16

17 Base hexadecimal para base decimal:
= = 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)2
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)2 1011 110 0101 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)2 1101 10 0000 11010 Na base hexadecimal: (A6)16 x (538)16 = (36250)16 538 A6 1F50 3430 36250

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: 3 + 5 (10110)2 + (10100)2 (AF8)16 + (5C0)16 (10110)2 + (5C0)16 ( )2 – (100110)2 (AF8)16 – (5C0)16 (AF8)16 – ( )2 (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? O que é um programa (software)?
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. Entrada Processamento Saida

35 Linguagem, Compilador e IDE
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:

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 <identificador> [,<identificadpr>] : <tipo>; 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 <identificador> = <valor>; Quem vai especificar o tipo do identificador da nossa constante? Atenção quanto às constantes tipadas: const <identificador> : <tipo> = <valor>; 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 <identificador> = <descricao>;

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 <identificador>; [<cláusula uses>>] [<declaração de rótulos>] 0; [<declaração de constantes>]; [<declaração de subprogramas>;] BEGIN comando1[; <comando> ];...corpo do programa} END.

55 Christiano Lima Santos
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
1 + x + x2 + x3 + x4 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 Comando Condicional Case Definição
Sintaxe Comando Condicional Case

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 <condição> então <comando> Em Pascal if <condição> then <comando>; 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 <condição> then <comando>;

71 Comando Condicional If
If Composto Em Portugol se <condição> então <comando1> senão <comando2> Em Pascal if <condição> então else <comando2>; 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:

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 <expressão> of <rotulo1>: <comando1>; <rotulo2>: <comando2>; <rotulo3>: <comando3>; ... else <comando> [; <comando>]... end;

76 Comando Condicional Case
opcao := 2; case opcao of 1: <comando1>; 2: <comando2>; 3: <comando3>; else <comando>; 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 <variável>  <início> até <fim> faça <comando> Sintaxe em Pascal for <variável> := <expressão1> to / downto <expressão2> do <comando>;

82 Comando For Funcionamento
A variável de controle e as expressões devem ser do mesmo tipo escalar ordinal; Inicialmente a variável recebe o valor de expressão1; 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; Se o resultado do teste for verdadeiro, o comando do laço é executado;

83 Comando For Funcionamento (continuando)
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); 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 <exp-booleana> faça <comando> Sintaxe em Pascal while <exp-booleana> do <comando>;

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 <comando> [; <comando>]... até <exp-booleana> Sintaxe em Pascal repeat until <exp-booleana>

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 <nome-da-função>
(<param>[,<param>]...:<tipo> [;<param>[,<param>]...:<tipo>]...) : <tipo> [declarações] begin <comando>[;<comando>]... end; Obs: O retorno da função é dado por <nome-da-função> := 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 <nome-do-procedimento> (<param>[,<param>]...:<tipo> [;<param>[,<param>]...:<tipo>]...) [declarações] begin <comando>[;<comando>]... 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 "Christiano Lima Santos"

Apresentações semelhantes


Anúncios Google