Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 6. Programas, Máquinas e Computações

Tamanho: px
Começar a partir da página:

Download "Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 6. Programas, Máquinas e Computações"

Transcrição

1 Curso: Ciência da Computação Turma: 6ª Série Aula 6 Programas, Máquinas e Computações

2 Avisos Hoje tem dúvidas sobre a segunda etapa da ATPS. Somente 28 alunos/alunas entregaram a ATPS etapa 1. Ainda dá tempo. Próxima aula será revisão para a prova. Tem uma lista de exercícios para fazer para a próxima aula na sala virtual.

3 Programas Um conjunto de operações e testes compostos de acordo com uma estrutura de controle: Monolíticos: desvios condicionais e incondicionais Iterativos: estruturas de iteração Recursivos: sub-rotinas recursivas 3

4 Interpreta Programas Máquinas Possui uma interpretação para cada operação ou teste que constituem o programa. 4

5 Computação Histórico do funcionamento da máquina para o programa e um dado valor inicial. Função Computada Função parcial induzida a partir da máquina e programa dados, a qual é definida sempre que, para um dado valor de entrada, existe uma computação finita (a máquina pára). 5

6 Programas Um conjunto estruturado de instruções que capacitam uma máquina a aplicar sucessivamente certas operações básicas e testes sobre os dados iniciais fornecidos com o objetivo de transformar esses dados numa forma desejável. Operações e Testes: Operações: F, G, H... Testes: T1, T2, T3... Operação Vazia: 6

7 Programa Monolítico É estruturado com somente desvios condicionais e incondicionais. Não emprega mecanismos auxiliares como iteração, sub-divisão ou recursão, de modo que toda a lógica do programa está contida em um único bloco: um monólito. Representados facilmente por um fluxograma. Partida Parada Operação Teste 7

8 Exemplo 1 Calcular a soma do números de 1 a 10 utilizando somente elementos do fluxograma. 8

9 início A = 0 A > 9 fim A = A + 1 9

10 Instruções Rotuladas Além da forma de um fluxograma, o programa pode ser representado como uma sequência de instruções rotuladas. Um rótulo ou etiqueta é uma cadeia finita de caracteres constituída de letras ou dígitos. Uma Instrução rotulada assume as formas: Operação: Indica a operação a ser executada seguida de um desvio incondicional para a instrução subsequente. r1: faça F vá_para r2 ou r1: faça vá para r2. Teste: Determina um desvio condicional, ou seja, que depende da avaliação de um teste. r1: se T então vá_para r2 senão vá_para r3. 10

11 Exemplo de Programa Monolítico 1.faça F vá_para 2 2.se T1 então vá_para 1 senão vá_para 3 3.faça G vá_para 4 4.se T2 então vá_para 5 senão vá_para 1 11

12 Definição de Rótulo, Instrução Rotulada 1. Um rótulo ou Etiqueta é uma cadeia de caracteres finita (palavra) constituída de letras ou dígitos. 2. Uma instrução Rotulada i é uma cadeia de caracteres finita (palavra) de uma das duas formas a seguir (suponha que F e T são identificadores de operação e teste, respectivamente e que r 1, r 2 e r 3 são rótulos): 2.1 Operação r 1 : faça F vá_para r 2 ou r 1 : faça vá_para r Teste r1: se T então vá_para r 2 senão vá_para r 3 12

13 Definição Formal de Programa Monolítico Um Programa Monolítico é um par P(I, r) I: Conjunto Finito de Instruções Rotuladas r: Rótulo inicial que distingue a instrução inicial em I Adicionalmente, relativamente ao conjunto I tem-se que: Não existem duas instruções diferentes com o mesmo rótulo. Um rótulo não associado a nenhuma instrução é um rótulo final. A estrutura oferecida pelos programas monolíticos é típica das linguagens de máquinas e de programas montadores (assembly), entretanto isto se reflete de diversas maneiras em linguagens de alto nível. 13

14 Exemplos de Programas Monolíticos 1. P 1 = (I 1,1) onde I 1 é o conjunto constituído pelas instruções rótuladas 1, 2, 3 e 4 do exemplo anterior. Neste caso 5 é o rótulo final. 2. P 2 = ({r 1 : faça vá_para r 2 }, r 1 ) onde r 2 é um rótulo final. 14

15 Programa Iterativo Substituem desvios incondicionais por estruturas cíclicas, permitindo um melhor controle e manutenção de programas. A noção de programa iterativo deu origem às técnicas de programação estruturada, inspirando toda uma geração de linguagens como Pascal. São baseados em três mecanismos de composição de instruções, encontrados em diversas linguagens: Algol 68, Pascal, Ada, Fortran 90, etc Sequencial: composição de dois programas, resultando em um terceiro, cujo efeito é a execução do primeiro e, após, a execução do segundo programa componente; Condicional: composição de dois programas, resultando em um terceiro, cujo efeito é a execução de somente um dos dois programas componentes dependendo do resultado do teste; Enquanto: composição de um programa, resultando em um segundo, cujo efeito é a execução, repetidamente, do programa componente enquanto o resultado de um teste for verdadeiro. 15

16 Definição Formal de Programa Iterativo Um Programa Iterativo P é indutivamente definido como segue: a) A operação constitui um programa iterativo; b) Cada identificador de operação constitui um programa iterativo; c) Composição sequencial. Se V e W são programas iterativos, então a composição sequencial denotada por V;W resulta em um programa iterativo cujo efeito é a execução de V e, após, a execução de W; d) Composição condicional. Se V e W são programas iterativos e se T é um identificador de teste, então a composição condicional denotada por (se T então V senão W) resulta em um programa iterativo cujo efeito é a execução de V se T é verdadeiro ou W se T é falso; 16

17 Definição de Programa Iterativo e) Composição enquanto. Se V é um programa iterativo e se T é um identificador de teste, então a composição enquanto denotada por enquanto T faça (V) resulta em um programa iterativo que testa T e executa V, repetidamente, enquanto o resultado do teste for o valor verdadeiro. Caso contrário, a iteração termina. f) Composição até. Se V é um programa iterativo e se T é um identificador de teste, então a composição até denotada por até T faça (V) resulta em um programa iterativo que testa T e executa V, repetidamente, enquanto o resultado do teste for o valor falso. Caso contrário, a iteração termina. Iteração é o processo chamado na na programação de de repetição de de uma uma ou ou mais mais ações. ações. 17

18 Programa Iterativo Parênteses podem ser empregados para mudar uma interpretação: (enquanto T faça V); W enquanto T faça (V; W) 18

