Você está na página 1de 18

SISTEMA DE ENSINO PRESENCIAL CONECTADO ANLISE E DESENVOLVIMENTO DE SISTEMAS ADSON JOS HONORI DE MELO FLVIO MRCIO SILVA GERISVALDO

DA COSTA MACEDO VALDEMIA SOUSA OLIVEIRA WANDERLEY SOARES DA SILVA

PROGRAMAO PRTICA E LGICA

Palmas 2011

ADSON JOS HONORI DE MELO FLVIO MRCIO SILVA GERISVALDO DA COSTA MACEDO VALDEMIA SOUSA OLIVEIRA WANDERLEY SOARES DA SILVA

PROGRAMAO PRTICA E LGICA

Trabalho interdisciplinar (Fundamentos de Lgica e Matemtica Discreta, Organizao de Computadores, Educao a Distncia, Fundamentos da Administrao da Informao e Linguagem e Tec. de Programao I) apresentado a Universidade Norte do Paran - UNOPAR Professores: Denise Dias Eliane Araman verson Morais Jos R. Passini Veronice de Freitas

Palmas 2011

SUMRIO 1 2 2.1 2.2 3 INTRODUO .....................................................................................................3 DESENVOLVIMENTO .........................................................................................4 PARTE 1 PROGRAMAO PRTICA, ALGORITMOS ................................4 PARTE 2 TRADUO PARA LINGUAGEM LGICA .................................13 CONCLUSO ....................................................................................................15

REFERNCIAS .........................................................................................................16

1 INTRODUO O homem por natureza um ser lgico. Aprender a usar e aperfeioar a Lgica so pr-requisitos essenciais para a formao de um bom programador, servindo-lhe como base slida na utilizao de qualquer linguagem de programao. O objetivo principal do estudo da Lgica de Programao demonstrar tcnicas para resoluo de problemas ou ainda para automao de tarefas.
As conexes entre a Lgica e a Informtica crescem e se aprofundam rapidamente. Ao lado da demonstrao automtica, da programao em lgica, da especificao e verificao de programas, outros setores revelam uma fascinante interao mtua com a Lgica, como a teoria de tipos, a teoria do paralelismo, a inteligncia artificial, a teoria da complexidade, as bases de dados, a semntica operacional e as tcnicas de compilao (Jos Meseguer).

O produto final deste raciocnio lgico estruturado o Algoritmo, que pode ser definido como todo procedimento cujas instrues so bem claras, efetivas e podem ser executadas em tempo finito. um texto onde cada linha contm uma ao primitiva passvel de execuo por um homem ou uma mquina.

Este trabalho se divide em duas partes. A primeira consiste na formulao de cdigo computacional na forma de algoritmos, utilizando-se a ferramenta VisuAlg e que solucionem s cinco proposies pr-definidas pelos professores das disciplinas. A segunda ser traduzir para uma linguagem lgica algum conceito de Fundamentos da Administrao da Informao, utilizando-se a tabela-verdade como recurso demonstrativo da traduo.

2 DESENVOLVIMENTO

2.1 PARTE 1 PROGRAMAO PRTICA, ALGORITMOS 1) Escreva o pseudocdigo equivalente ao fluxograma abaixo:

algoritmo "Consumo Mdio" var a: caracter DIST, VOL, CM: real

inicio repita limpatela escreval ("Clculo do Consumo Mdio") escreval("Distncia total percorrida (Km)") escreva (":> ")

leia (DIST) escreval ("Quantidade de combustvel 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 mdio = ", CM:3:2, " Km/L") escreval escreval ("ENTER recomear ou 's' para SAIR") leia (a) ate a="s" fimalgoritmo

2) Crie um algoritmo que receba pelo teclado o nome do Funcionrio e seu salrio bruto. Se o salrio for acima de R$ 1.000,00, calcule 11% de desconto de INSS; se no, calcule 9%. Ao final, exiba o nome do funcionrio, o salrio bruto e o salrio com desconto do INSS. Dados de Entrada: NOME, SALRIO BRUTO Processamento: Se o salrio for acima de R$ 1.000,00, calcule 11% de desconto de INSS; se no, calcule 9%. Sada: Ao final, exiba o nome do funcionrio, o salrio bruto e o salrio com desconto do INSS.

algoritmo "Salrios" var A, NOME: caracter SALB, SALD, FATOR1, FATOR2: real

inicio repita limpatela

