Jump to content

Recommended Posts

Posted

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

Posted

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

Posted

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

Posted

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
Posted

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

Posted (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 by Ruka284
Posted

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.

Posted (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 by thoga31

Knowledge is free!

Posted

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.

Posted

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
Posted

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.

Posted

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?

Posted

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.

Posted

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
Posted

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.