capítulo 2 introdução à programação - joinville.udesc.br · “algoritmo é um conjunto...
TRANSCRIPT
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