Aula 04 Princípios de Modularidade 3 e Introdução à Teste de Software Alessandro Garcia

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

Download "Aula 04 Princípios de Modularidade 3 e Introdução à Teste de Software Alessandro Garcia"

Transcrição

1 Aula 04 Princípios de Modularidade 3 e Introdução à Teste de Software Alessandro Garcia LES/DI/PUC-Rio Março 2017

2 Avisos O horário de monitoria será no seguinte horário: 6ª. Feira, 13:00 15:00 (15 alunos podem neste horário) Monitoria: Profs. Alexander e Leonardo s: alopez@inf.puc-rio.br e lsousa@inf.puc-rio.br Local: Pe. Leonel Franca, 9º. Andar, porta de vidro à esquerda segundo horário com agendamento prévio por com os monitores NOTA 2: Vários exemplos usados em aula são parte do arcabouço de teste disponível no website podem executá-los de forma a entender melhor os exemplos NOTA 3: Instale o arcabouço de teste em sua máquina Aba Software do site; arquivo Leiame.pdf tem instruções NOTA 4: Leia a monografia do arcabouço - Aba Publicações Alessandro Garcia LES/DI/PUC-Rio 2 /32

3 Especificação Módulos em C: separação de interfaces providas e implementação como documentar as interfaces e implementações do módulo Introdução a teste de software motivação para os testes definição de teste de software caso de teste e massa de teste Referências básicas: Capítulo 5 do livro texto Monografia: Arcabouço para a Automação de Testes de Programas Redigidos em C; contido no arquivo TesteAutomatizado.zip acessível para download através do site da disciplina, aba: Software Alessandro Garcia LES/DI/PUC-Rio 3 /32

4 Princípios Discutidos até aqui Cada módulo deveria implementar uma única abstração Promover encapsulamento Reduzir acoplamento e aumentar coesão Maximizar a declaração e documentação da interface: sintaxe e semântica Garantir corretude sintática e semântica em conexões entre funções/módulos nomes apropriados para funções e parâmetros o código do módulo cliente e/ou servidor deve checar tal corretude (garantia de contrato) Separação: interface da implementação de um módulo hoje: detalhamento da organização da interface e implementação do módulo 4 /26

5 Exemplo de Módulo em C Módulo árvore implementa uma estrutura genérica de árvores binárias manipuláveis através de um conjunto limitado de funções detalhes internos (organização de dados) não são visíveis para os usuários da estrutura árvore Alessandro Garcia LES - DI/PUC-Rio 5 /26

6 Exemplo de Módulo em C Módulo árvore implementa uma estrutura genérica de árvores binárias manipuláveis através de um conjunto limitado de funções detalhes internos (organização de dados) não são visíveis para os usuários da estrutura árvore Alessandro Garcia LES - DI/PUC-Rio 6 /26

7 Exemplo de Módulo em C Discutindo Estrutura do arquivo ARVORE.h Estrutura do arquivo ARVORE.c Alessandro Garcia LES - DI/PUC-Rio 7 /26

8 Vide exemplo de código distribuído Qual é a declaração de tipo que falta no arquivo da interface provida (header) do módulo ARVORE? Por que isso deveria estar declarado na interface? Alessandro Garcia LES - DI/PUC-Rio 8 /26

9 Interface implícita int ARV_InserirEsquerda( char ValorParm ) int CondRet ; tpnoarvore * pcorr ; tpnoarvore * pno ; /* Tratar vazio, esquerda */ CondRet = CriarNoRaiz( ValorParm ) ; if ( CondRet!= 0 ) return 1 ; } /* if */ /* Criar nó à esquerda de folha */ pcorr = parvore->pnocorr ; if ( pcorr == NULL ) return 2 ; } /* if */ Possíveis valores de retorno indicando eventos para a função/módulo cliente?? if ( pcorr->pnoesq == NULL ) pno = CriarNo( ValorParm ) ; if ( pno == NULL ) return 8 ; } /* if */ pno->pnopai = pcorr ; pcorr->pnoesq = pno ; parvore->pnocorr = pno ; return 0 ; } /* if */ /* Tratar não folha à esquerda */ return 3 ; Ago 2009 Alessandro Garcia LES - DI/PUC-Rio 9 /26???

10 Interface implícita int ARV_InserirEsquerda( char ValorParm ) int CondRet ; tpnoarvore * pcorr ; tpnoarvore * pno ; /* Tratar vazio, esquerda */ CondRet = CriarNoRaiz( ValorParm ) ; if ( CondRet!= 0 ) return 1 ; } /* if */ /* Criar nó à esquerda de folha */ pcorr = parvore->pnocorr ; if ( pcorr == NULL ) return 2 ; } /* if */ if ( pcorr->pnoesq == NULL ) pno = CriarNo( ValorParm ) ; if ( pno == NULL ) return 8 ; } /* if */ pno->pnopai = pcorr ; pcorr->pnoesq = pno ; parvore->pnocorr = pno ; return 0 ; } /* if */ /* Tratar não folha à esquerda */ return 3 ; Possíveis valores de retorno indicando eventos para a função/módulo cliente não criou nó raiz estrutura da árvore está errada faltou memória ao alocar dados inserção foi OK tentou inserir em um nó que nã é folha a esquerda Ago 2009 Alessandro Garcia LES - DI/PUC-Rio 10 /26

11 Passo 2: Indicando os símbolos com ARV_tpCondRet ARV_InserirEsquerda( char ValorParm ) ARV_tpCondRet CondRet ; tpnoarvore * pcorr ; tpnoarvore * pno ; /* Tratar vazio, esquerda */ CondRet = CriarNoRaiz( ValorParm ) ; if ( CondRet!= ARV_CondRetNaoCriouRaiz ) return CondRet ; } /* if */ /* Criar nó à esquerda de folha */ pcorr = parvore->pnocorr ; if ( pcorr == NULL ) return ARV_CondRetErroEstrutura ; } /* if */ significados dos eventos if ( pcorr->pnoesq == NULL ) pno = CriarNo( ValorParm ) ; if ( pno == NULL ) return ARV_CondRetFaltouMemoria ; } /* if */ pno->pnopai = pcorr ; pcorr->pnoesq = pno ; parvore->pnocorr = pno ; return ARV_CondRetOK ; } /* if */ /* Tratar não folha à esquerda */ return ARV_CondRetNaoEhFolha ; Ago 2009 Alessandro Garcia LES - DI/PUC-Rio 11 /26 } /* Fim função: ARV Adicionar filho à esquerda */

