lista de exerc­cios algoritmos - edsonh/repositorio/integrado_2017_1...  lista de...

Download Lista de Exerc­cios Algoritmos - edsonh/Repositorio/Integrado_2017_1...  Lista de Exerc­cios Algoritmos

Post on 19-Nov-2018

253 views

Category:

Documents

3 download

Embed Size (px)

TRANSCRIPT

  • COMPUTAO Algoritmos. Pg 1 / 38

    Lista de Exerccios

    Algoritmos

  • COMPUTAO Algoritmos. Pg 2 / 38

    Introduo programao - Definio de programa: Programa de computador uma lista de instrues a serem seguidas pelo equipamento. \ Programa fonte o programa escrito em linguagem de programao. Programa objeto o programa gerado que ser executado pelo hardware. Em certos casos, ainda deve sofrer um processo chamado ligao (linkagem), o que na maioria dos casos transparente ao usurio. As linguagens de programao podem ser classificadas segundo alguns critrios, dentre os quais podemos citar: Quanto ao grau de abstrao (NVEL) : Esta classificao leva em considerao a facilidade na escrita e a proximidade desta linguagem com a linguagem humana. Quanto mais parecida for a linguagem de programao com a linguagem humana, mais alto seu nvel. Linguagens de alto nvel so mais fceis de se programar, e apresentam (geralmente) maior portabilidade, permitindo fcil migrao de um hardware para outro. Exemplos: Java, C#, Object Pascal (Delphi), Visual Basic. J as linguagens de baixo nvel so mais poderosas no que diz respeito acesso aos recursos do hardware, so bem mais rpidas, mas exigem um maior esforo de programao. Exemplo: Assembly, C ANSI.

    Quanto ao paradigma de programao : Esta classificao leva em considerao a forma com que elaborada a soluo para o problema. Paradigma Imperativo: quando uma lista de comandos executados em seqncia determina a mudana de estado de atuadores e variveis, ou verificam estado dos sensores. O nome imperativo utilizado pelo fato da linguagem exprimir aes em seqncia no formato de ordens a serem seguidas, uma a

    uma. Paradigma Estruturado: quando o programa escrito tendo em base o uso principalmente de 3 estruturas: Seqncia, Deciso e Iterao (repetio). Paradigma Funcional: quando o programa d nfase relao entre seus componentes mediante funes especficas. Paradigma de Orientao a Objetos: quando o programa preconiza a descrio de seus componentes atravs de classes, para as quais so associados mtodos e conjuntos de dados chamados atributos. Este paradigma est comumente associado a linguagens de alto nvel, e facilita a abstrao e o reaproveitamento de cdigo. Paradigma Lgico: quando a relao entre os diversos componentes do programa estabelecida mediante um conjunto de regras. Estabelece-se uma relao entre entradas e sadas, entre os dados, e o sistema simplesmente obedece este conjunto de regras, sem se preocupar com a seqncia. Exemplo: Ladder, Prolog. Forma de execuo : Esta classificao leva em considerao a forma com que as instrues sero executadas.

  • COMPUTAO Algoritmos. Pg 3 / 38

    Linguagem montada: quando um programa (montador) simplesmente traduz as instrues escritas por smbolos no programa fonte para cdigos binrios reconhecidos pelo processador. Ex: Assembly Linguagem compilada: quando um programa mais complexo (compilador) analisa as estruturas do programa fonte, e gera trechos de programa em cdigo binrio reconhecveis pelo processador ou por outro programa executor. Linguagem interpretada: quando a linguagem do programa fonte diretamente interpretada por um programa executor. Geralmente um pouco mais lenta. Compilador: o programa que transforma um programa fonte em um programa objeto. Modelo do programa: O MODELO de um programa ou sistema dado por um conjunto de regras e especificaes, que determinam em uma linguagem de ALTO NVEL (fcil de ser entendida) como o programa deve funcionar. Para facilitar o entendimento, imaginemos o modelo como a planta baixa do programa. O modelo pode ser apresentado de vrias formas, como diagramas ou fluxogramas ou documentos em linguagem descritiva.

    Cliente: quem apresenta o problema e quem paga pela soluo. um componente importante na programao, pois antes de tudo precisamos saber como o cliente quer que o programa resolva o problema. Usurio: quem ir usar o programa a ser criado. Nem sempre o cliente e o

    usurio so a mesma pessoa, por isso precisamos observar que o usurio em questo pode ser uma pessoa mais leiga, ou uma pessoa mais experiente ...

    Analista: quem entrevista o cliente, extrai os requisitos do programa, cria o MODELO do programa, ou seja, o projeto inicial, e por fim entrega a ESPECIFICAO ao programador. Fazendo uma comparao com a construo civil, podemos dizer que o engenheiro/arquiteto, que cria a planta baixa (modelo) da casa. Programador: quem escreve o programa, usando os comandos adequados,

    tcnica de programao adequada e seguindo as orientaes do MODELO apresentado. Novamente na analogia com a construo de uma casa, o PROGRAMADOR como o pedreiro, que a partir da planta baixa (modelo), constri as paredes, teto, instalao hidrulica, etc...

  • COMPUTAO Algoritmos. Pg 4 / 38

    Linguagens mais utilizadas em automao industrial e mecatrnica : Linguagem Assembly: Utilizada para programar microprocessadores e microcontroladores. Possui poucos comandos e requer bastante conhecimento do programador para resoluo de problemas mais complexos. Muito utilizada para construo de sistemas embarcados, como firmwares de equipamentos feitos em srie e que exijam baixo custo e desempenho. Firmware o software gravado em memria ROM que permite que um determinado sistema funcione. Linguagem C: Alternativa para uso no lugar da

    linguagem Assembly,

    permite maior produtividade

    com reaproveitamento de cdigo, e

    maior portabilidade,

    permitindo que menos mudanas sejam necessrias quando o programa deve ser adaptado a outra plataforma de hardware.

    Ladder: Freqentemente utilizada na programao de PLCs (controladores lgicos programveis) sendo uma linguagem de fcil abstrao e paradigma lgico.

    Grafcet ou SFC: Linguagem que permite expressar o programa atravs de mquinas de estado (como nos diagramas de Petri Net). um paradigma intermedirio entre o Lgico e o Imperativo.

  • COMPUTAO Algoritmos. Pg 5 / 38

    ALGORITMOS: OPERADORES

    Tipo Operador Descrio Exemplo

    Atribuio NUM X A varivel NUM recebe o valor da varivel X

    + Adio NUM X + 2 A varivel NUM recebe o valor de X adicionado em 2 - Subtrao X Y - 2 A varivel X recebe o valor de Y menos 2 * Multiplicao X 3 * G A varivel X recebe o triplo de G

    / Diviso S 5 / 3 A varivel S recebe o resultado de 5 dividido por 3

    Arit

    mt

    ico

    % Resto da diviso S 9 % 2 A varivel S recebe o resto da diviso de 9 por 2 (portanto, S receber 1)

    Prioridade ( ) X (3+7) / 2 Estabelece que a soma ser feito antes da diviso. Sem os parnteses, a diviso seria feita antes da soma.

    = Igual X = 2 Retorna verdadeiro se X for 2 Diferente X 2 Retorna verdadeiro se X for diferente de 2 > Maior que X > 2 Retorna verdadeiro se X for maior que 2 < Menor que X < 2 Retorna verdadeiro se X for menor que 2

    Maior ou igual a X 2 Retorna verdadeiro se X for maior ou igual a 2

    Rel

    acio

    nais

    Menor ou igual a X 2 Retorna verdadeiro se X for menor ou igual a 2

    e E X > 0 e Y > 0 Retorna verdadeiro somente se X e Y forem positivos

    ou OU X >0 ou Y >0 Retorna verdadeiro se X for positivo ou se Y for positivo

    Lgi

    cos

    no Negao no (x > 0) Inverte o valor lgico do item que segue. No exemplo, se X for positivo, a expresso retornar falso.

  • COMPUTAO Algoritmos. Pg 6 / 38

    FLUXOGRAMAS : REGRAS

    Abaixo esto relacionadas as regras para os algoritmos (fluxogramas) que iremos interpretar e implementar.

    1) Todo algoritmo deve possuir um INICIO.

    2) A Terminao (FIM), conectores e o RETURN sero os nicos blocos que no possuiro sadas de fluxo.

    3) O fluxo de execuo do programa (setas) deve seguir um sentido nico.

    4) Utilize os blocos corretos para facilitar a interpretao.

    5) Blocos de deciso (SE) devero possuir duas e somente duas sadas de fluxo, sendo uma para VERDADEIRO e outra para FALSO. No esquea de indic-las usando V ou F, SIM ou NO, YES ou NO ...

    6) Todas as linhas de fluxo devem descer por um lado do algoritmo, e retornar por outro, sem que as mesmas se cruzem.

    7) Devemos, preferencialmente, escrever o algoritmo sempre da esquerda para direita, e de cima para baixo.

    8) Somente podero ser utilizados os operadores definidos na tabela de operadores.

    9) Conectores somente devem ser utilizados em extrema necessidade.

    10) As variveis utilizadas no programa devem ser nomeadas por uma nica palavra, sem espaos, acentuao ou smbolos. O nome da varivel deve comear necessariamente por uma letra, e pode ser seguida de letras e nmeros.

  • COMPUTAO Algoritmos. Pg 7 / 38

    SIMBOLOGIA BSICA PARA CONSTRUO DE DIAGRAMA DE BLOCOS (Fluxograma)

    TERMINAO : Indica o incio e o trmino de algoritmo ou de uma subrotina.

    SETA DE DIREO : Indica o caminho a ser seguido e a direo do processamento.

    PROCESSAMENTO : Indica um processamento, algo que dever ser executado, geralmente implicando em manipulao de dados (variveis).

    SUBROTINA : Indica uma rotina a ser chamada. No final da rotina (subprograma) a execuo continua do ponto de onde foi realizada a chamada.

    ENTRADA VIA TECLADO : Indica uma entrada manual via teclado de um equipamento. No interior, devem constar informaes das variveis a serem lidas via teclado.

    CONECTOR : Indica uma ponte ou conexo entre pontos distantes de um algoritmo.

    DECISO : Indica uma estrutura condicional. Obrigatoriamente deve haver uma entrada e duas sadas. No interior deve haver uma pergunta, e as sadas sero conhecidas por (SIM) e (NO), ou (VERDADEIRO) e (FALSO).