Paradigmas de programação

Slides:



Advertisements
Apresentações semelhantes
Estruturação de Linguagens (Pascal e C++)
Advertisements

ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1
Linguagem de Programação I
Linguagem PASCAL Subprogramas
Introdução a Algoritmos
Programas e Microprogramas
Pesquisa de Informação
LABORATÓRIO DE PROGRAMAÇÃO
Teste de Software Parte 3.
Linguagens de Programação Orientadas a Objetos
Introdução à Compilação Prof. Leandro Magno Slides adaptados a partir do material cedido pelos professores Heloise Manica Paris Teixeira, Yandre M. G.
Prof. Heloise Manica Paris Teixeira
PROGRAMAÇÃO MODULAR (com uso de subprogramas) prof
Adaptado de material da profa. Maria Aparecida Livi
Algoritmos e Programação Estruturada Conceitos básicos
Introdução a Informática
INTRODUÇÃO À PROGRAMAÇÃO
Programação Lógica: PROLOG
Sincronização de Processos (5) - Monitores -
Linguagens de Programação
Algoritmos e Estruturas de Dados II
Sincronização e Comunicação entre Processos
Robson Godoi / Sandra Siebra
DESENVOLVIMENTO DE COMÉRCIO ELETRÔNICO
Algoritmos e Programação
O Portal do Estudante de Computação
O Portal do Estudante de Computação
O Portal do Estudante de Computação
João Lucas de Oliveira Torres
Ponteiros em Pascal Variáveis ponteiros são aquelas que guardam o endereço de outra, possibilitando o acesso a seu conteúdo. Declaração em Pascal:  var.
Variáveis, Tipos de Dados e Constantes
FATORAÇÃO LU.
PROGRAMAÇÃO I UNIDADE 1.
Sub-programas. Mecanismo de composição de programas Sub-programa está para peça de LEGO assim como um programa está para a construção.
Comunicação Inclusiva Acessibilidade e Programação Web
Representação de Instruções
© 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C (continuação)
Introdução a Programação
Entendendo as definições de classe
O Portal do Estudante de Computação
Avaliação da Linguagem de Programação
Modelos de Paradigmas de programação
Estrutura de Decisão e Repetição
Algoritmo e Programação
Capítulo III Modularização Procedimentos e Funções Universidade Federal de São Carlos Departamento de Computação Aluna: Luanna Lopes Lobato
Linguagem Pascal Prof. Sérgio Rodrigues.
Lógica Estruturada Aplicada
ARQUIVOS.
Introdução a Algoritmos
Introdução à Linguagem C
Análise de Algoritmos1 Viviane Cristina Dias Fev/2003.
Programação de PIC em C Exposição das funções básicas para
VARIÁVEIS COMPOSTAS HOMOGÊNEAS UNIDIMENSIONAIS (VETORES)
Vetores Bidimensionais – Debug - Ponteiros – Listas Encadeadas Simples
Aula01 – Técnicas de Programação II
Programação de computadores Prof. Giovanni Castro.
Algoritmos e Programação I
Fundamentos de linguagens de programação
Programação de Computadores - 1
Algoritmos e Programação MC102
Introdução à Programação
Linguagens de Programação
AULA 09 PROGRAMAÇÃO I. Estruturas de Dados Heterogêneas 10/08/2010 Programação I 2 Objetivo: Estudar os tipos de dados heterogêneos:  Registros;  Arrays.
Linguagens de Programação Pedro Lopes MÓDULO 4- Subprogramas (Procedimentos e Funções) 2010/2011.
INTRODUÇÃO THOBER CORADI DETOFENO, MSC. Aula 01 JOINVILLE 2015 Universidade do Estado de Santa Catarina – CCT/UDESC.
Influencias sobre o Projeto da Linguagem
Computadores vs. Programas / Algoritmos Computadores vs. Programas -> Algoritmos O tratamento de problemas através do computador geralmente envolve uma.
COMPILADORES 02 Prof. Marcos. COMPILADORES Do Programa à Execução Computadores das mais variadas arquiteturas têm funcionamento:
SUB-ROTINAS EM PASCAL PROGRAMAÇÃO MODULARIZADA 252.
Transcrição da apresentação:

Paradigmas de programação

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.

