Capítulo 2 Introdução à Programação - joinville.udesc.br · “Algoritmo é um conjunto...

26
Programação Para Engenharia II PROGRAMAÇÃO PARA ENGENHARIA II Prof. Claudinei Dias email: [email protected] Capítulo 2 Introdução à Programação Engenharia Mecânica

Transcript of Capítulo 2 Introdução à Programação - joinville.udesc.br · “Algoritmo é um conjunto...

Programação Para Engenharia II

PROGRAMAÇÃO PARA ENGENHARIA II

Prof. Claudinei Dias

email: [email protected]

Capítulo 2 – Introdução à Programação

Engenharia Mecânica

Programação Para Engenharia II

Plano de Ensino

2. Introdução à Programação

– Algoritmo (conceito, estruturas sequênciais, estruturas de seleção, estruturas de repetição)

– Apresentação de uma linguagem hipotética

– Solução de problemas através do computador hipotético

– Dados Estruturados definidos pelo usuário

– Erros (sintaxe, lógica).

2/26

Programação Para Engenharia II

Algoritmo

Por exemplo na automação, os processo desempenhados pelo homem passa a ser realizados por máquinas.

Seja dispositivos mecânicos (máquinas industriais)

Seja dispositivos eletrônicos (computadores)

Ou de natureza mista (robôs)

A automatização segue uma sequência ordenada de passos para a realização da tarefa

são processos que garantem a sua repetibilidade.

Para esta sequência ordenada dá-se o nome de “Algoritmo”

“Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito e com um número finito de passos”

3/26

Programação Para Engenharia II

Algoritmo

Um algoritmo é qualquer procedimento computacional bem definido que recebe valores de entrada e produz valores de saída

Para se ter um algoritmo é necessário: Que se tenha um número finito de passos;

Que cada passo esteja precisamente definido, sem ambiguidades;

Que exista zero ou mais entradas tomadas de conjuntos bem definidas;

Que exista ações dentro de uma sequência finita de passos

Que exista uma ou mais saídas;

Que exista uma condição de fim sempre atingida para quaisquer entradas e num tempo definido.

4/26

Programação Para Engenharia II

Algoritmo

Portanto, algoritmo é: um procedimento passo a passo para a solução de um problema

Uma sequência detalhada de ações a serem executadas para realizar alguma tarefa

Fases de um algoritmo Entrada: dados de entrada do algoritmo

informações necessárias para que o algoritmo possa ser executado (pré-estabelecidas ou fornecidas no momento da execução). Teclado, mouse, arquivo...

Processamento: procedimentos para chegar no resultado final avaliadas todas as expressões algébricas, relacionais e lógicas, assim como todas as estruturas de controle existentes no algoritmo (condição e/ou repetição);

Saída: dados processados resultados do processamento (ou parte deles) são enviados para um ou mais dispositivos de saída, como: monitor, impressora, ou até mesmo a própria memória do computador ou um arquivo.

5/26

Programação Para Engenharia II

Algoritmo

Tarefas

Ler e escrever dados

Avaliar expressões algébricas, relacionais e lógicas

Tomar decisões com base nos resultados das expressões avaliadas

Repetir um conjunto de ações de acordo com uma condição

Exemplos: Escovação de dentes

Troca de pneu

Receita de bolo de chocolate

6/26

Programação Para Engenharia II

Tipos de Estruturas

Estruturas Sequênciais

O algoritmo segue uma sequência linear

A

B

C

Estruturas de Seleção

Seleção de um conjunto de ações, segundo uma determinada condição

Representadas por expressões lógicas ou relacionais

Se B então A

Se B então A1 senão A2

Estrutura de Repetição

Quando um trecho do algoritmo deve ser repetido

Enquanto B repetir A

Repetir A até B

7/26

Programação Para Engenharia II

Linguagem Hipotética

Descrição Narrativa a forma de representação é descrita em linguagem natural

Exemplo 1: Troca de pneu furado

Afrouxar ligeiramente as porcas

Suspender o carro

Retirar as porcas e o pneu

Colocar o pneu reserva

Apertar as porcas

Abaixar o carro

Dar o aperto final nas porcas

Exemplo 2: Cálculo da média de um aluno

Obter as notas da primeira e da segunda prova

Calcular a média aritmética entre as duas notas

Se a média for maio ou igual a 7, aluno aprovado, senão reprovado

8/26

Programação Para Engenharia II

Linguagem Hipotética

Fluxograma Convencional representação gráfica em que formas diferentes implicam ações (instruções, comandos) distintos

Inicio ou final do fluxograma

Operação de entrada de dados

Operação de saída de dados

Operações de atribuição e chamada ou retorno de subalgoritmo

Decisão

Seta de fluxo de dados

Conector para particionar o diagrama

9/26

Programação Para Engenharia II

Linguagem Hipotética

Fluxograma Convencional Exemplo do cálculo da média do aluno

