420 likes | 549 Views
Laboratório de Programação de Computadores I. 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br. Conceitos básicos. Programação de computadores é definido como o processo de criação de um software de computador usando uma linguagem de programação
E N D
Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br
Conceitos básicos • Programação de computadores é definido como o processo de criação de um software de computador usando uma linguagem de programação • Linguagem de programação: é uma linguagem usada para dar instruções a um computador • Um programa é um conjunto de instruções para um computador • Uma linguagem de programação contém uma coleção de palavras que são organizadas em sentenças que transportam a informação ao computador
Linguagens de Programação • C, C++, C#, Pascal, Java, VisualBasic, Fortran, Cobol, Perl, Python, Ruby, TCL, Lisp, Prolog, ADA, SmallTalk, Erlang, PHP
Ambientes de desenvolvimento e compilação • Compilação via linha de comando • IDE (Integrated Development Environment) • Desenvolvimento RAD (Rapid Application Development)
Ambientes Windows • Visual Studio Express Edition • Eclipse • NetBeans
IDE (Ambiente de Desenvolvimento Integrado) • Permitem o desenvolvimento integrado de aplicações, envolvendo a edição, compilação, execução e debug da aplicação
Compiladores e Linkers • Compiladores: é responsável pela tradução do código fonte em linguagem de máquina (código objeto) • Linkers: é responsável pela ligação do código objeto com outras bibliotecas (se necessário) a fim de gerar o código executável
Processo de Compilação Código fonte Compilação ligação executável Helllo.c Compilação ligação Hello.exe Hello.c Hello.obj Hello.c
Compilação x Interpretação • Um programa compilado gera um executável dependente de plataforma • Um programa interpretado é executado passo a passo por um interpretador
Exemplos de linguagens tipicamente compiladas • C • C++ • COBOL • Fortran • Pascal
Exemplos de linguagens tipicamente interpretadas • ActionScript • ASP • BASIC • JavaScript (ECMAScript) • Perl • PHP • Ruby • Tcl
Programação Estruturada • Programação estruturada é uma forma de programação de computadores que preconiza que todos os programas possíveis podem ser reduzidos a apenas três estruturas: sequência, decisão e iteração. • Tendo, na prática, sido transformada na Programação modular, a Programação estruturada orienta os programadores para a criação de estruturas simples em seus programas, usando as subrotinas e as funções.
Programação Orientada a Objetos • Programação Orientada a Objetos(POO) ou Object-Oriented Programming (OOP) é um paradigma de análise, projeto e programação de sistemas de software baseado na composição e interação entre diversas unidades de software chamadas de objetos.
Variáveis • Uma variável é definida como um lugar onde podemos armazenar dados temporariamente e usá-los posteriormente • Normalmente um variável possui um nome que é usado para acessar seu conteúdo • Uma variável poderá armazenar um número inteiro, de ponto flutuante, um caracter, uma cadeia de caracteres (String) , um valor booleano, etc.
Tipos de variáveis • Inteira • int, short, long • Ponto flutuante • Float, double • Caracter • char • Booleana • 1 = sim, verdadeiro; 0=não, falso
Variáveis • Uma variável poderá ser signed ou unsigned, isto é, com sinal ou sem sinal. • Uma variável unsigned possui apenas valores positivos • Uma variável signed possui valores positivos e negativos
Exemplos • int a, idade; • char ch, caracter; • float f, valor; • double d;
Atribuição de valores a variáveis • Podemos atribuir o valor a uma variável usando o símbolo ‘=‘ • Exemplos int a = 1; float f = -8.76; char c=‘a’;
Operadores • Numéricos • Lógicos • Binários
Sequência de comandos • Um programa é uma sequencia de comandos • <comando 1>; • <comando 2>; • ... • <comando N>;
Comandos condicionais • Permitem uma expressão seja avaliada e que uma ação seja executada no caso da expressão ser avaliada verdadeira (1) ou falsa (0).
Comando if int a = 5; if(a<0) { print (“a é negativo\n”); } else { print (“a é positivo\n”); }
Controle de Fluxo • Loops com teste no início (while) • Loops com testes no final (do/while) • Loops de tamanho definido (for) • Saindo de loops antes do término (break) • Retestando a condição (ex: continue)
Comando while int i=0; while(i<5) { printf(“%d\n”,i); i = i + 1; }
Comando do/while int i=0; do { printf(“%d\n”,i); i = i + 1; } while (i<5);
Comando for int i = 0; for(i=0;i<5;i++) { printf(“%d\n”,i); }
Comando break int 0=0; while (i<10) { printf(“%d\n”,i); i++; if(i==5) { break; } }
Comando continue int 0=0; while (i<10) { if(i%2!=0) { continue; } i++; }
Funções • Header file • Cabeçalho da função • Argumentos • Tipo de retorno
Funções int soma(int x, int y) { return x+y; } Tipo de retorno Nome da função parâmetros
Conceitos Básicos de Orientação a Objetos • Classe É uma fábrica de objetos. Representa um conjunto de objetos com características afins. Uma classe define o comportamento dos objetos, através de métodos, e quais estados ele é capaz de manter, através de atributos. Exemplo de classe: Os seres humanos. • Objeto é uma instância de uma classe. Um objeto é capaz de armazenar estados através de seus atributos e reagir a mensagens enviadas a ele, assim como se relacionar e enviar mensagens a outros objetos. Exemplo de objetos da classe Humanos: João, José, Maria. • Atributos são características de um objeto. Basicamente a estrutura de dados que vai representar a classe. Exemplos: Funcionário: nome, endereço,telefone, CPF, ....; Carro: nome, marca, ano, cor, ...; Livro: autor, editora, ano. • Estado São os valores que cada atributo recebe. Exemplo: o estado do atributo cor é azul.
Conceitos Básicos de Orientação a Objetos • Métodos definem as habilidades dos objetos. Bidu é uma instância da classe Cachorro, portanto tem habilidade para latir, implementada através do método deUmLatido(). Um método em uma classe é apenas uma definição. A ação só ocorre quando o método é invocado através do objeto, no caso Bidu. Dentro do programa, a utilização de um método deve afetar apenas um objeto em particular; Todos os cachorros podem latir, mas você quer que apenas Bidu dê o latido. Normalmente, uma classe possui diversos métodos, que no caso da classe Cachorro poderiam ser sente(), coma() e morda().
Conceitos Básicos de Orientação a Objetos • Mensagem é uma chamada a um objeto para invocar um de seus métodos, ativando um comportamento descrito por sua classe. Também pode ser direcionada diretamente a uma classe (através de uma invocação a um método estático). • Sobrecarga é a utilização do mesmo nome para símbolos ou métodos com operações ou funcionalidades distintas. Geralmente diferencia-se os métodos pela sua assinatura. Exemplo: Um método Carro que recebe como parâmetro dois atributos (cor, placa), e outro método Carro que recebe como parâmetro (cor, placa, modelo).
Conceitos Básicos de Orientação a Objetos • Herança (ou generalização) é o mecanismo pelo qual uma classe (sub-classe) pode estender outra classe (super-classe), aproveitando seus comportamentos (métodos) e variáveis possíveis (atributos). Há Herança múltipla quando uma sub-classe possui mais de uma super-classe. Essa relação é normalmente chamada de relação "é um". Um exemplo de herança: Mamífero é super-classe de Humano. Ou seja, um Humano é um mamífero. • Associação é o mecanismo pelo qual um objeto utiliza os recursos de outro. Pode tratar-se de uma associação simples "usa um" ou de um acoplamento "parte de". Por exemplo: Um humano usa um telefone. A tecla "1" é parte de um telefone. • Encapsulamento consiste na separação de aspectos internos e externos de um objeto. Este mecanismo é utilizado amplamente para impedir o acesso direto ao estado de um objeto (seus atributos), disponibilizando externamente apenas os métodos que alteram estes estados. Exemplo: você não precisa conhecer os detalhes dos circuitos de um telefone para utilizá-lo. A carcaça do telefone encapsula esses detalhes, provendo a você uma interface mais amigável (os botões, o monofone e os sinais de tom).
Conceitos Básicos de Orientação a Objetos • Abstração é a habilidade de concentrar nos aspectos essenciais de um contexto qualquer, ignorando características menos importantes ou acidentais. Em modelagem orientada a objetos, uma classe é uma abstração de entidades existentes no domínio do sistema de software. • Polimorfismo é o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma assinatura (lista de parâmetros e retorno) mas comportamentos distintos, especializados para cada classe derivada, usando para tanto uma referência a um objeto do tipo da superclasse. A decisão sobre qual o método que deve ser selecionado, de acordo com o tipo da classe derivada, é tomada em tempo de execução, através do mecanismo de ligação tardia. No caso de polimorfismo, é necessário que os métodos tenham exatamente a mesma identificação, sendo utilizado o mecanismo de redefinição de métodos. Esse mecanismo de redefinição não deve ser confundido com o mecanismo de sobrecarga de métodos.
Conceitos Básicos de Orientação a Objetos • Interface é um contrato entre a classe e o mundo externo. Quando uma classe implementa uma interface, ela está comprometida a fornecer o comportamento publicado pela interface [1]. • Pacotes são referências para organização lógica de classes e interfaces