42
1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. [email protected]

1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. [email protected]

Embed Size (px)

Citation preview

Page 1: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

1

Laboratório de Programação de Computadores I

1º Semestre/2009

Prof. Mauro César [email protected]

Page 2: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

2

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

Page 3: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

3

Linguagens de Programação

C, C++, C#, Pascal, Java, VisualBasic, Fortran, Cobol, Perl, Python, Ruby, TCL, Lisp, Prolog, ADA, SmallTalk, Erlang, PHP

Page 4: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

4

Ambientes de desenvolvimento e compilação

Compilação via linha de comando IDE (Integrated Development

Environment) Desenvolvimento RAD (Rapid

Application Development)

Page 5: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

5

Ambientes Windows

Visual Studio Express Edition Eclipse NetBeans

Page 6: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

6

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

Page 7: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

7

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

Page 8: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

8

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

Page 9: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

9

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

Page 10: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

10

Exemplos de linguagens tipicamente compiladas

C C++ COBOL Fortran Pascal

Page 11: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

11

Exemplos de linguagens tipicamente interpretadas ActionScript ASP BASIC JavaScript (ECMAScript) Perl PHP Ruby Tcl

Page 12: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

12

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.

Page 13: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

13

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.

Page 14: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

14

Programação em linguagem C

Page 15: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

15

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.

Page 16: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

16

Tipos de variáveis Inteira

int, short, long Ponto flutuante

Float, double Caracter

char Booleana

1 = sim, verdadeiro; 0=não, falso

Page 17: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

17

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

Page 18: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

18

Exemplos

int a, idade; char ch, caracter; float f, valor; double d;

Page 19: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

19

Atribuição de valores a variáveis

Podemos atribuir o valor a uma variável usando o símbolo ‘=‘

Exemplosint a = 1;float f = -8.76;char c=‘a’;

Page 20: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

20

Operadores

Numéricos Lógicos Binários

Page 21: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

21

Operadores Numéricos++, -- Incremento, decremento

+, -, *, /, %

adição, subtração, multiplicação, divisão, módulo (resto)

Page 22: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

22

Operadores Lógicos==, != Igual, diferente

>, >=, <, <= Maior, maior ou igual, menor, menor ou igual

&& “E” lógico

|| “OU” lógico

! “NÃO” lógico

Page 23: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

23

Operadores Binários

& “E” binário

^ “XOR” ou-exclusivo

| “OU” binário

~ “NÃO” binário

Page 24: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

24

Sequência de comandos

Um programa é uma sequencia de comandos

<comando 1>; <comando 2>; ... <comando N>;

Page 25: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

25

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).

Page 26: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

26

Comando if

int a = 5;if(a<0) { print (“a é negativo\n”);}else { print (“a é positivo\n”);}

Page 27: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

27

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)

Page 28: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

28

Comando while

int i=0;while(i<5) { printf(“%d\n”,i); i = i + 1;}

Page 29: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

29

Comando do/while

int i=0;do { printf(“%d\n”,i); i = i + 1;} while (i<5);

Page 30: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

30

Comando for

int i = 0;for(i=0;i<5;i++) { printf(“%d\n”,i);}

Page 31: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

31

Comando break

int 0=0;while (i<10) { printf(“%d\n”,i); i++; if(i==5) { break; }}

Page 32: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

32

Comando continue

int 0=0;while (i<10) { if(i%2!=0) { continue; } i++;}

Page 33: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

33

Funções

Header file Cabeçalho da função Argumentos Tipo de retorno

Page 34: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

34

Funções

int soma(int x, int y) { return x+y;}

Tipo de retorno

Nome da função parâmetros

Page 35: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

35

Matrizes

Page 36: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

36

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.

Page 37: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

37

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().

Page 38: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

38

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).

Page 39: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

39

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).

Page 40: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

40

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.

Page 41: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

41

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

Page 42: 1 Laboratório de Programação de Computadores I 1º Semestre/2009 Prof. Mauro César Lopes. maurocl@terra.com.br

42

Estratégias básicas de desenvolvimento de programas