SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
Introdução ao Paradigma Imperativo
Prof. Tony Alexander Hild
Paradigmas de Linguagem de Programação – 3 CC – Unicentro – 2013
2
Definição da paradigmaDefinição da paradigma
pa·ra·dig·ma
(grego parádeigma, -atos)
substantivo masculino
1. Algo que serve de exemplo geral ou de modelo. = PADRÃO
2. [Gramática]  Conjunto das formas que servem de modelo de derivação
ou de flexão. = PADRÃO
3. [Linguística]  Conjunto dos termos ou elementos que podem ocorrer na
mesma posição ou contexto de uma estrutura.
"paradigma", in Dicionário Priberam da Língua Portuguesa [em linha], 2008-
2013, http://www.priberam.pt/dlpo/paradigma [consultado em 27-09-2013].
3
Definição de imperativoDefinição de imperativo
im·pe·ra·ti·vo
adjetivo
1. Que impera ou manda.
2. Autoritário, arrogante.
substantivo masculino
3. [Gramática]  Modo do verbo que exprime ordem, exortação ou pedido.
4. Princípio que tem o caráter de obrigação imperiosa.
"imperativo", in Dicionário Priberam da Língua Portuguesa [em linha], 2008-
2013, http://www.priberam.pt/dlpo/imperativo [consultado em 27-09-2013].
4
Relembrando a história...Relembrando a história...
●
John von Neumann:
– Primeira pessoa a documentar os
conceitos básicos de
computadores de programas
armazenados;
– Famoso matemático húngaro que
foi para os EUA em 1930 e
interessou-se por computadores
enquanto participava no
desenvolvimento da bomba de
hidrogênio.
5
O computador “von Neumann”O computador “von Neumann”
●
Uma unidade de memória: é capaz de armazenar dados e instruções:
– Acesso aleatório;
●
Internamente, os dados e as instruções são armazenadas no mesmo espaço de
endereço e são indistinguíveis;
●
Uma unidade de cálculo (ALU);
●
Uma unidade de controle (CPU);
– Programa armazenado → conjunto de instruções;
●
Dualidade entre instruções e dados → programas podem automodificar-se;
●
von Neumann delineou essa estrutura em um documento conhecido como o
“First Draft of a Report on the EDVAC” de junho de 1945.
6
O computador “von Neumann”O computador “von Neumann”
7
● Alan Turing: um matemático
britânico e um dos primeiros
cientistas da computação;
● Uma linguagem é Turing
completa se puder ser utilizada
para implementar qualquer
algoritmo;
● Muito importante para o estudo
da computabilidade.
Completude de TuringCompletude de Turing
8
O que torna uma linguagemO que torna uma linguagem
imperativa?imperativa?
●
Programas escritos em linguagens de
programação imperativas consistem em:
– Um estado do programa;
– Instruções que alteram o estado do programa.
●
Instruções do programa são "imperativas", no
sentido gramatical dos verbos imperativos que
expressam um comando.
Primeiro faça isto, depois faça aquilo.
9
● Primeiras linguagens imperativas: linguagens de
montagem (assembly);
● 1954-1955: Fortran (FORmula TRANslator):
– John Backus desenvolvido para IBM 704.
● Final de 1950: Algol (ALGOrithmic Language);
● 1958: Cobol (Common Business Oriented
Language), desenvolvido por uma comissão do
governo, Grace Hopper muito influente.
História das Linguagens ImperativasHistória das Linguagens Imperativas
10
Elementos das linguagens imperativasElementos das linguagens imperativas
●
Definições de tipo de dados;
●
Declarações de variáveis:
– São normalmente "tipadas" estaticamente ou dinamicamente:
●
Tipos básicos de dados (e.g., int, float, boolean, char);
●
Tipos de dados compostos (structs, arrays).
●
Expressões e declarações de atribuição;
●
Declarações de controle de fluxo (geralmente estruturados);
– Desvios condicionais, laços;
– As declarações são comandos e sua ordem é fundamental para a execução correta;
●
Escopos lexicais e blocos:
– Objetivo: proporcionar localidade de referência.
●
Declarações e definições de procedimentos e funções (isto é, blocos parametrizados);
●
Manipulação de erros e exceções;
●
Comandos de E/S;
●
Estruturas de dados.
11
Características das linguagensCaracterísticas das linguagens
imperativasimperativas
●
São Turing completas se suportarem inteiros, operadores aritméticos básicos, atribuições,
sequenciamento, laços e desvios condicioanis;
●
O estado do programa é mantido em variáveis associadas à localizações de memória:
– Endereço e um valor de armazenamento;
●
O valor da variável pode ser acessado direta e indiretamente, e pode ser alterado através
de um comando de atribuição;
– a = 1;
– &a = 1;
●
Uma atribuição introduz uma dependência de ordem no programa:
– o valor de uma variável é diferente antes e depois de um comando de atribuição;
– print(a) => 1;
– a = 2; dependência de ordem
– print(a) => 2;
12
Características das linguagensCaracterísticas das linguagens
imperativasimperativas
● Repetição ou laço ou loop:
– Usada extensivamente para processar valores ou acumular um valor em uma variável
específica; ou
– Usada para varrer uma sequência de localizações de memória tal como vetores.
● Funções:
– Algoritmos que especificam como processar um intervalo de valores, a partir de um valor
de domínio, com uma série de passos prescritos;
● Comandos:
– Semelhantes às instruções de máquina nativas de um hardware de computador tradicional
- o modelo de von Neumann-Eckley;
● O paradigma imperativo é predominante nas LPs, pois tais linguagens são mais fáceis de
traduzir para uma forma adequada para execução na máquina;
● Usa-se abstração procedural e refinamento gradual para melhorar um programa imperativo.
13
Gráfico de fluxoGráfico de fluxo
● Usado para modelar programas
imperativos;
● Com base nas três declarações
de controle que são essenciais
para se obter toda a
capacidade de uma máquina
de Turing;
● Precursor da UML e outras
técnicas modernas;
● Criado para descrever fluxos
de processos em geral.
14
Abstração ProceduralAbstração Procedural
● Nicholas Wirth descreveu programas (imperativos)
como "algoritmos + estruturas de dados";
● Algoritmos tornam-se programas através do
processo de abstração procedural e refinamento
gradual;
● Bibliotecas de funções reutilizáveis facilitam este
processo (funções = procedimentos);
● Programação imperativa + procedimentos =
programação procedural.
15
● A abstração procedural permite que o programador
se preocupe principalmente com as interfaces
entre as funções (procedimentos) e o que elas
calculam, ignorando os detalhes de como o cálculo
é realizado;
● Abstração permite pensar sobre o que está sendo
feito, e não como é implementado.
Abstração ProceduralAbstração Procedural
16
Refinamento gradual (passo aRefinamento gradual (passo a
passo)passo)
● Refinamento gradual (também chamado de decomposição
funcional) utiliza abstração procedural para desenvolver um
algoritmo a partir de sua forma mais geral, (a abstração) para
sua implementação específica (método top-down);
● Os programadores começam com a descrição do que o
programa deve fazer, incluindo E/S, e repetidamente quebram
o problema em partes menores, até que os subproblemas
possam ser expressados em termos dos estados primitivos e
dos tipos de dados da linguagem.
17
●
Uma abordagem disciplinada para projetos de programas imperativos;
●
Usa abstração procedural e projeto top-down para identificar os
componentes do programa (também chamados de módulos ou
estruturas);
●
Estruturas do programa combinadas em um número limitado de formas,
de modo que a compreensão de como funciona cada estrutura significa
entender como funciona o programa;
●
O fluxo de controle do programa é baseado em decisões, sequências,
laços, mas...
– Não usa instruções goto.
●
Os módulos são desenvolvidos, testados separadamente e depois
integradas no conjunto do programa.
Programação EstruturadaProgramação Estruturada
18
Instruções gotoInstruções goto
Código Spaghetti
19
AtribuiçõesAtribuições
● Lembre-se: linguagens imperativas operam
alterando o estado do programa. Isso é feito
usando comandos de atribuição destrutivos.
● Formato geral:
– destino = expressão
● Operadores de atribuição: = ou :=
● Baseado em operações de máquina, tais como
MOV ou STO.
20
Semântica de AtribuiçãoSemântica de Atribuição
● Avalia a expressão para obter um único valor;
● Copia o valor da expressão para o destino;
● Programas imperativos puros implementam a
semântica de cópia (em oposição à semântica de
referência utilizadas em linguagens orientadas a
objetos).
21
ExpressõesExpressões
● Expressões representam um valor e têm um tipo;
● Compreender as expressões significa entender a
precedência do operador, sobrecarga de
operadores, casting e conversão de tipo, entre
outras questões;
● Expressões aritméticas simples são baseados em
operadores aritméticos (DIV, MUL, etc) de
linguagem de máquina (LM).
22
ExpressõesExpressões
● Os operadores lógicos são baseadas em instruções de LM
semelhantes (AND, XOR, …);
● LM suporta tipos de dados indiretamente através de diferentes
instruções:
– add/sub/mul/div de inteiros
vs
– add/sub/mul/div de ponto flutuante, por exemplo.
● Internamente, não há maneira visível para distinguir inteiros de
ponto flutuantes de caracteres;
● Línguagens a partir do Fortran fornecem alguma proteção contra
erros de tipo, e alguma capacidade para definir novos tipos.
23
Linguagens Imperativas X DeclarativasLinguagens Imperativas X Declarativas
● Linguagens imperativas (Java, Pascal, C/C++, C#):
– Especificam uma sequência de operações para o computador
executar.
● Linguagens declarativas (SQL, Haskell, Prolog)
– Descrevem o espaço de soluções;
– Fornecem o conhecimento necessário para chegar lá;
– Não descrevem os passos necessários para chegar lá.
– Linguagens funcionais e linguagens lógicas são declarativas.
24
Vantagens e DesvantagensVantagens e Desvantagens
● Vantagens:
– Eficiência (embute o modelo de Von Neumann);
– Mais fácil de traduzir para a linguagem de máquina;
– Paradigma dominante e bem estabelecido;
– Modelagem “Natural” de aplicações do mundo real;
– Também é muito flexível.
● Desvantagens:
– Descrições demasiadamente operacionais;
– Focaliza o “como” e não o “quê”;
– Relacionamento indireto com a E/S (indução a erros/estados).
25
ExemplosExemplos
●
Ada
●
Algol
●
C
●
Pascal
26
ADAADA
27
ADAADA
28
ALGOLALGOL
29
CC
30
PascalPascal

Contenu connexe

Tendances

Paradigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e FuncionalParadigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e FuncionalGustavo Coutinho
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Mariana Camargo
 
Banco de Dados I Aula 02 - Introdução aos Bancos de Dados
Banco de Dados I  Aula 02 - Introdução aos Bancos de DadosBanco de Dados I  Aula 02 - Introdução aos Bancos de Dados
Banco de Dados I Aula 02 - Introdução aos Bancos de DadosLeinylson Fontinele
 
Diagramas de Fluxo de Dados
Diagramas de Fluxo de DadosDiagramas de Fluxo de Dados
Diagramas de Fluxo de DadosJanynne Gomes
 
Arquitetura de Computadores: Conceitos básicos
Arquitetura de Computadores: Conceitos básicosArquitetura de Computadores: Conceitos básicos
Arquitetura de Computadores: Conceitos básicosAlex Camargo
 
Módulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informaçãoMódulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informaçãoLuis Ferreira
 
Manual-de-php
Manual-de-phpManual-de-php
Manual-de-phpdiogoa21
 
Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02thomasdacosta
 
Arquitetura de Computadores: Assembly
Arquitetura de Computadores: AssemblyArquitetura de Computadores: Assembly
Arquitetura de Computadores: AssemblyElaine Cecília Gatto
 
Oficina: Introdução à programação com Python e seus recursos: algoritmos e ló...
Oficina: Introdução à programação com Python e seus recursos: algoritmos e ló...Oficina: Introdução à programação com Python e seus recursos: algoritmos e ló...
Oficina: Introdução à programação com Python e seus recursos: algoritmos e ló...Jackson Meires
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em pptAndrei Bastos
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADLeinylson Fontinele
 
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Leinylson Fontinele
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação CGercélia Ramos
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Luis Ferreira
 

Tendances (20)

Paradigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e FuncionalParadigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e Funcional
 
Psi m14
Psi m14Psi m14
Psi m14
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
 
Algoritmo aula 01-f
Algoritmo   aula 01-fAlgoritmo   aula 01-f
Algoritmo aula 01-f
 
Linguagem C - Ponteiros
Linguagem C - PonteirosLinguagem C - Ponteiros
Linguagem C - Ponteiros
 
Modelos de Banco de dados e SGBDS
Modelos de Banco de dados e SGBDSModelos de Banco de dados e SGBDS
Modelos de Banco de dados e SGBDS
 
Banco de Dados I Aula 02 - Introdução aos Bancos de Dados
Banco de Dados I  Aula 02 - Introdução aos Bancos de DadosBanco de Dados I  Aula 02 - Introdução aos Bancos de Dados
Banco de Dados I Aula 02 - Introdução aos Bancos de Dados
 
Diagramas de Fluxo de Dados
Diagramas de Fluxo de DadosDiagramas de Fluxo de Dados
Diagramas de Fluxo de Dados
 
Arquitetura de Computadores: Conceitos básicos
Arquitetura de Computadores: Conceitos básicosArquitetura de Computadores: Conceitos básicos
Arquitetura de Computadores: Conceitos básicos
 
Módulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informaçãoMódulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informação
 
Manual-de-php
Manual-de-phpManual-de-php
Manual-de-php
 
Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02
 
Arquitetura de Computadores: Assembly
Arquitetura de Computadores: AssemblyArquitetura de Computadores: Assembly
Arquitetura de Computadores: Assembly
 
Oficina: Introdução à programação com Python e seus recursos: algoritmos e ló...
Oficina: Introdução à programação com Python e seus recursos: algoritmos e ló...Oficina: Introdução à programação com Python e seus recursos: algoritmos e ló...
Oficina: Introdução à programação com Python e seus recursos: algoritmos e ló...
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
 
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 
Introdução a Bancos de Dados
Introdução a Bancos de DadosIntrodução a Bancos de Dados
Introdução a Bancos de Dados
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos
 

En vedette

Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Valmon Gaudencio
 
Programação 1
Programação 1Programação 1
Programação 1essa
 
Critérios de avaliação de linguagens
Critérios de avaliação de linguagensCritérios de avaliação de linguagens
Critérios de avaliação de linguagensPaulo Muniz
 
Elementos Fundamentais de Linguagens de Programação e a Linguagem Python
Elementos Fundamentais de Linguagens de Programação e a Linguagem PythonElementos Fundamentais de Linguagens de Programação e a Linguagem Python
Elementos Fundamentais de Linguagens de Programação e a Linguagem PythonCaliane Z. Pecenin
 
Aula Inaugural - Programação Imperativa
Aula Inaugural - Programação ImperativaAula Inaugural - Programação Imperativa
Aula Inaugural - Programação ImperativaIvna Valença
 
Linguágens de programação
Linguágens de programaçãoLinguágens de programação
Linguágens de programaçãoAlbertoVach
 
Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmicoParadigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmicoAdriano Teixeira de Souza
 
Apresentação linguagem cobol
Apresentação linguagem cobolApresentação linguagem cobol
Apresentação linguagem cobolLorranna Machado
 
Apresentação sobre a linguagem lua
Apresentação sobre a linguagem luaApresentação sobre a linguagem lua
Apresentação sobre a linguagem luaRafael Sanches
 
Linguagens de Programação
Linguagens de ProgramaçãoLinguagens de Programação
Linguagens de ProgramaçãoBeDMK
 
Aula 02 POO - Meu Primeiro Código
Aula 02 POO - Meu Primeiro CódigoAula 02 POO - Meu Primeiro Código
Aula 02 POO - Meu Primeiro CódigoAislan Rafael
 
4 introdução ao paradigma funcional
4 introdução ao paradigma funcional4 introdução ao paradigma funcional
4 introdução ao paradigma funcionalPéricles Miranda
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programaçãoessa
 
Algoritmos - Paradigmas de Programação
Algoritmos - Paradigmas de ProgramaçãoAlgoritmos - Paradigmas de Programação
Algoritmos - Paradigmas de ProgramaçãoElaine Cecília Gatto
 
Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Ismar Silveira
 

En vedette (20)

Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
 
Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.
 
Programação 1
Programação 1Programação 1
Programação 1
 
Critérios de avaliação de linguagens
Critérios de avaliação de linguagensCritérios de avaliação de linguagens
Critérios de avaliação de linguagens
 
Elementos Fundamentais de Linguagens de Programação e a Linguagem Python
Elementos Fundamentais de Linguagens de Programação e a Linguagem PythonElementos Fundamentais de Linguagens de Programação e a Linguagem Python
Elementos Fundamentais de Linguagens de Programação e a Linguagem Python
 
Aula Inaugural - Programação Imperativa
Aula Inaugural - Programação ImperativaAula Inaugural - Programação Imperativa
Aula Inaugural - Programação Imperativa
 
Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
 
Linguágens de programação
Linguágens de programaçãoLinguágens de programação
Linguágens de programação
 
Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmicoParadigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
 
Apresentação linguagem cobol
Apresentação linguagem cobolApresentação linguagem cobol
Apresentação linguagem cobol
 
01 aula1 habib
01 aula1 habib01 aula1 habib
01 aula1 habib
 
Apresentação sobre a linguagem lua
Apresentação sobre a linguagem luaApresentação sobre a linguagem lua
Apresentação sobre a linguagem lua
 
Linguagens de Programação
Linguagens de ProgramaçãoLinguagens de Programação
Linguagens de Programação
 
Aula 02 POO - Meu Primeiro Código
Aula 02 POO - Meu Primeiro CódigoAula 02 POO - Meu Primeiro Código
Aula 02 POO - Meu Primeiro Código
 
4 introdução ao paradigma funcional
4 introdução ao paradigma funcional4 introdução ao paradigma funcional
4 introdução ao paradigma funcional
 
Paradigma lógico
Paradigma lógicoParadigma lógico
Paradigma lógico
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
 
Algoritmos - Paradigmas de Programação
Algoritmos - Paradigmas de ProgramaçãoAlgoritmos - Paradigmas de Programação
Algoritmos - Paradigmas de Programação
 
Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2
 
Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
 

Similaire à Introdução ao Paradigma Imperativo

Lista exercicios algoritmos
Lista exercicios algoritmosLista exercicios algoritmos
Lista exercicios algoritmosslashmelhor
 
Aula01 estrutura de dados - (começando as brincadeiras)
Aula01   estrutura de dados - (começando as brincadeiras)Aula01   estrutura de dados - (começando as brincadeiras)
Aula01 estrutura de dados - (começando as brincadeiras)Cleyton Fábio
 
Apresentação final
Apresentação finalApresentação final
Apresentação finalvalmon
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturadodasko
 
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdfparadigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdfAndreiaCristinaFlore
 
aula03-introprogy.pptx
aula03-introprogy.pptxaula03-introprogy.pptx
aula03-introprogy.pptxbrayankedroksi
 
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOCURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOMicrosoft
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação12anogolega
 
Aula01 introducao operacoes
Aula01   introducao operacoesAula01   introducao operacoes
Aula01 introducao operacoesYuri Passos
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iiiRay Fran Pires
 
Técnicas_Implementação
Técnicas_ImplementaçãoTécnicas_Implementação
Técnicas_ImplementaçãoWagner Zaparoli
 
Algoritmos - Aula 03 - Necessidade Do Uso da Logica
Algoritmos - Aula 03 - Necessidade Do Uso da LogicaAlgoritmos - Aula 03 - Necessidade Do Uso da Logica
Algoritmos - Aula 03 - Necessidade Do Uso da LogicaRodrigo Kiyoshi Saito
 

Similaire à Introdução ao Paradigma Imperativo (20)

Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
 
Lista exercicios algoritmos
Lista exercicios algoritmosLista exercicios algoritmos
Lista exercicios algoritmos
 
1.1.paradigmas
1.1.paradigmas1.1.paradigmas
1.1.paradigmas
 
Aula01 estrutura de dados - (começando as brincadeiras)
Aula01   estrutura de dados - (começando as brincadeiras)Aula01   estrutura de dados - (começando as brincadeiras)
Aula01 estrutura de dados - (começando as brincadeiras)
 
Cap02
Cap02Cap02
Cap02
 
Cap02
Cap02Cap02
Cap02
 
Cap02
Cap02Cap02
Cap02
 
Apresentação final
Apresentação finalApresentação final
Apresentação final
 
Principios e paradigmas_de_computacao2
Principios e paradigmas_de_computacao2Principios e paradigmas_de_computacao2
Principios e paradigmas_de_computacao2
 
Aula01 - Analise e Programação
Aula01 - Analise e ProgramaçãoAula01 - Analise e Programação
Aula01 - Analise e Programação
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturado
 
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdfparadigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
 
aula03-introprogy.pptx
aula03-introprogy.pptxaula03-introprogy.pptx
aula03-introprogy.pptx
 
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOCURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação
 
Aula01 introducao operacoes
Aula01   introducao operacoesAula01   introducao operacoes
Aula01 introducao operacoes
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iii
 
Mini Curso de C
Mini Curso de CMini Curso de C
Mini Curso de C
 
Técnicas_Implementação
Técnicas_ImplementaçãoTécnicas_Implementação
Técnicas_Implementação
 
Algoritmos - Aula 03 - Necessidade Do Uso da Logica
Algoritmos - Aula 03 - Necessidade Do Uso da LogicaAlgoritmos - Aula 03 - Necessidade Do Uso da Logica
Algoritmos - Aula 03 - Necessidade Do Uso da Logica
 

Plus de Tony Alexander Hild

Simplificação de expressões Booleanas utilizando mapas de Karnaugh
Simplificação de expressões Booleanas utilizando mapas de KarnaughSimplificação de expressões Booleanas utilizando mapas de Karnaugh
Simplificação de expressões Booleanas utilizando mapas de KarnaughTony Alexander Hild
 
Introdução aos Mapas de Karnaugh
Introdução aos Mapas de KarnaughIntrodução aos Mapas de Karnaugh
Introdução aos Mapas de KarnaughTony Alexander Hild
 
CEAD 2013 - Oficina 1: Ferramentas colaborativas e de comunicação WEB
CEAD 2013 - Oficina 1: Ferramentas colaborativas e de comunicação WEBCEAD 2013 - Oficina 1: Ferramentas colaborativas e de comunicação WEB
CEAD 2013 - Oficina 1: Ferramentas colaborativas e de comunicação WEBTony Alexander Hild
 
Introdução ao Desenvolvimento WEB
Introdução ao Desenvolvimento WEBIntrodução ao Desenvolvimento WEB
Introdução ao Desenvolvimento WEBTony Alexander Hild
 
Computação Gráfica - Transformações Geométricas no Plano e no Espaço
Computação Gráfica - Transformações Geométricas no Plano e no EspaçoComputação Gráfica - Transformações Geométricas no Plano e no Espaço
Computação Gráfica - Transformações Geométricas no Plano e no EspaçoTony Alexander Hild
 
Computação Gráfica - Introdução ao OpenGL
Computação Gráfica - Introdução ao OpenGLComputação Gráfica - Introdução ao OpenGL
Computação Gráfica - Introdução ao OpenGLTony Alexander Hild
 
Computação Gráfica - Artquitetura de Dispositivos Gráficos
Computação Gráfica - Artquitetura de Dispositivos GráficosComputação Gráfica - Artquitetura de Dispositivos Gráficos
Computação Gráfica - Artquitetura de Dispositivos GráficosTony Alexander Hild
 
Computação Gráfica - Informações Visuais Óculo-motoras
Computação Gráfica - Informações Visuais Óculo-motorasComputação Gráfica - Informações Visuais Óculo-motoras
Computação Gráfica - Informações Visuais Óculo-motorasTony Alexander Hild
 
Computação Gráfica - Percepção Tridimensional
Computação Gráfica - Percepção TridimensionalComputação Gráfica - Percepção Tridimensional
Computação Gráfica - Percepção TridimensionalTony Alexander Hild
 
Computação Gráfica - Introdução
Computação Gráfica - IntroduçãoComputação Gráfica - Introdução
Computação Gráfica - IntroduçãoTony Alexander Hild
 

Plus de Tony Alexander Hild (16)

Circuitos combinacionais
Circuitos combinacionaisCircuitos combinacionais
Circuitos combinacionais
 
Paradigma funcional
Paradigma funcionalParadigma funcional
Paradigma funcional
 
Circuitos sequenciais
Circuitos sequenciaisCircuitos sequenciais
Circuitos sequenciais
 
Circuitos Integrados Digitais
Circuitos Integrados DigitaisCircuitos Integrados Digitais
Circuitos Integrados Digitais
 
Paradigma Orientado a Objeto
Paradigma Orientado a ObjetoParadigma Orientado a Objeto
Paradigma Orientado a Objeto
 
Simplificação de expressões Booleanas utilizando mapas de Karnaugh
Simplificação de expressões Booleanas utilizando mapas de KarnaughSimplificação de expressões Booleanas utilizando mapas de Karnaugh
Simplificação de expressões Booleanas utilizando mapas de Karnaugh
 
Introdução aos Mapas de Karnaugh
Introdução aos Mapas de KarnaughIntrodução aos Mapas de Karnaugh
Introdução aos Mapas de Karnaugh
 
Álgebra Booleana
Álgebra BooleanaÁlgebra Booleana
Álgebra Booleana
 
CEAD 2013 - Oficina 1: Ferramentas colaborativas e de comunicação WEB
CEAD 2013 - Oficina 1: Ferramentas colaborativas e de comunicação WEBCEAD 2013 - Oficina 1: Ferramentas colaborativas e de comunicação WEB
CEAD 2013 - Oficina 1: Ferramentas colaborativas e de comunicação WEB
 
Introdução ao Desenvolvimento WEB
Introdução ao Desenvolvimento WEBIntrodução ao Desenvolvimento WEB
Introdução ao Desenvolvimento WEB
 
Computação Gráfica - Transformações Geométricas no Plano e no Espaço
Computação Gráfica - Transformações Geométricas no Plano e no EspaçoComputação Gráfica - Transformações Geométricas no Plano e no Espaço
Computação Gráfica - Transformações Geométricas no Plano e no Espaço
 
Computação Gráfica - Introdução ao OpenGL
Computação Gráfica - Introdução ao OpenGLComputação Gráfica - Introdução ao OpenGL
Computação Gráfica - Introdução ao OpenGL
 
Computação Gráfica - Artquitetura de Dispositivos Gráficos
Computação Gráfica - Artquitetura de Dispositivos GráficosComputação Gráfica - Artquitetura de Dispositivos Gráficos
Computação Gráfica - Artquitetura de Dispositivos Gráficos
 
Computação Gráfica - Informações Visuais Óculo-motoras
Computação Gráfica - Informações Visuais Óculo-motorasComputação Gráfica - Informações Visuais Óculo-motoras
Computação Gráfica - Informações Visuais Óculo-motoras
 
Computação Gráfica - Percepção Tridimensional
Computação Gráfica - Percepção TridimensionalComputação Gráfica - Percepção Tridimensional
Computação Gráfica - Percepção Tridimensional
 
Computação Gráfica - Introdução
Computação Gráfica - IntroduçãoComputação Gráfica - Introdução
Computação Gráfica - Introdução
 

Dernier

PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfHELENO FAVACHO
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)ElliotFerreira
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSOLeloIurk1
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesFabianeMartins35
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorEdvanirCosta
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
Bloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docxBloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docxkellyneamaral
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxLusGlissonGud
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxLuizHenriquedeAlmeid6
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfHELENO FAVACHO
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMHELENO FAVACHO
 

Dernier (20)

Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de Professor
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Bloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docxBloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docx
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptx
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 

Introdução ao Paradigma Imperativo

  • 1. Introdução ao Paradigma Imperativo Prof. Tony Alexander Hild Paradigmas de Linguagem de Programação – 3 CC – Unicentro – 2013
  • 2. 2 Definição da paradigmaDefinição da paradigma pa·ra·dig·ma (grego parádeigma, -atos) substantivo masculino 1. Algo que serve de exemplo geral ou de modelo. = PADRÃO 2. [Gramática]  Conjunto das formas que servem de modelo de derivação ou de flexão. = PADRÃO 3. [Linguística]  Conjunto dos termos ou elementos que podem ocorrer na mesma posição ou contexto de uma estrutura. "paradigma", in Dicionário Priberam da Língua Portuguesa [em linha], 2008- 2013, http://www.priberam.pt/dlpo/paradigma [consultado em 27-09-2013].
  • 3. 3 Definição de imperativoDefinição de imperativo im·pe·ra·ti·vo adjetivo 1. Que impera ou manda. 2. Autoritário, arrogante. substantivo masculino 3. [Gramática]  Modo do verbo que exprime ordem, exortação ou pedido. 4. Princípio que tem o caráter de obrigação imperiosa. "imperativo", in Dicionário Priberam da Língua Portuguesa [em linha], 2008- 2013, http://www.priberam.pt/dlpo/imperativo [consultado em 27-09-2013].
  • 4. 4 Relembrando a história...Relembrando a história... ● John von Neumann: – Primeira pessoa a documentar os conceitos básicos de computadores de programas armazenados; – Famoso matemático húngaro que foi para os EUA em 1930 e interessou-se por computadores enquanto participava no desenvolvimento da bomba de hidrogênio.
  • 5. 5 O computador “von Neumann”O computador “von Neumann” ● Uma unidade de memória: é capaz de armazenar dados e instruções: – Acesso aleatório; ● Internamente, os dados e as instruções são armazenadas no mesmo espaço de endereço e são indistinguíveis; ● Uma unidade de cálculo (ALU); ● Uma unidade de controle (CPU); – Programa armazenado → conjunto de instruções; ● Dualidade entre instruções e dados → programas podem automodificar-se; ● von Neumann delineou essa estrutura em um documento conhecido como o “First Draft of a Report on the EDVAC” de junho de 1945.
  • 6. 6 O computador “von Neumann”O computador “von Neumann”
  • 7. 7 ● Alan Turing: um matemático britânico e um dos primeiros cientistas da computação; ● Uma linguagem é Turing completa se puder ser utilizada para implementar qualquer algoritmo; ● Muito importante para o estudo da computabilidade. Completude de TuringCompletude de Turing
  • 8. 8 O que torna uma linguagemO que torna uma linguagem imperativa?imperativa? ● Programas escritos em linguagens de programação imperativas consistem em: – Um estado do programa; – Instruções que alteram o estado do programa. ● Instruções do programa são "imperativas", no sentido gramatical dos verbos imperativos que expressam um comando. Primeiro faça isto, depois faça aquilo.
  • 9. 9 ● Primeiras linguagens imperativas: linguagens de montagem (assembly); ● 1954-1955: Fortran (FORmula TRANslator): – John Backus desenvolvido para IBM 704. ● Final de 1950: Algol (ALGOrithmic Language); ● 1958: Cobol (Common Business Oriented Language), desenvolvido por uma comissão do governo, Grace Hopper muito influente. História das Linguagens ImperativasHistória das Linguagens Imperativas
  • 10. 10 Elementos das linguagens imperativasElementos das linguagens imperativas ● Definições de tipo de dados; ● Declarações de variáveis: – São normalmente "tipadas" estaticamente ou dinamicamente: ● Tipos básicos de dados (e.g., int, float, boolean, char); ● Tipos de dados compostos (structs, arrays). ● Expressões e declarações de atribuição; ● Declarações de controle de fluxo (geralmente estruturados); – Desvios condicionais, laços; – As declarações são comandos e sua ordem é fundamental para a execução correta; ● Escopos lexicais e blocos: – Objetivo: proporcionar localidade de referência. ● Declarações e definições de procedimentos e funções (isto é, blocos parametrizados); ● Manipulação de erros e exceções; ● Comandos de E/S; ● Estruturas de dados.
  • 11. 11 Características das linguagensCaracterísticas das linguagens imperativasimperativas ● São Turing completas se suportarem inteiros, operadores aritméticos básicos, atribuições, sequenciamento, laços e desvios condicioanis; ● O estado do programa é mantido em variáveis associadas à localizações de memória: – Endereço e um valor de armazenamento; ● O valor da variável pode ser acessado direta e indiretamente, e pode ser alterado através de um comando de atribuição; – a = 1; – &a = 1; ● Uma atribuição introduz uma dependência de ordem no programa: – o valor de uma variável é diferente antes e depois de um comando de atribuição; – print(a) => 1; – a = 2; dependência de ordem – print(a) => 2;
  • 12. 12 Características das linguagensCaracterísticas das linguagens imperativasimperativas ● Repetição ou laço ou loop: – Usada extensivamente para processar valores ou acumular um valor em uma variável específica; ou – Usada para varrer uma sequência de localizações de memória tal como vetores. ● Funções: – Algoritmos que especificam como processar um intervalo de valores, a partir de um valor de domínio, com uma série de passos prescritos; ● Comandos: – Semelhantes às instruções de máquina nativas de um hardware de computador tradicional - o modelo de von Neumann-Eckley; ● O paradigma imperativo é predominante nas LPs, pois tais linguagens são mais fáceis de traduzir para uma forma adequada para execução na máquina; ● Usa-se abstração procedural e refinamento gradual para melhorar um programa imperativo.
  • 13. 13 Gráfico de fluxoGráfico de fluxo ● Usado para modelar programas imperativos; ● Com base nas três declarações de controle que são essenciais para se obter toda a capacidade de uma máquina de Turing; ● Precursor da UML e outras técnicas modernas; ● Criado para descrever fluxos de processos em geral.
  • 14. 14 Abstração ProceduralAbstração Procedural ● Nicholas Wirth descreveu programas (imperativos) como "algoritmos + estruturas de dados"; ● Algoritmos tornam-se programas através do processo de abstração procedural e refinamento gradual; ● Bibliotecas de funções reutilizáveis facilitam este processo (funções = procedimentos); ● Programação imperativa + procedimentos = programação procedural.
  • 15. 15 ● A abstração procedural permite que o programador se preocupe principalmente com as interfaces entre as funções (procedimentos) e o que elas calculam, ignorando os detalhes de como o cálculo é realizado; ● Abstração permite pensar sobre o que está sendo feito, e não como é implementado. Abstração ProceduralAbstração Procedural
  • 16. 16 Refinamento gradual (passo aRefinamento gradual (passo a passo)passo) ● Refinamento gradual (também chamado de decomposição funcional) utiliza abstração procedural para desenvolver um algoritmo a partir de sua forma mais geral, (a abstração) para sua implementação específica (método top-down); ● Os programadores começam com a descrição do que o programa deve fazer, incluindo E/S, e repetidamente quebram o problema em partes menores, até que os subproblemas possam ser expressados em termos dos estados primitivos e dos tipos de dados da linguagem.
  • 17. 17 ● Uma abordagem disciplinada para projetos de programas imperativos; ● Usa abstração procedural e projeto top-down para identificar os componentes do programa (também chamados de módulos ou estruturas); ● Estruturas do programa combinadas em um número limitado de formas, de modo que a compreensão de como funciona cada estrutura significa entender como funciona o programa; ● O fluxo de controle do programa é baseado em decisões, sequências, laços, mas... – Não usa instruções goto. ● Os módulos são desenvolvidos, testados separadamente e depois integradas no conjunto do programa. Programação EstruturadaProgramação Estruturada
  • 19. 19 AtribuiçõesAtribuições ● Lembre-se: linguagens imperativas operam alterando o estado do programa. Isso é feito usando comandos de atribuição destrutivos. ● Formato geral: – destino = expressão ● Operadores de atribuição: = ou := ● Baseado em operações de máquina, tais como MOV ou STO.
  • 20. 20 Semântica de AtribuiçãoSemântica de Atribuição ● Avalia a expressão para obter um único valor; ● Copia o valor da expressão para o destino; ● Programas imperativos puros implementam a semântica de cópia (em oposição à semântica de referência utilizadas em linguagens orientadas a objetos).
  • 21. 21 ExpressõesExpressões ● Expressões representam um valor e têm um tipo; ● Compreender as expressões significa entender a precedência do operador, sobrecarga de operadores, casting e conversão de tipo, entre outras questões; ● Expressões aritméticas simples são baseados em operadores aritméticos (DIV, MUL, etc) de linguagem de máquina (LM).
  • 22. 22 ExpressõesExpressões ● Os operadores lógicos são baseadas em instruções de LM semelhantes (AND, XOR, …); ● LM suporta tipos de dados indiretamente através de diferentes instruções: – add/sub/mul/div de inteiros vs – add/sub/mul/div de ponto flutuante, por exemplo. ● Internamente, não há maneira visível para distinguir inteiros de ponto flutuantes de caracteres; ● Línguagens a partir do Fortran fornecem alguma proteção contra erros de tipo, e alguma capacidade para definir novos tipos.
  • 23. 23 Linguagens Imperativas X DeclarativasLinguagens Imperativas X Declarativas ● Linguagens imperativas (Java, Pascal, C/C++, C#): – Especificam uma sequência de operações para o computador executar. ● Linguagens declarativas (SQL, Haskell, Prolog) – Descrevem o espaço de soluções; – Fornecem o conhecimento necessário para chegar lá; – Não descrevem os passos necessários para chegar lá. – Linguagens funcionais e linguagens lógicas são declarativas.
  • 24. 24 Vantagens e DesvantagensVantagens e Desvantagens ● Vantagens: – Eficiência (embute o modelo de Von Neumann); – Mais fácil de traduzir para a linguagem de máquina; – Paradigma dominante e bem estabelecido; – Modelagem “Natural” de aplicações do mundo real; – Também é muito flexível. ● Desvantagens: – Descrições demasiadamente operacionais; – Focaliza o “como” e não o “quê”; – Relacionamento indireto com a E/S (indução a erros/estados).
  • 29. 29 CC