Buscar

Algoritmos 2

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 14 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 14 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 14 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

(
Exercícios
 Resolvidos
Algoritmos II
)
Exercícios referentes à aula 01
1. Faça um algoritmo para ler um número inteiro positivo n e, em seguida, calcular e mostrar os n primeiros termos da sequência (1, 3, 6, 10, 15, 21, ...).
algoritmo "Calcula Termos"
 // Função: Algoritmo que calcula n termos da série 1, 3, 6, 10, 15, 21, ...
var
 // Declaração de variáveis
 n, termo, i: inteiro
inicio
 // Lendo a qtde de termos
escreva ("Informe a qtde de termos para a sequência: ")
leia (n)
termo<- 0 // Inicializando a variável termo
escreva ("Sequencia:")
 // Determinando e escrevendo os termos para a sequência
para i de 1 ate n faca
termo<- termo + i
escreva (termo, " ")
fimpara
fimalgoritmo
2. A série de Fibonacci é expressa da seguinte forma: 1, 1, 2, 3, 5, 8, 13, 21, 34, ... Faça um algoritmo para ler um número inteiro e positivo n e, em seguida, calcular e mostrar a série de Fibonacci com n termos.
algoritmo "Calcula Série de Fibonacci"
 // Função: Algoritmo que calcula n termos da série de Fibonacci
var
 // Declaração de variáveis
 n, termo, ant, aux, i: inteiro
inicio
 // Lendo a qtde de termos
escreva ("Informe a qtde de termos para série: ")
leia (n)
 // Inicializando as variáveis
ant<- 0
termo<- 1
escreva ("Série:", termo, " ")
 // Determinando e escrevendo os termos para a sequencia
para i de 2 ate n faca
aux<- termo
termo<- termo + ant
ant<- aux
escreva (termo, " ")
fimpara
fimalgoritmo
Exercícios referentes à aula 02
1. Faça um algoritmo para cadastrar o nome, a população e densidade demográficade uma cidade do estado do Paraná. A seguir, o algoritmo deverá verificar e informar se a cidade cadastrada é ou não a capital do estado.
algoritmo "População"
 // Função: Algoritmo que verifica se uma cidade informada é a capital do Paraná
tipo // Definição do Registro
 Cidade = registro
nome: caractere
populacao: inteiro
densidade: real
fimregistro
var
cdd: Cidade// Declaração de variável do tipo Cidade
inicio
escreva("Informe o nome de uma cidade do Paraná: ")
leia(cdd.nome) // Lendo o nome da cidade
escreva("Informe a população da cidade: ")
leia(cdd.populacao) // Lendo a população da cidade
escreva("Informe a densidade demográfica da cidade: ")
leia(cdd.densidade) // Lendo a densidade demográfica da cidade
 // Verificando se a cidade informada é a capital do estado do Paraná
secdd.nome = "CURITIBA" entao
escreva("A cidade informada é a capital do Paraná")
senao
escreva("A cidade informada não é a capital do Paraná")
fimse
fimalgoritmo
2. Faça um algoritmo para cadastrar 10 produtos de uma loja com os seguintes dados: código, estoque mínimo, estoque atual e preço. A seguir, o algoritmo deverá apresentar o código e o preço dos produtos que contenham o estoque atual menor que o estoque mínimo. 
algoritmo "Produtos de Loja"
 // Função: Algoritmo que apresenta os produtos de uma loja que estão com estoque abaixo do estoque mínimo
tipo // Definicão do Registro
 Produto = registro
codigo: inteiro
estoque_min: inteiro
estoque_atual: inteiro
preco: real
fimregistro
var
 P: vetor[1..10] de Produto // Declaração de um vetor do tipo Produto
 i: inteiro// Declaração de variável para controle da estrutura de repetição
inicio
 // Cadastrando os produtos
para i de 1 ate 10 faca
escreva("Informe o código do produto: ")
leia(P[i].codigo) // Lendo o codigo do produto
escreva("Informe a qtde de unidades para o estoque minimo: ")
leia(P[i].estoque_min) // Lendo o estoque minimo do produto
escreva("Informe a qtde de unidades no estoque atual: ")
leia(P[i].estoque_atual) // Lendo o estoque atual do produto
escreva("Informe o preço do produto: ")
leia(P[i].preco) // Lendo o preço do produto
fimpara
 // Apresentando os produtos com estoque atual inferior ao estoque minimo
