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