O que é Algoritmo?
Em uma comparação bem simples, mas que eu acho muito direta é comparar algoritmo com uma receita, pois algoritmos são os passos a serem seguidos para se chegar a solução de um problema, logo a comparação com uma receita é valida pois seguimos passo a passo uma receita para fazer um determinado prato, e nos algorimos seguimos passo a passo algumas intruções para resolver um problema.
O uso de algorimos é tão antigo quanto a matemática. Com o passar do tempo entretanto ele foi bastante esquecido pela matemática. Com o advento das máquinas de calcular e mais tante os computadores, o uso de algoritmos ressurgiu com grande vigor, como uma forma de indicar o caminho para a solução dos mais variados problemas.
Um algoritmo deve sempre possuir pelo menos um resultado, normalmente chamado de saída, e satisfazer a propriedade da efetividade, isto é todas as operações especificadas no algoritmos devem ser suficientemete básicas para que possam ser executadas de maneira exata e num tempo finito.
Para se ter um algoritmo, é necessario.
- Ter um número finito de passos.
- Cada passo tem que ser precisamente definido, sem ambiguidades.
- Existir zero ou mais entradas tomadas de conjunto bem definidas.
- Existir uma ou mais saídas.
- Existir uma condição para indicar o fim do algoritmo para qualquer entrada num tempo finito.
Formas de representação de algoritmos.
existem diversas formas para se representar um algoritmo, você pode escolher simplesmente a que melhor você entende.
Algumas formas de representação de algortimos tratam de problemas apenas em nível lógico outras tratam da representação com uma riqueza maior de detalhes.
Dentre as formas de representação de algortimos mais conhecidas, sobresaltam:
- Fluxograma Convencional.
- Diagrama de Chapin.
- Pseudocódigo, Linguagem estruturada, Portugol.
Fluxograma Convencional
Esta forma de representação de algoritmos emprega várias formas geométricas para descrever cada uma das possíveis ações durante a execução do algoritmos. Existem algumas formas geométricas que são empregadas normalmente e que estão mostradas na Figura abaixo. Cada uma destas formas se aplica a uma determinada ação como está indicado. Existem outras formas que podem ser aplicadas, no entanto nesta apostila estas formas serão suficientes para os exemplos que serão mostrados.
Vamos então a um exemplo mais prático de como usar fluxogramas, pensem comigo, Domingão você acorda, toma café aí dá uma olhada no dia, é dia de sol? sim? vamos para a praia ou não, não tem sol, então vamos ler jornal, aí a patroa chama para ir no cinema, depois do voltamos para casa e jantamos e vamos dormir porque o domingo já acabou, humm, mais como fazer isso dái em fluxograma?? veja na imagem abaixo:
Simples não? você deve estar falando: é esse daí é fácil mas um programa real? duvido que você consiga mostrar isso em um programa real, vou te mostrar que não, que é bem simples, que tal o calculo de uma equação do primeiro grau? opis bem vamos lá.
a equação de primeiro grau é assim aX + b = 0, se A diferente de 0 então X = -(b/a)
vamos ao fluxograma:
Diagrama de Chapin
Este diagrama foi originalmente criado, Nassi e Shneiderman e porteriormente melhorado por Ned Chapin, sua representação é feita em blocos por uma diagramaçao com quadros que oferecem ao leitor uma visão hierárquica e bem estruturada da lógica utilizada no programa, veja um exemplo:
Este programa funciona da seguinte forma, ele pergunta ao usuário sua idade, se a idade do usuário for menor que 25 ele escreve você é jovem, se for maior que 25 ele escreve você é velho.
Vamos agora a uma comaração entre o diagrama de chapin e o fluxograma, vimos um exemplo de como utilizar o diagrama de chapin para representar nossos programas, vou mostrar o mesmo exemplo utilizando fluxogramas.
Agora você pode tirar suas conclusões de qual ferramenta é a melhor para representar seus programas.
Pseudocódigo, Linguagem estruturada, Portugol
Está forma de representação consiste na descrição estruturada definidadas por meio de regras quais são os passos necessários para a resolução do problema. A linguagem Estruturada utiliza a linguagem natural para representar o raciocínio, no nosso caso utilizaremos o português estruturado.
vantagens na utilização do português estruturado.
-
facilitar o desenvolvimento dos algoritmos;
-
facilitar o seu entendimento pelo ser humano;
-
antecipar à depuração (localização de erros) em sua lógica;
-
facilitar a sua manutenção e modificação;
-
facilitar e agilizar a sua codificação (escrita do programa);
-
permitir o desenvolvimento simultâneo de vários profissionais (trabalho em equipe).
Estrutura Básica
Todo programa representado pelo Português Estruturado deve conter seguir a seguinte estrutura:
- PROGRAMA nome_do_proagrama
- Var nome_das_variáveis: tipo das variaveis
- INICIO
- FIM.
Vamos a um exemplo de português estruturado.
- PROGRAMA Velho_ou_Novo;
- var idade : inteiro;
- INICIO
- Escreva “Informe sua idade”
- Leia idade
- se idade < 25 então
- escreva “você é jovem”
- senão
- escreva “você é velho”
- FIM
Tipos de dados
Os algoritmos sempre irão manipular os dados, que irão ser fornecidos pelos usuários, mas a pergunta que não quer calar é: Quais os tipos de dados podemos manipular? Normalmente as linguagens de programação estabelecem regras para definir o tipo de dado que elas irão manipular, no português estruturado também existem regras que definem que tipo de dado podemos ou não manipular.
Existem 3 tipos básicos de dados, eles são:
- dados numéricos
- Dados literais ou alfa-numéricos
- Dados lógicos
Dados numéricos
Os dados numéricos se dividem em 2 tipos de dados, Inteiro e Real, com esses dois tipos podemos representar qualquer número.
Números inteiros são:
- -3
- +5
- -138
Números Reais são:
- +0.5
- -0.5
- -66.542
Dados literais ou alfa-numéricos
Dados literais servem para tratamento de textos, um algoritmo pode precisar imprimir algum aviso ou mesmo no nome do usuário. Este tipo de dado pode ser composto por apenas um caracter ou por um conjunto de caracteres, esses conjuntos de caracteres são conhecidos por String.
Os caracteres que normalmente são usamos nos algoritmos são:
- Letras maiúsculas:
- A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z
- Letras minúsculas:
- a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z
- Algarismos:
- 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
- Caracteres de pontuação:
- ; | : | ! | ? | * | ( | ) | \ | / | + | - | = | < | >
Cosntantes Caracter
Caracteres podem aparecer sozinhos, e neste caso são chamados de constante caracter e são representados entre o caracter [apóstrofe] ‘. Abaixo mostramos exemplos de constantes caracter:
Cadeias de Caracter
Cadeias de caracteres são conjuntos de um ou mais caracteres e são cercados pelo caracter [aspas] “. Por exemplo:
- “Linguagem de programação”
- “Qual é o seu nome?”
- “0123456789″
Dados Lógicos
Este tipo de dado é normamente usado em tomadas de decisões, este tipo de dado é conhecido também como Booleano por causa do Geoge Boole o matemático que deu o nome a álgebra booleana.
Os dados lógicos ou Booleano podem somente assumir os valores: Verdadeiro ou Falso
Variáveis
As variáveis são os nomes que damos as posições da memoria, deste modo os programadorees tem mais facilidade em contruir os algoritmos.
Existem algumas regras para a nomeação das variáveis, o nome de uma variável é constituido por uma letra ou um conjunto de caracteres, exemplos de alguns nomes válidos:
- x
- i
- nota1
- nome
O nome de uma variável nunca poderá conter espaços em branco, ter o primeiro caractere como um número ou conter caracteres especiais como @#$%&!
Exemplos de nomes Inválidos:
- primeiro nome
- $dinheiro
- 1nota
Exercicios
Tentem resolver estes exercicios, qualquer dúvida mandem e-mail.
LISTA DE EXERCÍCIOS
1) Construa um FLUXOGRAMA que:
* Leia a cotação do dólar
* Leia um valor em dólares
* Converta esse valor para Real
* Mostre o resultado
2) Desenvolva um FLUXOGRAMA que:
* Leia 4 (quatro) números
* Calcule o quadrado para cada um
* Some todos e números
* Mostre o resultado
3) Construa um FLUXOGRAMA para pagamento de comissão de vendedores de peças, levando-se em consideração que sua comissão será de 5% do total da venda e que você tem os seguintes dados:
* Identificação do vendedor
* Código da peça
* Preço unitário da peça
* Quantidade vendida
4) Desenvolva um FLUXOGRAMA que:
1. Solicite ao usuário que ele digite um número inteiro
2. Faça a leitura do número digitado
3. Registre a leitura feita
4. Imprima o número lido
5. Volte ao passo 1
Quando o usuário digitar o número -99999 (flag), as leituras são encerradas e o fluxograma imprime o total de leituras feita. Faça um teste de mesa para a seguinte seqüência de dados digitados: 0, 45, 34, 19, 56, 7, -99999.
5) Desenvolva um FLUXOGRAMA que:
1. Solicite ao usuário que ele digite um número inteiro
2. Faça a leitura do número digitado
3. Registre a leitura feita
4. Imprima o número lido
5. Volte ao passo 1
O fluxograma deverá ser projetado para somente dez leituras sucessivas. Ao final das leituras o fluxograma imprime o total de leituras feita. Faça um teste de mesa para a seguinte seqüência de dados digitados: 0, 45, 34, 19, 56, 7, -99999, 56, 23, 1.
6) Desenvolva um FLUXOGRAMA que:
1. Solicite ao usuário que ele digite um número inteiro
2. Faça a leitura do número digitado
3. Some cada número lido
4. Registre a leitura feita
5. Imprima o número lido
6. Volte ao passo 1
O fluxograma deverá ser projetado para somente dez leituras sucessivas. Ao final das leituras o fluxograma imprime o soma dos números lidos. Faça um teste de mesa para a seguinte seqüência de dados digitados: 0, 45, 34, 19, 56, 7, -99, 56, 2, 1.
7) Desenvolva um FLUXOGRAMA que obtenha e imprima a seqüência numérica mostrada a seguir. S= { 100, 98, 96, 94, 96, …, 6, 4, 2, 0}.
Quando terminarem esses tentem esses aqui.
LISTA DE EXERCÍCIOS
1. Faça um fluxograma que leia três números, calcule e mostre a multiplicação desses números.
2. Faça um fluxograma que receba dois números, calcule e mostre a divisão do primeiro número pelo segundo. Sabe-se que o segundo numero não pode ser zero, portanto não e necessário se preocupar com validações.
3. Faça um fluxograma que receba que receba duas notas, calcule e mostre a média ponderada dessas notas, considerando peso 2 para a primeira nota e peso 3 para a segunda nota.
4. Faça um fluxograma que receba o preço de um produto, calcule e mostre o novo preço, sabendo-se que o produto sofreu um desconto de 10%.
5. Um funcionário recebe um salário fixo mais 4% de comissão sobre as vendas. Faça um fluxograma. Que receba o salário fixo de um funcionário e o valor de suas vendas, calcule e mostre a comissão e o salário final do funcionário.
6. Faça um fluxograma que receba o peso de uma pessoa, calcule e mostre:
a) O novo peso se a pessoa engordar 15% sobre o peso digitado;
b) O novo peso se a pessoa emagrecer 20% sobre o peso digitado.
7. Faça um fluxograma que receba o peso de uma pessoa em quilos, calcule e mostre esse peso em gramas.
8. Faça um fluxograma que calcule e mostre a área de um trapézio.
Sabe-se que: A = ((base maior + base menor) * altura) /2
9. Faça um fluxograma que calcule e mostre a área de um quadrado. Sabe-se que: A = Lado * Lado
10. Faça um fluxograma que calcule e mostre a área de um losango.
Sabe-se que: A = (diagonal maior * diagonal menor) /2






