Universidade do Estado de Santa Catarina – CCT/UDESC
INTRODUÇÃO A PROGRAMAÇÃO
THOBER CORADI DETOFENO, MSC.
Aula 06
JOINVILLE
2013
Algoritmo
A automação é o processo em que uma tarefa deixa de ser desempenhada pelo homem e passa a ser realizada por máquinas,
sejam estas dispositivos mecânicos, eletrônicos (como os computadores) ou de natureza mista.
Para que a automação de uma tarefa seja bem sucedida é necessário que a máquina que passará a realizá-la seja capaz de
desempenhar cada uma das etapas constituintes do processo a ser automatizado com eficiência, de modo a garantir a
repetibilidade do mesmo. Assim, é necessário que seja especificado com clareza o que deve ser realizado em cada uma das
fases do processo a ser automatizado, bem como a seqüência em que estas fases devem ser realizadas.
Algoritmo 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
Representação de uma solução para um
problema.
Programa Seqüência completa de instruções a serem executadas por um
computador De acordo com um algoritmo.
Ao contrário do que se pode pensar, o conceito de algoritmo não foi criado para satisfazer às necessidades da computação.
Pelo contrário, a programação de computadores é apenas um dos campos de aplicação dos algoritmos. Na verdade, há
inúmeros casos que podem exemplificar o uso (involuntário ou não) de algoritmos para a padronização do exercício de
tarefas rotineiras.
Para que um computador possa desempenhar uma tarefa é necessário que esta seja detalhada passo a passo, numa forma
compreensível pela máquina, utilizando aquilo que se chama de programa. Neste sentido, um programa de computador
nada mais é que um algoritmo escrito numa forma compreensível pelo computador.
Algoritmo
O algoritmo, do ponto de vista computacional, tem um papel fundamental
por ser o elo de ligação entre dois mundos (real e computacional).
A atividade de programação começa com a construção do algoritmo.
Um algoritmo não é a solução do problema,
pois, se assim fosse, cada problema teria
um único algoritmo; um algoritmo é um
caminho para a solução de um problema.
Partes básicas de um Algoritmo
Um algortimo quando programado num computador e
constituido pelo menos das 3 partes, sendo elas:
1. Entrada de dados;
2. Processamento de dados;
3. Saida de dados;
Na parte de entrada, sao fornecidas as informacoes
necessarias para que o algoritmo possa ser
executado. Estas informacoes podem ser fornecidas
no momento em que o programa esta sendo
executado ou podem estar embutidas dentro do
Representações dos Algoritmos
Existem algumas formas de representação de algoritmos:

Descrição Narrativa;

Fluxograma: Representação gráfica.



É necessário aprender a simbologia dos fluxogramas.
Pseudocódigo (Português estruturado): Representação
textual.



