Algoritmos e Técnicas de Programação
This presentation is the property of its rightful owner.
Sponsored Links
1 / 56

Algoritmos e Técnicas de Programação PowerPoint PPT Presentation


  • 99 Views
  • Uploaded on
  • Presentation posted in: General

Algoritmos e Técnicas de Programação. Prof. Msc. Raul Benites Paradeda. Sumário. Introdução. Conceituação. Arquitetura do Computador. 01 - Introdução. Lógica. Lógica de Programação. Linguagens. Linguagem de Programação. Tradutor. Compilador. Interpretador. Linguagens. Java.

Download Presentation

Algoritmos e Técnicas de Programação

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Algoritmos e t cnicas de programa o

Algoritmos e Técnicas de Programação

Prof. Msc. Raul Benites Paradeda

Sumário

Introdução

Conceituação

Arquitetura do Computador

01 - Introdução

Lógica

Lógica de Programação

Linguagens

Linguagem de Programação

Tradutor

Compilador

Interpretador

Linguagens

Java

Linguagem de Baixo Nível

Linguagem Natural

Exercícios

Atividades de Lógica e Links


Sum rio

Sumário

  • Introdução;

  • Conceituação;

  • Arquitetura do computador;

  • Linguagens:

    • Linguagens de Baixo nível;

    • Linguagens de Programação;

  • Tradutor:

    • Compilador;

    • Interpretador;

  • SO;

  • Java;

  • Linguagem Natural;

  • Características da Linguagem.


Introdu o

Introdução

  • Com o uso crescente dos recursos da Tecnologia da Informação (TI) para resolução de problemas do dia a dia das empresas e das pessoas, ocorreu um crescimento nos Cursos relacionados à área.

  • Para que a TI possa resolver esses problemas, é necessário construir ALGORITMOS e transformá-los em programas de computador.


Introdu o1

Introdução

  • O que significa algoritmos?


Introdu o2

Introdução

  • O que significa algoritmos?

    • Um procedimento passo a passo para a solução de um problema.

    • Uma sequência detalhada de ações a serem executadas para realizar determinada tarefa.


Introdu o3

Introdução

  • Dêem um exemplo de algoritmo?


Introdu o4

Introdução

  • Qualquer atividade do dia-a-dia pode ser um exemplo de algoritmo.


Introdu o5

Introdução

  • Fazer um ovo frito por exemplo.

  • A tarefa de fazer um ovo frito tem todas as características de um algoritmo.

  • Ela tem uma sequência detalhada de passos, descrita no modo de preparo.

  • Apresenta a tarefa a ser realizada, que é um ovo frito. E também podemos identificar na receita entradas (no caso o ovo, óleo, a panela, sal fino) e uma saída, que é o ovo frito.


Introdu o6

Introdução

  • Praticamente tudo pode ser descrito em forma de algoritmos.

  • Entretanto, os algoritmos precisam ser corretos, eficientes e elegantes.


Introdu o7

Introdução

  • Correto – deve fazer o que se espera, ou seja, executa o que sua documentação descreve.


Introdu o8

Introdução

  • Eficiente – se não desperdiça tempo. Há a possibilidade de haver dois algoritmos que resolvem o mesmo problema.


Introdu o9

Introdução

  • Elegantes – ser simples, limpo, sem enfeites. Não utilizar recursos desnecessários para sua solução.


Introdu o10

Introdução

  • Os principais problemas encontrados no desenvolvimento de algoritmos são:

    • Dificuldade na resolução de problemas;

    • Dificuldade na interpretação de enunciados; e

    • Dificuldade em abstrair e formalizar informações.


Introdu o11

Introdução

  • Por esse motivo, é necessário desenvolver essas habilidades, começando pela solução de problemas sem a necessidade do uso de ferramentas computacionais.


Introdu o12

Introdução

  • Se praticamente tudo pode ser descrito em forma de algoritmos por que algoritmos ficou ligado a computação ?


Conceitua o

Conceituação

  • Programa: Implementação concreta de um algoritmo. Ou conjunto de algoritmos a serem executados pela máquina, também podemos dizer que é um conjunto de instruções ordenadas com um determinado fim.

    • Estes programas podem ser escritos em Linguagem de máquina, ou ainda em linguagens de programação tais como: C, C++, Cobol, VB, dentre outros.


