Programa configuraçao electronica

seravath

Membro
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:
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??
 
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.;)
 
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
 
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...
 
Back
Topo