10/26

Programação Para Engenharia II

Linguagem Hipotética

Pseudocódigo Estruturação de um algoritmo com uma linguagem que permite a tradução direta para uma linguagem de programação específica

Algoritmo <nome_do_algoritmo>

<declaracao_de_variaveis>

<subalgoritmos>

inicio

<escopo_do_algoritmo>

fim

Algoritmo: palavra que indica o inicio do algoritmo em pseudcódigo

<nome_do_algoritmo>: nome simbólico dado ao algoritmo

<declaracao_de_variaveis>: porção opcional onde são declaras as variáveis globais usadas no algoritmo

<subalgoritmos>: porção opcional onde são definidos subalgoritmos

Inicio e Fim: delimitam respectivamente o inicio e fim do conjunto de instruções do corpo do algoritmo

11/26

Programação Para Engenharia II

Computador Hipotético

Representação do algoritmo de cálculo da média de um aluno na forma de pseudocódigo

Algoritmo Media

var N1, N2, Media

inicio

Leia N1, N2

Media := (N1+N2)/2

Se Media >= 7 entao

Escreva “Aprovado”

senao

Escreva “Reprovado”

fim

12/26

Programação Para Engenharia II

Erros

Um algoritmo pode conter erros devido a instruções que não estão em uma sequência correta, a sintaxe está errada, erro de lógica, tipos de dados ou informações que não existam

Alguns erros que podem ocorrer

1. Algoritmo Media

2. var N1, N2, Media: real

3. inicio

4. Media <= (N1+N2)/2

5. Leia N1, M2

6. Se Media < 7 entao

7. Escreva “Aprovado”

8. senao

9. Escreva “Reprovado”

10. fim

13/26

Programação Para Engenharia II

Erros

Algumas instruções foram alteradas para simular erros

As linhas 4 e 5 estão invertidas, não se pode calcular a média sem antes saber quais são as notas Na linha 5 temos uma instrução onde o programa pede informações que serão armazenadas em variáveis. Perceba que a variável M2 não existe. Este tipo de erro é bastante comum Na linha 6, onde acontece uma comparação lógica, o programa escreverá “aprovado” se a média for menor que 7. Na realidade a instrução deverá ser média >= 7, ou seja, se a expressão for verdadeira então o programa escreverá “aprovado”, caso contrario (se a média for <7) então o programa escrevera “reprovado”

Máquinas não podem: Tomar decisões com base em premissas Corrigir comandos mal redigidos Descobrir a intenção do programador Resolver ambiguidades

14/26

Programação Para Engenharia II

Linguagem de Alto Nível

Estruturação de algoritmos Linguagens de alto nível se afastam da linguagem de máquina e se aproximam da “lógica humana”

Tarefa complexa para iniciantes, pois é dirigida a orientar uma máquina (e não pessoas)

Vantagens: Mais próxima da “lógica humana”

Menor tempo de desenvolvimento

Maior portabilidade

15/26

Programação Para Engenharia II

Característica de uma linguagem

Rigidez sintática Compilador é um tradutor sobre um “idioma” com construções muito bem definidas

Palavras da linguagem natural utilizadas com menos liberdade

Rigidez semântica Não se pode lidar com ambiguidades (intenções devem sem expressas de forma exata)

O computador é um ótimo cumpridor de ordens, porém não tem idéia sobre elas

16/26

Programação Para Engenharia II

Manipulação de Dados

A manipulação de dados é uma das principais funções do computador

São necessários diferentes tipos de dados (computador só manipula números internamente)

Tipo de dados

Objeto que tem em comum o mesmo comportamento diante de um conjunto definido de operações.

Exemplo: Números suportam operações matemáticas

Letras suportam operações como concatenação

17/26

Programação Para Engenharia II

Tipos de Dados

Linguagens manipulam um conjunto limitado de tipos, normalmente:

Números inteiros 1, 2, 3, etc

Números reais 1.1, 5.6, ¾

Letras A, B, C, etc

Objetos lógicos (booleanos) Oriundos da lógica matemática ou de Boole

Baseada em um conjunto de apenas dois valores: 1 e 0 ou Verdadeiro (V) e Falso (F)

18/26

Programação Para Engenharia II

Valor Lógico

Operandos de uma operação lógica são necessariamente valores lógicos

Um valor lógico pode ser obtido como resultado de uma afirmação ou proposição. Exemplos:

Cachorros são mamíferos

Cachorros são aves.

Homens pensam.

5 > 3

7 = 3

Operadores Lógicos são operações que se definem sobre o conjunto {V,F}

Sempre opera com valores lógicos e tem como resultado um valor lógico

Operadores lógicos (conectivos) úteis na construção de algoritmos: e

ou

não

19/26

Programação Para Engenharia II

Valor Lógico

Tabela Verdade

Binários Unário

Precedência dos operadores lógicos

1. Parênteses

2. não

