Paradigmas de Programação. Paradigma de Programação Um paradigma de programação fornece e determina a visão que o programador possui sobre a estruturação.

Slides:



Advertisements
Apresentações semelhantes
Funções em C Prof. Fabiano Utiyama.
Advertisements

C/C++ para Sistemas Operacionais Professor: André Luis Meneses Silva /msn: Página:
1.3.2 – Linguagem Assembly Um programa em linguagem de máquina sofre de total falta de clareza O programa é uma sequência de linhas numeradas Cada linha.
Algoritmo e Programação
Ricardo Jacobi Linguagem C Introdução Linguagens de Programação Fatores de Qualidade em Software Estilos de Programação Manutenção em Software Histórico.
Introdução a Informática
INTRODUÇÃO À PROGRAMAÇÃO
Universidade Federal do Espírito Santo
Introdução a Linguagem de Programação C
Paradigmas de programação
INTRODUÇÃ A COMPUTAÇÃO ENG. CIVIL
02/08/2011 Professor Leomir J. Borba- –
Algoritmos - Profa. Alciléia1 Profa. Maria Alciléia Alves Rocha Funções em C 2011.
Algumas notas sobre a linguagem de programação C
Aula 1 – Profª Danielle Costa
Programação de computadores Prof. Giovanni Castro.
Linguagens de Programação Introdução Prof. Renato Melo.
Linguagem C.
Programação Computacional Aula 8: Entrada e Saída pelo Console Prof a. Madeleine Medrano
PROGRAMAÇÃO II – PARTE 1 Profa. Maria Augusta Constante Puget.
Computadores vs. Programas / Algoritmos Computadores vs. Programas -> Algoritmos O tratamento de problemas através do computador geralmente envolve uma.
Linguagem de Programação
Arrays e Matrizes na Linguagem C Prof. Kariston Pereira Adaptado de Material gentilmente fornecido pelo Prof. Rui Tramontin (DCC/UDESC)
COMPILADORES 02 Prof. Marcos. COMPILADORES Do Programa à Execução Computadores das mais variadas arquiteturas têm funcionamento:
MCEF 2012/2013. Introdução ao “Mathematica” Utilização do Mathematica Funcionamento do programa Regras da Linguagem Exemplos Exercícios!!
Introdução ao Java Prof. Gustavo Wagner (modificações) Slides originais: Prof. Tiago Massoni Java Básico FATEC-PB  Centro de Informática, UFPE.
José Antônio da cunha IFRN Administração de Banco de Dados.
Linguagem C Escola Olímpio Professor Marcelo Josué Telles Linguagem de Programação I1 de 36.
Aula 01 Conhecendo o Computador Prof. Filipe Mutz.
SECRETARIA DE ESTADO DA EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DIRETORIA DE DESENVOLVIMENTO HUMANO GERÊNCIA DE TECNOLOGIA DE INFORMAÇÕES EDUCACIONAIS E ADMINISTRATIVAS.
1. 2 Programação Orientada a Objetos Prof. Maurício Rodrigues de Morais
Modelagem de Dados Aula 1.
Origem e introdução a Programação em C. Evolução da Linguagem C A primeira versão de C foi criada por Dennis Ritchie em 1972 nos laboratórios Bell para.
Java é uma linguagem de programação e uma plataforma de computação lançada pela primeira vez pela Sun Microsystems em É a tecnologia que capacita.
Conhecendo o Tutorial support.ebsco.com. EBSCOhost é uma poderosa ferramenta de referência online que oferece uma variedade de bases de dados de texto.
EA869 Algoritmos: estruturas de dados e linguagens de programação Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas.
INE5408 Estruturas de Dados Programação estruturada e noções básicas da linguagem C.
C suporta algumas Constantes de caráteres especiais de barra invertida (backslash) que são usados em funções de saída. Constantes de caráteres especiais.
Tecnologias e Linguagens para Banco de Dados I Prof. João Ricardo Andrêo 1/6/ :19 1 Respostas: 1. O que é um Sistema Gerenciador de Banco de Dados.
IFRN Técnico em Informática para Internet Desenvolvimento de Algoritmos Prof. Gilbert Azevedo.
Campus Pau dos Ferros Disciplina de Algoritmos Prof. Demétrios Coutinho INFORMÁTICA BÁSICA Algoritmos de Ordenação.
Lógica de Programação Curso Técnico em Informática – Escola Olímpio Professor Marcelo Josué Telles
INE5408 Estruturas de Dados Introdução a Árvores - Conceitos - Árvores Binárias - Métodos e algoritmos de percurso - Métodos e algoritmos de balanceamento.
Programação para Internet Aula 06 Linguagem Java (Orientação a Objetos – Atributos e Métodos)
SISTEMAS OPERACIONAIS MEMÓRIA VIRTUAL. INTRODUÇÃO Memória Virtual é um técnica sofisticada e poderosa de gerenciamento de memória, onde a MP e a MS são.
OPERAÇÕES COM NÚMEROS NATURAIS
Clique para editar o título Linguagem C Para programadores Python PMR
Prof. Tertuliano Estrutura Condicional em C++
Estruturas Lineares de Dados Revisão Wolley W. Silva.
Jean Carlo Mendes
Laboratório de Computação Aula 05 – Array Prof. Fábio Dias
1 ISO (ALGUNS ASPECTOS RELEVANTES) Prof. M.Sc Jefferson L. C. Salles.
GESTÃO DE PROJETOS. 1. Introdução ao Gerenciamento de Projetos 1.1. Definições de Projeto, Programa e Portfólio. Relações entre Gerenciamento de Projetos,
Revisão BD Thiago Medeiros Barros. O que é? Um banco de dados “é uma coleção de dados inter- relacionados, representando informações sobre um domínio.
INE5408 Estruturas de Dados Estruturas de Dados básicas utilizando Vetores - Listas.
Lógica de programação Estruturas de seleção Estruturas de repetição Sub-Rotinas 1.
Revisão de Conceitos Thiago Medeiros Barros. Algoritmos Qualquer problema de computação pode ser resolvido executando uma série de ações em uma ordem.
Profa. Claíde Abegg / Rosane Davoglio
Fundamentos da Administração
NOME DA MATÉRIA NOME DO(A) PROFESSOR(A) Gerência e Organização.
Fundamentos de Programação1 Aula N. 01 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Introdução e elementos principais” 1.
SOFTWARE Software Aplicativo – Executa Tarefas de Processamento de informações para usuários finais. Software de Sistemas – Gerencia e Apóia operações.
EA869 Montadores Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof. Levy Boccato.
Calculo de Hoare Daniel Soares, Gabriel Alabarse Hernandez(150756) e Vanius Zapalowski(150843)
Computação – Informática Aula N. 05 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Matrizes em C” 1.
Fatores de Avaliação Know-how : É a soma total de quaisquer habilidades, conhecimentos e experiências requeridas por um cargo, de maneira a propiciar um.
Vetores de uma dimensão Nota Índice Posição identificando cada elemento Nome Comum para todos os elementos Valor Semelhante a uma variável.
MUTAÇÃO DE INTERFACE (MI) JACKSON ANTONIO DO PRADO LIMA SILVIA REGINA VERGILIO.
ADAPTAÇÃO CURRICULAR.
Profa. Maria Augusta Constante Puget
Transcrição da apresentação:

