Buscar

Portfolio-Interdisciplinar-Primeiro-Periodo-de-Analise-de-Sistemas-UNOPAR-2011-Adson-Honori

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

Palmas 
2011 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ADSON JOSÉ HONORI DE MELO 
FLÁVIO MÁRCIO SILVA 
GERISVALDO DA COSTA MACEDO 
VALDEMIA SOUSA OLIVEIRA 
WANDERLEY SOARES DA SILVA 
 
 
 
 
 
 
 
SISTEMA DE ENSINO PRESENCIAL CONECTADO 
ANÁLISE E DESENVOLVIMENTO DE SISTEMAS 
 
PROGRAMAÇÃO PRÁTICA E LÓGICA 
 
 
 
Palmas 
2011 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
PROGRAMAÇÃO PRÁTICA E LÓGICA 
 
 
Trabalho interdisciplinar (Fundamentos de Lógica e 
Matemática Discreta, Organização de Computadores, 
Educação a Distância, Fundamentos da Administração 
da Informação e Linguagem e Tec. de Programação I) 
apresentado a Universidade Norte do Paraná - UNOPAR 
 
Professores: Denise Dias 
Eliane Araman 
Éverson Morais 
José R. Passini 
Veronice de Freitas 
ADSON JOSÉ HONORI DE MELO 
FLÁVIO MÁRCIO SILVA 
GERISVALDO DA COSTA MACEDO 
VALDEMIA SOUSA OLIVEIRA 
WANDERLEY SOARES DA SILVA 
 
 
 
 
 
 
 
 
 
 
 
 
 
SUMÁRIO 
1 INTRODUÇÃO .....................................................................................................3 
2 DESENVOLVIMENTO .........................................................................................4 
2.1 PARTE 1 – PROGRAMAÇÃO PRÁTICA, ALGORITMOS................................4 
2.2 PARTE 2 – TRADUÇÃO PARA LINGUAGEM LÓGICA .................................13 
3 CONCLUSÃO ....................................................................................................15 
REFERÊNCIAS.........................................................................................................16 
 3 
1 INTRODUÇÃO 
O homem por natureza é um ser lógico. Aprender a usar e 
aperfeiçoar a Lógica são pré-requisitos essenciais para a formação de um bom 
programador, servindo-lhe como base sólida na utilização de qualquer linguagem de 
programação. O objetivo principal do estudo da Lógica de Programação é 
demonstrar técnicas para resolução de problemas ou ainda para automação de 
tarefas. 
As conexões entre a Lógica e a Informática crescem e se aprofundam 
rapidamente. Ao lado da demonstração automática, da programação em 
lógica, da especificação e verificação de programas, outros setores revelam 
uma fascinante interação mútua com a Lógica, como a teoria de tipos, a 
teoria do paralelismo, a inteligência artificial, a teoria da complexidade, as 
bases de dados, a semântica operacional e as técnicas de compilação (José 
Meseguer). 
O produto final deste raciocínio lógico estruturado é o Algoritmo, que 
pode ser definido como todo procedimento cujas instruções são bem claras, efetivas 
e podem ser executadas em tempo finito. É um texto onde cada linha contém uma 
ação primitiva passível de execução por um homem ou uma máquina. 
 
Este trabalho se divide em duas partes. A primeira consiste na 
formulação de código computacional na forma de algoritmos, utilizando-se a 
ferramenta VisuAlg e que solucionem às cinco proposições pré-definidas pelos 
professores das disciplinas. A segunda será traduzir para uma linguagem lógica 
algum conceito de Fundamentos da Administração da Informação, utilizando-se a 
tabela-verdade como recurso demonstrativo da tradução. 
 
 
 
 4 
2 DESENVOLVIMENTO 
2.1 PARTE 1 – PROGRAMAÇÃO PRÁTICA, ALGORITMOS 
1) Escreva o pseudocódigo equivalente ao fluxograma abaixo: 
 
 
algoritmo "Consumo Médio" 
var 
a: caracter 
DIST, VOL, CM: real 
 
inicio 
repita 
limpatela 
escreval ("Cálculo do Consumo Médio") 
escreval("Distância total percorrida (Km)") 
escreva (":> ") 
 5 
leia (DIST) 
escreval ("Quantidade de combustível gasto (L)") 
escreva (":> ") 
leia (VOL) 
 enquanto VOL = 0 faca 
 escreval ("Valor informado deve ser maior que zero. Tente novamente!") 
 leia (VOL) 
 fimenquanto 
CM <- DIST/VOL 
escreval ("Consumo médio = ", CM:3:2, " Km/L") 
escreval 
escreval ("ENTER recomeçar ou 's' para SAIR") 
leia (a) 
ate a="s" 
fimalgoritmo 
 