Conceitua o1

Conceituação

  • Aplicação: Conjunto de rotinas para tratamento de uma determinada necessidade, podem ser compostas de um ou mais programas. Como Microsoft Office, dentre outros.


Conceitua o2

Conceituação

  • Hardware: É o conjunto de dispositivos físicos do computador, o equipamento.

  • Software: São os programas de computadores.


Conceitua o3

Conceituação

  • Firmware: Conhecido como software embarcado, trata-se de um software que controla o hardwarediretamente.


Conceitua o4

Conceituação

  • Linguagem de Máquina: - é a linguagem que o computador entende, cujo "alfabeto" é composto apenas de "1's"e "0's" (linguagem binária).

  • Linguagem de Programação: é uma linguagem formal, utilizando termos que se aproximam da linguagem humana, que pode ser traduzida por programas especiais para linguagem de máquina.


Conceitua o5

Conceituação

  • Algoritmo: Lógica utilizada para criação de um programa. Nela independe de linguagem de programação, porém as linguagens de programação precisam usar algoritmos para implementação de uma lógica específica.


Arquitetura do computador

UCP – Unidade Central de Processamento

Memória

Barramento

Teclado Mouse MonitorImpressora...

Dispositivos de Entrada/Saída

Conexões externas

Arquitetura do computador

  • De acordo com Andrew Tanenbaum a arquitetura do computador moderno é composta por:


Arquitetura do computador1

Arquitetura do computador

  • A parte física do computador é chamada de hardware, e é composta por:

    • Uma UCP,

    • Memória,

    • Dispositivos de E/S.

    • O barramento faz a ligação desses componentes.


L gica

Lógica

  • Lógica – modo de raciocinar: as soluções dos problemas utilizam a lógica para serem criadas, ou seja, elas são ordenadas de uma forma que sejam possíveis de ser realizadas e de uma maneira que essa forma seja a mais adequada para o que se deseja obter.


L gica de programa o

Lógica de Programação

  • Alguns procedimentos para solucionar certos problemas foram padronizados, esses são:

    • Estrutura sequencial – indica que uma operação deve ser realizada em sequência à outra, ou seja, determina a ordem com que as operações devam ser realizadas;


L gica de programa o1

Lógica de Programação

  • Estrutura de decisão – indica que, em um determinado momento, será necessário tomar uma decisão sobre qual operação realizar de acordo com um determinado critério;


L gica de programa o2

Lógica de Programação

  • Estrutura de repetição – indica que determinadas operações devem ser repetidas uma determinada quantidade de vezes.


Linguagens

Linguagens

  • O conjunto de instruções, que será executado pelo processador, é chamado de linguagem de máquina.


Linguagens1

Linguagens

  • As linguagens de programação são classificadas de acordo com a similaridade que esta linguagem tem com a linguagem de máquina.

Mais parecida com linguagem de máquina.

Mais parecida com linguagem de programação.


Linguagens2

Linguagens

  • Um computador compreende apenas linguagens compostas por números 0’s e 1’s.

  • Então imagina criar um programa utilizando apenas esses números, isso seria extremamente complicado.


Linguagens3

Linguagens

  • Por esse motivo foi necessário a criação de um código que relacionasse a linguagem de máquina a uma linguagem mais fácil de ser compreendida.

  • Dessa forma, foi criada uma linguagem de montagem (chamada Assembly) que é um código que tem uma instrução alfanumérica para cada instrução numérica em linguagem de máquina.


Linguagem de baixo n vel

Linguagem de baixo nível

  • Para que um programa criado na linguagem Assembly possa ser entendido pelo computador, é necessário que seu código seja traduzido para o código de máquina.


Linguagem de baixo n vel1

Código em linguagem de assembly.

Código em linguagem de máquina.

Assembler

Linguagem de baixo nível

  • Esta tradução é realizada por um programa chamado Assembler.


Linguagem de baixo n vel2

Linguagem de baixo nível

  • Exemplo 2:;exemplo2 .model small .stack.codemov ah,2h ;move o valor 2h para o registrador ah mov dl,2ah ;move o valor 2ah para o registrador dl ;(é o valor ASCII do caractere *) int 21h ;interrupção 21h mov ah,4ch ;função 4ch, sai para o sistema operacional int 21h ;interrupção 21h end ;finaliza o programa

  • Este programa imprime o caracter * na tela.