12 Passo 1: Tipo com lista de eventos /*********************************************************************** *$TC Tipo de dados: ARV Condicoes de retorno ************************************************************************/ typedef enum ARV_CondRetOK = 0, /* Executou correto */ ARV_CondRetNaoCriouRaiz = 1, /* Não criou nó raiz */ Evento normal Eventos excepcionais ARV_CondRetErroEstrutura = 2, /* Estrutura da árvore está errada */ ARV_CondRetNaoEhFolha = 3, /* Não é folha relativa à direção de inserção desejada */ ARV_CondRetArvoreNaoExiste = 4, /* Árvore não existe */ ARV_CondRetArvoreVazia = 5, /* Árvore está vazia */ ARV_CondRetNohEhRaiz = 6, /* Nó corrente é raiz */ ARV_CondRetNaoPossuiFilho = 7, /* Nó corrente não possui filho na direção desejada */ ARV_CondRetFaltouMemoria = 8 /* Faltou memória ao alocar dados */ } ARV_tpCondRet ; Mar 2009 Alessandro Garcia LES/DI/PUC-Rio 12 /32

13 Passo 2: Indicando os símbolos com ARV_tpCondRet ARV_InserirEsquerda( char ValorParm ) ARV_tpCondRet CondRet ; tpnoarvore * pcorr ; tpnoarvore * pno ; /* Tratar vazio, esquerda */ CondRet = CriarNoRaiz( ValorParm ) ; if ( CondRet!= ARV_CondRetNaoCriouRaiz ) return CondRet ; } /* if */ /* Criar nó à esquerda de folha */ pcorr = parvore->pnocorr ; if ( pcorr == NULL ) return ARV_CondRetErroEstrutura ; } /* if */ significados dos eventos if ( pcorr->pnoesq == NULL ) pno = CriarNo( ValorParm ) ; if ( pno == NULL ) return ARV_CondRetFaltouMemoria ; } /* if */ pno->pnopai = pcorr ; pcorr->pnoesq = pno ; parvore->pnocorr = pno ; return ARV_CondRetOK ; } /* if */ /* Tratar não folha à esquerda */ return ARV_CondRetNaoEhFolha ; Ago 2009 Alessandro Garcia LES - DI/PUC-Rio 13 /26 } /* Fim função: ARV Adicionar filho à esquerda */

14 Tornando eventos explícitos na interface /******************************************************************* **** * * $FC Função: ARV Adicionar filho à esquerda * * $EP Parâmetros * $P ValorParm - valor a ser inserido no novo nó. * * $FV Valor retornado * ARV_CondRetOK * ARV_CondRetNaoCriouRaiz * ARV_CondRetErroEstrutura * ARV_CondRetFaltouMemoria * ARV_CondRetNaoEhFolha - caso não seja folha para a esquerda * ******************************************************************** ***/ ARV_tpCondRet ARV_InserirEsquerda( char ValorParm ) ; Alessandro Garcia LES - DI/PUC-Rio 14 /26

15 Investindo em modularidade... Por que separar interface da implementação de módulos? Alessandro Garcia LES - DI/PUC-Rio 15 /26

16 Módulos em C Módulo de declaração ( x.h) ou header file estabelece a interface externada do módulo documentação da interface código da interface destina-se a programadores clientes do módulo programadores desenvolvedores ou mantenedores do correspondente módulo de implementação testadores usando teste caixa-preta aos redatores da documentação para o usuário ao compilador ao compilar um módulo cliente ao compilar o correspondente módulo de implementação Alessandro Garcia LES/DI/PUC-Rio 16 /32

17 Módulos em C Módulo de implementação ( x.c ) contém a inclusão do módulo de declaração próprio as inclusões de todos módulos de declaração dos quais é cliente especificação e implementação do dados manipulados pelo módulo estruturas de dados (e.g. estrutura do nó e cabeça da árvore) as declarações de elementos encapsulados o código executável do módulo código das funções destinam-se aos programadores desenvolvedores ou mantenedores lêem e interagem inúmeras vezes com o texto ao compilador Alessandro Garcia LES/DI/PUC-Rio 17 /32

18 Até aqui... Princípios de modularidade para programação que levam a programas de qualidade satisfatória por construção Módulos com interfaces bem definidas Garantir corretude em conexões É desnecessário então conduzir um teste sistemático? 18 / 30 LES/DI/PU

19 Até aqui... Princípios de modularidade para programação que levam a programas de qualidade satisfatória por construção Módulos com interfaces bem definidas É desnecessário então conduzir um teste sistemático? Não, mesmo programas modulares por construção contém faltas Objetivo: aplicar sistematicamente execução de testes para maximizar chances de obter software de confiabilidade satisfatória encontrar faltas remanescentes no software 19 / 30 LES/DI/PU

20 Por que testar módulos? Programas podem conter defeitos (ou faltas) que, quando exercitados, provocam erros de funcionamento. Quando observados estes erros passam a ser falhas. defeito: código errado (falta: a mesma coisa que defeito) erro: estado diferente do esperado ou desejado, ainda não observado falha: estado diferente do esperado ou desejado, observado 20 / 30 LES/DI/PU

21 Qualidade do software em execução Resultados Dados Usuário Produtor cria elemento Elemento g Falha c e j a d f h?? Observador de erros Sistema b Engano do produtor introduz defeito Defeito Causa endógena provoca um erro Causa exógena provoca um erro Erro i? k? Lesão (conseqüência de erro não observado) 21 /41

22 Exemplo falta introduzida no uso de cláusulas if... int map( int i ) if( i > 0 ) if( i > 10 ) return 10; else return 1; return 0; } (versão simplicada de uma função de mapeamento) A intenção do programador é a seguinte: i >10 retornar 10 i in retornar 0 i <= 0 retornar 1 Qual é o resultado de chamar a função map com o valor de argumento 11? LES/DI/PUC-Rio 22 / 30

23 Exemplo int map( int i ) if( i > 0 ) if( i > 10 ) return 10; else return 1; return 0; } A intenção do programador é a seguinte: i >10 retornar 10 i in retornar 0 i <= 0 retornar 1 Qual é o resultado de chamar a função map com o valor de argumento 5? -1 LES/DI/PUC-Rio 23 / 30

