Buscar

Apresentação ALP

Prévia do material em texto

UNIFACS – Universidade Salvador	 Prof. Carlos Helano	Email:carloshelano@unifacs.br		
Introdução a Programação
Algoritmos e Lógica de Programação
– * –
www.redes.unifacs.br
– * –
Objetivo
Desenvolver a capacidade lógica para construção de algoritmos na resolução de problemas
Apresentar uma visão geral do processo de programação 
– * –
www.redes.unifacs.br
– * –
Bibliografia
FARRER, Harry. Algoritmos estruturados. São Paulo LTC, 1999.
FARRER, Harry. Pascal estruturado. 3 ed Rio de Janeiro LTC, 1989.
FORBELLONE, André L. Lógica de programação. São Paulo: Makron Books, 1993.
– * –
www.redes.unifacs.br
– * –
Conteúdo
Conceitos básicos;
Algoritmos estruturados;
Linguagens de programação;
Estruturas de Controle
Estruturas seqüenciais;
Estruturas condicionais;
Estruturas de repetição;
– * –
www.redes.unifacs.br
– * –
Conteúdo
Estrutura de Dados
Tipos de dados;
Estruturas compostas de dados: vetores e matrizes;
Comandos de Entrada e Saída de Dados
– * –
www.redes.unifacs.br
– * –
Conceitos Básicos
Processamentos de Dados / Algoritmos
o surgimento do PD se deu pela necessidade do homem em resolver problemas
A tarefa do PD consiste em tomar certa informação, processá-la e obter o resultado desejado.
– * –
www.redes.unifacs.br
– * –
Conceitos Básicos
Entrada : Conjunto de informações fornecidas ao computador
Processamento : Transformação dos dados de entrada com o objetivo de obter a saída desejada.
Saída : Resultado desejado. 
– * –
www.redes.unifacs.br
– * –
Conceitos Básicos
Unidade Central de Processamento 
Unidade de Entrada : (Periféricos), Teclado, Mouse, Vídeo
Unidade de Saída : (Periféricos), Teclado, Mouse, Vídeo
Memória : Armazena os dados
Unidade Lógica e Aritmética : Unidade onde são feitos os cálculos
Unidade de Controle : Controla a transferência dos dados
– * –
www.redes.unifacs.br
– * –
Conceitos Básicos
Como utilizar o algoritmo para solução de problemas 
– * –
www.redes.unifacs.br
– * –
Conceitos Básicos
Situação Problema 
Calcular a média de 3 Provas. P1, P2, P3
1 – Identificar as Entradas
			P1, P2, P3 
2 – Processamento
			(P1+P2+P3)/3
3 – Saída
			Média Final
