Recursividade. Aula 9
|
|
- Baltazar Nobre Sá
- 8 Há anos
- Visualizações:
Transcrição
1 Recursividade Aula 9
2 Em matemática vários objetos são definidos apresentando-se um processo que os produz. Ex PI (circunferência/diâmetro) Outra definição de um objeto por um processo é o fatorial de um número
3 Fatorial(n) ou n! = n*(n-1)*(n-2)...(2)*1 se n >0 =1 se n==0 Se formulamos: 0! = 0 1! = 1 2! = 2 * 1 3! = 3 * 2 * 1 4! = 4 * 3 * 2 * 1 Não é possível listar a fórmula para fatorial de cada inteiro
4 Para evitar qualquer abreviatura e um cjto infinito de definições poderemos apresentar um algoritmo que aceite um número inteiro n e retorne n! prod = 1; for (x = n; x > 0; x--) prod *= x; return prod; ALGORITMO ITERATIVO: Requer de repetição explícita até uma condição ser satisfeita.
5 Um algoritmo pode ser considerado Um programa ideal sem quaisquer limitações práticas de um computador real e portanto pode ser usado para definir uma função matemática, entretanto uma função de C não serve como definição matemática da função fatorial por causa de limitações como precisão e tamanho finito de uma máquina real.
6 Examinemos detalhadamente a definição de n! que lista uma fórmula separada para cada valor de n Ex 4! = 4 * 3 * 2 * 1 isso é igual a 4 * 3! Para todo n>0 verificamos que n! = n* (n-1)! Podemos definir: 0! = 1 1! = 1 * 0! 2! = 2 * 1! 3! = 3 * 2! 4! = 4 * 3! 5! = 5 * 4!
7 Se empregamos uma notação matemática temos que n! = 1 se n == 0 n! = n * (n - 1)! se n >0 Definição de uma função em termos de se mesma, aparentemente circular. Método conciso de escrever um número infinito de equações necessárias para definir n! Definição RECURSIVA
8 A recursividade pode ser utilizada quando um problema puder ser definido em termos de si próprio. Por exemplo, quando um objeto é colocado entre dois espelhos planos paralelos e frente a frente surge uma imagem recursiva, porque a imagem do objeto refletida num espelho passa a ser o objeto a ser refletido no outro espelho e, assim, sucessivamente. Uma função recursiva chama ela mesma, mas com outros parâmetros.
9 Algoritmos Recursivos A idéia básica de um algoritmo recursivo consiste em diminuir sucessivamente o problema em um problema menor ou mais simples, até que o tamanho ou a simplicidade do problema reduzido permita resolvê-lo de forma direta, sem recorrer a si mesmo. Quando isso ocorre, diz que o algoritmo atingiu uma condição de parada, a qual deve estar presente em pelo menos um local dentro algoritmo. Sem esta condição o algoritmo não pára de chamar a si mesmo, até estourar a capacidade da pilha de execução, o que geralmente causa efeitos colaterais e até mesmo o término indesejável do programa.
10 Componentes de um algoritmo recursivo Condição de parada, quando a parte do problema pode ser resolvida diretamente, sem chamar de novo a função recursiva. Outros comandos que resolvem uma parte do problema (chamando novamente a função recursiva);
11 Algoritmos Recursivos f1(..) chama f1(..) fim f1(..) chama f1(..) f1(..) condição de parada!
12 1. 5! = 5 * 4! 2. 4! = 4 * 3! 3. 3! = 3 * 2! 4. 2! = 2 * 1! 5. 1! = 1 * 0! 6. 0! = 1 Cada caso é reduzido a um caso mais simples até chegarmos ao caso 0! Que é definido imediatamente como 1
13 Se voltarmos 6 0! = 1 5 1! = 1 * 0! = 1 * 1 = 1 4 2! = 2 * 1! = 2 * 1 = 2 3 3! = 3 * 2! = 3 * 2 = 6 2 4! = 4 * 3! = 4 * 6 = ! = 5 * 4! = 5 * 24 = 120
14 Se levamos esse processo a um algoritmos teremos if (n == 0) fact = 1; else { x = n -1; ache o valor de x!. Chame-o de y; fact = n * y;} Definição recursiva do processo do cálculo do fatorial
15 int main(void) { int NUMERO, RESULTADO; scanf("%d", &NUMERO); RESULTADO = FAT(NUMERO); printf("%d\n", RESULTADO); } int FAT(int N) { int AUX; if(n == 0) // condição de parada return 1; AUX = N * FAT(N - 1); return AUX; } LEMBRE-SE!! N é variável local da função FAT. É melhor a definição recursiva de fatorial?
16 Programa principal: main NUMERO = 2 RESULTADO = FAT(2) Função FAT: PRIMEIRA CHAMADA N = 2 AUX = 2 * FAT(1) 1
17 Função FAT: PRIMEIRA CHAMADA Função FAT: SEGUNDA CHAMADA N = 2 AUX = 2 * FAT(1) N = 1 AUX = 1 * FAT(0) 1 2
18 Função FAT: SEGUNDA CHAMADA Função FAT: TERCEIRA CHAMADA N = 1 AUX = 1 * FAT(0) N = 0 condição de parada atingida!!! if (N = = 0) return 1; 2 3
19 Função FAT: SEGUNDA CHAMADA Função FAT: TERCEIRA CHAMADA N = 1 AUX = 1 * FAT(0) AUX = 1 1 N = 0 condição de parada atingida!!! if (N = = 0) return 1; 2 3
20 Função FAT: PRIMEIRA CHAMADA Função FAT: SEGUNDA CHAMADA N = 2 AUX = 2 * FAT(1) 1 N = 1 AUX = 1 * FAT(0) 1 AUX = 2 AUX = 1 1 2
21 Programa principal: main Função FAT: PRIMEIRA CHAMADA NUMERO = 2 RESULTADO = FAT(2) 2 N = 2 AUX = 2 * FAT(1) 2 RESULTADO = 2 AUX = 2 1
22 Problemas associados a recursividade Recursões que não terminam!!! Um requisito fundamental é que a chamada recursiva esteja sujeita à uma condição booleana que em um determinado momento irá se tornar falsa e não mais ativará a recursão (condição de parada!). Um subprograma recursivo deve ter obrigatoriamente uma condição que controla sua execução ou término, sob pena de produzir uma computação interminável.
23 Multiplicação de números naturais Outro exemplo de definição recursiva O produto A*B em que a e b são inteiros positivos pode ser definido como A somado a se mesmo b vezes. Essa definição é ITERATIVA Definição recursiva a * b = a se b == 1 a * b = a * (b - 1) + a se b > 1
24 Exemplo: 6 * 3 = 6 * = 6 * = = 18 Exercício: Converter num algoritmo recursivo. Observe padrão de definições recursivas (caso simples e avaliação de casos mais simples) Por que não podemos usar definições como?? n! = (n + 1)! / (n + 1) a * b = a * (b + 1) - a
25 A seqüência de Fibonacci Seqüência de inteiros do tipo 0, 1, 2, 2, 3, 5, 8, 13, 21, 34 Cada elemento da seqüência é a soma dos dois elementos anteriores. Se permitimos que fib(0) = 0 e fib(1) = 1 fib(n) = n se n == 0 ou n == 1 fib(n) = fib(n-2) + fib(n-1) se n >= 2 Que diferencia a definição da seqüência de Fibonacci da do fatorial e da multiplicação dos números naturais??
26 A seqüência de Fibonacci Note que: fib(6) = fib(5) + fib(4) = fib(4) + fib(3) + fib(3) + fib(2) = fib(3) + fib(2) + fib(3) + fib(3) + fib(2) E assim por diante. Que tem de errado?????? Seria mais eficiente lembrar quanto é fib(3) na primeira vez que ele for chamado
27 Solução iterativa: if (n <= 1) return(n); lofib = 0; hifib = 1; for (i = 2; i <= n; i++) { x = lofib; lofib = hifib; hifib = x + lofib; } return hifib;
28 Solução recursiva
29 FIB(5)
30 FIB(5) FIB(4) FIB(3)
31 FIB(5) FIB(4) FIB(3) FIB(3) FIB(2)
32 FIB(5) FIB(4) FIB(3) FIB(3) FIB(2) FIB(2) FIB(1)
33 FIB(5) FIB(4) FIB(3) FIB(3) FIB(2) FIB(2) FIB(1) FIB(2) FIB(1)
34 FIB(5) FIB(4) FIB(3) FIB(3) FIB(2) FIB(2) FIB(1) 1 FIB(1)
35 FIB(5) FIB(4) FIB(3) FIB(3) FIB(2) FIB(2) FIB(1) 1 1
36 FIB(5) FIB(4) FIB(3) 2 FIB(2) FIB(2) FIB(1) 1 1
37 FIB(5) FIB(4) FIB(3) 2 1 FIB(2) FIB(1) 1 1
38 FIB(5) FIB(4) FIB(3) FIB(1) 1 1
39 FIB(5) FIB(4) FIB(3)
40 FIB(5) 3 FIB(3)
41 FIB(5)
42 Resposta: O 5º termo da série é
43 Torres de Hanoi Problema criado pelo matemático francês Edouard Lucas, em 1883; 3 torres; x discos de vários tamanhos na primeira torre; Objetivo: transportar os discos, 1 a 1, para a terceira torre; Regras: nunca colocar um disco maior sobre um disco menor; pode-se mover um único disco por vez; nunca colocar um disco noutro lugar que não numa das três hastes.
44 Torres de Hanoi
45 Torres de Hanoi Lucas também criou uma lenda que dizia que em Benares, durante o reinado do imperador Fo Hi, existia um templo que marcaria o centro do universo. Dentro deste templo, alguns monges moviam discos de ouro entre 3 torres de diamante. Deus colocou 64 discos de ouro em uma das torres na hora da criação do universo. Diz-se que, quando os monges completarem a tarefa de transportar todos os discos para a terceira torre, o universo terminará. (como vai levar pelo menos movimentos para completar a tarefa, estamos a salvo por enquanto. Assumindo que os monges realizem 1 movimento por segundo, e não cometam erros, eles irão levar um total de 585,000,000,000 anos.)
46 Como resolver? Sejam 4 discos na torre 1. Problema principal: Mover 4 discos da torre 1 para a torre 3.
47 Recursão! Mover 4 discos da torre 1 para a torre 3: mover 3 discos da torre 1 para a torre 2; mover 1 disco da torre 1 para a torre 3; mover 3 discos da torre 2 para a torre 3.
48 Recursão! Mover 4 discos da torre 1 para a torre 3: mover 3 discos da torre 1 para a torre 2; mover 1 disco da torre 1 para a torre 3; mover 3 discos da torre 2 para a torre 3.
49 Recursão! Mover 4 discos da torre 1 para a torre 3: mover 3 discos da torre 1 para a torre 2; mover 1 disco da torre 1 para a torre 3; mover 3 discos da torre 2 para a torre 3.
50 Recursão! Mover 4 discos da torre 1 para a torre 3: mover 3 discos da torre 1 para a torre 2; mover 1 disco da torre 1 para a torre 3; mover 3 discos da torre 2 para a torre 3.
51 Divisão do problema Logo o problema principal: Mover 4 discos da torre 1 para a torre 3 Se transforma em um problema menor: mover 3 discos da torre 1 para a torre 2; mover 1 disco da torre 1 para a torre 3; mover 3 discos da torre 2 para a torre 3. Mas, como mover 3 discos?
52 Divisão do problema Mover 3 discos da torre 1 para a torre 2: mover 2 discos da torre 1 para a torre 3; mover 1 disco da torre 1 para a torre 2; mover 2 discos da torre 3 para a torre 2.
53 Divisão do problema Mover 3 discos da torre 1 para a torre 2: mover 2 discos da torre 1 para a torre 3; mover 1 disco da torre 1 para a torre 2; mover 2 discos da torre 3 para a torre 2.
54 Divisão do problema Mover 3 discos da torre 1 para a torre 2: mover 2 discos da torre 1 para a torre 3; mover 1 disco da torre 1 para a torre 2; mover 2 discos da torre 3 para a torre 2.
55 Divisão do problema Mover 3 discos da torre 1 para a torre 2: mover 2 discos da torre 1 para a torre 3; mover 1 disco da torre 1 para a torre 2; mover 2 discos da torre 3 para a torre 2.
56 Algoritmo Mover x discos, da torre a para a torre b: mover (x-1) discos, da torre a para a torre c mover 1 disco da torre a para a torre b mover (x-1) discos, da torre c para a torre b Função de parada: Se o número de discos = 1, move direto.
57 Observações Sejam 3 torres, com os números 1, 2 e 3. Dadas 2 torres, como descobrir qual a terceira? Isto é, dadas as torres 1 e 3, como descobrir que a outra torre é a 2? Dadas as torres 2 e 3, como descobrir que a outra torre é a 1?
58 Observação Note: = 6 Logo: A outra torre é 6 - (soma das torres indicadas) Exemplos: torres 1 e 2 Outra torre: 6 - (1 + 2) = 6-3 = 3 torres 2 e 3 Outra torre: 6 - (2 + 3) = 6-5 = 1
59 Solução void HANOI(int ND, int DE, int PARA) { int OUTRA_TORRE = 6 - (DE + PARA); if(nd == 1) { printf("mover disco da torre %d para a torre %d.\n", DE, PARA); return; } } HANOI(ND-1, DE, OUTRA_TORRE); HANOI(1, DE, PARA); HANOI(ND-1, OUTRA_TORRE, PARA); return;
60 Solução Digite o numero de discos: 4 Mover disco da torre 1 para a torre 2. Mover disco da torre 1 para a torre 3. Mover disco da torre 2 para a torre 3. Mover disco da torre 1 para a torre 2. Mover disco da torre 3 para a torre 1. Mover disco da torre 3 para a torre 2. Mover disco da torre 1 para a torre 2. Mover disco da torre 1 para a torre 3. Mover disco da torre 2 para a torre 3. Mover disco da torre 2 para a torre 1. Mover disco da torre 3 para a torre 1. Mover disco da torre 2 para a torre 3. Mover disco da torre 1 para a torre 2. Mover disco da torre 1 para a torre 3. Mover disco da torre 2 para a torre 3. Pressione qualquer tecla para continuar...
61 Mover disco da torre 1 para a torre 2.
62 Mover disco da torre 1 para a torre 3.
63 Mover disco da torre 2 para a torre 3.
64 Mover disco da torre 1 para a torre 2.
65 Mover disco da torre 3 para a torre 1.
66 Mover disco da torre 3 para a torre 2.
67 Mover disco da torre 1 para a torre 2.
68 Mover disco da torre 1 para a torre 3.
69 Mover disco da torre 2 para a torre 3.
70 Mover disco da torre 2 para a torre 1.
71 Mover disco da torre 3 para a torre 1.
72 Mover disco da torre 2 para a torre 3.
73 Mover disco da torre 1 para a torre 2.
74 Mover disco da torre 1 para a torre 3.
75 Existem linguagens de programação que não suportam recursividade como FORTAM, COBOL e muitos linguagens de máquina Porem soluções recursivas podem ser simuladas se entendermos o conceito e funcionamento da recursividade Não é raro que um programador consiga enunciar uma solução recursiva para um problema, as vezes a solução recursiva é a mais natural e simples porem as soluções recursivas são com freqüência mais dispendiosas que a solução não recursiva.
76 Em geral uma solução não recursiva de um programa executará com mais eficiência em termos de espaço e tempo, isso acontece porque a solução não recursiva evita o trabalho extra de entrar e sair de um bloco e o empilhamento de desnecessário de variáveis Contudo verificaremos que a solução recursiva é as vezes o método mais natural e lógico de desenvolver como é o caso das torres de Hanoi e menos propenso a erros Conflito EFICIENCIA DA MAQUINA X EFICIENCIA DO PROGRAMADOR Nestes casos versões simuladas dos casos recursivos é uma excelente solução
77 Que acontece quando uma função é chamada?? 1. Passar argumentos: Para um parâmetro em C uma copia é criada localmente dentro da função e quaisquer mudança e feita nessa copia local. O original não é alterado 2. Alocar e inicializar variáveis locais: Depois que os argumentos forem passados as variáveis locais da função serão alocadas. As diretamente declaradas na função e as temporais 3. Transferir o controle para a função: Deve ser passado o endereço de retorno como parâmetro
78 Quando retorna que acontece? 1. O endereço de retorno é recuperado e armazenado num logar seguro 2. A área de dados da função é liberada 3. Usa-se um desvio para o endereço de retorno salvo anteriormente, deve também salvar se os valores de retorno para que o chamador possa recuperar esse valor.
79 Programa principal Chamada de b Procedimento b Endereço de retorno Chamada de c Procedimento c Endereço de retorno Chamada de d Procedimento d Endereço de retorno Programa principal Chamada de b Procedimento b Endereço de retorno Chamada de c Procedimento c Endereço de retorno Chamada de d controle controle
80 Observe que a seqüência de endereços de retorno forma uma pilha isto é o mais recente endereço de retorno a ser incluído na cadeia é o primeiro a ser removido. Em qualquer ponto só poderemos acessar o endereço de retorno a partir da função atualmente em execução que representa o topo da pilha. Quando uma pilha é esvaziada (isto é quando a função retornar) será revelado um novo topo dentro da rotina de chamadas. Chamar uma função tem o efeito de incluir um elemento numa pilha e retornar da função de eliminá-lo
81 Cada vez que uma função recursiva chama a si mesma uma área de dados totalmente nova para essa chamada precisa ser alocada. Essa área contem todos os parâmetros variáveis locais temporárias e endereços de retorno. Todo retorno acareia a liberação da atual área de dados. Sugere-se o uso de uma pilha
82 Poderemos usar uma estrutura do tipo #define MAXSTACK 50; struct stack{ int top; struct dataarea item[maxstack] }
83 Passos da conversão Desenvolver caso recursivo Desenvolver simulação com todas as pilhas e temporários Eliminar todas as pilhas e variáveis supérfluas Quando uma pilha não pode ser eliminada da versão não recursiva e quando a versão recursiva não contem nenhum dos parâmetros adicionais o variáveis locais, a versão recursiva pode ser tão o mais veloz que a não recursiva sob um compilador eficiente. Exemplo Torres de Hanoi
84 O fatorial que não precisa pilha na implementação não recursiva e a geração de números de fibonacci onde temos uma chamada desnecessária e também não precisa de pilha a solução recursiva deve ser evitada na pratica Até onde uma solução recursiva pode ser transformada em direta dependerá do problema e a engenhosidade do programador
85 Simulação de Recursividade struct stack { int top; struct dataarea item[maxstack]; }; void popsub(struct stack *s, struct dataarea *a){ *a = s->item[s->top]; s->top--; } void push(struct stack *s, struct dataarea *a){ s->top++; s->item[s->top] = *a; }
86 Simulação de Recursividade int fact(int n){ int x, y; if (n==0) return(1); x = n-1; y = fact(x); return (n * y); } Ponto 1 para retornar (labe2 y = result;) Ponto 2 para retornar (label1: return(result);)
87 Simulação de Recursividade struct dataarea{ int param; int x; //parametro simulado (n) //variaveis atuais da chamada long int y; short int retaddr; //endereço de retorno (1 ou 2) }; switch(i){ case 1: goto label1; //retorno ao prg principal case 2: goto label2; //simulando à atribuição do valor //retornado à variavel y na execução //anterior de fact }
88 Simulação de Recursividade //retorno a partir de fact result = valor a ser retornado; i = currarea.retaddr; popsub(&s, &currarea); switch(i){ case 1: goto label1; case 2: goto label2; }
89 Simulação de Recursividade //chamada introduz a atual área na pilha //atualiza os valores dos parâmetros e //transfere o controle para o inicio da rotina push(&s, &currarea); currarea.param = currarea.x; currarea.retaddr = 2; goto start;
90 long int simfact(int n){ struct dataarea currarea; struct stack s; short i; long int result; s.top = -1; currarea.param = 0; currarea.x = 0; currarea.y = 0; currarea.retaddr = 0; push (&s, &currarea); currarea.param = n; currarea.retaddr = 1; start: if (currarea.param ==0){ result = 1; i = currarea.retaddr; popsub(&s, &currarea); switch(i){ case 1: goto label1; case 2: goto label2; } } currarea.x = currarea.param -1; push(&s, &currarea); currarea.param = currarea.x; currarea.retaddr = 2; goto start; label2: currarea.y = result; result = currarea.param*currarea.y; i = currarea.retaddr; popsub(&s, &currarea); switch(i){ case 1: goto label1; case 2: goto label2; } label1: return result; }
91 Simulação de Recursividade São necessárias todas as variáveis temporais? (n, x, y) n necessita ser empilhada (y=n*fact(x);) Embora x seja definida na chamada nunca será usada depois de retornar (se x e y não fossem declaradas na função e sim globais, a rotina funcionaria igualmente bem. x e y não precisam ser empilhadas E o endereço de retorno?? Só existe um endereço de retorno importante (fact), mas se não empilhamos a area de dados artificial UNDERFLOW Podemos fazer popandtest...
92 #include<stdio.h> #include<stdlib.h> #define MAXSTACK 50 struct stack { int top; int param[maxstack]; }; int empty(struct stack *s){ return (s->top == -1); } void popandtest(struct stack *s, int *a, short int *und){ if (!empty(s)){ und = 0; *a = s->param[s->top]; s->top--; return; } *und = 1; } void push(struct stack *s, int *a){ s->top++; s->param[s->top] = *a; }
93 int simfact1(int n){ struct stack s; short int und; long int result, y; int currparam, x; s.top = -1; currparam = n; start: if (currparam == 0){ result = 1; popandtest(&s, &currparam, &und); switch(und){ case 0: goto label2; case 1: goto label1; } } x = currparam -1; push(&s, &currparam); currparam = x; goto start; label2: y = result; result = currparam*y; popandtest(&s, &currparam, &und); switch(und){ case 1: goto label1; case 0: goto label2; } label1: return(result); }
94 Simulação de Recursividade As instruções goto start e goto label2;?????? Repetições de código Para currparam == 0 e currparam!= 0 popandtest(&s, &currparam, &und); switch(und){ } case 0: goto label2; case 1: goto label1;
95 int simfact2(int n){ struct stack s; short int und; long int y; int x; s.top = -1; x = n; start: if (x == 0) y = 1; else{ push(&s, x--); goto start; } label1: popandtest(&s, &x, &und); if(und == 1) return(y); label2: y*=x; goto label1; } Repetição normal Repetição normal
96 int simfact3(int n){ struct stack s; short int und; long int y; int x; s.top = -1; x = n; start: while (x!=0) push(&s, x--); y = 1; popandtest(&s, &x, &und); label1: while (und == 0){ y*=x; popandtest(&s, &x, &und); } return (y); }
97 int simfact4(int n){ long int y; int x; for(y=x=1; x<=n; x++) y*=x; return (y); }
Nível da Arquitetura do Conjunto das Instruções
Nível da Arquitetura do Conjunto das Instruções (Aula 13) Fluxo de Controle Fluxo Seqüencial de Controle e Desvios (1) Fluxo de Controle: É a seqüência na qual instruções são dinamicamente executadas Isto
Leia maisProgramação Estruturada. Programação Estruturada. Idéias Básicas da Programação Estruturada
Programação Estruturada Programação Estruturada Paradigmas de Linguagens de Programação As linguagens desse paradigma são muitas vezes chamadas de linguagens convencionais, procedurais ou imperativas.
Leia maisA Torre de Hanói e o Princípio da Indução Matemática
A Torre de Hanói e o Princípio da Indução Matemática I. O jogo A Torre de Hanói consiste de uma base com três pinos e um certo número n de discos de diâmetros diferentes, colocados um sobre o outro em
Leia maisCapítulo 8. CICLOS. Tabela 8.1 Programa8a.f90.
Capítulo 8. CICLOS OBJETIVOS DO CAPÍTULO Conceito de ciclo Comandos do FORTRAN: DO END DO, EXIT 8.1 programa8a.f90 Para inicializar as atividades deste capítulo, deve-se executar: 1) Para acessar o programa
Leia maisProgramação Funcional. Aula 5. Funções Recursivas. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2011.
Programação Funcional Aula 5 Funções Recursivas José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011.2 1/39 1 Funções recursivas 2 Recursividade mútua 3 Recursividade
Leia maisFaculdade de Computação
UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Disciplina : Teoria da Computação Professora : Sandra Aparecida de Amo Lista de Exercícios n o 2 Exercícios sobre Modelos de Máquinas de Turing
Leia maisINTRODUÇÃO À LINGUAGEM C++
INTRODUÇÃO À LINGUAGEM C++ 1 - VARIÁVEIS Variáveis espaço de memória reservado para armazenar tipos de dados, com um nome para referenciar seu conteúdo. Observações importantes Todas as variáveis devem
Leia maisLinguagens de Programação Aula 10
Linguagens de Programação Aula 10 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada As sentenças de controle das LP imperativas ocorrem em diversas categorias: seleção, seleção múltipla, iteração
Leia maisP r o g r a m a ç ã o d e C o m p u t a d o r e s 1 o S e m - 2 0 1 3 P r o f. A n d r é A m a r a n t e L u i z L A B 5 tag %2d while printf PE1:
Inteligência É a faculdade de criar objetos artificiais, especialmente ferramentas para fazer ferramentas. Henri Bergson. WHILE Além dos comandos if-else e switch, o controle de fluxo de um programa pode
Leia maisAlgoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo
Algoritmos e Estruturas de Dados I 01/2013 Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo Problema 1 Suponha que soma (+) e subtração (-) são as únicas operações disponíveis em
Leia maisProgramação: Estruturas de seleção
Programação de Computadores I Aula 07 Programação: Estruturas de seleção José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/53 Valores booleanos Os valores booleanos
Leia maisAlgoritmo e Técnica de Programação - Linguagem C
Algoritmo e Técnica de Programação Linguagem C Gilbran Silva de Andrade 5 de junho de 2008 Introdução A liguagem C foi inventada e implementada por Dennis Ritchie em um DEC PDP-11 que utilizava o sistema
Leia maisIntrodução à Programação. Recursão
Introdução à Programação Recursão Recursão decoração Substantivo feminino. 1.Ato ou efeito de decorar decorar Verbo transitivo direto. 1.Guarnecer com adorno(s); dispor formas e cores em; ornamentar, embelezar;
Leia mais9 Comandos condicionais
9 Comandos condicionais Um comando condicional é uma instrução empregada quando se deseja criar um desvio, isto é, a opção de executar-se ou não um determinado trecho de código, segundo uma condição. Em
Leia maiscompreender a importância de cada estrutura de controle disponível na Linguagem C;
Aula 3 Estruturas de controle Objetivos Esperamos que, ao final desta aula, você seja capaz de: compreender a importância de cada estrutura de controle disponível na Linguagem C; construir programas em
Leia mais5 Apresentando a linguagem C
5 Apresentando a linguagem C O criador da linguagem de programação C foi Dennis Ritchie que, na década de 70, programou-a por meio de um computador DEC PDP-11 rodando sistema operacional Unix. Entretanto,
Leia maisA Pilha. Aula 02. DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria
Engenharia de CONTROLE e AUTOMAÇÃO A Pilha Aula 02 DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria beltrame@mail.ufsm.br 1/5
Leia maisLÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO
LÓGICA DE PROGRAMAÇÃO PROFª. M.Sc. JULIANA H Q BENACCHIO Também chamado de estrutura de seleção múltipla (caso). Assim como o if-else, o switch também é uma estrutura de seleção. O if-else realiza o teste
Leia maisIntrodução à Programação. Armazenamento de Grande Quantidade de Informação Usando Vetores
Introdução à Programação Armazenamento de Grande Quantidade de Informação Usando Vetores Armazenando Grande Quantidade de Informação Como armazenar tanta informação? Vetores! 2 Tópicos da Aula Hoje, aprenderemos
Leia maisImplementando uma Classe e Criando Objetos a partir dela
Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 04 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 2 Prof. Cristóvão Cunha Implementando uma Classe
Leia maisConceitos básicos da linguagem C
Conceitos básicos da linguagem C 2 Em 1969 Ken Thompson cria o Unix. O C nasceu logo depois, na década de 70. Dennis Ritchie, implementou-o pela primeira vez usando o sistema operacional UNIX criado por
Leia maisLinguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery
Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery Agenda Regras paravariáveis Identificadores Válidos Convenção de Nomenclatura Palavras-chaves em Java Tipos de Variáveis em
Leia maisLinguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação
Linguagem C: variáveis, operadores, entrada/saída Prof. Críston Algoritmos e Programação Linguagem C Linguagem de uso geral (qualquer tipo de aplicação) Uma das linguagens mais utilizadas Foi utilizada
Leia maisJavaScript (ou JScript)
1. Introdução JavaScript (ou JScript) Uma linguagem como o JavaScript permite criar interfaces interativas na web (permite a interação do usuário). Para desenvolver web sites interativos precisamos de
Leia maisEstrutura de Dados Básica
Estrutura de Dados Básica Professor: Osvaldo Kotaro Takai. Aula 7: Recursividade O objetivo desta aula é apresentar o conceito de recursão para solução de problemas. A recursão é uma técnica de programação
Leia maisAlgoritmo Iterativo. Dilema do Martelo x Edifício. O Martelo. O Edifício 01/06/2014. Dilema das ações x declarações
Algoritmo Iterativo Fernando Cardeal Parece com o processo de seguir uma estrada: Como chegar à estrada? Como se manter na estrada? Como saber que chegou ao destino para sair da estrada? Como fazer tudo
Leia maisComputação II Orientação a Objetos
Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Introdução Esse não é um curso de Java! O objetivo é aprender os conceitos da programação orientada a objetos,
Leia maisFilas. A ordem de saída corresponde diretamente à ordem de entrada dos elementos. Fila de caixa bancário
Filas Fila é um tipo de lista linear onde as inserções são realizadas num extremo (final da Fila) e as remoções restritas ao outro (começo da Fila). O primeiro a entrar é o primeiro a sair e último a entrar
Leia mais3. INTRODUÇÃO À LINGUAGEM C 3.1. CONCEITOS BÁSICOS. Lógica de Programação
Lógica de Programação 3. INTRODUÇÃO À LINGUAGEM C Caro Aluno Vamos iniciar o terceiro capítulo da nossa disciplina. Agora vamos começar a aplicar os conceitos vistos nos capítulos anteriores em uma linguagem
Leia maisCapítulo 12. SUB-ROTINAS
Capítulo 12. SUB-ROTINAS OBJETIVOS DO CAPÍTULO Conceitos de: sub-rotina, programa-principal, projeto com diversos programas-fonte, passagem de argumentos Comandos do FORTRAN: PROGRAM, EXTERNAL, SUBROUTINE,
Leia maisTabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008
Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,
Leia maisAlgoritmos e Programação
Universidade Federal do Vale do São Francisco Curso de Engenharia da Produção / Elétrica Algoritmos e Programação Parte 05 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti
Leia maisAula 3 Alocação Dinâmica
Aula 3 Alocação Dinâmica Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas de Internet Prof. Bruno B. Boniati www.cafw.ufsm.br/~bruno
Leia maisBACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia
O Sistema Operacional que você usa é multitasking? Por multitasking, entende-se a capacidade do SO de ter mais de um processos em execução ao mesmo tempo. É claro que, num dado instante, o número de processos
Leia maisMODELAGEM E SIMULAÇÃO
MODELAGEM E SIMULAÇÃO Professor: Dr. Edwin B. Mitacc Meza edwin@engenharia-puro.com.br www.engenharia-puro.com.br/edwin Terminologia Básica Utilizada em de Sistemas Terminologia Básica Uma série de termos
Leia maisDesmistificando o Programa de Computador
Desmistificando o Programa de Computador Hoje vou explicar, da maneira mais simples possível, como funciona um programa de computador. Na sua essência um programa de computador nada mais é que uma coletânea
Leia maisIntrodução a Computação
Introdução a Computação Aula 02 Introdução a Linguagem C Edirlei Soares de Lima Lógica de Programação Lógica de Programação é a técnica de criar sequências lógicas de ações para
Leia maisEstruturas de Repetição
Estruturas de Repetição Lista de Exercícios - 04 Algoritmos e Linguagens de Programação Professor: Edwar Saliba Júnior Estruturas de Repetição O que são e para que servem? São comandos que são utilizados
Leia mais15 a Aula Subprogramação /Subalgoritmos Função e Procedimento
FISP 1/6 15 a Aula Subprogramação /Subalgoritmos Função e Procedimento Objetivo: Simplificação e racionalização na elaboração de algoritmos mais complexos Recursos: Estruturação de algoritmos e modularização
Leia maisAULA 1: PARADIGMAS DE PROGRAMAÇÃO
1 AULA 1: PARADIGMAS DE PROGRAMAÇÃO Curso: Ciência da Computação Profª.: Luciana Balieiro Cosme Ementa 2 Programação Imperativa. Programação Paralela e Concorrente. Programação Lógica. Programação Funcional.
Leia maisTÉCNICAS DE PROGRAMAÇÃO
TÉCNICAS DE PROGRAMAÇÃO (Adaptado do texto do prof. Adair Santa Catarina) ALGORITMOS COM QUALIDADE MÁXIMAS DE PROGRAMAÇÃO 1) Algoritmos devem ser feitos para serem lidos por seres humanos: Tenha em mente
Leia maisAlgoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3
Algoritmos e Estruturas de Dados I Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3 Laboratório de AEDS 1 Aula 01 Linguagens de Programação Cada linguagem de programação obedece
Leia maisConvertendo Algoritmos para a Linguagem C
onvertendo Algoritmos para a Linguagem Notas de Aula Prof. Francisco Rapchan www.geocities.com/chicorapchan O objetivo deste texto é mostrar alguns programas em, dando uma breve descrição de seu funcionamento
Leia maisRegras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos
Lógica Aula 2 Técnicas de Programação Criando algoritmos Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos Criando
Leia mais- Aulas 57, 58, 59 e 60 - Técnicas de programação. Funções
1 - Aulas 57, 58, 59 e 60 - Técnicas de programação. Funções Um programa pode possuir determinados processos realizados repetidas vezes ao longo da execução do programa. Estes processos podem se agrupar
Leia maisAlgoritmos e Programação Estruturada
Algoritmos e Programação Estruturada Virgínia M. Cardoso Linguagem C Criada por Dennis M. Ritchie e Ken Thompson no Laboratório Bell em 1972. A Linguagem C foi baseada na Linguagem B criada por Thompson.
Leia maisComandos de repetição while
Programação de Computadores I UFOP DECOM 2014 2 Aula prática 6 Comandos de repetição while Resumo Nesta aula vamos trabalhar com problemas cuja solução envolve realizar um cálculo ou tarefa repetidas vezes,
Leia maisJosé Romildo Malaquias 2011-1
Programação de Computadores I Aula 08 Programação: Estruturas de Repetição José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/58 Motivação Como imprimir os três
Leia mais9.1.2 Laços Controlados por Entrada: Contador
9.1.2 Laços Controlados por Entrada: Contador Exemplo 2- Escreva um algoritmo e um programa em C que dado um Número qualquer, seja calculado e impresso a tabuada desse número. Algoritmo tabuada Variáveis:
Leia maisARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA X
ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA X Índice Traduzindo e iniciando uma aplicação Compiladores Assembladores Linkers Loaders DLLs Iniciando um programa em Java Após toda a matéria abordada nesta
Leia mais7. Estrutura de Decisão
7. Estrutura de Decisão Neste tipo de estrutura o fluxo de instruções a ser seguido é escolhido em função do resultado da avaliação de uma ou mais condições. Uma condição é uma expressão lógica. A classificação
Leia maisAlgoritmos e Programação II. Sobrecarga
Algoritmos e Programação II Baseado no Material do Prof. Júlio Machado Sobrecarga Em várias linguagens é comum encontrarmos rotinas que fazem basicamente a mesma coisa, porém, têm nomes distintos porque
Leia maisVariáveis e Comandos de Atribuição
BCC 201 - Introdução à Programação Variáveis e Comandos de Atribuição Guillermo Cámara-Chávez UFOP 1/47 Estrutura Básica de um programa C I < d i r e t i v a s do pré p r o c e s s a d o r > < d e c l
Leia maisJava Como Programar, 8/E
Capítulo 5 Instruções de controle: Parte 2 Java Como Programar, 8/E (C) 2010 Pearson Education, Inc. Todos os 5.1 Introdução Instrução de repetição for Instrução de repetição do while Instrução de seleção
Leia maisINF 1010 Estruturas de Dados Avançadas
INF 1010 Estruturas de Dados Avançadas Listas de Prioridades e Heaps 1 Listas de Prioridades Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade A prioridade associada a um
Leia maisOrganização de Computadores Software
Organização de Computadores Software Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br www.univasf.edu.br/~marcus.ramos Objetivos: Entender
Leia maisLógica para Computação
Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br Especificação de programas Engenharia de Requisitos: como entender e modelar um problema
Leia maisCapítulo 2: Introdução à Linguagem C
Capítulo 2: Introdução à Linguagem C INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Programa Programa é um algoritmo escrito em uma linguagem de programação. No nosso
Leia maisFração como porcentagem. Sexto Ano do Ensino Fundamental. Autor: Prof. Francisco Bruno Holanda Revisor: Prof. Antonio Caminha M.
Material Teórico - Módulo de FRAÇÕES COMO PORCENTAGEM E PROBABILIDADE Fração como porcentagem Sexto Ano do Ensino Fundamental Autor: Prof. Francisco Bruno Holanda Revisor: Prof. Antonio Caminha M. Neto
Leia maisLista restrita onde as operações de inserção e retirada são feitas nas extremidades. Deque (fila de final duplo).
1. Uma fila dupla é uma lista linear na qual os elementos podem ser inseridos ou removidos de qualquer etremo. Baseando-se na implementação circular apresentada para filas, codifique uma unidade de rotinas
Leia maisPlano de Aula. if(condição) { bloco de comandos; } else { bloco de comandos2; }
Instituto Federal de Santa Catarina - Câmpus Chapecó Ensino Médio Integrado em Informática - Módulo IV Unidade Curricular: Programação Estruturada Professora: Lara Popov Zambiasi Bazzi Oberderfer Plano
Leia maisIntrodução a Teoria das Filas
DISC. : PESQUISA OPERACIONAL II Introdução a Teoria das Filas Prof. Mestre José Eduardo Rossilho de Figueiredo Introdução a Teoria das Filas Introdução As Filas de todo dia. Como se forma uma Fila. Administrando
Leia maisAula 12: Funções. Pré-requisitos: Todas as aulas anteriores deste módulo. 1. Aproveitando Códigos no Programa
Aula 12: Funções Nesta aula explicaremos o que são e como usar funções nos seus programas em JavaScript. Você aprenderá como elas podem receber e retornar valores à estrutura que as acionou. Entenderá
Leia maisINF 1005 Programação I
INF 1005 Programação I Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição de constantes:
Leia maisIntrodução a Programação. Ponteiros e Strings, Alocação Dinâmica
Introdução a Programação Ponteiros e Strings, Alocação Dinâmica Tópicos da Aula Hoje aprenderemos a relação entre ponteiros e strings Ponteiros para strings X Vetores de Caracteres Vetores de ponteiros
Leia maisLinguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador
Linguagem C Tipos de Dados void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador Funções void void pode ser usado em lugar de um tipo, para indicar a ausência de valor
Leia maisSumário. Administração de Banco de dados Módulo 12. Ilustração Backup-Recovery. Recuperação (Recovery) - Definição
Sumário Administração de Banco de dados Módulo 12 1. Administração de SGBDs - Continuação 1.1. Recuperação (Recovery) 1.1.1. Recuperação de sistema 1.1.2. Recuperação da mídia M. Sc. Luiz Alberto lasf.bel@gmail.com
Leia maisINTRODUÇÃO À PROGRAMAÇÃO
O que é um programa? Matlab vs outras linguagens de programação Paradigma de programação Fases de desenvolvimento de um programa CPU Hardware Periféricos Sistema Software Aplicação O que é um programa?
Leia maisGFM015 Introdução à Computação Linguagem C / Introdução à Modularização de Programas (uso de subprogramas)
GFM015 Introdução à Computação Linguagem C / Introdução à Modularização de Programas (uso de subprogramas) Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/ic UFU/FACOM Programa 1.
Leia maisAlgoritmos Estruturas Seqüenciais. José Gustavo de Souza Paiva
Algoritmos Estruturas Seqüenciais José Gustavo de Souza Paiva 1 Introdução Objetivo básico da computação auxiliar os seres humanos em trabalhos repetitivos e braçais, diminuindo i i d esforços e economizando
Leia maisI Semana de Software Livre da USP Dojo C
I Semana de Software Livre da USP Dojo C CCSL PoliGNU-USP MasterMind 25 de abril de 2012 1 Introdução O MasterMind é um jogo cujo objetivo é descobrir um número de 5 dígitos em 10 tentativas. A cada tentativa,
Leia maisCADERNOS DE INFORMÁTICA Nº 1. Fundamentos de Informática I - Word 2010. Sumário
CADERNO DE INFORMÁTICA FACITA Faculdade de Itápolis Aplicativos Editores de Texto WORD 2007/2010 Sumário Editor de texto... 3 Iniciando Microsoft Word... 4 Fichários:... 4 Atalhos... 5 Área de Trabalho:
Leia maisLógica para a Programação - 1º semestre AULA 01 Prof. André Moraes
Pág 4 Lógica para a Programação - 1º semestre AULA 01 Prof. André Moraes 1 APRESENTAÇÃO DA UNIDADE CURRICULAR A unidade curricular de Lógica para a programação tem como objetivo promover o estudo dos principais
Leia maisLINGUAGEM C. Estrutura básica de um programa
LINGUAGEM C Estrutura básica de um programa Um programa em linguagem C é constituído por uma sequência de funções (módulos) que em conjunto irão permitir resolver o problema proposto. Estas funções contêm
Leia maisITENS FUNDAMENTAIS. Profª Angélica da Silva Nunes
ITENS FUNDAMENTAIS Profª Angélica da Silva Nunes CONCEITOS BÁSICOS Hardware - é a parte física do computador, tais como: teclado, monitor de vídeo, etc. Software - são os programas e aplicativos que permitem
Leia maisDALUA: BIBLIOTECA PARA APLICAÇÕES DISTRIBUÍDAS
DALUA: BIBLIOTECA PARA APLICAÇÕES DISTRIBUÍDAS Aluno: Ricardo Gomes Leal Costa Orientadora: Noemi de la Rocque Rodriguez Introdução A biblioteca DALua [1], fruto do projeto anterior, tem por objetivo oferecer
Leia maisIntrodução. A Informação e sua Representação (Parte II) Universidade Federal de Campina Grande. Unidade Acadêmica de Sistemas e Computação
Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Introdução à Computação A Informação e sua Representação (Parte II) Prof. a Joseana Macêdo Fechine Régis de Araújo joseana@computacao.ufcg.edu.br
Leia maisProgramação em papel quadriculado
4 NOME DA AULA: Programação em papel quadriculado Tempo de aula: 45 60 minutos Tempo de preparação: 10 minutos Objetivo principal: ajudar os alunos a entender como a codificação funciona. RESUMO Ao "programar"
Leia maisAnalise o código abaixo:
Recursão - introdução Analise o código abaixo: 1 # include 2 # include 3 int Fatorial ( int x) 4 int k, s =1; for (k =0;k
Leia maisEstruturas de Dados Aula 15: Árvores 17/05/2011
Estruturas de Dados Aula 15: Árvores 17/05/2011 Fontes Bibliográficas Livros: Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 13; Projeto de Algoritmos (Nivio Ziviani): Capítulo
Leia maisBusca em Memória. Secundária
UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Busca em Memória Secundária e Gomes da Costa yandre@din.uem.br 1 Busca de um item em uma massa de dados que não cabe na memória principal; Procura-se
Leia maisProcessos. Estados principais de um Processo: Contexto de um Processo. Nível de um Processo. http://www.dei.isep.ipp.pt/~orlando/so2/processos.
Página 1 de 5 Processos Consiste num método de descrição das actividades de um sistema operativo; Todo o software incluído no sistema operativo é organizado num grupo de programas executáveis. Cada um
Leia maisAnálise de Arredondamento em Ponto Flutuante
Capítulo 2 Análise de Arredondamento em Ponto Flutuante 2.1 Introdução Neste capítulo, chamamos atenção para o fato de que o conjunto dos números representáveis em qualquer máquina é finito, e portanto
Leia maisProgramação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre
Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre Cap. 02 Fundamentos de Linguagens Sumário : Linguagem, alfabeto e gramática
Leia maisALGORITMOS E FLUXOGRAMAS
ALGORITMOS E FLUXOGRAMAS Prof. André Backes INTRODUÇÃO Computadores = cérebros eletrônicos? Computadores são máquinas e, por si sós, não podem ser inteligentes. Alguém as projetou e deu a ela todas as
Leia maisc. Técnica de Estrutura de Controle Teste do Caminho Básico
1) Defina: a. Fluxo de controle A análise de fluxo de controle é a técnica estática em que o fluxo de controle através de um programa é analisado, quer com um gráfico, quer com uma ferramenta de fluxo
Leia maisLista de Exercícios 3 Estruturas de Controle Profa Susana M Iglesias
Lista de Exercícios 3 Estruturas de Controle Profa Susana M Iglesias 1. Tendo em vista o alto preço da gasolina, os motoristas estão preocupados com a quilometragem percorrida por seus automóveis. Um motorista
Leia mais10/02/2015. Introdução. Podemos classificar os tipos de dados a serem processados em dados e instruções Dados: Algoritmos e Lógica de Programação
Introdução Algoritmos e Lógica de Programação Tipos de dados Podemos classificar os tipos de dados a serem processados em dados e instruções Dados: Informações a serem processadas pelo computador. Consideremos
Leia maisDivisão e Conquista. Túlio Toffolo www.toffolo.com.br Marco Antônio Carvalho marco.opt@gmail.com. BCC402 Aula 08 Algoritmos e Programação Avançada
Divisão e Conquista Túlio Toffolo www.toffolo.com.br Marco Antônio Carvalho marco.opt@gmail.com BCC402 Aula 08 Algoritmos e Programação Avançada Motivação É preciso revolver um problema com uma entrada
Leia maisLinguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu.
Programação Estruturada Linguagem C Fundamentos da Linguagem Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu.br Sumário Estrutura Básica Bibliotecas Básicas Tipos de Dados Básicos Variáveis/Declaração
Leia maisTrabalho 3: Agenda de Tarefas
INF 1620 Estruturas de Dados Semestre 08.2 Trabalho 3: Agenda de Tarefas O objetivo deste trabalho é a implementação de um conjunto de funções para a manipulação de uma agenda de tarefas diárias, de forma
Leia maisnatureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues
Modelo De Desenvolvimento De Software É uma representação abstrata do processo de desenvolvimento que define como as etapas relativas ao desenvolvimento de software serão conduzidas e interrelacionadas
Leia maisINTRODUÇÃO A ROBÓTICA
INTRODUÇÃO A ROBÓTICA RODRIGO PENIDO DE AGUIAR COLÉGIO SÃO PAULO 2015 O que é robótica? A robótica é ciência que estuda a construção de robôs e computação. Ela trata de sistemas compostos por partes mecânicas
Leia maisTRABALHO DE PROGRAMAÇÃO FUNCIONAL LINGUAGEM DE PROGRAMAÇÃO I
TRABALHO DE PROGRAMAÇÃO FUNCIONAL LINGUAGEM DE PROGRAMAÇÃO I Raimundo Alan F. Moreira, Antônio Victor C. Passos, Otavio R. Neto, José Almeida Júnior. Bacharelado em Ciências da Computação Centro de Ciências
Leia maisLinguagem de Montagem 2. Operações e Operandos
Linguagem de Montagem 2 Operações e Operandos Revisão Para executar uma tarefa qualquer, um computador precisa receber instruções precisas sobre o que fazer Esse conjunto de instruções chamamos de algoritmo
Leia maisCapítulo 2. VARIÁVEIS DO TIPO INTEIRO
Capítulo 2. VARIÁVEIS DO TIPO INTEIRO OBJETIVOS DO CAPÍTULO Conceitos de: variáveis do tipo inteiro, atribuição, avisos e erros de compilação, erros de execução, comentários dentro do programa-fonte Operadores
Leia maisIntrodução à Engenharia de Computação
Introdução à Engenharia de Computação Tópico: O Computador como uma Multinível José Gonçalves - Introdução à Engenharia de Computação Visão Tradicional Monitor Placa-Mãe Processador Memória RAM Placas
Leia mais