Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Introdução à Para Engenharias Algoritmos e Lógica de GE4 Bio GE4Bio Grupo de Estudos em Sinais Biológicos Prof.Dr. Danilo Spatti São Carlos - 2018
2 Definições de Algoritmos Características Algoritmos é um conjunto de passos ordenados visando a solução de um problema específico. As características desejadas dos algoritmos são: Legibilidade Portabilidade
3 Definições de Algoritmos Legibilidade Pode-se definir legibilidade como sendo o nível de clareza com que a lógica do algoritmo está expressa. Legibilidade pequena: alta complexidade. Legibilidade alta: baixa complexidade.
4 Definições de Algoritmos Portabilidade Pode-se definir a portabilidade como sendo a capacidade do algoritmo ser convertido, com facilidade, para qualquer linguagem de programação. É sempre desejável ao se construir um algoritmo que o mesmo seja portável, ou seja, possa ser implementado em qualquer linguagem de programação.
5 Lógica de Informação A tarefa principal de qualquer computador é a manipulação de dados ou informações com alto desempenho. INFORMAÇÃO Dados Constantes Variáveis Instruções
6 Lógica de Construção de Algoritmos Em geral, a construção de um algoritmo irá envolver os seguintes passos: 1. Definição dos dados de entrada 2. Definição do processo (ou processamento) 3. Definir os dados de saída 4. Construção do algoritmo (utilizar alguma técnica de representação) 5. Rastreio do algoritmo
7 Lógica de Características Lógica de programação é a ferramenta empregada para ordenação do raciocínio sobre um determinado programa de computação. Alguns conceitos são necessários para que a lógica de programação seja corretamente empregada: Conceito de variável Iniciação (Inicialização) de variáveis
8 Lógica de Exemplo de Programa (I) Suponha que você deseje que o computador calcule a soma de dois números inteiros: 20 e 30 1. Sejam a, b variáveis inteiras 2. Faça a 20 3. Faça b 30 4. Calcule a a + b 5. Imprima a a b 20 50 30
9 Lógica de Exemplo de Programa (I) Suponha que você deseje que o computador calcule a soma de dois números inteiros: 20 e 30 1. Sejam a, b, x variáveis inteiras 2. Faça a 20 3. Faça b 30 4. Calcule x a + b 5. Imprima x a b x 20 30 50
10 Lógica de Variáveis (I) É a representação simbólica dos elementos de um determinado conjunto. Corresponde a uma posição na memória, cujo conteúdo pode variar ao longo da execução do programa. Armazena apenas um único valor a cada instante.
11 Lógica de Variáveis (II) Toda variável é identificada por um nome e deve ser de um determinado tipo. Exemplo: a, b, x, no algoritmo do exemplo. A inicialização é o processo de criação e atribuição de valores às variáveis.
12 Lógica de Constantes As constantes assumem um único valor durante a execução do código. Para ter seu valor alterado, é necessário chamar a instrução que atribua um novo valor para esta constante. Exemplo: π = 3.1415925
13 Lógica de Inicialização de Variáveis Existem basicamente dois processos de inicialização de variáveis: (A) LEITURA: leia um valor de x a partir de um arquivo, ou entre com o valor de x pelo teclado (B) ATRIBUIÇÃO: atribua a x um valor y
14 Formas de Representação de Algoritmos Tipos Descrição narrativa Fluxograma convencional Pseudocódigo Diagrama hierárquico de funções (D.H.F.) Diagrama de fluxo de dados (D.F.D.)
15 Descrição Narrativa Características Nesta forma de representação os algoritmos são expressos diretamente em linguagem natural. Exemplo: Calculo da média aritmética de um aluno Passos: 1. Obter as notas da primeira e segunda provas 2. Calcular a média aritmética das notas 3. Se a média é maior ou igual que cinco o aluno está aprovado. Caso contrário está reprovado.
16 Fluxograma Convencional Características O fluxograma convencional fornece uma representação gráfica das operações a serem realizadas no algoritmo. Para distinguir as diferentes classes de operações emprega-se formas geométricas com significado claramente definido.
17 Fluxograma Convencional Início e fim de processamento Principais Formas Geométricas Operação de entrada de dados Operação de saída de dados Operação de atribuição / chamada de subalgoritmo Operação de teste lógico
18 Fluxograma Convencional Exemplo da Média Aritmética Início N 1, N 2 Média=(N 1 +N 2 )/2 Média 5 SIM Aprovado Fim NÃO Reprovado
19 Pseudocódigo Características Esta forma se assemelha bastante com a forma em que os programas de computador são escritos. Esta forma apresenta grande aceitação pois é rica em detalhes de implementação.
20 Pseudocódigo Forma Geral Algoritmo <nome_do_algoritmo> <declaração_de_variáveis> <subalgoritmos> Inicio Fim <corpo_do_algoritmo>
21 Pseudocódigo Palavras Reservadas Algoritmo: indica que um novo algoritmo vai ser escrito <nome_do_algoritmo>: indica o nome dado ao algoritmo para diferenciá-lo dos demais <declaração_de_variáveis>: é o lugar do algoritmo onde as variáveis são declaradas <subalgoritmos>: lugar onde outros algoritmos são definidos Inicio: significa onde o algoritmo vai começar a ser executado Fim: indica o fim do algoritmo
22 Pseudocódigo Algoritmo média_das_notas Var N1, N2, média : real Inicio Leia (N1) Leia (N2) Média (N1+N2)/2 Se média 5 então Escreva (Aprovado) Senão Escreva (Reprovado) Fim Se Fim Exemplo da Média Aritmética
23 Pseudocódigo Var N1, N2, média: real Begin Read(N1) Read(N2) Média:=(N1+N2)/2 If média >= 5 then Write ( Aprovado ) Else Write( Reprovado ) End Conversão de Pseudocódigo Para Pascal
24 Pseudocódigo main() float N1, N2, media scan ( %f,fn1) scan ( %f,fn2) media = (N1+N2)/2 if (media>=5) printf( Aprovado ) else printf( Reprovado ) end end Conversão de Pseudocódigo Para C
25 Um dígito binário é chamado de bit (BInary digit). O bit mais significativo é chamado de MSB (most significant bit) e o menos significativo de LSB (least significant bit). Nibble 4 dígitos binários Byte 8 dígitos binários Sistema Binário Características (II) Pesos Decimal 2 2 2 1 2 0 0 0 0 0 1 0 0 1 2 0 1 0 3 0 1 1 4 1 0 0 5 1 0 1 6 1 1 0 7 1 1 1 MSB LSB
26 Conversão Decimal x Binário Qualquer número binário pode ser convertido para seu equivalente decimal pela soma dos pesos das posições em que o número binário possuir um bit 1. 1010 2 = 1x2 3 + 0x2 2 + 1x2 1 + 0x2 0 1010 2 = 8 + 0 + 2 + 0 1010 2 = 10 10 Binário para Decimal 1010,11 2 = 1x2 3 + 0x2 2 + 1x2 1 + 0x2 0 + 1x2-1 + 1x2-2 1010,11 2 = 8 + 0 + 2 + 0 + 0,5 + 0,25 1010,11 2 = 10,75 10
27 Conversão Decimal x Binário Decimal para Binário Divisões sucessivas por 2 até que um quociente zero seja obtido. O resultado é dado pelos restos da divisão na ordem inversa que foram obtidos. 47 2 1º resto... 1 23 2 2º resto... 1 11 2 3º resto... 1 5 2 4º resto... 1 2 2 5º resto... 0 1 101111 2
28 Sistema de numeração muito utilizado na programação de microprocessadores. Sistema com 16 símbolos diferentes (base 16): os números de 0 a 9 (decimal) e as letras de A a F (hexa). As posições dos dígitos recebem pesos como potências de 16. Exemplo: 1BC2 16 para decimal? 1BC2 16 = 1x16 3 + Bx16 2 + Cx16 1 + 2x16 0 1BC2 16 = 4096 + 2816 + 192 + 2 1BC2 16 = 7106 10 Sistema Hexadecimal Características Hexa Decimal Binário 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 8 8 1000 9 9 1001 A 10 1010 B 11 1011 C 12 1100 D 13 1101 E 14 1110 F 15 1111
29 Conversão Decimal x Hexa A conversão de números hexadecimais para decimais é feita da mesma forma que para converter binários para decimais. 356 16 = 3x16 2 + 5x16 1 + 6x16 0 356 16 = 768 + 80 + 60 356 16 = 854 10 Hexa para Decimal 2AF 16 = 2x16 2 + 10x16 1 + 15x16 0 2AF 16 = 512 + 160 + 15 2AF 16 = 687 10
30 Conversão Decimal x Hexa Decimal para Hexa A conversão de decimal para hexa, usam-se divisões sucessivas por 16 similar à conversão de decimal para binário. 255 16 224 16 31 16 32 16 15 15 = FF 16 0 14 = E0 16 15 1 = 1F 16 0 2 = 20 16 65 16 109 16 1 4 = 41 16 13 6 = 6D 16 428 16 12 26 16 10 1 = 1AC 16 1016 16 8 63 16 15 3 = 3F8 16
31 Binário x Hexa Hexa para Binário A conversão de hexa em binário é realizada pela troca de cada dígito hexa pelo seu equivalente binário com 4 bits. 9F2 16 = 9 F 2 9F2 16 = 1 0 0 1 1 1 1 1 0 0 1 0 9F2 16 = 100111110010 2
32 Binário x Hexa Binário para Hexa A conversão binário em hexa é o inverso, ou seja, arranjam-se os bits em grupos de quatro e os substituem por dígitos hexa. 1110100110 2 = 0011 1010 0010 1110100110 2 = 3 A 6 1110100110 2 = 3A6 16
33 Codificações ASCII (American Standard Code for Information Interchange) Codificação alfanumérica, utilizada para representar letras, números e outros símbolos. O código ASCII padrão usa 7 bits, 128 combinações possíveis. Código ASCII A versão estendida utiliza 8 bits, 256 combinações.
34 Codificações Código ASCII
35 Fim spatti@icmc.usp.br GE4 Bio GE4Bio Grupo de Estudos em Sinais Biológicos