FATOR1 <- 11/100 FATOR2 <- 9/100 escreval ("Informe o nome do funcionrio!") leia (NOME) escrevaL ("Informe o salrio bruto!") escreva ("R$ ") leia (SALB) se SALB > 1000 entao SALD <- SALB - (SALB * FATOR1) senao SALD <- SALB - (SALB * FATOR2) fimse escreval ("NOME: ", NOME) escreval ("SALRIO BRUTO: R$ ", SALB: 4:2) escreval ("SALRIO LQUIDO: R$ ", SALD:4:2) escreval escreval ("ENTER recomear 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. Sada: Nome do cliente, valor do desconto.

algoritmo "CLCULO 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 recomear ou s para SAIR) leia (A) ate a=s

fimalgoritmo

4) O algoritmo abaixo possibilita calcular a mdia das notas de 5 alunos. Obs: faa as alteraes necessrias para que o algoritmo possibilite a mdia da turma e tambm imprima quantos alunos esto com a nota abaixo da mdia.

algoritmo "mdia 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)

escreva ("Nota => ") leia (NOTA) SOMA <- SOMA + NOTA se NOTA < 7 entao CONTABX <- CONTABX +1 fimse limpatela fimpara escreval ("Mdia Geral da Turma = ", SOMA/X:2:1) escreval ("Alunos abaixo da mdia = ", CONTABX) escreval ("ENTER para reiniciar ou 's' para SAIR") leia (A) ate a = "s" fimalgoritmo

5) Elaborar um algoritmo, em qualquer linguagem de programao, que execute a converso do sistema decimal para o binrio. O programa dever ser comentado explicando os porqus de cada ao. algoritmo "converso de decimal para binrio" var z,d:inteiro a,x:caracter

inicio repita // repeti o programa at q seja teclado "s" de Sair

limpatela escreval ("-----------------------------------------------------------------------") escreval ("- Programa para converter decimal em binrio -")

escreval ("- Entre com o valor decimal para converso em binrio -") escreval ("------------------------------------------------------------------------") escreva (":> ") leia(z) // aqui lemos o nmero decimal pelo teclado

10

d<-z

// atribumos o valor lido outra varivel (d), pois z sofrer divises por 2 //alterando, sucessivamente, seus valores a cada vez que o lao de //ENQUANTO for executado

se z = 0 entao

// testamos a exceo, ou seja, se o valor lido 0 (zero); sem isso // o zero ficaria sem representao binria, pois nunca satisfaria a //condio inicial do lao ENQUANTO

escreval ("A representaco binria de ", d, " ", "0") senao // do contrrio entra no lao

enquanto z > 0 faca se (z mod 2)=0 entao

// lao que controla as sucessivas divises por 2 // funo MOD retorna o resto da diviso por //2, ou seja, se for igual a 0 a diviso exata

x<- "0" + x

// assim, atribumos varivel X o caractere "0" //mais prpria varivel, formando uma string //enquanto o lao rodar; // observe que, somando o novo caractere ao valor //da antiga varivel, vamos empurrando os

//primeiros valores para as ltimas posies, pois // o nmero binrio formado de trs pra frente seno // se a funo MOD retornar valor diferente de //zero, ento ... x<- "1" + x // atribumos o caractere 1 mais a prpria //varivel formando uma string enquanto o lao //for executado fimse

z<- z div 2

// a varivel z recebe o quociente da diviso por 2 //atravs da funo DIV, que ser testada

//novamente na condio do lao ENQUANTO //(z>0) fimenquanto escreval ("Nmero decimal =>", d)

11

escreval ("Converso para binrio => " ,x)

// sada dos valores concatenados em X // (varivel do tipo caracter)

fimse

// este fimse do teste de exceo (se z = 0)

escreval ("Aperte ENTER para converter outro nmero ou 's' para SAIR") x<- " " // aqui reiniciamos o valor de X com um espao em branco, evita-se que // um lixo na varivel altere os valores quando o programa repetir leia(a) ate a= "s" fimalgoritmo ----------------------------------------------------------------------------------------------------------------algoritmo "converso 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 binrio -")

escreval("- Entre com o valor decimal para converso em binrio -") escreval("------------------------------------------------------------------------") escreva (":> ") leia(z) // aqui lemos o nmero decimal pelo teclado d<-z // atribumos o valor lido a outra varivel, pois z sofrer divises por 2 alterando sucessivamente seus valores

12

se z = 0 entao // se o valor lido 0 (zero), sem isso o zero ficaria sem representao
binria, pois nunca satizfaria a condio do ENQUANTO

