Buscar

aula_01

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 3, do total de 50 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 6, do total de 50 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 9, do total de 50 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

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

UNIJUÍ – Universidade Regional do Noroeste do 
Estado do Rio Grande do Sul
EGE – Engenharia Elétrica
DCEEng – Departamento de Ciências Exatas e Engenharias
ALGORITMOS
Aula 01
Professor
Mauro Fonseca Rodrigues
Material organizado por:
Prof. Mauricio de Campos
Atualizado: 1/2014
Apresentação
Mauro Fonseca Rodrigues
• Professor da UNIJUÍ
• Facebook/Skype: mauro.fonseca.rodrigues
• Mestre Engenharia Elétrica UFSM – 2/2013
• Engenheiro Eletricista – UNIJUÍ 2/2010 – Registro no CREA
• Projetista de Telecomunicações e Eletricidade
• Engenheiro Especialista em Telecomunicações na empresa OI
• Atuo na área de Telecomunicações, Eletrônica e Informática desde 
1994.
Pesquisas e artigos nas áreas de: 
• processamento de imagens; 
• telecomunicações/eletrônica;
• geração de energia com fontes renováveis; 
• microinformática;
• otimização de processos de engenharia; 
Plano de Ensino
EMENTA
• Princípios gerais de informática. 
• Noções de lógica de programação. 
• Conceituação e concepção de programas e algoritmos. 
• Componentes básicos (variável, constante, atribuição, instrução, 
operadores e expressões). 
• Uso de estruturas de controle (seleção e iteração). 
• Tipos de dados básicos (tipos de variáveis, strings, vetores, 
matrizes). 
• Construção e declaração de novos tipos. 
• Sub-algoritmos. 
• Aplicação em uma linguagem de alto nível.
Bibliografia
• Estudo Dirigido de Algoritmos 
• Autor: Oliveira, Jayr Figueiredo / 
Manzano, Jose Augusto
• Editora:Érica
• ISBN:857194413X
• Série: Estudo dirigido
• Idioma: Português
• Páginas:228
• Publicação:1997
• Edição1
Bibliografia ADICIONAL
• FORBELLONE, A. L. V. Lógica de programação. São Paulo: 
Makron, 2000.
• MANZANO, J. A. N. G. Estudo dirigido: algoritmos. São Paulo: 
Érica, 2004. 
• VENANCIO, C. F. Desenvolvimento de algoritmos: uma nova 
abordagem. São Paulo: Érica, 2000.
• CHAPMAN, S. J. Programação em matlab para engenheiros. São 
Paulo: Thomson Pioneira, 2003.
• GUIMARÃES, A. M. Algoritmos estruturas de dados. Rio de 
Janeiro: LTC, 1994. 
• SALVETTI, D. D. Algoritmos. São Paulo: Makron Books, 1998.
• SWAIT Jr., J. D. Fundamentos computacionais, algoritmos e 
estrutura de dados. Rio de Janeiro: Makron Books, 1991. 
• WIRTH, N. Algoritmos e estruturas de dados. Rio de Janeiro: 
Prentice-Hall, 1989.
Introdução
• Onde se inserem os Algoritmos na 
Engenharia?
• Vamos fazer um breve exercício
1. Abra seu caderno.
2. Escreva a sequência de passos que o 
trouxeram até a aula de hoje.
3. Você tem 10 minutos para realizar a 
tarefa.
3.1 Aguardando os 10 minutos...........................................
Introdução
• Onde se inserem os Algoritmos na 
Engenharia?
• Agora responda: onde está o erro no exercício proposto?
1. Abra seu caderno.
• Por quê?
Basicamente, porque não foi verificado se havia caderno 
para ser aberto.
Agora vamos verificar alguns exemplos de algoritmos 
gerados para o exercício proposto.
Aguardar e, caso não existam voluntários, sortear 3 
exemplos para analisar.
Introdução
• Onde se inserem os Algoritmos na 
Engenharia?
• Quais exemplos estão corretos e errados?
Pode-se dizer que todos estão certos e/ou errados
• Por quê?
Para um caso genérico várias soluções podem ser 
aplicadas.
Assim, para uma solução simplificada, se pode abrir cada 
passo e aplicar outros passos internos a esta atividade. 
• Veja o exemplo a seguir:
1. Peguei o carro
2. Cheguei na UNIJUÍ
Está certo ou errado?
Introdução
• Onde se inserem os Algoritmos na 
Engenharia?
• Veja o exemplo a seguir:
1. Peguei o carro
2. Cheguei na UNIJUÍ
• Veja que sob o ponto de vista macro está correto.
• Detalhando um pouco mais “Peguei o carro”
• Detalhando um pouco mais “Fui à garagem”
Peguei o carro Cheguei na UNIJUÍ
Peguei chave Saí de casa Desloquei-me 
até a garagem Abri garagem
Fui à garagem Abri a porta Liguei o carro Saí
Introdução
• Onde se inserem os Algoritmos na 
Engenharia?
• Perceba que: 
– Os algoritmos são ferramentas computacionais básicas, ou seja, 
examinam todas as possibilidades antes de realizarem qualquer função.
– Assim, qualquer atividade definida de forma simples por quem a 
conhece precisa ser definida em cada etapa para quem não a conhece.
– É o caso dos sistemas automatizados ou computadores em geral.
• Algoritmos – Definição: conjunto finito de regras que fornece 
uma sequência de operações para resolver um problema 
específico.
• Observe que para você: 1 + 1 = 2 (sem dúvida!)
– Para uma criança em série inicial: | | = 2 (palitos)
Introdução
• O microcomputador é um sistema capaz 
de processar um sinal.
O que é processar?
Nesse caso, significa 
adquirir, interpretar e 
realizar alguma tarefa 
relacionada.
Introdução
• O microcomputador é um sistema capaz 
de processar um sinal.
É necessário:
• Adquirir o sinal
• Vamos ver um exemplo 
com MATLAB
Introdução
• O Microcomputador possui várias 
Interfaces de entrada e saída:
Composição Externa
• Interfaces de entrada:
–Teclado;
• DIN;
• PS/2;
• USB;
• Wireless (Wi-fi e Bluetooth).
– Mouse;
• Serial (Padrão);
• PS/2;
• USB;
• Wireless (Wi-fi e Bluetooth).
Composição Externa
–Scanner;
• LPT1 (Paralela);
• SCSI;
• USB;
–Outros;
• Câmeras Digitais;
• Canetas Óticas;
• Mesa digitalizadora;
• Voz.
Composição Externa
• Interfaces de Saída:
–Monitor;
• CRT (Mono ou Color);
• LCD;
• Plasma;
• Organic Light Emitting Devices OLED
–Impressora;
• LPT1 (Paralela);
• USB;
• Conexão de rede;
• Infrared;
• Wireless.
CPU (Unidade Central de Processamento)
Mother Board
• É a placa mais importante 
do computador;
• Nela estão localizados:
– O processador;
– A memória;
– Interfaces;
– Conectores;
Fontes de Alimentação
• As fontes de alimentação 
são as responsáveis por 
distribuir energia elétrica a 
todos os componentes do 
computador. 
• Uma fonte de qualidade é 
essencial para manter o 
bom funcionamento do 
equipamento. 
• Existem fontes com 
potências de 150 a 500 
watts.
Consumo Médio dos Componentes
de um PC
Introdução à Programação
• Muitas pessoas gostam de falar que possuem e 
sabem usar o raciocínio lógico.
• Quando questionadas, perdem a linha de raciocínio, 
pois este depende de muitos fatores para completá-lo, 
tais como: 
•calma; •vivência;
•experiência; •ponderação;
•criatividade; •responsabilidade;
•conhecimento; •versatilidade;
Introdução à Programação
• Podemos dizer que lógica é a ciência dos 
princípios formais do raciocínio. 
• Usar a lógica é fundamental para aqueles 
que desejam programar um computador.
• Devemos lembrá-los que não ensinamos 
ninguém a pensar, pois todas as pessoas 
possuem este "dom". 
• Para usar a lógica é necessário: Saber 
Pensar
“Como não é possível ensinar 
ninguém a pensar, o objetivo é 
justamente aperfeiçoar este 
dom.”
Lógica e Algoritmos
aquiA técnica mais importante no projeto da lógica de
programas é chamada programação estruturada, a qual
consiste em uma metodologia de projeto, objetivando:
i) agilizar a codificação da escrita da programação;
ii) permitir a verificação de possíveis falhas
apresentadas pelos programas;
iii) facilitar as alterações e atualizações dos programas.
Definição de Algoritmo 2:
“Um Algoritmo é uma seqüência 
de instruções ordenadas de forma 
lógica para a resolução de uma 
determinada tarefa ou problema.”
Diagramas
� As formas de 
representações 
gráficas são 
uma maneira 
mais simples de 
representar os 
dados a serem 
processados em 
um 
computador. 
Diagrama de Blocos
• É uma ferramenta usada pelo 
profissional que está envolvido 
diretamente com a 
programação, tendocomo 
objetivo descrever o método e 
a sequência do processo dos 
planos num computador. 
• Pode ser desenvolvido em 
qualquer nível de detalhe que 
seja necessário. 
• Lembre dos exemplos iniciais.
Diagrama de Blocos
• Esta ferramenta usa diversos 
símbolos geométricos, os 
quais estabelecerão as 
sequências de operações a 
serem efetuadas em um 
processamento computacional. 
• Após a elaboração do 
diagrama de bloco, será 
realizada a codificação do 
programa. 
Diagrama de Blocos
Terminal
Processamento
Entrada
Teclado
Vídeo 
Descrição dos blocos
� Indica inicio ou fim do programa;
� Seta de fluxo de dados;
� Utilizado para indicar cálculos, 
atribuições de valores;
� Utilizado para ler os dados sem a 
intervenção de dispositivos mecânicos;
� Entrada de dados via teclado;
� Apresenta os dados no vídeo;
� Conector
� Conector para outra página
Diagrama de Blocos – Exemplo
Descrição dos blocos
� Indica início do programa
� Seta de fluxo de dados
� Entrada de dados via teclado
� Seta de fluxo de dados
� Utilizado para indicar cálculos, 
atribuições de valores
� Seta de fluxo de dados
� Tomada de decisão
� Seta de fluxo de dados
� Apresenta resultado
� Seta de fluxo de dados
� Indica fim do programa
Programa para calcular a 
média aritmética de 3 notas.
Algoritmos Estruturados 
• Algoritmo é um processo de cálculo matemático ou de 
resolução de um grupo de problemas semelhantes;
• São regras formais para obtenção de um resultado ou da 
solução de um problema, englobando fórmulas de 
expressões aritméticas;
• Note que sempre estaremos diante de um problema, e que 
deverá ser resolvido primeiro por nós, para que depois seja 
passado e resolvido por um computador;
• O que se quer dizer é que primeiro você deve entender bem 
o problema, para depois buscar a sua solução dentro de um 
computador;
Algoritmos Estruturados 
• Na realidade, você deverá "ensinar" a máquina a resolver 
o seu problema, através de um programa, apresentando a 
ela cada passo necessário para realizar tal tarefa;
• Desta forma, o segredo de uma boa lógica está na 
compreensão adequada do problema a ser solucionado, e 
todas as etapas necessárias para isso;
• Com relação ao problema proposto, este deverá ser 
primeiro muito bem interpretado;
• Isto ocorre com o auxílio de uma ferramenta denominada 
algoritmo, que deverá estabelecer todos os passos 
necessários a serem cumpridos na busca de uma solução 
para um problema; é como se fosse uma receita de bolo. 
Algoritmos Estruturados 
Básico
Algoritmo "<nome do algoritmo>"
var
< declaração de variáveis>
início
< lista de comandos>
fimalgoritmo
Algoritmos Estruturados 
� Comandos de entrada e saída:
◦ Em nível de algoritmo esses comandos representam apenas 
a entrada e a saída da informação, independe do dispositivo 
utilizado (teclado, discos, impressora, monitor,...), mas, 
sabemos que nas linguagens de programação essa 
independência não existe, ou seja, nas linguagens de 
programação temos comandos específicos para cada tipo 
de unidade de Entrada/Saída.
◦Comando de Entrada de Dados
leia(x)
◦Comando de Saída de Dados
escreva(“Texto")
Observe que as ações que 
dependem das anteriores são 
indentadas para dentro como forma 
de melhorar a visualização da 
informação!
Algoritmos Estruturados –
Exemplo 
� Para o mesmo exemplo anterior, calculando a 
média aritmética de 3 notas:
◦ Algoritmo “cálculo da média”
◦ Var N1, N2, N3, MÉDIA: real;
◦ Início
◦ Leia (N1, N2, N3);
◦ MÉDIA ���� (N1 + N2 + N3) / 3;
◦ Se (MÉDIA >= 6) então
◦ Escreva (“Aprovado”);
◦ Se não 
◦ Escreva (“Reprovado”);
◦ fim_se
◦ Fim_algoritmo
◦ Observe que o algoritmo expressa todos os passos 
necessários à execução da tarefa, conforme 
apresentado no diagrama em blocos.
Variáveis
• Unidades básicas de armazenamento das informações a 
nível de linguagens de programação. 
• Os tipos de dados e variáveis utilizados dependem da 
finalidade dos algoritmos, mas, podemos definir alguns, 
pelo fato de serem largamente utilizados e implementados 
na maioria das linguagens, sendo estes: 
�INTEIRO : qualquer número inteiro, 
negativo, nulo ou positivo.
�REAL : qualquer número real, 
negativo, nulo ou positivo.
�CARACTER : qualquer conjunto de 
caracteres alfanuméricos.
�LÓGICO : tipo especial de variável 
que armazena apenas os valores V e F, 
onde V representa VERDADE e FALSO
XX
Variáveis – Exercício
XX
O Uso de Variáveis
� A memória de um computador é como um grande 
arquivo físico onde cada pasta pode armazenar um único 
valor.
� Para poder utilizá-lo precisamos identificar cada pasta 
com um nome.
� Assim, o que foi 
armazenado pode 
ser utilizado a 
qualquer 
momento.
� Nomes de variáveis 
entretanto devem 
obedecer algumas 
regras.
Variáveis – Nomes
• Nomes de variáveis podem ser atribuídos com um 
ou mais caracteres.
• O primeiro caractere de uma variável não poderá 
em hipótese algum ser um numero.
• O nome de uma variável não poderá conter espaços 
em branco.
• Não poderá ser nome de uma variável uma palavra 
reservada como por exemplo uma instrução do 
programa.
• Não poderão ser utilizados outros caracteres que 
não sejam nomes ou números.
Palavras Reservadas
Declaração de variáveis
VAR
• Assim como qualquer sequência de passos para resolver 
um problema, o computador também necessita de uma 
identificação para as variáveis que vai utilizar.
• Alguns sistemas mais modernos identificam e 
correlacionam as informações automaticamente, mas 
esse tipo de análise consome recursos do sistema e 
gera um tempo adicional, que muitas vezes não pode ser 
desperdiçado.
• Dessa forma, é importante informar ao computador o tipo 
de variável necessária de forma a otimizar os recursos 
disponíveis no hardware.
Declaração de variáveis
VAR
• identificador 1, identificador 2: tipo das variáveis
• identificador 3: tipo das variáveis
• OBS: Não há a necessidade de ponto e vírgula após 
cada declaração, basta pular a linha.
Operações Básicas
� Na solução da grande maioria dos problemas é 
necessário que as variáveis tenham seus valores 
consultados ou alterados e, para isto, devemos 
definir um conjunto de OPERADORES, sendo eles:
◦ OPERADOR DE ATRIBUIÇÃO:
� NomeDaVariavel < - Valor ou Expressão Atribuída.
Expressões matemáticas
• Uma expressão do tipo:
X={43.[55:(30+2)]}
Lê-se: X é igual a 55 dividido pela soma de 30 e 22, multiplicado 
por 43.
• Será escrita na forma computacional como:
X�(43*(55/(30+2)))
Lê-se: X recebe o resultado de 55 dividido pela soma de 30 e 22, 
multiplicada por 43.
• Para a seguinte fórmula:
ÁREA=pi.RAIO2
Lê-se: _______________________________________________
• Poderá ser escrita de duas formas:
ÁREA�3.14159*RAIO*RAIO ou ÁREA�3.14159*RAIO^2
Lê-se: _______________________________________________
Outros Operadores
VisuAlg 2.0 
Exemplo 1.1
� Considere o seguinte exemplo de um problema: 
"Deverá ser criado um programa que efetue a leitura 
de dois valores numéricos. Faça a operação de 
soma entre os dois valores e apresente o resultado 
obtido". 
� Algoritmo Genérico:
� 1. Obter dois valores, no caso variáveis A e B;
� 2. Efetuar a soma das variáveis A e B, implicando o 
seu resultado na variável X;
� 3. Apresentar o valor da variável X após a operação de 
soma dos dois valores fornecidos. 
Exemplo 1.1
� Algoritmo Genérico:
� 1. Obter dois valores, no caso variáveis A e B;
� 2. Efetuar a soma das variáveis A e B, implicando o seu resultado na variável X;
� 3. Apresentar o valor da variável X após a operação de soma dos dois valores 
fornecidos. 
Qual o valor de A?
A
Qual o valor de B?
B
X�A+B
X
InícioFim
Exemplo 1.2
• Desenvolver a lógica, o diagrama de blocos e o 
programa em português estruturado para resolver um 
problema que efetue o calculo da área de uma 
circunferência, apresentando a medida da área 
calculada.
� Algoritmo Genérico:
� 1. Obter o valor, no caso variáveis R;
� 2. Estabelecer que pi vale 3.14159;
� 3. Efetuar o calculo de A����3.14159*R*R;
� 4. Apresentar o valor da variável A. 
Exemplo 1.2
� Algoritmo Genérico:
� 1. Obter o valor, no caso variáveis R;
� 2. Estabelecer que pi vale 3.14159;
� 3. Efetuar o calculo de A����3.14159*R*R;
� 4. Apresentar o valor da variável A. 
Qual o valor do Raio?
R
A�3.14159*R*R
A
Início
Fim
Exercício 1
• Efetuar o cálculo da quantidade de litros de 
combustível gasta em uma viagem, Utilizando um 
automóvel que faz 12 km/l. 
Observações: 
1) Para obter o cálculo, o usuário deverá 
fornecer o tempo gasto na viagem e a 
velocidade média durante a mesma. 
Desta forma, será possível obter a 
distância percorrida através da fórmula:
DISTANCIA ���� TEMPO * VELOCIDADE
e também:
LITROS ���� DISTANCIA / 12
2) O programa deverá apresentar a 
velocidade média o tempo gasto na 
viagem, a distância percorrida e a 
quantidade de litros utilizada na viagem.
Exercícios complementares
• 1- Ler dois valores para variáveis A e B, efetuar a troca dos 
valores de forma que a variável A possa possuir o valor da 
variável B e que a variável B passe a possuir o valor o valor da 
variável A. Apresentar os valores das variáveis A e B antes e 
após a troca;
• 2- O custo de um carro novo ao consumidor é a soma do custo 
de fábrica com a porcentagem do distribuidor e dos impostos 
(aplicados ao custo de fábrica). Supondo que o percentual do 
distribuidor seja de 12% e os impostos de 45%, escrever um 
algoritmo para ler o custo de fábrica de um carro, calcular e 
mostrar ao usuário o custo final ao consumidor bem como o valor 
destinado ao pagamento dos impostos e o lucro do distribuidor.

Outros materiais