Análise de programas imperativos

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

Download "Análise de programas imperativos"

Transcrição

1 Análise de programas imperativos AMC 2011/12 ì Paulo Mateus Departamento de Matemática IST 2012

2 Objectivos ì Noção de invariante e variante de um ciclo ì Prova (informal) da correção de algoritmos imperativos ì Algoritmos de ordenação ì Análise da complexidade dos algoritmos de ordenação ì Análise do pior caso ì Análise de caso médio suposições probabilísticas

3 Invariante ì Invariante na Lógica de Hoare: ì Def (informal): Uma asserção I diz-se um invariante para um ciclo while(g){ corpo se, quando for verificada no início do ciclo, também é verificada no fim de cada iterada do ciclo. ì ì Para tornar esta definição rigorosa era necessário definir: ì Estado do programa (valores das variáveis + estado do controlo) ì Sintaxe da lógica para os invariantes (primeira-ordem com predicados relevantes) ì Semântica Nesta disciplina opta-se, como é comum na literatura, por utilizar linguagem matemática informal para analisar os algoritmos imperativos.

4 Invariante - factorial #include <stdio.h> /* Exemplo: factorial com contador a decrescer*/ int main() { int i, r, n; scanf( %d,&n); r=1; i=n; n /* Invariante r = k i >=1 */ k=i while(i>=2) { r=r*i; i--; printf( O factorial de %d é %d.\n, n, r); return 0; Prop: O programa Exemplo2, se terminar, calcula o factorial.

5 void insertionsort(int V[], int n) { int i=1, j, aux; while(i < n){ aux=v[i]; j = i-1; while(j>=0 && V[j] >aux) { V[j+1] = V[j]; j--; V[j + 1] = aux; i++; return; Algoritmo da Inserção

6 Invariante - Inserção void insertionsort(int V[], int n) { int i=1, j, aux; /* Invariante 1: Os valores V[0]...V[i-1] estão ordenados e i<=n */ while(i < n){ aux=v[i]; j = i-1; /* Invariante 2: Os valores V[j+1],..,V[i]>= aux e j>=-1*/ while(j>=0 && V[j] >aux) { V[j+1] = V[j]; j--; V[j + 1] = aux; i++; return; Prop: A função insertionsort ordena por ordem crescente o vector V.

7 Variante ì Def. Uma relação (A,<) é bem fundada se qualquer subconjunto não vazio B de A tem elemento minimal. ì Def. Um variante de um ciclo while(g){c e invariante I é um mapa dos estados que satisfazem I para o suporte A de uma relação bem fundada (A,<) cujo valor decresce estritamente em relação a < por cada iterada do ciclo.

8 Variante ì Regra da correção total do cálculo de Hoare Teo: Dado um invariante I, um ciclo while termina sse existe um variante para esse ciclo e I. Def: Um variante diz-se natural se o suporte da relação bemfundada for um subconjunto dos números naturais. Teo: Ciclos while com variantes naturais não são universais no que diz respeito a algoritmos computáveis à Turing.

9 Variante- factorial #include <stdio.h> /* Exemplo: factorial com contador decrescente*/ int main() { int i, r, n; scanf( %d,&n); r=1; i=n; /* Variante ({1...n,<) e f: {σ:σ[i]<=nè {1...n tq f(σ)=σ[i] */ while(i>=2) { r=r*i; i--; printf( O factorial de %d é %d.\n, n, r); return 0; Prop: O programa factorial termina para todo o input. Exer: Encontre variantes para os ciclos do insertionsort.

10 void insertionsort(int V[], int n) { int i=1, j, aux; while(i < n){ aux=v[i]; j = i-1; while(j>=0 && V[j] >aux) { V[j+1] = V[j]; j--; V[j + 1] = aux; i++; return; Algoritmo da Inserção

11 Análise no pior caso - inserção void insertionsort(int V[], int n) { int i=1, j, aux; while(i < n){ aux=v[i]; j = i-1; while(j>=0 && V[j] >aux) { V[j+1] = V[j]; j--; V[j + 1] = aux; i++; return; Análise do pior caso: Time(insertionSort(V,n)= # n 1 i 1 & O % 1 ( = O # n 1 i & # % ( = O 1 & % n(n 1) ( = O(n 2 ) $ i=1 j=0 ' $ i=1 ' $ 2 ' Análise do melhor caso: BTime(insertionSort(V,n)= # n 1 & O% 1( = O n 1 $ ' i=1 ( ) = O(n)

12 Análise no caso médio - inserção ì Para proceder a análise do caso médio é necessário fazer suposições probabilísticas sobre a entrada de dados. ì Diferentes suposições probabilísticas podem levar a diferentes comportamentos médios. ì A análise corresponde a calcular o valor esperado da complexidade temporal tendo em linha de conta a distribuição de probabilidades das entradas

13 Análise no caso médio - inserção void insertionsort(int V[], int n) { int i=1, j, aux; while(i < n){ aux=v[i]; j = i-1; while(j>=0 && V[j] >aux) { V[j+1] = V[j]; j--; V[j + 1] = aux; i++; return; Análise do caso médio: - Assume que no segundo ciclo poderá terminar com j=-1,0,.,i-1 equiprovavelmente. - O segundo ciclo é iterado i i j j p( j) = = i j=0 j=0 i ATime(insertionsort(V,n))= # O% $ n 1 i=1 i & # ( = O% 2 ' $ n 1 i=1 i & # ( = O 1 & % n(n 1) ( = O(n 2 ) 2 ' $ 4 '

14 void BubbleSort(int V[], int n) { int i=1, j, aux; while(i < n){ j = 0; while(j<n-i) { if(v[j+1] < V[j]) { aux=v[j]; V[j]=V[j+1]; V[j+1]=aux; ; j++; i++; return; Algoritmo Bubblesort

15 Algoritmo Bubblesort void BubbleSort(int V[], int n){ int i=1, j, aux; /* I1: V[n-i+1]...V[n-1] está ordenado e tem os maiores elementos de V e i<=n+1 */ while(i <= n){ j = 0; /* I2: V[j]é o maior valor de V[0]...V[j] de V e j<=n-i*/ while(j<n-i) { if(v[j+1] < V[j]) { aux=v[j]; V[j]=V[j+1]; V[j+1]=aux; j--; i++; return;

16 Algoritmo Bubblesort void BubbleSort(int V[], int n){ int i=1, j, aux; /* I1: V[n-i+1]...V[n-1] está ordenado e tem os maiores elementos de V e i<=n+1 */ while(i <= n){ j = 0; i++; return; /* I2: V[j]é o maior valor de V[0]...V[j] de V e j<=n-i*/ while(j<n-i) { if(v[j+1] < V[j]) { j--; aux=v[j]; V[j]=V[j+1]; V[j+1]=aux; Pior, melhor e caso médio? O(n^2)

17 Algoritmo QuickSort void quicksort(int vec[], int left, int right) { int r; if (right > left) { r = partition(vec, left, right); /* pivot */ quicksort(vec, left, r - 1); quicksort(vec, r + 1, right);

18 int partition(int vec[], int left, int right) { int i, j; i = left; j = left + 1; while( j <= right) { if (vec[j] < vec[left]) { ++i; swap(vec,i,j); j++; swap(vec,left, i); return i; Algoritmo QuickSort

19 void swap(int vec[] a, b) { int tmp; tmp = vec[a]; vec[a] = vec[b]; vec[b] = tmp; Algoritmo QuickSort

20 Algoritmo QuickSort void quicksort(int vec[], int left, int right) { int r; if (right > left) { r = partition(vec, left, right); /* pivot */ quicksort(vec, left, r - 1); quicksort(vec, r + 1, right);

21 Algoritmo QuickSort Correção por indução! Análise de complexidade por resolução de recurrências?

Ordenação e Pesquisa de Dados. Aula 07 Insertion Sort e Bubble Sort

Ordenação e Pesquisa de Dados. Aula 07 Insertion Sort e Bubble Sort Ordenação e Pesquisa de Dados Aula 07 Insertion Sort e Bubble Sort Felipe S. L. G. Duarte [email protected] Algoritmos de Ordenação A partir de agora iremos estudar os seguintes algoritmos

Leia mais

PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C

PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C 1 Implementações básicas : a) Implementar a função LerValorValido que verifica se um valor introduzido pelo utilizador pertence ao conjunto limitado por dois dados valores

Leia mais

Algoritmos e Modelação Computacional. Paulo Mateus MEBiom LMAC 2018

Algoritmos e Modelação Computacional. Paulo Mateus MEBiom LMAC 2018 Algoritmos e Modelação Computacional Paulo Mateus MEBiom LMAC 2018 Objetivos Edição e compilação de programas Tipos e expressões Declaração de variáveis Atribuição, composição sequencial, iterativa e alternativa

Leia mais

Ordenação de Vectores

Ordenação de Vectores 4. Vectores: Algoritmos de Ordenação João Pascoal Faria (versão original) Ana Paula Rocha (versão 2004/2005) Luís Paulo Reis (versão 2005/2006) FEUP - MIEEC Prog 2-2006/2007 Ordenação de Vectores Problema

Leia mais

PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C

PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C 1 Enunciado: a)implementar a função maior que devolve o maior de dois números inteiros passados como parâmetro; b)construir um programa em C que determine o maior de

Leia mais

Aulas de. Algoritmos e Modelação Matemática

Aulas de. Algoritmos e Modelação Matemática Aulas de Algoritmos e Modelação Matemática Paulo Mateus André Souto 2013 ii À guardiã Precaução dirigida aos alunos Os temas apresentados neste trabalho são uma versão muito preliminar da sebenta da cadeira

Leia mais

BCC202 - Estrutura de Dados I

BCC202 - Estrutura de Dados I BCC202 - Estrutura de Dados I Aula 14: Ordenação: QuickSort Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Website: www.decom.ufop.br/reifortes Email: [email protected]

Leia mais

Algoritmos Paralelos - ordenação

Algoritmos Paralelos - ordenação Algoritmos Paralelos - ordenação Fernando Silva DCC-FCUP (Alguns dos slides são baseados nos do livro Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers, 2nd

Leia mais

Linguagem C: Algoritmos de Ordenação

Linguagem C: Algoritmos de Ordenação Introdução Prof. Paulo R. S. L. Coelho [email protected] Faculdade de Computação Universidade Federal de Uberlândia GEQ007 Organização Introdução 1 Introdução 2 3 Organização Introdução 1 Introdução 2

Leia mais

Departamento de Informática - PUC-Rio INF 1005 Programação I P1 22/09/2010 Nota

Departamento de Informática - PUC-Rio INF 1005 Programação I P1 22/09/2010 Nota P1 22/09/2010 Matrícula: Turma: Questão 1) (3,5 pontos) O Índice de Desenvolvimento Humano (IDH) é uma medida do bemestar de uma população. Engloba três dimensões: educação (E), longevidade (L) e a riqueza

Leia mais

Algoritmos de Pesquisa e Ordenação em Vectores

Algoritmos de Pesquisa e Ordenação em Vectores Algoritmos de Pesquisa e Ordenação em Vectores FEUP - MIEEC Programação 2-2008/2009 Pesquisa Sequencial Problema (pesquisa de valor em vector): Verificar se um valor existe no vector e, no caso de existir,

Leia mais

Capítulo 5: Repetições

Capítulo 5: Repetições Capítulo 5: Repetições INF1004 e INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Construção de Laços Repetição: Diversos problemas de difícil solução podem ser resolvidos

Leia mais

Algoritmos de Ordenação Eficiência de Algoritmos

Algoritmos de Ordenação Eficiência de Algoritmos AlgoritmosdeOrdenação EficiênciadeAlgoritmos Antes de abordarmos os algoritmo de ordenac ão iremos falar umpoucosobreaeficiênciadealgoritmos UniversidadedeSãoPaulo InstitutodeCiênciasMatemáticasedeComputação

Leia mais

Algoritmos de ordenação Ordenação rápida ( Quicksort )

Algoritmos de ordenação Ordenação rápida ( Quicksort ) Ordenação rápida ( Quicksort ) Baseia-se num princípio muito simples que, quando aplicado recursivamente, acaba por ordenar o vector. Este princípio é composto por 2 passos essenciais: 1. Escolher um elemento

Leia mais

Isomorfismos de Grafos, Grafos Planares e Árvores

Isomorfismos de Grafos, Grafos Planares e Árvores p. 1/25 Isomorfismos de Grafos, Grafos Planares e Árvores Esdras Medeiros p. 2/25 Isomorfismo de Grafos Os isomorfismos preservam adjacências entre vértices. p. 3/25 Isomorfismo de Grafos Definição 1 Dois

Leia mais

Algoritmos de Ordenação: QuickSort

Algoritmos de Ordenação: QuickSort Algoritmos de Ordenação: QuickSort 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 [email protected] 10/2008 Material

Leia mais

AULA 3 Alocação dinâmica de memória: Ponteiros

AULA 3 Alocação dinâmica de memória: Ponteiros UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA 3 Alocação dinâmica de memória: Ponteiros Estrutura de Dados 1 Variáveis X Ponteiros VARIÁVEL - Estrutura para armazenamento

Leia mais

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C 1 2 Repetição 1 Enquanto 'C' é verdadeira Fazer? 3 Repetição 1 Enquanto 'C' é verdadeira Fazer? while (C)?; 4 Enunciado: Construa um algoritmo para mostrar os 100

Leia mais

ALGORITMOS DE ORDENAÇÃO RECURSIVOS

ALGORITMOS DE ORDENAÇÃO RECURSIVOS 1/14 ALGORITMOS DE ORDENAÇÃO RECURSIVOS Ordenação rápida ( Quicksort ) 2/14 Ordenação rápida ( Quicksort ) Ideia - Baseia-se num princípio muito simples que, quando aplicado recursivamente, acaba por ordenar

Leia mais

Algoritmos e Estrutura de Dados

Algoritmos e Estrutura de Dados Algoritmos e Estrutura de Dados Ricardo Terra rterrabh [at] gmail.com Ricardo Terra (rterrabh [at] gmail.com) Algoritmos e Estrutura de Dados Outubro, 2013 1 / 136 CV Nome: Ricardo Terra Email: rterrabh

Leia mais

Conjuntos Finitos e Infinitos

Conjuntos Finitos e Infinitos Conjuntos Finitos e Infinitos p. 1/1 Conjuntos Finitos e Infinitos Gláucio Terra [email protected] Departamento de Matemática IME - USP Axiomas de Peano Conjuntos Finitos e Infinitos p. 2/1 Conjuntos

Leia mais

Estruturas de repetição. Objetivos: - Compreender diversos tipos de comandos de repetições disponíveis na linguagem C.

Estruturas de repetição. Objetivos: - Compreender diversos tipos de comandos de repetições disponíveis na linguagem C. capa Estruturas de repetição Objetivos: - Compreender diversos tipos de comandos de repetições disponíveis na linguagem C. - Aprender a implementar algoritmos em C com laços de repetições. Estruturas de

Leia mais

Métodos Formais. Agenda. Relações Binárias Relações e Banco de Dados Operações nas Relações Resumo Relações Funções. Relações e Funções

Métodos Formais. Agenda. Relações Binárias Relações e Banco de Dados Operações nas Relações Resumo Relações Funções. Relações e Funções Métodos Formais Relações e Funções por Mauro Silva Agenda Relações Binárias Relações e Banco de Dados Operações nas Relações Resumo Relações Funções MF - Relações e Funções 2 1 Relações Binárias Definição

Leia mais

ESTRUTURAS DE DADOS E ALGORITMOS ALGORITMOS DE ORDENAÇÃO POR COMPARAÇÃO - II

ESTRUTURAS DE DADOS E ALGORITMOS ALGORITMOS DE ORDENAÇÃO POR COMPARAÇÃO - II ESTRUTURAS DE DADOS E ALGORITMOS ALGORITMOS DE ORDENAÇÃO POR COMPARAÇÃO - II Adalberto Cajueiro Departamento de Sistemas e Computação Universidade Federal de Campina Grande ALGORITMOS VISTOS ANTERIORMENTE

Leia mais

Simulado de Linguagem de Programação Java

Simulado de Linguagem de Programação Java Simulado de Linguagem de Programação Java 1. Descreva o processo de criação de programas em Java, desde a criação do código-fonte até a obtenção do resultado esperado, por meio de sua execução. Cite as

Leia mais

Relatório das Provas da 2ª. Fase - Vestibular 2016

Relatório das Provas da 2ª. Fase - Vestibular 2016 Relatório das Provas da 2ª. Fase - Vestibular 2016 Resumo Executivo O presente relatório apresenta os resultados da segunda fase do Vestibular UNICAMP 2016 constituída por três provas. Esta etapa do vestibular

Leia mais

ATENÇÃO!!! 12-01-2005 Rui Morgado - TLP 2

ATENÇÃO!!! 12-01-2005 Rui Morgado - TLP 2 Ciclos Exercícios ATENÇÃO!!! Depois de executar o exercício no editor da linguagem de programação C, copie o código para o bloco de notas (dê como nome ao ficheiro o n.º do exercício e o seu nome) e guarde

Leia mais

Método de ordenação - objetivos:

Método de ordenação - objetivos: Método de ordenação - objetivos: Corresponde ao processo de rearranjar um conjunto de objetos em uma ordem ascendente ou descendente. Facilitar a recuperação posterior de itens do conjunto ordenado. São

Leia mais

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008/1 2 PERÍODO MÓDULO 3 AVALIAÇÃO MP2 DATA 2/10/2008 ESTRUTURAS DE DADOS 2008/2

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008/1 2 PERÍODO MÓDULO 3 AVALIAÇÃO MP2 DATA 2/10/2008 ESTRUTURAS DE DADOS 2008/2 TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008/1 2 PERÍODO MÓDULO 3 AVALIAÇÃO MP2 DATA 2/10/2008 ESTRUTURAS DE DADOS 2008/2 Dados de identificação do Acadêmico: Nome: Login: CA: Cidade:

Leia mais

PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C

PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C 1 Implementações básicas: a) Implementar o procedimento LerMatriz que preenche uma matriz de L linhas por C colunas de inteiros (L, C 1); b) Implementar o procedimento

Leia mais

INTRODUÇÃO À PROGRAMAÇÃO II VARIÁVEIS COMPOSTAS HOMOGÊNEAS UNIDIMENSIONAIS

INTRODUÇÃO À PROGRAMAÇÃO II VARIÁVEIS COMPOSTAS HOMOGÊNEAS UNIDIMENSIONAIS INTRODUÇÃO À PROGRAMAÇÃO II VARIÁVEIS COMPOSTAS HOMOGÊNEAS UNIDIMENSIONAIS Material da Prof. Ana Eliza Dados e comandos, para serem processados, devem estar na memória do computador. Memória Definição:

Leia mais

Estrutura de Dados. Algoritmos de Ordenação. Prof. Othon M. N. Batista Mestre em Informática

Estrutura de Dados. Algoritmos de Ordenação. Prof. Othon M. N. Batista Mestre em Informática Estrutura de Dados Algoritmos de Ordenação Prof. Othon M. N. Batista Mestre em Informática Roteiro Introdução Ordenação por Inserção Insertion Sort Ordenação por Seleção Selection Sort Ordenação por Bolha

Leia mais

1. Estrutura de Dados

1. Estrutura de Dados 1. Estrutura de Dados Não existe vitória sem sacrifício! Filme Transformers Um computador é uma máquina que manipula informações. O estudo da ciência da computação inclui o exame da organização, manipulação

Leia mais

Matemática - Módulo 1

Matemática - Módulo 1 1. Considerações iniciais Matemática - Módulo 1 TEORIA DOS CONJUNTOS O capítulo que se inicia trata de um assunto que, via-de-regra, é abordado em um plano secundário dentro dos temas que norteiam o ensino

Leia mais

Vectores: Algoritmos de Ordenação. Algoritmos e Estruturas de Dados 2008/2009

Vectores: Algoritmos de Ordenação. Algoritmos e Estruturas de Dados 2008/2009 Vectores: Algoritmos de Ordenação Algoritmos e Estruturas de Dados 2008/2009 Ordenação Problema (ordenação de vector) rearranjar os n elementos de um vector (v) por ordem crescente, ou melhor, por ordem

Leia mais

APC1 Prof. Eduardo Exercícios (Lista 4 T3)

APC1 Prof. Eduardo Exercícios (Lista 4 T3) APC1 Lista 4 de exercícios 1 APC1 Prof. Eduar Exercícios (Lista 4 T3) 18 - Faça um programa que preencha is vetores com cinco elementos numéricos cada um e depois ordeneos de maneira crescente. Deverá

Leia mais

Análise de Algoritmos

Análise de Algoritmos Análise de Algoritmos Profa. Sheila Morais de Almeida DAINF-UTFPR-PG março - 2016 A invariante de laço pode ser definida como uma relação entre as variáveis de um algoritmo que é verdadeira em um determinado

Leia mais

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE DA BEIRA INTERIOR UNIVERSIDADE DA BEIRA INTERIOR Programação II 1º Semestre Frequência 2 Resolução 07/01/2019 1. [1,25 val] - Análise de Complexidade dos Algoritmos Considere o seguinte bloco de código em linguagem C: for

Leia mais

Métodos de Ordenação: Selection, Insertion, Bubble, Merge (Sort)

Métodos de Ordenação: Selection, Insertion, Bubble, Merge (Sort) Métodos de Ordenação: Selection, Insertion, Bubble, Merge (Sort) Hebert Coelho e Nádia Félix Ordenação É a operação de rearranjar os dados em uma determinada ordem. Problema da ordenação - Definição formal

Leia mais

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C 1 2 Condicional 1 Se 'C' é verdadeira Então?; 3 Condicional 1 Se 'C' é verdadeira Então? if (C)?; 4 Condicional 2 Se 'C' é verdadeira Então? Senão?? 5 Condicional

Leia mais

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C 1 Instruções de Entrada Entrada/Leitura de dados Introduzir um valor inteiro/real para X 2 Instruções de Entrada Entrada/Leitura de dados Introduzir um valor inteiro/real

Leia mais

9.1.2 Laços Controlados por Entrada: Contador

9.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 mais

OBSERVAÇÕES: EXERCÍCIOS

OBSERVAÇÕES: EXERCÍCIOS OBSERVAÇÕES: 1. Esta lista de exercícios poderá ser resolvida individualmente ou em grupos de 2 pessoas. 2. A lista possui 25 exercícios, destes você deve responder os 5 primeiros exercícios e os outros

Leia mais

Prof. Vania Gimenez.Notas de aula Lógica de programação- Este material não substitui os livros indicados no site no link bibliografia.

Prof. Vania Gimenez.Notas de aula Lógica de programação- Este material não substitui os livros indicados no site no link bibliografia. Prof. Vania Gimenez.Notas de aula Lógica de programação- Este material não substitui os livros indicados no site no link bibliografia. ---------------------------------------------------------------- Comandos

Leia mais

Aula 01 Introdução Custo de um algoritmo, Funções de complexidad e Recursão

Aula 01 Introdução Custo de um algoritmo, Funções de complexidad e Recursão MC3305 Algoritmos e Estruturas de Dados II Aula 01 Introdução Custo de um algoritmo, Funções de complexidad e Recursão Prof. Jesús P. Mena-Chalco [email protected] 2Q-2015 1 Custo de um algoritmo

Leia mais

ANÁLISE DE FALHAS DE COMPUTADORES

ANÁLISE DE FALHAS DE COMPUTADORES UNIVERSIDADE FEDERAL DO PARANÁ SETOR DE CIÊNCIAS EXATAS DANIELE APARECIDA DE OLIVEIRA VERANICE POLATO ANÁLISE DE FALHAS DE COMPUTADORES LINHA DE PESQUISA: Projeto de Pesquisa apresentado à disciplina de

Leia mais

Analise o código abaixo:

Analise 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 mais

Equação e Inequação do 2 Grau Teoria

Equação e Inequação do 2 Grau Teoria Equação e Inequação do Grau Teoria Candidato segue um resumo sobre resolução e discussão de equações e inequações do grau. Bons Estudos! Equação do Grau Onde Uma Equação do Grau é sentença aberta do tipo

Leia mais

Introdução a Funções

Introdução a Funções Introdução a Funções Funções Matemáticas função é uma relação de um ou vários valores de argumentos de entrada em um ÚNICO resultado de saída. y z Fig I f(x) = x 2 x = 2 f(x) = 4 x z = f(x,y) = x 2 +y

Leia mais

float vantagem(float candidato[], float concorrente[], int n);

float vantagem(float candidato[], float concorrente[], int n); Questão 1 [Valor: 3,0 pontos] O candidato a um cargo eletivo contratou um instituto de pesquisa de opinião para acompanhar seu desempenho durante a campanha eleitoral. Esse instituto realizou n pesquisas

Leia mais

Capacitação em Linguagem C Parte 2

Capacitação em Linguagem C Parte 2 Capacitação em Linguagem C Parte 2 Andrey Souto Maior Giuseppe Portolese Universidade Estadual de Maringá - Centro de Tecnologia Departamento de Informática 22 de outubro de 2015 Sumário I Tipos abstratos

Leia mais

Lista de Exercícios 5: Soluções Teoria dos Conjuntos

Lista de Exercícios 5: Soluções Teoria dos Conjuntos UFMG/ICEx/DCC DCC Matemática Discreta Lista de Exercícios 5: Soluções Teoria dos Conjuntos Ciências Exatas & Engenharias 2 o Semestre de 206. Escreva uma negação para a seguinte afirmação: conjuntos A,

Leia mais

Controle de Fluxo Comandos de repetição: while e do-while

Controle de Fluxo Comandos de repetição: while e do-while BCC 201 - Introdução à Programação Controle de Fluxo Comandos de repetição: while e do-while Guillermo Cámara-Chávez UFOP 1/1 Comandos de Repetição (Laços) I São muito comuns as situações em que se deseja

Leia mais

03. [Sebesta, 2000] Descreva a operação de um gerador de linguagem geral.

03. [Sebesta, 2000] Descreva a operação de um gerador de linguagem geral. 01. [Sebesta, 2000] Defina sintaxe e semântica. 02. [Sebesta, 2000] A quem se destinam as descrições de linguagem? 03. [Sebesta, 2000] Descreva a operação de um gerador de linguagem geral. 04. [Sebesta,

Leia mais

3. COMPILAÇÃO E ESTRUTURA BÁSICA DE UM PROGRAMA EM C

3. COMPILAÇÃO E ESTRUTURA BÁSICA DE UM PROGRAMA EM C 3. COMPILAÇÃO E ESTRUTURA BÁSICA DE UM PROGRAMA EM C 3.1. Compilação de um Programa C O compilador C realiza a compilação do código-fonte de um programa em cinco etapas: edição, pré-processamento, compilação,

Leia mais

Estruturas de Dados Aula 9: Listas (parte 1) 05/04/2011

Estruturas de Dados Aula 9: Listas (parte 1) 05/04/2011 Estruturas de Dados Aula 9: Listas (parte 1) 05/04/2011 Fontes Bibliográficas Livros: Projeto de Algoritmos (Nivio Ziviani): Capítulo 3; Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo

Leia mais

ALGORITMOS E ESTRUTURAS DE DADOS CES-11 Prof. Paulo André Castro Sala 110 Prédio da Computação IECE - ITA

ALGORITMOS E ESTRUTURAS DE DADOS CES-11 Prof. Paulo André Castro Sala 110 Prédio da Computação   IECE - ITA ALGORITMOS E ESTRUTURAS DE DADOS CES-11 Prof. Paulo André Castro [email protected] Sala 110 Prédio da Computação www.comp.ita.br/~pauloac IECE - ITA MÉTODOS MAIS EFICIENTES QUE O(N 2 ) Método Quicksort Método

Leia mais

Prova Escrita de MATEMÁTICA A - 12o Ano 2015-2 a Fase

Prova Escrita de MATEMÁTICA A - 12o Ano 2015-2 a Fase Prova Escrita de MATEMÁTICA A - o Ano 205-2 a Fase Proposta de resolução GRUPO I. O valor médio da variável aleatória X é: µ a + 2 2a + 0, Como, numa distribuição de probabilidades de uma variável aleatória,

Leia mais

I. Introdução à Análise de Algoritmos

I. Introdução à Análise de Algoritmos I. Introdução à Análise de Algoritmos Estudo de diferentes características que permitem classificar e comparar os algoritmos A correcção de um algoritmo é fundamental. algoritmos será a primeira que abordaremos.

Leia mais

Algoritmos de Ordenação

Algoritmos de Ordenação Algoritmos de Ordenação Leandro Tonietto Unisinos [email protected] http://professor.unisinos.br/ltonietto Atualizado em 7-Jun-12 http://professor.unisinos.br/ltonietto/inf/lb2/sort.pdf ! Objetivos!

Leia mais

Referências. Programação de Computadores II. Cap. 7 Cadeias de Caracteres. Caracteres. Tópicos

Referências. Programação de Computadores II. Cap. 7 Cadeias de Caracteres. Caracteres. Tópicos Referências Programação de Computadores II Cap. 7 Cadeias de Caracteres Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004) Capítulo 7 Livro: Waldemar

Leia mais

Projeto e Análise de Algoritmos

Projeto e Análise de Algoritmos Projeto e Análise de Algoritmos Aula 09 Algoritmos de Ordenação Edirlei Soares de Lima Ordenação Problema: Entrada: conjunto de itens a 1, a 2,..., a n ; Saída: conjunto de itens

Leia mais

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE DA BEIRA INTERIOR UNIVERSIDADE DA BEIRA INTERIOR Programação MIEA 1º Semestre Frequência Resolução 13/12/2016 1. Escreva uma expressão lógica em linguagem C para cada uma das seguintes condições: (a) o valor da variável

Leia mais

5. Análise de Complexidade de Algoritmos. João Pascoal Faria (versão original) Ana Paula Rocha (versão 2003/2004) Luís Paulo Reis (versão 2005/2006)

5. Análise de Complexidade de Algoritmos. João Pascoal Faria (versão original) Ana Paula Rocha (versão 2003/2004) Luís Paulo Reis (versão 2005/2006) 5. Análise de Complexidade de Algoritmos João Pascoal Faria (versão original) Ana Paula Rocha (versão 2003/2004) Luís Paulo Reis (versão 2005/2006) FEUP - MIEEC Prog 2-2006/2007 Introdução Algoritmo: conjunto

Leia mais

Linguagem C. Introdução à Programação C. Variáveis. Identificadores. Identificadores 12/03/2011 VARIÁVEIS E TIPOS DE DADOS

Linguagem C. Introdução à Programação C. Variáveis. Identificadores. Identificadores 12/03/2011 VARIÁVEIS E TIPOS DE DADOS Linguagem C Introdução à Programação C Introdução à Ciência da Computação I Prof. Denis F. Wolf Origem de C está associada ao sistema Unix Histórico: 1970: Ken Thompson desenvolve B, baseada em BCPL, para

Leia mais

Q1 Q2 Q3 Nota. Departamento de Informática - PUC-Rio INF 1005 Programação I P2 20/10/2010. Aluno: Exemplo (apenas um exemplo!):

Q1 Q2 Q3 Nota. Departamento de Informática - PUC-Rio INF 1005 Programação I P2 20/10/2010. Aluno: Exemplo (apenas um exemplo!): Matrícula: Departamento de Informática - PUC-Rio Turma: Q1 Q2 Q3 Questão 1) (3.0 pontos) Uma empresa permite que seus funcionários façam chamadas internacionais a partir de seus ramais, mas mantém um registro

Leia mais

Tabela ASCII de caracteres de controle

Tabela ASCII de caracteres de controle Caracteres Estruturas de Dados Aula 6: Cadeias de Caracteres 31/03/2010 Caracteres são representados internamente por códigos numéricos Tipo char (inteiro pequeno ) 1 byte (8 bits) 256 caracteres possíveis

Leia mais

Matemática para a Economia I - 1 a lista de exercícios Prof. - Juliana Coelho

Matemática para a Economia I - 1 a lista de exercícios Prof. - Juliana Coelho Matemática para a Economia I - 1 a lista de exercícios Prof. - Juliana Coelho 1 - Para cada função abaixo, calcule os valores pedidos, quando for possível: (a) f(x) = x 3 3x + 3x 1, calcule f(0), f( 1)

Leia mais

Programação. MEAer. Bertinho Andrade da Costa. Instituto Superior Técnico. Introdução ao Pré-Processador. 2011/2012 1º Semestre

Programação. MEAer. Bertinho Andrade da Costa. Instituto Superior Técnico. Introdução ao Pré-Processador. 2011/2012 1º Semestre Programação MEAer Bertinho Andrade da Costa 2011/2012 1º Semestre Instituto Superior Técnico Introdução ao Pré-Processador Programação 2011/2012 DEEC-IST Introdução ao Pré-Processador 1 Sumário Introdução

Leia mais

Conversão Visualg à C++ Prof. Paulo Cesar F. de Oliveira, BSc, PhD

Conversão Visualg à C++ Prof. Paulo Cesar F. de Oliveira, BSc, PhD Conversão Visualg à C++ Prof. Paulo Cesar F. de Oliveira, BSc, PhD 1 Unidade 01-a Algoritmos e Programação Seção 1.1 Visualg 2 Formato do Visualg algoritmo nome do algoritmo // Função: // Autor: // Data:

Leia mais

BCC202 - Estrutura de Dados I

BCC202 - Estrutura de Dados I BCC202 - Estrutura de Dados I Aula 12: Ordenação: Bubble, Selection e Insertion Sort Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Website: www.decom.ufop.br/reifortes

Leia mais

Ciclo com Contador : instrução for. for de variável := expressão to. expressão do instrução

Ciclo com Contador : instrução for. for de variável := expressão to. expressão do instrução Métodos de Programação I 2. 27 Ciclo com Contador : instrução for identificador downto for de variável := expressão to expressão do instrução UMA INSTRUÇÃO (SIMPLES OU COMPOSTA) Neste caso o ciclo é repetido

Leia mais

Introduçã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 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 mais

COMPUTAÇÃO. O estudante deve ser capaz de apontar algumas vantagens dentre as seguintes, quanto à modalidade EaD:

COMPUTAÇÃO. O estudante deve ser capaz de apontar algumas vantagens dentre as seguintes, quanto à modalidade EaD: COMPUTAÇÃO QUESTÃO DISCURSIVA 1 O estudante deve ser capaz de apontar algumas vantagens dentre as seguintes, quanto à modalidade EaD: (i) flexibilidade de horário e de local, pois o aluno estabelece o

Leia mais

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Computadores Digitais 2. Prof. Rodrigo de Souza Couto Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Aula de Hoje Cadeias de caracteres (strings) Caracteres Definição e manipulação de strings Vetor de strings Parâmetros

Leia mais

Elementos de programação em C

Elementos de programação em C Elementos de programação em C Estruturas condicionais Francisco A. C. Pinheiro, Elementos de Programação em C, Bookman, 2012. Visite os sítios do livro para obter material adicional: www.bookman.com.br

Leia mais

/*(Atenção: Em se tratando de uma lista estaticamente alocada, temos utilizado a estratégia de passa o tamanho máximo do vetor.)*/

/*(Atenção: Em se tratando de uma lista estaticamente alocada, temos utilizado a estratégia de passa o tamanho máximo do vetor.)*/ ========================TDA.H #include "info.h" #define TRUE 1 #define FALSE 0 #define INI_LISTA 1 #define OK 1; #define NOK -1; typedef struct nolista{ info dados; struct nolista *prox; struct nolista

Leia mais

1 Cálculo do valor à vista

1 Cálculo do valor à vista MAC-5 Introdução à Computação para Ciências Exatas e Tecnologia IO Segundo Exercício Programa Entregar até 7/0/2007 Comprar à vista ou comprar à prazo? Várias lojas já possuem alguns planos de crediário

Leia mais

Algoritmos e Estruturas de Dados I. Variáveis Indexadas. Pedro O.S. Vaz de Melo

Algoritmos e Estruturas de Dados I. Variáveis Indexadas. Pedro O.S. Vaz de Melo Algoritmos e Estruturas de Dados I Variáveis Indexadas Pedro O.S. Vaz de Melo Por que índices são importantes? Como uma loja de sapatos artesanais deve guardar os seus produtos? 1 2 3 4 Tamanhos entre

Leia mais

INF 1010 Estruturas de Dados Avançadas

INF 1010 Estruturas de Dados Avançadas 11.2 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

Leia mais