Buscar

Algoritmos - Introdução

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
*
Informática Básica
Introdução - Algoritmos
*
*
*/32
Tópicos
 Introdução
 Representações de um algoritmos
 Tipos de dados
 Constantes e variáveis
 Linguagem de programação
 Paradigmas de programação
 Operadores aritméticos
 Operadores relacionais
 Exercício
*
*
Introdução
Software → composto por programas. Todo programa é construído por meio de uma linguagem de programação.
 
 Análise: estuda enunciado do problema
 Algoritmo: consiste na descrição do problema e apresentação de suas soluções.
 Codificação: o algoritmo é transformado em códigos da linguagem de programação.
*
*
É uma seqüência lógica de etapas para se realizar determinada atividade.
Descrição passo a passo de um processo completo a ser utilizado na solução de um problema.
Algoritmo
*
*
Um algoritmo é a descrição de uma sequência de passos que deve ser seguida para a realização de uma tarefa.”
Exemplo: somar três números
1. Receber os três números;
2. Somar os três números;
3. Mostrar o resultado obtido.
Algoritmo
*
*
Construção de algoritmos
Compreender o problema a ser resolvido;
Definir os dados de entrada;
Definir que tipo de processamento (cálculos) serão efetuados;
Definir os dados de saída;
Construir o algoritmo;
Testar o algoritmo com simulações.
*
*
Representações de Algoritmos
Descrição Narrativa
Fluxograma
Pseudocódigo
*
*
Representações de Algoritmos
Descrição Narrativa
Consiste em analisar o enunciado do problema e escrever, utilizando linguagem natural, os passos a serem seguidos para sua resolução.
Vantagem: não é necessário aprender nenhum conceito novo.
Desvantagem: a linguagem natural abre espaço para várias interpretações (ambiguidade), o que pode dificultar a transcrição do algoritmo para o programa. 
*
*
Representações de Algoritmos
Descrição Narrativa
Uso da linguagem natural, como nos nossos exemplos.
Existe a inconveniência da má interpretação, originando ambigüidades e imprecisões. 
 
Algoritmo
 afrouxar ligeiramente as porcas;
 suspender o carro;
 retirar as porcas e o pneu;
 colocar o pneu reserva e as porcas;
 abaixar o carro;
 dar o aperto final nas porcas.
 Fim
*
*
Exemplo: sacar dinheiro em caixa eletrônico
1. Ir até um caixa eletrônico;
2. Colocar o cartão;
3. Digitar a senha;
4. Solicitar a quantia desejada;
5. Se o saldo for maior ou igual a quantia desejada,
sacar dinheiro; caso contrário, mostrar mensagem de impossibilidade de saque;
6. Retirar cartão;
7. Sair da agência.
Algoritmo
*
*
Representações de Algoritmos
Fluxograma
Consiste em analisar o enunciado do problema e
escrever, utilizando símbolos gráficos pré-definidos, os passos a serem seguidos para sua resolução.
Vantagem: conhecendo os símbolos, entender um algoritmo escrito em fluxograma é mais simples que entender um algoritmo narrativo;
Desvantagem: é necessário aprender a simbologia dos fluxogramas.
*
*
Representações de Algoritmos
Fluxograma
Uso de formas geométricas distintas produzindo ações distintas. Principais figuras:
 
 Início ou fim do fluxograma.
			Entrada de dados.
			Cálculo de expressões.
		 Saída de resultados.
 Tomada de decisão
			 Fluxo.
 
*
*
Representações de Algoritmos
Início
m1, m2
M ← (m1+m2)/2
m >=5 
“Aprovado”
“Reprovado”
 Fim
 
Cálculo de uma média aritmética com um teste 
*
*
Representações de Algoritmos
Pseudocódigo
Consiste em analisar o enunciado do problema e
escrever, por meio de regras pré-definidas, os passos a serem seguidos para sua resolução.
Vantagem: a passagem do algoritmo para qualquer linguagem de programação é quase imediata, basta conhecer os códigos da linguagem;
Desvantagem: é necessário aprender as regras do pseudocódigo.
*
*
Representações de Algoritmos
Pseudocódigo
Uso de linguagem própria, aproximando-se mais das linguagens de alto nível, chamado, também de pseudolinguagem ou ainda portugol. 
Forma Geral:
Algoritmo <nome do algoritmo> 
 < declaração_de_variáveis > 
Início
 instruções
