O Scratch é um ferramenta que pode ser usado para conduzir o aluno iniciante à compreensão dos elementos fundamentais da programação de computadores. Este software utiliza de elementos gráficos para representar as principais estruturas de programação, assim e outros eventos necessários para execução de operações em um ambiente totalmente interativo e de fácil compreensão e utilização.
O software pode ser obtido em seu site oficial, na sua página de download, onde também pode ser encontrado um pequeno tutorial para instalação. O módulo de ajuda conta também com um completo guia de referência e outras informações úteis.
Mais Informações:
Mostrando postagens com marcador Programação. Mostrar todas as postagens
Mostrando postagens com marcador Programação. Mostrar todas as postagens
quarta-feira, 16 de janeiro de 2013
quarta-feira, 22 de fevereiro de 2012
Algoritmos com o VisuAlg
O VisuAlg é uma ferramenta muito útil para quem está iniciando seus aprendizados em Lógica Computacional ou construção de Algoritmos Computacionais. Criada pela Apoio Informática, permite que o aluno iniciante possa digitar os comandos em Português e ver seu algoritmo funcionando, além de possuir recursos como simulação da "tela" do computador, visualização de variáveis, "breakpoints", ajuda on-line, impressão dos fontes e outras características que auxiliam o aprendizado das técnicas de programação.
A versão 2.0 pode ser encontrada no site do Baixaki. A versão mais atualizada é a 2.5 e pode ser encontrada no site Guanabara Info.
Alguns manuais sobre o VisuAlg podem ser encontrados nos links a seguir:
A versão 2.0 pode ser encontrada no site do Baixaki. A versão mais atualizada é a 2.5 e pode ser encontrada no site Guanabara Info.
Alguns manuais sobre o VisuAlg podem ser encontrados nos links a seguir:
Marcadores:
Algoritmos,
Objetos de Aprendizagem,
Programação
domingo, 25 de julho de 2010
Algoritmo da Avaliação Substitutiva - 2010/2
Escreva um algoritmo que leia o número de andares de um prédio e, a seguir, para cada andar do
prédio, leia o número de pessoas que entraram e saíram do elevador. Considere que:
Uma solução possível usando codificação para Visualg.
var
...i, andares, dentro, entram, saem, entraram, sairam, sair: inteiro
inicio
...saem <- 0
...dentro <- 0
...entraram <- 0
...leia "Andares: ", andares
...para i de 1 ate andares faca
......escreva i, "o Andar"
......leia "Entrando: ", entram
......entraram <- entraram + entram
......se i <> 1 entao
.........leia "Saindo: ", saem
.........sairam <- sairam + saem
......fimse
......dentro <- dentro + ( entram - saem )
......escreva "Dentro: ", dentro
......se dentro > 15 entao
.........sair <- dentro - 15
.........escreva "Excesso de passageiros. Devem sair ", sair
.........dentro <- dentro - sair
.........sairam <- sairam - sair
......fimse
...fimpara
...escrever dentro, sairam, entraram
fimalgoritmo
prédio, leia o número de pessoas que entraram e saíram do elevador. Considere que:
- O elevador está vazio e está subindo.
- Os dados se referem a apenas uma subida do elevador e que o número de pessoas dentro do elevador será sempre maior ou igual a zero.
- Se o número de pessoas, após a entrada e saída, for maior que 15, deve ser mostrada a mensagem "Excesso de passageiros. Devem sair X", sendo X o número de pessoas que devem sair do elevador, de modo que seja obedecido o limite de 15 passageiros.
__________________________________
Uma solução possível usando codificação para Visualg.
var
...i, andares, dentro, entram, saem, entraram, sairam, sair: inteiro
inicio
...saem <- 0
...dentro <- 0
...entraram <- 0
...leia "Andares: ", andares
...para i de 1 ate andares faca
......escreva i, "o Andar"
......leia "Entrando: ", entram
......entraram <- entraram + entram
......se i <> 1 entao
.........leia "Saindo: ", saem
.........sairam <- sairam + saem
......fimse
......dentro <- dentro + ( entram - saem )
......escreva "Dentro: ", dentro
......se dentro > 15 entao
.........sair <- dentro - 15
.........escreva "Excesso de passageiros. Devem sair ", sair
.........dentro <- dentro - sair
.........sairam <- sairam - sair
......fimse
...fimpara
...escrever dentro, sairam, entraram
fimalgoritmo
Marcadores:
Disciplinas,
Programação
quarta-feira, 14 de julho de 2010
Avaliação Substitutiva e Resultados
O artigo 111 do Regulamento de Graduação da UFPA estabelece que "A Avaliação Substitutiva é uma oportunidade oferecida ao discente que não obteve conceito à aprovação na atividade curricular, mas com frequência mínima de setenta e cinco por cento". Com isso, observando os conceitos e frequências dos alunos da turma de Programação de 2º período de 2010, informo que os alunos da lista a seguir poderão solicitar tal Avaliação. A referida avaliação será realizada na próxima sexta-feira, após a entrega de resultados da última avaliação; e terá como conteúdo, todo o apresentado durante o período.
AZAURI DOS SANTOS FIGUEIRA
BENNY ALVES DOS SANTOS
CAMILA LORENA DE SOUSA COSTA
DARLAN FERREIRA FERREIRA
GRACIELE CASTRO MEIRELES
KENNEDY WILDSON FIGUEIRA LAURIDO
NEIVA ROSANA GOMES DOS SANTOS
PAULA ANDREA VIANA FERNANDES
SAMUEL KEYTON PEREIRA
THIAGO LUIS DE MELO ANDRADE
WALMIR ALVES DOS SANTOS
Aproveito também para informar que:
Lista de Alunos
AZAURI DOS SANTOS FIGUEIRA
BENNY ALVES DOS SANTOS
CAMILA LORENA DE SOUSA COSTA
DARLAN FERREIRA FERREIRA
GRACIELE CASTRO MEIRELES
KENNEDY WILDSON FIGUEIRA LAURIDO
NEIVA ROSANA GOMES DOS SANTOS
PAULA ANDREA VIANA FERNANDES
SAMUEL KEYTON PEREIRA
THIAGO LUIS DE MELO ANDRADE
WALMIR ALVES DOS SANTOS
Aproveito também para informar que:
- Os alunos que quiserem receber o resultado da última avaliação, assim como o seu conceito final, deverão comparecer em sala de aula nesta sexta, as 19:00 hs.
- De forma geral, avalio o rendimento geral da turma como satisfatório, já que foram 10 conceitos BOMs, 27 REGulares, 11 INSuficientes aptos para avaliação substitutiva, e apenas 5 INSuficientes já reprovados.
Marcadores:
Disciplinas,
Programação
segunda-feira, 12 de julho de 2010
Algoritmo da Avaliação Final - 2010/2
A sequência de Fibonacci é caracterizada pelo seguinte:
Uma solução possível usando codificação para Visualg. Observa-se que existem várias soluções, usando, ou não, um vetor para a sequência; e a solução com o vetor foi usada apenas para demonstração de uso, já que na maioria dos casos é desnecessário. Para efeito de avaliação serão considerados os seguintes elementos:
...declare fibonacci[ 30 ], multi[ 30 ], i, n, t, soma, media: real
inicio
...n <- 0
...i <- 3
...fibonacci[ 1 ] <- 0
...fibonacci[ 2 ] <- 1
...enquanto i <= 30 faca
......fibonacci[ i ] <- fibonacci[ i - 1 ] + fibonacci[ i - 2 ]
......t <- fibonacci[ i ]
......se t mod 17 = 0 entao
.........n <- n + 1
.........multi[ n ] <- fibonacci[ i ]
.........soma <- soma + multi[ n ]
......fimse
......i <- i + 1
...fimenquanto
...se n > 0 entao
......i <- n
......enquanto i >= 1 faca
.........escreva multi[ i ]
.........i <- i - 1
......fimenquanto
......media <- soma / n
......escreva media
...senao
......escreva "Não existem múltiplos"
...fimse
fimalgoritmo
- O primeiro numero é sempre 0.
- O segundo numero é sempre 1.
- Os próximos números são o resultado da soma de seus dois predecessores.
- Exemplo: 0, 1, 1, 2, 3, 5, 8, 13, ...
____________________________
Uma solução possível usando codificação para Visualg. Observa-se que existem várias soluções, usando, ou não, um vetor para a sequência; e a solução com o vetor foi usada apenas para demonstração de uso, já que na maioria dos casos é desnecessário. Para efeito de avaliação serão considerados os seguintes elementos:
- Laço de controle de processamento.
- Cálculo dos números de Fibonacci.
- Calculo dos múltiplos de 17 e da média destes.
- Exibição dos Resultados.
- Controles de saída dos dados.
...declare fibonacci[ 30 ], multi[ 30 ], i, n, t, soma, media: real
inicio
...n <- 0
...i <- 3
...fibonacci[ 1 ] <- 0
...fibonacci[ 2 ] <- 1
...enquanto i <= 30 faca
......fibonacci[ i ] <- fibonacci[ i - 1 ] + fibonacci[ i - 2 ]
......t <- fibonacci[ i ]
......se t mod 17 = 0 entao
.........n <- n + 1
.........multi[ n ] <- fibonacci[ i ]
.........soma <- soma + multi[ n ]
......fimse
......i <- i + 1
...fimenquanto
...se n > 0 entao
......i <- n
......enquanto i >= 1 faca
.........escreva multi[ i ]
.........i <- i - 1
......fimenquanto
......media <- soma / n
......escreva media
...senao
......escreva "Não existem múltiplos"
...fimse
fimalgoritmo
Marcadores:
Disciplinas,
Programação
terça-feira, 29 de junho de 2010
Próxima Avaliação de Programação
Atendendo algumas solicitações (inclusive as relacionadas ao jogo da seleção) e com o objetivo de dar um maior tempo para o estudo e desenvolvimento de exercícios de algoritmos, estou adiando a nossa próxima avaliação da disciplina de Programação, que seria realizada no dia 02/07, e agora está sendo marcada para o dia 09/07.
Marcadores:
Disciplinas,
Programação
Mais Exercícios de Programação
1º - Dado um vetor de 10 posições do tipo literal faça uma algoritmo que permita que o usuário digite 10 letras, e que estas letras sejam colocadas nas respectivas posições dentro do vetor. O algoritmo no entanto não poderá permitir que seja digitada uma letra menor (ordem alfabética crescente) que a letra que foi digitadas anteriormente, ou seja a letra que será colocada na posição 2 deverá ser maior ou igual que a letra colocada na posição 1, a letra colocada na posição 3 deverá ser maior que a letra digitada para a posição 2, e assim sucessivamente até o final do vetor. A primeira letra poderá ser digitada livremente pelo usuário sendo que a regra acima somente se aplica as letras que forem colocadas da segunda posição em diante.
var
...i: inteiro
...declare letras[ 10 ]: literal
inicio
...leia letras[ 1 ]
...i <- 2
...enquanto i <= 10 faca
......leia letras[ i ]
......se letras[ i ] < letras[ i - 1 ] entao
.........escreva "Letra inválida: Menor que a anterior..."
.........i <- i - 1
......fimse
......i <- i + 1
...fimenquanto
fimalgoritmo
2º - Um número de CPF é formado por 9 dígitos, mas 2 dígitos verificadores que ficam no final. Estes dígitos verificadores são calculados de acordo com os outros 9 dígitos do CPF e servem para verificar a validade do CPF.
Apresentamos aqui uma forma simplificada para o calculo destes dígitos: Somar os produtos de cada um dos dígitos do CPF, pela sua respectiva posição, e pegar o resto da divisão inteira desta soma por 11. este resultado será o digito verificador 1. Para calcular o digito verificador 2 , repetir o processo, somente alterando a multiplicação dos dígitos pela sua posição, de forma que as posições fiquem invertidas.
Faça um algoritmo capaz de, uma vez informado os 9 dígitos de um CPF qualquer, informar os 2 dígitos verificadores deste CPF.
var
...i: inteiro
...declare dv1, dv2, cpf: inteiro
inicio
...dv1 <- 0
...dv2 <- 0
...i <- 1
...enquanto i < 10 faca
......leia cpf
......dv1 <- dv1 + i * cpf
......dv2 <- dv2 + ( 10 - i ) * cpf
......i <- i + 1
...fimenquanto
...dv1 <- dv1 mod 10
...dv2 <- dv2 mod 10
...escreva dv1
...escreva dv2
fimalgoritmo
Observações.
var
...i: inteiro
...declare letras[ 10 ]: literal
inicio
...leia letras[ 1 ]
...i <- 2
...enquanto i <= 10 faca
......leia letras[ i ]
......se letras[ i ] < letras[ i - 1 ] entao
.........escreva "Letra inválida: Menor que a anterior..."
.........i <- i - 1
......fimse
......i <- i + 1
...fimenquanto
fimalgoritmo
2º - Um número de CPF é formado por 9 dígitos, mas 2 dígitos verificadores que ficam no final. Estes dígitos verificadores são calculados de acordo com os outros 9 dígitos do CPF e servem para verificar a validade do CPF.
Apresentamos aqui uma forma simplificada para o calculo destes dígitos: Somar os produtos de cada um dos dígitos do CPF, pela sua respectiva posição, e pegar o resto da divisão inteira desta soma por 11. este resultado será o digito verificador 1. Para calcular o digito verificador 2 , repetir o processo, somente alterando a multiplicação dos dígitos pela sua posição, de forma que as posições fiquem invertidas.
Faça um algoritmo capaz de, uma vez informado os 9 dígitos de um CPF qualquer, informar os 2 dígitos verificadores deste CPF.
var
...i: inteiro
...declare dv1, dv2, cpf: inteiro
inicio
...dv1 <- 0
...dv2 <- 0
...i <- 1
...enquanto i < 10 faca
......leia cpf
......dv1 <- dv1 + i * cpf
......dv2 <- dv2 + ( 10 - i ) * cpf
......i <- i + 1
...fimenquanto
...dv1 <- dv1 mod 10
...dv2 <- dv2 mod 10
...escreva dv1
...escreva dv2
fimalgoritmo
Observações.
- Em 2 dias as respostas serão acrescentadas a esta postagem.
- Quaisquer dúvidas devem ser especificadas através de comentários a esta postagem, não sendo respondido nenhum questionamento via e-mail.
- O enunciado da 2ª questão especifica resto da divisão por 11, o que daria valores de 0 a 10, e cada dígito verificador deve ser de 0 a 9. Com isso, acho que houve um erro no enunciado, devendo o valor 11 ser substituído por 10.
Marcadores:
Disciplinas,
Programação
terça-feira, 22 de junho de 2010
Algoritmo da 2ª Avaliação - 2010/2
Um curso de Sistemas de Informação calcula o conceito dos alunos da turma de Programação da seguinte forma:
Observa-se ainda que, após 60 horas de aula, o aluno é considerado aprovado se sua frequência for maior que 75% e o seu conceito não for Insuficiente.
Faça um algoritmo que permita a digitação dos nomes, suas respectivas notas nas 3 avaliações e número de faltas; e que ao serem digitados os dados de cada aluno seja informado o conceito e a frequência do mesmo. Após a digitação dos dados do último aluno, o algoritmo deverá informar a quantidade de alunos reprovados, a quantidade de alunos com conceito Excelente, e a média geral da turma.
Como não foi especificado o número de alunos da turma, o algoritmo deverá solicitar dados enquanto o nome do aluno digitado seja diferente de "FIM".
Uma solução possível usando codificação para Visualg. Para efeito de avaliação serão considerados os seguintes elementos:
...nome: literal
...nota1, nota2, nota3: real
...faltas, nrAlunos, nrReprovados, nrExcelentes: inteiro
...media, frequencia, mediaGeral: real
inicio
...mediaGeral <- 0
...nrAlunos <- 0
...nrReprovados <- 0
...nrExcelentes <- 0
...leia nome
...enquanto nome <> "fim" faca
......leia nota1
......leia nota2
......leia nota3
......leia faltas
......media <- ( nota1 + nota2 + nota3 ) / 3
......frequencia <- ( 60 - faltas ) / 60 * 100
......mediaGeral <- mediaGeral + media
......nrAlunos <- nrAlunos + 1
......se media < 5 entao
.........escreva "Reprovado"
......nrReprovados <- nrReprovados + 1
......senao
.........se frequencia > 75 entao
............se media < 7 entao
...............escreva "Regular"
............senao
...............se media < 9 entao
..................escreva "Bom"
...............senao
..................escreva "Excelente"
...............fimse
............fimse
.........senao
............escreva "Reprovado por Falta"
.........fimse
.........se media >= 9 entao
............nrExcelentes <- nrExcelentes + 1
.........fimse
......fimse
......leia nome
...fimenquanto
...se nrAlunos <> 0 entao
......escreva "Media Geral: ", mediaGeral / nrAlunos
......escreva "Nr de Reprovados: ", nrReprovados
......escreva "Nr de Excelentes: ", nrExcelentes
...senao
......escreva "Inserir Pelo Menos os Dados de 1 Aluno"
...fimse
fimalgoritmo
- Insuficiente: Aqueles com Médias inferiores a 5,0;
- Regular: Aqueles com Médias variando de 5,0 a 6,9;
- Bom: Aqueles com Médias variando de 7,0 a 8,9;
- Excelente: Aqueles com Médias entre 9,0 e 10,0; inclusive.
Observa-se ainda que, após 60 horas de aula, o aluno é considerado aprovado se sua frequência for maior que 75% e o seu conceito não for Insuficiente.
Faça um algoritmo que permita a digitação dos nomes, suas respectivas notas nas 3 avaliações e número de faltas; e que ao serem digitados os dados de cada aluno seja informado o conceito e a frequência do mesmo. Após a digitação dos dados do último aluno, o algoritmo deverá informar a quantidade de alunos reprovados, a quantidade de alunos com conceito Excelente, e a média geral da turma.
Como não foi especificado o número de alunos da turma, o algoritmo deverá solicitar dados enquanto o nome do aluno digitado seja diferente de "FIM".
__________________________________
Uma solução possível usando codificação para Visualg. Para efeito de avaliação serão considerados os seguintes elementos:
- Laço de controle de leituras e processamento.
- Leitura de dados dos alunos.
- Calculo das médias e frequência.
- Calculo dos conceitos, número de alunos reprovados e com conceito excelente.
- Controle da saída dos dados pós leituras.
...nome: literal
...nota1, nota2, nota3: real
...faltas, nrAlunos, nrReprovados, nrExcelentes: inteiro
...media, frequencia, mediaGeral: real
inicio
...mediaGeral <- 0
...nrAlunos <- 0
...nrReprovados <- 0
...nrExcelentes <- 0
...leia nome
...enquanto nome <> "fim" faca
......leia nota1
......leia nota2
......leia nota3
......leia faltas
......media <- ( nota1 + nota2 + nota3 ) / 3
......frequencia <- ( 60 - faltas ) / 60 * 100
......mediaGeral <- mediaGeral + media
......nrAlunos <- nrAlunos + 1
......se media < 5 entao
.........escreva "Reprovado"
......nrReprovados <- nrReprovados + 1
......senao
.........se frequencia > 75 entao
............se media < 7 entao
...............escreva "Regular"
............senao
...............se media < 9 entao
..................escreva "Bom"
...............senao
..................escreva "Excelente"
...............fimse
............fimse
.........senao
............escreva "Reprovado por Falta"
.........fimse
.........se media >= 9 entao
............nrExcelentes <- nrExcelentes + 1
.........fimse
......fimse
......leia nome
...fimenquanto
...se nrAlunos <> 0 entao
......escreva "Media Geral: ", mediaGeral / nrAlunos
......escreva "Nr de Reprovados: ", nrReprovados
......escreva "Nr de Excelentes: ", nrExcelentes
...senao
......escreva "Inserir Pelo Menos os Dados de 1 Aluno"
...fimse
fimalgoritmo
Marcadores:
Disciplinas,
Programação
Exercícios de Programação
Com o objetivo de melhor preparar os alunos para a próxima avaliação, são listados os exercícios a seguir.
- Em 2 dias as respostas serão acrescentadas a esta postagem e novos exercícios serão postados.
- Quaisquer dúvidas devem ser especificadas através de comentários a esta postagem, não sendo respondido nenhum questionamento via e-mail.
- O usuário deve informar a quantidade de números da série.
- Se a quantidade for zero ou negativa o algoritmo não deve aceita-la.
- O usuário deve informar um por um todos os números da série.
- O algoritmo deve mostrar como resultado a media aritmética simples calculada através da formula:
MEDIA = ( X + X1 + X2 + ... XN ) / N
var
...soma, n, v, qtde: inteiro
...media: real
inicio
...n <- 0
...soma <- 0
...leia qtde
...se qtde > 0 entao
......enquanto n < qtde
.........leia( v )
.........soma <- soma + v
.........n <- n + 1
......fimenquanto
......media <- soma / n
......escreva "Média = ", media
...senao
......escreva "Quantidade Inválida"
...fimse
fimalgoritmo
2º - Dado um vetor de 10 posições do tipo inteiro, que deverá ser preenchido pelo usuário, faça um algoritmo capaz de percorrer todo o vetor dobrando todos os numero que forem ímpares e dividindo pela metade todos os numero que forem pares colocando o resultado das operações nas mesmas posições dentro do vetor.
var
...i: inteiro
...declare t, vet[ 10 ]: inteiro
inicio
...para i de 1 ate 10 faca
......leia vet[ i ]
...fimpara
...para i de 1 ate 10 faca
......t <- vet[ i ]
......se t mod 2 = 0 entao
.........vet[ i ] <- vet[ i ] / 2
......senao
.........vet[ i ] <- vet[ i ] * 2
......fimse
...fimpara
fimalgoritmo
var
...soma, n, v, qtde: inteiro
...media: real
inicio
...n <- 0
...soma <- 0
...leia qtde
...se qtde > 0 entao
......enquanto n < qtde
.........leia( v )
.........soma <- soma + v
.........n <- n + 1
......fimenquanto
......media <- soma / n
......escreva "Média = ", media
...senao
......escreva "Quantidade Inválida"
...fimse
fimalgoritmo
2º - Dado um vetor de 10 posições do tipo inteiro, que deverá ser preenchido pelo usuário, faça um algoritmo capaz de percorrer todo o vetor dobrando todos os numero que forem ímpares e dividindo pela metade todos os numero que forem pares colocando o resultado das operações nas mesmas posições dentro do vetor.
var
...i: inteiro
...declare t, vet[ 10 ]: inteiro
inicio
...para i de 1 ate 10 faca
......leia vet[ i ]
...fimpara
...para i de 1 ate 10 faca
......t <- vet[ i ]
......se t mod 2 = 0 entao
.........vet[ i ] <- vet[ i ] / 2
......senao
.........vet[ i ] <- vet[ i ] * 2
......fimse
...fimpara
fimalgoritmo
Marcadores:
Disciplinas,
Programação
quinta-feira, 17 de junho de 2010
Exercício de Programação - Resposta
Ao tentar resolver o exercício proposto observei que o enunciado parecia um pouco confuso quanto ao cálculo do salário, podendo levar a interpretações diferentes para o problema em questão. Dito isto, o algoritmo a seguir tem a minha interpretação quanto ao especificado.
Para o melhor entendimento da solução, esta será apresentada através das fases do seu desenvolvimento. Aconselho que usem esta metodologia na prova.
Fase 1 - Laço geral de controle e leitura de dados dos funcionários.
var
...nrFunc, qtde: inteiro
...nome: literal
inicio
...nrFunc <- 1
...enquanto nrFunc <= 10 faca
......leia "Nome de Funcionário: ", nome
......leia "Quantidade de peças no mês", qtde
......nrFunc <- nrFunc + 1
...fimenquanto
fimalgoritmo
Fase 2 - Classificação e contagem dos integrantes for classe.
var
...nrFunc, qtde: inteiro
...nome: literal
...nrClasA, nrClasB, nrClasC: inteiro
inicio
...nrFunc <- 1
...enquanto nrFunc <= 10 faca
......leia "Nome de Funcionário: ", nome
......leia "Quantidade de peças no mês", qtde
......se qtde <= 100 entao
.........nrClasA <- nrClasA + 1
......senao
.........se qtde <= 200 entao
............nrClasB <- nrClasB + 1
.........senao
............nrClasC <- nrClasC + 1
.........fimse
......fimse
......nrFunc <- nrFunc + 1
...fimenquanto
fimalgoritmo
Fase 3 - Calculo da produção (fase 3.1) e do salário total (fase 3.2).
var
...nrFunc, qtde: inteiro
...nome: literal
...nrClasA, nrClasB, nrClasC: inteiro
...producao: inteiro
...salario, salTot: real
inicio
...producao <- 0
...nrFunc <- 1
...enquanto nrFunc <= 10 faca
......leia "Nome de Funcionário: ", nome
......leia "Quantidade de peças no mês", qtde
......producao <- producao + qtde
......salario <- 450
......se qtde <= 100 entao
.........nrClasA <- nrClasA + 1
......senao
.........se qtde <= 200 entao
............nrClasB <- nrClasB + 1
............salario <- salario + 0.10 * ( qtde - 100 )
.........senao
............nrClasC <- nrClasC + 1
............salario <- salario + 0.15 * 100
............salario <- salario + 0.20 * ( qtde - 200 )
.........fimse
......fimse
......salTot <- salTot + salario
......nrFunc <- nrFunc + 1
...fimenquanto
...escreva "Funcionários Classe A: ", nrClasA
...escreva "Funcionários Classe B: ", nrClasB
...escreva "Funcionários Classe C: ", nrClasC
...escreva "Produção Total: ", producao, " peças."
...escreva "Salário Total: R$", salTot
fimalgoritmo
Para o melhor entendimento da solução, esta será apresentada através das fases do seu desenvolvimento. Aconselho que usem esta metodologia na prova.
Fase 1 - Laço geral de controle e leitura de dados dos funcionários.
var
...nrFunc, qtde: inteiro
...nome: literal
inicio
...nrFunc <- 1
...enquanto nrFunc <= 10 faca
......leia "Nome de Funcionário: ", nome
......leia "Quantidade de peças no mês", qtde
......nrFunc <- nrFunc + 1
...fimenquanto
fimalgoritmo
Fase 2 - Classificação e contagem dos integrantes for classe.
var
...nrFunc, qtde: inteiro
...nome: literal
...nrClasA, nrClasB, nrClasC: inteiro
inicio
...nrFunc <- 1
...enquanto nrFunc <= 10 faca
......leia "Nome de Funcionário: ", nome
......leia "Quantidade de peças no mês", qtde
......se qtde <= 100 entao
.........nrClasA <- nrClasA + 1
......senao
.........se qtde <= 200 entao
............nrClasB <- nrClasB + 1
.........senao
............nrClasC <- nrClasC + 1
.........fimse
......fimse
......nrFunc <- nrFunc + 1
...fimenquanto
fimalgoritmo
Fase 3 - Calculo da produção (fase 3.1) e do salário total (fase 3.2).
var
...nrFunc, qtde: inteiro
...nome: literal
...nrClasA, nrClasB, nrClasC: inteiro
...producao: inteiro
...salario, salTot: real
inicio
...producao <- 0
...nrFunc <- 1
...enquanto nrFunc <= 10 faca
......leia "Nome de Funcionário: ", nome
......leia "Quantidade de peças no mês", qtde
......producao <- producao + qtde
......salario <- 450
......se qtde <= 100 entao
.........nrClasA <- nrClasA + 1
......senao
.........se qtde <= 200 entao
............nrClasB <- nrClasB + 1
............salario <- salario + 0.10 * ( qtde - 100 )
.........senao
............nrClasC <- nrClasC + 1
............salario <- salario + 0.15 * 100
............salario <- salario + 0.20 * ( qtde - 200 )
.........fimse
......fimse
......salTot <- salTot + salario
......nrFunc <- nrFunc + 1
...fimenquanto
...escreva "Funcionários Classe A: ", nrClasA
...escreva "Funcionários Classe B: ", nrClasB
...escreva "Funcionários Classe C: ", nrClasC
...escreva "Produção Total: ", producao, " peças."
...escreva "Salário Total: R$", salTot
fimalgoritmo
Marcadores:
Disciplinas,
Programação
sábado, 12 de junho de 2010
Exercício de Programação
Uma empresa de autopeças classifica os seus funcionários da seguinte forma:
- Funcionário classe A: É aquele que produziu até 100 peças por mês.
- Funcionário classe B: é Aquele que produziu de 101 a 200 Peças por mês.
- Funcionário classe C: é aquele que produziu mais de 201 peças em um mês.
- Classe A : Um salário mínimo (R$450,00) por mês.
- Classe B : Um salário mínimo mais 10 centavos por peça produzida acima de 101 peças.
- Classe C : um salário mínimo mais 15 centavos por peça produzida acima de 101 peças e 20 centavos por peça produzida acima de 201 peças.
Marcadores:
Disciplinas,
Programação
terça-feira, 18 de maio de 2010
Trabalho de Programação
Aviso ao alunos que ainda não entregaram o trabalho de programação que, entendendo as dificuldades iniciais em formatar o trabalho de forma correta e dificuldades no envio do mesmo, estou prorrogando a data de entrega para a próxima sexta-feira, as 22:00 hs.
Aviso também que esta prorrogação será a primeira e última excessão a regra.
Observo ainda que alguns alunos comentaram que o responsável pelo Blog da turma definiu um prazo muito anterior ao prazo dado para a entrega do trabalho. Afirmo que o mesmo estava correto em fazê-lo, já que este necessitava de tempo hábil para inserir as postagens no Blog.
Aviso também que esta prorrogação será a primeira e última excessão a regra.
Observo ainda que alguns alunos comentaram que o responsável pelo Blog da turma definiu um prazo muito anterior ao prazo dado para a entrega do trabalho. Afirmo que o mesmo estava correto em fazê-lo, já que este necessitava de tempo hábil para inserir as postagens no Blog.
Marcadores:
Disciplinas,
Programação
sexta-feira, 7 de maio de 2010
Algoritmos
O link para o arquivo com os algoritmos usados na disciplina de programação encontra-se disponível na barra lateral do Blog, mais especificamente, no menu da disciplina.
Observações:
Observações:
- Os algoritmos apresentados estão em formato compatível com o Visual Alg;
- Mesmo que o aluno possa executar o algoritmo usando a ferramenta Visual Alg, é fortemente recomendado que os testes de mesa sejam executados.
Marcadores:
Disciplinas,
Objetos de Aprendizagem,
Programação
quinta-feira, 6 de maio de 2010
1º Trabalho de Programação
Tema: Caracterização de Algoritmos.
Equipes: 5 a 7 alunos para cada equipe.
Tempo de Execução: Até 10 horas.
Local: Em qualquer computador conectado a uma rede, ou a Internet; usando preferencialmente a sala de aula teórico/prática para as reuniões.
Data de Entrega: Os trabalhos devem ser postados no blog da turma até o dia 17 de Maio de 2010, as 06:00 hs.
Descrição: Busque e selecione em livros de programação, ou na Internet, 5 a 7 algoritmos (um para cada integrante da equipe) com pelo menos 20 linhas de código cada; e para cada um deles apresente:
- Descrição geral do problema e do processo de solução (no máximo 2 parágrafos);
- O algoritmo completo, de acordo com os exemplos apresentados em sala de aula;
- Fluxograma completo;
- Teste de Mesa;
- Identificação dos tipos de seleção e repetição existentes;
- Identificação, classificação e quantificação, dos tipos de dados e expressões existentes.
- Os trabalhos devem ser apresentados usando o blog da turma.
- Cada equipe deverá postar o seu trabalho em formato PDF.
- O administrador do blog deverá criar uma postagem com os links para cada trabalho;
- Qualquer dúvida ou questionamento, poderá ser feito em sala de aula, por e-mail, ou via comentário a este Post.
Marcadores:
Disciplinas,
Programação
segunda-feira, 3 de maio de 2010
2ª Lista de Exercícios e Aula na Terça
A 2ª Lista de Exercícios de Programação já está disponível, tanto na página de downloads do meu Site, quanto através de um link aqui no Blog.
Aproveito também para avisar que nesta terça-feira (04/05/2010) haverá aula de Programação, já que o prof. Everaldo não poderá comparecer.
Aproveito também para avisar que nesta terça-feira (04/05/2010) haverá aula de Programação, já que o prof. Everaldo não poderá comparecer.
Marcadores:
Disciplinas,
Programação
domingo, 2 de maio de 2010
Cálculo de Expressões
Este pequeno objeto de aprendizagem tem como objetivo demonstrar a execução de expressões aritméticas por algoritmos, de forma que haja a avaliação condição de de existência antes da execução e exibição do resultado.
Para executar o programa em uma janela Clique Aqui
Para executar o programa em uma janela Clique Aqui
Marcadores:
Disciplinas,
Objetos de Aprendizagem,
Programação
terça-feira, 20 de abril de 2010
Aulas de Programação
Conforme informado pela Coordenação do Curso, o prof. Everaldo não poderá comparecer as suas aulas dos dias 27 e 29 de abril. Portanto, foi acordado que eu assumiria as atividades nestes dias, adiantando assim o conteúdo da disciplina de Programação.
Marcadores:
Disciplinas,
Programação
domingo, 18 de abril de 2010
Avaliação de Programação em 16/04/2010
1a Questão - Quanto aos conceitos fundamentais para o processo de programação de computadores, é incorreto afirmar que:
X ← X / 3
X ← X - 8
X ← X + X * 2
X ← 3 * X
Observações:
- Comandos são ordens que controlam operações de entrada, processamento e saída de dados.
- Instrução é uma única ordem para o computador realizar determinada operação.
- Programa computacional é um conjunto completo de instruções que controla um computador para executar uma tarefa específica.
- Algoritmo é qualquer representação a qual pode ser atribuído um significado.
- A idéia de entrada, processamento e saída, é a definição mais elementar que podemos dar ao computador.
- Cada passo deve ser definido de forma que possa ser traduzido para uma linguagem de programação e executado por um computador.
- Pode ser definido como uma sequência finita de instruções bem definidas e não ambíguas.
- É o conjunto de programas usados para definir ou executar uma tarefa específica ou para resolver um problema.
- É independente da linguagem de programação podendo até ser executado “à mão” por uma pessoa.
- As suas instruções podem ser executada mecanicamente num período de tempo finito com uma quantidade de esforço finita.
- A Linguagem Natural é comumente usada na especificação inicial de um algoritmo.
- A Linguagem Natural emprega uma linguagem intermediária entre a pseudo linguagem e uma linguagem de programação.
- A Linguagem Natural é a que mais facilita o processo de tradução do algoritmo para a linguagem de programação.
- Em Pseudo Linguagem os algoritmos são expressos diretamente em linguagem natural, escrita ou narrativas.
- O Fluxograma é uma representação textual que emprega formas geométricas padronizadas para indicar as diversas ações e decisões.
- 21,2; 34 / 3; 84 > 45; "8353".
- 32 + 0,1; 75; a laranja é azul; "7536".
- 81 / 2; 61; false; Bom.
- 34; 11 + 11,7; a bicicleta tem duas rodas; "www.ufopa.edu.br"
- 100,0; 10 + 2; falso; "C".
X ← X / 3
X ← X - 8
X ← X + X * 2
X ← 3 * X
- -1 e -9
- -3 e 1
- -1 e 0
- -3 e 6
- 3 e -3
- Casa Amarela
- 81
- @nome
- cValor
- 1dado
- 8
- 4
- verdadeiro
- falso
- 2
- 8
- 4
- verdadeiro
- falso
- 2
- falso
- 2
- 4
- verdadeiro
- 8
Observações:
- As alternativas corretas são as destacadas em vermelho.
- A resposta da 10a Questão, por ter diversas soluções possíveis, será comentada apenas em sala de aula.
Marcadores:
Disciplinas,
Programação
Assinar:
Postagens (Atom)

