1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Programa configuraçao electronica

Discussão em 'Programação' iniciada por seravath, 29 de Abril de 2009. (Respostas: 4; Visualizações: 819)

  1. Boa noite meus amigos, aqui ha uns tempos pedi um auxilio a voces num trabalho para fisico quimica, em que tinha que fazer um programa em pascal que fizesse a configuraçao electronica de um elemento quimico pedido pelo utilizador. estava a complicar muito o meu raciocinio pois o programa envolve apenas a função if.. contudo continuo com uma pequena duvida,um pequeno promenor. Alguem sabe como faço para que o programa continue sempre a fazer a pergunta ao utilizador sem ser necessário fechar e abrir de novo???


    alguem me esclareça, deixo-vos aqui o programa, pode ser-vos util! obrigado!

    Código:
    program configuracao;
    uses wincrt;
    var numero : integer;
    begin;
    writeln ('Configuração electrónica');
    Writeln ('Introduza o numero atómico:');
    read (numero);
    If numero = 1 THEN
    writeln ('1s1');
    If numero = 2 THEN
    writeln ('1s2');
    If numero = 3 THEN
    writeln ('1s2 2s1');
    If numero = 4 THEN
    writeln ('1s2 2s2');
    If numero = 5 THEN
    writeln ('1s2 2s2 2p1');
    If numero = 6 THEN
    writeln ('1s2 2s2 2p2');
    If numero = 7 THEN
    writeln ('1s2 2s2 2p3');
    If numero = 8 THEN
    writeln ('1s2 2s2 2p4');
    If numero = 9 THEN
    writeln ('1s2 2s2 2p5');
    If numero = 10 THEN
    writeln ('1s2 2s2 2p6');
    If numero = 11 THEN
    writeln ('1s2 2s2 2p6 3s1');
    If numero = 12 THEN
    writeln ('1s2 2s2 2p6 3s2');
    If numero = 13 THEN
    writeln ('1s2 2s2 2p6 3s2 3p1');
    If numero = 14 THEN
    writeln ('1s2 2s2 2p6 3s2 3p2');
    If numero = 15 THEN
    writeln ('1s2 2s2 2p6 3s2 3p3');
    If numero = 16 THEN
    writeln ('1s2 2s2 2p6 3s2 3p4');
    If numero = 17 THEN
    writeln ('1s2 2s2 2p6 3s2 3p5');
    If numero = 18 THEN
    writeln ('1s2 2s2 2p6 2s2 3p6');
    If numero = 19 THEN
    writeln ('1s2 2s2 2p6 2s2 3p6 2s1 ');
    If numero = 20 THEN
    writeln ('1s2 2s2 2p6 2s2 3p6 2s2');
    end.
    
     
    Última edição pelo moderador: 29 de Abril de 2009
  2. xiserre

    xiserre Power Member

    Eu ja nao tou muito a par de pascal, mas se fizeres um ciclo while, e englobares todos os teus if's embricados resulta.. se tu usares o case, nao ficara melhor??
     
  3. eu no inicio ía usar a função case mas o meu professor disse que nao queria, queria de outra maneira e a outra maneira que encontro é esta. tou num curso de informático, 11ºano, dei o pascal o ano passado, este ano exigem estes programas na disciplina de fisico quimica(promenores..) mas obrigado pela ajuda.;)
     
  4. se usares um while ou repeat .... until, o programa mantém se a correr até tu enviares a condição de paragem

    Ex:
    Código:
    program configuracao;
    uses wincrt;
    var numero : integer;
    begin;
    repeat
      clrscr;
      writeln ('Configuração electrónica');
      Writeln ('Introduza o numero atómico:');
      read (numero);
      If numero = 1 THEN
        writeln ('1s1');
      If numero = 2 THEN
        writeln ('1s2');
      If numero = 3 THEN
        writeln ('1s2 2s1');
      If numero = 4 THEN
        writeln ('1s2 2s2');
      If numero = 5 THEN
        writeln ('1s2 2s2 2p1');
      If numero = 6 THEN
    ....
    until numero = 0;
    end.
    
    penso que assim funcione, mas nada como testares. e um case não ficaria mais bonito? :p
     
  5. Psycop

    Psycop I fold therefore I AM

    Deste modo so te complicam as coisas, pois usando a função case, o programa ficaria mais organizado e até mais rapido a executar, uma vez quando se usa mais do 5\6 vezes a função if, se torma mais viavel usar a função case, para um maior numero de utilizações...
     

Partilhar esta Página