Conteúdo

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. FLOP - operações de ponto flutuante por segundo

Organização de computadores O processador interage com outros componentes.

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. Linguagem de máquina que é definida pelo projeto de hardware desse computador.

Linguagens de programação O código escrito em linguagem de alto nível é convertido em linguagem de máquina pelo compilador ou interpretador. Ligador liga o programa com as bibliotecas utilizadas C C++ Cobol Delphi (Object-Pascal) Fortran Pascal Visual Basic Basic Perl PHP Python Lisp

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.

Evolução das linguagens Lisp -> paradigma funcional Prolog -> paradigma lógico

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.

Etapas de programação análise do problema a ser resolvido; 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; implementação (codificação) do programa; testes. No projeto normalmente modela-se utilizando a UML, porém nesta disciplina será utilizado algoritmos.

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.

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 Descrição narrativa Fluxograma Os comentários, as linhas em branco e as tabulações fazem parte das boas práticas de programação.

Tipos de dados Os tipos abstratos de dados, ou, simplesmente, tipos de dados, definem quais tipos de informações podem ser processadas pelo computador. De que serve um algoritmo se não puder manipular dados?

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. Seleção múltipla: caso Seleção simples: se Seleção de um ramo Seleção de dois ramos

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. clrscr; //limpar a tela no pascal

Paradigma de programação imperativo

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. Uma linguagem de programação que utiliza paradigma imperativo, manipula variáveis a partir de ordens ou comandos. Por exemplo, determinado número de váriáveis são lidas na entrada, são manipuladas e colocadas em outras variáveis, ditas saídas, manipulando estados

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.

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. Ao contrário do paradigma lógico, onde você especifica apenas os resultados.

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. O uso de métodos permite a técnica de modularização

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.

Programação Imperativa

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.

Exemplo em PASCAL

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.

Tipos de dados em PASCAL

Estruturas de controle seleção if condicao then begin //caso condição verdadeira end else //caso condição falsa end; case condicao of ‘valor1’: begin end; ‘valor2’: begin else: begin

Estruturas de controle repetição for i:= valor_inicial to valor_final do begin //bloco de código end; while (condicao) do repeat //bloco de código until (condicao);

nome_do_array: ARRAY [inicio..fim] of tipo; Vetores É 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;

notas: ARRAY [1..4] of real; Vetores Exemplo: notas: ARRAY [1..4] of real; Acessando os dados: notas[1]:= 5.0; notas[2]:= 4.0; notas[1] notas[2] notas[3] notas[4]

Matrizes É 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 Definição na linguagem Pascal: Exemplo: nome: ARRAY [inicio..fim, inicio..fim] of tipo_dados; Exemplo: m_notas: ARRAY [1..4, 1..4] of real; linhas colunas

Registros É uma estrutura de dados composta e heterogênea, que permite armazenar valores, onde esses valores podem ser de diferentes tipos. Qual a principal diferença entre matriz e registros ? Matriz é homogênea e registro é heterogêneo/

Registros Definição em linguagem Pascal: type nome_tipo = record campo1: tipo1; campo2: tipo2; ... end; var nome_variavel : nome_tipo

Registros Exemplo: type t_aluno = record RA: integer; nome: string; reg_alunos Exemplo: type t_aluno = record RA: integer; nome: string; idade: integer; telefone: string; end; var reg_alunos : t_aluno RA nome idade telefone

Registros Acessando os campos do registro: reg_alunos.RA:= 10050; reg_alunos.nome:= ‘Renato’; reg_alunos.idade:= 23; reg_alunos.telefone:= ‘3660-1777’; reg_alunos RA nome idade telefone 10050 Renato 23 3660-1777

Procedimentos Exemplo: procedure mostraBoasVindas (var nome: string); procedure nome_procedimento (var par1: tipo1; var par2: tipo2); begin end; Exemplo: procedure mostraBoasVindas (var nome: string); writeln(‘Bom dia ‘, nome, ‘. Seja bem-vindo’);

Funções function nome_funcao (var par1: tipo1; var par2: tipo2): tipo_retorno; begin nome_funcao := valor_a_ser_retornado; end; Exemplo: function media (var a: real; var b: real): real; media:= (a + b) / 2;