Fim 
*
*
Tipos de Dados
Uma das principais funcionalidades de um computador é a manipulação de informações 
Por isso, é necessário que haja formas de se trabalhar com diferentes tipos de dados em um programa.
Podemos definir um tipo de dados como um conjunto de objetos que tem em comum o mesmo comportamento diante de um conjunto definido de operações
*
*
Tipos de Dados
Infelizmente as linguagens de programação são limitadas e não podem manipular todos os tipos de dados existentes no mundo real.
Por isso, a construção de algoritmos para computador deve lidar exclusivamente com os tipos definidos nas linguagens de programação
*
*
Tipos de Dados
Os dados são classificados em:
1 - Numéricos: 1500; -230; 23.4; etc.
 Inteiros ou número de ponto fixo ( 1500; -230) 
 Real ou número de ponto flutuante (23.4; -32.6;
 10.0)
*
*
Tipos de Dados
2 - Literais: chamados, também, “alfanuméricos”, “cadeia de caracteres” ou “strings”.
 São sempre representados, nos algoritmos, entre aspas.
Ex.: “UFERSA” 
 “21/03/2006”
*
*
Tipos de Dados
3 - Lógicos: chamados, também, booleanos
São oriundos da lógica matemática ou lógica de Boole (Matemático considerado um dos formuladores da lógica matemática).
Representado por apenas dois valores com significados opostos como 1 e 0 ou Verdadeiro (V) e Falso (F).
*
*
Definem:
a natureza do dado
as operações que podem ser realizadas com o dado 
O espaço a ser ocupado na memória
Declarações:
		a, b, c, maior: real
		x,y: inteiro	
		achou: logico
		texto: caractere
 
 
Tipos
*
*
*
Tipos
*
*
*
Constantes e Variáveis
Em um computador, manipulamos informações que, durante a execução de um programa, ficam armazenadas temporariamente em memória.
Essas informações , num nível maior de abstração, são os elementos pertencentes aos tipos.
Variáveis e constantes são repositórios de elementos pertencentes aos tipos. 
*
*
Constantes e Variáveis
Um algoritmo recebe dados que precisam ser armazenados no computador e utilizados no processamento;
O armazenamento é feito na memória;
Uma variável representa uma área da memória
que armazena um determinado dado;
A variável deve possuir um nome e deve ser
definido que tipo de dado ela pode armazenar;
*
*
Constantes
Constantes: São valores específicos que não se modificam durante a execução de um algoritmo
A declaração de uma constante é feita da seguinte forma:
Constante <identidicador1> = <valor1>; 
 <identidicador2> = <valor2>;
 ... 
 <identidicador N> = <valor N>;
*
*
Variáveis
Variáveis: Variável é uma entidade destinada a guardar dados. Estes dados podem variar durante a execução do algoritmo
A declaração de uma variável é feita da seguinte forma:
Var <lista_de_variáveis1> : <tipo1>; 
 <lista_de_variáveis2> : <tipo2>; 
 ou
<tipo> : <lista_de_variáveis> 
*
*
Entrada e Saída
Algoritmos objetivam transformar informações
Algoritmo = Entrada + Processamento + Saída
Entrada: obtenção de dados provenientes do meio externo
Comando: leia
 Exemplos:
leia (X)
leia (A, NOTA)
*
*
*
Entrada e Saída
Saída: entrega dos resultados ao meio externo
Comandos: escreva ou escreval
Exemplos:
escreva (X)
escreva (B, MEDIA, 2+2)
escreval (“cliente cadastrado com sucesso”)
*
*
*
Atribuição
Aritméticos
Relacionais
Lógicos
Operadores
*
*
*
Operadores atribuição
Visualg: “:=“ ou “← ”
Notação:
x1		 ← 23;
temp	 ←	 x1;
nome	 ←	 “Carlos da
Silva”;
*
*
+ adição 
- subtração
/ divisão
* multiplicação
** potenciação
div divisão inteira. Ex: 5 div 2 = 2 ( o re-
 sultado é apenas o valor inteiro)
mod resto inteiro da divisão. 
 Ex: 5 mod 2 = 1 (o resultado é o res-
 to da divisão) 
Operadores aritméticos
*
*
> Maior que
< Menor que
= igual
>= maior ou igual que
<= menor ou igual que
<> diferente 
Operadores Lógicos
não negação
e conjunção
ou disjunção 
Operadores Relacionais
*
*
Exemplos:
variavel_1	 ← 	2 = 3 // (falso)
variavel_2	 ← 	1.6 <> 5.0 // (verdadeiro)
variavel_3	 ← 	1 > 5 // (falso)
variavel_4	 ← 	(2+ 2) < 5 // (verdadeiro)
variavel_5	 ← 	8 >= 3 // (verdadeiro)
variavel_6	 ← 	1 <= 4 // (verdadeiro)
variavel_7	 ← 	“café” < “expresso” // (verdadeiro)
variavel_8	 ← 	“café” =“café” // (verdadeiro)
Operadores Relacionais
*
*
Dados de entrada: tipo lógico
Resultado: tipo lógico
E (AND), OU (OR), NAO (NOT)
 