– * –
www.redes.unifacs.br
– * –
Algoritmos estruturados
Definição
Algoritmo : Conjunto de comandos que, obedecidas as estruturas de controle, resultam numa sucessão finita de ações. (Visam um objetivo bem definido) 
– * –
www.redes.unifacs.br
– * –
Algoritmos estruturados
Estruturas de um Algoritmo
1 – Sequencial 	
(Os Comandos serão executados um após o outro)
2 – Condicional	
(Os Comandos só serão executados se uma determinada condição for satisfeita)
3 – Repetitiva
(Os Comandos serão executados enquanto uma determinada condição for satisfeita)
– * –
www.redes.unifacs.br
– * –
Algoritmos estruturados
Regras para um bom Algoritmo
1 – Ações simples e bem definidas
2 – Seqüência ordenada de ações
3 – Seqüência finita de ações
– * –
www.redes.unifacs.br
– * –
Algoritmos estruturados
Exemplo Prático
Desejamos mover todos os discos para outra haste, porem só podemos movimentar um disco de cada vez e um disco maior nunca pode ser colocado sobre o disco menor.
– * –
www.redes.unifacs.br
– * –
Algoritmos estruturados
Fluxograma
Permite a representação gráfica de um algoritmo
Permite que pessoas diversas participem do desenvolvimento. Ou melhor, pessoas de diversas áreas do conhecimento podem contribuir na construção do algoritmo.
– * –
www.redes.unifacs.br
– * –
Algoritmos estruturados
Fluxograma (Símbolos)
– * –
www.redes.unifacs.br
– * –
Estruturas de Controle
1 – Seqüencial
(Os Comandos executados um após o outro)
– * –
www.redes.unifacs.br
– * –
Estruturas de Controle
2 – Condicional
(Os Comandos só serão executados se uma determinada condição for satisfeita)
– * –
www.redes.unifacs.br
– * –
Estruturas de Controle
1 – Repetição
(Os Comandos só serão executados se uma determinada condição for satisfeita)
– * –
www.redes.unifacs.br
– * –
Algoritmos
O Computador utiliza dois conceitos básicos para construir e interpretar algoritmos 
Estrutura de Dados (Manipulação das informações)
Estrutura de Controle (Manipulação das ações)
Seqüencial
Condicional
Repetição
– * –
www.redes.unifacs.br
– * –
Estrutura de Dados
Tipos de dados a serem manipulados 
Numéricos: 
Inteiro 	(Ex: -1; -2; 0; 1; 2; 3)
Real		(Ex: 1,3; 3,0; 3,14; 8,1228)
Não Numéricos
Alfanuméricos (Ex: “CASA”; “Livro”; “18”)
Literal
Caracter
String
Lógicos (Booleano) (Ex: Verdadeiro; Falso)
– * –
www.redes.unifacs.br
– * –
Conceitos
Constante: Representam valores constantes. Não variam no decorrer do algoritmo
Variável: Representam informações que podem ser modificadas no decorrer do algoritmo. A variável possui dois elementos básicos:
Conteúdo: Valor atual contido na variável
Identificador: Nome dado a variável
Variável também é definida como sendo o local na memória onde um determinado valor é armazenado
– * –
www.redes.unifacs.br
– * –
Conceitos
Variável
Conteúdo: Valor atual contido na variável
Identificador: Nome dado a variável
O Conteúdo da variável X é 10
– * –
www.redes.unifacs.br
– * –
Conceitos
Regras para identificadores:
Pode ser formado por um ou mais caracteres sendo o 1º uma letra
Não é permitido o uso de símbolos especiais 
(: , . ´ “ / ) . O caracter “_” é permitido
O identificador deve representar de forma significativa o conteúdo desejado. 
– * –
www.redes.unifacs.br
– * –
Conceitos
Como manipular os dados ?
Declaração de variáveis
Operações
Atribuição
Aritméticas
Relacionais
Lógicas
Comandos de Entrada e Saída
Funções
– * –
www.redes.unifacs.br
– * –
Operações
Declaração de variáveis
Reservar espaço em memória para um determinado tipo de dado.
Declare Nome da variável : Tipo
Ex :
Declare X, Y : Inteiro
Declare Parcela: Real
Declare Nome: Caracter ou Literal
– * –
www.redes.unifacs.br
– * –
Operações
Atribuição
Permite que se forneça um conteúdo a uma certa variável, onde a natureza deste conteúdo tem que ser compatível com o tipo da variável.
Ex:
	X  7
	Nome  “Fulano”
	A  B + C
	A  (B + C) / 2
– * –
www.redes.unifacs.br
– * –
Operações
Operadores Aritméticos
+ -	Soma e Subtração		
Ex : x = 5; y = 2 ; x +y = 7 ; x – y = 3
* /	Multiplicação e Divisão	
Ex : x = 5; y = 2 ; x * y = 10 ; x / y = 2,5
**	Potenciação			
Ex : x = 3; y = 3 ; x ** y = 27 
Div Quociente inteiro de uma divisão	
Ex: x = 9; y = 2 ; x Div y = 4
Mod Resto inteiro de uma divisão	
Ex: x = 9; y = 2 ; x Mod y = 1
– * –
www.redes.unifacs.br
– * –
Operações
Operadores Aritméticos
Prioridades
– * –
www.redes.unifacs.br
– * –
Operações
Operadores Relacionais
> 		Maior que 
< 		Menor que
>= 		Maior ou igual 
<= 		Menor ou igual a
= 		 Igual 
<> 		Diferente
– * –
www.redes.unifacs.br
– * –
Operações
Operadores Lógicos
Not (Não) 
Negação - Negação de uma proposição
And (E)	 
Conjunção - A Conjunção de duas proposições é verdadeira se somente se ambas são verdadeiras
Or (Ou)	 
Disjunção - A Disjunção de duas proposições é verdadeira se pelo menos uma for verdadeira
– * –
www.redes.unifacs.br
– * –
Operações 
Operadores Lógicos
Tabela Verdade
– * –
www.redes.unifacs.br
– * –
Operações
Prioridades entre as Operações
– * –
www.redes.unifacs.br
– * –
Comandos
Comando de Entrada
Leia(Variável)
Comando de Saída
Escreva(Variável)
– * –
www.redes.unifacs.br
– * –
Comandos
Funções
ABS(x)	: Retorna o valor absoluto de x
TRUNCA(x)	: Retorna a parte inteira de um numero fracionário x
ARREDONDA(x): Retorna um numero inteiro por meio de arredondamentoo número fracionário x
QUOCIENTE(x, y)	:Retorna o quociente inteiro da divisão de x por y
RESTO(x, y)	: Retorna o resto inteiro da divisão de x por y
SQRT(x)	: Retorna a raiz quadrada de x
CONCATENAR(a,b)	: Retorna a união das variáveis literais a e b
– * –
www.redes.unifacs.br
– * –
Exercícios
Indique se os identificadores são válidos ou não.
a) Valor		e) JOSE
b)3*4		f) N[1]
c) XYZ		g) NOME_ALUNO
d) “NOTA”	h) SALA-10
– * –
www.redes.unifacs.br
– * –
Exercícios
Indique se os comandos de atribuição são válidos ou não
Sendo :
SOMA, NUM, X	------	Variáveis numéricas
NOME, COR, DIA	------	Variáveis literais
TESTE, COD, TUDO -----	Variáveis lógicas
a) NOME  5		 f) X  X + 1
b) SOMA  NUM + 2 * X	 g) NUM  “*ABC*”
c) TUDO  SOMA		 h) DIA  “SEGUNDA”
d) COR  “PRETO” – 10	 i) SOMA + 2  10
e) NUM  2**2
– * –
www.redes.unifacs.br
– * –
Exercícios
Sendo as seguintes variáveis numéricas : 
P = 2 ; Q = 3 ; R = 12 S = 4,5 . 
Responda qual o valor fornecido por cada expressão aritmética abaixo.
a) 100 * QUOCIENTE(Q,P)+R
b) P * RESTO(R,5) – Q/2
c) SQRT(R + P**2) + ARREDONDA(S)
d) P + ARREDONDA(2,9 + TRUNCA(0,3 + S) * 2)
– * –
www.redes.unifacs.br
– * –
Exercícios
Considerando as seguintes variáveis 
	numéricas: A = 1 ; B = 4,5 ; C = 8
	literais : NOME = “Tânia” ; COR = “Branco”
	lógicas : TESTE = Verdadeiro
