Você está na página 1de 7

c 

  
 

  


X: nº de contactos existentes na tabela,
Data_hoje,
Dia_do_ano,
Tipo_de_relacao: ͞familiar͟,͟colegaescola͟,͟colegadetrabalho͟,͟cliente͟,͟fornecedor͟,͟outro͟
nstr1 (palavra 1),
nstr2 (palavra 2),
chArrnstr1 (tabela de caracteres)
chArrnstr2 (tabela de caracteres)
Agendaavançada:
Nome: texto
Empresa: texto
Dnascimento: inteiro
Telefone: inteiro
E-Mail: texto
Relacionamento : texto

dadosAgendaAvancada [100] : Agendaavancada


 

Algoritmo: Menu Principal


OP і 0
REPETIR

Listar contactos por ordem alfabética:


Enquanto (ia<x)
contadorіx-1
enquanto (ia2<x)
nstr1 = dadosAgendaAvancada[ia].nome
nstr2 = dadosAgendaAvancada[ia2].nome
chArrnstr1 = nstr1.ToCharArray()
chArrnstr2 = nstr2.ToCharArray()
SE (chArrnstr1 [j]< chArrnstr2 [j])
Contador2іcontador2-1
tabela_nome[ia]і Contador2

Enquanto (i<x)
dadosAgendaAvancada2[tabela_nome[i]] іdadosAgendaAvancada[i]
Enquanto (i<x)
Escrever (dadosAgendaAvancada2[tabela_nome[i]])

Escrever (lista de contactos)


Escrever (D: listar contactos por número de telefone)
Escrever (E: adicionar, editar e remover)
Escrever (B: aniversários)
Escrever (P: pesquisar contacto)
Escrever (F: filtrar contacto)
Escrever (S: sair)

Ler (OP)
Caso OP SEJA

D: listar contactos por número de telefone


Enquanto (i<x) fazer: contador=x-1
ENQUANTO (i<x2)
SE (dadosAgendaAvancada[i].telefone<dadosAgendaAvancada[i2].telefone
Contador=contador-1
Tabela[i]=contador
Enquanto (i<x) fazer (dadosAgendaAvancada2[tabela[i]]= dadosAgendaAvancada[i]
Enquanto (i<x) escrever (dadosAgendaAvancada2[i] )
Fim_caso

E: (adicionar, editar e remover)


Escrever (1:editar contacto)
Escrever (2:adicionar contacto)
Escrever (3:remover contacto)

Ler (OP)
Caso (OP) seja

1: ler: (valor_introduzido)
Ler: contacto a editar
(Dadosagendaavancada[contacto a editar]) і valor_introduzido
Fim_caso

2: ler: (valor_introduzido)
(dadosAgendaAvancada[x]) і valor_introduzido
(x=x+1)
Fim_caso

3: ler: (contacto a remover)


(dadosAgendaAvancada[contacto a remover].nomeі´´{DELL}͛͛
Fim_caso

B: (aniversários)
Dia_do_anoі(((data_hoje%10000)/100)-1)*30+((data_hoje%10000)%100)
minimoі 10000
enquanto (i<x)
tabela_dias[i] і(((dadosAgendaAvancada2[i].dnascimento%10000)/100)1)*30+
(((dadosAgendaAvancada2[i].dnascimento%10000)%100))dia_do_ano
SE tabela_dias [i]<0
tabela_dias[i] і tabela_dias[i]+365
SE mínimo>=tabela_dias[i]
minimoі tabela_dias[i]
indiceіi
SE mínimo<8
Escrever (͞lembrança aniversário breve͟)
Escrever (͞lista ordenada por aniversario͟)
Enquanto (i<x)
contadorіx-1
enquanto (i2<x)
SE (tabela_dias[i]< tabela_dias[i2]
contadorіcontador-1
tabela_contador[i]іcontador
Enquanto(a<x)
Enquanto(i<x)
SE (a=tabela_contador[i])
Escrever (dadosAgendaAvancada2[i]
Fim_caso

P: (pesquisar contacto)
Escrever (1:pesquisar por empresa)
Escrever (2:pesquisar por nome)
Escrever (3:pesquisar por empresa e nome)
Escrever (4:pesquisar por empresa ou nome)

Ler (OP)
Caso (OP) seja
1: ler (valor_introduzido)
ENQUANTO (i<x)
SE (dadosAgendaAvancada2[i].empresa=valor_introduzido)
ESCREVER (dadosAgendaAvancada2[i])
Fim_caso

2: ler (valor_introduzido)
ENQUANTO (i<x)
SE (dadosAgendaAvancada2[i].nome=valor_introduzido)
ESCREVER (dadosAgendaAvancada2[i])
Fim_caso

3: ler (valor_introduzido 1,2)


ENQUANTO (i<x)
SE (dadosAgendaAvancada2[i].empresa=valor_introduzido1 && dadosAgendaAvancada2[i].nome=valor_introduzido2 )
ESCREVER (dadosAgendaAvancada2[i])
Fim_caso

4: ler (valor_introduzido)
ENQUANTO (i<x)
SE (dadosAgendaAvancada2[i].empresa=valor_introduzido || dadosAgendaAvancada2[i].nome=valor_introduzido)
ESCREVER (dadosAgendaAvancada2[i])
Fim_caso

F: (filtrar contacto)
Escrever (1:pesquisar por empresa)
Escrever (2:pesquisar por tipo de ralacionamento)

Ler (OP)
Caso (OP) seja
1: ler (valor_introduzido)
ENQUANTO (i<x)
SE (dadosAgendaAvancada2[i].empresa=valor_introduzido)
ESCREVER (dadosAgendaAvancada2[i])
Fim_caso

2: escrever (tipo_de_relacao)
LER (valor_introduzido)
ENQUANTO (i<x)
SE (dadosAgendaAvancada2[i].relacao=valor_introduzido)
ESCREVER (dadosAgendaAvancada2[i])
Fim_caso

S: (sair)
Escrever (fim_programa)
Fim_caso

Até (OP) ser igual a ͚͛s͛͛


m