3. e, ou

20/26

e V F

V V F

F F F

ou V F

V V V

F V F

não V F

F V

Programação Para Engenharia II

Operadores Pseudocódigo

Aritméticos (+, -, *, /)

Potenciação (pot)

10 pot 2 = 100

2 pot 10 = 1024

Radiciação (raiz)

9 raiz 2 = 3

1024 raiz 10 = 2

Divisão inteira (div)

10 div 4 = 2

22 div 6 = 3

Resto de divisão inteira (resto, mod)

10 resto 4 = 2

22 resto 6 = 4

21/26

Precedência dos operadores aritméticos

1. Parênteses 2. pot, raiz 3. *, /, div, resto 4. +, -

Programação Para Engenharia II

Constantes de Variáveis

Durante a execução de um programa, dados/informações ficam armazenadas temporariamente em memória

Para que possam ser manipulados, é preciso que haja algum identificador

Informa o local da memória (endereço)

Constante: definido inicialmente e não é mais modificado

Variável: pode ser alterado durante a execução

Ambas identificadas por um nome

22/26

Programação Para Engenharia II

Constantes de Variáveis

Regras e Convenções de Nomenclaturas Convém utilizar nomes significativos às variáveis e constantes de acordo com os elementos (ou valores) que armazenarão para manter o algoritmo o mais legível e documentável possível.

Mnemônicos: nomes ou abreviatura que lembram o uso da variável no algoritmo

Nomes de variáveis:

podem começar com qualquer letra minúscula e os caracteres $ ou _, porém não podem começar com números.

Caso o nome de uma variável seja composto por mais de uma palavra, a primeira letra de cada palavra deve ser em maiúscula.

Exemplos de nomes de variáveis: x, y, resultado, valorDeX, valorDeY, ligado, ...

Nomes de constantes:

devem ser escritos em letras maiúsculas.

Usamos underline (_) para separar nomes compostos.

Exemplos de nomes de constantes: TAMANHO, PARAR_DE_EXECUTAR, ...

23/26

Programação Para Engenharia II

Teste de Mesa

Retrato da memória a cada passo de execução de um trecho de código

Consiste na verificação do conteúdo de cada variável após a execução de cada instrução

Finalidade: verificar a correção da implementação

Exemplo:

24/26

Programação Para Engenharia II

Bibliografia da Disciplina

25/26

BIBLIOGRAFIA BÁSICA:

MANZANO, José Augusto N. G., OLIVEIRA, Jayr Figueiredo de., Algoritmos: lógica para desenvolvimento de programação

de computadores. 17a. ed. São Paulo: Érica, 2005. 236p. ISBN 857194718X.

FORBELLONE, André Luiz Villar; EBERSPACHER, Henri Frederico. Lógica de programação: a construção de algoritmos e

estruturas de dados. 3a. edição São Paulo: Prentice Hall, 2005. 197 p.

ISBN 8534611246.

IBPI – Instituto Brasileiro de Pesquisa em Informática. Dominando a Linguagem C, Rio de Janeiro: IBPI Press, 1993.

KERNIGHAN, Brian W; RITCHIE, Dennis M. C. A Linguagem de programação padrão ANSI. 1a. ed. Rio de Janeiro/Porto

Alegre: Campus, 1990. 289 p. ISBN 8570015860.

SCHILDT, H. C. Completo e Total. 3a. ed. São Paulo: Makron Books Ltda, 1996. Apostila de Linguagem C da UFMG

disponível na internet em http://ead1.eee.ufmg.br/cursos/C/

BIBLIOGRAFIA COMPLEMENTAR: FEDELI R. D.; POLLONI E. G. F; PERES, F. E., Introdução à Ciência da Computação, Cengage Learning, 2010.

MEDINA M; FERTIG C., Algoritmos e Programação – Teoria e Prática, Novatec, São Paulo, 2006.

GUIMARÃES A. e LAGES N. , Algoritmos e Estruturas de Dados , Ed. LTC Livros Técnicos e Científicos, Rio de Janeiro, 1985.

JAMSA K., Salvo pelo C++, LTC Livros Técnicos e Científicos Editora, 1994.

ALCADE E. Informática Básica e outros Ed. Makron Books São Paulo 1991.

SALIBA, CARAM W. L. Técnicas de Programação: uma abordagem estruturada, Ed. Makron, McGrawHill, São Paulo, 1992.

MACHADO F. M. Ed. LTC , Introdução à Arquitetura de Sistemas Operacionais Livros Técnicos e Científicos, Rio de Janeiro, 1992.

DAVIS W. S. D. Sistemas Operacionais: uma visão sistemática Ed. Campus, Rio de Janeiro, 1990.

Programação Para Engenharia II

PROGRAMAÇÃO PARA ENGENHARIA II

Prof. Claudinei Dias

email: [email protected]

Capítulo 2 – Introdução à Programação

Engenharia Mecânica