Um guia de defesa pessoal para programadores inteligentes. Gibeon Aquino
|
|
- Sara Esther Delgado Carreira
- 7 Há anos
- Visualizações:
Transcrição
1 Um guia de defesa pessoal para programadores inteligentes Gibeon Aquino
2 Como Pessoas NORMAIS se defendem no dia a dia? *Pessoa NORMAL = Toda ser humano que Não precisa lidar com código de programação de computadores
3
4
5
6 MAS essas técnicas não funcionam durante a programação
7 Programação Defensiva é a solução
8 O que é PD? Programação defensiva é um conjunto de técnicas de projeto e programação objetivando a estabilidade e a segurança de um software independentemente de seu imprevisível. A idéia pode ser vista como forma de reduzir ou eliminar a hipótese das Leis de Murphy terem efeito. Defensive_programming
9 Se defenda contra o inesperado
10 Quase uma Paranóia
11 Qual o problema com esse código? int risky_programming(char *input){ char str[1000+1]; // one more for the null character //... strcpy(str, input); // copy input //... }
12 Qual o problema com esse código? int risky_programming(char *input){ char str[1000+1]; // one more for the null character //... strcpy(str, input); // copy input //... } E se a entrada for maior que 1000 caracteres??
13 Solução mais segura... int secure_programming(char *input){ char str[1000]; //... strncpy(str, input, sizeof(str)); // copy input without exceeding the length of the destination str[sizeof(str) - 1] = '\0'; // if strlen(input) == sizeof(str) then strncpy won't NUL terminate } //...
14 Técnicas de PD bem conhecidas: Se proteja de entradas inválidas Programas problemáticos não mentem Use Assertivas Faça Design by contract Aplique técnicas de manipulação de erros Use Exceções corretamente Faça barricadas contra propagação de erros...
15 #Se proteja de entradas inválidas
16 Verifique os valores de todos os dados vindos de fontes externas Fontes externas: Arquivos, Rede, Entrada do usuário, etc. Verifique: Intervalos, tipos de dados, tamanho dos dados, caracteres válidos, expressões válidas, etc. Erros comuns: Buffer Overflow, overflow de inteiros, Injeção de SQL, HTML, JavaScript, etc.
17 Verifique os valores de todos os parâmetros de uma rotina Trate os valores dos parâmetros como dados vindos de fontes externas int sumfirstelements(int *values, int qtd){ int sum = 0; for (int i= 0; i < qtd; i++){ sum += values[i]; } return sum; Qual(is) o(s) problema(s) com este código?? } Decida o que fazer com as entradas inválidas Aplique técnicas de manipulação de erros Será visto em detalhes mais à frente
18 #Programas mortos não mentem
19 Programadores pragmáticos pensam assim: Se em algum momento o programa apresentou um comportamento inesperado, há algo muito muito errado no código Se um arquivo não pode ser aberto, ele não deve ter sido fechado corretamente em outro ponto do programa Se não foi possível alocar memória, o programa não deve estar liberando bem a memória não usada...
20 Programadores pragmáticos pensam assim: Nunca ignore os erros, melhor... tente ao máximo fazê-los acontecer o mais cedo possível E reporte o máximo de informações sobre o mesmo (Em que ponto do programa, quais os valores das variáveis, dos parâmetros, etc.) Linguagens como Java ou C# possuem mecanismos nativos para reportar a fonte do erro Uso de macros em C, por exemplo, pode ser uma alternativa para obter o mesmo resultado
21 #Faça Desig-by-contract Técnica que foca na documentação e verificação dos direitos e deveres de cada módulo de software Pré-condições Pós-condições Invariantes
22 Pré-condições O que deve ser verdadeiro para a rotina poder ser chamada (Requisitos mínimos da rotina) Pós-condições O que deve ser verdadeiro após a rotina executar Invariantes Condições que devem sempre ser verdade, antes, durante e após a execução da rotina
23 DBC na prática Existem várias bibliotecas e ferramentas que dão suporte a DBC em C, C++ e Java Alguns exemplos: Design-by-Contract-in-C jw-0216-cooltools.html settsep2011.html
24 #Use Assertivas Uma assertiva (do inglês assertion ) é um código que é usado durante o desenvolvimento para confirmar que o programa está executando como esperado
25 Se algo não pode acontecer, use assertivas para garantir que não vão! Pragmatic Programmer Book Java já possui palavra reservada para o uso de assertivas public class Teste { private static int contarmaiores(int[] elementos, int valor) { assert elementos!= null : "Parâmetro inválido. Um vetor com valores deve ser passado!"; int maiores = 0; for (int i = 0; i < elementos.length; i++) { if (elementos[i] > valor) { maiores++; } } return maiores; } public static void main(string[] args) { int[] vetor1 = { 10, 12, 34, 5, 7, 43, 21, 99 }; int[] vetor2 = null; } } contarmaiores(vetor1, 30); contarmaiores(vetor2, 30);
26 Assert em Java Surgiram no Java 1.4 Por default, são desabilitadas em Runtime Podem ser ativadas por parâmetro da JVM java -enableassertions pacote.classe
27 Dicas de uso de Assertivas Use código de tratamento de erros para situações que você espera acontecer. Use assertivas SOMENTE para situações que nunca devem acontecer 1 // Fig. 13.9: AssertTest.java 2 // Demonstrates the assert statement 3 import java.util.scanner; 4 5 public class AssertTest 6 { 7 public static void main( String args[] ) 8 { 9 Scanner input = new Scanner( System.in ); System.out.print( "Enter a number between 0 and 10: " ); 12 int number = input.nextint(); // assert that the absolute value is >= 0 15 assert ( number >= 0 && number <= 10 ) : "bad number: " + number; System.out.printf( "You entered %d\n", number ); 18 } // end main 19 } // end class AssertTest
28 Dicas de uso de Assertivas Evite colocar código executável (útil para o programa final) nas assertivas... assert(performaction())... Use assertivas para documentar e verificar pré-condições e pós-condições
29 #Aplique técnicas de manipulação de erros
30 Assertivas servem para manipular erros que nunca devem acontecer! E para aqueles que você espera acontecer??? Retornar um valor padrão Substituir pelo próximo dado válido Mostrar uma tela de erro Retornar um código de erro Registrar um log de erro em um arquivo
31 Assertivas servem para manipular erros que nunca devem acontecer! E para aqueles que você espera acontecer??? Depende da situação!!! Retornar um valor padrão Abortar Mostrar uma tela de erro Retornar um código de erro Registrar um log de erro em um arquivo
32 Técnicas de manipulação de erros comuns Retorne um valor padrão (neutro) Ex. Operação sobre string retorna uma string vazia Substitua pelo próximo dado válido Ao ler um dado inválido de um stream de vídeo continue lendo e retorne o próximo dado válido Retorne a última resposta válida Um GPS pode não retornar uma informação válida, nesse caso a última posição lida é retornada
33 Substitua por um valor válido mais próximo Ao ler um valor negativo de um velocímetro, retorne 0 (valor mais próximo válido) Registre um log em um arquivo Registre o erro em um arquivo de log e continue operando Retorne um código de erro Se o erro não for tratado localmente, retorne códigos de erros pra indicar o erro à quem o chamou
34 Chame uma rotina de processamento de erro Centralize todos os tratamentos de erros em uma rotina Trate os erros localmente Qualquer erro deve ser tratado na rotina que produziu o erro Mostre uma mensagem de erro Se for uma aplicação interativa (interage com o usuário), uma tela de erro pode ser apresentada Aborte o programa Aborte o programa se um erro severo ocorreu
35 Próximo passo... Continue aprendendo sobre o assunto lendo: Capítulo 8 do livro Code Complete. Ou Digite no Google a palavra Programação Defensiva ou Defensive Programming"
36 Obrigado! Gibeon Aquino
LÓGICA DE PROGRAMAÇÃO (JAVA) VARIÁVEIS. Professor Carlos Muniz
LÓGICA DE PROGRAMAÇÃO (JAVA) String String é uma classe contida no pacote java.lang e que descende da classe java.lang.object. De forma conceitual podemos dizer que é uma sequência de caracteres usada
Leia maisO AMBIENTE DE DESENVOLVIMENTO
Módulo 9 O AMBIENTE DE DESENVOLVIMENTO P S I 1 1 - C P T G P S I SUMÁRIO Instalação do Java JDK - Kit de Desenvolvimento Java Download do JDK Instalação do JDK Configuração da Variável de ambiente (Path)
Leia maisUnidade 3: Estruturas de Controle Parte 2 - Lógica, SWITCH, FOR, WHILE e DO WHILE Prof. Daniel Caetano
Linguagem de Programação 1 Unidade 3: Estruturas de Controle Parte 2 - Lógica, SWITCH, FOR, WHILE e DO WHILE Prof. Daniel Caetano Objetivo: Apresentar a composição lógica em estruturas de decisão e as
Leia maisUNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas
UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA Pilhas Estrutura de Dados A Estrutura de Dados Pilha Pilha é uma estrutura de dados usada em programação, que tem uma regra
Leia maisLinguagem de Programação II Implementação
Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Criando objeto Definindo valores para os atributos do objeto Método construtor Definindo valores padrão para os atributos dos
Leia maisLÓGICA DE PROGRAMAÇÃO (JAVA) ESTRUTURAS REPETIÇÃO. Professor Carlos Muniz
LÓGICA DE PROGRAMAÇÃO (JAVA) ESTRUTURAS REPETIÇÃO Estruturas de repetição Estrutura de repetição nada mais é que laços de repetições. Laços de repetições permitem que um conjunto de instruções seja repetido
Leia maisProgramação Orientada a Objetos II Java Segunda aula. Prof. Rogério Albuquerque de Almeida
Programação Orientada a Objetos II Java Segunda aula 1 Programação Orientada a Objeto II Tipos de Dados e Variáveis Operadores Operadores aritméticos Operadores relacionais Operadores lógicos Operadores
Leia maisTratamento de Exceções
Fundamentos de Programação Tratamento de Exceções Givanaldo Rocha de Souza http://docente.ifrn.edu.br/givanaldorocha givanaldo.rocha@ifrn.edu.br O que é??? É um evento que interrompe o fluxo normal de
Leia maisTratamento de Erros. Sérgio Luiz Ruivace Cerqueira
Tratamento de Erros Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Agenda Introdução Try, catch, finally Unchecked Exceptions Como levantar exceções Boas práticas O problema Calculadora numero1:
Leia maisJAVA. Professor: Bruno Toledo
JAVA Professor: Bruno Toledo Funcionamento de uma LP Em uma Linguagem de Programação (LP) como C e Pascal, temos o seguinte quadro quando vamos compilar um programa. Código fonte em c Teste.c Gera código
Leia maisCETEC Centro Paula Souza
Atualização da Competição Maratona de Programação 2018 2º Semestre Finalidade Este documento tem por finalidade informar aos professores responsáveis pelos times das unidades participantes da Maratona
Leia maisAula 4. TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS 2014 Marcelo Henrique dos Santos -
Programação Orientada a Objetos Aula 4 Programação Orientada a Objetos Entrada e Saída de Dados 1 O exemplo abaixo emprega o pacote Swing (javax.swing), que emprega componentes gráficos Java. //AloMundo
Leia maisRevisões de PG. Programação Orientada por Objetos (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa
Revisões de PG (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa Pedro Alexandre Pereira (palex@cc.isel.ipl.pt) Compilar e executar programas em Java Ficheiro fonte (Prog.java) Ficheiro
Leia mais4 TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS
Programação Orientada a Objetos Aula 4 Programação Orientada a Objetos Entrada e Saída de Dados GUI em Java: pacote Swing O exemplo abaixo emprega o pacote Swing (javax.swing), que emprega componentes
Leia maisLinguagem de Programação II Implementação
Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Implementação em Java Variáveis Palavras reservadas Pacotes Identificador this Acessando membros de outros objetos API Java Nossa
Leia maisAula de PG Novembro de 2013, LT14D e LT11D - Sobre o Tipo String do Java
Aula de PG Novembro de 2013, LT14D e LT11D - Sobre o Tipo String do Java O tipo String é uma classe da linguagem Java onde se definem muitos métodos que podemos e devemos usar para manipular cadeiras de
Leia maisprivate static Ascii ascii = new Ascii(); static List<Character> asciinumber = ascii.getasciitable(); Scanner input = new Scanner(System.
import java.util.arraylist; import java.util.list; import java.util.scanner; import cifravalida.ascii; public class Main { private static Ascii ascii = new Ascii(); static List asciinumber =
Leia maisLinguagem de programação Java
Instituto Federal de Minas Gerais Campus Ponte Nova Linguagem de programação Java Professor: Saulo Henrique Cabral Silva ENTENDENDO O JAVA 2 Entendendo o Java executando... A instância da JVM irá iniciar
Leia maisINTRODUÇÃO AO JAVA PARA PROGRAMADORES C
PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB INTRODUÇÃO AO JAVA PARA PROGRAMADORES C Prof. Dr. Daniel Caetano 2011-2 Visão Geral 1 2 3 4 5 6 Estrutura de Programa Java Elementos Básicos do Java Controle de Fluxo
Leia maisIntrodução a classes e objetos. Prof. Marcelo Roberto Zorzan
Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Aula de Hoje Abstração de Dados Classes e Objetos Definição de Métodos Métodos com parâmetro Abstração de Dados Processo mental através do qual
Leia maisALOCAÇÃO DINÂMICA DE MEMÓRIA
INE5408 Estruturas de Dados Semestre 2008/1 Prof. Leandro J. Komosinski ALOCAÇÃO DINÂMICA DE Memória de Computador 1 byte = 8 bits (ex.: 00100110) 1 KB = 1024 bytes 1 MB = 1024 KB 1 GB = 1024 MB Meu computador
Leia maisRevisões de PG. Programação Orientada por Objetos (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa
Revisões de PG (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa Pedro Alexandre Pereira (palex@cc.isel.ipl.pt) Compilar e executar programas em Java Ficheiro fonte (Prog.java) Ficheiro
Leia maispublic class ExecScanner1 { public static void main(string[] args) { // TODO code application logic here
public class ExecScanner1 { public static void main(string[] args) { // TODO code application logic here } } import java.util.scanner; public class ExecScanner1 { public static void main(string[] args)
Leia maisINF1636 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 maisFundamentos da programação Parte - 1
Fundamentos da programação Parte - 1 1. Objetivos Nesta lição discutiremos as partes básicas de um programa em Java. Começaremos explicando as partes do programa Hello.java mostrado na última lição. Discutiremos
Leia maisPROGRAMAÇÃO I A LINGUAGEM DE PROGRAMAÇÃO JAVA II
PROGRAMAÇÃO I A LINGUAGEM DE PROGRAMAÇÃO JAVA II Prof. Dr. Daniel Caetano 2017-1 Objetivos Recordar as estruturas condicionais switch~case e de repetição while, for e do~while Conhecer os tipos não nativos:
Leia maisPROGRAMAÇÃO I A LINGUAGEM DE PROGRAMAÇÃO JAVA I
PROGRAMAÇÃO I A LINGUAGEM DE PROGRAMAÇÃO JAVA I Prof. Dr. Daniel Caetano 2017-1 Objetivos Conhecer os tipos de dados, constantes e como declarar variáveis Conhecer os operadores e expressões Conhecer e
Leia maisptraux = dynamic_cast <PacoteNoite *> (vetor[i]); if (ptraux) auxiliar += vetor[i]->calculacusto();
429 //conteúdo do arquivo principalpacote.cpp... "5 - Imprimir o custo total apenas dos pacotes que serao entregues a noite;"
Leia maisTratamento de Exceções. LPG II Java. Tratamento de Exceções. Conceito de Exceções. Exemplo
Tratamento de Exceções LPG II Java Tratamento de Exceções Introdução Princípios do tratamento de exceções em Java Cláusula try Cláusula catch Cláusula finally Hierarquia de exceções em Java Considerações
Leia maisINF1337 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 maisDesenvolvendo aplicações Java
José Roberto Madureira Junior Adaní Cusin Sacilotti Adriana Rodrigues Reginaldo Sacilotti Desenvolvendo aplicações Java Primeira Edição São Paulo 2017 Sumário 1 INTRODUÇÃO AO JAVA... 1 1.1 A PLATAFORMA
Leia maisArrays em Java. Introdução à Programação. Bruno Cartaxo
Arrays em Java Introdução à Programação Bruno Cartaxo http://sites.google.com/site/brunocartaxo bruno.cartaxo@olinda.ifpe.edu.br Tópicos a serem discutidos na disciplina Introdução a computadores e algoritmos
Leia maisBacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java
Linguagem Java Objetivos????? ADAPTAR O TEXTO ABAIXO????? Aprender a sintaxe da Estrutura de Repetição ENQUANTO-FAÇA na linguagem PORTUGOL Aprender a resolver problemas que requeiram o uso de ESTRUTURAS
Leia maisLaboratório de Programação. Aula 12 Java 5COP088. Aula 12 Exceções Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr
5COP088 Laboratório de Programação Aula 12 Exceções Prof. Dr. Sylvio Barbon Junior 1 Sumário: 1) Manipulação de Exceções; 1) Try e Catch 2) Finally 3) Propagação (Throw e Throws) 2) Erros e Exceções Comuns;
Leia maisProgramação de Computadores II TCC /Turma A 1
Programação de Computadores II TCC 00.174/Turma A 1 Professor Leandro A. F. Fernandes http://www.ic.uff.br/~laffernandes Conteúdo: Tratamento de exceções Material elaborado pelos profs. Anselmo Montenegro
Leia maisTratamento de Exceções. Profa. Thienne Johnson EACH/USP
Tratamento de Exceções Profa. Thienne Johnson EACH/USP Java, como programar Deitel & Deitel Capítulo 14 Uma exceção é uma indicação de um problema que ocorre durante a execução de um programa O tratamento
Leia maisLógica de Programação. Lógica de Programação com Java
Lógica de Programação Lógica de Programação com Java Sumário Lógica de programação 1. Algoritmos 2. Comentários no código 3. Tipos de dados 4. Constantes e Variáveis 5. O que devemos saber para começar
Leia maisAULA 2: INTRODUÇÃO A PYTHON. Luís Feliphe Silva Costa
AULA 2: INTRODUÇÃO A PYTHON Luís Feliphe Silva Costa Sumário Variáveis simples Entrada e Saída de dados Operadores Estruturas Condicionais Estruturas de repetição Funções Tratamento de erros Variáveis
Leia maisTipos de dados e comandos POO
Tipos de dados e comandos POO Prof. Marcio Delamaro 1/46 Objetivo Vamos ver quais são os tipo de dados primitivos da linguagem Vamos ver quais são os principais comandos 2/46 Tipos Tipo Tamanho int 4 bytes
Leia mais1. Estude e implemente a classe Exemplo1 apresentada abaixo:
P. Fazendeiro & P. Prata POO FP09/1 Exceções Uma exceção (Exception) é um sinal gerado pela máquina virtual de Java em tempo de execução indicando uma situação de erro da qual é possível recuperar. O objectivo
Leia maisAula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes
Aula 08 Estruturas de Condição Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Entrada de Dados; Estruturas de Controle: Estrutura de Sequência;
Leia maisSeleção Múltipla Laços (while, do-while, for) AULA 05
Introdução a Programação IF669 http://www.cin.ufpe.br/~if669 Seleção Múltipla Laços (while, do-while, for) AULA 05 Ricardo Massa F. Lima rmfl@cin.ufpe.br Sérgio C. B. Soares scbs@cin.ufpe.br Até aqui...
Leia maisVetores Unimensionais
Vetores Unimensionais Objetivos Entender a importância e a necessidade do uso de Vetores Definição de Manipulação de Vetores Inserir elementos em um vetor (usando laços ou não) Acessar elementos de um
Leia maisProgramação de Computadores I. Aula - Vetores. Professor Ilaim Costa Junior.
Programação de Computadores I Aula - Vetores Professor Ilaim Costa Junior www.ic.uff.br/~ilaim Vetores Estruturas de dados composta Permitem a uma variável armazenar múltiplos valores de um mesmo tipo
Leia maisIntrodução. Por que desenvolver ALGORITMO?
Introdução Programa Computacional busca da necessidade de solução de um problema particular: a geração automática de documentos, o controle de um equipamento eletrodoméstico, a transmissão de informações
Leia maisLinguagens de Programação. Programação Funcional e Haskell Programação Interativa Thiago Alves
Linguagens de Programação Programação Funcional e Haskell Programação Interativa Thiago Alves 1 Introdução Vimos como Haskell pode ser usado para escrever programas batch que recebem todas suas entradas
Leia maisLinguagens de Programação Classificação
Classificação Classificação A proximidade que a linguagem de programação tem com a humana determina sua classe (o nível): Linguagem de máquina (primeira geração) Linguagem assembly - de montagem (segunda
Leia maisIntroduçã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 maisEstruturas de controle Parte 1
1. Objetivos Estruturas de controle Parte 1 Nas lições anteriores, foram mostrados programas seqüenciais, onde as instruções foram executadas uma após a outra de forma fixa. Nesta lição, discutiremos estruturas
Leia maisUniversidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java
Guia da Sintaxe do Java TIPOS PRIMITIVOS DE DADOS DO JAVA São os tipos nativos de dados do Java, que podem ser usados na declaração de atributos, variáveis, parâmetros. Tipo primitivo Tamanho Valor padrão
Leia maisLógica de Programação e Algoritmos com exemplos na linguagem JAVA
Lógica de Programação e Algoritmos com exemplos na linguagem JAVA Cap. 5 Programação Estruturada: Funções Conteúdo: 5.1 Programação estruturada ou modular... 66 5.2 Funções... 67 5.3 Passagem de parâmetros...
Leia maisAlgoritmos e Programação
Algoritmos e Programação Aula 9 Subalgoritmos, funções e passagem de parâmetros Profa. Marina Gomes marinagomes@unipampa.edu.br 22/06/2017 Engenharia de Computação - Unipampa 1 Modularização Facilita a
Leia maisPuca Huachi Vaz Penna
Aula 3 C++: variáveis e expressões aritméticas 2017/1 BCC201 Introdução à Computação Turmas 61, 62, 63, 64, 65 e 66, 32 e 33 Puca Huachi Vaz Penna Departamento de Computação Universidade Federal de Ouro
Leia maisPara entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:
Introdução a Orientação a Objetos com Java Autor: Professor Victor Augusto Zago Menegusso. Orientação a Objetos É um paradigma de programação que define a estrutura de um programa baseado nos conceitos
Leia maisTécnicas de Programação II
Técnicas de Programação II Aula 04 Arrays Edirlei Soares de Lima Arrays Array é um mecanismo que nos permite armazenar um conjunto de valores na memória do computador. Em Java,
Leia maisAlgoritmia e Programação APROG. Vetores. Algoritmia e Java. Nelson Freire (ISEP DEI-APROG 2012/13) 1/32
APROG Algoritmia e Programação Vetores Algoritmia e Java Nelson Freire (ISEP DEI-APROG 2012/13) 1/32 Arrays Introdução Enquadramento Interesse Noção Tipos Vetor Matriz Vetores Noções Básicas Interesse
Leia maisUnidade 7: Documentação de Código A Importância dos Comentários Prof. Daniel Caetano
Linguagem de Programação 1 Unidade 7: Documentação de Código A Importância dos Comentários Prof. Daniel Caetano Objetivo: Desenvolver a habilidade de comentar código adequadamente INTRODUÇÃO Até o momento
Leia maisTipos, 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 maisTipos, 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 maisAnálise de Programação
Análise de Programação Fundamentos da Linguagem de Programação Java Prof. Gilberto B. Oliveira Variáveis Atributos: Variáveis Declaradas fora de um método, sem o modificador static Variáveis membro ou
Leia maisPROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO
COLÉGIO ESTADUAL ULYSSES GUIMARÃES CURSO TÉCNICO PROFISSIONALIZANTE EM INFORMÁTICA ERINALDO SANCHES NASCIMENTO PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO FOZ DO IGUAÇU 2013 LISTA
Leia maisProgramação Orientada a Objetos
Programação Orientada a Objetos Engenharia da Computação Professor: Rosalvo Ferreira de Oliveira Neto Dados Pessoais Rosalvo Ferreira de Oliveira Neto MSc. em ciência da computação (UFPE) rosalvo.oliveira@univasf.edu.br
Leia maisArray em Java. Figura 1 - Exemplo de um array de inteiros
Array em Java 1. Objetivos Nesta lição, abordaremos Array em Java. Primeiro, definiremos o que é array e, então, discutiremos como declará-los e usá-los. Ao final desta lição, o estudante será capaz de:
Leia maisWorking 05 : Modularização
Universidade Federal do Espírito Santo Centro Tecnólogico Working 05 : Modularização Objetivos: Entender como é estruturada uma função em C e lembrar como é feita a comunicação entre funções; Praticar
Leia mais03/10/14. Testes. Testar Depurar. Técnicas básicas. Exemplo: Teste o código em seus limites. Simplificando
Testes Prof. Dr. Alfredo Goldman Prof. Dr. Fabio Kon Departamento de Ciência da Computação IME / USP Testar Depurar Simplificando Depurar - o que se faz quando se sabe que o programa não funciona; Teste
Leia maisTratamento de Exceção. Tratamento de Exceções. Vantagens de TE. Exemplos de Exceções. Exemplo: Divide1 (sem TE)
DCC / ICEx / UFMG Tratamento de Exceção Tratamento de Exceções Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Uma exceção é uma indicação de problema na execução do programa Exceção foge ao fluxo
Leia maisAula 7 Modularização. Processamento da Informação. Universidade Federal do ABC
Aula 7 Modularização Processamento da Informação Universidade Federal do ABC Funções (= métodos em Java) Já usamos algumas funções sem nos darmos conta: System.out.println Math.random, Math.sqrt,... scanner.nextint(),
Leia maisINF1636 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 3 Ponteiros e Variáveis de Objeto Construtores e Blocos de Inicialização
Leia maisLição 4 Fundamentos da programação
Lição 4 Fundamentos da programação Introdução à Programação I 1 Objetivos Ao final desta lição, o estudante será capaz de: Identificar as partes básicas de um programa em Java Reconhecer as diferenças
Leia maisCONTEÚDO 04 VETORES. Disciplina: Algoritmos e POO Professora: Alba Lopes.
CONTEÚDO 04 VETORES Disciplina: Algoritmos e POO Professora: Alba Lopes alba.lopes@ifrn.edu.br http://docente.ifrn.edu.br/albalopes INTRODUÇÃO Variável Analogia: uma caixa, na qual você pode dar o nome
Leia maisMódulo 1. Introdução. Programação Orientada a Objetos I Java (Rone Ilídio)
Módulo 1 Introdução Programação Orientada a Objetos I Java (Rone Ilídio) Dados Importantes E-mail: rone@ufsj.edu.br Página: www.ronepage.com Deitel, H. M., Deitel, T. J., Java, editora Bookman, 6ª edição
Leia maisJava e sua Sintaxe. Estrutura mínima de um programa em Java: public class Exemplo { }
Java e sua Sintaxe Java e sua Sintaxe Estrutura mínima de um programa em Java: public class Exemplo { } Como todo programa deve ter um início, convenciona-se que a primeira ação de um programa é a execução
Leia maisInstituto de Informática Estrutura de Dados II
Instituto de Informática Estrutura de Dados II Revisão de Métodos em Classes Aplicada a Estrutura de Dados Básicas 20/08/2018 Profa. Lucília Gomes Ribeiro Prof. Dirson S Campos Programação em Java q O
Leia maisINF1337 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 3 Ponteiros e Variáveis de Objeto Construtores
Leia maisLinguagem de Programação JAVA. Tiago Alves de Oliveira
Linguagem de Programação JAVA Tiago Alves de Oliveira Agenda Exercícios sobre Operadores Exercícios sobre String Exercícios sobre a Biblioteca Math Exercícios de Leitura e JOPTIONPANE Trabalho Operadores
Leia maisClasses o Objetos. Classes, objetos, métodos e variáveis de instância
Classes o Objetos Um recurso comum de cada aplicativo feito até agora é que todas as instruções que realizavam tarefas localizavam-se no método main. Se você tornar parte de uma equipe de desenvolvimento
Leia maisIntrodução à Programação
Introdução à Programação Introdução a Linguagem C Construções Básicas Programa em C #include int main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius = 30; farenheit = 9.0/5
Leia maisObjetivos. Responder o que é Java; Mostrar as vantagens e desvantagens do Java; Compilar e executar um programa simples.
O que é Java Material baseado na apostila FJ-11: Java e Orientação a Objetos do curso Caelum, Ensino e Inovação, disponível para download em http://www.caelum.com.br/apostilas/ 1 Objetivos Responder o
Leia maisI.1 Introdução BitSet I.2 Manipulação de bits e os operadores de bits E sobre bits & OU inclusivo sobre bits OU exclusivo sobre bits
I Manipulação de bits I.1 Introdução Este apêndice apresenta uma extensa discussão sobre os operadores de manipulação de bits e também sobre a classe BitSet que permite a criação de objetos do tipo array
Leia maisCurso: Análise e Desenvolvimento de Sistemas. (Introdução a disciplina Algoritmos e Programação)
Curso: Análise e Desenvolvimento de Sistemas Disciplina Algoritmos e Programação (Introdução a disciplina Algoritmos e Programação) Prof. Wagner Santos C. de Jesus wsantoscj@gmail.com Conceito de Lógica
Leia maisCA: 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 maisIdiomas de Programação
DCC / ICEx / UFMG Idiomas de Programação Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Definição de Idiomas Idiomas são padrões de baixo nível específicos de uma linguagem de programação Cada idioma
Leia maisPersistência. Prof. Alberto Costa Neto Linguagens de Programação. Departamento de Computação Universidade Federal de Sergipe
Persistência alberto@ufs.br de Programação Departamento de Computação Universidade Federal de Sergipe Retrospectiva Quanto ao Tempo de Vida Variáveis Estáticas Variáveis Stack-Dinâmicas Variáveis Heap-Dinâmicas
Leia maisINTRODUÇÃO A LINGUAGEM JAVA
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A LINGUAGEM JAVA Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso Técnico
Leia maisAlgoritmos 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 maisMétodos. Utilizados para dividir o programa em subprogramas
Métodos Isidro Métodos Utilizados para dividir o programa em subprogramas Métodos Porque é importante o uso de métodos? Evita retrabalho Diminui o tamanho do código Aumenta a clareza Dividir e Conquistar
Leia maisProf. A. G. Silva. 13 de novembro de Prof. A. G. Silva INE5603 Introdução à POO 13 de novembro de / 1
INE5603 Introdução à POO Prof. A. G. Silva 13 de novembro de 2017 Prof. A. G. Silva INE5603 Introdução à POO 13 de novembro de 2017 1 / 1 Introdução à manipulação de arquivos Prof. A. G. Silva INE5603
Leia mais1 Da aula teórica ao Java
Universidade Federal do ABC Bacharelado em Ciência da Computação Processamento da Informação - Prof. Fabrício Olivetti de França Guia de tradução entre Java e outras linguagens 1 Da aula teórica ao Java
Leia maisProgramação Orientada a Objetos II
Programação Orientada a Objetos II Introdução Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com www.bolinhabolinha.com Apresentação Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Ementa Introdução ao Desenvolvimento
Leia maisUm Modelo Semântico para a Linguagem Java Jorge Henrique Cabral Fernandes CIC-UnB Junho de Introdução
Um Modelo Semântico para a Linguagem Java Jorge Henrique Cabral Fernandes CIC-UnB Junho de 2004 Introdução Este texto apresenta um modelo semântico inicial para um subconjunto da linguagem Java. A Figura
Leia maisDisciplina de Algoritmos e Programação
Disciplina de Algoritmos e Programação Último Conteúdo Estruturas de condição Estrutura condicional simples Utilização da estrutura de condição if com expressões lógicas simples Utilização do comando if
Leia mais1/5 : 29/06/2004. (marque com um "X"): Custódio Dirceu Marcus Vinícius ! " # $ % & ' PARTE TEÓRICA
Duração: minutos. consulta. Não esqueça de assinalar o seu nome, a sua turma e o nome do seu professor ao lado. Parte teórica (total: pontos) Cada questão tem apenas resposta certa. Cada resposta certa
Leia maisMétodos em Java. Prof. Esp. André Aparecido da Silva (Aulas 31 a 33) Disponível em:
Métodos em Java Prof. Esp. André Aparecido da Silva (Aulas 31 a 33) Disponível em: http://www.oxnar.com.br/aulas/java/ Os métodos são conhecidos como funções, ações de execuções ou procedimentos, sendo
Leia maisESQUEMA AULA PRÁTICA 1
P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente JBuilder Introdução à Linguagem de Programação JAVA 0 Inicie o ambiente de desenvolvimento integrado JBuilder. Start
Leia maisTratamento de Exceções. Julio Cesar Nardi
Tratamento de Exceções Julio Cesar Nardi Tratamento de Exceções Objetivos: Identificar os tipos de erros em programas Java; Compreender o mecanismo de controle de exceções; Agenda Controle de Exceções
Leia maisUniversidade Federal de Goiás Instituto de Informática 1ª Prova de Introdução a Programação 06/04/11
Universidade Federal de Goiás Instituto de Informática 1ª Prova de Introdução a Programação 06/04/11 Instruções: 1. A prova deve ser realizada individualmente e sem consultas. 2. As respostas deverão ser
Leia maisExercícios Resolvidos. Java Básico
Exercícios Resolvidos Java Básico 1. Escrever um programa java que receba dois números e exiba o resultado da sua soma. // Programa de adição que permite a soma de dois números // Programa utiliza a classe
Leia maisDesenvolvimento Modular de Procedimentos
Desenvolvimento Modular de Procedimentos Em Java os Procedimentos implementam-se com Métodos Desenho Modular de Procedimentos A melhor metodologia para o desenvolvimento de procedimentos com alguma dimensão
Leia mais