serviÇo pÚblico federal ministÉrio da educaÇÃo e … · 5 prof. juliano coêlho miranda...

22
SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO E DO DESPORTO CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS CEFET-MG UNIDADE DE ENSINO DESCENTRALIZADA DE VARGINHA CAMPUS VIII 1

Upload: buixuyen

Post on 26-Nov-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO E … · 5 Prof. Juliano Coêlho Miranda Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII ... São compostas por constantes,

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO E DO DESPORTO

CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS – CEFET-MG UNIDADE DE ENSINO DESCENTRALIZADA DE VARGINHA – CAMPUS VIII

1

Page 2: SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO E … · 5 Prof. Juliano Coêlho Miranda Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII ... São compostas por constantes,

2

Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII Prof. Juliano Coêlho Miranda

Algoritmo, Contexto

Torres de Hanói: o objetivo é encontrar uma forma de mover todos os discos da torre A para a torre C, usando a torre B como espaço auxiliar, de modo que:

Apenas um disco seja movido de cada vez;

Nenhum disco seja posicionado sobre o outro disco de diâmetro menor;

Os discos sejam imediatamente transferidos de uma torre para outra.

Guia de Estudo 1 Unidade 1: Fundamentos de algoritmos, programas e estudo de uma linguagem de alto nível

Page 3: SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO E … · 5 Prof. Juliano Coêlho Miranda Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII ... São compostas por constantes,

3

Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII Prof. Juliano Coêlho Miranda

Algoritmo, Conceito

Passo 1

Passo 2

Passo n

Guia de Estudo 1 Unidade 1: Fundamentos de algoritmos, programas e estudo de uma linguagem de alto nível

Page 4: SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO E … · 5 Prof. Juliano Coêlho Miranda Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII ... São compostas por constantes,

4

Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII Prof. Juliano Coêlho Miranda

Algoritmo, Conceito

Uma vez definida uma sequência de passos, qualquer pessoa capaz de executá-la é também capaz de solucionar automaticamente o problema.

Nenhum raciocínio adicional é necessário.

Um procedimento para resolver um problema, definido por uma sequência finita e ordenada de passos executáveis, é denominado Algoritmo.

Guia de Estudo 1 Unidade 1: Fundamentos de algoritmos, programas e estudo de uma linguagem de alto nível

Page 5: SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO E … · 5 Prof. Juliano Coêlho Miranda Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII ... São compostas por constantes,

5

Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII Prof. Juliano Coêlho Miranda

Algoritmo, Nosso Dia a Dia

Exemplos

Manual de

Instalação

Uma receita

culinária

Um Mapa

Guia de Estudo 1 Unidade 1: Fundamentos de algoritmos, programas e estudo de uma linguagem de alto nível

Page 6: SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO E … · 5 Prof. Juliano Coêlho Miranda Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII ... São compostas por constantes,

6

Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII Prof. Juliano Coêlho Miranda

Algoritmo, Conceito

Porém, na área da tecnologia, estamos interessados em definir algoritmos que serão executados por computadores.

Neste contexto, precisamos nos restringir a um conjunto bastante limitado de passos (ou operações).

Além disso, precisamos de uma notação que permita descrever precisamente estes passos, sem nenhuma ambiguidade.

Guia de Estudo 1 Unidade 1: Fundamentos de algoritmos, programas e estudo de uma linguagem de alto nível

Page 7: SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO E … · 5 Prof. Juliano Coêlho Miranda Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII ... São compostas por constantes,

7

Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII Prof. Juliano Coêlho Miranda

Fluxograma, Conceito

É uma descrição precisa e detalhada de um algoritmo, feita numa notação que combina elementos gráficos e textuais.

“Quais os valores

das Resistências? ”

Início

R1, R2

REQ R1 + R2

“Req = ”,REQ

Fim

Guia de Estudo 1 Unidade 1: Fundamentos de algoritmos, programas e estudo de uma linguagem de alto nível

Page 8: SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO E … · 5 Prof. Juliano Coêlho Miranda Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII ... São compostas por constantes,

8

Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII Prof. Juliano Coêlho Miranda

Fluxograma, Conceito

Num Fluxograma, os passos de um algoritmo são representados por símbolos e a ordem de execução desses passos é representada por setas conectando os símbolos.

Cada símbolo pode conter uma anotação indicando sua finalidade específica.

Guia de Estudo 1 Unidade 1: Fundamentos de algoritmos, programas e estudo de uma linguagem de alto nível

Page 9: SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO E … · 5 Prof. Juliano Coêlho Miranda Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII ... São compostas por constantes,

9

Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII Prof. Juliano Coêlho Miranda

Fluxograma, Principais Símbolos

Símbolo Descrição

Terminal (início e final do Algoritmo)

Entrada de Dados (via teclado)

Processamento de Dados (cálculos)

Saída de Dados (via vídeo)

Tomada de Decisão

Execução de Processo Predefinido

Ponto de Conexão

Guia de Estudo 1 Unidade 1: Fundamentos de algoritmos, programas e estudo de uma linguagem de alto nível