24 Exemplo associação desejada public int map( int i ) if( i > 0 ) } if( i > 10 ) return 10; else return 1; return 0; Qual é o resultado de chamar a função map com o valor de argumento -3? Qual é a falta introduzida pelo programador? 0 associação real falta ou defeito A intenção do programador é a seguinte: i >10 retornar 10 i in retornar 0 i <= 0 retornar 1 O comportamento real é: i >10 retornar 10 i in retornar -1 i <= 0 retornar 0 O compilador, na prática, associa a cláusula else com o if interno LES/DI/PUC-Rio 24 / 30

25 Exemplo associação desejada public int map( int i ) if( i > 0 ) } if( i > 10 ) return 10; else return 1; return 0; associação real Quais são as possíveis situações de erro? Erros: momento em que tais retornos são gerados falta ou defeito A intenção do programador é a seguinte: i >10 retornar 10 i in retornar 0 i <= 0 retornar 1 O comportamento real é: i >10 retornar 10 i in retornar -1 i <= 0 retornar 0 O compilador, na prática, associa a cláusula else com o if interno LES/DI/PUC-Rio 25 / 30

26 Exemplo associação desejada public int map( int i ) if( i > 0 ) } if( i > 10 ) return 10; else return 1; return 0; associação real Erros: momento em que tais retornos são gerados FALHA: pode ser observada pelo usuário ou administrador... falta ou defeito A intenção do programador é a seguinte: i >10 retornar 10 i in retornar 0 i <= 0 retornar 1 O comportamento real é: i >10 retornar 10 i in retornar -1 i <= 0 retornar 0 O compilador, na prática, associa a cláusula else com o if interno LES/DI/PUC-Rio 26 / 30

27 O que é testar um módulo? Teste é uma das técnicas dinâmicas de controle de qualidade Um teste é um experimento controlado em que se confronta o comportamento observado com o comportamento esperado Como fazer isso? submeter o módulo a dados escolhidos e comparar o resultado obtido com o resultado esperado, calculado a partir da especificação e dos dados fornecidos Ex.: comparação em que o valor obtido não está dentro dos limites de tolerância aceitáveis por exemplo, 0 >= Nota <= / 30 LES/DI/PU

28 Como testar um módulo? Para testar um módulo tornam-se necessários um módulo controlador do teste desenvolvido para testar o módulo sob teste o módulo controlador exercita o módulo sob teste através de sua interface uma massa de teste, isto é um conjunto de casos de teste caso de teste é um conjunto de dados e de ações do usuário que exercitam o programa a testar em uma única ativação deste 28 / 30 LES/DI/PU

29 Exemplos de casos de teste public int map( int i ) if( i > 0 ) if( i > 10 ) return 10; else return 1; return 0; } map 1 10 map 2 10 map 3 10 map LES/DI/PUC-Rio 29 / 30

30 Exemplos de casos de teste public int map( int i ) if( i > 0 ) if( i > 10 ) return 10; else return 1; return 0; } É um boa massa de teste? map 1 10 map 2 10 map 3 10 map LES/DI/PUC-Rio 30 / 30

31 Exemplo de casos de teste associação desejada public int map( int i ) if( i > 0 ) } if( i > 10 ) return 10; else return 1; return 0; Não! Não irá expor o programa ao exercício do código com faltas. associação real Importância: especificação completa da sintaxe e semântica da interface. falta ou defeito A intenção do programador é a seguinte: i >10 retornar 10 i in retornar 0 i <= 0 retornar 1 O comportamento real é: i >10 retornar 10 i in retornar -1 i <= 0 retornar 0 O compilador, na prática, associa a cláusula else com o if interno LES/DI/PUC-Rio 31 / 30

32 Aula 04 Princípios de Modularidade 3 e Introdução à Teste de Software Alessandro Garcia LES/DI/PUC-Rio Março 2017

Aula 5 Introdução à Teste de Módulos. Alessandro Garcia LES/DI/PUC-Rio Agosto 2017

Aula 5 Introdução à Teste de Módulos. Alessandro Garcia LES/DI/PUC-Rio Agosto 2017 Aula 5 Introdução à Teste de Módulos Alessandro Garcia LES/DI/PUC-Rio Agosto 2017 Avisos Monitoria, horário: Sextas, 11:00 às 13:00 9º. Andar do Prédio Pe. Leonel Franca Próxima aula: exercício (T1) Alessandro

Leia mais

Aula 02 Conceitos e Princípios de Modularidade 1

Aula 02 Conceitos e Princípios de Modularidade 1 Aula 02 Conceitos e Princípios de Modularidade 1 Alessandro Garcia LES/DI/PUC-Rio Agosto 2016 Lembretes Horário das aulas inicio cada aula a partir de 13:15 Sítio (site) da disciplina: www.inf.puc-rio.br/~inf1301

Leia mais

Aula 02 Conceitos e Princípios de Modularidade 1

Aula 02 Conceitos e Princípios de Modularidade 1 Aula 02 Conceitos e Princípios de Modularidade 1 Alessandro Garcia LES/DI/PUC-Rio Março 2017 Lembretes Horário das aulas vamos ter que começar as 13:00 Definição de horário de monitoria Sítio (site) da

Leia mais

Aula 06 Introdução à Teste de Módulos II e Exercícios. Alessandro Garcia LES/DI/PUC-Rio Março 2014

Aula 06 Introdução à Teste de Módulos II e Exercícios. Alessandro Garcia LES/DI/PUC-Rio Março 2014 Aula 06 Introdução à Teste de Módulos II e Exercícios Alessandro Garcia LES/DI/PUC-Rio Março 2014 Princípios Discutidos até aqui Cada módulo deveria implementar uma única abstração similarmente: cada função

Leia mais

Aula 04 Conceitos e Princípios de Modularidade 3 Alessandro Garcia

Aula 04 Conceitos e Princípios de Modularidade 3 Alessandro Garcia Aula 04 Conceitos e Princípios de Modularidade 3 Alessandro Garcia LES/DI/PUC-Rio Agosto 2017 Especificação Objetivo dessa aula Estudar características da interface de módulos Estudar os princípios de

Leia mais

Aula 17 Revisão. Alessandro Garcia LES/DI/PUC-Rio Abril 2010