Paradigmas de Programação

Paradigma de Programação Um paradigma de programação fornece e determina a visão que o programador possui sobre a estruturação e execução do programa.

Paradigma de Programação É muito importante, para o desenvolvedor de uma linguagem, definir que conceitos omitir e que conceitos incluir na linguagem de programação sendo projetada. –Muitas vezes o desenvolvedor é forçado a abdicar da inclusão de certas características em uma linguagem de programação para torná-la mais enxuta e simples de ser utilizada. Linguagens de propósito geral não são vistas com bons olhos. Torna-se necessário, portanto, focar a linguagem em uma idéia central e em um estilo de programação específico. –Ou seja, um paradigma de programação.

Paradigma Imperativo O paradigma imperativo de programação é assim chamado por ser baseado em comandos que utilizam/manipulam variáveis armazenadas em memória. –Imperativo origina-se do latim e significa “comandar”. –Fundamenta-se em comandos que manipulam posições de memória através de variáveis. Exemplo: #include stdio.h main(){ char ch = ‘’; char ch = ‘’; scanf(“%c”, &ch); scanf(“%c”, &ch); printf(“A letra é : %c”,ch). printf(“A letra é : %c”,ch).} Manipulação de Memória através de comandos

Paradigma Imperativo O paradigma imperativo possui uma história relativamente longa. –Já em 1950, desenvolvedores de software reconheceram que o uso de variáveis e comandos constituía uma simples, mas poderosa, abstração para a busca e atualização dos comandos em memória. O paradigma imperativo ainda é predominante hoje em dia. –Muitos dos softwares estão escritos em linguagens imperativas Cobol, Clipper, C,...