escreval ("Correspondente em binrio:",0) senao // do contrrio entra no lao

i:=1

// inicializo a primeira posio do vetor

enquanto z > 0 faca // permite controlar as sucessvas divises por 2 se (z mod 2)=0 entao // funo MOD retorna o resto da diviso por 2, // se for = 0 a diviso exata e o resto zero VET1[i]<-0 senao VET1[i]<-1 // se no for exata, atribumos o valor 1 na posio // "i" enquanto o lao rodar fimse i<-i+1 //incrementamos o i para que o vetor mude de posio // a varivel z recebe o quociente da diviso por 2 // atravs da funo DIV, que ser testada novamente // na condio do lao ENQUANTO fimenquanto // atribuo o valor 0 na posio "i" do vetor

z<- z div 2

//escrever resultado i:=i-1 // o incremento de "i' nos informa quantas posies o vetor tem ao todo, // precisamos dIminuir 1 para no sobrar uma posio vazia

escreval

//inverter posies j:=1 // iniciamos "j' que controlar a posio 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 // repetio PARA iniciando em "i" at 1

decrementando 1, ou seja, se i for 3, ento VET2[1] <- VET1[3], VET2[j]<-VET1[x] // o VETOR 2 receber o valor armazenado na ltima // posio do VET1, pois sabemos que o nmero //binrio forma-se de traz pra frente

13

j:=j+1 fimpara

// incremento do j para a posio do VET2 andar

// imprimir o valor em binrio escreval ("Correspondente em binrio:") para x de 1 ate i passo 1 faca escreva (VET2[x]) fimpara fimse escreval escreval ("Aperte enter para converter outro nmero ou 's' para sair") leia(a) ate a= "s" fimalgoritmo

2.2 PARTE 2 TRADUO PARA LINGUAGEM LGICA 1) Traduzir para a linguagem lgica algum conceito de Fundamentos de Administrao da Informao e construir a respectiva tabela verdade.

A partir das proposies simples x,y,z a seguir, escreve em linguagem lgica a proposio composta T(x,y,z) e a respectiva tabela-verdade. x: Diviso de trabalho no especializar funes e separar poderes de forma a obter o mximo proveito do indivduo e da coletividade em uma organizao. (FALSA) y: Disciplina estabelecer convenes, formais ou informais, entre a empresa e seus agentes, de forma a incentivar a obedincia, a assiduidade, a atividade, a presena e os sinais exteriores de respeito. (VERDADEIRA) z: Diviso de trabalho e disciplina so princpios da administrao de Fayol. (VERDADEIRA)

14

T(x,y,z): Se diviso de trabalho no especializar funes e separar poderes de forma a obter o mximo proveito do indivduo e da coletividade em uma organizao e disciplina estabelecer convenes, formais ou informais, entre a empresa e seus agentes, de forma a incentivar a obedincia, a assiduidade, a atividade, a presena e os sinais exteriores de respeito. Ento, diviso de trabalho e disciplina so princpios da administrao de Fayol.

Como mostra a tabela-verdade, a proposio composta T(x,y,z) FALSA.

x V V V V F F F F

y V F F V F V V F

z V F V F F V F V

(x^y) V F F V F F F F

(x^y) z V V F V V F V F

15

3 CONCLUSO Nossa dinmica de desenvolvimento contemplou a resoluo individual dos raciocnios, paralelamente, trocamos informaes por e-mail criticando e avaliando todas as solues 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 codificao das solues 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 proporcionou colaborao e interao entre os participantes do grupo; o grande volume de informaes disponveis na rede auxilia e muito na busca do conhecimento.

Portanto, o objetivo do trabalho foi alcanado, atravs de exerccios prticos envolvendo lgica e programao, podemos assimilar os conceitos e tcnicas ministrados pelos professores no semestre.

16

REFERNCIAS ARAMAM, CAZETTA, Eliane Maria de O. Aramam e Jenai O. Cazetta. Fundamentos de lgica e matemtica discreta. So Paulo: Person Education do Brasil, 2009. SANTANA, CAZETTA, Denise Dias de Santana e Luis Cludio Perini. Fundamentos da administrao da informao. So Paulo: Person Education do Brasil, 2009. MARTINS, PAIANO, Paulo Roberto Martins e Valessa Paiano. Linguagens e tcnicas de programao I. So Paulo: Person Education do Brasil, 2009. http://www.colegioweb.com.br/matematica/principios-fundamentais-da-logica.html http://www.calculadoraonline.com.br/conversao-bases