Operadores Lógicos
*
*
 
Exemplos:
		variavel_1	← 	verdadeiro E falso // (falso)
variavel_2	←	 falso OU falso //(falso)
variavel_3	← 	NAO cond1 // (verdadeiro) 
variavel_4	← (verdadeiro E falso) OU (5 > 3) // (verdadeiro)
Operadores Lógicos
*
*
Tabela Verdade
*
*
Funções Pré-definidas
*
*
Algoritmos
Algoritmo Media
 Real: n1, n2, media
Início
 Escreva(“Digite as duas notas:”)
 Leia(n1, n2)
 media	 (n1+n2)/2
 Se (media >= 5) então
		Escreva (“APROVADO”)
 Senão
		Escreva (“REPROVADO”)
 Fim_se
Fim
*
*
Exercícios
1 - Calcular uma divisão entre dois números, mas, produzir um alerta em caso de divisão por zero.
2 - Distinguir, entre dois números, qual deles é o maior.
3 - Calcular a média ponderada de três notas, permitindo definir durante a execução os pesos de cada nota.
4 - Calcular a área de um círculo, tendo como entrada o valor do raio, que deve ser positivo.
5 - Calcular as médias de um aluno e informe sua situação, nos padrões da UFERSA.O algoritmo deve calcular e exibir a média parcial e a situação parcial do aluno (aprovado, prova final ou reprovado).
*
Estruturas Condicionais
São estruturas utilizadas para tomada de decisão. Essas estruturas controlam o fluxo da execução do algoritmo permitindo fluxos distintos para determinadas situações.
As principais estruturas são:
SE
SE-SENÃO
ESCOLHA
*
SE
Sintaxe:
Nesta estrutura o conjunto de instruções somente será executado se o teste lógico for VERDADEIRO
Teste Lógico = testes utilizando operadores relacionais ou lógicos (ex.: x > 1, a >= b, y = 20)
Instruções = qualquer sequência de comandos 
SE (TESTE LÓGICO) ENTAO
	INSTRUÇÕES
FIMSE
*
SE
Exemplo 01
Algoritmo “MaiorIdade”
	var idade : Inteiro
Inicio
	escreva(“Qual sua idade?”)
	leia(idade)
	se ( idade > 18 ) entao
		escreval(“ Você possui maior idade!”)
	fimse
Fimalgoritmo 
*
SE
Exemplo 02
Algoritmo “Maior”
	var a,b : Inteiro
Inicio
	leia(a)
	leia(b)
	se ( a > b ) entao
		escreva(a, “é o maior”)
	fimse
Fim 
*
SE
Exemplo 03
Algoritmo “Média”
	var nota1, nota2, nota3, média : Real
Inicio
	escreva(“Quais foram as notas?”)
	leia(nota1)
	leia(nota2)
	leia(nota3)
	media  (nota1+nota2+nota3)/3
	se ( media > 7 ) entao
		escreva(“Aprovado!”)
	fimse
Fimalgoritmo 
*
SE-SENÃO
Sintaxe:
Nesta estrutura se o TESTE LÓGICO for VERDADEIRO será executado o conjunto de INSTRUÇÕES A, se for FALSO será executado o conjunto de INSTRUÇÕES B.
SE (TESTE LÓGICO) ENTAO
	INSTRUÇÕES A
SENAO
	INSTRUÇÕES B
FIMSE
*
SE-SENÃO
Exemplo 01
Algoritmo “MaiorIdade”
	var idade : Inteiro
Inicio
	escreval(“Qual sua idade?”)
	leia(idade)
	se ( idade > 18 ) entao
		escreva(“ Você possui maior idade!”)
	senao
		escreva(“ Você não possui maior idade!”)
	fimse
Fimalgoritmo 
*
SE-SENÃO
Exemplo 02
Algoritmo “Maior”
	var a,b : Inteiro
Inicio
	leia(a)
	leia(b)
	se ( a > b ) entao
		escreva(a, “é o maior”)
	senao
		escreva(b, “é o maior”)
	fimse
Fimalgoritmo 
*
SE-SENÃO
Exemplo 03
Algoritmo “Média”
	var nota1, nota2, nota3, média : Real
Inicio
	escreva(“Quais foram as notas?”)
	leia(nota1)
	leia(nota2)
	leia(nota3)
	média  (nota1+nota2+nota3)/3
	se ( média > 7 ) entao
		escreva(“Aprovado!”)
	senao
		escreva(“Reprovado!”)
	fimse
Fimalgoritmo 
*
SE-SENÃO ANINHADOS
O conjunto de instruções que é executado pode ser qualquer sequência de comando incluindo uma nova estrutura SE-SENAO. 
SE (TESTE LÓGICO 1) ENTAO
	INSTRUÇÕES A