Aula 17 Revisão. Alessandro Garcia LES/DI/PUC-Rio Abril 2010 Aula 17 Revisão Alessandro Garcia LES/DI/PUC-Rio Abril 2010 Matéria da Prova Todo material dado até o dia de hoje capítulos correspondentes do livro são indicados no início de cada aula material referenciado

Leia mais

Aula 07 Teste Automatizado Parte II

Aula 07 Teste Automatizado Parte II Aula 07 Teste Automatizado Parte II Prof. Alessandro Garcia Eduardo Fernandes (assistente) LES/DI/PUC-Rio Março 2018 Especificação Objetivo dessa aula Apresentar como sistematicamente instalar e utilizar

Leia mais

Aula 04 Introdução a Teste Automatizado. Alessandro Garcia LES/DI/PUC-Rio Setembro 2013

Aula 04 Introdução a Teste Automatizado. Alessandro Garcia LES/DI/PUC-Rio Setembro 2013 Aula 04 Introdução a Teste Automatizado Alessandro Garcia LES/DI/PUC-Rio Setembro 2013 Especificação Objetivo dessa aula Apresentar os uma técnica para a criação testes automatizados e mostrar como desenvolver

Leia mais

Aula 06 Introdução a Teste Automatizado. Alessandro Garcia LES/DI/PUC-Rio Março 2013

Aula 06 Introdução a Teste Automatizado. Alessandro Garcia LES/DI/PUC-Rio Março 2013 Aula 06 Introdução a Teste Automatizado Alessandro Garcia LES/DI/PUC-Rio Março 2013 Especificação Objetivo dessa aula Apresentar os uma técnica para a criação testes automatizados e mostrar como desenvolver

Leia mais

Aula 20 Testes 3. Alessandro Garcia Leonardo da Silva Sousa OPUS Group/LES/DI/PUC-Rio Dezembro 2016

Aula 20 Testes 3. Alessandro Garcia Leonardo da Silva Sousa OPUS Group/LES/DI/PUC-Rio Dezembro 2016 Aula 20 Testes 3 Alessandro Garcia Leonardo da Silva Sousa OPUS Group/LES/DI/PUC-Rio Dezembro 2016 Slides adaptados de: Staa, A.v. Notas de Aula em Programacao Modular; 2008. Teste de Caixa Branca O que

Leia mais

Aula 10 Especificação de Requisitos

Aula 10 Especificação de Requisitos Aula 10 Especificação de Requisitos Alessandro Garcia LES/DI/PUC-Rio Setembro 2016 Especificação Objetivos dessa aula Apresentar a importância e o que são especificações de requisitos, bem como conceitos

Leia mais

Aula 17 Decomposição sucessiva

Aula 17 Decomposição sucessiva Aula 17 Decomposição sucessiva Francisco Dantas LES/DI/PUC-Rio Agosto 2008 Especificação Objetivos dessa aula Apresentar o método de desenvolvimento baseado em decomposição sucessiva Apresentar uma técnica

Leia mais

Aula 12 Modelos Arquitetural e Físico Outros Princípios de Modularidade

Aula 12 Modelos Arquitetural e Físico Outros Princípios de Modularidade Aula 12 Modelos Arquitetural e Físico Outros Princípios de Modularidade Alessandro Garcia LES/DI/PUC-Rio Outubro de 2016 Avisos e Lembretes Exercícios em sala T1 entrega das correções no fim da aula testes

Leia mais

Programação Modular: Prova, Trabalho e Considerações Finais

Programação Modular: Prova, Trabalho e Considerações Finais Programação Modular: Prova, Trabalho e Considerações Finais Alessandro Garcia LES/DI/PUC-Rio Junho 2016 Prova 22/06 Toda matéria Em particular, material após P1 Dicas: Revisem os exercícios dados em sala

Leia mais

Aula 05 Instalação e Uso do Arcabouço. Alessandro Garcia Alexander Chávez LES/DI/PUC-Rio Março 2016

Aula 05 Instalação e Uso do Arcabouço. Alessandro Garcia Alexander Chávez LES/DI/PUC-Rio Março 2016 Aula 05 Instalação e Uso do Arcabouço Alessandro Garcia Alexander Chávez LES/DI/PUC-Rio Março 2016 Sumário Teste automatizado Instalação do arcabouço. Estrutura de diretórios do arcabouço. Como utilizar

Leia mais

Programação Modular: Exercício T4 e Considerações Finais

Programação Modular: Exercício T4 e Considerações Finais Programação Modular: Eercício T4 e Considerações Finais Alessandro Garcia LES/DI/PUC-Rio Cronograma Aula 13/6: Eercício do T3 relativo a: critérios de cobertura de teste caia-branca instrumentação para

Leia mais

Aula 10 Arquitetura de Software e Exercício. Alessandro Garcia LES/DI/PUC-Rio Abril de 2017

Aula 10 Arquitetura de Software e Exercício. Alessandro Garcia LES/DI/PUC-Rio Abril de 2017 Aula 10 Arquitetura de Software e Exercício Alessandro Garcia Abril de 2017 Não Esquecer... Preencher tabela de atividades ao longo do processo. NÃO DEIXE PARA ÚLTIMA HORA, POIS VOCÊ NÃO SE LEMBRARÁ DO

Leia mais

Linguagem de Programação I. Aula 10 Funções

Linguagem de Programação I. Aula 10 Funções Linguagem de Programação I Aula 10 Funções Da Aula Anterior Tipos de dados básicos e operadores em C Declaração de variáveis e modificadores de tipo Estruturas de Controle Arrays unidimensionais Geração

Leia mais

Aula 20 Instrumentação - Parte 2. Alessandro Garcia LES/DI/PUC-Rio Novembro 2016

Aula 20 Instrumentação - Parte 2. Alessandro Garcia LES/DI/PUC-Rio Novembro 2016 Aula 20 Instrumentação - Parte 2 Alessandro Garcia LES/DI/PUC-Rio Novembro 2016 Especificação Objetivo dessa aula Tipos de instrumentação verificadores deturpadores contadores de passagem Referência básica:

Leia mais

Implementação da programação modular II

Implementação da programação modular II Implementação da programação modular II - 1 Implementação da programação modular II Aula 11 Agenda Declaração e definição de dados Os conceitos relacionados com a ligação de programas Os elementos essenciais

Leia mais

Aula 19 Instrumentação Parte 1

