390 likes | 575 Views
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.
E N D
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.
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.
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.
Linguagens de programação O código escrito em linguagem de alto nível é convertido em linguagem de máquina pelo compilador ou interpretador.
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.
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.
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
Tipos de dados Os tipos abstratos de dados, ou, simplesmente, tipos de dados, definem quais tipos de informações podem ser processadas pelo computador.
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.
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
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.
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.
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.
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.
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.
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.
Estruturas de controle seleção case condicaoof ‘valor1’: begin end; ‘valor2’: begin end; else: begin end; ifcondicaothen begin //caso condição verdadeira end else begin //caso condição falsa end;
Estruturas de controle repetição repeat //bloco de código until (condicao); for i:= valor_inicial to valor_final do begin //bloco de código end; while (condicao) do begin //bloco de código end;
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;
Vetores • Exemplo: notas: ARRAY [1..4] of real; • Acessando os dados: notas[1]:= 5.0; notas[2]:= 4.0;
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: nome: ARRAY [inicio..fim, inicio..fim] oftipo_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.
Registros • Definição em linguagem Pascal: type nome_tipo = record campo1: tipo1; campo2: tipo2; ... end; var nome_variavel : nome_tipo
Registros reg_alunos • Exemplo: type t_aluno = record RA: integer; nome: string; idade: integer; telefone: string; end; var reg_alunos : t_aluno
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 10050 Renato 23 3660-1777
Procedimentos procedurenome_procedimento (var par1: tipo1; var par2: tipo2); begin end; Exemplo: proceduremostraBoasVindas (var nome: string); begin writeln(‘Bom dia ‘, nome, ‘. Seja bem-vindo’); end;
Funções functionnome_funcao (var par1: tipo1; var par2: tipo2): tipo_retorno; begin nome_funcao:= valor_a_ser_retornado; end; Exemplo: functionmedia (var a: real; var b: real): real; begin media:= (a + b) / 2; end;