os construtores tem a mesma função que as variáveis , fazem as mesma operações para os objectos.
O construtor é uma rotina que é invocada quando uma instância de uma classe é criada. esta rotina precisa ter o nome New para identificar o construtor.
aqui fica o exemplo :
Public Class Aluno
......
Public Sub New()
_Datamatricula = DateTime.Now
End Sub
End Class
este construtor esta na forma mais simples .
os construtores podem também utilizar parâmetros
exemplo:
Public Class Aluno
......
Public Sub New(ByVal Nome As String , ByVal DataNascimento As String ,ByVal DataMatricula As Date)
_Nome = Nome
_Datamatricula = DataMatricula
_DataNascimento = DataNascimento
End Sub
End Class
ainda podias criar mais construtores com os mesmo campos que nao havia problema o que tinha que mudar era os parâmetros de cada um deles
exemplo:
Public Class Aluno
......
Public Sub New()
_Datamatricula = DateTime.Now
End Sub
Public Sub New(ByVal Nome As String , ByVal DataNascimento As Date ,ByVal DataMatricula As Date)
_Nome = Nome
_Datamatricula = DataMatricula
_DataNascimento = DataNascimento
End Sub
Public Sub New(ByVal Nome As String , ByVal Idade As Date )
_Nome = Nome
_DataNascimento = (DateTime.Now - Idade)
End Sub
Public Sub New(ByVal Nome As String , ByVal Endereco As String)
_Nome = Nome
_Endereco = Endereco
End Sub
End Class
e-portfolio
terça-feira, 11 de junho de 2013
modulo 11 ( introduçao)
neste modulo abordamos a criaçao de class , class derivadas e class com construtores
sexta-feira, 1 de março de 2013
Program Fila;
Type TipoNo=record
info:string;
prox:^TipoNo;
end;
Var Fr_Fila:^TipoNo;
Cd_Fila:^TipoNo;
Px:^TipoNo;
op:char;
Procedure inserir;
Begin
new(Px);
write('Introduza o nome a inserir!');
read(Px^.info);
Px^.prox:=nil;
if (Fr_Fila=nil) then
Fr_fila:=px;
else
Cd_fila^.prox:=px;
Cd_fila:=Px;
End;
Procedure percorrer;
Begin
Px:=Fr_fila;
if (Px=nil) then
writeln('Dado encontrado: ',Px^.info);
Px:=Px^.prox;
end;
Procedure remover;
Begin
if Fr_fila=nil then
writeln('Fila Vazia');
else
begin
Px:=Fr_fila;
writeln('Elemento removido: ',Px^.info);
Fr_fila:=Fr_fila^.prox;
end;
if Fr_fila=nil then
Cd_fila:=nil;
dispose(Px);
end;
End;
Begin
Fr_fila:=nil;
Cd_fila:=nil;
repeat
writeln('******Menu*******');
writeln('1 - Novo dado');
writeln('2 - Mostrar dados');
writeln('3 - Apagar dado');
writeln('0 - Sair');
read(escolha);
case escolha of
'1':inserir;
'2':percorrer;
'3':remover;
'0':writeln('Fechar Programa');
end;
until(escolha='0');
End.
Type TipoNo=record
info:string;
prox:^TipoNo;
end;
Var Fr_Fila:^TipoNo;
Cd_Fila:^TipoNo;
Px:^TipoNo;
op:char;
Procedure inserir;
Begin
new(Px);
write('Introduza o nome a inserir!');
read(Px^.info);
Px^.prox:=nil;
if (Fr_Fila=nil) then
Fr_fila:=px;
else
Cd_fila^.prox:=px;
Cd_fila:=Px;
End;
Procedure percorrer;
Begin
Px:=Fr_fila;
if (Px=nil) then
writeln('Dado encontrado: ',Px^.info);
Px:=Px^.prox;
end;
Procedure remover;
Begin
if Fr_fila=nil then
writeln('Fila Vazia');
else
begin
Px:=Fr_fila;
writeln('Elemento removido: ',Px^.info);
Fr_fila:=Fr_fila^.prox;
end;
if Fr_fila=nil then
Cd_fila:=nil;
dispose(Px);
end;
End;
Begin
Fr_fila:=nil;
Cd_fila:=nil;
repeat
writeln('******Menu*******');
writeln('1 - Novo dado');
writeln('2 - Mostrar dados');
writeln('3 - Apagar dado');
writeln('0 - Sair');
read(escolha);
case escolha of
'1':inserir;
'2':percorrer;
'3':remover;
'0':writeln('Fechar Programa');
end;
until(escolha='0');
End.
Program Hospital;
type hosp=record
ndoente:integer;
nome:string;
morada:string;
estado:string;
nss:string;
tconsulta:string;
data:string;
reforma:string;
end;
var fich: file of hosp;
a,op:integer;
dat:string;
paciente:hosp;
custo:real;
procedure criar_ficheiro;
begin
assign(fich,'Hospital.dat');
rewrite(fich);
close(fich);
end;
procedure dados;
begin
reset(fich);
seek(fich, filesize(fich));
write('N. do paciente (4 digitos) -->');
Readln(paciente.ndoente);
write('Nome do paciente -->');
Readln(paciente.nome);
Write('Morada -->');
readln(paciente.morada);
Repeat
writeln('Qual o estado civil?');
writeln('1-Casado');
writeln('2-Solteiro');
writeln('3-Viuvo');
writeln('4-Divorciado');
Readln(a);
If a=1 Then paciente.estado:='Casado';
If a=2 Then paciente.estado:='Solteiro';
If a=3 Then paciente.estado:='Vi£vo';
If a=4 Then paciente.estado:='Divorciado';
until ((a=1) or (a=2) or (a=3) or (a=4));
write('Numero da Seguran‡a Social (4 digitos) -->');
Readln(paciente.nss);
Repeat
writeln('Qual o tipo de consulta?');
writeln('1-Urgencia');
writeln('2-Marcada');
Readln(a);
If a=1 Then paciente.tconsulta:='Urgencia';
If a=2 Then paciente.tconsulta:='Marcada';
until ((a=1) or (a=2));
write('Data da consulta -->');
Readln(paciente.data);
Repeat
writeln('Reformado?');
writeln('1-Sim');
writeln(,'2-NÆo');
Readln(a);
If a=1 Then paciente.reforma:='Sim';
If a=2 Then paciente.reforma:='NÆo';
until ((a=1) or (a=2));
write(fich,paciente);
close(fich);
end;
procedure listar;
begin
reset(fich);
If filesize(fich)=0 then
Write('NÆo h consultas marcadas')
Else
Begin
Writeln('N de SS', '==','Nome','==','Morada','==','Estado','==','Tipo de Consulta','==',Data');
while not eof (fich) do
begin
read(fich,paciente);
Writeln(paciente.nss,' ',paciente.nome,' ',paciente.morada,' ',paciente.estado, ' ',paciente.tconsulta,' ',paciente.data);
end;
close(fich);
end;
end;
Procedure consultar;
begin
write('Introduza a data -->');
read(dat);
reset(fich);
Writeln('N de SS', '==','Nome','==','Morada','==','Estado','==','Tipo de Consulta','==','Data');
while not eof (fich) do
begin
read(fich,paciente);
if paciente.data=dat then
Writeln(paciente.nss,' ',paciente.nome,' ',paciente.morada,' ',paciente.estado, ' ',paciente.tconsulta,' ',paciente.data);
end;
end;
procedure relatorio;
begin
reset(fich);
Writeln('N§ de SS','-----------------','Nome','-----------------','Total a Pagar');
While not eof (fich) do
begin
read(fich, paciente);
custo:=0;
if paciente.estado='Casado' then custo:=custo+10;
if paciente.estado='Solteiro' then custo:=custo+12;
if paciente.estado='Vi£vo' then custo:=custo+5;
if paciente.estado='Divorciado' then custo:=custo+5;
if paciente.tconsulta='Urgencia' then custo:=custo+2;
if paciente.reforma='Sim' then custo:=custo*0.8;
Writeln(paciente.nss,' ',paciente.nome,' ',custo:4:2,'euros');
end;
close(fich);
end;
procedure apagar;
begin
rewrite(fich);
end;
Begin
repeat
Writeln;
Writeln;
writeln('# Escolha uma das opcoes: #');
Writeln('# 1-Criar ficheiro #');
Writeln('# 2-Introduzir dados das consultas #');
writeln('# 3-Apresentar todas as consultas marcadas #');
writeln('# 4-Apresentar as consultas marcadas para um determinado dia #');
writeln('# 5-Relat¢rio de custos das consultas #');
Writeln('# 6-Apagar os pacientes da lista de consultas #');
writeln('# 7-Sair #');
readln(op);
case op of
1:criar_ficheiro;
2:dados;
3:listar;
4:consultar;
5:relatorio;
6:apagar;
end;
until(op=7);
End.
type hosp=record
ndoente:integer;
nome:string;
morada:string;
estado:string;
nss:string;
tconsulta:string;
data:string;
reforma:string;
end;
var fich: file of hosp;
a,op:integer;
dat:string;
paciente:hosp;
custo:real;
procedure criar_ficheiro;
begin
assign(fich,'Hospital.dat');
rewrite(fich);
close(fich);
end;
procedure dados;
begin
reset(fich);
seek(fich, filesize(fich));
write('N. do paciente (4 digitos) -->');
Readln(paciente.ndoente);
write('Nome do paciente -->');
Readln(paciente.nome);
Write('Morada -->');
readln(paciente.morada);
Repeat
writeln('Qual o estado civil?');
writeln('1-Casado');
writeln('2-Solteiro');
writeln('3-Viuvo');
writeln('4-Divorciado');
Readln(a);
If a=1 Then paciente.estado:='Casado';
If a=2 Then paciente.estado:='Solteiro';
If a=3 Then paciente.estado:='Vi£vo';
If a=4 Then paciente.estado:='Divorciado';
until ((a=1) or (a=2) or (a=3) or (a=4));
write('Numero da Seguran‡a Social (4 digitos) -->');
Readln(paciente.nss);
Repeat
writeln('Qual o tipo de consulta?');
writeln('1-Urgencia');
writeln('2-Marcada');
Readln(a);
If a=1 Then paciente.tconsulta:='Urgencia';
If a=2 Then paciente.tconsulta:='Marcada';
until ((a=1) or (a=2));
write('Data da consulta -->');
Readln(paciente.data);
Repeat
writeln('Reformado?');
writeln('1-Sim');
writeln(,'2-NÆo');
Readln(a);
If a=1 Then paciente.reforma:='Sim';
If a=2 Then paciente.reforma:='NÆo';
until ((a=1) or (a=2));
write(fich,paciente);
close(fich);
end;
procedure listar;
begin
reset(fich);
If filesize(fich)=0 then
Write('NÆo h consultas marcadas')
Else
Begin
Writeln('N de SS', '==','Nome','==','Morada','==','Estado','==','Tipo de Consulta','==',Data');
while not eof (fich) do
begin
read(fich,paciente);
Writeln(paciente.nss,' ',paciente.nome,' ',paciente.morada,' ',paciente.estado, ' ',paciente.tconsulta,' ',paciente.data);
end;
close(fich);
end;
end;
Procedure consultar;
begin
write('Introduza a data -->');
read(dat);
reset(fich);
Writeln('N de SS', '==','Nome','==','Morada','==','Estado','==','Tipo de Consulta','==','Data');
while not eof (fich) do
begin
read(fich,paciente);
if paciente.data=dat then
Writeln(paciente.nss,' ',paciente.nome,' ',paciente.morada,' ',paciente.estado, ' ',paciente.tconsulta,' ',paciente.data);
end;
end;
procedure relatorio;
begin
reset(fich);
Writeln('N§ de SS','-----------------','Nome','-----------------','Total a Pagar');
While not eof (fich) do
begin
read(fich, paciente);
custo:=0;
if paciente.estado='Casado' then custo:=custo+10;
if paciente.estado='Solteiro' then custo:=custo+12;
if paciente.estado='Vi£vo' then custo:=custo+5;
if paciente.estado='Divorciado' then custo:=custo+5;
if paciente.tconsulta='Urgencia' then custo:=custo+2;
if paciente.reforma='Sim' then custo:=custo*0.8;
Writeln(paciente.nss,' ',paciente.nome,' ',custo:4:2,'euros');
end;
close(fich);
end;
procedure apagar;
begin
rewrite(fich);
end;
Begin
repeat
Writeln;
Writeln;
writeln('# Escolha uma das opcoes: #');
Writeln('# 1-Criar ficheiro #');
Writeln('# 2-Introduzir dados das consultas #');
writeln('# 3-Apresentar todas as consultas marcadas #');
writeln('# 4-Apresentar as consultas marcadas para um determinado dia #');
writeln('# 5-Relat¢rio de custos das consultas #');
Writeln('# 6-Apagar os pacientes da lista de consultas #');
writeln('# 7-Sair #');
readln(op);
case op of
1:criar_ficheiro;
2:dados;
3:listar;
4:consultar;
5:relatorio;
6:apagar;
end;
until(op=7);
End.
Subscrever:
Comentários (Atom)