19 Exemplo de um Programa Iterativo (se T1 então enquanto T2 faça (até T3 faça (V; W)) senão ) Observações: É trivial traduzir um programa iterativo para um fluxograma, mas a recíproca não é verdadeira. O uso de identação é interessante para facilitar o entendimento. 19

20 Como Podemos Representar um Programa Iterativo Enquanto como um Fluxograma? 20

21 Programa Recursivo Nas linguagens de programação em geral o conceito de programa recursivo aparece associado ao de sub-rotinas recursivas. Recursão é uma forma indutiva de definir programas. Sub-rotinas permitem a estruturação hierárquica dos programas, possibilitando níveis diferenciados de abstração. 21

22 Definição Expressão de Sub-Rotinas Uma Expressão de Sub-Rotinas, ou simplesmente Expressão é indutivamente definida como se segue: A operação vazia,, constitui uma expressão de sub-rotinas. Cada identificador de operação constitui uma expressão de subrotinas. Composição sequencial: Se D 1 e D 2 são expressões de sub-rotinas, então a composição sequencial denotada por: D 1 ; D 2 resulta em uma expressão de sub-rotinas cujo efeito é a execução de D 1 e, após a execução de D 2 ; Composição condicional: Se D 1 e D 2 são expressões de sub-rotinas e T é um identificador de teste, então a composição condicional denotada por: (se T então D 1 senão D 2 ) resulta em uma expressão de sub-rotinas cujo efeito é a execução de D 1 se T é verdadeiro ou D 2 se T é falso. 22

23 Definição Formal de Programa Recursivo Um Programa Recursivo P tem a seguinte forma: P é E 0, onde R 1 def E 1, R 2 def E 2,..., R n def E n Onde, para k є {1, 2,,n} E 0 : Expressão Inicial, que é uma expressão de subrotinas. E k : Expressão que define R k, isto é, a expressão que define a sub-rotina identificada por R k Adicionalmente, para cada identificador de sub-rotina referenciado em alguma expressão, existe uma expressão que o define. A operação vazia também é uma expressão de subrotinas. 23

24 Lógica Recursiva. Raciocínio Recursivo Pilha de Dados e Operações. Exemplo de Programa Recursivo: P é R; S, onde: R def F; (se T então R senão G; S) S def (se T então senão F; R) Exemplos Concretos: Fatorial Fibonacci Lista Recursiva 24

25 Máquinas As máquinas interpretam os programas suprindo todos os recursos necessários para realizar a computação que eles representam. Cada identificador de operação ou teste interpretado pela máquina deve ser associado a uma transformação na estrutura da memória e a uma função verdade respectivamente. Nem todo identificador de operação ou teste é definido em uma máquina. Para cada identificador de operação ou teste definido em uma máquina existe somente uma função associada. Adicionalmente a máquina deve descrever o armazenamento ou recuperação da informação na estrutura da memória. 25

26 Definição de Máquina Uma máquina é uma héptupla: M = ( V, X, Y, π X, π Y, Π F, Π T ), onde: V Conjunto de Valores de Memória X Conjunto de Valores de Entrada Y Conjunto de Valores de Saída π X Função de Entrada, tal que π X : X V π Y Função de Saída, tal que π Y : V Y Π F Conjunto de Interpretações de Operações tal que, para cada identificador de operação F interpretado por M, existe um única função π F : V V em Π F Π T Conjunto de Interpretações de Testes tal que, para cada identificador de teste T interpretado por M, existe uma única função: π T : V {verdadeiro, falso} em Π T Os conjuntos de interpretações podem ser vistos como conjuntos de funções, indexadas pelo subconjunto de identificadores de operações e testes para os quais a máquina está definida 26

27 Exemplo: Máquina de Dois Registradores Seja uma máquina com dois registradores, a e b, que assumem valores em N, com duas operações e um teste: Subtrair 1 de a, se a > 0. Adicionar 1 em b. Teste se a é zero. Adicionalmente valores de entrada são armazenados em a (zerando b) e a saída retorna o valor de b. Implementação dois_reg = ( N 2, N, N, armazena_a, retorna_b, {subtrai_a, adiciona_b}, {a_zero} ), onde: V = N 2 = Conjunto de valores de memória. X = N = Conjunto de valores de entrada Y = N = Conjunto dos valores de saída armazena_a: N N 2, tal que, para todo n є N, armazena_a(n) = (n, 0) retorna_b: N 2 N tal que, para todo n,m є N 2, retorna_b(n, m) = m subtrai_a: N 2 N 2 tal que, para todo (n, m) є N 2, subtrai_a(n, m) = (n-1, m), se n 0, subtrai_a(n, m) = (0, m), se n = 0. adiciona_b: N 2 N 2 tal que, para todo (n, m) є N 2, adiciona_b(n, m) = (n, m+1) a_zero: N 2 {verdadeiro, falso}, tal que, para todo (n, m) є N 2, a_zero(n, m) = verdadeiro, se n = 0, a_zero(n, m) = falso, se n 0, 27

28 Registradores (O registrador de uma CPU (unidade central de processamento) são unidades de memória capazes de armazenar n bits. Os registradores estão no topo da hierarquia de memória, sendo assim, são o meio mais rápido e caro de se armazenar um dado. São utilizados na execução de programas de computadores, disponibilizando um local para armazenar dados. Na maioria dos computadores modernos, quando da execução das instruções de um programa, os dados são movidos da memória principal para os registradores. Então, as instruções que utilizam estes dados são executadas pelo processador e, finalmente, os dados são movidos de volta para a memória principal.) 28

29 Definição: Programa para uma Máquina Diz-se que P é um programa para a máquina M se cada operação e teste em P corresponder a uma interpretação em M. Formalmente: Seja M = ( V, X, Y, π X, π Y, Π F, Π T ), uma máquina e P um programa onde P F e P T são conjuntos de operações e testes de P. P é um programa para a máquina M se e somente se: Para toda F em P F, existe uma única função π F : V V em Π F. Para todo T em P T, existe uma única função π T : V V em Π T. A operação vazia,, é interpretada em qualquer máquina. 29

30 Exemplo: Programa para a Máquina de Dois Registradores Os programas iterativo itv_b a e recursivo rec_b a são programas para a máquina dois_reg e atribuem o valor armazenado em a ao registrador b. Programa Iterativo itv_b a Até a_zero faça (subtrai_a; adiciona_b) Programa Recursivo rec_b a rec_b a é R onde R def (se a_zero então senão S;R), S def subtrai_a; adiciona_b 30