SENAO
	SE (TESTE LÓGICO 2) ENTAO
		INSTRUÇÕES B
	SENAO
		INSTRUÇÕES C
	FIMSE
FIMSE
*
ESCOLHA
Sintaxe
Essa estrutura condicional utiliza uma variável VAR como parâmetro. Para determinados valores dessa variável (caso v1, caso v2, etc.) é executado um conjunto específico de instruções. Existe também um caso OUTROCASO que será executado quando o valor da variável não estiver no intervalo dos casos determinados. 
ESCOLHA (VAR) 
	CASO V1 INSTRUÇÕES A
	CASO V2 INSTRUÇÕES B
	CASO V3 INSTRUÇÕES C
		...
	CASO Vn INSTRUÇÕES N
	 OUTROCASO INSTRUÇÕES X
FIMESCOLHA
*
ESCOLHA
Exemplo 01
Algoritmo “ShowDoMilhão”
	var resp : caractere
Inicio
	escreva(“Qual o nome do cavalo branco de Napoleão?”)
	escreva(“A – Morengo”)
	escreva(“B – Pégasus”)
	escreva(“C – Bucéfalo”) 
	leia(resp)
	escolha(resp)
		caso “A” escreva(“Resposta Correta!”)
		outrocaso escreva(“Resposta Errada!”)
	fimescolha
Fimalgoritmo 
*
ESCOLHA
Exemplo 02
Algoritmo “Operações”
	var a,b : Inteiro
	 resp : Literal
Inicio
	escreva(“Digite dois números:”)
	leia(a)
	leia(b)
	escreva(“A - Adição”)
	escreva(“S - Subtração”)
	escreva(“M – Multiplicação”)
	leia(resp)
	escolha(resp)
		caso “A” escreva(a+b)
		caso “S” escreva(a–b)
		caso “M” escreva(a*b)
		outrocaso: escreva(“Operação Inválida!”)
	fimescolha
Fimalgoritmo 
*
Exercícios
1. Desenvolva um algoritmo para calcular o custo de um estacionamento urbano de acordo com o tipo de veículo. O algoritmo deverá indicar as opções: 
	
	1 – moto – R$ 3,00 p/hora
	2 – carro – R$ 5,00 p/hora
	
	De acordo com a opção escolhida o algoritmo deverá receber a quantidade de horas e calcular o valor total.
*
Exercícios
02. Crie um algoritmo que calcule a média de três notas. O algoritmo deverá apresentar 2 opções para o cálculo da média: aritmética ou ponderada. De acordo com a opção escolhida o respectivo cálculo será realizado.
03. Faça um algoritmo para realizar operações aritméticas entre dois números. O algoritmo deverá receber os dois números e apresentar as opções para cálculo. 
	1 – Soma
	2 – Produto
	3 – Divisão
	4 – Multiplicaçã
*
Exercícios
04. Escrever um algoritmo que lê um conjunto de 4 valores i, a, b, c, onde i é um valor inteiro e positivo e a, b, c, são quaisquer valores reais e os escreva. A seguir:  
 a) Se i = 1 escrever os três valores a, b, c em ordem crescente. b) Se i = 2 escrever os três valores a, b, c em ordem decrescente. c) Se i=3 escrever os três valores a, b, c de forma que o maior entre a, b, c fique dentre os dois.
*
Exercícios
2. Desenvolva um algoritmo para calcular o custo de um estacionamento urbano de acordo com o tipo de veículo. O algoritmo deverá indicar as opções: 
	1 – moto – R$ 3,00 p/hora
	2 – carro – R$ 5,00 p/hora
	De acordo com a opção escolhida o algoritmo deverá receber a quantidade de horas e calcular o valor total.
	
*
Exercícios
	03. Crie um algoritmo que calcule a média de três notas. O algoritmo deverá apresentar 2 opções para o cálculo da média: aritmética ou ponderada. De acordo com a opção escolhida o respectivo cálculo será realizado.
	04. Faça um algoritmo
para realizar operações aritméticas entre dois números. O algoritmo deverá receber os dois números e apresentar as opções para cálculo. 
	1 – Soma
	2 – Produto
	3 – Divisão
	4 – Multiplicação. 
*
Exercícios
	1. Escrever um algoritmo que lê um conjunto de 4 valores i, a, b, c, onde i é um valor inteiro e positivo e a, b, c, são quaisquer valores reais e os escreva. A seguir:  
 	a) Se i=1 escrever os três valores a, b, c em ordem crescente. 
	b) Se i=2 escrever os três valores a, b, c em ordem decrescente. 
	c) Se i=3 escrever os três valores a, b, c de forma que o maior entre a, b, c fique dentre os dois.
*
*
*
*
*
*
*

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais