Ruka284 Posted October 16, 2012 at 01:50 AM Report #479294 Posted October 16, 2012 at 01:50 AM Um algoritmo que leia um vendedor, o seu salário fixo e o total das vendas efectuadas por ele (em dinheiro). Sabendo que este vendedor ganha 15% de comissões sobre as vendas efectuadas desconta 7% para um seguro de vida, pertence como output o seu nome, salário bruto e o salário liquido. Programa vendedor vendedor, salário fixo, total vendas, comissões, seguro vida - input nome, salário bruto, salário liquido - output Inicio escrever (salário fixo); ler (salário fixo); escrever (total vendas); ler (total vendas); escrever (comissões); ler (comissões); escrever (seguro vida); ler (seguro vida); nome=vendedor salário bruto=(salário fixo+total vendas)*comissões salário liquido =(salário fixo+comissões)-seguro de vida sair (`nome´vendedor) sair (`salário bruto´bruto) sair (`salário liquido´liquido) fim programa qual a vossa opinião ??
Warrior Posted October 16, 2012 at 02:40 AM Report #479295 Posted October 16, 2012 at 02:40 AM - Deixaste de declarar os tipos de variáveis e passaste a colocar "- input" e "- output" porquê? Atenção, é bom saberes o que é que vais usar para input e para output (é um passo grande em relação ao que anteriormente fazias!), mas normalmente isso não fica no pseudo-código. - De resto, o que é o "vendedor" e o que é o "nome"? O que representam? Fazes "nome=vendedor" mas "vendedor" nunca foi definido. - Talvez te ajudasse trocar os "escrever(total vendas)" por algo como "escrever("Insira o total de vendas")". Ficas com um pseudo-código mais correcto e em termos mentais ajuda-te a desenvolver o resto. - Pensa na fórmula correcta para o salário bruto e para o salário líquido.
Ruka284 Posted October 16, 2012 at 01:19 PM Author Report #479325 Posted October 16, 2012 at 01:19 PM Acho que e melhor assim. Vendedor está como definido em input escrever (insira salário fixo); ler (insira salário fixo); fica mais correcto, obrigado. comissões=(vendas*15%) salário bruto=(salário fixo+comissões) salário liquido =(salário bruto-seguro vida) fiz esta modificação
HappyHippyHippo Posted October 16, 2012 at 01:29 PM Report #479328 Posted October 16, 2012 at 01:29 PM vamos lá ver uma coisa : quando pedes alguma coisa, tens que dizer o que queres, estás a falar, certo ? parece que sim porque isso parece que já estás a apresentar correctamente: escrever("insira salário fixo"); agora quando recebes alguma coisa, var ter de meter o que recebes em algum lado, certo ? parece que não porque continuar a mandar tiros em branco. tens variáveis é para alguma coisa (e as variáveis não podem ter espaços no seu nome, para não falar das outras restrições) IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Warrior Posted October 16, 2012 at 02:40 PM Report #479350 Posted October 16, 2012 at 02:40 PM Já me parece bastante mais correcto! Já declaraste o tipo de dados de cada variável? Não chega marcar como input ou como output. O meu maior problema agora é com a tua variável "nome" e "vendedor". Dizes que vendedor está definido como input, mas qual a diferença de vendedor para nome? São a mesma coisa? Então para quê duas? Além disso, só por teres declarado como input não significa que tenha sido atribuído qualquer valor à variável..
Ruka284 Posted October 16, 2012 at 05:51 PM Author Report #479386 Posted October 16, 2012 at 05:51 PM (edited) Programa vendedor vendedor, salário fixo, total vendas, comissões, seguro vida - input nome, salário bruto, salário liquido - output Inicio escrever (insira salário fixo); ler (salário fixo); escrever (insira total vendas); ler (total vendas); escrever (insira comissões); ler (comissões); escrever (insira seguro vida); ler (seguro vida); comissões=(vendas*15%) salário bruto=(salário fixo+comissões); salário liquido =(salário fixo-seguro vida); sair (`o nome é´vendedor) sair (`o salário bruto é´bruto) sair (`o salário liquido é´liquido) fim programa ja fiz mais umas alterações Edited October 16, 2012 at 05:55 PM by Ruka284
Warrior Posted October 16, 2012 at 06:41 PM Report #479392 Posted October 16, 2012 at 06:41 PM Continuas sem declarar o tipo das variáveis. Estás a usar duas funções "escrever" e "sair" para aparentemente a mesma coisa. Continuas a tentar escrever a variável "vendedor" sem antes lhe atribuíres qualquer valor.
thoga31 Posted October 16, 2012 at 08:43 PM Report #479399 Posted October 16, 2012 at 08:43 PM (edited) @Ruka284, ainda não apanhaste a lógica da programação. Vou-te dar, então, uma pequenina lição até porque estou fartinho de Química Orgânica e preciso de algo diferente para me distrair - considera-te um gajo com sorte 😛 Ora bem, um programa, em termos genéricos, tem 3 partes: declarações; métodos; bloco principal. Nas declarações indicas qual o programa e as variáveis globais. Nos métodos crias procedimentos e funções auxiliares, mas como para já não precisas deles, fica só anotado. No bloco principal tens todo o corpo do programa e as suas principais operações. (* declarações *) PROGRAMA exemplo VARIÁVEIS nome : string idade : integer (* métodos - fica para outra ocasião *) INÍCIO (* bloco principal *) // programa FIM De seguida, um programa tem por princípio um fluxo de dados chamado de input/output (a sigla I/O é muito utilizada). Basicamente: Input - fluxo de dados do utilizador para o computador - entrada de dados. Output - fluxo de dados do computador para o utilizador - saída de dados. Para cada um destes fluxos utilizamos, em pseudocódigo, um e um só método. A minha preferência pessoal é a seguinte: Input -> ler() Output -> escrever() Tu tens uma mania incontrolável de utilizar, pelo menos, 3 métodos. Neste caso tu tens escrever, ler e sair. Pah, decide-te de uma vez porque num pseudocódigo só podes ter 2 métodos, um para input e outro para output. As variáveis armazenam em si dados de diferentes tipos. As variáveis devem ser declaradas e devem ter explícito qual o seu tipo. Não se indica se é de input ou de output: qualquer variável pode sofrer input e output. Há regras para dar nomes às variáveis, entre elas: -> não pode incluir símbolos, excepto o _ -> não pode começar por um número, mas pode contê-los mais à frente -> não pode incluir espaços -> regra geral, não inclui cedilhas, til, acentos... Posto isto, vamos exemplificar input e output de dados: 1) Escrever uma simples frase - informação, ordem, alerta, etc... escrever("Olá, esta é uma frase de exemplo.") Nada mais que isto... ATENÇÃO! As frases devem ficar entre aspas "" ou plicas '' 2) Ler o valor de uma variável - input de dados: ler(nome) Quando vais ler um valor, só metes o nome da variável no método de input! Não metes lá uma frase... As frases ficam para o método próprio de output. Já vamos ver mais à frente isto num exemplo mais completo. ATENÇÃO! o nome da variável não fica entre aspas "" nem plicas '' 3) Escrever uma frase com o valor de uma variável no meio: escrever("Olá, ", nome, "! Bem-vindo!") Vamos agora criar um programa, em pseudocódigo, que pergunta o nome do utilizador e dá-lhe as boas-vindas: PROGRAMA Ola VARIÁVEIS nome : string INÍCIO escrever("Introduza o seu nome:") ler(nome) escrever("Olá, ", nome, "! Bem-vindo!") FIM Para atribuir valores às variáveis a nível interno (sem ser por input), utiliza-se =, embora há quem use := Exemplo do programa da soma: PROGRAMA soma VARIÁVEIS num1, num2, soma : integer INÍCIO escrever("Introduza numero 1:") ler(num1) escrever("Introduza numero 2:") ler(num2) soma = num1 + num2 escrever("A soma é: ", soma) FIM Finda esta introdução ao pseudocódigo e à logica da programação, deixo-te em Pascal este programa da soma: program soma; var num1, num2, soma : integer; begin writeln('Introduza numero 1:'); readln(num1); writeln('Introduza numero 2:'); readln(num2); soma := num1 + num2; writeln('A soma e: ', soma); readln; // pausa para evitar o programa terminar de repente end. Espero sinceramente que após ter teclado isto tudo tu comeces a saber o que fazes no pseudocódigo e não andes apenas a dar tiros no escuro. Vou-me chatear a sério se continuares com os teus vícios e não aprenderes. Cumprimentos. Edited October 16, 2012 at 08:44 PM by thoga31 Knowledge is free!
Ruka284 Posted October 19, 2012 at 01:58 AM Author Report #479682 Posted October 19, 2012 at 01:58 AM Obrigado THOGA, muito obrigado pela tua explicação. Fiz este programa para identificar o numero que e maior que o outro. Programa o Maior Var num1, num2 Inicio escrever(`introduza o num1´,numero); ler(numero1) escrever(`introduza o num2´,numero); ler(numero2); se (num1>num2)então maior=num1 fim prog.
Warrior Posted October 19, 2012 at 04:58 AM Report #479684 Posted October 19, 2012 at 04:58 AM "E então? Qual é o resultado?" -> isto sou eu a usar o teu programa.
HappyHippyHippo Posted October 19, 2012 at 10:41 AM Report #479715 Posted October 19, 2012 at 10:41 AM 1º - ja tens post suficientes para perceber que existe o geshi, por favor usa as tags code para o tue pseudo-código mais informação no fundo da página, link Ajuda 2º - tens de começar a interiorizar que em programação, tudo o que é escrito conta. seja uma palavra, uma virgula, um balão de hélio, tudo. e se tudo conta, tens de ter uma razão para que essa entrada no código exista. por essa razão, podes explicar o porque de : escrever(`introduza o num1´,numero); // o porque de ",numero" ?? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Ruka284 Posted October 19, 2012 at 02:13 PM Author Report #479740 Posted October 19, 2012 at 02:13 PM Falta dar a saída. Fica assim. Sair("o maior e num1"); Fim programa Se estou a mencionar num a " quero dizer que so aceita número, porque se reparares o que sai e o que esta no meio dos " " e o número não esta, não sei se me fiz entender.
HappyHippyHippo Posted October 19, 2012 at 02:15 PM Report #479741 Posted October 19, 2012 at 02:15 PM Se estou a mencionar num a " quero dizer que so aceita número, porque se reparares o que sai e o que esta no meio dos " " e o número não esta, não sei se me fiz entender. não te fizeste entender IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Ruka284 Posted October 19, 2012 at 02:51 PM Author Report #479747 Posted October 19, 2012 at 02:51 PM O que sai em output e o que esta entre " " as aspas como número não esta, não vai sair. Eu ao meter números no fim, so aceita números .
Warrior Posted October 19, 2012 at 03:48 PM Report #479760 Posted October 19, 2012 at 03:48 PM Ruka284: já falámos sobre isto anteriormente, estou com a impressão que não estás a pensar o suficiente antes de fazer os posts. - Não sei o que é "sair". Queres escrever? Então usas escrever, não vais usar sair e escrever para representar a mesma coisa. Aprende com os erros. - Se fazes escrever(num1); queres dizer que o num1 é sempre o maior?
Ruka284 Posted October 19, 2012 at 04:57 PM Author Report #479767 Posted October 19, 2012 at 04:57 PM Ruka284: já falámos sobre isto anteriormente, estou com a impressão que não estás a pensar o suficiente antes de fazer os posts. - Não sei o que é "sair". Queres escrever? Então usas escrever, não vais usar sair e escrever para representar a mesma coisa. Aprende com os erros. - Se fazes escrever(num1); queres dizer que o num1 é sempre o maior? O num1 pode ser qualquer numero, foi so para identificar a variavel.
HappyHippyHippo Posted October 19, 2012 at 05:01 PM Report #479770 Posted October 19, 2012 at 05:01 PM O que sai em output e o que esta entre " " as aspas como número não esta, não vai sair. Eu ao meter números no fim, so aceita números . uma pergunta, nasceste fora de Portugal e tens dificuldade em te exprimir ? estas frases nem tem sentido nenhum. IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Ruka284 Posted October 19, 2012 at 05:07 PM Author Report #479771 Posted October 19, 2012 at 05:07 PM sou estrangeiro.
HappyHippyHippo Posted October 19, 2012 at 05:12 PM Report #479775 Posted October 19, 2012 at 05:12 PM sou estrangeiro. ok, sem problemas, mas mesmo assim tens de ser mais claro no que escreves, porque senão irás ouvir continuamente as pessoas dizer que o que escreves não faz sentido (como eu acabei de o dizer) tenta lá explicar outra vez, mas de uma forma clara a linha: escrever(`introduza o num1´,numero); IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Ruka284 Posted October 19, 2012 at 05:21 PM Author Report #479781 Posted October 19, 2012 at 05:21 PM ok, sem problemas, mas mesmo assim tens de ser mais claro no que escreves, porque senão irás ouvir continuamente as pessoas dizer que o que escreves não faz sentido (como eu acabei de o dizer) tenta lá explicar outra vez, mas de uma forma clara a linha: escrever(`introduza o num1´,numero); Ok, vou tentar. E o resto da sintaxe está boa ??
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now