Ir ao conteúdo

Duvida sobre REGISTRO em pascal!


Visitante: throm93

Posts recomendados

Visitante: throm93
 
Postado

Coloquei mas a parte que esta dando erro, no menu digito 1 para cadastras os 20 pacientes, mas na op=2 mostrar em ordem de cadastro o programa esta mostrando somente os 5 últimos, mas na op=3 que seria em ordem alfabética ele mostra todos os nomes, ou seja o programa esta armazenando as 20 informações mas não mostra todas na op=2.

Ficou na espera de alguma resposta, obrigado.

Program Ex1;
type consultorio=record
nomepac,nomemed,nascimento,sexo:string[30];
end;
var i,j,op,orde,rep:integer;
aux,expac,exmed,s:string[35];
inf:array [1..20] of consultorio;


procedure cadastrar(op:integer);
begin
if op=1 then
begin
writeln ( ' 1 - Cadastrar Pacientes ');
writeln;
for i:=1 to 20 do
begin
writeln (' Nome do ',i,' Paciente ');
readln (inf[i].nomepac);
writeln(' Data de nacimento (Ex: 01.01.2013);');
readln (inf[i].nascimento);
repeat
writeln (' Sexo do paciente ( M ou F ) ');
readln(s);
if (s='M') or (s='m') or (s='f') or (s='F') then
inf[i].sexo:=s
else
writeln (' SEXO INVALIDO ' );
until (s='M') or (s='m') or (s='f') or (s='F');
writeln (' Nome do medico ');
readln (inf[i].nomemed);
clrscr;
end;

end;
end;

procedure mosttodos(op:integer);
begin
if op=2 then
begin
writeln (' 2 - Mostrar pacientes em ordem de cadastramento ' );
writeln;
begin
for i:=1 to 20 do
begin
writeln ('Paciente:',inf[i].nomepac,' ','Nascimento:',inf[i].nascimento,' ','Sexo:',inf[i].sexo,' ','Medico:',inf[i].nomemed,' ');
writeln;
end;
end;
end;
end;
Begin
rep:=1;
while (rep=1) do
begin
writeln(' ============================================== ');
write(' =======BEM VINDO AO SISTEMA DO CONSULTORIO==== ');
writeln (' ============================================== ');
writeln;
writeln;

writeln (' 1 - Cadastrar Pacientes ');
writeln;
writeln (' 2 - Mostrar pacientes em ordem de cadastramento ' );
writeln;
writeln (' 3 - Mostrar pacientes em ordem crescente (ordenar pelo nome) ');
writeln;
writeln (' 4 - Mostrar pacientes em ordem decrescente (ordenar pelo nome) ');
writeln;
writeln (' 5 - Excluir pacientes individualmente ');
writeln;
writeln (' 6 - Excluir pacientes por medico ');
writeln;
writeln (' 0 - Sair ');
readln (op);
clrscr;
if (op=0) then
begin
rep:=0;
end;
cadastrar(op);
mosttodos(op);
mostcre(op);
mostdec(op);
excpac(op);
excmed(op);
end;
End.

Postado

Olá, aqui seu programa tá exibindo todos os pacientes na opção 2, mas não aparecem todos por falta de espaço na tela. Tirei um writeln (marcado de vermelho abaixo) e resolveu, veja se dá certo aí:


writeln ('Paciente:',inf[i].nomepac,' ','Nascimento:',inf[i].nascimento,' ','Sexo:',inf[i].sexo,' ','Medico:',inf[i].nomemed,' ');
[COLOR="Red"]writeln;[/COLOR]

Visitante: throm93
 
Postado

Deu certo, eu nao sabia que tinha isso de falta de espaço. Obrigado :)

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!