Buscar

Aula-Programação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 57 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 57 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 57 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Desenvolvimento de Algoritmos
!
Prof. André Barbosa
Lógica de Programação
É a técnica de encadear pensamentos para atingir determinado objetivo.
Os pensamentos são descritos como uma sequência de instruções, que devem ser seguidas para se cumprir uma determinada tarefa.
Introdução
Lógica de Programação
Instruções tomadas separadas não têm muito sentido; 
Para obtermos o resultado, precisamos colocar em prática o conjunto de todas as instruções, na ordem correta.
Introdução
Algoritmo
Formalmente definido como uma sequência finita de passos que levam a execução de uma tarefa;
É uma receita, uma sequência de instruções que dão cabo de uma meta específica.
Introdução
Fases do Algoritmo
ENTRADA: 
	São os dados de entrada do algoritmo
PROCESSAMENTO: 
	São os procedimentos utilizados para 	chegar ao resultado final
SAÍDA: 
	São os dados já processados
Introdução
Fases do Algoritmo
Analogia com o ser humano
Introdução
Percepções das impressões
sensoriais
Processo de pensamento
Saída do resultado dos processos de pensamento
Exemplo
Imagine o seguinte problema: Calcular a média final de uma turma, onde os alunos realizarão quatro provas: P1, P2, P3 e P4.
A Média Final = 
Introdução
Para montar o algoritmo proposto, faremos três perguntas:
	A) Quais são os dados de entrada?
	B) Qual será o processamento a ser utilizado?
	C) Quais serão os dados de saída?
	A) R: Os dados de entrada são P1, P2, P3 e P4
	B) R: O processamento será somar todos os 
	 dados de entrada e dividi-los por 4 
	C) R: O dado de saída será a média final
Introdução
Fluxogramas
Forma padronizada e eficaz para representar os passos lógicos de um determinado processamento.
Sequência de símbolos, com significado bem definido, portanto, sua principal função é a de facilitar a visualização dos passos de um processamento.
Desenvolvendo Algoritmos
Simbologia para Fluxogramas
Desenvolvendo Algoritmos
Exemplo de Fluxograma
 Qual a saída do 
 fluxograma?
Desenvolvendo Algoritmos
9
Exemplo de 
Fluxograma 
com entrada
manual
Desenvolvendo Algoritmos
Exemplo mais 
sofisticado
Desenvolvendo Algoritmos
Não
Sim
Vamos praticar?
Desenvolva um fluxograma que receba como entrada 3 valores distintos e mostre a soma;
Desenvolva um fluxograma que recebe dois valores como entrada e mostra o maior valor;
Desenvolva um fluxograma que recebe os coeficientes de uma equação do primeiro grau do tipo ax + b = 0 e mostra o valor de x
Desenvolvendo Algoritmos
Vamos avançar o nível?
Um usuário deseja um algoritmo onde possa escolher que tipo de média deseja calcular a partir de 3 notas. Faça um algoritmo que leia as notas, a opção escolhida pelo usuário e calcule a média.
	As opções de média são:
	1 -aritmética 
	2 -ponderada (30%,30%,40%) 