Page 10: SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO E … · 5 Prof. Juliano Coêlho Miranda Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII ... São compostas por constantes,

10

Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII Prof. Juliano Coêlho Miranda

Tela de Execução

Antes de projetar um fluxograma que descreve um algoritmo para resolver um problema, é recomendável definir como um módulo processador seguindo esse esse algoritmo deve interagir com o usuário.

Quais os valores das resistências? 5 3

Req = 8

Telas de Execução

Guia de Estudo 1 Unidade 1: Fundamentos de algoritmos, programas e estudo de uma linguagem de alto nível

Page 11: SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO E … · 5 Prof. Juliano Coêlho Miranda Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII ... São compostas por constantes,

11

Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII Prof. Juliano Coêlho Miranda

Variável, Conceito

Todo dado manipulado por um módulo processador deve estar armazenado em alguma posição de sua memória.

Uma posição de memória contendo um dado que pode ser alterado, denominado variável, deve ser representada por um nome iniciando com letra.

Guia de Estudo 1 Unidade 1: Fundamentos de algoritmos, programas e estudo de uma linguagem de alto nível

Page 12: SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO E … · 5 Prof. Juliano Coêlho Miranda Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII ... São compostas por constantes,

12

Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII Prof. Juliano Coêlho Miranda

Fluxograma e Variáveis

“Insira os

Valores”

Início

a, b

“Média”, c

1

1

c (a+b)/2

c ≥ 6

“Aprovado” “Refazer”

Terminal

V F

Guia de Estudo 1 Unidade 1: Fundamentos de algoritmos, programas e estudo de uma linguagem de alto nível

Page 13: SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO E … · 5 Prof. Juliano Coêlho Miranda Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII ... São compostas por constantes,

13

Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII Prof. Juliano Coêlho Miranda

Programa, Conceito

Um programa é um algoritmo descrito em uma linguagem de programação, ou seja, em uma linguagem que o computador seja capaz de interpretar e executar.

Pascal

C

Python entre outras Java

Guia de Estudo 1 Unidade 1: Fundamentos de algoritmos, programas e estudo de uma linguagem de alto nível

Page 14: SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO E … · 5 Prof. Juliano Coêlho Miranda Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII ... São compostas por constantes,

14

Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII Prof. Juliano Coêlho Miranda

Programa C correspondente ao fluxograma

// Calculando a Média

#include <stdio.h>

