Baixe o app para aproveitar ainda mais
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.
Compartilhar