Aula 19 Instrumentação Parte 1 Aula 19 Instrumentação Parte 1 Alessandro Garcia LES/DI/PUC-Rio Novembro 2016 Hoje... Especificação Objetivo dessa aula Motivar instrumentação de programas Necessidade do controle de espaços dinâmicos

Leia mais

Programação Modular. Alessandro Garcia. DI/PUC-Rio Agosto 2016

Programação Modular. Alessandro Garcia. DI/PUC-Rio Agosto 2016 Programação Modular Alessandro Garcia DI/PUC-Rio Agosto 2016 Programação Modular Quem sou eu? Quem são vocês? Qual é o problema abordado no curso? Qual é o objetivo do curso? Organização: aulas, avaliação

Leia mais

Aula 11 Assertivas. Alessandro Garcia LES/DI/PUC-Rio Abril 2016

Aula 11 Assertivas. Alessandro Garcia LES/DI/PUC-Rio Abril 2016 Aula 11 Assertivas Alessandro Garcia LES/DI/PUC-Rio Abril 2016 Especificação Objetivo dessa aula Discutir como especificar funções Apresentar assertivas de entrada, de saída e estruturais como um instrumento

Leia mais

Estruturas de funções I Aula 13

Estruturas de funções I Aula 13 Estrutura de funções I - 1 Estruturas de funções I Aula 13 Agenda Especificação de uma função Estrutura de chamada de funções Condições de retorno Funções de arrumação Objetivo Apresentar os conceitos

Leia mais

Aula 11. Assertivas. Alessandro Garcia LES/DI/PUC-Rio Setembro 2009

Aula 11. Assertivas. Alessandro Garcia LES/DI/PUC-Rio Setembro 2009 Aula 11 Assertivas Alessandro Garcia LES/DI/PUC-Rio Setembro 2009 Especificação Objetivo dessa aula Apresentar assertivas de entrada, de saída e estruturais como um instrumento de especificação Referência

Leia mais

Aula 3 Primeiros programas

Aula 3 Primeiros programas Aula 3 Primeiros programas FACOM-UFMS 2012 OBJETIVOS DA AULA Introdução ao CodeBlocks; Criação dos primeiros programas; Esta aula foi baseada nos capítulos 3 e 4 da apostila de Programação de Computadores

Leia mais

INF 1620 P2-01/11/03 Questão 1 Nome:

INF 1620 P2-01/11/03 Questão 1 Nome: INF 1620 P2-01/11/03 Questão 1 Considere a implementação de uma lista encadeada para armazenar as notas dos alunos de uma turma dada pelo tipo abaixo: struct lista { char nome[81]; int mat; float p1, p2,

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes marinagomes@unipampa.edu.br 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;

Leia mais

Aula 18 Métricas e Anomalias de Modularidade

Aula 18 Métricas e Anomalias de Modularidade Aula 18 Métricas e Anomalias de Modularidade Marcos Silva LES/DI/PUC-Rio Maio 2010 Hoje... Introdução à Métricas Tipos de Métricas Métricas de Tamanho Métricas de Complexidade Métricas de Acoplamento Métricas

Leia mais

DEM-Sec.Sistemas Tipos Abstractos de Informação 2006 / Programação

DEM-Sec.Sistemas Tipos Abstractos de Informação 2006 / Programação Funções DEM-Sec.Sistemas Tipos Abstractos de Informação 2006 / 07 1 Programação modular Programação modular: divir um programa em módulos mais pequenos Função: um conjunto de instruções que desempenham

Leia mais

Aula 9 Especificação de Requisitos

Aula 9 Especificação de Requisitos Aula 9 Especificação de Requisitos Alessandro Garcia LES/DI/PUC-Rio Abril 2016 Especificação Objetivos dessa aula Apresentar a importância e o que são especificações de requisitos, bem como conceitos relacionados

Leia mais

Processos de software

Processos de software Processos de software 1 Processos de software Conjunto coerente de atividades para especificação, projeto, implementação e teste de sistemas de software. 2 Objetivos Introduzir modelos de processos de

Leia mais

ÁRVORES BINÁRIAS DE BUSCA. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

ÁRVORES BINÁRIAS DE BUSCA. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ÁRVORES BINÁRIAS DE BUSCA Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REFERÊNCIA Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC. Cap. 4 INSTITUTO DE COMPUTAÇÃO

Leia mais

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano O C++ foi inicialmente desenvolvido por Bjarne Stroustrup durante a década de 1980 com o objetivo de melhorar a linguagem de programação C, mantendo a compatibilidade com esta linguagem. Exemplos de Aplicações

Leia mais

Aula 14. Modelagem Física (e Exercício)

Aula 14. Modelagem Física (e Exercício) Aula 14 Modelagem Física (e Exercício) Alessandro Garcia LES/DI/PUC-Rio Maio 2018 Avisos e Lembretes Prova P1: quarta, 09/05, início as 13:00 matéria dada até esta aula com consulta de material impresso

Leia mais

Aula 12: Funções. CI208 - Programação de Computadores. Prof. MSc. Diego Roberto Antunes

Aula 12: Funções. CI208 - Programação de Computadores. Prof. MSc. Diego Roberto Antunes CI208 - Programação de Computadores Aula 12: Funções Prof. MSc. Diego Roberto Antunes diegor@inf.ufpr.br www.inf.ufpr.br/diegor Universidade Federal do Paraná Setor de Ciências Exatas Departamento de Informática

Leia mais

Copiar para o ficheiro ArvoreBinaria.h e adaptar as funções associadas às operações sobre árvores binárias (3.1 a 3.12)

Copiar para o ficheiro ArvoreBinaria.h e adaptar as funções associadas às operações sobre árvores binárias (3.1 a 3.12) Considere as seguintes declarações (NodoArv e PNodoArv), adaptadas dos apontamentos: struct NodoArv { int Elemento; struct NodoArv *Esquerda; struct NodoArv *Direita; ; typedef struct NodoArv *PNodoArv;

Leia mais

TESTES DE SOFTWARE Unidade 1 Importância do Teste de Software. Luiz Leão

TESTES DE SOFTWARE Unidade 1 Importância do Teste de Software. Luiz Leão Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático 1.1 - O teste nas fases de vida e de desenvolvimento de um software. 1.2 - O teste na engenharia de sistemas e na engenharia de

Leia mais

Classes e Objetos. Sintaxe de classe em Java

Classes e Objetos. Sintaxe de classe em Java Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados

Leia mais

Linguagem C Princípios Básicos (parte 1)

Linguagem C Princípios Básicos (parte 1) Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos

Leia mais

Linguagem de Programação III

Linguagem de Programação III Linguagem de Programação III Aula-4 Construtores e Sobrecarga Prof. Esbel Tomás Valero Orellana Até Aqui Modelos e POO Classes e sua implementação em Java Encapsulamento Tipos de dados nativos em Java

Leia mais

Aula 9 Especificação de Requisitos Exercício

Aula 9 Especificação de Requisitos Exercício Aula 9 Especificação de Requisitos Exercício Alessandro Garcia LES/DI/PUC-Rio Abril 2017 Exercício Faça a especificação de requisitos do programa do jogo FreeCell com base no que foi apresentado na aula

Leia mais

Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura

Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura Árvores B Prof. Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Fonte: Material da Prof a Ana Eliza Lopes Moura Situação Problema Memória Principal Volátil e limitada Aplicações Grandes

Leia mais

DAINF - Departamento de Informática

DAINF - Departamento de Informática DAINF - Departamento de Informática Algoritmos 2 - Árvore binária de busca Prof. Alex Kutzke ( http://alex.kutzke.com.br/courses ) 30 de Novembro de 2015 Slides adaptados do material produzido pelo Prof.

Leia mais

1. Selecione a Estrutura de Dados que melhor representa os diretórios ou pastas de arquivos do computador.

1. Selecione a Estrutura de Dados que melhor representa os diretórios ou pastas de arquivos do computador. 1. Selecione a Estrutura de Dados que melhor representa os diretórios ou pastas de arquivos do computador. 1) Fila 2) Pilha 3) Árvore 4) Lista 5) Grafo 2. Selecione a Estrutura de Dados que melhor representa

