AlgoritmosProf. Kelly E. Medeiros
O segredo para se sair em qualquer disciplina•Procurar estar presente na aula•Lembre-se que muitos exercícios poderão compor as notas das provas.•Se for necessário faltar chegar o conteúdo passado com os colegas de sala;•Que façam silêncio durante as explicações e em caso de dúvida em algum assunto ou aula? Pergunte ao professor durante a aula ou envie um e-mail para o e-mail da turma. ([email protected])•E o mais importante: Praticar, Praticar, Praticar...
Algoritmos
Vamos imaginar:
“Como os programas de computadores funcionam?”
“Como é que o computador faz todas as tarefas exatamente da forma com a qual você pede?”
Algoritmos
Para fazer esta interpretação entre homem e máquina, foram desenvolvidas as linguagens de programação. Mas mesmo estas linguagens utilizam uma lógica para serem escritas e é aí que entram os algoritmos.
AlgoritmosUm algoritmo nada mais é do que uma receita que mostra passo a passo os procedimentos necessários para a resolução de uma tarefa. Ele não responde a pergunta “o que fazer?”, mas sim “como fazer”.
AlgoritmoEm termos mais técnicos, um algoritmo é uma sequência lógica, finita e definida de instruções que devem ser seguidas para resolver um problema ou executar uma tarefa.Embora você não perceba, utiliza algoritmos de forma intuitiva e automática diariamente quando executa tarefas comuns. Como estas atividades são simples e dispensam ficar pensando nas instruções necessárias para fazê-las, o algoritmo presente nelas acaba passando despercebido.
Por exemplo: Fritar um OVO.
InicioRetirar o ovo da geladeira ou da colmeia de ovos.Colocar a frigideira no fogoColocar óleoEsperar até o óleo ficar quenteQuebrar o ovo separando a cascaColocar o conteúdo do ovo na frigideiraEsperar um minutoRetirar o ovo da frigideira e colocar em um pratoApagar o fogo.Fim
Outro exemplo, quando precisa trocar uma lâmpada, você:
Início Verifica se o interruptor está desligado; Procura uma lâmpada nova; Pega uma escada; Leva a escada até o local; Posiciona a escada; Sobe os degraus; Para na altura apropriada; Retira a lâmpada queimada; Coloca a lâmpada nova; Desce da escada; Aciona o interruptor; Se a lâmpada não acender, então: Retira a lâmpada queimada; Coloca outra lâmpada nova Senão Lâmpada acesa, tarefa terminada; Joga a lâmpada queimada no lixo; Guarda a escada;Fim
Analisando os exemplos e verificandoTal sequencia é um Algoritmo?
Possui uma sequencia de instruções finitas e ordenadas?
Resp. Sim, os 2 possuem.O objetivo da sequencia foi atingido?Resp. Sim. O ovo foi frito e a lâmpada trocada.
Logo, os 2 são um algoritmo.
Exercitando:•Ordene e estruture uma sequencia (Algoritmo) para a realização de uma ligação telefônica em um orelhão.•Você usará um cartão para fazer a ligação.
Resposta para o exercício•Resposta 1 (simples)Inicio1.Tirar o fone do gancho.2.Ouvir sinal de linha3.Introduzir o cartão4.Teclar o número desejado5.Conversar6.Desligar7.Tirar o cartãoFim
Resposta para o exercício•Resposta 2 (mais robusta)Inicio1.Tirar o fone do gancho.2.Ouvir sinal de linha3.Introduzir o cartão4.Teclar o número desejado5.Se chamar e alguém atender
1. Conversar2. Desligar3. Retirar o cartão
6.Senão7.Desligar8.Tirar o cartãoFim
Qual a conclusão que podemos tirar sobre os algoritmos•Algoritmos é uma espécie de passo a passo.•Algoritmos realizam uma saída (ex. Um ovo frito) a partir de uma entrada (um ovo) através de uma sequência.•Os passos tem que ser executados um após o outro.•Um algoritmo está correto quando sua sequência de instrução resulta em uma saída esperada.•Podem existir um ou mais algoritmos para atingir um resultado, desde que o resultado seja o mesmo.
O algoritmo não é a solução do problema,
mas o caminho que leva a solução.
Por que criarmos algoritmos?•A linguagem natural não pode ser interpretadas por computadores. Existem linguagens especiais.•Computadores são projetados para executar tarefas bem definidas a partir de instruções.•Para desenvolver software, utilizamos linguagem de programação
• A linguagem algorítmica é similar a uma linguagem de programação.
• Logo, aprendendo a criar algoritmos, estamos aptos a programar em qualquer linguagem de programação.
Como funciona um sistema?
Português/Inglês
Linguagem Natural
Instruções
AlgoritmoAdaptação Código – fonte em
Linguagem de programação
Compilação
tradução
Linguagem demáquina
Alto nível
Baixo nível
001000010100
Fluxogramas
Os fluxogramas ou diagramas de bloco são:Forma gráfica para representar os passos lógicos de um determinado algoritmo.Com o diagrama pode-se definir e facilitar a visualização dos passos em um problema.
Fluxogramas (representação de um algoritmo)•Descrevem o fluxo de ação de um determinado trabalho lógico;•Usa símbolos convencionais, permitindo poucas variações;•Representado por símbolos geométricos
•Entendo as formas do fluxograma convencional (deve-se saber bem o que é cada símbolo dentro de um fluxograma) então anotem.
Exemplo:
Analisando algoritmo e criando o fluxograma
Algoritmo mediaVar nota1, nota2, media de Real;Inicio
nota1<=5;nota2<=7;media <=(nota1+nota2)/2;Mostrar media;
Fim
Fluxograma do algoritmo da média montado:
Estrutura de Dados•O computador só conhece os valores que estão armazenados na sua memória.•Portanto, a maioria das instruções está, de certa forma, associada ao processo de armazenamento ou transformação desses valores.•Na concepção de algoritmos, pode-se considerar:
• 1. Memória Conjunto de posições• 2. Cada posição recebe uma identificação(nome) e armazena um
valor.
Identificador Idade Nome Média
Valor 18 “João” 2,5
Estrutura de Dados•As posições de memória sempre armazenam um valar e seguem as seguintes premissas:
• 1. Se armazenamos um novo valor em uma posição, o seu valor antigo será perdido;
• 2. Se nenhum valor for atribuído a uma determinada posição, esta possui um “lixo” (as posições nunca estão vazias)
Estrutura de Dados - Identificador
•É o nome de uma posição na memória;•É definido pelo programador;•Recomenda-se o uso de nomes significativos.
• Ex: IDADE, NOME, VLR_SALARIO• Contra-Ex: X1, KCP, VAR_1, VAR_2
• Regras para definição de identificadores• 1. Deve começar com uma letra;• 2. Pode conter letras, números e caracteres especiais.
Identificador Idade Nome Média
Valor 18 “João” 2,5
Estrutura de Dados - Identificador
•É o nome de uma posição na memória;•É definido pelo programador;•Recomenda-se o uso de nomes significativos.
• Ex: IDADE, NOME, VLR_SALARIO• Contra-Ex: X1, KCP, VAR_1, VAR_2
• Regras para definição de identificadores• 1. Deve começar com uma letra;• 2. Pode conter letras, números e caracteres especiais.
Identificador Idade Nome Média
Valor 18 “João” 2,5
Estrutura de Dados – Constantes e Variáveis•Constantes: Representam valores que não mudam no decorrer do algoritmo:
•Ex: “O nome é:”, PI, Polegada, etc.
•Variáveis: Representam dados cujos valores são modificados ao longo da execução do algoritmo.
Tipos de Estrutura de dados
Estrutura de dados homogênea (Vetores e Matrizes)Vetores: Estrutura que suporta N posições de um mesmo tipo de dado, cada um com seu respectivo valor.
Ex. char[1...100]: string
Matrizes: estrutura que suporta NxM posições de um mesmo tipo de dados, cada uma com seu respectivo valor.
Ex: int[1..10, 1..10]: matriz_identidade;
Tipos de Estrutura de dados
Estrutura de Dados Heterogênea
Registros: estrutura que suporta K variáveis, cada qual com um tipo de dado próprio.
Ex: registro{ char[1..100]: nome; int: idade; real: salario;}: cadastro
Tipos de Estrutura de dados
As duas estruturas apresentadas podem ser combinadas de modo a
formar estruturas complexas de dados.
Estrutura Geral de um Algoritmo
Algoritmo_NomeAlgoritmo Declaração de variáveis e constantes globais Inicio
Bloco de comando
Fim
Fim_algoritimo
Comandos Básicos do Algoritmo
Declaração de Variáveis
Define os locais na memória que serão rotulados com o identificador da variável que será utilizada para a manipulação de um determinado tipo de dado.Nenhuma variável pode ser usada sem antes ter sido declarada.Ex:
Variáveis: <tipo_do_dado>
Tipo_do_dado tipos primitivos (inteiro, real, caracter e lógico) ou tipos estruturados (vetores, matrizes e registros)
Comandos Básicos do Algoritmo
Comentários
Comentários não são comandos, mas são muito importantes para a documentação e entendimento dos algoritmos e programas de computador.São compostos por textos explicativos em linguagem natural delimitados entre /* e */Ex./* Esse algoritmo calcula a media de 3 notas */
Comandos Básicos do Algoritmo
Comandos de Entrada e Saída
São utilizados para obter a entrada ou fornecer a saída ide informações ao usuário durante a execução do algoritmo.Sintaxe:
LeiaMostre
Ex.Leia (N1, N2, N3)Mostre( “A média final é: “, (N1+N2+N3)/3);
Comandos Básicos do Algoritmo
Comandos de Atribuição
Similar ao sinal de igual das expressões matemáticas convencionais, este comando atribui à variável da esquerda o valor da expressão da direita.Sintaxe:
Variável ← expressão;Ex:
Nome ← “fulano”;
Comandos Básicos do Algoritmo
Tipos de operadores
Relacionais: =(igual), <>(diferente), >(maior que), <(menor que), >=(maior igual que), e <=(menor igual que);
Lógicos: and, or
Aritméticos: + (soma), -(subtração), *(mutiplicação), /(divisão) e ^(exponenciação).
Comandos Básicos do Algoritmo
Tipos de Funções:
abs(X): obtém o valor absoluto de X;sqrt(X): calcula a raiz quadrada de X;log(X): calcula o logaritmo de X;mod(X,Y): obtém o resto da divisão de X por Y;trunca(X): obtém a parte inteira de X;round(X): arredonda o valor de X;sen(X): calcula o valor do seno de X;cos(X): calcula o valor do cosseno de X;tan(X): calcula o valor da tangente de X.
Primeiro Algoritmo•Calcular a média de 2 notas:
Algoritmo mediaInicio
Ler a 1ª nota;Ler a 2ª nota;Somar as 2 notas;Dividir a soma das notas por 2;Mostrar o resultado;
Fim
Quando compilado no computador586,5
Algoritmo Media.•Calcular a média de 2 notas:
Algoritmo mediaVar nota1, nota2, media de real;Início
Mostrar: “Digite a 1ª nota.”;Ler a 1ª nota;Mostrar: “Digite a 2ª nota.”;Ler a 2ª nota;Media ← (nota1 + nota2)/2Mostrar: “A media é: ”, media;
Fim
Quando compilado no computador
Digite a 1ª nota: 5Digite a 2ª nota: 8A média é: 6,5
Algoritmo carroAlgoritmo automovelVar custo_fab, perc_rev, impostos, preco_final de real;Inicio
Mostrar: “Digite o valor do custo de fabrica do automovel.”;Ler (custo_fab);perc_rev ← (25*custo_fab)/100;Impostos ← (45*custo_fab)/100;preco_final ← custo_fab + perc_rev + impostos;Mostrar: “O custo da fabrica: ”, custo_fab;Mostrar: “O percentual do revendedor é : ”, perc_rev;Mostrar: “O imposto é: ”, impostos;Mostrar: “O preço final do carro será de : ”, preco_final;
Fim
Quando compilado no computador
Digite o valor do custo de fábrica do automóvel : 40000O custo da fábrica: 40000O percentual do revendedor é: 10000O imposto é: 18000O preço final do carro será de: 68000
Exercício 1•Faça um algoritmo que leia o nome de uma pessoa , sua idade e o seu salário e ao final mostre essas informações.
Exercício 2•Faça um algoritmo que leia 2 números e faça as 4 operações matemáticas e mostre esses resultados.
Exercício 3•Duas variáveis (A e B) possuem valores distintos (A ← 5 e B ← 10). Crie um, algoritmo que armazene esses valores nas 2 variais e efetue a troca de valores de forma que a variável A passe a possuir o valor de B e que a variável B passe a possuir o valor de A. E ao final mostrar esses valores trocados.
Exercício 4•O custo ao consumidor de um carro novo, é a soma do custo de fábrica com a porcentagem do revendedor e com o custo dos impostos (aplicados ao custo da fabrica). Supondo que a porcentagem do revendedor seja de 25% do custo de fábrica e que os impostos custam 45% do custo de fábrica, faça um algoritmo que leia o calor de custo de fábrica e determine o preço do automóvel para o consumidor.
Exercício 4.1•O sistema de avaliação de determinada disciplina é composto por três provas. A 1ª prova tem peso 2, a 2ª prova tem peso 3 e a 3ª prova tem peso 5. Faça um algoritmo para calcular a média final de um aluno desta disciplina.
Exercício 5•Um Cliente de um banco tem um saldo positivo de R$ 500,00. Fazer um algoritmo que leia um cheque que entrou e calcule o saldo, mostrando o saldo na tela.
Exercício 6•Uma empresa de vendas se softwares para a seu vendedor um fixo de R$ 800,00 por mês, mais uma comissão de 15% pelo seu valor de vendas no mês. Faça um algoritmo que leia o valor da venda e determine o salário total do funcionário. Mostre as informações necessárias na tela.
Exercício 7•Uma empresa de desenvolvimento de softwares paga ao seu vendedor um salário fixo de R$ 500,00 por mês, mais um bônus de R$ 50,00 por sistema vendido. Faça um algoritmo que leia quantos softwares o funcionário vendeu e determine o salario total do funcionário. Mostre as informações que achar necessárias.
Exercício 8•Crie um algoritmo para calcular o salário líquido de um funcionário, considerando que seu salário bruto, incide um desconto de 9% em INSS para a previdência. O algoritmo deve mostrar o nome do funcionário, o seu salário bruto, o valor de desconto de INSS e o seu salário líquido.(dica.: Você deverá pedir (ler) o nome do funcionário e o valor do salário bruto).
Exercício 9•Considerando que para um consórcio, sabe-se o número total de prestações, a quantidade de prestações pagas e o valor atual da prestação, escreva um algoritmo que determine o total pago pelo consorciado e o saldo devedor.
Exercício 10•Analisando a fórmula " Prestação = valor + (valor * (taxa/100) * tempo)", crie um algoritmo para efetuar o cálculo do valor de uma prestação em atraso. (Você deverá ler o VALOR da prestação, a TAXA de juros imposta pelo banco, e o número de dias em ATRASO.