Desenvolvendo Algoritmos
Algoritmos com Visualg 3.0
O Visualg é um programa que permite criar, editar, interpretar e que também executa os algoritmos em português estruturado (portugol) como se fosse um “programa” normal de computador.
É um programa de livre uso e distribuição GRÁTIS, e DOMÍNIO PÚBLICO, usado para o ensino de lógica de programação em várias escolas e universidades no Brasil e no exterior.
O que é Visualg?
Um programa simples e a função ESCREVA
Desenvolvendo Algoritmos Visualg 3.0
ESCREVA(“Olá mundo”)
Um programa simples, mas interativo
Desenvolvendo Algoritmos com Python
nome_usuario : CARACTERE
ESSCREVA(“Digite seu nome: ”)
LEIA(nome_usuario)
ESCREVA(“Olá”, nome_usuario)
Um programa deve conter declarações que especificam de que tipo são as variáveis que ele utilizará e as vezes um valor inicial.
Tipos podem ser por exemplo: inteiros, reais, caracteres, etc. As expressões combinam variáveis e constantes para calcular novos valores.
Variáveis, declarações e expressões
Variável
Uma área da memória do computador para guardar coisas como:
Caracteres ou palavras (conjunto de caracteres – strings)
Números
Booleanos (verdadeiro 
ou falso)
Variáveis, declarações e expressões
No exemplo, temos uma variável chamada nome_usuario
Rotulando variáveis
Aceitos
meu_nome, seu_nome, nome_conta, nome_usuario
contador, numero_total_de_usuarios, percentual_aceito,
taxa
onde_nos_moramos, numero_casa, numero_da_casa,
is_okay, is_correct, status_flag
Não aceitos
1A, Aaaaa, aaAAAaa
Caça, Balão
ALGUMACOISA
Variáveis, declarações e expressões
A função Leia
Variáveis, declarações e expressões
LEIA(nome_usuario)
Declarações de strings (caracter)
A declaração abaixo guarda uma string 
na variável
Variáveis, declarações e expressões
‘Olá’
‘Olá mundo’
‘Olá Pedro’
‘Passa logo 2020’
‘Ser ou não ser, eis a questão’
nome_usuario <- “Pedro”
Declarações de strings no Visualg
Concatenação
Variáveis, declarações e expressões
string_1 <- “Bom”
string_2 <- “ dia”
string_3 <- string_1 + string_2
ESCREVA(string_3)
ESCREVA(“Olá ” + “Mundo”)
Para escrever na linha abaixo, 
utilize a função ESCREVAL
Variáveis, declarações e expressões
ESCREVAL(“Olá”)
ESCREVAL(“Mundo”)
Determinado valor fixo que não se modifica ao longo do tempo, durante a execução de um programa.
Dependendo do tipo, ela pode ser numérica, lógica ou literal.
Constantes
O VisuAlg prevê quatro tipos de dados: inteiro, real, cadeia de caracteres e lógico (ou booleano). As palavras-chave que os definem são as seguintes (observe que elas não têm acentuação):
inteiro: define variáveis numéricas do tipo inteiro, ou seja, sem casas decimais. 
real: define variáveis numéricas do tipo real, ou seja, com casas decimais. 
caractere: define variáveis do tipo string, ou seja, cadeia de caracteres. 
logico: define variáveis do tipo booleano, ou seja, com valor VERDADEIRO ou FALSO. 
Tipos de Dados
A atribuição de valores a variáveis é feita com o operador <-
Alguns exemplos de atribuições, usando as variáveis declaradas acima:
a <- 3
Valor1 <- 1.5
Valor2 <- Valor1 + a
nome_do_aluno <- "José da Silva"
sinalizador <- FALSO
Operador de Atribuição
Operadores Aritméticos
	+,-	Operadores unários, isto é, são aplicados a um único operando. São os operadores aritméticos de maior precedência. Exemplos: -3, +x. Enquanto o operador unário - inverte o sinal do seu operando, o operador + não altera o valor em nada o seu valor.
	\ 	Operador de divisão inteira. Por exemplo, 5 \ 2 = 2. Tem a mesma precedência do operador de divisão tradicional.
	+,-,*,/ 	Operadores aritméticos tradicionais de adição, subtração, multiplicação e divisão. Por convenção, * e / têm precedência sobre + e -. Para modificar a ordem de avaliação das operações, é necessário usar parênteses como em qualquer expressão aritmética.
	MOD ou %	Operador de módulo (isto é, resto da divisão inteira). Por exemplo, 8 MOD 3 = 2. Tem a mesma precedência do operador de divisão tradicional.
	^ 	Operador de potenciação. Por exemplo, 5 ^ 2 = 25. Tem a maior precedência entre os operadores aritméticos binários (aqueles que têm dois operandos).
Operadores Aritméticos
Hierarquia:
Parênteses
Multiplicação ou divisão (o que aparecer primeiro)
Adição ou subtração (o que aparecer primeiro)
Exemplo:
3 * (1 – 2) + 1 + 4 * 2 =
?
6
Por exemplo: "Rio " + " de Janeiro" = "Rio de Janeiro"
Operadores de Caracteres
	+ 	Operador de concatenação de strings (isto é, cadeias de caracteres), quando usado com dois valores (variáveis ou constantes) do tipo "caractere".
Por exemplo: "Rio " + " de Janeiro" = "Rio de Janeiro"
Operadores Relacionais
	=, <, >, <=, >=, <>  	Respectivamente: igual, menor que, maior que, menor ou igual a, maior ou igual a, diferente de. São utilizados em expressões lógicas para se testar a relação entre dois valores do mesmo tipo. 
Exemplos: 3 = 3 ( 3 é igual a 3?) resulta em VERDADEIRO ; "A" > "B" ("A" está depois de "B" na ordem alfabética?) resulta em FALSO.
Operadores Lógicos
	nao 	Operador unário de negação. nao VERDADEIRO = FALSO, e nao FALSO = VERDADEIRO. Tem a maior precedência entre os operadoreslógicos. 
	ou 	Operador que resulta VERDADEIRO quando um dos seus operandos lógicos for verdadeiro. 
	e 	Operador que resulta VERDADEIRO somente se seus dois operandos lógicos forem verdadeiros. 
	xou	Operador que resulta VERDADEIRO se seus dois operandos lógicos forem diferentes, e FALSO se forem iguais.