Leia mais

Árvore B. Uma Árvore B de ordem m éumaárvore,talque: Cada nó contém no máximo m

Árvore B. Uma Árvore B de ordem m éumaárvore,talque: Cada nó contém no máximo m Árvore B Uma Árvore B de ordem m éumaárvore,talque: Cada nó contém no máximo m 1valores; Os valores dentro de cada nó estão ordenados; Todos os valores na subárvore esquerda de um valor são menores que

Leia mais

Aula 5 Instruções Simples Cleverton Hentz

Aula 5 Instruções Simples Cleverton Hentz Aula 5 Instruções Simples Cleverton Hentz Sumário de Aula } Instrução de Atribuição } Instrução de Entrada } Instrução de Saída } Comentários 2 Introdução } Instruções são utilizadas para dizer ao computador

Leia mais

Fabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes

Fabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes Árvores Fabrício J. Barth BandTec - Faculdade de Tecnologia Bandeirantes Setembro de 2011 Tópicos Introdução Árvores binárias Implementação em Java Ordens de percurso em árvores binárias Altura de uma

Leia mais

A Linguagem C. A forma de um programa em C

A Linguagem C. A forma de um programa em C A Linguagem C Criada em 1972 por D. M. Ritchie e K. Thompson. Tornou-se uma das mais importantes e populares, principalmente pela portabilidade e flexibilidade. Foi projetada para o desenvolvimento de

Leia mais

Compiladores Análise Semântica

Compiladores Análise Semântica Compiladores Análise Semântica Fabio Mascarenhas - 2013.1 http://www.dcc.ufrj.br/~fabiom/comp Árvores Sintáticas Abstratas (ASTs) A árvore de análise sintática tem muita informação redundante Separadores,

Leia mais

ÁRVORE B. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

ÁRVORE B. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ÁRVORE B Vanessa Braganholo Estruturas de Dados e Seus Algoritmos INTRODUÇÃO 2 ARQUIVOS DE ACESSO DIRETO Basicamente, duas formas de acesso a um registro: Acesso via cálculo do endereço do registro (hashing)

Leia mais

Introdução à Programação. Conceitos Básicos de Orientação a Objetos

Introdução à Programação. Conceitos Básicos de Orientação a Objetos Introdução à Programação Conceitos Básicos de Orientação a Objetos Tópicos da Aula Aprenderemos fundamentos do paradigma orientado a objetos, mas antes veremos o que é paradigma Conceito de paradigma Diferentes

Leia mais

Desenvolvimento de Aplicações Desktop

Desenvolvimento de Aplicações Desktop Desenvolvimento de Aplicações Desktop Conceitos Básicos de Programação Professor: Charles Leite O Desenvolvimento de Programas A programação consiste em indicar como o computador (hardware) deve trabalhar

Leia mais

Estruturas de Dados. Módulo 17 - Busca. 2/6/2005 (c) Dept. Informática - PUC-Rio 1

Estruturas de Dados. Módulo 17 - Busca. 2/6/2005 (c) Dept. Informática - PUC-Rio 1 Estruturas de Dados Módulo 17 - Busca 2/6/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)

Leia mais

Pesquisa em Memória Primária Árvores de Busca. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Pesquisa em Memória Primária Árvores de Busca. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Pesquisa em Memória Primária Árvores de Busca David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Árvores de Pesquisa A árvore de pesquisa é uma estrutura de dados muito eficiente para armazenar

Leia mais

INF 1620 P4 11/12/06 Questão 1 Nome:

INF 1620 P4 11/12/06 Questão 1 Nome: INF 1620 P4 11/12/06 Questão 1 Considere que o cálculo da multa para o pagamento de um determinado imposto varia de acordo com a tabela a seguir: Valor do Imposto Original Multa por mês de atraso até R$

Leia mais

Como construir um compilador utilizando ferramentas Java

Como construir um compilador utilizando ferramentas Java Como construir um compilador utilizando ferramentas Java p. 1/2 Como construir um compilador utilizando ferramentas Java Aula 1 - Introdução Prof. Márcio Delamaro delamaro@icmc.usp.br Como construir um

Leia mais

Universidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores

Universidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores Universidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores 2013-2 Compilador para a Linguagem Cafezinho Especificação dos trabalhos: T2 (Geração da Representação Intermediária e Análise

Leia mais

Teste de Software. Técnica de Teste Estrutural. Rosemary Silveira Filgueiras Melo

Teste de Software. Técnica de Teste Estrutural. Rosemary Silveira Filgueiras Melo Teste de Software Técnica de Teste Estrutural Rosemary Silveira Filgueiras Melo rosesfmelo@hotmail.com 1 Agenda Casos de Teste e Cenários de Teste Técnicas de Teste Técnica de Teste Estrutural 2 Casos

Leia mais

Levantamento de Classes

Levantamento de Classes Levantamento de Classes Conceito de Classe e Objeto Principais primitivas ou elementos de composição de softwares orientados a objetos Objeto elemento componente de um sistema computacional entidade que

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. Linguagem de programação C 3.1. Conceitos

Leia mais

Aula 8 Especificação de Requisitos

Aula 8 Especificação de Requisitos Aula 8 Especificação de Requisitos Alessandro Garcia Abril 2017 Recados Enunciado do trabalho prático (T2) já está disponível no sítio da disciplina: http://www.inf.puc-rio.br/~inf1301/ Enviem mensagem

Leia mais

Gerência de Projetos e Qualidade de Software. Prof. Walter Gima

Gerência de Projetos e Qualidade de Software. Prof. Walter Gima Gerência de Projetos e Qualidade de Software Prof. Walter Gima 1 OBJETIVO Compreender uma série de técnicas de testes, que são utilizadas para descobrir defeitos em programas Conhecer as diretrizes que

Leia mais

Linguagem de Programação

Linguagem de Programação Linguagem de Programação aula 4 Engenharia Elétrica e Engenharia de Automação Introdução à Computação 1.o sem/2013 Profa Suely (e-mail: smaoki@yahoo.com) Programas Programas são seqüências de instruções

Leia mais

Linguagem e Técnicas de Programação

Linguagem e Técnicas de Programação Linguagem C Função Prof. Edwar Saliba Júnior Fevereiro de 2011 Unidade 07 Função 1 Conceitos As técnicas de programação dizem que, sempre que possível, evite códigos extensos, separando o mesmo em funções,

Leia mais

Teste de Software. Prof. Camila. Pedro de Assis Sobreira Jr.

Teste de Software. Prof. Camila. Pedro de Assis Sobreira Jr. Teste de Software Prof. Camila Pedro de Assis Sobreira Jr. 2 Técnicas de Testes Técnica de Teste Funcional Técnica de Teste Estrutural 3 Testes Funcionais Teste de Especificação de Requisitos. Teste de

Leia mais

ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior

ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior Árvore Binária de Busca (ABB) o valor associado à raiz é sempre maior que o valor associado a qualquer nó da sub-árvore à esquerda

Leia mais

Motivação. Estrutura de Dados. Motivação. Motivação. Por que estudar os tipos de dados? Duas são as principais preocupações em um projeto de software

Motivação. Estrutura de Dados. Motivação. Motivação. Por que estudar os tipos de dados? Duas são as principais preocupações em um projeto de software Estrutura de Dados Aula 01 -Tipos Abstratos de de Dados Prof. Ms. Luiz Alberto Contato: lasf.bel@gmail.com Motivação Por que estudar os tipos de dados? Duas são as principais preocupações em um projeto

Leia mais

Capítulo 7. Expressões e Sentenças de Atribuição

Capítulo 7. Expressões e Sentenças de Atribuição Capítulo 7 Expressões e Sentenças de Atribuição Introdução Expressões são os meios fundamentais de especificar computações em uma linguagem de programação Para entender a avaliação de expressões, é necessário

Leia mais

Conceitos de Linguagens de Programação - Características. Paavo Soeiro

Conceitos de Linguagens de Programação - Características. Paavo Soeiro Conceitos de Linguagens de Programação - Características Paavo Soeiro Motivação Para que possa escolher uma linguagem apropriada ao problema. Melhorar o entendimento da linguagem utilizada. Facilitar o

Leia mais

Aula 01 Algoritmos e lógica de programação e introdução ao C++

Aula 01 Algoritmos e lógica de programação e introdução ao C++ Aula 01 Algoritmos e lógica de programação e introdução ao C++ Autor: Max Rodrigues Marques Carga Horária: 2h 21 de julho de 2015 1 Algoritmo e lógica de programação Ementa do curso 1. Definições de algoritmo

Leia mais

Teste de Software. Competência: Entender as técnicas e estratégias de testes de Software

Teste de Software. Competência: Entender as técnicas e estratégias de testes de Software Teste de Software Competência: Entender as técnicas e estratégias de testes de Software Conteúdo Programático Introdução O que é teste de software? Por que é necessário testar um software? Qual a causa

Leia mais

Linguagens de Programação Funcional

Linguagens de Programação Funcional Linguagens de Programação Funcional Conceitos de Linguagens de Programação Pedro Libório Setembro de 2013 2 Roteiro Introdução Funções matemáticas Fundamentos das linguagens de programação funcionais A

Leia mais

Árvores. Prof. César Melo DCC/ICE/UFAM

Árvores. Prof. César Melo DCC/ICE/UFAM Árvores Prof. César Melo DCC/ICE/UFAM Introdução As estruturas anteriores são chamadas de unidimensionais (ou lineares) Exemplo são vetores e listas Não podem ser usadas como hierarquias. Exemplo: árvore

Leia mais

RPC e RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

RPC e RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula

Leia mais

Tratamento dos Erros de Sintaxe. Adriano Maranhão

Tratamento dos Erros de Sintaxe. Adriano Maranhão Tratamento dos Erros de Sintaxe Adriano Maranhão Introdução Se um compilador tivesse que processar somente programas corretos, seu projeto e sua implementação seriam grandemente simplificados. Mas os programadores

Leia mais

Algoritmos 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 Algoritmos e Estruturas de Dados I Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3 Sub-rotina Sub-rotina (CAPÍTULO 8): Funções e procedimentos Blocos de instruções que realizam

Leia mais

Trabalho Linguagem e Programação de Compiladores

Trabalho Linguagem e Programação de Compiladores Trabalho Linguagem e Programação de Compiladores Responda as questões. Os exercícios deverão ser desenvolvidos utilizando as estruturas apresentadas em aula e adequadas para cada problema. Forma de entrega:

Leia mais

Problema do Caminho Hamiltoniano

Problema do Caminho Hamiltoniano Universidade de São Paulo Escola de Artes, Ciências e Humanidades Bacharelado em Sistemas de Informação Introdução à Ciência da Computação II Professores Luciano Digiampietri e Fábio Nakano Data de entrega:

Leia mais

Edital de Seleção 032/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Edital de Seleção 032/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões Edital de Seleção 032/2016 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua

Leia mais

Aula 17 Tratamento de Exceções e Assertivas

Aula 17 Tratamento de Exceções e Assertivas Aula 17 Tratamento de Exceções e Assertivas Alessandro Garcia LES / DI / PUC-Rio Novembro / 2016 Sumário Definições básicas Como se encerram as funções? Problema: e quando funções não encerram corretamente?

Leia mais

4) Defina o que vem a ser um algoritmo, e porque, o mesmo depende do processo.