Determine os resultados obtidos das seguintes expressões lógicas
a) A = 1 e TESTE	
b) NOME = “Pedro” ou COR <> “Branco”
c) Não TESTE ou RESTO(B,2) = 0,5
d) C < 10 ou TESTE e COR = “Preto”
e) TESTE e não TESTE
– * –
www.redes.unifacs.br
– * –
Resolução de Problemas – (1)
1 – Faça um algoritmo que receba o salário-base de um funcionário, calcule e mostre o salário a receber. Sabendo-se que esse funcionário tem gratificação de 5% sobre o salário-base e paga imposto de 7% também sobre o salário-base.
2 – Elabore um algoritmo que verifique se um dado número inteiro positivo é par ou impar.
3 – Faça um algoritmo que leia 2 valores numéricos e um símbolo. Caso o símbolo seja um dos relacionados abaixo efetue a operação correspondente com os valores.
	“+”	“-”	“*”	“/”
– * –
www.redes.unifacs.br
– * –
Resolução de Problemas – (2)
1 – Faça um algoritmo que calcule a média ponderada de um aluno, a partir de suas 3 notas obtidas no curso. Sabendo-se que a primeira avaliação tem peso 2, a segunda tem peso 4,, a terceira tem peso 4. 
Mostre ao final a mensagem: 
 “A MEDIA FINAL DE .........FOI .......”. Informar também se o aluno foi aprovado, Mostrando a mensagem “APROVADO”, caso a nota final seja maior ou igual a 7,0.
2 – Modifique a questão anterior para informar :
	APROVADO		Caso a nota final seja entre 7 e 10
	RECUPERAÇÃO	Caso a nota final seja entre 5 e 7
	REPROVADO		Caso a nota final seja entre 0 e 5.
3 – Fazer um algoritmo que leia 3 valores inteiros e escreva o menor deles.
– * –
www.redes.unifacs.br
– * –
Resolução de Problemas – (3)
1 – A partir da leitura de um número indeterminado de valores não nulos, determinar e exibir quantos desses valores são positivos e quantos são negativos. Determinar também a soma dos positivos e a soma dos negativos. O último valor a ser lido é zero (0 é o flag).
2 – A partir da leitura de um numero indeterminado de notas, calcular e exibir a média aritmética dessas notas. O flag para indicar o fim das notas é –1.
3 – O mesmo exercício anterior fornecendo adicionalmente a maior e a menor nota lida. 
– * –
www.redes.unifacs.br
– * –
 Teste de Mesa
Interprete o algoritmo abaixo utilizando o teste de mesa e descubra qual o seu objetivo
– * –
www.redes.unifacs.br
Alguns pontos importantes para elaboração de um bom algoritmo.
1 - Identificação do problema : observar o objetivo do problema
2 - Identificação dos dados de entrada
3 - Identificação dos dados de saída
4 - Observar a declaração das variáveis
5 - Observar a organização e estrutura do algoritmo (Blocos de comandos)
6 - Observar se o objetivo foi atingido
7 - Elaboração do teste de mesa 
8 - Elaboração do fluxograma
– * –
 Check Points
*

Continue navegando