Tabela-verdade
	1º VALOR	2º VALOR	RESULTADO
	V	V	V
	V	F	F
	F	V	F
	F	F	F
Operador e
TABELA-VERDADE DO CASAMENTO
	Certo	Certa	
	Certo	Errada	
	Errado	Certa	
	Errado	Errada	
	Marido	Esposa	Resultado
Esposa Certa
Esposa Certa
Esposa Certa
Marido Errado
Operadores Lógicos
	1º VALOR	OPERADOR	2º VALOR	RESULTADO
	V	e	V	V
	V	e	F	F
	F	e	V	F
	F	e	F	F
	V	ou 	V	V
	V	ou	F	V
	F	ou	V	V
	F	ou	F	F
	V	nao		F
	F	nao		V
Operadores Lógicos – TABELA-VERDADE
	1º VALOR	2º VALOR	RESULTADO
	V	V	V
	V	F	F
	F	V	F
	F	F	F
Operador e
Operadores Lógicos – TABELA-VERDADE
	1º VALOR	2º VALOR	RESULTADO
	V	V	V
	V	F	V
	F	V	V
	F	F	F
Operador ou
Operadores Lógicos – TABELA-VERDADE
	1º VALOR	RESULTADO
	V	F
	F	V
Operador nao
Estrutura condicional se
se <condição booleana a ser avaliada> entao
	 comandos
fimse
Estrutura condicional se
num : INTEIRO
escreva(“Entre com o número”)
leia(num)
se num < 0 entao
	 escreva(“é negativo”)
fimse
Estrutura condicional se
num : INTEIRO
escreva(“Entre com um número”)
leia(num)
se num > 0 entao
	escreva(num, “é positivo”)
	escreva(num, “ao quadrado é ”, num^2)
fimse
escreva(“Obrigado”)
Trabalhando com o senão numa estrutura se
num : INTEIRO
escreva(“Entre com o número”)
leia(num)
se num < 0 entao
	 escreva(“é negativo”)
senão
	 escreva(“não é negativo”)
fimse
Loops, Estruturas Condicionais
Loops, Estruturas Condicionais
Encadeamento do se
nevando : LOGICO
temp : INTEIRO
Inicio
// Seção de Comandos, procedimento, funções, operadores, etc... 
nevando <- VERDADEIRO
temp <- -1
se temp < 0 entao
	escreval("Está muito frio")
	se nevando entao
		escreval("Coloque umas botas")
		escreval("E peça um chocolate quente")
 fimse
fimse
escreval("Obrigado")
Vamos praticar?
Faça um programa que receba 3 valores inteiros e mostre-os na ordem crescente.
	
Loops, Estruturas Condicionais
Uso do se... senão encadeado
Loops, Estruturas Condicionais
Loops
		enquanto		 para repita
Loops, Estruturas Condicionais
Estrutura enquanto
enquanto <condição booleana> faca
	 comandos
fimenquanto
Trabalhando com a estrutura enquanto
	count : INTEIRO
	
	count <- 0
	escreval(“Iniciando”)
	enquanto count <= 10 faca
		escreva(count, “ ”) //parte do enquanto
		count <- count + 1 //também é parte do enquanto
	fimenquanto
	escreval() //não é parte do enquanto
	escreval(“Fim”)
Estrutura enquanto
Estrutura para
para <variável> de <valor-inicial> ate <valor-limite> [passo <incremento>] faca
 comandos
fimpara
Trabalhando com a estrutura para
	count : INTEIRO
	
	escreval(“Iniciando”)
	para count de 0 até 10 faca
		escreva(count, “ ”) //parte do para
		
	fimpara
	escreval() //não é parte do para
	escreval(“Fim”)
Estrutura para
Estrutura repita
repita
 comandos
ate <expressão-lógica>
Trabalhando com a estrutura repita
	count : INTEIRO
	
	escreval(“Iniciando”)
	repita
		escreva(count, “ ”) //parte do repita
		count <- count + 1 //parte do repita 	
	ate count > 10
	escreval() //não é parte do repita
	escreval(“Fim”)
Estrutura repita
Vamos praticar?
Estrutura de condição se
Faça um programa que recebe como entrada 3 valores. Em seguida, o programa deve mostrar os 3 valores recebidos na ordem decrescente.
Loops (enquanto, para ou repita)
Faça um programa que some todos os números 
pares de 0 a 10000 e mostre o resultado.
	
Loops, Estruturas Condicionais
Vamos desenvolver no Visualg o algoritmo do fluxograma ao lado?
	
Loops, Estruturas Condicionais
Agora altere o  código para receber várias notas, de vários alunos e mostrar a média geral da turma, quantidade de aprovados e quantidade de reprovados
Loops, Estruturas Condicionais

Outros materiais