31 Computações e Funções Computadas Uma computação é, resumidamente, um histórico do funcionamento da máquina para o programa, considerando um valor inicial. Uma computação de um programa monolítico em uma máquina é um histórico de instruções executadas e o correspondente valor de memória. O histórico é representado como uma cadeia de pares onde: Cada par reflete um estado de máquina para o programa, ou seja, a função a ser executada e o valor corrente de memória. A cadeia reflete uma sequência de estados possíveis a partir do estado inicial. (instrução inicial e valor de memória considerado). 31

32 Definição: Computação de um Programa Monolítico em uma Máquina Seja M = ( V, X, Y, π X, π Y, Π F, Π T ), uma máquina e P = (I, r) um programa monolítico para M, onde L é o seu correspondente conjunto de rótulos. Uma computação do programa monolítico P para a máquina M é uma cadeia (finita ou infinita) de pares de L x V (s 0,v 0 )(s 1,v 1 )(s 2,v 2 )... onde s o = r é o rótulo inicial do programa P e v o é o valor inicial de memória e, para cada par (s k,v k ) da cadeia, onde K є (0,1,2,...), tem-se que (suponha que F é um identificador de operação, T é um identificador de teste e r', r'' são rótulos de L): a) Operação: a.1) Se s k é o rótulo de uma operação da forma: s k : faça F vá_para r então (s k+1, v k+1 ) = (r, π F (v k )) é par subsequente de (s k, v k ) na cadeia. a.2) Se s k é o rótulo de uma operação da forma s k : faça vá_para r, então (s k+1, v k+1 ) = (r, v k ) é par subsequente de (s k, v k ) na cadeia. 32

33 Definição: Computação de um Programa Monolítico em uma Máquina b) Teste: Se s k é o rótulo de um teste da forma s k : Se T então vá_para r senão vá_para r, então (s k+1, v k+1 ) é par subsequente de (s k, v k ) na cadeia, sendo que v k+1 = v k e: i. s k+1 = r se π T (v k ) = verdadeiro ii. s k+1 = r se π T (v k ) = falso Uma computação é dita Finita ou Infinita, se a cadeia que a define é finita ou infinita, respectivamente. 33

34 Observações A computação pode ser finita ou infinita, conforme a cadeia for finita ou infinita. Para um dado valor inicial de memória, a correspondente cadeia de computação é única, ou seja, a computação é determinística. Por que? Um teste e a operação vazia não alteram o conteúdo de memória. Em uma computação infinita não há rótulo final. 34

35 Exemplo: Computação Finita Computação Finita de Programa Monolítico na Máquina de Dois Registradores (s k, v k ) Ação (1,(3,0)) Instrução inicial e valor de entrada armazenado. (2,(3,0)) Em 1, como a<>0, desviou para 2. Em 2, subtraiu 1 do registrador a e desviou para 3. (3,(2,0)) 1. Se a_zero então vá_para 9 senão vá_para faça subtrai_a vá_para faça adiciona_b vá_para 1. (1,(2,1)) Em 3, adicionou 1 ao valor de b e desviou para 1, (2,(2,1)) (3,(1,1)) Em 1, como a<>0, desviou para 2. Em 2, subtraiu 1 do registrador a e desviou para 3. (1,(1,2)) Em 3, adicionou 1 ao valor de b e desviou para 1, (2,(1,2)) (3,(0,2)) Em 1, como a<>0, desviou para 2. Em 2, subtraiu 1 do registrador a e desviou para 3. (1,(0,3)) Em 3, adicionou 1 ao valor de b e desviou para 1, Em 1, como a=0, desviou para 9. (9,(0,3)) 35

36 Exemplo: Computação Infinita 1. faça adiciona_b vá_para 1. Porque é infinita? 36

37 Computação de um Programa Recursivo em uma Máquina A computação de um programa recursivo em uma máquina é análoga a de um monolítico. O histórico é representado na forma de uma cadeia de pares onde: Cada par reflete um estado da máquina para o programa, ou seja, a expressão de sub-rotina a ser executada e o valor corrente da memória; A cadeia reflete uma sequência de estados possíveis a partir do inicial. 37

38 Definição: Computação de um Programa Recursivo em uma Máquina Seja M = ( V, X, Y, π X, π Y, Π F, Π T ), uma máquina e P um programa recursivo para M, tal que: P é E 0 onde R 1 def E 1, R 2 def E 2,..., R n def E m. Uma computação do programa recursivo P na máquina M é uma cadeia (finita ou infinita) de pares da forma: (D 0, v 0 )(D1, v1)(d2, v2)... onde (D 0, v 0 ) é tal que D 0 = E 0 ; e v 0 é o valor inicial da máquina. 38

39 Definição: Computação de um Programa Recursivo em uma Máquina Para cada par (D k, v k ), supondo que F é um identificador de operação, T é um identificador de teste e C, C 1 e C 2 são expressões de sub-rotinas: Caso 1: D k = ; C (D k+1, v k+1 ) = (C, v k ) é par subsequente de (D k, v k ) na cadeia. Caso 2: D k = F; C (D k+1, v k+1 ) = (C, πf(v k )) é par subsequente de (D k, v k ) na cadeia. Caso 3: D k = R i ; C (D k+1, v k+1 ) = (E i ;C, v k ) é par subsequente de (D k, v k ) na cadeia. Caso 4: D k = (C1; C2); C (D k+1, v k+1 ) = (C1;(C2;C), v k ) é par subsequente de (D k, v k ) na cadeia. Caso 5: D k = E k = (Se T então C1 senão C2); C (D k+1, v k+1 ) é par subsequente de (D k, v k ) na cadeia, sendo que: V k+1 = v k D k+1 = C 1 ; C se π T (v k ) é verdadeiro D k+1 = C 2 ; C se π T (v k ) é falso 39

40 Definição: Computação de um Programa Recursivo em uma Máquina Observações: A computação pode ser finita ou infinita conforme a cadeia for finita ou infinita. A computação é determinística (por quê?) Teste ou referência a uma sub-rotina não alteram o valor da memória. Em uma computação finita, a expressão vazia ocorre no último par da cadeia e não ocorre em nenhum outro par. Em uma computação infinita, a expressão vazia não ocorre em nenhum par. 40

41 Exemplo: Computação Finita de Programa Recursivo Considere o programa a seguir: duplica é R onde R def (se zero então senão sub; R; ad; ad) Para a seguinte máquina: um_reg = (N, N, N, id N, {ad, sub},{zero}) Onde: N corresponde, simultaneamente, aos conjuntos de valores de memória, entrada e saída. Id N : é a função de entrada e de saída ad: N N é interpretação tal que, para qualquer n є N, ad(n)=n+1 sub: N N é interpretação tal que, para qualquer n є N: sub(n) = n-1, se n 0; sub(n) = 0, se n = 0. Zero: N {verdadeiro, falso} é interpretação tal que, para qualquer n є N; zero(n) = verdadeiro, se n=0; zero(n)=falso, caso contrário. 41

42 Exemplo: Computação Finita de Programa Recursivo Para o valor inicial de memória 3, a correspondente computação finita deve ser representada como: (R; ;3) ((se zero então senão (sub; R; ad; ad));, 3) ((sub;r;ad;ad);,3) (sub; (R;ad;ad);,3) ((R;ad;ad);,2) (R; (ad;ad);,2) ((se zero então senão (sub;r;ad;ad)); (ad;ad);, 2) ((sub;r;ad;ad);(ad;ad);, 2) (sub; (r;ad;ad) ; (ad;ad);,2) ((R;ad;ad);(ad;ad);,1) Valor de entrada armazenado Caso 3 Como n 0, executa senão Caso 4, composição sequencial Subtraiu 1 da memória Caso 4, composição sequencial Caso 3 Como n 0, executa senão Caso 4, composição sequencial Subtraiu 1 da memória 42

43 Exemplo: Computação Finita de Programa Recursivo (R; (ad,ad) ; (ad;ad) ;,1) Caso 4, composição sequencial ((se zero então senão (aub;r;ad;ad)); (ad;ad); (ad;ad);,1) ((sub;r;ad;ad));(ad;ad);(ad;ad);,1) (sub; (r;ad;ad);(ad;ad);(ad;ad);, 1) ((R;ad;ad);(ad;ad);(ad;ad);,0) (R; (ad;ad);(ad;ad);(ad;ad);,0) ((se zero então senão (sub;r;ad;ad;));(ad;ad); (ad;ad);(ad;ad);, 0) Caso 3 Como n 0, executa senão Caso 4, composição sequencial Subtraiu 1 da memória Caso 4, composição sequencial Caso 3 ( ; (ad;ad);(ad;ad);(ad;ad); ;0) Como n=0, executa então ((ad;ad);(ad;ad);(ad;ad);,0) Caso 1 (ad;(ad;(ad;ad);(ad;ad); ),0) ((ad;(ad;ad);(ad;ad); ),1) (ad;((ad;ad);(ad;ad);,1) (((ad;ad);(ad;ad); ),2) (ad;(ad;(ad;ad); ),2) ((ad;(ad;ad); ). 3) (ad; ((ad;ad); ), 3) (((ad;ad); ), 4) (ad;((ad); ). 4) (((ad); ), 5) (ad; ( ), 5) Caso 4, composição sequencial Adicionou 1 na memória Caso 4, composição sequencial Adicionou 1 na memória Caso 4, composição sequencial Adicionou 1 na memória Caso 4, composição sequencial Adicionou 1 na memória Caso 4, composição sequencial Adicionou 1 na memória Caso 4, composição sequencial (( ),6) Adicionou 1 na memória (, 6) Fim da recursão 43

44 Exemplo: Computação Finita de Programa Recursivo Note-se que o valor final da memória é o valor inicial duplicado. Observe-se que, usando a noção de recursão, não foi necessário utilizar duas células de memória, uma para controlar o ciclo e outra para calcular o resultado. De fato, a facilidade de recursão é usada para determinar quantas vezes a operação ad necessita ser executada. 44

45 Exercícios 1. Usando apenas os símbolos de fluxograma, representar um programa monolítico para calcular a soma dos 100 primeiros números ímpares. 2. Fazer o fluxograma do programa iterativo do exemplo dado em aula. 3. Desenhe um fluxograma que corresponde a cada um dos seguintes programas: 1. P 2 = ({r 1 : faça vá_para r 2 }, r 1 ); 2. Composição até (programa iterativo); 3. Programa sem instrução alguma; 4. Programa em loop. 4. Por que pode-se afirmar que a tradução de um programa iterativo para um monolítico é trivial? 5. Por que é possível afirmar que a computação de um programa monolítico em uma máquina, para um dado valor inicial de memória, é determinística? 6. Dê a definição forma da função computada (W,M) de um programa iterativo W em uma máquina M. 45

46 Exercícios 1. Traduza o fluxograma do programa monolítico abaixo em um programa recursivo. Início F V T1 F G V T2 F Fim Fim V T1 F F 46

47 Exercícios 1. Traduza os fluxogramas dos programas monolíticos abaixo programas recursivos. 47

Teoria da Computação. Unidade 1 Conceitos Básicos. Referência Teoria da Computação (Divério, 2000)

Teoria da Computação. Unidade 1 Conceitos Básicos. Referência Teoria da Computação (Divério, 2000) Unidade 1 Conceitos Básicos Referência (Divério, 2000) Conceitos Básicos Linguagem Conceito fundamental Forma precisa de expressar problemas Permite um desenvolvimento formal adequado ao estudo da computabilidade

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Interpreta os programas de acordo com os dados fornecidos. É capaz de interpretar um programa desde que possua

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Aula 05 Computações Prof.ª Danielle Casillo Computação Será visto como as definições de programas e máquinas caminham

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Aula 03 Programas (Monolítico e Iterativo) Prof.ª Danielle Casillo Programas, Máquinas e Computações Diferentes

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Diferentes computadores podem ter diferentes arquiteturas e os diversos tipos de linguagem de programação.

Leia mais

Teoria da Computação. Máquinas, Computações e Funções Computadas

Teoria da Computação. Máquinas, Computações e Funções Computadas Cristiano Lehrer Introdução (1/2) O objetivo de uma máquina é suprir todas as informações necessárias para que a computação de um programa possa ser descrita. Portanto, cabe à máquina suprir o significado

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Aula 04 Programa Recursivo e Máquinas Prof.ª Danielle Casillo Funções recursivas Alguma função é recursiva quando

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Aula 08 Equivalência de programas Parte 2 Prof.ª Danielle Casillo Poder computacional dos diversos tipos de programas

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Os teoremas citados na aula anterior, podem dar a falsa impressão de que o poder computacional da classe dos

Leia mais

Resolução Exe 2.12 Monolítico Recursivo

Resolução Exe 2.12 Monolítico Recursivo Resolução Exe 2.12 Monolítico Recursivo Recursivo P R é R 1 onde R 1 def (se T1 então R 2 senão R 3 ) R 2 def F; R 3 R 3 def (se T2 então R 4 senão R 7 ) R 4 def G; R 5 R 5 def (se T1 então R 7 senão R

Leia mais

Microprocessadores I ELE Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios

Microprocessadores I ELE Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios Microprocessadores I ELE 1078 Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios Grupos de Instruções do 8085 As instruções no 8085 são distribuídas em 5 grupos: 1. Grupo de transferência da

Leia mais

Teoria da Computação. Aula 01

Teoria da Computação. Aula 01 Teoria da Computação Aula 01 Celso Olivete Júnior olivete@fct.unesp.br www.fct.unesp.br/docentes/dmec/olivete/tc 1 Professor Celso Olivete Júnior Bacharelado em Ciência da Computação (Unoeste-2002) Mestrado

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo NORMA (NumberTheOreticRegisterMAchine) Possui como memória um conjunto infinito de registradores naturais e

Leia mais

Existem três categorias principais de linguagem de programação: linguagem de máquina, linguagens assembly e linguagens de alto nível.

Existem três categorias principais de linguagem de programação: linguagem de máquina, linguagens assembly e linguagens de alto nível. Aula 3 SOFTWARE (programas) Um programa (software) consiste em uma sequência de instruções escritas numa linguagem precisa chamada linguagem de programação. Estas instruções são traduzidas em um compilador,

Leia mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação CP41F Aula 2 Prof. Daniel Cavalcanti Jeronymo Conceito de algoritmo. Raciocínio lógico na construção de algoritmos. Estrutura de algoritmos. Universidade Tecnológica Federal

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Conjunto de Instruções Slide 1 Sumário Características de Instruções de Máquina Tipos de Operandos Tipos de Operações Linguagem de Montagem Slide 2 Características

Leia mais

Introdução a Programação de Jogos

Introdução a Programação de Jogos Introdução a Programação de Jogos Aula 02 Algoritmos e Ciclo de Desenvolvimento Edirlei Soares de Lima Modelo de um Computador Linguagem de Máquina Um processador executa instruções

Leia mais

EQUIVALÊNCIA DE PROGRAMAS E MÁQUINAS

EQUIVALÊNCIA DE PROGRAMAS E MÁQUINAS EQUIVALÊNCIA DE PROGRAMAS E MÁQUINAS Édson Wenning¹, Elias Lampert², Gustavo Claudy³, Pedro E. Camera 4. ¹Discente do Curso Ciência da Computação - Universidade de Cruz Alta ²Discente do Curso Ciência

Leia mais

CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO

CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO ROTEIRO 1. INTRODUÇÃO 2. LINGUAGENS IMPERATIVAS 1. CONCEITO 2. PARADIGMA IMPERATIVO 3. ORIGENS 4. MODELO COMPUTACIONAL 1. ARQUITETURA DE VON NEUMANN 2. CARACTERISTICAS

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Proposta por Alan Turing em 1936; É universalmente conhecida e aceita como formalização de algoritmo; Teoria

Leia mais

Teoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000)

Teoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000) Teoria da Computação Referência Teoria da Computação (Divério, 2000) 1 L={(0,1)*00} de forma que você pode usar uma Máquina de Turing que não altera os símbolos da fita e sempre move a direita. MT_(0,1)*00=({0,1},{q

Leia mais

Informática I. Aula 14. Aula 14-10/10/2007 1

Informática I. Aula 14.  Aula 14-10/10/2007 1 Informática I Aula 14 http://www.ic.uff.br/~bianca/informatica1/ Aula 14-10/10/2007 1 Ementa Noções Básicas de Computação (Hardware, Software e Internet) HTML e Páginas Web Internet e a Web Javascript

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Alguns Conceitos sobre Linguagens Paradigmas para linguagens de Programação

Leia mais

Compiladores. Introdução à Compiladores

Compiladores. Introdução à Compiladores Compiladores Introdução à Compiladores Cristiano Lehrer, M.Sc. Introdução (1/2) O meio mais eficaz de comunicação entre pessoas é a linguagem (língua ou idioma). Na programação de computadores, uma linguagem

Leia mais

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição 1 Comando while Deseja-se calcular o valor de: 1 + 2 + 3 +... + N. Observação: não sabemos, a priori, quantos termos

Leia mais

Lógica para programação II Seção 1 - Histórico e Introdução Primeiros Programas

Lógica para programação II Seção 1 - Histórico e Introdução Primeiros Programas Lógica para programação II Seção 1 - Histórico e Introdução Primeiros Programas Prof. Me. Hélio Esperidião Ferreira Objetivos: (Entender os principais conceitos atuais e históricos sobre o desenvolvimento

Leia mais

Introdução à Programação Aula 02. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Introdução à Programação Aula 02. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação Introdução à Programação Aula 02 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação QUAIS SÃO OS COMPONENTES BÁSICOS DO HW DE UM SISTEMA COMPUTACIONAL?

Leia mais

Máquinas Universais. Máquina de Turing. Celso Olivete Júnior.

Máquinas Universais. Máquina de Turing. Celso Olivete Júnior. Máquinas Universais Máquina de Celso Olivete Júnior olivete@fct.unesp.br http://www2.fct.unesp.br/docentes/dmec/olivete/ Roteiro Hipótese de Church - Máquinas Universais: Máquina de Máquina de : Noção

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Alguns Conceitos sobre Linguagens Conceito de Algoritmo Pseudocódigo

Leia mais

Programação Procedimental

Programação Procedimental Programação Procedimental Maria Adriana Vidigal de Lima Universidade Federal de Uberlândia - 2013 1 Escrita de Algoritmos 1.1 Técnicas de Programação e Algoritmos Na elaboração de programas maiores e complexos

Leia mais

Instruções. Maicon A. Sartin

Instruções. Maicon A. Sartin Instruções Maicon A. Sartin SUMÁRIO Introdução Instruções Formatos de instruções Conjuntos de instruções Execução de instruções Introdução a Linguagem de Montagem Introdução a Linguagem de Montagem Níveis

Leia mais

INF 1005 Programação I

INF 1005 Programação I INF 1005 Programação I Aula 02 Algoritmos e Ciclo de Desenvolvimento Edirlei Soares de Lima Modelo de um Computador Linguagem de Máquina Um processador executa instruções de máquina

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Alguns Conceitos sobre Conceito de Algoritmo Pseudocódigo Tipos de

Leia mais

Teoria da Computação. Máquinas Universais Máquina com Pilhas

Teoria da Computação. Máquinas Universais Máquina com Pilhas Máquinas Universais Máquina com Pilhas Cristiano Lehrer Introdução A Máquina com Pilhas diferencia-se das Máquinas de Turing e de Post principalmente pelo fato de possuir uma memória de entrada separada

Leia mais

Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens

Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens 1 Introdução Estudar computação do ponto de vista teórico é sinônimo de caracterizar

Leia mais

Capítulo 2: Procedimentos e algoritmos

Capítulo 2: Procedimentos e algoritmos Capítulo 2: Procedimentos e algoritmos Para estudar o processo de computação de um ponto de vista teórico, com a finalidade de caracterizar o que é ou não é computável, é necessário introduzir um modelo

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Aula 02 Algoritmos e Ciclo de Desenvolvimento Edirlei Soares de Lima Modelo de um Computador Linguagem de Máquina Um processador executa instruções de máquina.

Leia mais

Linguagens Regulares. Prof. Daniel Oliveira

Linguagens Regulares. Prof. Daniel Oliveira Linguagens Regulares Prof. Daniel Oliveira Linguagens Regulares Linguagens Regulares ou Tipo 3 Hierarquia de Chomsky Linguagens Regulares Aborda-se os seguintes formalismos: Autômatos Finitos Expressões

Leia mais

Introdução aos Algoritmos

Introdução aos Algoritmos Introdução aos Algoritmos Aula 05 Diogo Pinheiro Fernandes Pedrosa http://www2.ufersa.edu.br/portal/professor/diogopedrosa diogopedrosa@ufersa.edu.br Universidade Federal Rural do Semiárido Bacharelado

Leia mais

Estruturas de Dados. Prof.: Carlos Alberto Página da Disciplina:

Estruturas de Dados. Prof.: Carlos Alberto Página da Disciplina: Estruturas de Dados Prof.: Carlos Alberto Página da Disciplina: http://alged.webnode.com/ E-mail: carlos36_batista@yahoo.com.br Estruturas de dados Programa da disciplina Estruturas de dados - referências

Leia mais

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br

Leia mais

TÉCNICO EM MANUTENÇÃO E SUPORTE EM INFORMÁTICA FORMA SUBSEQUENTE. Professora: Isabela C. Damke

TÉCNICO EM MANUTENÇÃO E SUPORTE EM INFORMÁTICA FORMA SUBSEQUENTE. Professora: Isabela C. Damke TÉCNICO EM MANUTENÇÃO E SUPORTE EM INFORMÁTICA FORMA SUBSEQUENTE Professora: Isabela C. Damke isabeladamke@hotmail.com Linguagem de Programação Uma linguagem de programação é um conjunto de símbolos (

Leia mais

Aula teórica 7. Preparado por eng.tatiana Kovalenko

Aula teórica 7. Preparado por eng.tatiana Kovalenko Aula teórica 7 Tema 7. Introdução a Programação Ø Linguagens de Programação Ø LP Java ØEstrutura de um programa em Java ØIdentificadores, variáveis e constantes. ØTipos de dados básicos Preparado por eng.tatiana

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Diferencia-se das máquinas de Turing e Post principalmente pelo fato de possuir a memória de entrada separada

Leia mais

Introdução aos Algoritmos

Introdução aos Algoritmos Introdução aos Algoritmos Aula 05 Diogo Pinheiro Fernandes Pedrosa http://www2.ufersa.edu.br/portal/professor/diogopedrosa diogopedrosa@ufersa.edu.br Universidade Federal Rural do Semiárido Bacharelado

Leia mais

Noções de algoritmos - Aula 1

Noções de algoritmos - Aula 1 Noções de algoritmos - Aula 1 Departamento de Física UFPel Definição de algoritmo Sequência ordenada e finita de operações para a realização de uma tarefa. Tarefa: Experimento de Física I. Passo 1: Reunir

Leia mais

Recursividade, Tentativa e Erro

Recursividade, Tentativa e Erro Recursividade, Tentativa e Erro Túlio Toffolo www.toffolo.com.br Marco Antônio Carvalho marco.opt@gmail.com BCC402 Aula 07 Algoritmos e Programação Avançada Na aula anterior Prova 2 Na aula de hoje Técnicas

Leia mais

Este conceito é bastante simples e será útil e conveniente nos itens seguintes, na definição das estruturas básicas de controle de execução.

Este conceito é bastante simples e será útil e conveniente nos itens seguintes, na definição das estruturas básicas de controle de execução. Capítulo 7 Controle de Fluxo de Execução Até o momento os algoritmos estudados utilizam apenas instruções primitivas de atribuição, e de entrada e saída de dados. Qualquer conjunto de dados fornecido a

Leia mais

Aula 05: - Recursão (parte 1)

Aula 05: - Recursão (parte 1) MCTA028 Programação Estruturada Aula 05: - Recursão (parte 1) Prof. João Henrique Kleinschmidt Material elaborado pelo prof. Jesús P. Mena-Chalco 3Q-20108 Recursão: Se você ainda não entendeu; Ver: "Recursão".

Leia mais

Programação Estruturada Aula - Introdução a Linguagem de Programação

Programação Estruturada Aula - Introdução a Linguagem de Programação Programação Estruturada Aula - Introdução a Linguagem de Programação Prof. Flávio Barros flavioifma@gmail.com www.flaviobarros.com.br ORGANIZAÇÃO BÁSICA DE UM COMPUTADOR 2 ORGANIZAÇÃO BÁSICA DE UM COMPUTADOR

Leia mais

SSC510 Arquitetura de Computadores 1ª AULA

SSC510 Arquitetura de Computadores 1ª AULA SSC510 Arquitetura de Computadores 1ª AULA REVISÃO DE ORGANIZAÇÃO DE COMPUTADORES Arquitetura X Organização Arquitetura - Atributos de um Sistema Computacional como visto pelo programador, isto é a estrutura

Leia mais

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA : INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO ASSUNTO: ALGORITMOS

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA : INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO ASSUNTO: ALGORITMOS CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA : INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO ASSUNTO: ALGORITMOS PROFESSOR : Romilson Lopes Sampaio Introdução a Lógica de Programação

Leia mais

Introdução a Lógica de Programação

Introdução a Lógica de Programação Introdução a Lógica de Programação O processo de programação é uma conversa controlada entre um ser humano (tecnicamente preparado) e um computador Linguagem Linguagem de baixo nível Grande dificuldade,

Leia mais

Programação de Computadores III

Programação de Computadores III Programação de Computadores III Pseudocódigo e Estruturas Básicas de Controle Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.1/tcc-00.157

Leia mais

INF A: Introdução à programação

INF A: Introdução à programação INF1025.33A: Introdução à programação Aula 0: Aula inaugural Guilherme F. Lima Dep. Informática, PUC-Rio 2017.2 Sumário 1. Apresentação da disciplina 2. Algoritmos e computadores 3. HIP: Um computador

Leia mais

Fluxogramas. Vanessa Braganholo

Fluxogramas. Vanessa Braganholo Fluxogramas Vanessa Braganholo vanessa@ic.uff.br Antes de vermos Fluxogramas...... vamos conhecer um pouco sobre a evolução das linguagens de programação 2 Paradigmas de Programação Definem regras básicas

Leia mais

Programação de Computadores I Funções de Repetição da Linguagem C PROFESSORA CINTIA CAETANO

Programação de Computadores I Funções de Repetição da Linguagem C PROFESSORA CINTIA CAETANO Programação de Computadores I Funções de Repetição da Linguagem C PROFESSORA CINTIA CAETANO Comando WHILE O comando while executa um bloco de comandos enquanto a condição testada for verdadeira (diferente

Leia mais

Programação de Computadores:

Programação de Computadores: Instituto de C Programação de Computadores: Pseudocódigo e Estruturas Básicas de Controle Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Roteiro

Leia mais

Fluxogramas. Leonardo Gresta Paulino Murta.

Fluxogramas. Leonardo Gresta Paulino Murta. Fluxogramas Leonardo Gresta Paulino Murta leomurta@ic.uff.br Antes de vermos Fluxogramas......vamos conhecer um pouco sobre a evolução das linguagens de programação Leonardo Murta Fluxogramas 2 Paradigmas

Leia mais

Prof. Leonardo Augusto Casillo

Prof. Leonardo Augusto Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Aula 2 Estrutura de um processador Prof. Leonardo Augusto Casillo Arquitetura de Von Neumann: Conceito de programa armazenado; Dados

Leia mais

CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP)

CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP) CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP) 1 LINGUAGENS Constituída de seqüência de zeros (0) e uns (1) Cada instrução em ASSEMBLY constitui-se em um mnemônico (uma forma fácil de se lembra) de uma

Leia mais

SEBENTA INTRODUÇÃO Á ALGORITMIA

SEBENTA INTRODUÇÃO Á ALGORITMIA SEBENTA INTRODUÇÃO Á ALGORITMIA O desenvolvimento de programas para computador está sempre baseado na tarefa de programar um computador para seja resolvido um problema ou executada uma função e assim dar

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Conceitos básicos de algoritmos Prof. Renato Pimentel. Computação

Universidade Federal de Uberlândia Faculdade de Computação. Conceitos básicos de algoritmos Prof. Renato Pimentel. Computação Universidade Federal de Uberlândia Faculdade de Computação Conceitos básicos de algoritmos Prof. Renato Pimentel 1 Computação Dados Informações vindas de usuários ou de outras máquinas; Processamento transformação

Leia mais

Instituto Federal de Educação, Ciência e Tecnologia do RN Câmpus Currais Novos. LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I

Instituto Federal de Educação, Ciência e Tecnologia do RN Câmpus Currais Novos. LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I Prof. Bruno E. G. Gomes Uma variável em um algoritmo pode ser vista como uma gaveta. A declaração de uma variável reserva uma gaveta (posição) de um certo

Leia mais

Programação I Estruturas de Repetição

Programação I Estruturas de Repetição Programação I Estruturas de Repetição Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br Expressões compactas Frequentemente existe a necessidade de escrever expressões da forma:

Leia mais

Sistema Computacional

Sistema Computacional Algoritmos e Lógica de Programação Conceitos Básicos Abstração Reinaldo Gomes reinaldo@cefet-al.br O que é um? Integração de componentes atuando como uma entidade, com o propósito de processar dados, i.e.

Leia mais

III.2 - Princípios de Arquitetura

III.2 - Princípios de Arquitetura Conjunto de Instruções e Modo de Endereçamento Ciclo de busca decodificação execução de instruções Programação de um processador Arquitetura de Von Neumann e Componentes Arquiteturas 4, 3, 2, 1 e 0 Tabela

Leia mais

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 03: FUNCIONAMENTO DE UM COMPUTADOR Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação O QUE É UM COMPUTADOR?

Leia mais

BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1

BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1 BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1 Na aula anterior Prova 2 Na aula de hoje Técnicas básicas de contagem; Tentativa e Erro; Recursividade.

Leia mais

Apêndice A. Pseudo-Linguagem

Apêndice A. Pseudo-Linguagem Apêndice A. Pseudo-Linguagem Apostila de Programação I A.1 Considerações Preliminares Os computadores convencionais se baseiam no conceito de uma memória principal que consiste de células elementares,

Leia mais

Programação I Apresentação

Programação I Apresentação Programação I Apresentação Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br Referências JUNIOR, D. P.; NAKAMITI, G. S.; ENGELBRECHT, A. de M. E.; BIANCHI, F. Algoritmos e Programação

Leia mais

Aula 3: Algoritmos: Formalização e Construção

Aula 3: Algoritmos: Formalização e Construção Aula 3: Algoritmos: Formalização e Construção Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Algoritmos: Formalização e Pseudo-Código Programação de

Leia mais

1. Uma linguagem de uma máquina de Turing

1. Uma linguagem de uma máquina de Turing Linguagem de uma Máquina de Turing 1. Uma linguagem de uma máquina de Turing, é. 2. Linguagens aceitas por uma MT são chamdas recursivamente enumeráveis. O recursivo nesta caso significa decidível, ou

Leia mais

Aula 05: - Recursão (parte 1)

Aula 05: - Recursão (parte 1) MCTA028 Programação Estruturada Aula 05: - Recursão (parte 1) Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 3Q-20107 1 Recursão: Se você ainda não entendeu; Ver: "Recursão". Efeito Droste Anuncio

Leia mais

Estruturas de Repetição

Estruturas de Repetição Algoritmos e Estruturas de Dados I (DCC/003) Estruturas de Repetição Aula Tópico 4 (while, for) 1 Problema 10 Suponha que soma (+) e subtração (-) são as únicas operações disponíveis em C. Dados dois números

Leia mais

Aula 5 Controle do Fluxo de Execução

Aula 5 Controle do Fluxo de Execução Aula 5 Controle do Fluxo de Execução 1. Introdução Muitas vezes precisamos executar ações diferentes em função dos dados de entrada. Até o momento só trabalhamos com um único fluxo de execução, veremos

Leia mais

Engenharia Civil. Introdução à Programação

Engenharia Civil. Introdução à Programação Engenharia Civil Introdução à Programação Como se faz um algoritmo computacional? Exemplo Exemplo Será que o algoritmo vai funcionar? Questões: Área de uma circunferência programa area AREA, RAIO: real

Leia mais

Introdução ao Fortran 90-5

Introdução ao Fortran 90-5 Introdução ao Fortran 90-5 Departamento de Física UFPel Definição A estrutura de repetição DO fornece um mecanismo para controle de desvio de fluxo, que permite que um bloco de comandos seja executado

Leia mais

CONJUNTO DE INSTRUÇÕES

CONJUNTO DE INSTRUÇÕES CONJUNTO DE INSTRUÇÕES 1 CARACTERÍSTICAS DE INSTRUÇÕES DE MÁQUINA Quando um programador usa uma linguagem de alto-nível, como C, muito pouco da arquitetura da máquina é visível. O usuário que deseja programar

Leia mais

CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP)

CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP) CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP) 1 LINGUAGENS Conhecida pelo PROCESSADOR Conhecida pelo Usuário COMPILADOR LINGUAGEM DE ALTO NÍVEL LINGUAGEM ASSEMBLY 2 INSTRUÇÕES EM ASSEMBLY Para programar

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação Paradigma Imperativo Matheus Hafner Tiago Xavier CET 087 - Conceitos de Linguagens de Programação (CLP) 10 de novembro de 2011 Sumário 1 Introdução 2 Paradigma imperativo Modelo

