Aula 17 Tratamento de Exceções e Assertivas

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "Aula 17 Tratamento de Exceções e Assertivas"

Transcrição

1 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? Tratamento de exceções Tipos de tratadores Como tratar exceções Em C Em linguagens de programação contemporâneas 1 1

2 Referência Cap. 8 do livro Programação Modular Leituras complementares: Artigos Discovering Faults in Idiom-Based Exception Handling, Bruntink, M., van Deursen, A. and Tourwé, T. In Proceedings of 28th ICSE, Tutorial sobre tratamento de exceções em Java dex.html 2 Relembrando - Definições básicas O que é uma função? Função é uma porção auto-contida de código que: possui um nome que pode ser chamado (ativado) de diversos lugares pode retornar zero ou mais valores pode depender de e alterar zero ou mais parâmetros pode alterar zero ou mais valores do estado do módulo variáveis internas variáveis globais pode criar, ler e destruir arquivos, etc... pode terminar de duas formas: normalmente ou exceção TIPO_RETORNO NOME_FUNCAO ( LISTA_PARAMETROS) { CORPO_FUNCAO 3 2

3 Definições básicas Encerrando a execução de uma função: Chegar ao fim de uma função void O comando return <VALUE> Encerra a execução de uma função imediatamente Se um valor de retorno é informado, a função chamada (callee) retorna este valor para a função chamadora (caller) A transferência de controle após o return passa da função chamada para a função chamadora O comando exit(int) Encerra a execução do programa 1. Executa em ordem reversa todas as funções registradas pela função int atexit( void(*func)(void) ) 2. Todos arquivos são fechados, todos arquivos temporários são apagados 3. O controle de execução retorna ao ambiente-hospedeiro (host enviornment) o valor inteiro passado como argumento 4 O que são assertivas? Assertivas são condições envolvendo dados e estados manipulados que devem ser satisfeitas em determinadas partes do algoritmo de preferência, deve ser código (ao invés de comentários) São definidas em vários níveis de abstração funções devem estar satisfeitas em determinados pontos do corpo da função usualmente assertivas de entrada e assertivas de saída módulos pré e pós condições na definição das pós-condições, assume-se que as pré-condições foram satisfeitas devem estar satisfeitas ao entrar e ao retornar de todas funções assertivas invariantes: assertivas estruturais: corretude das instâncias de estruturas de dados Abril 2009 LES/DI/PUC-Rio 5/30 3

4 Exceptions Exceções Eventos inesperados que ocorrem na execução do módulo, o impedindo de continuar o fluxo de execução normal Press any key to continue _ Exemplos de exceções Exemplos: Um valor de um dos parâmetros ou variáveis viola assertivas de entrada, saída Ex. Um parâmetro de entrada ocasiona uma divisão por zero Uma das assertivas estruturais é violada Não há memória disponível quando você tenta alocar memória dinamicamente Hardware para de funcionar corretamente 7 4

5 Tratamento de exceções Por que é importante tratar exceções? Você pode irritar o seu usuário 8 Tratamento de exceções Por que é importante tratar exceções? Robustez: reagir adequadamente a eventos anormais Usuário pode perder a confiança no seu sistema e deixar de usá-lo Segurança: exceções não tratadas representam vulnerabilidades de segurança Versões : 132 vulnerabilidades de exceções não tratadas foram reveladas Podem levar a ataques resultando Deniel of Service Varios smartphones impactados: Google, Huawei, Lenovo, Samsung, LG, Motorola, HTC and Nubia 9 5

6 Tratamento de exceções Sistemas atuais são cada vez maiores e mais complexos Condições excepcionais podem surgir por diversos motivos e serem até mesmo difíceis de serem previstas Sistemas robustos e confiáveis devem prover seus serviços mesmo sob condições excepcionais Sistemas críticos: Sistemas bancários Controladores de redes elétricas, vôo, usinas nucleares... Sistemas embarcados em aviões, submarinos, foguetes... O tratamento de exceções é parte central do desenvolvimento de sistemas robustos e confiáveis 10 Estrutura de uma função Conjunto de exceções sinalizadas na interface em C: condições de retorno excepcionais Chamadas Função Tratador E1 Tratador E2 Tratador E3 Chamadas Exceções exs.: nome de arquivo não existe, índice/chave fora do limite, conexão com servidor/banco-dados não pode ser estabelecida, etc... Maio 2009 Alessandro Garcia LES/DI/PUC-Rio 11/ 32 6

7 Tratamento de exceções - Terminologia Exceção: Uma exceção é um evento que ocorre durante a execução de um programa (ou módulo) e que impede a sua execução normal Uma exceção indica que o estado interno do sistema está inconsistente e, por isso, não é possível prosseguir com sua execução normal Para restaurar a consistência interna do sistema, é necessário tomar ações corretivas, ou remediadoras Tratador: Um tratador é um conjunto de ações que visam corrigir ou remediar a ocorrência de uma exceção Mecanismo de tratamento de exceções: Um mecanismo de tratamento de exceções é um modelo que permite a desenvolvedores: Representar os tipos de ocorrências de exceção Indicar a ocorrência de uma exceção na interface de funções/módulos Detectar a ocorrência de uma exceção na execução da função Estruturar ações de tratamento de exceções Desviar o fluxo normal do programa para o fluxo excepcional 12 Tratamento de exceções Exemplos de ações em tratadores: Ignora a exceção: identifica a ocorrência de uma exceção e não toma nenhuma ação corretiva. Má prática e deve ser evitada. Re-sinaliza a exceção: identifica um tipo de exceção e reporta para a função chamadora outro tipo de exceção. Geralmente é usada para preservar abstração e encapsulamento. Delegação de controle:delega o controle da execução para outro módulo do sistema mais apto a lidar com a exceção. Notificação ao usuário: notifica o usuário a ocorrência da exceção, com possibilidade de pedir novo input, caso seja possível. Preferencialmente, somente em casos que usuário deve ser envolvido. Armazenamento de erro: cria um registro da exceção e de informações adicionais em arquivo especial (log). Nova tentativa: a mesma função é simplesmente invocada novamente. (ex. exceções intermitentes do ambiente rede WiFi) 13 7

8 Tratamento de exceções Exemplos de ações em tratadores: Liberação de recursos:assegura a liberação de recursos alocados, como memória alocada dinamicamente, arquivos e conexões abertos, etc. Preparação para desligar: prepara o sistema para terminar sem causar efeitos colaterais. Geralmente é usada em situações extremas.é necessário liberar todos os recursos alocados e reverter o sistema para um estado em que os dados estão consistentes. Recuperação por retrocesso: desfaz modificações no estado do sistema a fim de restaurá-lo a um estado válido. Comumente usado em sistemas de bancos de dados. Recuperação por avanço: Uso de redundância de software: ativa uma função com o mesmo propósito. Uso de redundância de dados: uso de elementos adicionais da estrutura que permitam navegar de outras formas na estrutura. 14 Como tratar exceções em módulos em C? A linguagem C não traz suporte específico para tratamento de exceções Fica sob responsabilidade do programador desenvolver uma forma de identificar e tratar exceções do programa Existem várias formas de realizar esta tarefa, cada um com seus prós e contras Usamos o método mais comum e mais simples de tratamento de exceções em linguagem C

9 Como tratar exceções em módulos em C? A fim de padronizar a identificação e o tratamento de exceções em C, usamos um idioma com padrões/convenções de tratamento de exceções: Tipos enum e código de retorno das funções para indicar sob qual condição a função encerrou sua execução Se necessário, define-se parâmetros adicionais passados por referência e modifica-se seus valores para informações extra do erro Neste idioma, as funções tem duas responsabilidades: A função chamada deve usar o comando return para indicar sob qual condição (normal excepcional) sua execução encerrou A função chamadora deve testar o código retornado pela função chamada a fim de tomar ações corretivas, caso necessário 16 Usando o código de retorno das funções typedef enum { LIS_CondRetOK, /* Concluiu corretamente */ LIS_CondRetListaVazia, /* A lista não contém elementos */ LIS_CondRetFimLista, /* Foi atingido o fim de lista */ LIS_tpCondRet LIS_InserirElementoAntes ( LIS_tppLista plista, void * pvalor ) { tpelemlista * pelem ; pelem = CriarElemento( plista, pvalor ) ; if ( pelem == NULL ) { return LIS_CondRetFaltouMemoria ; /* if */ LIS_CondRetNaoAchou, /* Não encontrou o valor procurado */ LIS_CondRetFaltouMemoria /* Faltou memória ao tentar criar um elemento de lista */ LIS_tpCondRet ;... return LIS_CondRetOK ; /* Fim função: LIS &Excluir elemento */ 17 9

10 Usando o código de retorno das funções int main(void){... LIS_tpCondRet condret = InserirElementoAntes( lista, pvalor ); switch( condret ) { case LIS_CondRetFaltouMemoria:... case LIS_CondRetOK:... default : printf( Condição de retorno inesperada ); 18 Usando parâmetro passado por referência int main(void){... char *errormsg; LIS_tpCondRet condret = InserirElementoAntes( lista, pvalor, &errormsg ); switch( condret ) { case LIS_CondRetFaltouMemoria: printf( %s, errormsg ); case LIS_CondRetOK:... default : printf( Condição de retorno inesperada ); 19 10

11 Usando parâmetro passado por referência LIS_tpCondRet LIS_InserirElementoAntes ( LIS_tppLista plista, void * pvalor, char ** errormsg ) { tpelemlista * pelem ; pelem = CriarElemento( plista, pvalor ) ; if ( pelem == NULL ) { char str[] = Não foi possível alocar memória para um novo elemento ; int size = strlen( str ) + 1; (*errormsg) = (char*)malloc( sizeof(char) * size ); memcpy( (*errormsg), str, size ); return LIS_CondRetFaltouMemoria ; /* if */... return LIS_CondRetOK ; /* Fim função: LIS &Excluir elemento */ 20 Usando variáveis globais ou parâmetros Este método é complementar ao método de condições de retorno Bastante usado na GLIBC, biblioteca padrão do sistema GNU/Linux Neste método, as funções tem as seguintes responsabilidades: A função chamada deve modificar variáveis globais ou parâmetros passados por referência para indicar sob qual condição (normal excepcional) sua execução encerrou A função chamadora deve testar a variável global, ou o parâmetro passado por referência, a fim de tomar ações corretivas, caso necessário 21 11

12 Limitações de C A sinalização de uma exceção não é explícita Usa-se o comando return, parâmetros passados por referência ou variáveis globais Não há distinção entre encerramento sob condição normal ou excepcional O sistema não é interrompido no momento em que a exceção ocorre Mesmo sabendo-se que o estado é inconsistente Como prover mais informações a respeito do problema / exceção? Ex.: Qual a severidade? Que condições levaram a esta ocorrência? Uso de parâmetros encoraja quebra de abstração e encapsulamento 22 Limitações de C Há um overhead na criação de tipos enumerados para cada módulo Para cada módulo é definido um tipo enumerado, mesmo que representem a mesma condição (EX.: Falta de memória) A associação entre as exceções descritas nos tipos enumerados e quais exceções que podem ser levantadas por uma função depende exclusivamente da especificação da função Difícil entender o acoplamento excepcional entre funções: quais exceções devem ser tratadas? Não há separação textual do código de tratamento de exceção Código torna-se rapidamente extenso, complexo e pouco compreensível 23 12

13 Usando o código de retorno das funções Problemas: Chamadas encadeadas de funções podem resultar em uma estrutura muito aninhada que é difícil de compreender, testar e fazer a manutenção ARQ_tpCondRet learquivo(){ condret = OK; abrearquivo(); se( arquivoaberto() ){ determinetamanhoarquivo(); se( determinoutamanho() ){ aloquememoria(); se( alocoumemoria() ){ copiedados(); se(! copioudados() ){ condret = ERRO_COPIAR_DADOS; senão { condret = ERRO_ALOCAR_MEM; senão { condret = ERRO_DET_TAM; fechearquivo(); se(! fechouarquivo() ){ condret = ERRO_FECHAR_ARQ; senão { condret = ERRO_ABRIR_ARQ; 24 Mecanismo de Tratamento de Exceções Comportamento exceptional de funções diferente de C, Java, C# e C++ e provêem suporte explícito a tratamento de exceções Facilidades / Mecanismos para Tratamento de Exceções Exceções Tratadores (Handlers) Desvio do Fluxo e Busca de Tratadores Interfaces Excepcionais Definição de Regiões Protegidas Alessandro Garcia LES/DI/PUC-Rio 25/ 32 13

14 Linguagens contemporâneas Linguagens como Java, JavaScript, C++, C#, Python... proveem mecanismos de tratamento de exceções implementados na própria linguagem Elementos sintáticos específicos para tratamento de exceções: THROW sinaliza a ocorrência de uma exceção TRY define uma região protegida contra a ocorrência de exceções CATCH define um tratador, i.e., um trecho de código que implementa um conjunto de ações de recuperação 26 Sinalização explícita de exceções Cláusula throw sinaliza a ocorrência de uma exceção static void escrevearquivo(arquivo a)... {... Buffer bf = buscaarquivo( a ); if( bf == null ) throw new FileNotFoundException(); 27 14

15 Estrutura de uma função em Java/C++ Exceções são levantadas/sinalizadas explicitamente int funcaox (...) { // código desprotegido try { // código a ser tentado; região protegida if (x > 10) {throw excecao; catch (Excecao) { // código do tratador: a ser executado // em caso de exceção if (x > 10) {throw excecao2; acoplamento: exceção sinalizada Maio 2009 Alessandro Garcia LES/DI/PUC-Rio 28/ 32 Linguagens contemporâneas Linguagens como Java, JavaScript, C++, C#, Python... provêem mecanismos de tratamento de exceções implementados na própria linguagem Elementos sintáticos específicos para tratamento de exceções: TRY define uma região protegida contra a ocorrência de exceções CATCH define um tratador, i.e., um trecho de código que implementa um conjunto de ações de recuperação THROW sinaliza a ocorrência de uma exceção THROWS especifica na interface de uma função quais as possíveis exceções que podem ser ocasionadas durante a execução daquela função do módulo 29 15

16 Acoplamento excepcional explícito Cláusula throws indica quais exceções podem ocorrer durante a execução de uma função void escrevearquivo(arquivo) throws FileNotFoundException, CharCodingException, PermissionException; 30 Linguagens contemporâneas Linguagens como Java, JavaScript, C++, C#, Python... provêem mecanismos de tratamento de exceções implementados na própria linguagem Elementos sintáticos específicos para tratamento de exceções: TRY define uma região protegida contra a ocorrência de exceções CATCH define um tratador, i.e., um trecho de código que implementa um conjunto de ações de recuperação THROW sinaliza a ocorrência de uma exceção THROWS especifica na interface de uma função quais as possíveis exceções que podem ser ocasionadas durante a execução daquela função do módulo FINALLY define um trecho de código que sempre será executado, mesmo quando exceções ocorrerem 31 16

17 Mecanismo para código de limpeza O código definido no bloco finally sempre será executado, seja após a terminação normal, ou após a terminação excepcional, de um bloco try Usado especialmente para liberação de recursos, como memória, arquivos abertos, conexões abertas, etc learquivo(){ try{ abrearquivo(); determinetamanhoarquivo(); aloquememoria(); copiedados(); catch( abrirerro ){... catch( determinartamanhoerro ) {... catch( alocarmemoriaerro ) {... catch( copiardadoserro ) {... finally { try{ fechearquivo(); catch( fechararquivoerro ){ Melhor separação textual ARQ_tpCondRet learquivo(){ condret = OK; abrearquivo(); se( arquivoaberto() ){ determinetamanhoarquivo(); se( determinoutamanho() ){ aloquememoria(); se( alocoumemoria() ){ copiedados(); se(! copioudados() ){ condret = ERRO_COPIAR_DADOS; senão { condret = ERRO_ALOCAR_MEM; senão { condret = ERRO_DET_TAM; fechearquivo(); se(! fechouarquivo() ){ condret = ERRO_FECHAR_ARQ; senão { condret = ERRO_ABRIR_ARQ; learquivo(){ try{ abrearquivo(); determinetamanhoarquivo(); aloquememoria(); copiedados(); catch( abrirerro ){... catch( determinartamanhoerro ) {... catch( alocarmemoriaerro ) {... catch( copiardadoserro ) {... finally { fechearquivo(); 33 17

18 Linguagens contemporâneas Principais vantagens em relação a C: Redução do aninhamento de estruturas if-then-else Melhor separação textual entre o código que implementa a lógica da aplicação e o código que implementa o tratamento de exceções Também há uma clara distinção entre o encerramento normal de uma função ( comando return ) e o encerramento excepcional ( comando throw ) Tipos de exceção podem ser reutilizadas entre diferentes módulos Mecanismos que garantem a execução de determinados trechos de código tanto em situações normais, quanto em situações excepcionais Blocos finally Liberação de recursos 34 Linguagens contemporâneas Mesmo com os mecanismos de tratamento de exceções providos na própria linguagem, código de tratamento de exceções ainda é fonte de erros: Dificuldade em modificar métodos que tratam exceções Tratadores vazios (catch block vazio) Exceções não tratadas Erros no código de tratamento de exceções são de difícil diagnose Código pouco executado e pouco testado Implementar tratamento de exceções não é trivial e requer esforço extra dos desenvolvedores 35 18

19 FIM Aula 17 Tratamento de Exceções e Assertivas Alessandro Garcia LES / DI / PUC-Rio Novembro /

Aula 16 Tratamento de Exceções. Eiji Adachi Barbosa LES / DI / PUC-Rio Outubro / 2013

Aula 16 Tratamento de Exceções. Eiji Adachi Barbosa LES / DI / PUC-Rio Outubro / 2013 Aula 16 Tratamento de Exceções Eiji Adachi Barbosa LES / DI / PUC-Rio Outubro / 2013 Avisos Na aula do dia 23/10 (quarta-feira) os alunos que ainda não viram a prova, poderão ver em sala após a aula Na

Leia mais

Aula 22 Tratamento de Exceções

Aula 22 Tratamento de Exceções Aula 22 Tratamento de Exceções Alessandro Garcia LES / DI / PUC-Rio Junho / 2016 Avisos Trabalho T4 enunciado completo está disponível: devem estar em andamento: conclusão da implementação do jogo agora:

Leia mais

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 9 Tratamento de Exceções Assertivas 1 Programa Capítulo 9 Tratamento

Leia mais

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Andrew Diniz da Costa andrew@les.inf.puc-rio.br Programa Capítulo 9 Tratamento de Exceções Assertivas Programa Capítulo

Leia mais

Fundamentos de Programação. Linguagem C++ aula II - Variáveis e constantes. Prof.: Bruno Gomes

Fundamentos de Programação. Linguagem C++ aula II - Variáveis e constantes. Prof.: Bruno Gomes Fundamentos de Programação Linguagem C++ aula II - Variáveis e constantes Prof.: Bruno Gomes 1 Variáveis Representa uma porção da memória que pode ser utilizada pelo programa para armazenar informações

Leia mais

Programação Orientada a Objetos. Manipulação de Exceções

Programação Orientada a Objetos. Manipulação de Exceções Programação Orientada a Objetos Manipulação de Exceções Cristiano Lehrer, M.Sc. Introdução à Manipulação de Exceções (1/2) Em uma linguagem sem manipulação de exceção: Quando ocorre uma exceção, o controle

Leia mais

Fundamentos de Programação. Linguagem C++ Introdução, identificadores, tipos de dados. Prof. Bruno E. G. Gomes IFRN

Fundamentos de Programação. Linguagem C++ Introdução, identificadores, tipos de dados. Prof. Bruno E. G. Gomes IFRN Fundamentos de Programação Linguagem C++ Introdução, identificadores, tipos de dados Prof. Bruno E. G. Gomes IFRN 1 Linguagem de Programação Constituída por símbolos e por regras para combinar esses símbolos

Leia mais

Introdução a Teste de Software

Introdução a Teste de Software Universidade Católica de Pelotas Tecnólogo em Análise e Desenvolvimento de Sistemas Disciplina de Qualidade de Software Introdução a Teste de Software Prof. Luthiano Venecian 1 Conceitos Teste de software

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

Linguagem C. Programação Estruturada. Modularização (Funções) Prof. Luis Nícolas de Amorim Trigo

Linguagem C. Programação Estruturada. Modularização (Funções) Prof. Luis Nícolas de Amorim Trigo Programação Estruturada Linguagem C Modularização (Funções) Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu.br Sumário Introdução Por que usar funções? Escopo de Variáveis Declarando uma

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel Parte IV Introdução à Programação em C++ (Continuação) Relembrando da Última Aula... Entrada e saída Mais exemplos

Leia mais

Alocação de Memória. Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná (UFPR)

Alocação de Memória. Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná (UFPR) Alocação de Memória Linguagem de Programação Estruturada 1 Alocação dinâmica e ponteiros Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná (UFPR) Sumario Introdução Alocação Estática

Leia mais

Leitura Segura de Strings

Leitura Segura de Strings Leitura Segura de Strings As funções da biblioteca padrão de C que podem ser usadas para leitura de strings não são suficientemente adequadas para esta finalidade básica. Nesta seção, serão descritos alguns

Leia mais

Tipos Abstratos de Dados. Estrutura de Dados

Tipos Abstratos de Dados. Estrutura de Dados Tipos Abstratos de Dados Tipo Abstrato de Dados ou TAD Idéia principal: desvincular o tipo de dado (valores e operações) de sua implementação: O que o tipo faz e não como ele faz! Vantagens da desvinculação:

Leia mais

Controle de Fluxo. Laços e Desvios incondicionais

Controle de Fluxo. Laços e Desvios incondicionais Controle de Fluxo Laços e Desvios incondicionais Laços Em C, há três comandos de ITERAÇÃO ou LAÇOS: for while do... while Estes permitem que um conjunto de instruções seja executado até que ocorra uma

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

Introdução aos Sistemas Operacionais

Introdução aos Sistemas Operacionais Introdução aos Sistemas Operacionais Eleri Cardozo FEEC/Unicamp 1 Definição de Sistema Operacional Um sistema operacional é um gerenciador de recursos de hardware ou uma máquina virtual que oferece uma

Leia mais

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis Estruturas de Seleção if... else Operador condicional (? : ) switch Aula de Hoje Estruturas de Repetição: while/do... while/for

Leia mais

Modularização Parte IV

Modularização Parte IV Profa. Dra. Juliana Cristina Braga Centro de Matemática, Computação e Cognição Objetivo da Aula Bacharelado em Ciência e Tecnologia Entender o que é escopo em programação Entender a importância do escopo

Leia mais

Algoritmos e Estruturas de Dados I. Funções. Pedro Olmo Stancioli Vaz de Melo

Algoritmos e Estruturas de Dados I. Funções. Pedro Olmo Stancioli Vaz de Melo Algoritmos e Estruturas de Dados I Funções Pedro Olmo Stancioli Vaz de Melo Exercício Brutus e Olívia foram ao médico, que disse a eles que ambos estão fora do peso ideal. Ambos discordaram veementemente

Leia mais

Capítulo 3: Programando com Funções

Capítulo 3: Programando com Funções Capítulo 3: Programando com Funções INF1004 e INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Organização de Código Um programa de computador representa a implementação

Leia mais

Introdução à Programação C

Introdução à Programação C Introdução à Programação C Fabio Mascarenhas - 2014.2 http://www.dcc.ufrj.br/~fabiom/introc Funções Um bom programa é fatorado em diversas funções pequenas, cada uma resolvendo uma parte específica do

Leia mais

Funções em C. Lucas Ferrari de Oliveira Professor Adjunto. Linguagem de Programação Estruturada I. Universidade Federal do Paraná

Funções em C. Lucas Ferrari de Oliveira Professor Adjunto. Linguagem de Programação Estruturada I. Universidade Federal do Paraná em C Linguagem de Programação Estruturada I Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná Sumário Funções: Conceitos; Forma Geral das funções; Regras de Escopo; Argumentos

Leia mais

Tipos Abstratos de Dados

Tipos Abstratos de Dados Tipos Abstratos de Dados Prof. Rui Jorge Tramontin Jr. UDESC - Rui J. Tramontin Jr. 1 Índice Introdução Definição de Tipos Abstratos de Dados Exemplos de TADs Implementação de TADs Implementação em C Exemplo

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

Universidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I) Prof. Nilton

Universidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I) Prof. Nilton Universidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I) Prof. Nilton nilton@comp.uems.br Introdução A linguagem C foi inventada por Dennis Ritchie e

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação Celso Olivete Júnior olivete@fct.unesp.br Na aula passada Expressões Precedência e associatividade de operador Sobrecarga de operador Expressões de modo misto Várias formas de

Leia mais

Algoritmos e Programação. Linguagem C Procedimentos e. Eliane Pozzebon

Algoritmos e Programação. Linguagem C Procedimentos e. Eliane Pozzebon Algoritmos e Programação Linguagem C Procedimentos e Funções Eliane Pozzebon Procedimentos e Funções Procedimentos são estruturas que agrupam um conjunto de comandos, que são executados quando o procedimento

Leia mais

Conceitos Básicos da Programação OO

Conceitos Básicos da Programação OO Conceitos Básicos da Programação OO Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Objetivos Aprender os

Leia mais

Estruturas de Dados Aula 8: Tipos Abstratos de Dados 30/03/2011

Estruturas de Dados Aula 8: Tipos Abstratos de Dados 30/03/2011 Estruturas de Dados Aula 8: Tipos Abstratos de Dados 30/03/2011 Variação de implementação Há diferentes implementações possíveis para o mesmo tipo de dado Todas definem o mesmo domínio e não mudam o significado

Leia mais

Linguagens de Programação Conceitos e Técnicas. Amarrações

Linguagens de Programação Conceitos e Técnicas. Amarrações Linguagens de Programação Conceitos e Técnicas Amarrações Conceituação Amarração (ou binding) é uma associação entre entidades de programação, tais como entre uma variável e seu valor ou entre um identificador

Leia mais

4 Uma Linguagem Baseada em Máquinas de Estado 4.1. A Linguagem

4 Uma Linguagem Baseada em Máquinas de Estado 4.1. A Linguagem 4 Uma Linguagem Baseada em Máquinas de Estado 4.1. A Linguagem Acredita-se nesse trabalho que características reativas e fortemente baseadas em modelos tornam necessária a criação de uma linguagem específica

Leia mais

BCC202 - Estrutura de Dados I

BCC202 - Estrutura de Dados I BCC202 - Estrutura de Dados I Aula 02: Alocação Dinâmica de Memória Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Ciência da Computação, DECOM Website: www.decom.ufop.br/reifortes

Leia mais

Programação Estruturada e Orientada a Objetos. Objetos e Métodos

Programação Estruturada e Orientada a Objetos. Objetos e Métodos Programação Estruturada e Orientada a Objetos Objetos e Métodos 2013 O que veremos hoje? Objetos e Métodos Transparências baseadas no material do Prof. Jailton Carlos Objetivos Aprender a criar construtores;

Leia mais

Sistema Operacional Unidade 11.2 Shell Script: estruturas condicionais. QI ESCOLAS E FACULDADES Curso Técnico em Informática

Sistema Operacional Unidade 11.2 Shell Script: estruturas condicionais. QI ESCOLAS E FACULDADES Curso Técnico em Informática Sistema Operacional Unidade 11.2 Shell Script: estruturas condicionais Curso Técnico em Informática SUMÁRIO SHELL SCRIPT COM IF... 3 OPERADORES RELACIONAIS... 3 COMPARAÇÕES EM SCRIPTS... 3 MAIS OPERADORES...

Leia mais

Fluxogramas. Leandro Tonietto ago-09

Fluxogramas. Leandro Tonietto ago-09 Fluxogramas Leandro Tonietto ltonietto@unisinos.br ago-09 Introdução Planejar, modelar e projetar primeiro, depois fazer (programar). Maiores chances de sucesso na programação Facilita a resolução, pois

Leia mais

1.6. Tratamento de Exceções

1.6. Tratamento de Exceções Paradigmas de Linguagens I 1 1.6. Tratamento de Exceções Uma exceção denota um comportamento anormal, indesejado, que ocorre raramente e requer alguma ação imediata em uma parte do programa [GHE 97, DER

Leia mais

ECT1203 Linguagem de Programação

ECT1203 Linguagem de Programação Universidade Federal do Rio Grande do Norte Escola de Ciências e Tecnologia ECT1203 Linguagem de Programação Prof. Aquiles Burlamaqui Profa. Caroline Rocha Prof. Luiz Eduardo Leite Prof. Luciano Ferreira

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Operadores relacionais e lógicos estruturas condicionais If...

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Operadores relacionais e lógicos estruturas condicionais If... Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: Operadores relacionais e lógicos estruturas condicionais If... Else Switch Prof. Renato Pimentel 1 Operações relacionais Operações

Leia mais

Programas Interativos

Programas Interativos Programação Funcional DECOM UFOP 2012-1 Aula prática Capítulo 8 Prof. José Romildo Malaquias Programas Interativos Resumo Nesta aula pretende-se explorar construção de programas interativos usando ações

Leia mais

Aplicações, durante a execução, podem incorrer em muitas espécies de erros de vários graus de severidade Quando métodos são invocados sobre um objeto:

Aplicações, durante a execução, podem incorrer em muitas espécies de erros de vários graus de severidade Quando métodos são invocados sobre um objeto: Tratamento de Exceções Prof. Bruno Gomes bruno.gomes@ifrn.edu.br Programação Orientada a Objetos Exceções Aplicações, durante a execução, podem incorrer em muitas espécies de erros de vários graus de severidade

Leia mais

Introdução a Programação de Jogos

Introdução a Programação de Jogos Introdução a Programação de Jogos Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição

Leia mais

Linguagens de Programação. Marco A L Barbosa

Linguagens de Programação. Marco A L Barbosa Expressões e sentença de atribuição Linguagens de Programação Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. http://github.com/malbarbo/na-lp-copl

Leia mais

Introdução à linguagem C++

Introdução à linguagem C++ Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 2: Introdução à linguagem C++ Introdução à linguagem C++ Conceitos básicos: variáveis, tipos de dados, constantes, I/O, etc. Estruturas

Leia mais

Outline. 33. Manipulação de arquivos DIM

Outline. 33. Manipulação de arquivos DIM Outline 33. Manipulação de arquivos DIM031 015.1 Leitura e escrita 3 s DIM031 33. Manipulação de arquivos 015.1 1 / 4 DIM031 33. Manipulação de arquivos 015.1 / 4 Arquivo = entidade de armazenamento de

Leia mais

Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 04 Pag.: 1

Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 04 Pag.: 1 Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 04 Pag.: 1 - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) PIP/CA - Programa Interdisciplinar de Pós-Graduação

Leia mais

AULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos

AULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos Câmpus Santa Helena Curso: Ciência da Computação Disciplina: Programação Orientada a Objetos AULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos Tema

Leia mais

Linguagem C: funções e ponteiros. Prof. Críston Algoritmos e Programação

Linguagem C: funções e ponteiros. Prof. Críston Algoritmos e Programação Linguagem C: funções e ponteiros Prof. Críston Algoritmos e Programação Funções Recurso das linguagens de programação que permite dar um nome para um conjunto de instruções Facilita a reutilização de algoritmos

Leia mais

Guia de Fatores de Qualidade de OO e Java

Guia de Fatores de Qualidade de OO e Java Qualiti Software Processes Guia de Fatores de Qualidade de OO e Java Versã o 1.0 Este documento só pode ser utilizado para fins educacionais, no Centro de Informática da Universidade Federal de Pernambuco.

Leia mais

Introdução à Programação. Introdução a Linguagem C. Prof. José Honorato F. Nunes

Introdução à Programação. Introdução a Linguagem C. Prof. José Honorato F. Nunes Introdução à Programação Introdução a Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Introdução Variáveis Tipos de dados Operadores e Expressões: Operadores

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

Tipos, Literais, Operadores

Tipos, Literais, Operadores Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não

Leia mais

Message Passing Interface - MPI

Message Passing Interface - MPI Message Passing Interface - Pedro de Botelho Marcos Maio/2008 1 Sumário Introdução; Conceitos básicos; Comunicação; Principais rotinas; Compilando e executando códigos ; Exemplos; Referências; 2 Introdução

Leia mais

Programação: Vetores

Programação: Vetores Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia

Leia mais

Lógica e Linguagem de Programação Convertendo um algoritmo em pseudocódigo para a linguagem C Professor: Danilo Giacobo

Lógica e Linguagem de Programação Convertendo um algoritmo em pseudocódigo para a linguagem C Professor: Danilo Giacobo Lógica e Linguagem de Programação Convertendo um algoritmo em pseudocódigo para a linguagem C Professor: Danilo Giacobo Este documento explica como transformar um algoritmo escrito na forma pseudocódigo

Leia mais

Existem dois tipos básicos de subrotinas: a) Procedimentos; b) Funções.

Existem dois tipos básicos de subrotinas: a) Procedimentos; b) Funções. ESTRUTURAÇÃO DOS MÓDULOS DE UM ALGORITMO Uma subrotina é um algoritmo hierarquicamente subordinado a um outro algoritmo geralmente chamado de módulo principal. Da mesma forma, uma subrotina pode conter

Leia mais

Curso de C. Introdução by Arnaldo V. Moura e Daniel F. Ferber 3/10/ :43 AM

Curso de C. Introdução by Arnaldo V. Moura e Daniel F. Ferber 3/10/ :43 AM Curso de C Introdução 1 Introdução Roteiro: Recordando Algoritmos Linguagem de Programação O computador Instruções de Máquina Níveis de Abstração Compilação 2 Algoritmos Recordando: Algoritmo: conjunto

Leia mais

Instituto Superior de Engenharia de Lisboa

Instituto Superior de Engenharia de Lisboa Instituto Superior de Engenharia de Lisboa Introdução à Programação (PG) Docente: Pedro Viçoso Fazenda (pfazenda@cedet.isel.ipl.pt) Professor Responsável: Pedro Alexandre Pereira (palex@cc.isel.ipl.pt)

Leia mais

Técnicas para obtenção de Tolerância a Falhas

Técnicas para obtenção de Tolerância a Falhas Técnicas para obtenção de Tolerância a Falhas Tolerância a falhas / defeitos Bibliografia H. Kopetz, Design Principles for Distributed Embedded Applications, Kluwer Academic Publishers, 1997. 1 Tolerância

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

Desenvolva de qualquer sistema operacional para qualquer sistema operacional. Sem limites.

Desenvolva de qualquer sistema operacional para qualquer sistema operacional. Sem limites. Desenvolva de qualquer sistema operacional para qualquer sistema operacional. Sem limites. Gabriel Pereira, Especialista em Java da Clarify Projete e desenvolva situações de Mercado com a criação de um

Leia mais

Estruturas de entrada e saída

Estruturas de entrada e saída capa Estruturas de entrada e saída - A linguagem C utiliza de algumas funções para tratamento de entrada e saída de dados. - A maioria dessas funções estão presentes na biblioteca . - As funções

Leia mais

Paradigmas de Programação

Paradigmas de Programação Paradigmas de Programação Sintaxe e semântica Aula 4 Prof.: Edilberto M. Silva http://www.edilms.eti.br Prof. Edilberto Silva / edilms.eti.br Sintaxe A sintaxe de uma linguagem de programação é a forma

Leia mais

Conceitos básicos de programação

Conceitos básicos de programação Para aprender uma linguagem de programação podemos começar por conhecer os vocábulos ou símbolos que formam o seu léxico e depois aprender como esses vocábulos integram as instruções (frases) que compõe

Leia mais

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento Hello World Linguagem C printf("hello world!\n"); main é a função principal, a execução do programa começa por ela printf é uma função usada para enviar dados para o vídeo Palavras Reservadas auto double

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

Introdução a Testes de Software. Ricardo Argenton Ramos

Introdução a Testes de Software. Ricardo Argenton Ramos Introdução a Testes de Software Ricardo Argenton Ramos ricargentonramos@gmail.com Agenda da Aula Introdução sobre Testes; Testes Funcionais de software; Testes Estruturais de Software; Teste de Software

Leia mais

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS João Gabriel Ganem Barbosa Sumário Motivação História Linha do Tempo Divisão Conceitos Paradigmas Geração Tipos de Dados Operadores Estruturada vs

Leia mais

Linguagens de Programação Conceitos e Técnicas. Introdução

Linguagens de Programação Conceitos e Técnicas. Introdução Linguagens de Programação Conceitos e Técnicas Introdução Razões para Estudar LPs Maior capacidade de desenvolver soluções computacionais para problemas Maior habilidade ao usar uma LP Maior capacidade

Leia mais

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this. Aula 2 Objetivos Encapsulamento na linguagem Java; Utilizando a referência this. Encapsulamento, data hiding é um conceito bastante importante em orientação a objetos. É utilizado para restringir o acesso

Leia mais

Linguagem C Funções. André Tavares da Silva.

Linguagem C Funções. André Tavares da Silva. Linguagem C Funções André Tavares da Silva andre.silva@udesc.br Funções É uma coleção de comandos identificados por um nome (identificador); As funções executam ações e podem retornar valores; main, printf

Leia mais

Conceitos de Orientação a Objetos

Conceitos de Orientação a Objetos AULA 1 INTRODUÇÃO AO PHP Em PHP AVANÇADO, além de voltar a focar o desenvolvimento em PHP interagindo com o banco de dados Postgresql, também iremos trabalhar com desenvolvimento com orientação a objetos.

Leia mais

P2 Programação II Departamento de Informática/PUC-Rio

P2 Programação II Departamento de Informática/PUC-Rio P2 Programação II 2012.2 Departamento de Informática/PUC-Rio Aluno: Matrícula: Turma: 1. A prova é sem consulta e sem perguntas. A interpretação do enunciado faz parte da prova. 2. A prova deve ser completamente

Leia mais

Computação I: Linguagem de Programação Python

Computação I: Linguagem de Programação Python Computação I: Linguagem de Programação Python reginaldo.re@utfpr.edu.br * Parte da apresentação foi gentilmente cedida pelo prof. Igor Steinmacher Agenda Objetivos Python: conceitos básicos O Ambiente

Leia mais

BCC202 - Estrutura de Dados I

BCC202 - Estrutura de Dados I BCC202 - Estrutura de Dados I Aula 03: Tipos Abstratos de Dados (TADs) Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Ciência da Computação, DECOM Website: www.decom.ufop.br/reifortes

Leia mais

PROGRAMAÇÃO E PYTHON. Laboratórios de Informática João Paulo Barraca, André Zúquete, Diogo Gomes

PROGRAMAÇÃO E PYTHON. Laboratórios de Informática João Paulo Barraca, André Zúquete, Diogo Gomes Sjsoft, http://westmarch.sjsoft.com/2012/11/zen-of-python-poster/ PROGRAMAÇÃO E PYTHON Laboratórios de Informática 2014-2015 João Paulo Barraca, André Zúquete, Diogo Gomes Porquê Programar? Com ferramentas

Leia mais

Aula 11: Desvios e Laços

Aula 11: Desvios e Laços Aula 11: Desvios e Laços Nesta aula explicaremos alguns comandos que podem alterar o fluxo dos seus programas em JavaScript. Você aprenderá a estrutura dos comandos de desvios e laços. Entenderá como funcionam

Leia mais

Prof. Adriano Maranhão COMPILADORES

Prof. Adriano Maranhão COMPILADORES Prof. Adriano Maranhão COMPILADORES LINGUAGENS: INTERPRETADAS X COMPILADAS Resumo: Linguagem compilada: Se o método utilizado traduz todo o texto do programa, para só depois executar o programa, então

Leia mais

Módulo 04 Expressões, Estruturas de Seleção e Controle de Fluxo. Última atualização: 09/06/2010

Módulo 04 Expressões, Estruturas de Seleção e Controle de Fluxo. Última atualização: 09/06/2010 Módulo 04 Expressões, Estruturas de Seleção e Controle de Fluxo Última atualização: 09/06/2010 Objetivos Distinguir entre variáveis de instância e locais; Descrever como iniciar variáveis de instância;

Leia mais

INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO Tópicos Estrutura Básica B de Programas C e C++ Tipos de Dados Variáveis Strings Entrada e Saída de Dados no C e C++ INTRODUÇÃO O C++ aceita

Leia mais

Modelagem e Implementação (Incremental de um Software para Controle) de Aquário de Peixes

Modelagem e Implementação (Incremental de um Software para Controle) de Aquário de Peixes Modelagem e Implementação de Aquário de Peixes- por Jorge Fernandes - Página 1 Modelagem e Implementação (Incremental de um Software para Controle) de Aquário de Peixes Jorge Fernandes Natal, Agosto de

Leia mais

JAVA TRATAMENTO DE EXCEÇÕES

JAVA TRATAMENTO DE EXCEÇÕES JAVA TRATAMENTO DE EXCEÇÕES TRATAMENTO DE ERROS TRADICIONAL O Erro é verificado e caso ocorra, é tratado no ponto é possível a sua ocorrência. Ocorre uma mistura entre o código para resolver o problema

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Consistência e Replicação Capítulo 7 Agenda Distribuição de Conteúdo Estado versus operações Protocolos de recuperação de atualizações versus protocolos

Leia mais

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

JavaScript 2.0X 1.0 3.0X 1.1 4.0 4.05 1.2 4.06 4.61 1.3 5.0 1.4 6.0 1.5

JavaScript 2.0X 1.0 3.0X 1.1 4.0 4.05 1.2 4.06 4.61 1.3 5.0 1.4 6.0 1.5 JavaScript Diego R. Frank, Leonardo Seibt FIT Faculdades de Informática de Taquara Fundação Educacional Encosta Inferior do Nordeste Av. Oscar Martins Rangel, 4500 Taquara RS Brasil difrank@terra.com.br,

Leia mais

Computação II Orientação a Objetos

Computação II Orientação a Objetos Computação II Orientação a Objetos Fabio Mascarenhas - 2016.1 http://www.dcc.ufrj.br/~fabiom/java Breakout Componentes do Breakout Bola Raquete Tijolos Paredes Score Nem todos vão precisar de classes próprias

Leia mais

CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA A F B G C H D I

CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA A F B G C H D I ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008 2º PERÍODO - 4º MÓDULO AVALIAÇÃO MP1 DATA 06/11/2008 PROGRAMAÇÃO Dados de identificação do Acadêmico: Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO

Leia mais

INF 1007 Programação II

INF 1007 Programação II INF 1007 Programação II Apresentação da Disciplina Edirlei Soares de Lima Programação II Turma 33L Prof. Edirlei Soares de Lima Horário das Aulas: Segunda

Leia mais

AULA INTERAÇÃO ENTRE OBJETOS

AULA INTERAÇÃO ENTRE OBJETOS AULA 16-17 INTERAÇÃO ENTRE OBJETOS Curso: Informática (Subseqüente) Disciplina: Programação Orientada a Objetos Prof. Abrahão Lopes abrahao.lopes@ifrn.edu.br Objetivos Criar objetos que controlem a criação

Leia mais

POO e C++: Herança e Polimorfismo

POO e C++: Herança e Polimorfismo POO e C++: Herança e Polimorfismo Márcio Santi Luiz Fernando Martha Conceito de Herança em POO Recurso que torna o conceito de classe mais poderoso; Permite que se construa e estenda continuamente classes

Leia mais

Professora Jeane Melo

Professora Jeane Melo Professora Jeane Melo Roteiro Lista Encadeada Alocação: Estática x Dinâmica O que são Ponteiros? Ponteiros Variáveis que Armazenam Endereços de Memória Mas, toda variável não é armazenada na memória? Ponteiros

Leia mais

Guia do Processo de Teste Metodologia Celepar

Guia do Processo de Teste Metodologia Celepar Guia do Processo de Teste Metodologia Celepar Agosto de 2009 Sumário de Informações do Documento Documento: guiaprocessoteste.odt Número de páginas: 11 Versão Data Mudanças Autor 1.0 26/12/07 Criação.

Leia mais

Classes e Objetos. Prof. Leonardo Barreto Campos 1

Classes e Objetos. Prof. Leonardo Barreto Campos 1 Classes e Objetos Prof. Leonardo Barreto Campos 1 Sumário Introdução; Escopo de Classe e Acesso a Membros de Classes; Exercício; Os Métodos get e set; Separação de Interface e Implementação; Construtores

Leia mais

Departamento de Informática - PUC-Rio INF 1007 Programação 2 P1 17/04/2010

Departamento de Informática - PUC-Rio INF 1007 Programação 2 P1 17/04/2010 Departamento de Informática - PUC-Rio INF 1007 Programação 2 P1 17/04/2010 Aluno: Instruções: 1) Escreva seu nome completo, matrícula e turma em todas as folhas desta prova; 2) A prova deve ser completamente

Leia mais

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10 1. TIPOS DE DADOS... 3 1.1 DEFINIÇÃO DE DADOS... 3 1.2 - DEFINIÇÃO DE VARIÁVEIS... 3 1.3 - VARIÁVEIS EM C... 3 1.3.1. NOME DAS VARIÁVEIS... 3 1.3.2 - TIPOS BÁSICOS... 3 1.3.3 DECLARAÇÃO DE VARIÁVEIS...

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Introdução Alguns conceitos importantes Orientação a Objetos Alguns conceitos importantes Programação Estruturada X Programação OO Classes Objetos Construtores e Destrutores

Leia mais

UTILIZAÇÃO DE TECNOLOGIAS MODERNAS PARA CADASTRAMENTO DAS FAMÍLIAS DA ATENÇÃO BÁSICA DE SAÚDE DO MUNICÍPIO DE COARI

UTILIZAÇÃO DE TECNOLOGIAS MODERNAS PARA CADASTRAMENTO DAS FAMÍLIAS DA ATENÇÃO BÁSICA DE SAÚDE DO MUNICÍPIO DE COARI UTILIZAÇÃO DE TECNOLOGIAS MODERNAS PARA CADASTRAMENTO DAS FAMÍLIAS DA ATENÇÃO BÁSICA DE SAÚDE DO MUNICÍPIO DE COARI Adrya da Silva Neres 1 Elionai de Souza Magalhães 2 1 Discente do Curso Técnico Integrado

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Camada de Transporte Antonio Alfredo Ferreira Loureiro loureiro@dcc.ufmg.br Departamento de Ciência da Computação Universidade Federal de Minas Gerais UFMG/DCC Redes de Computadores

Leia mais

Linguagem SQL Restrições, Triggers e Views

Linguagem SQL Restrições, Triggers e Views FACULDADE INGÁ Unidade de Ensino Superior Ingá Ltda Ciência da Computação Linguagem SQL Restrições, Triggers e Views Prof. Erinaldo Sanches Nascimento Objetivos Especificar restrições mais gerais sobre

Leia mais