escreva("Produtos com estoque atual inferior ao estoque mínimo")
para i de 1 ate 10 faca
se P[i].estoque_atual< P[i].estoque_minentao
escreva("Código:", P[i].codigo)
escreva("Preço:", P[i].preco)
fimse
fimpara
fimalgoritmo
Exercícios referentes à aula 03
1. Faça um algoritmo contendo um procedimento para receber, por parâmetro, um valor inteiro e positivo n informado no módulo principal. Após a chamada, o procedimento deverá calcular e mostrar o fatorial de n (n!).
algoritmo "Calcula Fatorial"
// Função: Algoritmo que calcula o fatorial de um número
procedimento FATORIAL (num: inteiro) // Procedimento que calcula e escreve o fatorial
var
 //Declaração de variáveis locais
fat, i: inteiro
inicio
fat<- 1
para i de 2 ate num faca // Calculando o fatorial
fat<- fat * i
fimpara
escreval ("Fatorial: ", fat)
fimprocedimento
var
 //Declaração de variáveis
 n: inteiro
inicio
 // Lendo o número para o cálculo do fatorial
escreva ("Informe o número: ")
leia (n)
 FATORIAL(n) // Chamada do procedimento para o calculo do fatorial
fimalgoritmo
2. Faça um algoritmo contendo um procedimento para receber, por parâmetro, três valores inteiros informados no módulo principal. O procedimento deverá então determinar o valor intermediário dos três valores informados. O valor intermediário deverá ser apresentado no módulo principal.
algoritmo "Número Intermediário"
// Função: Algoritmo que calcula o número intermediário entre três números
procedimento INTERMEDIARIO (a, b, c: inteiro; var i: inteiro) // Procedimento que calcula o número intermediário
var
 //Declaração de variável local
inicio
se ((a < b) e (a > c)) ou ((a > b) e (a < c)) entao
 i <- a
senao
se ((b < a) e (b > c)) ou ((b > a) e (b < c)) entao
 i <- b
senao
 i <- c
fimse
fimse
fimprocedimento
var
 //Declaração de variáveis
n1, n2, n3, inter: inteiro
inicio
 // Lendo os números
escreva ("Informe o primeiro número: ")
leia (n1)
escreva ("Informe o segundo número: ")
leia (n2)
escreva ("Informe o terceiro número: ")
leia (n3)
 // Chamada do procedimento para o calculo do número intermediario
INTERMEDIARIO(n1, n2, n3, inter)
escrevaL ("Número intermediário: ", inter) // Apresentando o número intermediário
fimalgoritmo
Exercícios referentes à aula 04
1. Faça um algoritmo contendo uma função para calcular o índice de massa corporal (IMC). O IMC é calculado pela seguinte formula:
O peso e altura deverão ser lidos no módulo principal e fornecidos para a função por parâmetros. O resultado deverá ser retornado pela função e apresentado no módulo principal.
algoritmo "IMC"
// Função: Algoritmo que calcula o Indice de Massa Corporal
funcao IMC(p: real; a: real): real // Função que calcula o IMC de uma pessoa
var
res: real // Declaração de variável local
inicio
 // Calcula e retorna o imc
res<- peso / (altura * altura)
retorne res
fimfuncao
var
 // Declaração de variáveis
peso, altura: real
inicio
 // Leitura das informações
escreva("Informe o peso: ")
leia(peso)
escreva("Informe a altura: ")
leia(altura)
escreval("IMC: ", IMC(peso, altura)) // Chamada da função e escrita do resultado
fimalgoritmo
1. Faça um algoritmo contendo uma função para receber, por parâmetro, um valor inteiro e positivo n e retornar o valor de S, obtido pelo seguinte cálculo: 
S = 1/1 + 1/2 + 1/3 + ... + 1/n
algoritmo "Soma Termos"
// Função: Algoritmo que calcula a soma dos termos de uma serie
funcao SOMA(n:inteiro): real // Função que determina os termos da série e efetua a soma
var
 // Declaração de variáveis locais
 s: real
 i: inteiro
inicio
 s <- 0 // Inicializando a variável para a soma