int main(void) {

float a, b, c;

printf(“Insira os Valores? ");

scanf("%f %f", &a, &b);

c = (a+b)/2;

printf("Media = %.1f\n", c);

if( c >= 6)

printf(“Aprovado\n");

else

printf("Refazer\n");

system("pause");

return 0;

}

“Insira os

Valores”

Início

a, b

1

c (a+b)/2 “Média”, c

1

c ≥ 6

“Aprovado” “Refazer”

Terminal

V F

Guia de Estudo 1 Unidade 1: Fundamentos de algoritmos, programas e estudo de uma linguagem de alto nível

Page 15: SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO E … · 5 Prof. Juliano Coêlho Miranda Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII ... São compostas por constantes,

15

Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII Prof. Juliano Coêlho Miranda

Programa C correspondente ao fluxograma

Comentário /* e */

// Comentário delimitado. Pode se estender por várias linhas. Terminam do final da linha.

Diretiva #include Serve para incluir uma biblioteca de comandos predefinidos.

stdio.h Standard input/output header

Função Principal main() Onde se inicia a execução. Os comandos da função são delimitados por um par de chaves. void, em uma função indica que não há um valor devolvido.

Declaração de Variáveis

float a,

b, c; Três variáveis para armazenamento de números reais.

Função printf() Usada para exibição de dados formatados no vídeo. %.1f indica um valor do tipo float com apenas uma casa decimal. \n indica a mudança para uma nova linha do vídeo.

Função scanf() Usada para leitura de dados formatados do teclado. (“%f %f”, &a, &b), faz com que o computador leia dois valores do tipo float e os armazene, respectivamente, nos endereços de memória onde foram criadas as variáveis a e b (&a indica o endereço de a).

Expressões Aritméticas

São compostas por constantes, variáveis e operadores artméticos (+, -, * e /); o operador de atribuição (=) avalia a expressão à sua direita e armazena o resultado desta na variável indicada à sua esquerda.

Função system() Executa uma chamada de sistema. Exemplo: System(“pause”)

Comando return A função main() termina com a execução do comando return.

Guia de Estudo 1 Unidade 1: Fundamentos de algoritmos, programas e estudo de uma linguagem de alto nível

Page 16: SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO E … · 5 Prof. Juliano Coêlho Miranda Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII ... São compostas por constantes,

16

Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII Prof. Juliano Coêlho Miranda

Etapas básicas para criação de um programa.

Análise

• Compreender o problema em questão;

• Entrada;

• Processamento;

• Saída;

• Telas de Execução;

• Qual o Hardware utilizado?

Projeto

• Elaborar um algoritmo;

• Construção do Fluxograma.

Implementação

• Codificar um programa;

• Utilização de uma linguagem de programação.

Teste

• Executar o programa num módulo processador;

• Verificar como o programa se comporta para diversos dados de entrada;

• Utilização de um compilador;

• Verificar se o programa, de fato, apresenta as respostas esperadas.

Guia de Estudo 1 Unidade 1: Fundamentos de algoritmos, programas e estudo de uma linguagem de alto nível

Page 17: SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO E … · 5 Prof. Juliano Coêlho Miranda Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII ... São compostas por constantes,

17

Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII Prof. Juliano Coêlho Miranda

IDE, Conceito

Ambiente de Desenvolvimento Integrado (IDE - Integrated Development Environment) é um conjunto de ferramentas que trabalham de forma integrada para desenvolver programas.

Guia de Estudo 1 Unidade 1: Fundamentos de algoritmos, programas e estudo de uma linguagem de alto nível

Page 18: SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO E … · 5 Prof. Juliano Coêlho Miranda Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII ... São compostas por constantes,

18

Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII Prof. Juliano Coêlho Miranda

IDE, Composição

Normalmente, uma IDE é composta de:

– Editor de Programas: é um editor de texto construído especialmente para facilitar a edição de um programa usando linguagem de programação.

– Compilador: Tem como principal função fazer a tradução do código

fonte em um formato que o computador pode entender. Este formato é chamado de código objeto.

– Linker ou linkeditor: Liga o código objeto às bibliotecas e transforma

tudo isso em um único programa executável.

– Loader ou carregador: Carrega o executável na memória para que a

CPU (Unidade Central de Processamento) possa executar o programa.

– Depurador: Ajuda o programador na verificação e correção de erros.

Guia de Estudo 1 Unidade 1: Fundamentos de algoritmos, programas e estudo de uma linguagem de alto nível

Page 19: SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO E … · 5 Prof. Juliano Coêlho Miranda Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII ... São compostas por constantes,

19

Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII Prof. Juliano Coêlho Miranda

IDE

OS Windows

DEV C++ Pelles C

Code::Blocks

OS UNIX, Linux

GCC Code::Blocks

Guia de Estudo 1 Unidade 1: Fundamentos de algoritmos, programas e estudo de uma linguagem de alto nível

Page 20: SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO E … · 5 Prof. Juliano Coêlho Miranda Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII ... São compostas por constantes,

20

Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII Prof. Juliano Coêlho Miranda

Programação Estruturada

À medida que os programas foram se tornando mais complexos, surgiu a necessidade de estruturar a sua lógica, a fim de facilitar sua compreensão, seu desenvolvimento e sua manutenção.

Em meados da década de 1960, Böhm e Jacopini provaram que todo algoritmo computacional pode ser descrito em termos de apenas três padrões de agrupamento de passos: estruturas de controle.

Guia de Estudo 1 Unidade 1: Fundamentos de algoritmos, programas e estudo de uma linguagem de alto nível

Page 21: SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO E … · 5 Prof. Juliano Coêlho Miranda Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII ... São compostas por constantes,

21

Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII Prof. Juliano Coêlho Miranda

Compilador Se

qu

ênci

a Permiti indicar dois ou mais passos que devem ser executados sequencialmente, na ordem que são especificados.

Sele

ção

Permite indicar dois passos que devem ser executados de forma mutuamente exclusiva, dependendo de uma determinada condição.

Rep

etiç

ão

Permiti indicar um ou mais passos que devem ser executados repetidamente, dependendo de uma determinada condição.

Passo 1

Passo 2

...

...

...

Condição

Passo 1 Passo 2

...

V F

...

Condição

Passo

...

V

F

Guia de Estudo 1 Unidade 1: Fundamentos de algoritmos, programas e estudo de uma linguagem de alto nível

Page 22: SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO E … · 5 Prof. Juliano Coêlho Miranda Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII ... São compostas por constantes,

22

Estrutura de Dados e Microcontroladores CEFET-MG CAMPUS VIII Prof. Juliano Coêlho Miranda

Referência Bibliográfica

[1] PEREIRA, Silvio do Lago. Algoritmos e Lógica de Programação em C, uma abordagem didática. São Paulo: Érica, 2010.

[2] DAMAS, Luís. Linguagem C. Tradução de João Araújo Ribeiro, Orlando Bernardo Filho. 10. ed. Rio de Janeiro: LTC, c2007. x, 410 p. ISBN 978-85-216-1519-4.

[3] CELES, Wandemar; CERQUEIRA, Renato; RANGEL, José Lucas. Introdução a Estrutura de Dados, com técnicas de programação em C. Rio de Janeiro: Elsevier, 2004.

[4] SCHILDT, Herbert. C, completo e total. São Paulo: Pearson Makron Books, 1997.

[5] KERNIGHAN, Brian W.; RITCHIE, Dennis M. C, a linguagem de programação padrão ANSI. Rio de Janeiro: Elsevier, 1989.

Guia de Estudo 1 Unidade 1: Fundamentos de algoritmos, programas e estudo de uma linguagem de alto nível