Buscar

Conceitos de Algoritmos para Engenharia

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 9 páginas

Prévia do material em texto

Algoritmos Aplicados a Engenharia 
 Aula 01 
Os direitos desta obra foram cedidos à Universidade Nove de Julho 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Este material é parte integrante da disciplina, oferecida pela UNINOVE. 
O acesso às atividades, conteúdos multimídia e interativo, encontros virtuais, fóruns de 
discussão e a comunicação com o professor devem ser feitos diretamente no ambiente 
virtual de aprendizagem UNINOVE. 
 
 
Uso consciente do papel. 
Cause boa impressão, imprima menos. 
 
Aula 01: Conceitos de Algoritmos 
 
Objetivo: Dominar os conceitos de um algoritmo, sabendo representá-lo das três 
formas básicas: descritiva (ou narrativa), fluxograma (ou diagrama de blocos) e 
pseudocódigo (ou português estruturado ou portugol). 
 
 
Algoritmos 
Um algoritmo é uma sequência finita de instruções bem definidas que levam a 
solução de uma tarefa, ou um conjunto de regras para a solução de um problema 
(MANZANO, 2009; DASGUPTA; PAPADIMITRIOU; VAZIRANI, 2009; MANZANO; 
MANZANO, 2008). Todo algoritmo é feito utilizando-se da lógica. 
A importância da disciplina de computação básica na formação de 
engenheiros está relacionada à necessidade de capacitação dos alunos de 
engenharia na resolução de problemas diversos com o auxílio computacional, 
combinando o melhor da informática aos avanços tecnológicos. 
Para resolver um problema de forma automática (com o auxílio do 
computador), primeiramente é necessário encontrar uma maneira de descrevê-lo 
com clareza e precisão. Em outras palavras, é preciso encontrar uma sequência 
finita de passos não ambíguos que levam à sua solução, ou seja, o seu algoritmo. 
Um exemplo simples de algoritmo é uma receita para preparar um bolo. De 
acordo com o dicionário Aurélio, um algoritmo é definido como: "Processo de 
cálculo, ou de resolução de um grupo de problemas semelhantes, em que se 
estipulam, com generalidade e sem restrições, regras formais para a obtenção de 
resultado ou de solução de problema. Conjunto de regras e operações bem 
definidas e ordenadas, destinadas à solução de um problema, ou de uma classe de 
problemas, em um número finito de etapas.". 
É importante lembrar que a descrição do problema deve ser feita sob a 
perspectiva da máquina. Uma vez que os computadores não entendem descrições 
de problemas em linguagem natural, é preciso codificá-las em linguagens que lhes 
são compreensíveis. Tais linguagens são chamadas de linguagens de programação. 
Nesta etapa aplica-se a conversão de uma forma de representação do algoritmo, o 
 
pseudocódigo para uma linguagem especifica. A solução de um problema de forma 
automática pode ser descrita pelos passos ilustrados na Figura 1. 
 
 
Figura 1. Solução de um problema de forma automática. 
 
Todos nós sabemos construir algoritmos. Haja vista o fato de que saímos de 
casa pela manhã, definimos alternativas de transporte para ir ao trabalho, decidimos 
qual o melhor caminho para chegar a um lugar ou voltar para casa, etc. Cabe 
ressaltar que pode haver mais de um algoritmo para resolver um mesmo problema. 
Por exemplo, a decisão da escolha do transporte para ir ao trabalho poderia ser feita 
com base nas necessidades individuais. 
 
Descrição Narrativa 
É a forma de representação do Algoritmo através de frases, representando as 
ações a serem tomadas; as frases são os passos relacionados visando atender o 
objetivo. Vejamos alguns exemplos: 
a) Trocar uma lâmpada 
1º passo: Pegar a escada 
2º passo: Posicionar a escada embaixo da lâmpada 
3º passo: Buscar uma lâmpada nova 
4º passo: Subir na escada 
5º passo: Retirar a lâmpada velha 
6º passo: Colocar a lâmpada nova 
7º passo: Descer da escada 
8º passo: Guardar a escada 
 
b) Levar o cachorro para passear 
1º passo: Ir até o quintal 
2º passo: Pegar a coleira 
3º passo: Chamar o cachorro 
4º passo: Colocar a coleira no cachorro 
5º passo: Abrir o portão 
6º passo: Dar uma volta no quarteirão 
7º passo: Entrar em casa 
8º passo: Soltar a coleira do cachorro 
9º passo: Guardar a coleira 
 