Leia mais

Introdução ao Fortran 90-3

Introdução ao Fortran 90-3 Introdução ao Fortran 90-3 Departamento de Física UFPel Controles de Fluxo de Execução Definição Estruturas (ou blocos) de programação que permitem controlar o fluxo de execução de um programa, além da

Leia mais

Algoritmos e Técnicas de Programação

Algoritmos e Técnicas de Programação Algoritmos e Técnicas de Programação Estrutura, Visualg e Variáveis filipe.raulino@ifrn.edu.br Programação Estruturada A programação estruturada (Top-Down) estabelece uma disciplina de desenvolvimento

Leia mais

LINGUAGEM C: COMANDOS DE REPETIÇÃO

LINGUAGEM C: COMANDOS DE REPETIÇÃO LINGUAGEM C: COMANDOS DE REPETIÇÃO Prof. André Backes ESTRUTURAS DE REPETIÇÃO Uma estrutura de repetição permite que uma sequência de comandos seja executada repetidamente, enquanto determinadas condições

Leia mais

Introdução a Computação

Introdução a Computação Edirlei Soares de Lima Introdução a Computação Aula 02 Lógica de Programação Lógica de Programação Lógica de Programação é a técnica de criar sequências lógicas de ações para atingir

Leia mais

MAC2166 Introdução à Computação Aula 1 Como Funciona um Computador