para i de 1 ate n faca
 s <- s + 1 / i // Determinando e somando os termos
fimpara
retorne s // Retornando a soma
fimfuncao
var
 // Declaração de variável
 n: inteiro
inicio
 // Leitura do número de termos
escreva("Informe a quantidade de termos da série: ")
leia(n)
escreval("Soma da série: ", SOMA(n)) // Chamada da função e escrita do resultado
fimalgoritmo
Exercícios referentes à aula 05
1. Faça um algoritmo contendo um procedimento para receber, por parâmetro, três valores inteiros representando um horário expresso em horas, minutos e segundos. O procedimento deverá então converter o horário (horas, minutos e segundos) para apenassegundos. O resultado deverá ser armazenado em uma variável global para ser apresentado no módulo principal do algoritmo.
algoritmo "Conversão Para Segundos"
 // Função: Algoritmo que converte horas, minutos e segundos para segundos
procedimento CONVERTE(h, m, s:inteiro) // Procedimento que realiza a conversão
inicio
ts<- h * 3600 + m * 60 + s // Atribuindo o resultado para uma variável global
fimprocedimento
var
 // Variável global
ts: inteiro
 // Declaração de variáveis locais
 h, m, s: inteiro
inicio
 // Leitura do valores
escreva("Informe o número de horas: ")
leia(h)
escreva("Informe o número de minutos: ")
leia(m)
escreva("Informe o número de segundos: ")
leia(s)
CONVERTE(h, m, s) // Chamada do procedimento
escreval("Horário em segundos: ", ts) // Escrita do resultado
fimalgoritmo
2. Faça um algoritmo contendo um procedimento para calcular o número de lâmpadas necessárias para iluminar um determinado cômodo de uma residência. O procedimento deverá receber, por parâmetro, a potência da lâmpada utilizada (em watts), a largura e o comprimento (em metros) do cômodo. A potência necessária para uma boa iluminação é de 20 watts por metro quadrado. O resultado deverá ser armazenado em uma variável global e apresentado no módulo principal.
algoritmo "Calcula Lâmpadas"
 // Função: Algoritmo que calcula a qtde de lâmpadas para iluminar um cômodo
procedimento LAMPADAS(p: inteiro; l, c: real) // Procedimento que determina o número de lâmpadas
inicio
nl<- (l * c * 20) / p // Atribuindo o resultado para uma variável global
fimprocedimento
var
 // Variável global
nl: real
 // Declaração de variáveis locais
potencia: inteiro
largura, comprimento: real
inicio
 // Leitura do valores
escreva("Informe a potência da lâmpada a ser utilizada: ")
leia(potencia)
escreva("Informe a largura do cômodo: ")
leia(largura)
escreva("Informe o comprimento do cômodo: ")
leia(comprimento)
LAMPADAS(potencia, largura, comprimento) // Chamada do procedimento
escreval("Número de lâmpadas: ", nl) // Escrita do resultado
fimalgoritmo
Exercícios referentes à aula 06
1. Faça um algoritmo contendo uma função recursiva para calcular a soma dos números pares do intervalo de 0 a n. O módulo principal do algoritmo deverá fazer a leitura de n e apresentar o resultado. 
algoritmo "Soma Pares"
// Função: Algoritmo que cálcula a soma dos valores pares de 0 a 10
funcao SOMA(n: inteiro): inteiro // Função que soma dos valores pares
inicio
se n = 0 entao
retorne(0)
senao
retorne n + SOMA(n-2) // Recursão
fimse
fimfuncao
var
 // Declaração de variáveis
 n, res: inteiro
inicio
escreva("Informe o valor: ")
leia(n) // Lendo o valor
se n mod 2 <> 0 entao // Se o valor for impar altero para o par anterior mais próximo
 n <- n - 1