2) Crie um algoritmo que receba pelo teclado o nome do Funcionário 
e seu salário bruto. Se o salário for acima de R$ 1.000,00, calcule 11% de desconto 
de INSS; se não, calcule 9%. Ao final, exiba o nome do funcionário, o salário bruto e 
o salário com desconto do INSS. 
Dados de Entrada: NOME, SALÁRIO BRUTO 
Processamento: Se o salário for acima de R$ 1.000,00, calcule 11% 
de desconto de INSS; se não, calcule 9%. 
Saída: Ao final, exiba o nome do funcionário, o salário bruto e o 
salário com desconto do INSS. 
 
algoritmo "Salários" 
var 
A, NOME: caracter 
SALB, SALD, FATOR1, FATOR2: real 
 
inicio 
repita 
limpatela 
 6 
FATOR1 <- 11/100 
FATOR2 <- 9/100 
escreval ("Informe o nome do funcionário!") 
leia (NOME) 
escrevaL ("Informe o salário bruto!") 
escreva ("R$ ") 
leia (SALB) 
 se SALB > 1000 entao 
 SALD <- SALB - (SALB * FATOR1) 
 senao 
 SALD <- SALB - (SALB * FATOR2) 
 fimse 
escreval ("NOME: ", NOME) 
escreval ("SALÁRIO BRUTO: R$ ", SALB: 4:2) 
escreval ("SALÁRIO LÍQUIDO: R$ ", SALD:4:2) 
escreval 
escreval ("ENTER recomeçar ou 's' SAIR") 
leia (A) 
ate a="s" 
fimalgoritmo 
 
3) Crie um algoritmo em que, dada a tabela a seguir, calcula o valor 
de desconto a ser concedido a um determinado cliente, de acordo com o valor da 
compra. O algoritmo deverá receber pelo teclado o nome do cliente e o valor total da 
compra. 
 
Dados de Entrada: Nome do cliente e o valor total da compra. 
Processamento: comparar o valor da compra para obter o desconto 
de acordo com a tabela. 
Saída: Nome do cliente, valor do desconto. 
 
 7 
algoritmo "CÁLCULO DESCONTO" 
var 
A, NOME: caracter 
VDESC, VCOMPRA, V1, V2, V3: real 
 
inicio 
repita 
limpatela 
V1 <- 5/100 
V2 <- 10/100 
V3 <- 15/100 
escreval ("Infomre o nome do cliente!") 
leia (NOME) 
escreval ("Informe o valor da compra") 
escreva ("R$ ") 
leia (VCOMPRA) 
 se (VCOMPRA < 1000) entao 
 VDESC <- (VCOMPRA * V1) 
 escreval ("Nome: ", NOME) 
 escreval ("Desconto em R$ = ", VDESC:4:2) 
 fimse 
 se ((VCOMPRA >= 1000) e (VCOMPRA <= 5000)) entao 
 VDESC <- (VCOMPRA * V2) 
 escreval ("Nome: ", NOME) 
 escreval ("Desconto em R$ = ", VDESC:4:2) 
 fimse 
 se (VCOMPRA > 5000) entao 
 VDESC <- (VCOMPRA * V3) 
 escreval ("Nome: ", NOME) 
 escreval ("Desconto em R$ = ", VDESC:4:2) 
 fimse 
escreval (“ENTER recomeçar ou ‘s’ para SAIR”) 
leia (A) 
ate a=”s” 
fimalgoritmo 
 8 
4) O algoritmo abaixo possibilita calcular a média das notas de 5 
alunos. Obs: faça as alterações necessárias para que o algoritmo possibilite a média 
da turma e também imprima quantos alunos estão com a nota abaixo da média. 
 
 
algoritmo "média turma" 
var 
A: caracter 
I, X, CONTABX : inteiro 
NOTA, SOMA: real 
 
inicio 
repita 
limpatela 
SOMA <- 0 
CONTABX <- 0 
escreval ("Informe a quantidade de alunos na Turma!") 
escreva ("=>") 
leia (X) 
limpatela 
 para I de 1 ate X faca 
 escreval ("Entre com a nota do aluno ", I) 
 9 
 escreva ("Nota => ") 
 leia (NOTA) 
 SOMA <- SOMA + NOTA 
 se NOTA < 7 entao 
 CONTABX <- CONTABX +1 
 fimse 
 limpatela 
 fimpara 
 escreval ("Média Geral da Turma = ", SOMA/X:2:1) 
 escreval ("Alunos abaixo da média = ", CONTABX) 
 escreval ("ENTER para reiniciar ou 's' para SAIR") 
 leia (A) 
 ate a = "s" 
fimalgoritmo 
 
