Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar...

39
Paradigmas de programação

Transcript of Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar...

Page 1: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Paradigmas de programação

Page 2: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Objetivo da disciplina

Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando-se apto a adotar decisões de projetos que envolvem a seleção de linguagens de programação mais adequadas para o desenvolvimento de aplicações computacionais.

Page 3: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Conteúdo

Page 4: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Organização de computadores

Os computadores executam milhões de operações a velocidades incríveis.

As operações são organizadas por meio de um conjunto de instruções.

Esse conjunto de instruções é o programa.

Quem executa o programa é o processador.

Page 5: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Organização de computadores

O processador interage com outros componentes.

Page 6: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Linguagens de programação

É necessário que os programas sejam escritos em uma linguagem que o computador entenda.

Essa linguagem é chamada linguagem de máquina.

0100 1111 1010 0110 É pouco intuitiva para os seres

humanos. Foram desenvolvidas linguagens de

mais alto-nível.

Page 7: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Linguagens de programação

O código escrito em linguagem de alto nível é convertido em linguagem de máquina pelo compilador ou interpretador.

Page 8: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Linguagens de programação

Compiladas: todas as instruções são traduzidas para instruções de baixo nível antes da execução do programa.

Interpretadas: as instruções são traduzidas para instruções de baixo nível à medida que vão sendo executadas.

Page 9: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Evolução das linguagens

Page 10: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Métodos de programação

A elaboração de programas complexos requer a utilização de um método sistemático de programação que permita obter programas confiáveis, flexíveis e eficientes. Salvetti (1998, p. 5)

Sugere-se adotar um método de programação em etapas.

Page 11: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Etapas de programação

1. análise do problema a ser resolvido;2. projeto do programa que resolverá

o problema, incluindo a elaboração de um algoritmo e a definição das estruturas de dados a serem utilizadas;

3. implementação (codificação) do programa;

4. testes.

Page 12: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Algoritmo

O que é um algoritmo? é a descrição de uma sequência de

passos ordenadas e finita que deve ser seguida para a realização de uma tarefa.

é uma descrição de como realizar uma tarefa independente da linguagem/hardware.

Não se preocupa com detalhes de implementação em uma linguagem.

Page 13: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Pseudocódigo

Faz uso de uma notação baseada em linguagem natural.

Um algoritmo é composto por um nome, as variáveis e o bloco principal.

nome do algoritmo

variáveis

bloco principal

Page 14: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Tipos de dados

Os tipos abstratos de dados, ou, simplesmente, tipos de dados, definem quais tipos de informações podem ser processadas pelo computador.

Page 15: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Estruturas de controle

Define a forma que as instruções são executadas. Estrutura de sequência: uma

instrução após a outra. Estrutura de seleção: há a

necessidade de tomar uma decisão, de acordo com determinadas condições.

Estrutura de repetição: quando há a necessidade de repetir um conjunto de instruções.

Page 16: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Funções e procedimentos

Função: é um módulo que sempre retorna uma resposta a quem chamou.ex:

x := sqrt (4) //retorna a raiz-quadrada

Procedimento: não retorna nenhuma resposta.ex:

clrscr; //limpar a tela no pascal

Page 17: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Paradigma de programação imperativo

Page 18: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Características

Foi um dos primeiros paradigmas criados e muito utilizado até hoje na computação.

É estruturado com base em métodos.

Apóia-se no conceito de estado de um programa, que é a situação momentânea das variáveis, e que podem ser alteradas pelos métodos.

Page 19: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Vantagens

Os programas gerados são eficientes.

Fácil modelagem para aplicações do mundo real.

Capacidade de modularização do código-fonte.

Muito utilizado no meio acadêmico e comercial.

Page 20: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Desvantagens

Problemas de legibilidade do código. Maior possibilidade de introdução de

erros durante o processo de manutenção.

O programador especifica como fazer para obter os resultados.

Page 21: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Características

Suporta execução sequêncial de instruções.