fimse
res<- SOMA(n) // Chamada da função recursiva
escreval("Soma dos pares de 0 a 10:", res) // Escrita dos resultados
fimalgoritmo
//Pilha de Recursão
//soma(10)
//10 + soma(8) => 30
// 8 + soma(6) => 20
// 6 + soma(4) => 12
// 4 + soma(2) => 6
// 2 + soma(0) => 2
// 0
2. Faça um algoritmo contendo uma função recursiva para calcular e mostrar on-ésimotermo da sequência: 1, 3, 6, 10, 15, 21, ... O valor de n deverá ser lido no módulo principal.
algoritmo "Calcula Enésimo Termo"
// Função: Algoritmo que cálculan-ésimo termo da série 1, 3, 6, 10, 15, 21, ...
funcao TERMO(n: inteiro): inteiro // Função que calcula o termo
inicio
se n = 0 entao
retorne(0)
senao
retorne n + TERMO(n-1)// Recursão
fimse
fimfuncao
var
 // Declaração de variável
 n: inteiro
inicio
 // Leitura da qtde de termos
escreva("Informe o número de termos: ")
leia(n)
escreval("Enésino termo da série:", TERMO(n)) // Chamada da função recursiva
fimalgoritmo
//Exemplo de Pilha de Recursão
//Termo(5)
// 5 + termo(4) => 15
// 4 + termo(3) => 10
// 3 + termo(2) => 6
// 2 + termo(1) => 3
// 1 + termo(0) => 1
// 0
Exercícios referentes à aula 07
1. Faça um algoritmo para ler, em um arquivo, as informações referentes aos produtos de uma loja de informática cadastrados com os seguintes dados: código, descrição, quantidade em estoque e preço da unidade. A seguir, o algoritmo deverá apresentar o código, a descrição e o preço dos produtos commais de 100 unidades em estoque.
algoritmo "Produtos de Loja"
 // Função: Algoritmo que apresenta o produto com maior unidades em estoque de uma loja
tipo // Definicão do Registro
 Produto = registro
codigo: inteiro
descricao: caractere
estoque: inteiro
preco: real
fimregistro
var
 LOJA arquivo de Produto // Declaração do arquivo
prod: Produto// Declaração de variável do tipo registro
inicio
abra LOJA leitura // Abrindo o arquivo
 // Percorrendo todos os registros do arquivo
repita
LOJA.leia(prod) // Lendo um registro referente a um produto do arquivo
seprod.estoque> 100 entao // Verificando se o produto possui mais de 100 unidades em estoque
 // Apresentando as informações dos produtos com mais de 100 unidades em estoque
escreva("Código:", prod.codigo)
escreva("Descrição:", prod.descricao)
escreva("Preço:", prod.preco)
fimse
ate LOJA EOF // Verificando final do arquivo
feche LOJA // Fechando o arquivo
fimalgoritmo
2. Faça um algoritmo para ler, em um arquivo, as informações referentes a turma de alunos de uma disciplina. O arquivo contém cadastrados os seguintes dados: número de matrícula, nome do aluno, nota 01, nota 02, nota 03, nota 04. Durante a leitura, o algoritmo deverá calcular a média final de cada aluno e então escrever seus dados em outro arquivo, caso ele tenha sido aprovado. Para a aprovação é necessário que o aluno tenha obtido uma média igual ou superior a 6,0. Os alunos não aprovados deverão ser desconsiderados.
algoritmo "Alunos Aprovados"
 // Função: Algoritmo que apresenta, em um arquivo de saída, os alunos aprovados em uma disciplina
tipo // Definicão do Registro
 Aluno = registro
matricula: inteiro
nome: caractere
n1, n2, n3, n4: real
fimregistro
var
 DISCIPLINA arquivo de Aluno // Declaração do arquivo de entrada
 APROVADOS arquivo de Aluno // Declaração do arquivo de saída
aln: Aluno// Declaração de variável do tipo registro
media: real
inicio
abra DISCIPLINA leitura // Abrindo o arquivo de entrada
abra APROVADOS escrita // Abrindo o arquivo de saída
 // Percorrendo todos os registros do arquivo de entrada
repita
DISCIPLINA.leia(aln) // Lendo um registro referente a um aluno
media<- (aln.n1 + aln.n2 + aln.n3 + anl.n4) / 4 // Calculando a média do aluno
se media >= 6.0 entao // Verificando se o aluno está aprovado
APROVADOS.escreva(aln) // Escrevendo no arquivo de saída o registro do aluno aprovado
fimse
ate DISCIPLINA EOF // Verificando final do arquivo de entrada
feche DISCIPLINA // Fechando o arquivo de entrada
feche APROVADOS // Fechando o arquivo de saída
fimalgoritmo

Outros materiais