5) Elaborar um algoritmo, em qualquer linguagem de programação, 
que execute a conversão do sistema decimal para o binário. O programa deverá ser 
comentado explicando os porquês de cada ação. 
 
algoritmo "conversão de decimal para binário" 
var 
z,d:inteiroa,x:caracter 
 
inicio 
repita // repeti o programa até q seja teclado "s" de Sair 
limpatela 
escreval ("-----------------------------------------------------------------------") 
escreval ("- Programa para converter decimal em binário -") 
escreval ("- Entre com o valor decimal para conversão em binário -") 
escreval ("------------------------------------------------------------------------") 
escreva (":> ") 
leia(z) // aqui lemos o número decimal pelo teclado 
 
 10 
d<-z // atribuímos o valor lido à outra variável (d), pois z sofrerá divisões por 2 
//alterando, sucessivamente, seus valores a cada vez que o laço de 
//ENQUANTO for executado 
 
se z = 0 entao // testamos a exceção, ou seja, se o valor lido é 0 (zero); sem isso 
// o zero ficaria sem representação binária, pois nunca satisfaria a 
//condição inicial do laço ENQUANTO 
 escreval ("A representacão binária de ", d, " é ", "0") 
senao // do contrário entra no laço 
 
 enquanto z > 0 faca // laço que controla as sucessivas divisões por 2 
 se (z mod 2)=0 entao // função MOD retorna o resto da divisão por 
//2, ou seja, se for igual a 0 a divisão é exata 
 
 x<- "0" + x // assim, atribuímos à variável X o caractere "0" 
//mais à própria variável, formando uma string 
//enquanto o laço rodar; 
// observe que, somando o novo caractere ao valor 
//da antiga variável, vamos empurrando os 
//primeiros valores para as últimas posições, pois 
 // o número binário é formado de trás pra frente 
 senão // se a função MOD retornar valor diferente de 
//zero, então ... 
 x<- "1" + x // atribuímos o caractere “1” mais a própria 
//variável formando uma string enquanto o laço 
//for executado 
 fimse 
 
 z<- z div 2 // a variável z recebe o quociente da divisão por 2 
//através da função DIV, que será testada 
//novamente na condição do laço ENQUANTO 
//(z>0) 
 fimenquanto 
escreval ("Número decimal =>", d) 
 11 
escreval ("Conversão para binário => " ,x) // saída dos valores concatenados em X 
 // (variável do tipo caracter) 
fimse // este fimse é do teste de exceção (se z = 0) 
escreval ("Aperte ENTER para converter outro número ou 's' para SAIR") 
x<- " " // aqui reiniciamos o valor de X com um espaço em branco, evita-se que 
 // um lixo na variável altere os valores quando o programa repetir 
leia(a) 
ate a= "s" 
fimalgoritmo 
----------------------------------------------------------------------------------------------------------------- 
 
algoritmo "conversão de decimal para binario usando VETORES" 
 
var 
VET1: vetor [1..50] de inteiro 
VET2: vetor [1..50] de inteiro 
i,j,z,d,x: inteiro 
a: caracter 
 
inicio 
 
repita // repeti o programa até q seja teclado "s" de Sair 
limpatela 
escreval ("-----------------------------------------------------------------------") 
escreval("- Programa para converter decimal em binário -") 
escreval("- Entre com o valor decimal para conversão em binário -") 
escreval("------------------------------------------------------------------------") 
escreva (":> ") 
leia(z) // aqui lemos o número decimal pelo teclado 
d<-z // atribuímos o valor lido a outra variável, pois z sofrerá divisões por 2 
 alterando sucessivamente seus valores 
 
 12 
se z = 0 entao // se o valor lido é 0 (zero), sem isso o zero ficaria sem representação 
 binária, pois nunca satizfaria a condição do ENQUANTO 
 escreval ("Correspondente em binário:",0) 
senao // do contrário entra no laço 
 
 i:=1 // inicializo a primeira posição do vetor 
 enquanto z > 0 faca // permite controlar as sucessívas divisões por 2 
 se (z mod 2)=0 entao // função MOD retorna o resto da divisão por 2, 
 // se for = 0 a divisão é exata e o resto é zero 
 VET1[i]<-0 // atribuo o valor 0 na posição "i" do vetor 
 senao 
 VET1[i]<-1 // se não for exata, atribuímos o valor 1 na posição 
 // "i" enquanto o laço rodar 
 fimse 
 i<-i+1 //incrementamos o i para que o vetor mude de posição 
 z<- z div 2 // a variável z recebe o quociente da divisão por 2 
 // através da função DIV, que será testada novamente 
 // na condição do laço ENQUANTO 
 fimenquanto 
 
 //escrever resultado 
 i:=i-1 // o incremento de "i' nos informa quantas posições o vetor tem ao todo, 
 // precisamos dIminuir 1 para não sobrar uma posição vazia 
 
 escreval 
 
 //inverter posições 
 j:=1 // iniciamos "j' que controlará a posição do segundo vetor 2 que irá receber 
 // os valores do vetor 1 de traz pra frente 
 para x de i ate 1 passo -1 faca // repetição PARA iniciando em "i" até 1 