Linguagem de baixo n vel3

Linguagem de baixo nível

  • A linguagem Assembly é muito próxima da linguagem de máquina, por esse motivo é considerada uma linguagem de baixo nível.

  • Cada processador apresenta uma linguagem de Assembly. Dessa forma, quando for utilizado um programa em processador não compatível com o qual foi escrito inicialmente, é necessário que o código tenha que ser refeito.


Linguagem de baixo n vel4

Linguagem de baixo nível

  • Isso é chamado de portabilidade.


Linguagem de programa o

Linguagem de Programação

  • A implementação de programas na linguagem de baixo nível ainda é muito complexa. Então para aumentar a produtividade dos programadores foram criadas as linguagens de programação de alto nível.


Linguagem de programa o1

Linguagem de Programação

  • São linguagens que independem do processador, apresentam um código mais elaborado, contemplam operações mais complexas e mais próximas da “lógica humana”.

  • Entretanto, algumas dependem do sistema operacional a ser executado.


Tradutor

Tradutor

  • Para serem processadas por um processador as linguagens fazem o uso de um tradutor para a linguagem de máquina, chamado de COMPILADOR ou INTERPRETADOR.


Compilador

Código fonte em linguagem de alto nível

Código em linguagem de máquina.

Compilador

Compilador

  • Como é o funcionamento do compilador?

    • O compilador a partir do código em linguagem de alto nível, chamado de código fonte, gera um arquivo com o código em linguagem de máquina, conhecido como código-objeto.

    • Esse código-objeto fica em disco e quando for o momento da sua execução ele é carregado para a memória.


Compilador1

Compilador

  • Características:

    • Traduz cada instrução de uma única vez, independente de quantas vezes o programa é executado.

    • Tempo de execução mais rápido.


Interpretador

Código fonte em linguagem de alto nível

Memória

Interpretador

Tradução de cada instrução na fase de execução do programa

Interpretador

  • O interpretador, diferente do compilador, não gera um código-objeto, as instruções são traduzidas para a linguagem de máquina em tempo de execução.

  • Características:

    • Maior tempo de execução.

    • Não gera instruções que não serão utilizadas.


Linguagens de baixo n vel

Linguagens de Baixo Nível

  • Linguagens de baixo nível : são linguagens voltadas para a máquina, isto é, são escritas usando as instruções do microprocessador do computador.

    • Vantagens:

      • maior velocidade de processamento

      • menor espaço de armazenamento

    • Desvantagens:

      • pouca portabilidade

      • difícil programação


Linguagens de alto n vel

Linguagens de Alto Nível

  • Linguagens de alto nível: são linguagens voltadas para o ser humano.

    • Vantagens:

      • Por serem compiladas ou interpretadas, tem maior portabilidade.

      • A programação torna-se mais fácil.

    • Desvantagens:

      • Em geral, as rotinas geradas (em linguagem de máquina) são mais genéricas e portanto mais complexas e por isso são mais lentas e ocupam mais memória.

  • Exemplos de linguagem de alto nível: Pascal, C, Cobol, Java, entre outras. Além disso, os códigos são portáveis.


Algoritmos e t cnicas de programa o

JAVA

  • Como mencionado, algumas linguagens de programação ficam dependentes ao SO em que o código foi escrito.

  • A linguagem Java permite uma portabilidade maior que as outras linguagens de programação de alto nível.


Algoritmos e t cnicas de programa o

JAVA

  • Isso se deve ao fato de não gerar um código objeto executável, em vez disso ele gera um código “pseudo-executável”, chamado de BYTECODE.


Algoritmos e t cnicas de programa o

JAVA

  • Para que esse código possa ser executado em qualquer SO, é necessário que mais uma camada de software esteja instalada.


Algoritmos e t cnicas de programa o

JAVA

  • Essa camada funciona como um SO genérico, e essa camada é chamada de Máquina Virtual Java, ou Java Virtual Machine (JVM).

  • Essa JVM faz a tradução dos bytecodes escritos em Java para o código executável daquele SO, isso faz com que qualquer programa escrito em Java possa ser executado em qualquer SO que tenha a JVM devidamente instalada.