MAC2166 Introdução à Computação Aula 1 Como Funciona um Computador MAC2166 Introdução à Computação Aula 1 Como Funciona um Computador Kelly Rosa Braghetto DCC IME USP 25 de março de 2014 MAC2166 Introdução à Computação Aula 1 Como Funciona um Computador DCC IME USP 1

Leia mais

2. A influência do tamanho da palavra

2. A influência do tamanho da palavra 1. Introdução O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento (os cálculos matemáticos etc.) e de controle, durante a execução de

Leia mais

Técnicas de projeto de algoritmos: Indução

Técnicas de projeto de algoritmos: Indução Técnicas de projeto de algoritmos: Indução ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo dbeder@usp.br 08/2008

Leia mais

2. A influência do tamanho da palavra

2. A influência do tamanho da palavra PROCESSAMENTO 1. Introdução O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento (os cálculos matemáticos etc.) e de controle, durante

Leia mais

# Estrutura de Dados # Aula 08 Recursão (conceito, utilização, exemplos) Prof. Leinylson Fontinele Pereira

# Estrutura de Dados # Aula 08 Recursão (conceito, utilização, exemplos) Prof. Leinylson Fontinele Pereira # Estrutura de Dados # Aula 08 Recursão (conceito, utilização, exemplos) Prof. Leinylson Fontinele Pereira Na aula anterior... Alocação Dinâmica de Memória Introdução 3 O que vamos aprender? Recursividade