decrementando 1, ou seja, se i for 3, então VET2[1] <- VET1[3], 
 VET2[j]<-VET1[x] // o VETOR 2 receberá o valor armazenado na última 
 // posição do VET1, pois sabemos que o número 
 //binário forma-se de traz pra frente 
 13 
 j:=j+1 // incremento do j para a posição do VET2 andar 
 fimpara 
 
 // imprimir o valor em binário 
 escreval ("Correspondente em binário:") 
 para x de 1 ate i passo 1 faca 
 escreva (VET2[x]) 
 fimpara 
fimse 
 escreval 
 escreval ("Aperte enter para converter outro número ou 's' para sair") 
 leia(a) 
 ate a= "s" 
fimalgoritmo 
 
2.2 PARTE 2 – TRADUÇÃO PARA LINGUAGEM LÓGICA 
1) Traduzir para a linguagem lógica algum conceito de Fundamentos 
de Administração da Informação e construir a respectiva tabela verdade. 
 
A partir das proposições simples x,y,z a seguir, escreve em 
linguagem lógica a proposição composta T(x,y,z) e a respectiva tabela-verdade. 
x: Divisão de trabalho não é especializar funções e separar poderes 
de forma a obter o máximo proveito do indivíduo e da coletividade em uma 
organização. (FALSA) 
y: Disciplina é estabelecer convenções, formais ou informais, entre a 
empresa e seus agentes, de forma a incentivar a obediência, a assiduidade, a 
atividade, a presença e os sinais exteriores de respeito. (VERDADEIRA) 
z: Divisão de trabalho e disciplina são princípios da administração de 
Fayol. (VERDADEIRA) 
 14 
T(x,y,z): Se divisão de trabalho não é especializar funções e separar 
poderes de forma a obter o máximo proveito do indivíduo e da coletividade em uma 
organização e disciplina é estabelecer convenções, formais ou informais, entre a 
empresa e seus agentes, de forma a incentivar a obediência, a assiduidade, a 
atividade, a presença e os sinais exteriores de respeito. Então, divisão de trabalho e 
disciplina são princípios da administração de Fayol. 
 
Como mostra a tabela-verdade, a proposição composta T(x,y,z) é 
FALSA. 
 
x y z (x^y) (x^y) →z 
V V V V V 
V F F F V 
V F V F F 
V V F V V 
F F F F V 
F V V F F 
F V F F V 
F F V F F 
 15 
3 CONCLUSÃO 
Nossa dinâmica de desenvolvimento contemplou a resolução 
individual dos raciocínios, paralelamente, trocamos informações por e-mail criticando 
e avaliando todas as soluções apresentadas. Encontros presenciais selecionaram os 
melhores algoritmos, discutimos e o trabalho encorpou. 
 
Os desafios foram muitos, desde assimilar a forma de se trabalhar 
em ambiente colaborativo até a codificação das soluções em linguagem 
computacional. Conciliar o trabalho e o estudo de forma eficiente e produtiva foi uma 
tarefa árdua, mas gratificante. 
 
A Internet se mostrou realmente importante e eficaz, pois 
proporcionoucolaboração e interação entre os participantes do grupo; o grande 
volume de informações disponíveis na rede auxilia e muito na busca do 
conhecimento. 
 
Portanto, o objetivo do trabalho foi alcançado, através de exercícios 
práticos envolvendo lógica e programação, podemos assimilar os conceitos e 
técnicas ministrados pelos professores no semestre. 
 
 
 
 
 
 
 
 
 
 16 
REFERÊNCIAS 
ARAMAM, CAZETTA, Eliane Maria de O. Aramam e Jenai O. Cazetta. 
Fundamentos de lógica e matemática discreta. São Paulo: Person Education do 
Brasil, 2009. 
SANTANA, CAZETTA, Denise Dias de Santana e Luis Cláudio Perini. Fundamentos 
da administração da informação. São Paulo: Person Education do Brasil, 2009. 
MARTINS, PAIANO, Paulo Roberto Martins e Valessa Paiano. Linguagens e 
técnicas de programação I. São Paulo: Person Education do Brasil, 2009. 
http://www.colegioweb.com.br/matematica/principios-fundamentais-da-logica.html 
http://www.calculadoraonline.com.br/conversao-bases

Outros materiais