Microprocessadores ii revisão de linguagem de programação (parte1)

656 visualizações

Publicada em

Microprocessadores: revisão de Linguagem de programação (parte 1)

Publicada em: Dispositivos e hardware
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
656
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
38
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Microprocessadores ii revisão de linguagem de programação (parte1)

  1. 1. Prof. Mauro Jansen Professor: Mauro Jansen Microprocessadores II Revisão de Linguagem de Programação
  2. 2. Prof. Mauro Jansen Linguagem de Programação Revisão de Introdução à programação 2 Conceitos Básicos
  3. 3. Prof. Mauro Jansen Dados e informações  Dados: são os fatos em sua ordem primária.  Matéria prima (bruta)  Ex: preço de venda, nota, horas trabalhadas  Informação: parte utilizável dos dados, que pode ser armazenada, transmitida ou permitir a dedução de novas informações.  Produto final (acabado, lapidado)  Ex: orçamento, resultado acadêmico, folha de pagamento Linguagem de Programação Revisão de Introdução à programação 3 INFORMAÇÃ O DADO CONHECIMENT O
  4. 4. Prof. Mauro Jansen Processamento de dados  Qualquer trabalho de manipulação de dados que tenha como finalidade obter resultados previamente estabelecidos de modo a resolver determinado problema  Tem 3 partes principais: ENTRADA, PROCESSAMENTO e SAÍDA  Envolve TRANSMISSÃO, ARMAZENAMENTO, RECUPERAÇÃO, COMPARAÇÃO, COMBINAÇÃO de informações Linguagem de Programação Revisão de Introdução à programação 4 ENTRAD A PROCESSAMENT O SAÍDA
  5. 5. Prof. Mauro Jansen Dados de entrada e saída  Ao tentar resolver um problema, devemos identificar alguns dados que auxiliarão na sua resolução.  Dados de Entrada: dão suporte à solução do problema. Ponto de partida.  Dados de Saída: resultados esperados após solução.  Através de um algoritmo os dados de entrada podem ser processados e teremos a solução do problema, que gerará uma saída de dados Linguagem de Programação Revisão de Introdução à programação 5
  6. 6. Prof. Mauro Jansen Instrução e lógica de programação Instrução: Informação que indica ao computador uma ação elementar a executar Lógica de programação diz respeito à dedução de uma sequência de instruções tal que, fornecidos os dados de entrada, alcançaremos como saída a solução do problema inicialmente concebido, por meio da execução das instruções Linguagem de Programação Revisão de Introdução à programação 6
  7. 7. Prof. Mauro Jansen Linguagem de Programação Revisão de Introdução à programação 7 Algoritmos Conceitos, características, importância e passos para criação
  8. 8. Prof. Mauro Jansen Algoritmo  Sequência ordenada de passos (instruções) necessários para a resolução de um problema ou processo.  Procedimento passo a passo para resolução de um problema  Exemplos de possíveis problemas do mundo real solucionáveis com algoritmos:  Resolver uma operação matemática seguindo passos até chegar ao resultado final  Assar uma pipoca no forno microondas  Tomar medicamentos seguindo orientações médicas  Cozinhar seguindo receitas culinárias Linguagem de Programação Revisão de Introdução à programação 8
  9. 9. Prof. Mauro Jansen Conceito formal Linguagem de Programação Revisão de Introdução à programação 9 “Um algoritmo é uma lista de instruções que, quando executadas, transformam dados de entrada até a saída. As instruções são um conjunto finito de etapas que podem ser executadas, numa ordem precisa, por um mecanismo determinista. Quando estas etapas são efetivamente executadas , a execução deve terminar após um tempo finito.” (HOLLOWAY, 2006)
  10. 10. Prof. Mauro Jansen Características de um algoritmo Ter fim; Não dar margem a dupla interpretação; Capacidade de receber dados do mundo exterior; Poder gerar informações de saída para o mundo externo ao ambiente do algoritmo; Ser efetivo; Linguagem de Programação Revisão de Introdução à programação 10
  11. 11. Prof. Mauro Jansen Importância dos algoritmos “A noção de algoritmo é básica para toda a programação de computadores”. [KNUTH - Professor da Universidade de Stanford, autor da coleção “The art of computer programming” “O conceito central da programação e da ciência da computação é o conceito de algoritmo”. [WIRTH - Professor da Universidade de Zurique, autor de diversos livros na área e responsável pela criação de linguagens de programação como ALGOL, PASCAL e MODULA-2] Linguagem de Programação Revisão de Introdução à programação 11
  12. 12. Prof. Mauro Jansen Passos para escrever um algoritmo  Segundo ASCENCIO e CAMPOS (2002), os passos para a construção de algoritmos são os seguintes:  Ler atentamente o enunciado, destacando os pontos mais importantes;  Definir os dados de entrada;  Definir o processamento;  Definir os dados de saída;  Construir o algoritmo uma das técnicas descritas a seguir;  Testar o algoritmo realizando simulações. Linguagem de Programação Revisão de Introdução à programação 12
  13. 13. Prof. Mauro Jansen Linguagem de Programação Revisão de Introdução à programação 13 Linguagens de Programação (Aonde queremos chegar com os algoritmos)
  14. 14. Prof. Mauro Jansen Linguagem de máquina  O computador, nativamente, só entende uma linguagem: a linguagem (ou código) de máquina, que é uma linguagem que:  Tem grau de dificuldade acentuado  Requer do programador um conhecimento da arquitetura interna do hardware  Exemplo de programa em código de máquina: Linguagem de Programação Revisão de Introdução à programação 14 C000:C100 BF 00 74 68 51 66 56 57-1E 06 53 66 50 E8 BC 00 C000:C110 8B D9 D1 E1 16 5E 8E DE-8E C6 83 C5 02 8B C5 83 C000:C120 ED 16 8B F5 8B FD 2B F9-8B E8 B9 0C 00 FC F3 A5 C000 10111111 C001 00000000 C002 01110100 C003 01101000 ...
  15. 15. Prof. Mauro Jansen Linguagens de programação (LP’s)  As linguagens de programação existem para tornar a programação mais próxima da nossa linguagem natural  Maior facilidade  Maior produtividade Linguagem de Programação Revisão de Introdução à programação 15 Código de máquina X linguagem de alto nível:
  16. 16. Prof. Mauro Jansen Linguagens de programação (exemplo de programa) Exemplo de programa em uma linguagem de programação (Pascal): Linguagem de Programação Revisão de Introdução à programação 16 (* Programa CONTADOR – conta de 1 a 10 *) Var c: integer; Begin for c:=1 to 10 do writeln(c); writeln(‘Fim!’); End.
  17. 17. Prof. Mauro Jansen Linguagens de programação (LP’s)  São programas (softwares) usados para criar outros programas.  Transformam um conjunto de instruções de uma linguagem acessível em instruções da linguagem do computador (linguagem de máquina)  Exemplos: Linguagem de Programação Revisão de Introdução à programação 17  Pascal  Delphi  Visual Basic  Java  C  C++  C#  PHP  Javascript
  18. 18. Prof. Mauro Jansen Características das LP’s  Rigidez sintática:  Idioma limitado e construções bem definidas  A ordem dos termos ou uma vírgula a mais ou a menos faz diferença (a sintaxe deve ser seguida à risca)  Rigidez semântica: não pode haver ambiguidades.  O computador não tem idéia do que executa e nem inteligência para analisar a ordem  Você deve ser bem claro em relação ao que quer que o computador execute Linguagem de Programação Revisão de Introdução à programação 18
  19. 19. Prof. Mauro Jansen Tipos de linguagens de programação Quanto ao nível de abstração (facilidade de aprendizado)  Alto nível  Médio nível  Baixo nível Quanto à forma de execução  Compiladas  Interpretadas Linguagem de Programação Revisão de Introdução à programação 19
  20. 20. Prof. Mauro Jansen Nível de abstração das LPs Alto nível: separa os detalhes da máquina. É mais próxima da linguagem humana Médio nível: separa os detalhes da máquina, mas permite o acesso aos mesmos Baixo nível: diretamente relacionadas com a arquitetura do hardware Linguagem de Programação Revisão de Introdução à programação 20
  21. 21. Prof. Mauro Jansen Nível de abstração das LPs Linguagem de Programação Revisão de Introdução à programação 21 MÁQUINA Homem / linguagem humana Linguagens de alto nível: ASP, C/C++, C#, Pascal/Object Pascal, Java, PHP, Python, Tcl, Basic/Visual Basic, Delphi Linguagens de médio nível: C, C++ Linguagens de baixo nível: Assembly e Linguagem de máquina
  22. 22. Prof. Mauro Jansen Linguagem compilada – visão geral Linguagem compilada  Converte o programa na linguagem de alto nível (programa fonte) para a linguagem de máquina (programa executável)  Funcionamento: Linguagem de Programação Revisão de Introdução à programação 22 Programa fonte Compilador Linkeditor Programa executável Código objeto bibliotecas
  23. 23. Prof. Mauro Jansen Linguagem compilada - elementos  Programa fonte: (ou código fonte) instruções e símbolos de uma linguagem de programação escritos de forma lógica e ordenada, com o objetivo de comandar um computador na execução de uma função  Normalmente são arquivos tipo texto com extensão definida pela LP: .C , .PAS , .JAVA , .PHP , etc  Compilador: (ou tradutor) programa que traduz um programa fonte em uma linguagem para um código objeto ou linguagem de mais baixo nível  Código objeto: (ou código intermediário). Código resultante da compilação. Ainda não é executável diretamente pelo computador.Linguagem de Programação Revisão de Introdução à programação 23
  24. 24. Prof. Mauro Jansen Linguagem compilada - elementos  Linkeditor: (ou ligador) programa que liga os objetos gerados pelo compilador, criando o arquivo executável  Bibliotecas: conjuntos de sub-programas, ou objetos previamente existentes que serão (re)utilizados na criação do programa executável  Programa executável: arquivo final, que pode ser executado pelo computador através do sistema operacional  Normalmente são arquivos com a extensão .EXE ou .COM Linguagem de Programação Revisão de Introdução à programação 24
  25. 25. Prof. Mauro Jansen Linguagem compilada - exemplos Delphi Pascal/Object Pascal C Visual Basic Assembler, etc. Linguagem de Programação Revisão de Introdução à programação 25
  26. 26. Prof. Mauro Jansen Linguagem interpretada – visão geral Linguagem interpretada  Executa os comandos sem converter para a linguagem de máquina (não gera programa executável)  Funcionamento:  Ou: Linguagem de Programação Revisão de Introdução à programação 26 Programa fonte Interpretador (executa) Interpretador ou Máquina virtual (executa) Código objeto Programa fonte Compilador
  27. 27. Prof. Mauro Jansen Linguagem interpretada – exemplos: Java HTML ASP PHP Javascript Linguagem de Programação Revisão de Introdução à programação 27
  28. 28. Prof. Mauro Jansen Ambientes de desenvolvimento  São ambientes de desenvolvimento que integram diversas ferramentas para a criação de programas em uma linguagem de programação  Também chamados de IDE´s (Integrated Development Environment)  Exemplo de ferramentas encontradas nos IDE´s:  Editor de textos adequado para a programação  Ajuda (Help) on-line  Compilador, linkeditor e depurador integrados  Ferramentas para desenho de janelas (formulários) Linguagem de Programação Revisão de Introdução à programação 28
  29. 29. Prof. Mauro Jansen Desenvolvimento de software Segue algumas fases  Análise: definição do QUÊ o programa deverá fazer  Projeto: definição de COMO o programa executará seu objetivo  Implementação: codificação (criação de um ou mais programas em uma linguagem)  Testes: testes isolados e de integração Linguagem de Programação Revisão de Introdução à programação 29
  30. 30. Prof. Mauro Jansen O que preciso saber para programar? Noções de algoritmos e lógica de programação Conhecer a estrutura, comandos e símbolos da linguagem de programação escolhida Para linguagens de baixo nível, conhecer também a arquitetura do hardware Prática... Muita prática Linguagem de Programação Revisão de Introdução à programação 30
  31. 31. Prof. Mauro Jansen Linguagem de Programação Revisão de Introdução à programação 31 Estruturação de Algoritmos(Estruturas básicas para criação e representação de algoritmos)
  32. 32. Prof. Mauro Jansen Estruturação de algoritmos São formas possíveis de resolução e representação de algoritmos  Resolução  Sequencial  Condicional  Repetição  Representação  Linguagem natural / descrição narrativa  Fluxograma  Pseudocódigo Linguagem de Programação Revisão de Introdução à programação 32
  33. 33. Prof. Mauro Jansen Estruturas de resolução Ao buscar uma solução de um problema criando um algoritmo, sempre teremos pelo menos uma das seguintes estruturas:  Resolução Sequencial: sequência linear de instruções, uma após a outra  Resolução Condicional: existência de “condições” para executar algumas instruções.  Resolução com Repetição: algumas instruções precisam ser executadas várias vezes. Linguagem de Programação Revisão de Introdução à programação 33
  34. 34. Prof. Mauro Jansen Estruturas de representação Linguagem natural / descrição narrativa Fluxograma Diagrama de Chapin Pseudocódigo Linguagem de Programação Revisão de Introdução à programação 34
  35. 35. Prof. Mauro Jansen Linguagem natural Apesar de ser possível escrever algoritmos para pessoas usando a linguagem natural, ela não é adequada para a construção de algoritmos para o computador Não tem características das LP´s:  Não têm rigidez sintática:  Traga caneta azul ou preta.  Traga caneta (Azul ou preta)  Não tem rigidez semântica:  A velhinha ouviu o barulho da janela Linguagem de Programação Revisão de Introdução à programação 35
  36. 36. Prof. Mauro Jansen Fluxograma: exemplo Linguagem de Programação Revisão de Introdução à programação 36 Algoritmo em forma de fluxograma, para solicitar dois números e mostrar qual o maior: Início Leia num1, num2 Num1>num2? Maior  num1 sim não Maior  num2 Escreva Maior Fim
  37. 37. Prof. Mauro Jansen Diagrama de Chapin: exemplo Linguagem de Programação Revisão de Introdução à programação 37 Leia num1, num2 sim não maior num1 maior  num2 Escreva “O maior é: ”,maior Fim Algoritmo referente ao problema do maior número, representado em diagrama de Chapin: num1>nu m2
  38. 38. Prof. Mauro Jansen Pseudocódigo  Assemelha-se à forma como os programas são escritos.  Para traduzir o pseudocódigo para uma linguagem de programação, basta conhecer o vocabulário e regras sintáticas da linguagem.  Busca a rigidez sintática e semântica, porém sem o detalhamento exigido nas linguagens de programação Linguagem de Programação Revisão de Introdução à programação 38 Forma para a representação de algoritmos rica em detalhes, como a definição dos tipos das variáveis usadas no algoritmo.
  39. 39. Prof. Mauro Jansen Pseudocódigo – estrutura básica Linguagem de Programação Revisão de Introdução à programação 39 Algoritmo <nome do Algoritmo> Variáveis <lista de variáveis> Início <bloco de comandos> Fim
  40. 40. Prof. Mauro Jansen Pseudocódigo - exemplo Pseudocódigo referente ao problema do maior número: Linguagem de Programação Revisão de Introdução à programação 40 Algoritmo “Maior” Var num1, num2, maior: inteiro Inicio Escreva(“Digite o 1° numero:”) Leia(num1) Escreva(“Digite o 2° numero:”) Leia(num2) se (num1>num2) entao maior <- num1 senao maior <- num2 fimse escreva(maior) FimAlgoritmo
  41. 41. Prof. Mauro Jansen Linguagem de Programação Revisão de Introdução à programação 41 Tipos de dados, variáveis, expressões e operadores
  42. 42. Prof. Mauro Jansen Introdução a tipos de dados  Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória  Estas informações podem ser classificadas em dois tipos:  As instruções, que comandam o funcionamento da máquina e determinam a maneira como devem ser tratados os dados  Os dados propriamente ditos, que correspondem à porção das informações a serem processadas pelo computador Linguagem de Programação Revisão de Introdução à programação 42
  43. 43. Prof. Mauro Jansen Introdução a tipos de dados Internamente, essas informações (dados e instruções), ficam registradas na memória na forma binária Porém, para facilitar, as linguagens de programação oferecem a noção de TIPOS DE DADOS, que nos permite manipular as informações de forma mais parecida com o modo como fazemos no mundo real Linguagem de Programação Revisão de Introdução à programação 43
  44. 44. Prof. Mauro Jansen Conceito de tipos de dados Podemos definir tipos de dados como um conjunto de objetos que têm em comum o mesmo comportamento diante de um conjunto definido de operações Exemplos:  Pessoas  Z (conjunto dos números inteiros)  R (conjunto dos números reais)  Letras Linguagem de Programação Revisão de Introdução à programação 44
  45. 45. Prof. Mauro Jansen Tipos de dados básicos das linguagens de programação Linguagem de Programação Revisão de Introdução à programação 45 Tipos de Dados Numéric o inteiro real Literal caractere String Lógico  OBS: Além dos tipos básicos, as linguagens podem oferecer variações dos mesmos ou outros tipos como Data, Hora, etc.
  46. 46. Prof. Mauro Jansen Tipos de dados básicos  Numéricos: somente números, positivos ou negativos  Inteiros: não possuem parte fracionária. Ex: 10, -9, 0  Reais: podem ter parte fracionária. Ex: 15.25 , -15  Literais: letras, dígitos ou símbolos  Caractere: um único caractere. Ex: ‘a’, ‘7’, ‘@’  String: conjunto de caracteres, formando uma palavra, frase ou parágrafo. Ex: “Algoritmos”, “** ABC **”  Lógicos (ou booleanos): somente dois valores possíveis: verdadeiro ou falso Linguagem de Programação Revisão de Introdução à programação 46
  47. 47. Prof. Mauro Jansen Variáveis : conceito e características  Podemos imaginar uma variável como o nome de um local na memória principal do computador onde se pode colocar qualquer valor do conjunto de valores possíveis do tipo básico associado  Características:  um nome (ou identificador)  um tipo de dado associado à mesma  e o dado (valor) por ela guardado. Linguagem de Programação Revisão de Introdução à programação 47 tipo de dad o Nome da variável valor
  48. 48. Prof. Mauro Jansen Declaração de variáveis  Declarar uma variável corresponde à criação de um local na memória rotulado com o nome da variável (identificador) e marcado com o tipo de valores que ela pode conter: Linguagem de Programação Revisão de Introdução à programação 48 Memória RAM tip o de da dotip o de da do Nome da variável valor Nome da variável valor Nome da variável valor
  49. 49. Prof. Mauro Jansen Regras para definir nomes de variáveis  O primeiro caractere do nome deve ser uma letra.  Se houver mais de um caractere, só se deve usar letra ou algarismo.  Há diferença em usar letras maiúsculas e minúsculas.  Não usar palavras que sejam reservadas Às Linguagens de Programação.  Devemos dar nomes representativos para as variáveis. Linguagem de Programação Revisão de Introdução à programação 49
  50. 50. Prof. Mauro Jansen Declaração de variáveis em pseudocódigo  Colocamos o identificador do tipo de dado seguido do nome da variável  Identificadores de tipos de dados:  Exemplos: int valor; real salario, taxa; char opcao; Linguagem de Programação Revisão de Introdução à programação 50 Inteiro – int ou integer Real – real, float ou double Literal – char (caractere) ou string (cadeia de caracteres) Lógico – boolean ou lógico Variáveis do mesmo tipo podem ser declaradas juntas, bastando separar os identificadores por vírgula.
  51. 51. Prof. Mauro Jansen Expressão  Combinação de operandos (valores ou variáveis), operadores, e chamadas de funções que são interpretadas (avaliadas) de acordo com as regras de precedência e de associatividade particulares a uma determinada linguagem de programação, que calcula e, em seguida, produz (retorna) um valor  O tipo da expressão é o tipo do dado resultante: Linguagem de Programação Revisão de Introdução à programação 51 Tipo de expressão Exemplos Aritmética 2+2 salario * reajuste / 100 Literal “Algoritmos”+” e programação” Lógica 5 > 3
  52. 52. Prof. Mauro Jansen Operadores e operandos  Operadores são elementos que atuam sobre operandos e produzem um resultado  Operandos são valores ou variáveis de um dos tipos de dados  Operadores binários: exigem dois operandos  Ex: 3 + 6  Operadores unários: exigem um único operando  Ex: -2 Linguagem de Programação Revisão de Introdução à programação 52
  53. 53. Prof. Mauro Jansen Operadores aritméticos Usados em expressões aritméticas Linguagem de Programação Revisão de Introdução à programação 53
  54. 54. Prof. Mauro Jansen Operadores lógicos e de comparação São usados em expressões lógicas Operadores lógicos: Operadores de comparação: Linguagem de Programação Revisão de Introdução à programação 54
  55. 55. Prof. Mauro Jansen Linguagem de Programação Revisão de Introdução à programação 55 Sub-Algoritmos
  56. 56. Prof. Mauro Jansen Sub-algoritmos São blocos de instruções que realizam tarefas específicas, que são executadas várias vezes ou parte de uma tarefa maior Um algoritmo completo é dividido em:  Um algoritmo principal  Diversos sub-algoritmos Linguagem de Programação Revisão de Introdução à programação 56
  57. 57. Prof. Mauro Jansen Sub-algoritmos – ilustração do funcionamento: Linguagem de Programação Revisão de Introdução à programação 57 Subalgoritmo 1 instrução 1 Subalgoritmo 2 instrução 2 Algoritmo Principal instrução 1 instrução 2 Subalgoritmo 1 instrução 3 Subalgoritmo 2 instrução 1 instrução 2 A execução inicial aqui e segue a sequência das instruções. A execução do Algoritmo Principal é interrompida até que o Subalgoritmo 1 seja executado, continuando em seguida a partir da instrução 3. Executado no momento em que é invocado pelo Algoritmo Principal. A execução do Subalgoritmo 1 é interrompida até que o Subalgoritmo 2 seja executado, continuando em seguida a partir da instrução 2. Executado no momento em que é invocado pelo Subalgoritmo 1. Terminada a execução, volta para continuar o Subalgoritmo 1. Quando terminar o Subalgoritmo 1, volta para continuar com a execução do Algoritmo Principal.
  58. 58. Prof. Mauro Jansen Tipos de sub-algoritmos  PROCEDIMENTO: é um sub-algoritmo que não retorna valor ao algoritmo chamador ou que retorna dois ou mais valores  Exemplos: solicita_valores, lista_resultados  FUNÇÃO: é um sub-algoritmo que calcula um valor a partir de outros fornecidos a ela, retornando o valor calculado  Exemplos: primo(<número>), fatorial(<número>) Linguagem de Programação Revisão de Introdução à programação 58
  59. 59. Prof. Mauro Jansen Exemplo de pseudocódigo com sub-algoritmo Linguagem de Programação Revisão de Introdução à programação 59 Algoritmo SomaDeDoisNumeros Variáveis num1, num2, s: Inteiro Função soma (x, y: Inteiro) Variáveis adicao: Inteiro Início adicao  x + y Retorne adicao Fim Início Escreva “Digite o Primeiro Numero” Leia num1 Escreva “Digite o Segundo Numero” Leia num2 s  soma(num1, num2) Escreva s Fim Aqui se inicia o algoritmo principal, que solicita dois números ao usuário e, em seguida, chama a função que realiza a soma dos números. Guarda a soma retornada pela função na variável s e mostra o valor na tela. Quando a função é chamada, a execução do algoritmo principal fica parada até que a função seja finalizada e retorne o resultado.

×