respondi estas questoe mas nao sei se está correto… gostaria de confirmar a resposta.
obrigado
Por: Daniel em 05/03/2009
às 11:39 am
manda pro meu e-mail que eu dou uma olhada.
Por: elzobrito em 05/03/2009
às 2:42 pm
bem gostaria que você me ajudasse em um exercicio que eu não estou conseguindo resolver
preciso com urgência.
o exercicio é esse:
Faça um algoritmo na forma de fluxograma que calcule a idade de uma pessoa expressa sendo informado o dia, mês e o ano de nascimento(3 variáveis).Considere que a data atual o usuário também vai digitar (3 variáveis).
Por favor me ajude
Obrigada
Por: Thais em 31/03/2009
às 11:36 am
Oi Thays sua resposta está neste POST, fiz um post para explicar como solucionar esse problema de calcular a idade.
http://elzobrito.wordpress.com/2009/04/01/algoritmo-de-calcular-a-idade-fluxograma/
Por: Elzo Brito em 03/04/2009
às 1:10 am
ae amigo.. pode me ajudar com esse algoritmo?
Faça um algoritmo que receba o salário de um funcionário chamado Carlos. Sabe-se que o funcionário João tem um salário equivalente a um terço do salário de Carlos. Carlos aplicará seu salário integralmente na caderna de poupança, que está rendendo 2% ao mês e João aplicará seu salário integralmente no fundo de renda fixa, que está rendendo 5% ao mês. Calcule e mostre a quantidade de meses necessários para que o valor pertencente a João iguale ou ultrapasse o valor pertencente a Carlos.
Eu so to perdido na hora de calcular a quantidade de meses tal..
abs
Tom
Por: Tom em 07/05/2009
às 10:19 am
gostaria de saber como eu posso aprende algoritmo e logica de programação e teste de mesa
Por: robson de sousa em 07/05/2009
às 2:11 pm
pODE ME AJUDAR ??eSCREVER ALGORITMO PARA TRANSFORMAR LETRAS MAIUSCULAS EM MINUSCULAS EM UM LITERAL L. O LITERAL DEVE SER INFORMADO PELO USUARIO.
Por: SANDSRO FERREIRA PRESTES em 27/06/2009
às 4:19 pm
não entendi, explique melhor por favor…
Por: Elzo Brito em 28/06/2009
às 1:45 am
sou surdo ( def auditivo) nao entendi , expliquei melhor claro
2) Desenvolva um FLUXOGRAMA que:
* Leia 4 (quatro) números
* Calcule o quadrado para cada um
* Some todos e números
* Mostre o resultado
Por: fabio casatte em 05/11/2009
às 2:45 pm