Paradigma Imperativo Ao longo dos anos o domínio do paradigma imperativo deve-se inteiramente a inércia. –Linguagens dominantes, em aplicações comerciais, são: Basic, Cobol e Fortran. –É muito difícil migrar de um sistema implementado em Basic para Java (por exemplo). –Empurra-se com a “barriga” até quando for possível. Necessidade de funcionalidades não suportadas pela linguagem. –Aplicações Internet-enabled. –Acesso ao sistema via Thin-Clients Linguagens arcaicas não disponibilizam tais possibilidades.

Paradigma Imperativo Podemos classificar as linguagens que seguem o paradigma imperativo em duas categorias –Linguagens não estruturadas: Possuem quebras incondicionais na ordem de execução do programa –Comando “goto”. Linguagens: Cobol, Fortran, Algol 60,.. –Linguagens estruturadas: Seguem uma seqüência lógica de execução –Laços, chamadas de procedimentos, chamadas de funções... Linguagens: C, Pascal, Ada,...

LGG Imperativas X LGG Declarativas Linguagens imperativas requerem a produção de programas que especifiquem COMO resolver o problema, direta ou indiretamente, através da execução de transições entre estados. –O-O também segue o paradigma imperativo, porém com maior disciplina. Em linguagens declarativas, um programa deve especificar: –Ou qual é a resposta para o problema (funcional). –Ou quais as relações que definem o problema (lógico).

Programação Imperativa Na programação imperativa, programas são escritos para modelar processos do mundo real. –Estes processos afetam objetos do mundo real. –Tais objetos são modelados por variáveis. Em O-O, o mundo real é modelado através de abstrações que representam os próprios objetos presentes no mundo real. Na programação declarativa descreve-se O QUE deve ser feito, mas não COMO deve ser feito.

LGG Imperativas X LGG Declarativas Exemplo: Considere uma função que retorne o menor elemento de um vetor. Programação Imperativa - Pascal function menor(v: array of real): real; var i : integer; begin menor := v[0]; for i := 0 to 3 do if(v[i] > v[i +1]) then menor := v[i+1]; end; Programação Declarativa - Prolog menor(E,L) :- pertence(E,L) not (pertence (E1,L), E1<E).

LGG Imperativas X LGG Declarativas Comparação: (a - Imperativa) x (b - Declarativa). –(a) descreve, detalhadamente, como alcançar a SOLUÇÃO do problema. (b) descreve o PROBLEMA. –(a) trabalha com repetição e usa variáveis locais para acumular resultados e controlar a repetição. (b) trabalha com recursão. Linguagens imperativas podem utilizar o conceito de recursão. Porém continuarão necessitando de variáveis para armazenar resultados intermediários. O uso de variáveis e repetição constitui-se na maneira mais natural para representar processos do mundo real em linguagens imperativas –(a) fundamenta-se em comandos que manipulam posições de memória através de variáveis. (b) descreve, através de fatos e regras, o problema a ser resolvido.