Leia mais

PROGRAMAÇÃO I. Introdução

PROGRAMAÇÃO I. Introdução PROGRAMAÇÃO I Introdução Introdução 2 Princípios da Solução de Problemas Problema 1 Fase de Resolução do Problema Solução na forma de Algoritmo Solução como um programa de computador 2 Fase de Implementação

Leia mais

Linguagens Livres de Contexto

Linguagens Livres de Contexto Universidade Católica de Pelotas Centro Politécnico Bacharelado em Ciência da Computação 364018 Linguagens Formais e Autômatos TEXTO 4 Linguagens Livres de Contexto Prof. Luiz A M Palazzo Maio de 2011

Leia mais

Microcontrolador Assembly UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

Microcontrolador Assembly UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk Assembly 8051 Num sistema microprocessado, geralmente, não existe um sistema operacional; O programa desenvolvido pelo programador deve cuidar tanto da lógica do programa, bem como da configuração e acesso

Leia mais

- Aula 01, 02, 03 e 04 Apresentação da disciplina.

- Aula 01, 02, 03 e 04 Apresentação da disciplina. 1 - Aula 01, 02, 03 e 04 Apresentação da disciplina. Disciplina: Algoritmos (Disciplina é pré-requisito para outras disciplinas). Plano de Ensino: Estrutura Sequencial, Estrutura de Decisão (Desvio Condicional

Leia mais

Notas de Aula Guilherme Sipahi Arquitetura de Computadores

Notas de Aula Guilherme Sipahi Arquitetura de Computadores Notas de Aula Guilherme Sipahi Arquitetura de Computadores Endereçamento O Campo de endereço em uma instrução é pequeno. Para referenciar uma faixa de endereços maior na memória principal, ou em alguns

Leia mais

Programação de Computadores III

Programação de Computadores III Programação de Computadores III Pseudocódigo e Estruturas Básicas de Controle Professor Hugo de Oliveira Barbalho hbarbalho@ic.uff.br Material produzido pelo professor: Leandro Augusto Frata Fernandes

Leia mais

MC102 Aula 26. Instituto de Computação Unicamp. 17 de Novembro de 2016

MC102 Aula 26. Instituto de Computação Unicamp. 17 de Novembro de 2016 MC102 Aula 26 Recursão Instituto de Computação Unicamp 17 de Novembro de 2016 Roteiro 1 Recursão Indução 2 Recursão 3 Fatorial 4 O que acontece na memória 5 Recursão Iteração 6 Soma em um Vetor 7 Números

Leia mais

Prof. A. G. Silva. 25 de setembro de Prof. A. G. Silva INE5603 Introdução à POO 25 de setembro de / 35

Prof. A. G. Silva. 25 de setembro de Prof. A. G. Silva INE5603 Introdução à POO 25 de setembro de / 35 INE5603 Introdução à POO Prof. A. G. Silva 25 de setembro de 2017 Prof. A. G. Silva INE5603 Introdução à POO 25 de setembro de 2017 1 / 35 Baseado em materiais da Recursividade Unisinos, Cesar Tacla (UTFPR),

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.4. Estruturas de Controle 3.4.1. Comandos

Leia mais