4) Defina o que vem a ser um algoritmo, e porque, o mesmo depende do processo. Lista de Exercício 1 Algoritmo e Programação 29/08/2018 (Solução) 1) Escreva conforme a premissas computacionais, o que vem a ser, lógica. R: São as premissas básicas para se executar instruções, alocadas

Leia mais

A figura abaixo representa uma classe denominada Carteira. Esta classe é composta dos métodos depositar(valor) e retirar(valor) e do atributo saldo.

A figura abaixo representa uma classe denominada Carteira. Esta classe é composta dos métodos depositar(valor) e retirar(valor) e do atributo saldo. 1-Introdução à Programação Orientada a Objetos 1.1. O que é programação orientada a objetos? Programação orientada a objetos é uma metodologia de desenvolvimento de software. Sua principal vantagem é a

Leia mais

Árvores. Prof. César Melo DCC/ICE/UFAM

Árvores. Prof. César Melo DCC/ICE/UFAM Árvores Prof. César Melo DCC/ICE/UFAM Introdução As estruturas anteriores são chamadas de unidimensionais (ou lineares) Exemplo são vetores e listas Não adequadas para representar hierarquias. Exemplo:

Leia mais

V.2 Especificação Sintática de Linguagens de Programação

V.2 Especificação Sintática de Linguagens de Programação V.2 Especificação Sintática de Linguagens de Programação Deve ser baseada: No planejamento da Linguagem / Compilador Objetivos, Filosofia, Potencialidades,... Nos critérios de projeto/avaliação Legibilidade,

Leia mais

Compiladores Análise Semântica

Compiladores Análise Semântica Compiladores Análise Semântica Fabio Mascarenhas - 2013.2 http://www.dcc.ufrj.br/~fabiom/comp Árvores Sintáticas Abstratas (ASTs) A árvore de análise sintática tem muita informação redundante Separadores,

Leia mais

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Árvores (parte 2) Estruturas de Dados 2 Organização dos dados: Linear: Listas, pilhas, filas. Relação sequencial.

Leia mais

Linguagem de Programação C

Linguagem de Programação C Linguagem de Programação C Aula 08 Diogo Pinheiro Fernandes Pedrosa Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais 13 de novembro de 2009 Introdução O que é uma linguagem

Leia mais

Visibilidade e Encapsulamento

Visibilidade e Encapsulamento Visibilidade e Encapsulamento Professor: Ricardo Luis dos Santos IFSUL 2016 Agenda Pacotes Visibilidade Encapsulamento Hands-On 2 Pacotes Em Java, a visibilidade ou grau de acesso a um determinado atributo

Leia mais

Fundamentos de Programação de Computadores Linguagem C Função Unidade 08 Linguagem C - Função 1/18

Fundamentos de Programação de Computadores Linguagem C Função Unidade 08 Linguagem C - Função 1/18 Linguagem C Função Instituto Federal de Educação, Ciência e Tecnologia do Triângulo Mineiro Prof. Edwar Saliba Júnior Janeiro de 2018 Unidade 08 Linguagem C - Função 1/18 Conceitos As técnicas de programação

Leia mais

Matéria Introdutória. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Matéria Introdutória. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri Matéria Introdutória Banco de Dados Motivação Necessidade de armazenar grandes quantidades de dados Necessidade de acessar as informações de maneira eficiente e segura Evolução histórica: desenvolvimento

Leia mais

Quinto Trabalho Prático. Este trabalho tem como objetivo indexar arquivos de dados usando um índice árvore-b.

Quinto Trabalho Prático. Este trabalho tem como objetivo indexar arquivos de dados usando um índice árvore-b. Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação Disciplina de Algoritmos e Estruturas de Dados II docente Profa. Dra. Cristina Dutra de

Leia mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação ET42G Aula 21 Prof. Daniel Cavalcanti Jeronymo Conversão de tipos. Alocação dinâmica de memória. Recursão. Criação de bibliotecas, arquivos de cabeçalhos e variáveis globais.

Leia mais

Sorting Client. Exemplos de questões da prova 2

Sorting Client. Exemplos de questões da prova 2 Exemplos de questões da prova 2 Polimorfismo na programação orientada a objetos é o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma identificação

Leia mais

Aula 27 Testes Caixa Branca. Alessandro Garcia Willian Oizumi LES/DI/PUC-Rio Novembro 2014

Aula 27 Testes Caixa Branca. Alessandro Garcia Willian Oizumi LES/DI/PUC-Rio Novembro 2014 Aula 27 Testes Caixa Branca Alessandro Garcia Willian Oizumi LES/DI/PUC-Rio Novembro 2014 Especificação Objetivo dessa aula Apresentar os conceitos básicos utilizados ao testar módulos Apresentar 3 critérios

Leia mais

Projeto de Compiladores

Projeto de Compiladores Projeto de Compiladores FIR Faculdade Integrada do Recife João Ferreira 12 e 13 de fevereiro de 2007 Questionário 1. Em quais linguagens de programação você já programou? 2. O que você sabe sobre compiladores?

Leia mais

Árvores Binárias de Busca (ABB) 18/11

Árvores Binárias de Busca (ABB) 18/11 Árvores Binárias de Busca (ABB) 18/11 Definição Uma Árvore Binária de Busca possui as mesmas propriedades de uma AB, acrescida da seguintes propriedade: Para todo nó da árvore, se seu valor é X, então:

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Linguagens de Programação: sintaxe e semântica de linguagens de programação e conceitos de linguagens interpretadas e compiladas Engenharia da Computação Professor: Críston Pereira

Leia mais

Alessandro Garcia LES/DI/PUC-Rio Junho 2010

Alessandro Garcia LES/DI/PUC-Rio Junho 2010 Aula 26 Instrumentação 2 Alessandro Garcia LES/DI/PUC-Rio Junho 2010 Hoje... Especificação Objetivo dessa aula Continuar discussão sobre instrumentação de programas Introduzir o uso módulos de instrumentação

Leia mais