A representação gráfica é mais concisa que a
representação textual.
A transcrição para qualquer linguagem de
programação é quase direta.
É necessário aprender as regras do pseudocódigo.
Outros diagramas (ER, UML,...)
Algoritmo – Descrição Narrativa
Nesta forma de representação os algoritmos são expressos diretamente
em linguagem natural. Como exemplo, têm-se os algoritmos seguintes:
Exercícios
Descrição Narrativa
1) Escreva um algoritmo para Fazer um Sanduíche.
2) Escreva um algoritmo para uma Receita de bolo.
3) Escreva um algoritmo para o problema de Troca de um
pneu furado.
4) Escreva um algoritmo para o Calcular a média de um
aluno.
5) Tem-se tres garrafas, com formatos diferentes, uma
cheia ate a boca com capacidade de 8 litros e as outras
duas vazias com capacidades de cinco e tres litros,
respectivamente. Deseja-se separar o conteudo da
primeira garrafa em duas quantidades iguais. Elabore
um algoritmo que consiga realizar a tarefa, sem que se
possa fazer medidas.
Fluxograma
É uma representação gráfica de algoritmos onde formas geométricas
diferentes implicam ações (instruções, comandos) distintos. Tal propriedade
facilita o entendimento das idéias contidas nos algoritmos e justifica sua
popularidade.
Há vários padrões que definem as formas geométricas das figuras que devem
ser usadas para representar cada um dos diversos tipos de instruções; contudo,
nenhum deles se sobressai com relação aos demais no que diz respeito à
aceitação por parte dos usuários.
De modo geral, um fluxograma se resume a um único símbolo inicial, por
onde a execução do algoritmo começa, e um ou mais símbolos finais, que são
pontos onde a execução do algoritmo se encerra. Partindo do símbolo inicial, há
sempre um único caminho orientado a ser seguido, representando a existência
de uma única seqüência de execução das instruções. Isto pode ser melhor
visualizado pelo fato de que, apesar de vários caminhos poderem convergir para
uma mesma figura do diagrama, há sempre um único caminho saindo desta.
Exceções a esta regra são os símbolos finais, dos quais não há nenhum fluxo
saindo, e os símbolos de decisão, de onde pode haver mais de um caminho de
saída (usualmente dois caminhos), representando uma bifurcação no fluxo.
Fluxograma – Notação simplificada
Exemplos de Fluxograma
Fluxograma – Controle de Fluxo
Exemplos de Fluxograma
Exercícios
Faça um fluxograma para as seguintes questões:
1) Obter o resultado da multiplicação de dois números inteiros quaisquer fornecidos pelo
usuário.
2) Aplique um desconto de 30% sobre o valor de um produto, recebido como entrada, e
retorne o resultado da manipulação na saída padrão.
3) Tendo como dados de entrada a distância total (em km) percorrida por um automóvel
e a quantidade de combustível (em litros) consumida para percorrê-la, calcule e
imprima o consumo médio de combustível.
4) Leia dois valores inteiros e apresente a diferenca do maior pelo menor.
5) O sistema de nota de uma instituicao atribui notas aos alunos atraves de conceito.
Sabendo das faixas associadas a cada conceito, faca um fluxograma que leia 3
notas de um aluno, calcule a media e informe a qual conceito a media esta
relacionada.
6) Exibir todos os numeros pares de um a 100.
Pseudocodigo
O pseudocodigo e uma maneira intermediaria entre a
linguagem natural e uma linguagem de programação
de representar um algoritmo. Ela utiliza um conjunto
restrito de palavras-chave, em geral na lingua nativa do
programador, que tem equivalentes nas linguagens de
programacao.
Alem disso, o pseudocodigo nao requer toda a rigidez
sintatica necessaria numa linguagem de programacao,
permitindo que o aprendiz se detenha na logica do
algoritmos e nao no formalismo da sua representacao.
Na medida em que se obtem mais familiaridade com os
algoritmos, então o pseudocodigo pode ser traduzido
para uma linguagem de programacao.
Pseudocodigo
A estrutura geral de um algoritmo é:
algoritmo "<nome do algoritmo>"
var
< declaração de variáveis>
inicio
< lista de comandos>
fimalgoritmo
Exemplo de Pseudocódigo
algoritmo "soma dois numeros"
// Função :
// Autor :
// Data : 30/3/2010
// Seção de Declarações
var
n1, n2, d: inteiro
inicio
// Seção de Comandos
escreval("Digite dois numeros")
leia(n1)
leia(n2)
d<-n1+n2
escreva("A soma eh igual a ", d)
fimalgoritmo
VisuAlg
Métodos de Representação de
Algoritmo
Escrever algoritmos e, por fim, programar, consiste em dividir
qualquer problema em vários passos menores, usando uma ou
mais formas de representação.
Esses passos que compõem o algoritmo são denominados de
instruções.
Todo o trabalho realizado por um computador é baseado na manipulação
das informações contidas em sua memória. Grosso modo, estas
informações poderão ser classificadas em dois tipos:
· As instruções, que comandam o funcionamento da máquina e
determinam a maneira como devem ser tratados os dados. As instruções
são específicas para cada modelo de computador, pois são função do tipo
particular de processador utilizado em sua implementação.
· Os dados propriamente ditos, que correspondem à porção das
informações a serem processadas pelo computador.
Elementos básicos para construção de um Algoritmo
Nome da Variável
As variáveis são elemento de dado cujo valor pode ser modificado
ao longo de sua execução.
Os nomes das variáveis devem começar por uma letra e depois
pode conter letras, números ou underline, até um limite de 30
caracteres. As variáveis podem ser simples ou estruturadas. Não
pode haver duas variáveis com o mesmo nome.
Uma variável representa uma posição na memória e pode ter seu
tipo de dados como inteiro, caractere, real; tamanho (16, 32 bits, ...)
e nome definidos.
A seção de declaração de variáveis começa com a palavra-chave
var, e continua com as seguintes sintaxes:
<lista-de-variáveis> : <tipo-de-dado>
Elementos básicos para construção de um Algoritmo
Nome da Variável
Regra para criar nomes de variáveis.
– Os nomes das variáveis devem representar o que será
guardado dentro dela.
– O primeiro caractere de um nome deverá ser sempre
Alfabético.
– Não podem ser colocados espaços em branco no nome
de variáveis, usar o UNDERSCORE “_”.
– A declaração de uma variável é feita no algoritmo
informando o seu nome, seguido por : e terminado com
o seu tipo.
Elementos básicos para construção de um Algoritmo
Tipo de Dados
Palavra-reservada: logico - define variáveis do tipo booleano, ou seja,
com valor VERDADEIRO ou FALSO.
– Palavra-reservada: caractere – define variáveis do tipo string, ou
seja, cadeia de caracteres.
– Palavra-reservada: inteiro - define variáveis numéricas do tipo
inteiro, ou seja, sem casas decimais.
– Palavra-reservada: real - define variáveis numéricas do tipo real, ou
seja, com casas decimais.
Elementos básicos para construção de um Algoritmo
Constantes e Comando de Atribuição
As cosntantes são valores fixos, tais como números, caractere ou
Lógico. Estes valores não podem ser alterados pelas instruções do
algoritmo, ou seja, é um espaço de memória cujo valor não deve
ser alterado durante a execução do programa.
A atribuição de valores a variáveis é feita com o operador <-. Do seu
lado esquerdo fica a variável à qual está sendo atribuído o valor, e à
sua direita pode-se colocar qualquer expressão (constantes,
variáveis, expressões numéricas), desde que seu resultado tenha
tipo igual ao da variável.
Elementos básicos para construção de um Algoritmo
Palavras-reservadas
São identificadores predefinidos que possuem
significados especiais para o interpretador do
algoritmo.
Elementos básicos para construção de um Algoritmo
Operadores Aritméticos
Elementos básicos para construção de um Algoritmo
Operadores Relacional e Lógico
Exemplos
Exercícios
1. Escreva um algoritmo para calcular o valor de y como
função de x, segundo a função y(x) = 3x + 2, num
domínio real.
2. Escreva um algoritmo para calcular o consumo médio de
um automóvel (medido em Km/l), dado que são
conhecidos a distância total percorrida e o volume de
combustível consumido para percorrê-la (medido em
litros).
3. Para as instruções propostas a seguir, expresse um
algoritmo que pode ser usado em sua solução na forma
de um fluxograma e pseudocódigo. Ao final da
execução do trecho abaixo, quais os valores de A, B e
C?
A
<-1; B<-2; C<-1;
A <-B+1;
B<-B-1;
C<-A+3;
C<-B-3;
A <-C+1;
A=_______ B=________ C=_________
4. O que será mostrado no vídeo durante a
execução deste trecho de programa?
x<-1;
z<-2;
a<-x + z;
b<-x - z;
escreva(“Valor de A: %R”, a);
escreva(“Valor de A-1: %R”, a-1);
5. Escreva um programa que recebe tres inteiros e
escreva na tela a media, a soma, o produto,
usando uma linha para cada resultado.
6.Faça um algoritmo (Descrição Narrativa,
Fluxograma e Pseudocódigo) para calcular o novo
salário de um funcionário com um aumento de
20%.
Elementos básicos para construção de um Algoritmo
Estruturas de Controle de Fluxo
Os algoritmos desenvolvidos até o momento constituem uma
seqüência de ações que sempre são executadas em sua
totalidade indiferente de qual(is) seja(m) o(s) valor(es) da(s)
entrada(s).
Contudo para a resolução de determinados problemas ou para a
execução de determinadas tarefas é necessária a realização
de um conjunto distinto de ações e este conjunto é definido
com base em uma análise da(s) entrada(s).
Um exemplo cotidiano de uma destas situações é um algoritmo
capaz de efetuar o cálculo do imposto de renda devido por
um determinado contribuinte. Neste caso dependendo da
quantidade de dependentes, do valor de sua renda e outras
fatores o cálculo será feito de formas distintas.
Elementos básicos para construção de um Algoritmo
Estruturas de Controle de Fluxo
Em função do que foi mencionado foram criadas as estruturas
de controle de fluxo, as quais são fundamentais para a
construção de algoritmos complexos. Estas permitem que o
programador especifique a seqüência de instruções que será
executada.
1. Instrução condicional simples
Sintaxe:
…
Elementos básicos para construção de um Algoritmo
Estruturas de Controle de Fluxo
Exemplo: Construa o pseudocódigo de um algoritmo para obter
o resultado da divisão de dois números inteiros quaisquer.
algoritmo “exercício”
var n1, n2: inteiro
res: real
inicio
escreva (“Digite o dividendo inteiro: ”)
leia (n1)
escreva (“Digite o divisor inteiro: ”)
leia (n2)
se (n2<>0) entao
res <- n1 / n2
escreva (“Resultado da divisão: ”, res)
fimse
fimalgoritmo
Elementos básicos para construção de um Algoritmo
Estruturas de Controle de Fluxo
Instrução condicional composta
Exemplo
Exercício – Construa o pseudocódigo de um algoritmo para obter o resultado
da divisão de dois números inteiros quaisquer.
algoritmo “execício”
var n1, n2: inteiro
res: real
inicio
escreva (“Digite o dividendo inteiro: ”)
leia (n1)
escreva (“Digite o divisor inteiro: ”)
leia (n2)
se (n2=0) entao
escreva (“Impossível dividir!”)
senao
res <- n1 / n2
escreva (“Resultado da divisão: ”, res)
fimse
fimalgoritmo
Exercícios
1) Elabore um algoritmo que informe se um número inserido pelo usuário é par ou ímpar.
2) Elabore um algoritmo que ordene por ordem crescente dois números inseridos pelo usuário (diferentes).
3) Elabore um algoritmo que ordene por ordem decrescente três números inseridos pelo usuário (diferentes).
4) Elabore um algoritmo que peça ao usuário para fornecer dois números inteiros, obtenha-os do usuário e
imprima o maior deles seguido das palavras "é maior". Se os números forem iguais, imprima a mensagem
"Estes números ao iguais".
5) Elabore um algoritmo que receba três números inteiros diferentes digitados no teclado e imprima a soma, a
média, o produto, o menor e o maior desses números.
6) Escreva um algoritmo que leia cinco números inteiros e então determine e imprima o maior e o menor
inteiro do grupo.
7) Escreva um algoritmo para determinar se um número é maior, menor ou igual a 0 (zero) utilizando a
estrutura de seleção SE.
Faça um algoritmo que leia o nome do aluno e três notas. A partir das informações lidas:
- calcule e mostre a média do aluno;
- verifique qual será o conceito atribuído ao aluno:
- se a média for menor que 5: E
- se a média for maior ou igual que 5 e menor que 6: D
- se a média for maior ou igual que 6 e menor que 7: C
- se a média for maior ou igual que 7 e menor que 9: B
- se a média for maior ou igual que 9 e menor ou igual a 10: A
Faça um algoritmo usando a estrutura Escolha e outro usando SE.
Exercícios
8) Faça um algoritmo para gerar os 10 primeiros termos da seqüência de Fibonacci:
Obs. A partir do 3o termo soma-se os dois anteriores. 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
9) Escreva um algoritmo para calcular o reajuste salarial de uma empresa que possui 100 funcionários, de
acordo com os seguintes critérios:
- os funcionários com salário inferior a 10.000,00 devem ter um reajuste de 55%;
- os funcionários com salário entre 10.000,00 (inclusive) e 25.000,00 (exclusive) devem ter um reajuste de 30%;
- os funcionários com salário superior a 25.000,00 devem ter um reajuste de 20%
10) Uma empresa com 30 funcionários decide presentear seus funcionários com um bônus de Natal, cujo valor
é definido do seguinte modo:
- os funcionários do sexo masculino com tempo de casa superior a 15 anos terão direito a um bônus de 20% de
seu salário;
- as funcionárias com tempo de casa superior a 10 anos terão direito a um bônus de 25% de seu salário; e
- os demais funcionários terão direito a um bônus de 5.000,00.
Elabore um algoritmo para calcular o valor do bônus concedido a cada funcionário e o impacto de tal atitude
no orçamento da empresa (ou seja, o montante total dos bônus concedidos).
11) Faça um programa que leia 10 números e obtenha:a soma dos números; a média dos números; o maior
número; e o menor número.
12) Fazer um algoritmo onde Dada a idade, dizer se é adulto, jovem ou velho.
Download

Algoritmo