Algoritmos e t cnicas de programa o

Bytecode Assembly

Compilador

Código fonte Java

JVM

Memória

Tradução de cada instrução na fase de execução do programa

JAVA

  • Máquina A

  • Máquina B


Linguagem natural

Linguagem Natural

  • Não se pode fazer um programa para um computador na linguagem natural, ou seja, do jeito que escrevemos. Pois a linguagem natural é dirigida para orientar pessoas e não máquinas, quem faz este papel é a linguagem de programação.

  • As linguagens de programação devem apresentar algumas características, que são:


Caracter sticas da linguagem

Características da Linguagem

  • Rigidez sintática:Um compilador consegue fazer traduções sobre um idioma, com construções muito bem definidas.


Caracter sticas da linguagem1

Características da Linguagem

  • Rigidez semântica: O computador não pode lidar com ambigüidades, dessa forma, um programador deve exprimir sua intenção de forma exata.

    • Exemplo: A pessoa ouviu o barulho da janela.

    • Pode ser interpretado pelo menos de três maneiras:

      • A velhinha ouviu o barulho produzido pela janela.

      • A velhinha estava junto à janela e ouviu o barulho.

      • A velhinha ouviu o barulho que veio através da janela.

  • Qualquer máquina seria incapaz de interpretar o que realmente está acontecendo, mesmo que o contexto pudesse ajudar. Por isso, a rigidez semântica é extremamente importante.


Exerc cios

Exercícios

  • O que é um algoritmo?

  • O que significa dizer que um algoritmo precisa ser correto, eficiente e elegante?

  • Comente sobre os principais problemas na elaboração de um algoritmo.

  • Qual a diferença entre programa e aplicação?

  • Como é a arquitetura do computador moderno?

  • Comente sobre lógica e os procedimentos para solucionar problemas.

  • Qual a diferença entre linguagem de baixo nível e de alto nível?

  • O que é linguagem de máquina?

  • O que é portabilidade?

  • Qual a diferença entre compilador e interpretador, cite suas vantagens e desvantagens?

  • Qual a diferença do método de compilação Java?

  • Comente sobre as características que uma linguagem de programação deve apresentar.


Atividade em grupo

Atividade em grupo.

  • O grupo tem em mãos duas jarras: uma com capacidade para quatro litros; e outra, com capacidade para três litros. As jarras não possuem marcações intermediárias, de forma que, se qualquer uma das jarras não estiver completamente cheia, não será possível saber quanta água haverá dentro dela. Existe uma torneira disponível para utilização do grupo e um ralo que permite que a água seja jogada fora. As jarras podem ser manipuladas das seguintes formas:

    a. Encher completamente uma jarra, utilizando a torneira;

    b. Passar a água de uma jarra para outra; e

    c. Esvaziar completamente uma jarra, jogando a água que estiver dentro dela no ralo.

  • O objetivo do grupo é indicar como as jarras devem ser manipuladas, de modo que, ao final da manipulação, qualquer uma das jarras contenha exatamente dois litros de água.


Atividade em grupo1

Atividade em grupo.

  • Um canoeiro deseja levar seus três pertences de um lado do rio para o outro, porém a canoa só consegue transportar o canoeiro e um pertence de cada vez. Os pertences em questão são uma cabra, um maço de couve e um lobo. Indique como o canoeiro pode fazer para transportar todos os seus pertences para o outro lado, levando em consideração que:

    a. Se a cabra ficar sozinha com a couve, sem o canoeiro por perto, ela come a couve;

    b. Se o lobo ficar com a cabra, sem o canoeiro por perto, ele como a cabra.


Links

Links.

  • Alguns sites com jogos de raciocínio lógico e que podem ser usados como apoio para a aula:

  • 1. Jogo de travessia do rio, disponível em

    http://www.profcardy.com/desafios/aplicativos.php?id=24

  • 2. Jogo da velha, disponível em

    http://www.cardiol.br/jogos/velha/

  • 3. Jogo de raciocínio lógico em 3D (ligar cores na superfície de um cubo), disponível em

    http://www.centrodejogos.com.br/raciocinio/logica-3d-121.html

  • 4. Teste de Einstein (de acordo com as diretrizes, descobrir a composição correta), disponível em

    http://rachacuca.com.br/teste-de-einstein/


  • Login