Suporta especificação de métodos. Suporta especificação do tipo de

parâmetros e variáveis. Permite chamar métodos em

módulos distintos do programa.

Page 22: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Modularização

O uso de métodos permite a modularização, que consiste no uso de métodos com interfaces bem definidas e que atendam a determinadas funcionalidades da aplicação.

Page 23: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Programação Imperativa

Page 24: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Estrutura geral de um programa

De maneira geral, um programa em linguagem imperativa é organizado em duas regiões: Área de declaração (métodos, variáveis) Corpo do programa.

Page 25: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Exemplo em PASCAL

Page 26: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Variáveis e tipos de dados

Programas em linguagem imperativa fazem uso de variáveis para armazenar valores que são utilizados nos processamentos.

Cada variável pode armazenar um determinado tipo de dado.

Page 27: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Tipos de dados em PASCAL

Page 28: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Estruturas de controle

SELEÇÃO

if condicao thenbegin //caso condição

verdadeiraendelsebegin //caso condição falsaend;

case condicao of ‘valor1’: begin

end;

‘valor2’: begin end;

else: begin end;

Page 29: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Estruturas de controle

REPETIÇÃO

for i:= valor_inicial to valor_final do

begin //bloco de códigoend;

while (condicao) dobegin //bloco de códigoend;

repeat //bloco de

códigountil (condicao);

Page 30: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

É um tipo de dado estruturado unidimensional que consiste de um número fixo de elementos, sendo que todos os elementos devem ser do mesmo tipo (char, integer, real, string ....)

Definição na linguagem Pascal:

nome_do_array: ARRAY [inicio..fim] of tipo;

Vetores

Page 31: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Exemplo:notas: ARRAY [1..4] of real;

Acessando os dados:notas[1]:= 5.0;notas[2]:= 4.0;

Vetores

notas[1] notas[2] notas[3] notas[4]

Page 32: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

É um tipo de dado estruturado bidimensional que consiste de um número fixo de elementos, sendo que todos os elementos devem ser do mesmo tipo (char, integer, real, string ....)

É utilizado para armazenar tabelas, imagens etc.

Manipulação muito semelhante aos vetores.

Matrizes

Page 33: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Definição na linguagem Pascal:

nome: ARRAY [inicio..fim, inicio..fim] of tipo_dados;

Exemplo:

m_notas: ARRAY [1..4, 1..4] of real;

Matrizes

linhas colunas

Page 34: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

É uma estrutura de dados composta e heterogênea, que permite armazenar valores, onde esses valores podem ser de diferentes tipos.

Registros

Page 35: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Definição em linguagem Pascal:

typenome_tipo = record

campo1: tipo1;campo2: tipo2;...

end;varnome_variavel : nome_tipo

Registros

Page 36: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Exemplo:

typet_aluno = record

RA: integer;nome: string;idade: integer;telefone: string;

end;varreg_alunos : t_aluno

Registros

RA nome idade telefone

reg_alunos

Page 37: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Acessando os campos do registro:

reg_alunos.RA:= 10050;reg_alunos.nome:= ‘Renato’;reg_alunos.idade:= 23;reg_alunos.telefone:= ‘3660-1777’;

Registros

RA nome idade telefone

reg_alunos

10050 Renato 23 3660-1777

Page 38: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Procedimentos

procedure nome_procedimento (var par1: tipo1; var par2: tipo2);begin

end;

Exemplo:

procedure mostraBoasVindas (var nome: string);begin

writeln(‘Bom dia ‘, nome, ‘. Seja bem-vindo’);end;

Page 39: Estudar conceitos sobre linguagens de programação e seus paradigmas, tornando- se apto a adotar decisões de projetos que envolvem a seleção de linguagens.

Funções

function nome_funcao (var par1: tipo1; var par2: tipo2): tipo_retorno;

beginnome_funcao := valor_a_ser_retornado;

end;

Exemplo:function media (var a: real; var b: real): real;begin

media:= (a + b) / 2;end;