c) Torres de Hanói (Figura 2) 
Considere o enunciado: inicialmente têm-se três hastes, A, B, C, e na haste A 
possuem três anéis de diâmetros diferentes, em ordem decrescente por diâmetro. O 
objetivo é transferir os três anéis da haste A para a haste C, usando o B se 
necessário. As regras de movimentação são: 
1. Deve mover um único anel por vez. 
2. Um anel de diâmetro maior nunca pode ficar sobre algum anel de diâmetro 
menor. 
 
 
Figura 2. Exemplo da Torre de Hanói com 3 discos. 
 
Para saber o número de movimentos você pode utilizar a seguinte lei 
matemática: 
( ) 2 1nM n  
. Onde M é o número de movimento e n o número de 
anéis. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Diagrama em Blocos 
Conhecido como fluxograma, esta forma geométricas descrevem 
graficamente um algoritmo. Vejamos na Tabela 1, as principais formas geométricas 
empregadas na construção de um fluxograma: 
 
 
Tabela 1 – Formas geométricas de fluxogramas 
 
Por exemplo, o fluxograma abaixo representa o algoritmo de cálculo das raízes de 
uma equação de 2º grau. 
 
 
 
Pseudocódigo 
Também conhecido como Português Estruturado Ou Portugol, é a 
representação do Algoritmo através de comandos, nele, já existem normas e regras 
a serem rigorosamente seguidas. 
 
 
 
 
 
Vejamos o exemplo a seguir: 
 
 
Linguagem de Programação 
A codificação de algoritmos é um assunto que será tratado mais adiante no 
curso. No entanto, para se ter uma ideia, a codificação do algoritmo dado no 
exemplo 3 “cálculo das raízes de uma equação de 2º grau”, em linguagem C, pode 
ser feita como segue: 
 
 
 
Referências 
DASGUPTA, Sanjoy; PAPADIMITRIOU, Christos; VAZIRANI, Umesh. Algoritmos. 
São Paulo: McGraw Hill, 2009. 
HEINEMAN, George T.; POLLICE, Gary; SELKOW, Stanley. Algoritmos: o guia 
essencial. Rio de Janeiro: Alta Books, 2009. 
Programa Raizes_Eq_2g 
Var 
 a, b, c, Delta, x1, x2 : Real 
Início 
 Leia a, b, c 
 Delta b^2-4*a*c 
 x1  (-b + Sqrt(Delta))/(2*a) 
 x2  (-b - Sqrt(Delta))/(2*a) 
 Escreva x1, x2 
Fim 
#include <stdio.h> /* biblioteca de entrada e saída de dados */ 
#include <math.h> /* biblioteca matematica */ 
int main() 
{ 
 float a, b, c; /* coeficientes da equacao */ 
float delta; /* delta da equacao */ 
float x1, x2; /* raizes da equacao */ 
printf ("Entre com os coeficientes da equacao.\n"); 
 scanf ("%f %f %f", &a, &b, &c); 
delta = pow(b,2) - 4 * a * c; 
delta = sqrt(delta); 
x1 = (-b + delta)/(2*a); 
x2 = (-b - delta)/(2*a); 
 printf("A raiz x1 vale %f.\n", x1); 
 printf("A raiz x2 vale %f.\n", x2); 
 return 0; 
} 
 
 
MANZANO, André Luiz N. G.; MANZANO, Maria Izabel N. G. Estudo dirigido de 
informática básica. São Paulo: Érica, 2008. 
MANZANO, José Augusto N. G. Estudo dirigido de linguagem C. São Paulo: Érica, 
2009. 
MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo de Oliveira. Algoritmos, 
Lógica para desenvolvimento de programação de computadores. São Paulo: Érica, 
19 ed., 2006. 
MIZRAHI, Victorine Viviane. Treinamento em linguagem C. São Paulo: Pearson, 
2008. 2v. 
SCHILDT, Herbert. Mayer. C completo e total. São Paulo: Pearson, 2006. 
VILARIM, Gilvan. Algoritmos de programação para Iniciantes. São Paulo: Ciência 
Moderna, 2004.

Outros materiais