Reuso de Software Um dos grandes problemas do paradigma imperativo é a dificuldade para a implementação de software reutilizável. –Uso de variáveis globais Efeito gelatina –Baixa coesão: encapsulação fraca Dificuldade para alcançar a encapsulação de conceitos que possam ser entendidos individualmente.

Por que é difícil alcançar o reuso? Reuso não acontece automaticamente. Para reusar, tem que: –Projetar boas abstrações –Empacotá-las para facilitar o reuso. Softwares reutilizáveis são raros de ser encontrados –Como fazer isso? –Que técnicas usar? O-O veio para solucionar o problema do reuso. –Porém, até o final da década de 90, o pessoal de O-O ainda não tinha cumprido com a promessa de gerar software reutilizável.

Solução para o Reuso Na metade da década de 90, as lições e caminhos cristalizaram-se com: –Design Patterns, Documentação das melhores idéias de projeto O-O –Frameworks, Encapsulação das características genéricas de um domínio de problema. –Componentes. Encapsulação das particularidades de cada problema.

Um Breve Histórico A linguagem C foi criada em 1972, por Dennis Ritchie, nos laboratórios da Bell Telephone. Finalidade: foi criada para projetar o sistema operacional UNIX –Código fonte do Unix é em C. Como a linguagem C é extremamente poderosa e flexível, sua utilização espalhou-se rapidamente a partir dos laboratórios Bell. –Programadores de todos os setores começaram a usá-la para desenvolver variados tipos de programas. E quanto ao nome? –O nome da linguagem C vem simplesmente do fato de que o seu predecessor era chamado de B. A linguagem B foi desenvolvida por Ken Thompson nos laboratórios Bell

Características Linguagem poderosa e flexível: C pode ser utilizado para projetos diversos tais como: Sistemas Operacionais, processadores de textos, programas básicos, planilhas eletrônicas e até mesmo compiladores. A linguagem C é extremamente popular: consequentemente, há uma ampla variedade de compiladores e acessórios disponíveis. Portabilidade: Um programa em C que tenha sido desenvolvido para um determinado sistema, pode ser compilado e executado em outros sistemas com pouca ou nenhuma modificação. Linguagem Modular: facilita a especificação de código através de rotinas e bibliotecas. (linguagem estruturada)

Características Linguagem compilada: existem vários compiladores diferentes para a linguagem C. Linguagem Tipada: Suporta o conceito de tipos mas não é fortemente tipada como o pascal –Compiladores C realizam poucas verificações de erros com relação a tipos de dados. Não possui um “coletor de lixo” para liberar memória alocada e não mais utilizada. –A desalocação de memória deve ser feita manualmente.

Ciclo de Desenvolvimento de um Programa em C.

Estrutura de um Programa em C # include A diretiva include realiza a inclusão de um arquivo fonte em outro. # define pi 3,14159 A diretiva define é utilizada para a definição de constantes simbólicas globais. funçãoX( ); prototipação: informar ao compilador que a função foi declarada e desenvolvida abaixo. void main( ){ A função main é a primeira função a ser executada... funçãoX( ); chamada de função.... } void funçãoX( ){ especificação de uma função.... }

Exemplo Um exemplo que lê e soma dois floats:

#include Float recebe( ); prototipação de função Float soma(Float, Float); prototipação de função void mostra(Float); prototipação de função void main( ){ Float a = 0, b = 0, c = 0; declaração de variáveis a = recebe( ); chamada de função. b = recebe( ); chamada de função. c = soma(a,b); chamada de função. mostra(c); chamada de função. } Float recebe( ){ implementação da função recebe. float x; scanf("%f",&x); return(x); } Float soma(Float x, Float y){ implementação da função soma. return(x+y); } void mostra(Float x){ implementação da função mostra. printf("valor = %f", x); getch( ); }