Programação Orientada a Objetos
|
|
- Oswaldo da Cunha
- 5 Há anos
- Visualizações:
Transcrição
1 1/61 Programação Orientada a Objetos Introdução
2 2/61 #include <iostream> int main() { std::cout << "Bem-vindos a FCM-702 << std::endl; }
3 Número de linhas Ano SO Linhas (milhões) 1993 Windows NT Windows NT Windows NT Windows Windows XP Windows Server /61
4 Número de linhas SO Linhas (milhões) Debian Debian Debian Debian OpenSolaris 9.7 FreeBSD 8.8 Mac OS X 86 LinuxKernel LinuxKernel LinuxKernel /61
5 5/61 Custo Debian 2.2 (caso desenvolvido por empresa) 56 milhões de linhas pessoas-ano (4.000 linhas/pessoa/ano) 1,9 bilhão de dólares! Dados da Wikipedia.
6 6/61 Taxa de erros Após depuração! Software comercial: 5 para cada 1000 linhas Software militar: 1 para cada 1000 linhas
7 7/61 Desenvolvimento Ciclo de Vida
8 8/61 Ciclo de Vida Um software apresenta ciclo de vida Algumas fases do ciclo de vida: Especificação Desenvolvimento Manutenção
9 9/61 Especificação Antes de iniciar a programação deve-se saber o que se pretende com o programa. Especificação deve ser feita em conjunto com o cliente (usuário). Especificação deve resultar num contrato. Contratos com especificação formal são as soluções ideais.
10 Desenvolvimento Engloba: Programação. Testes. Documentação. O desenvolvimento deve partir da especificação. 10/61
11 Programação Deve fornecer uma implementação do produto especificado. Um método sistemático precisa ser usado para: Reduzir incidência de erros. Simplificar programação. Fornecer uma estrutura de comunicação entre diferentes programadores. Idealmente devem ser usados métodos formais. 11/61
12 Testes O programa deve ser continuamente testado. Os testes devem verificar: Que o programa esteja executando corretamente. Que ele seja adequado aos objetivos originais. Testes também ajudam a refinar a especificação. São realizados geralmente em duas fases: Alfa: testes internos. Beta: testes externos. 12/61
13 13/61 Documentação Envolve dois aspectos: Documentação externa: manuais de usuário, explicando as funcionalidades do software e seu uso. Permite ao usuário tirar proveito do software. Documentação interna: comentários no código e documentos descritivos. Permitem a compreensão do código do programa.
14 14/61 Manutenção Envolve todas as atividades relacionadas com programação do software após ele haver sido entregue ao usuário. Principais: Correção de erros. Parte do desenvolvimento adicional (novas versões que não impliquem em mudanças significativas).
15 Erros Erros de implementação. Erros internos. Erros de interação. Erros de compreensão. Erros de especificação. 15/61
16 16/61 Versões Usuários requerem novas funcionalidades ao iniciar a utilização do software. Mudanças externas (ex: legislação, novas técnicas industriais) requerem adaptação do software. Novas tecnologias permitem uma expansão das funcionalidades.
17 Histórico 17/61
18 18/61 Espaço Restrito Computadores iniciais tinham espaço para apenas alguns milhares de palavras. Muitas palavras eram necessárias para os dados do programa. Pouco espaço restante para o código do programa. Programas eram simples e pequenos.
19 19/61 Linguagem de Máquina Programas precisavam (e podiam) ser escritos como uma seqüencia de instruções de máquina. A=B+C LD R1, 1001 LD R2, 1002 ADD R1, R2 ST 1000, R1 HALT
20 Macro Assemblers Novas arquiteturas mais rápidas e com mais memória permitiram que o computador executasse parte do processo (geração do código binário). LD R1, _B LD R2, _C ADD R1, R2 ST _A, R1 HALT VAR _A VAR _B VAR _C MACRO SOMA (Z,X,Y) LD R1, X LD R2, Y ADD R1, R2 ST Z, R1 END MACRO SOMA (_A, _B, _C) HALT VAR _A VAR _B VAR _C 20/61
21 21/61 Linguagens de Alto Nível Novos desenvolvimentos permitiram operações mais complexas. Surgiram as linguagens de alto nível. Essas linguagens permitem ao programador esquecer a arquitetura do sistema e se concentrar no problema.
22 22/61 Complexidade Maior facilidade de programação estimulou o desenvolvimento de programas mais complexos. Programas mais complexos têm compreensão mais difícil. Técnicas de programação são introduzidas para facilitar o desenvolvimento. Volta-se ao primeiro ponto...
23 23/61 Complexidade Softwares atuais são muito complexos. Lembre-se dos números de linhas! Complexidade gera a chamada crise do software.
24 24/61 Equipes Um programador consegue desenvolver no máximo uns poucos milhares de linhas de código depurado por ano. Programas complexos precisam ser desenvolvidos por equipes de programadores. Limites de tempo exigem equipes ainda maiores. Os programadores precisam trabalhar efetivamente em equipe.
25 25/61 Divisão de Trabalho O trabalho precisa ser distribuído entre os programadores. É necessário determinar precisamente a forma de interação entre as diversas partes. Deve ser possível realizar testes (parciais) de partes sem que tudo esteja pronto. É necessário o uso de técnicas precisas de programação.
26 26/61 Técnica e Linguagem Idealmente a técnica utilizada deve ser refletida na linguagem. Se a técnica de programação não tem apoio na linguagem toda a informação estrutural fica externa ao código. Isso dificulta a implementação. Informação fica rapidamente desatualizada.
27 Orientação a Objetos Orientação a objetos usada para: Organização do software. Programação. Procura auxiliar na programação: Isolando detalhes de implementação. Facilitando o reaproveitamento de código. Facilitando o desenvolvimento de códigos extensíveis. 27/61
28 Programação Estruturada 28/61
29 29/61 Estruturas de Controle Substituição de código deve ser facilitada. Substituição é dificultada se um bloco a ser substituído tem múltiplos pontos de entrada ou múltiplos pontos de saída. Programação estruturada: cada bloco possui apenas um ponto de entrada e um ponto de saída.
30 Múltiplas Entradas Exemplo de múltiplas entradas: if (a > b) goto la; tmp = a; a = b; b = tmp; while (a!= b) { if (b > a) { tmp = a; a = b; b = tmp; } la: a -= b; } 30/61
31 Múltiplas Saídas Exemplo de múltiplas saídas: i = 0; while (i < n) { if (dados[i] == chave) goto fim; i++; } dados[i] = chave; cont[i] = 0; n++; fim: cont[i]++; return i; 31/61
32 32/61 Estruturas Padrão Desenvolvimento de um conjunto de estruturas padrão: Condicional (if). Seleção (switch). Repetição (while, for, do). Uso de rotinas (funções).
33 33/61 Rotinas Rotinas auxiliam na estruturação: O corpo da rotina pode ser inteiramente substituído (tem existência separada). A interação com o código restante é determinada por: Parâmetros. Valores de retorno. Variáveis globais utilizadas. Evitando variáveis globais desacoplamos a rotina de seu contexto.
34 34/61 Estrutura de Dados Dados distintos possuem relações entre si. As relações devem preferencialmente ser expressas na linguagem de programação. Para isso foram introduzidas técnicas de estruturação de dados.
35 35/61 Exemplo Precisamos manter uma lista de números. Além de guardar os números precisamos saber quantos números estão armazenados na lista. Primeira opção: Um vetor para guardar os números. Uma variável para indicar quantos números foram armazenados.
36 36/61 Exemplo Lista de inteiros: int lista[100]; int n; n = 0; /* outras operações */ lista[n] = 3; n++;
37 37/61 Problemas As variáveis lista e n são relacionadas logicamente, mas independentes no código. O código não apresenta a informação semântica da relação entre as duas variáveis. Segunda opção: Usar uma única variável para guardar tanto a lista como o contador. Permitir variáveis com estrutura interna.
38 38/61 Exemplo O mesmo exemplo usando dados estruturados: struct Lista { int lista[100]; int n; } umalista; umalista.n = 0; /* outras operações */ umalista.lista[umalista.n] = 3; umalista.n++;
39 39/61 Vantagens Contador e lista são claramente relacionados pelo uso de uma única variável. A mesma estrutura pode ser utilizada para outras listas semelhantes (simplesmente declarando novas variáveis desse tipo). No caso anterior, os lista e n das diversas listas não serão confundidos.
40 Orientação a Objetos 40/61
41 Estruturas e Operações A estruturas de dados são associadas geralmente operações. Ex: Na lista de inteiros: Inserção. Busca. Realizadas através e rotinas que operam sobre variáveis da estrutura. 41/61
42 Exemplo Lista de números e operações de inserção e busca nessa lista struct Lista { int lista[100]; int n; }; bool busca(lista *lst, int chave) { int i = 0; while (i < lst->n && lst->lista[i]!= chave) i++; return!(i == lst->n); } void insere(lista *lst, int valor) { lst->lista[lst->n] = valor; lst->n++; } 42/61
43 43/61 Problema Existe uma separação no código entre as estruturas utilizadas para representar os dados e as operações sobre elas. É interessante que haja uma ligação sintática entre os dados estruturados e as operações sobre eles. Isto está relacionado com tipos abstratos de dados.
44 Tipos Abstratos de Dados Ligam novos tipos de dados com as operações sobre eles. Permitem separar interface de implementação: Interface: a forma como o cliente enxerga o tipo. Implementação: a representação interna do tipo e a forma de implementação das operações. Isto providencia o que é conhecido com encapsulação da implementação. 44/61
45 Exemplo Lista de números e suas operações class Lista { int lista[100]; int n; public: bool busca(int chave); void insere(int valor); }; bool Lista::busca(int chave) { /*... */ } void Lista::insere(int valor) { lista[n] = valor; n++; } 45/61
46 Encapsulação Implementação (dados e possivelmente rotinas) fica encapsulada e inacessível para o cliente. Pode ser utilizada apenas por rotinas ligadas ao próprio tipo de dados. Erro na representação interna se deve a erro em alguma das rotinas do tipo. Se quisermos mudar a representação do tipo isso não afetará os clientes desde que a interface permaneça inalterada. 46/61
47 Exemplo Mudança da lista para lista ligada: class Lista { struct No { int val; No *prox; }; No *lista; public: /* Outros métodos */ bool busca(int chave); void insere(int valor); }; bool Lista::busca(int chave) { /*... */ } void Lista::insere(int valor){ No *novo = new No; novo->val = valor; novo->prox = lista; lista = novo; } 47/61
48 48/61 Representação Implementação Interface
49 49/61 Interação entre Objetos Mensagens
50 50/61 Composição Um objeto pode ser constituído de outros objetos, suas partes. Por exemplo: um carro tem motor, chassi, distribuição, sistema elétrico, etc. Cada uma das partes pode ser descrita por um tipo de dados distinto. Isso é denominado composição.
51 Composição 51/61
52 52/61 Herança Alguns tipos podem ser relacionados com outros por relação de subconjunto. Por exemplo: carro é um veículo, e portanto tem características e comportamento comuns a todos os veículos (forma de tração, capacidade de carga, anda, para, etc.). Esse tipo de relação pode ser indicada em orientação a objetos por meio de herança.
53 Cachorros com classe... class Comida { /*... */ }; class Animal { public: void anda(); void come(comida &c); }; class Cachorro : public Animal { public: void late(); }; class RacaoDeCachorro : public Comida { }; /*... */ RacaoDeCachorro mac_cao; Cachorro rex; rex.anda(); rex.come(mac_cao); rex.late(); 53/61
54 54/61 Usos de Herança Permite descrever sintaticamente a relação de subconjunto existente entre dois tipos. Permite reaproveitar código previamente desenvolvido para um tipo em tipos similares (subtipos). Permite abstrair características comuns a um conjunto de tipos.
55 55/61 Nomenclatura O tipo mais geral é chamado classe base ou superclasse. O tipo mais específico é chamado classe derivada ou subclasse. Uma hierarquia de classes indica uma ordem de classes base e derivadas, numa estrutura normalmente hierárquica.
56 56/61 Polimorfismo Se diversos objetos são de tipos derivados (direta ou indiretamente) de uma mesma classe base, então eles têm algumas características e comportamento em comum. Essa parte comum é definida pelas características presentes na classe base. Se existem características comuns, deve ser possível efetuar operações similares sobre todos esses objetos.
57 57/61 Polimorfismo Ao efetuarmos a operação sobre os diversos objetos da coleção desejamos que essa operação se adapte aos distintos tipos desses objetos. Se não sabemos de antemão quais os tipos dos objetos e isto precisa ser decidido no momento da execução, então estamos lidando com polimorfismo.
58 Exemplo Num software de desenho temos diversos tipos de figuras. Todas as figuras têm os mesmos tipos de comportamento: desenhar, mover, apagar, copiar, etc. Cada tipo de figura (círculo, triângulo, quadrado, etc.) tem uma forma diferente de realizar essas operações. Operações devem ser realizadas sobre grupos de figuras. 58/61
59 59/61 Exemplo Por exemplo: mover 5 figuras diferentes simultaneamente. As figuras que devem ser movidas são inseridas numa coleção. A ordem de mover é dada a todas as figuras dessa coleção. Cada figura aplica a operação de mover definida por seu tipo.
60 60/61 Vantagens Generalidade: uma algoritmo apenas precisa indicar que uma operação é necessária, mas não a forma de executá-la e portanto é válido para dados de todos os tipos compatíveis. O algoritmo não precisa saber de antemão todos os tipos de dados com os quais irá operar.
61 61/61 Continuação Detalhamento desses conceitos. Utilização desses conceitos para programação usando a linguagem C++. Detalhes da linguagem. Uso dos conceitos na linguagem. Alguns (vários?) conceitos adicionais.
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 maisPanorâmica da Programação Orientada a Objetos
Panorâmica da Programação Orientada a Objetos Programação orientada a objetos (POO) é uma das maiores inovações na área de desenvolvimento de software. É importante você entender a POO e limitações das
Leia maisProgramação Orientada a Objetos HERANÇA E COMPOSIÇÃO
Programação Orientada a Objetos HERANÇA E COMPOSIÇÃO Renato Dourado Maia Universidade Estadual de Montes Claros Engenharia de Sistemas Unidade IV Unidade IV Herança e Composição: Herança simples. Composição.
Leia maisDaniel Wildt
Orientação a Objetos 1 Daniel Wildt http://danielwildt.blogspot.com Agenda 2 Orientação a Objetos Classe x Objeto Representação classe Atributos / operações Construtores e Destrutores Liberando memória
Leia maisFundamentos 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 maisLinguagem de programação Programação Orientada a objetos
Instituto Federal de Minas Gerais Campus Ponte Nova Linguagem de programação Programação Orientada a objetos Professor: Saulo Henrique Cabral Silva Paradigma da orientação a objetos Paradigma = forma de
Leia maisCompiladores 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 maisProgramação Orientada a Objetos
Programação Orientada a Objetos Herança e Polimorfismo Msc. Paulo de Tarso F. Júnior 1 Projeto Orientado a Objetos O que desejam? Produção de projetos conceitualmente simples o bastantes para serem entendidos
Leia maisLinguagem 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 maisIntrodução à Programação Aula 04. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação
Introdução à Programação Aula 04 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação QUAL LINGUAGEM IREMOS ESTUDAR? 2 Introdução à Programação Linguagens
Leia maisProgramaçã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 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 maisPolimorfismo. O que é polimorfismo?
O que é polimorfismo? Polimorfismo Significa que variáveis podem referenciar mais do que um tipo. Não é um conceito novo e várias linguagens de programação aplicam. Funções são polimórficas quando seus
Leia maisSEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS
SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS Prof. Dr. Daniel Caetano 2014-1 DISCUSSÃO Visão Geral dos Paradigmas Quais os paradigmas mais comuns? Do que é composto um programa
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 mais1 Introdução e Conceitos básicos
1 Introdução e Conceitos básicos Aula 02 Sumário Capítulo 1 Introdução e Conceitos básicos 1.1 Modelos 1.2 Tipos primitivos de dados 1.3 Tipo Abstrato de dados 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2
Leia maisLinguagem de Programação. Thiago Leite Francisco Barretto
Linguagem de Programação Thiago Leite Francisco Barretto SCHILDT, H. C Completo e Total. 3ª Edição. São Paulo: Makron, 1997. Bibliografia Ementa
Leia maisIntrodução aos Algoritmos
Introdução aos Algoritmos Aula 05 Diogo Pinheiro Fernandes Pedrosa http://www2.ufersa.edu.br/portal/professor/diogopedrosa diogopedrosa@ufersa.edu.br Universidade Federal Rural do Semiárido Bacharelado
Leia maisIntrodução a orientação a objetos
2 Introdução a orientação a objetos Introdução 2 Linguagens procedimentais 2 Um pouco de história 2 Idéias básicas da POO 2 Classe, atributo e método 2 Herança 3 Polimorfismo 3 Vantagens e desvantagens
Leia maisCONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO
CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO ROTEIRO 1. INTRODUÇÃO 2. LINGUAGENS IMPERATIVAS 1. CONCEITO 2. PARADIGMA IMPERATIVO 3. ORIGENS 4. MODELO COMPUTACIONAL 1. ARQUITETURA DE VON NEUMANN 2. CARACTERISTICAS
Leia maisIntrodução à Programação. João Manuel R. S. Tavares
Introdução à Programação João Manuel R. S. Tavares Sumário 1. Ciclo de desenvolvimento de um programa; 2. Descrição de algoritmos; 3. Desenvolvimento modular de programas; 4. Estruturas de controlo de
Leia mais3. 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 maisIntrodução aos Algoritmos
Introdução aos Algoritmos Aula 05 Diogo Pinheiro Fernandes Pedrosa http://www2.ufersa.edu.br/portal/professor/diogopedrosa diogopedrosa@ufersa.edu.br Universidade Federal Rural do Semiárido Bacharelado
Leia maisClassificação das linguagens de programação
Introdução Linguagem É um meio de comunicação entre pessoas. Faculdade de expressão audível e articulada do homem. Conjunto de sinais falados, escritos ou gesticulados de que se serve o homem para demonstrar
Leia maisProgramação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos
Programação Orientada a Objetos Vagner Luz do Carmo - Vluzrmos Questão 1 Dada a seguinte classe na linguagem JAVA: public class Carro { public String retornacor(){ ; return Azul ; private String retornachassi(){
Leia maisTipos Abstratos de Dados
Tipos Abstratos de Dados Prof. Jussara Almeida Derivado das transparências do Algoritmos e Estrutura de Dados Algoritmo: Sequência de ações executáveis para a solução de um determinado tipo de problema
Leia maisArquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;
1 Microprocessador Um microprocessador é um circuito eletrônico capaz de realizar diversas tarefas conforme os comandos específicos. Para isso ele deve ler esses comandos da memória de programa (ROM) e
Leia mais#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C
#include Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C ANTES DO C ERA A LINGUAGEM B B foi essencialmente uma simplificação da linguagem BCPL. B só tinha um tipo de dado, que
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 maisNomes, vinculações e escopos
Nomes, vinculações e escopos Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual
Leia maisLinguagem C++ Estruturas de controle Parte II Estruturas de repetição
Fundamentos de Programação Linguagem C++ Estruturas de controle Parte II Estruturas de repetição Prof. Bruno E. G. Gomes IFRN 1 Estruturas de Controle Permitem o controle da sequência de execução de um
Leia maisCompiladores 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 maisCompiladores. Análise Semântica
Compiladores Análise Semântica Cristiano Lehrer, M.Sc. Atividades do Compilador Arquivo de origem Análise léxica Análise semântica Síntese Análise sintática Análise Gramáticas Estruturas internas Arquivo
Leia maisProgramaçã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 maisLinguagens de Programação
Universidade Federal do Rio Grande do Norte Centro de Tecnologia Departamento de Computação e Automação Linguagens de Programação Professor Responsável: Luiz Affonso Henderson Guedes de Oliveira Prof.
Leia maisEngenharia de Software
Sumário Engenharia de Software Modelos de desenvolvimento de software Fases de desenvolvimento Programação modular Abordagem top-down e bottom-up Linguagens de programação: Compilação / Interpretação Aplicação
Leia maisLaboratório de programação II
Laboratório de programação II Herança e Polimorfismo Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Herança Mecanismo da Orientação a Objeto que permite criar novas classes aproveitando
Leia maisSCC 202 Prova 1. 28/9/2010 Resolução e Comentários
SCC 202 Prova 1 28/9/2010 Resolução e Comentários Questão 1) (3.5) Sobre TADs. a) O que é e quais são as vantagens de se utilizar Tipos Abstratos de Dados (TADs) no projeto de desenvolvimento de software?
Leia maisAula 1 Conceitos Básicos
Aula 1 Conceitos Básicos Elerson R. S. Santos elerson@dcc.ufmg.br Livro Projeto de Algoritmos Capítulo 1 @ DCC/UFMG O que é um algoritmo? O que é um programa? O que é um TAD? Algoritmos e Estrutura de
Leia mais//conteúdo do arquivo Matriz.h class Matriz { private: int *elementos; int numerodelinhas; int numerodecolunas; void setnumerodelinhas(int); void
//conteúdo do arquivo Matriz.h class Matriz private: int *elementos; int numerodelinhas; int numerodecolunas; void setnumerodelinhas(int); void setnumerodecolunas(int); int getnumerodelinhas(); int getnumerodecolunas();
Leia maisNomes, vinculações e escopos
Nomes, vinculações e escopos Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual
Leia mais2. Introdução à Programação e Análise. Orientada a Objetos
Programação Orientada a Objetos em C++ Renato Cardoso Mesquita Departamento de Eng. Elétrica da UFMG renato@cpdee.ufmg.br 2. Introdução à Programação e Análise.......... Orientada a Objetos 2.1. Introdução
Leia maisLaboratório de programação II
Laboratório de programação II Paradigma de orientação a Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Contextualização Paradigma de orientação a Contextualização A construção
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract
Leia maisProcessos 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 maisAlgoritmos e Estruturas de dados
Algoritmos e Estruturas de dados Listas Encadeadas Prof. Dr. Fábio Rodrigues de la Rocha (Listas Encadeadas) 1 / 21 Definição: Anteriormente estudamos listas encadeadas que foram implementadas como vetores
Leia maisPROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@gmail.com
Leia maisIntrodução à Programação
Introdução à Programação Aula 02 Algoritmos e Ciclo de Desenvolvimento Edirlei Soares de Lima Modelo de um Computador Linguagem de Máquina Um processador executa instruções de máquina.
Leia maisRegras de estilo para código fonte em C/C++
Regras de estilo para código fonte em C/C++ No processo de escrita de código fonte em uma linguagem de alto nível é interessante que o programador se preocupe não somente com a correção sintática e lógica
Leia maisComputadores Digitais 2. Prof. Rodrigo de Souza Couto
Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Tópicos Listas Encadeadas Introdução às listas encadeadas Manipulação de elementos Implementações recursivas Listas
Leia maisPLANO DE UNIDADE DIDÁTICA- PUD
Professor: Marcus Vinícius Midena Ramos Coordenação: Ricardo Argenton Ramos Data: 03/08/2010 Página: 1 de 5 EMENTA: Conceitos básicos de linguagens. Histórico, classificação e principais aplicações de
Leia maisIntrodução à Análise e Projeto de Sistemas
Introdução à I. O Que vamos fazer na Disciplina? Saber uma linguagem de programação orientada a objeto (OO) não é suficiente para criar sistemas OO Tem que saber Análise e Projeto OO (APOO) Isto é, Análise
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 maisLINGUAGEM C: FUNÇÕES FUNÇÃO 08/01/2018. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa.
LINGUAGEM C: FUNÇÕES Prof. André Backes FUNÇÃO Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa. printf(): função que escreve na tela scanf(): função que lê o teclado
Leia maisEstrutura de Dados e Algoritmos e Programação e Computadores II. Aula 4: Listas Estáticas e Dinâmicas
Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 4: Listas Estáticas e Dinâmicas Listas Estáticas: com Vetores Dinâmicas: Listas Ligadas (com ponteiros) Variáveis e Métodos de Controle:
Leia maisProgramação Estruturada
Programação Estruturada Introdução à linguagem C Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Programação estruturada
Leia maisPOO29004 Programação Orientada a Objetos
POO29004 Programação Orientada a Objetos Classe abstrata, interface e polimorfismo Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/poo
Leia maisSEMÂNTICA. Rogério Rocha. rode = program simples = var x : int := 3 in x := x + 5 end.
SEMÂNTICA program simples = var x : int := 3 in x := x + 5 end. rode =? Rogério Rocha Roteiro Introdução Sintaxe Semântica Dinâmica (Métodos formais) Operacional Axiomática Denotacional Estática Conclusão
Leia maisDesenvolvimento 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 maisProgramação Orientada a Objeto
Programação Orientada a Objeto Prof. Esp. Thiago S F Carvalho Faculdades Integradas de Diamantino 2016 Caravalho, T.S.F. (FID) POO 2016 1 / 44 Breve revisão Conteúdo 1 Breve revisão 2 Mais sobre classes
Leia maisComposição e Herança. carro meucarro = new carro();
Composição e Herança Um dos conceitos mais interessantes das linguagens orientadas a objeto é a reutilização de código. Mas para isso realmente funcionar, você tem que conseguir fazer mais do que simplesmente
Leia maisUNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Diferentes computadores podem ter diferentes arquiteturas e os diversos tipos de linguagem de programação.
Leia maisIntrodução ao Java. Prof. Herbert Rausch Fernandes
Introdução ao Java Prof. Herbert Rausch Fernandes Orientação a Objetos Programação Orientada por Objetos: é a construção de sistemas de software como uma coleção estruturada de implementações de tipos
Leia maisAula 12 Tipo Abstrato de Dados. Prof. Me. Sérgio Carlos Portari Jr UEMG Campus de Frutal
Aula 12 Tipo Abstrato de Dados Prof. Me. Sérgio Carlos Portari Jr UEMG Campus de Frutal Representação dos Dados Os dados podem estar representados (estruturados) de diferentes maneiras Normalmente, a escolha
Leia maisAula 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: José Martins de Castro Neto Carga Horária: 2h 21 de julho de 2015 1 Algoritmo e lógica de programação Ementa do curso 1. Definições
Leia maisMotivaçã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 maisComputação II Orientação a Objetos
Computação II Orientação a Objetos Fabio Mascarenhas - 2016.2 http://www.dcc.ufrj.br/~fabiom/java Revisão Classes e Objetos Classes são uma das unidades básicas de um programa Java Usamos as classes para
Leia maisConceitos básicos de programação
Constantes class Exemplo { static void Main() { float fahr, celsius; int lower, upper, step; lower = 0; /* limite inferior da tabela de temperaturas */ upper = 300; /* limite superior */ step = 20; /*
Leia maisParadigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto
Suporte para Programação Orientada a Objeto Cristiano Lehrer Categoria das Linguagens que Suportam POO Suporte a POO acrescentado a uma linguagem já existente: C++ (também suporta programação procedural
Leia maisProgramação Estruturada
Programação Estruturada Organização de um ambiente computacional Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC
Leia maisIntrodução à Programação. Encapsulamento e Herança
Introdução à Programação Encapsulamento e Herança Tópicos da Aula Hoje, aprenderemos conceitos mais avançados de Orientação a Objetos Encapsulamento Usando modificadores de acesso em C++ Herança Importância
Leia maisLinguagem de Programação C++
Exercício: Linguagem de Programação C++ Construa o diagrama de classes UML para as classes envolvidas na solução do exercício do slide 253. 267 Sobrecarga Linguagem de Programação C++ Neste exercício vimos
Leia maisProgramação para Games II. Professor Ariel da Silva Dias Orientação a Objetos
Programação para Games II Professor Ariel da Silva Dias Orientação a Objetos Pacotes Pacotes são um modo de organizar classes e interfaces Um programa pode ser formado por centenas de classes individiduais;
Leia maisLinguagens de Programação
Linguagens de Programação 128 13 129 Linguagens de Programação Uma linguagem de programação é um vocabulário e um conjunto de regras gramaticais usadas para escrever programas de computador. Esses programas
Leia maisIntrodução à Programação em C. Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI
Introdução à Programação em C Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI Linguagem C Criada em 1972 para uso no LINUX; Sintaxe base para diversas outras (Java, JavaScript, PHP, C++,
Leia maisLINGUAGEM C: COMANDOS DE REPETIÇÃO
LINGUAGEM C: COMANDOS DE REPETIÇÃO Prof. André Backes ESTRUTURAS DE REPETIÇÃO Uma estrutura de repetição permite que uma sequência de comandos seja executada repetidamente, enquanto determinadas condições
Leia maisLinguagem e Técnicas em Programação. Gilson de Souza Carvalho
Gilson de Souza Carvalho gaucho.gilson@hotmail.com 3.1.3 Condições compostas Linguagem e Técnicas em Programação As condições que vimos até agora sempre foram únicas. Entretanto, conforme aumenta a complexidade
Leia maisAULA 03: FUNCIONAMENTO DE UM COMPUTADOR
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 03: FUNCIONAMENTO DE UM COMPUTADOR Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação O QUE É UM COMPUTADOR?
Leia maisCompiladores Ambiente de Execução
Compiladores Ambiente de Execução Fabio Mascarenhas 2015.1 http://www.dcc.ufrj.br/~fabiom/comp O Back-end Até agora vimos as fases do front-end do compilador: Análise Léxica Análise Sintática Análise Semântica
Leia maisProgramação Orientada a Objetos Relacionamentos entre classes
Programação Orientada a Objetos Relacionamentos entre classes Prof. Vicente Paulo de Camargo RELACIONAMENTO ENTRE CLASSES Interface agregação Dependencia composição generalização associação RELACIONAMENTO
Leia maisProf: Ricardo Quintão Site:
Prof: Ricardo Quintão email: rgquintao@gmail.com Site: www.rgquintao.com.br Fundamentos da Programação Orientada a Objetos A Orientação a Objetos é uma tecnologia que enxerga os sistemas como sendo coleção
Leia maisConceitos de Programação Orientada a Objetos
Conceitos de Programação Orientada a Objetos flavio@facom.ufu.br 80 Por que a Orientação a Objetos? As abstrações podem corresponder às "coisas" do domínio do problema, facilitando o entendimento Esta
Leia maisEderson Luiz da Silva Ciência da Computação. Algoritmos e Programação
Ederson Luiz da Silva Ciência da Computação Algoritmos e Programação Linguagem de programação Linguagem de Programação Linguagem de máquina http://www.assemblyprogressivo.net/p/curso.html Linguagem de
Leia maisLinguagem de Programação I
Linguagem de Programação I Carlos Eduardo Ba6sta Centro de Informá6ca - UFPB bidu@ci.ufpb.br C++ e POO Fundamentação de Orientação a Objetos (OO) Sintaxe básica de C++ Modelagem de sistemas orientada a
Leia maisInformática I. Aula 14. Aula 14-10/10/2007 1
Informática I Aula 14 http://www.ic.uff.br/~bianca/informatica1/ Aula 14-10/10/2007 1 Ementa Noções Básicas de Computação (Hardware, Software e Internet) HTML e Páginas Web Internet e a Web Javascript
Leia maisIntrodução à orientação a objetos. João Tito Almeida Vianna 18/05/2013
Introdução à orientação a objetos João Tito Almeida Vianna 18/05/2013 Roteiro Aula 1 Introdução: Programação estruturada x Orientação a objetos Orientação a objetos Classe e objeto Encapsulamento Herança
Leia maisTipos Abstratos de Dados
Tipos Abstratos de Dados Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 03 Algoritmos e Estruturas de Dados I Qual a diferença entre um algoritmo e um programa? Algoritmos e Estruturas de Dados
Leia maisProgramação para Games II. Professor Ariel da Silva Dias Orientação a Objetos
Programação para Games II Professor Ariel da Silva Dias Orientação a Objetos Programação Estruturada X Programação Orientada a Objetos Orientação a Objetos É um paradigma de programação de computadores
Leia maisConceitos de Programação Orientada por Objectos. Rui Camacho Programação 2
Conceitos de Programação Orientada por Objectos Um Problema Problema: Existem, hoje em dia, aplicações complexas e de grande dimensão que é preciso desenvolver e manter de modo eficiente utilizando equipas
Leia maisIntrodução e Conceitos
Introdução e Conceitos Aula 1 11/08/2017 diegoquirino@gmail.com 1 Agenda 1. Motivações: porque estudar linguagens de programação? 2. Breve Histórico sobre as Linguagens de Programação 3. Processos de Tradução
Leia maisAlgoritmos e Introdução à Programação. Lógica e Linguagem de Programação
Algoritmos e Introdução à Programação Lógica e Linguagem de Programação Prof. José Honorato Ferreira Nunes honoratonunes@softwarelivre.org http://softwarelivre.org/zenorato/honoratonunes Linguagem C Prof.
Leia maisIntrodução à Computação
Introdução à Computação Jordana Sarmenghi Salamon jssalamon@inf.ufes.br jordanasalamon@gmail.com http://inf.ufes.br/~jssalamon Departamento de Informática Universidade Federal do Espírito Santo Agenda
Leia maisOrganização de Computadores
Organização de Computadores Aula #5.1 EBS 111 ICC Prof. Luiz Fernando S. Coletta luizfsc@tupa.unesp.br Campus de Tupã Exercício 3 (correção) 1. Converta as sequências binárias em números de base 10: (a)
Leia maisComentários: Desenvolvimento de Sistemas Rogério Araújo
Comentários: Desenvolvimento de Sistemas Rogério Araújo rgildoaraujo@gmail.com 1 Técnico de informática no Ministério Público Federal Professor da Equipe Itnerante Desenvolvimento de Sistemas Certificações
Leia maisProgramação: Compiladores x Interpretadores PROF. CARLOS SARMANHO JR
Programação: Compiladores x Interpretadores PROF. CARLOS SARMANHO JR Introdução Compiladores e interpretadores são formas de tradução de um código geralmente de alto nível (escrito em uma linguagem de
Leia maisUNIVERSIDADE DA BEIRA INTERIOR
UNIVERSIDADE DA BEIRA INTERIOR Algoritmos e Estruturas de Dados - Bioengenharia 2º Semestre Frequência Resolução 19/maio/2015 A. [3.5 val] Algoritmos de ordenação e de pesquisa Considere-se as seguintes
Leia maisProgramação Orientada a Objetos
1 Programação Orientada a Objetos A linguagem C, desde a sua primeira especificação, vem sendo desenvolvida com várias extensões. De uma dessas extensões foi criada a Linguagem C++ onde encontramos diversas
Leia maisBCC202 - 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 maisIntrodução à Programação
Introdução à Program João Manuel R. S. Tavares Sumário 1. Ciclo de desenvolvimento de um programa; 2. Descrição de algoritmos; 3. Desenvolvimento modular de programas; 4. Estruturas de controlo de um programa.
Leia mais