Escolar Documentos
Profissional Documentos
Cultura Documentos
RA: 9897526852
RA: 8822387481
RA: 1299259320
DAURIO
computacional
baseada
em
Anpolis GO
2015
1
SUMARIO
INTRODUCAO..........................................................................................................................3
DESENVOLVIMENTO..............................................................................................................4
RELATRIO 1 - ESTRUTURA DE DADOS............................................................................4
PROGRAMA EM LINGUAGEM C DA ESTRUTURA AVIO..............................................5
RELATRIO 2 - LISTAS LIGADAS........................................................................................9
PROGRAMA EM LINGUAGEM C DA ESTRUTURA DE DADOS VOO.............................9
PROGRAMA EM LINGUAGEM C DA ESTRUTURA PASSAGEM...................................13
REFERENCIAS BIBLIOGRAFICAS......................................................................................17
INTRODUO
Uma struct uma varivel especial que contm diversas outras variveis normalmente
de tipos diferentes.
Podemos dizer que as structs da linguagem C so o equivalente ao que se denomina
registros em outras linguagens de programao.
DESENVOLVIMENTO
RELATRIO 1 - ESTRUTURA DE DADOS
Alocao de Memria
Todo programa precisa utilizar memria para ser executado. Quando um programa
inicia sua execuo, ele comea a solicitar memria ao sistema operacional, ou seja, faz a
alocao de memria necessria para a sua execuo. Nem sempre a memria alocada na
iniciao do programa suficiente, ento o programa tambm precisa alocar memria durante
a sua execuo.
Alocao Esttica de Memria
Na alocao esttica o espao de memria, que as variveis iro utilizar durante a
execuo do programa, definido no processo de compilao. No sendo possvel alterar o
tamanho desse espao durante a execuo do programa.
Exemplos:
a) Espao reservado para um valor do tipo char. O char ocupa 1 byte na memria.
char a;
b) Espao reservado para dez valores do tipo int. O int ocupa 4 bytes na memria,
portanto 4x10=40 bytes.
int vetor[10];
c) Espao reservado para nove(3x3) valores do tipo double. O double ocupa 8 bytes na
memria, portanto 3x3x8=72 bytes.
double matriz[3][3];
Este tipo de alocao utilizado quando se sabe de antemo a quantidade de memria
que ser utilizada pelo programa.
a_modelo;
char
b_fabricante[20];
int
c_passageiros;
float
d_comprimento;
float
e_altura;
int
f_velocidade;
int
g_altitude;
int
h_motor;
break;
}
if (m == 'n'){
printf("\n\n");
}
}
celula *ALOCA(){
celula *nova = (aviao *) malloc(sizeof(aviao));
nova->prox = NULL;
return nova;
}
celula *LER(){
celula *nova;
nova = ALOCA();
printf("MODELO: ");
scanf("%d", &nova->a_modelo);
printf("FABRICANTE: ");
fflush(stdin);
gets(nova->b_fabricante);
printf("PASSAGEIROS: ");
scanf("%d", &nova->c_passageiros);
printf("VELOCIDADE: ");
scanf("%d", &nova->f_velocidade);
printf("ALTITUDE: ");
scanf("%d", &nova->g_altitude);
printf("MOTOR: ");
scanf("%d", &nova->h_motor);
return nova;
}
void INSERIR_VALOR_NA_LISTA(celula *nova, celula *ini){
if (ini == NULL){
ini = nova;
}
else{
while(ini->prox!=NULL){
ini=ini->prox;
}
ini->prox = nova;
}
}
celula *CONSULTA_VALOR(int valor, celula *atu){
celula *ant = NULL;
return ant;
}
//===============================================================================
void cadastrarAviao(celula *ini){
char opcao = '1';
do{
switch(opcao) {
case '1':
INSERIR_VALOR_NA_LISTA(LER(), ini);
opcao = '9';
break;
case '9':
printf("Cadastrar outro Item <1-Sim/2-Nao>: ");
opcao = getche();
printf("\n");
break;
default:
printf("OPCAO INVALIDA!\n");
opcao = '9';
break;
}
if (aux == NULL)
MSG("ITEM NAO ENCONTRADO!");
else{
morta = aux->prox;
aux->prox = morta->prox;
free(morta);
morta = NULL;
MSG("ITEM EXCLUIDO COM SUCESSO!");
}
}
void EXCLUIR_A_LISTA(celula *ini){
ini->prox = NULL;
MSG("LISTA EXCLUIDA COM SUCESSO!");
}
void consultaAviao(celula *ini){
celula *aux;
if (ini->prox == NULL){
MSG("A LISTA ESTA VAZIA !");
return;
}
int valor;
char opcao = '1';
do{
switch(opcao) {
case '1':
printf("Informe o Item a ser consultado: ");
scanf("%d", &valor);
aux = CONSULTA_VALOR(valor, ini);
if (aux == NULL)
printf("ITEM NAO ENCONTRADO!\n");
else{
aux = aux->prox;
printf("\nMODELO...............: %d\n",
aux->a_modelo);
printf("FABRICANTE...........: %s\n",
aux->b_fabricante);
printf("PASSAGEIROS..........: %d\n",
aux->c_passageiros);
aux->d_comprimento);
aux->f_velocidade);
printf("ALTITUDE.............: %d\n",
aux->g_altitude);
printf("MOTOR................: %d\n",
aux->h_motor);
};
opcao = '9';
break;
case '9':
printf("Consultar outro Item <1-Sim/2-Nao>: ");
opcao = getche();
printf("\n");
break;
default:
printf("OPCAO INVALIDA!\n");
opcao = '9';
break;
}
}while (opcao != '2');
};
void LISTA_COMPLETA(celula *ini){
if (ini->prox == NULL){
MSG("A LISTA ESTA VAZIA !");
return;
}
celula *aux;
printf("==INICIO DA CONSULTA====================================");
printf("\n");
for(aux=ini->prox; aux!=NULL; aux=aux->prox){
printf("\n");
printf("MODELO................: %d |",
printf("FABRICANTE.: %s |",
aux->a_modelo);
aux->b_fabricante);
printf("PASSAGEIROS.: %d |",
aux->c_passageiros);
printf("\n");
printf("COMPRIMENTO EM METROS.: %0.2f |",
aux->d_comprimento);
aux->e_altura);
printf("VELOCIDADE.: %d |",
aux->f_velocidade);
printf("\n");
printf("ALTITUDE..............: %d |",
aux->g_altitude);
printf("MOTOR.: %d |",
aux->h_motor);
printf("\n");
}
printf("\n");
printf("==FINAL DE CONSULTA=====================================");
printf("\n");
system("pause");
};
//===============================================================================
char menu_de_opcoes(){
char op;
printf("\tMenu de Opes\n\t");
printf("---- -- ------\n\t");
MOSTRA_OPCAO('s','1');
printf("\n\t");
MOSTRA_OPCAO('s','2');
printf("\n\t");
MOSTRA_OPCAO('s','3');
printf("\n\t");
MOSTRA_OPCAO('s','4');
printf("\n\t");
MOSTRA_OPCAO('s','5');
printf("\n\t");
MOSTRA_OPCAO('s','6');
printf("\n\t");
MOSTRA_OPCAO('s','7');
printf("\n\t");
MOSTRA_OPCAO('s','8');
printf("\n\t");
MOSTRA_OPCAO('s','9');
printf("\n\t");
MOSTRA_OPCAO('s','0');
printf("\n\t");
printf("\n\t--------------- ");
printf("\n\tInfome a Opo: ");
op = getche();
return op;
}
//===============================================================================
int main(){
celula *cabeca;
cabeca = ALOCA();
system("title Empresa area VOEBEM");
system("COLOR 1F");
setlocale(LC_ALL, "portuguese");
char op;
do{
system("cls");
TITULO();
op = menu_de_opcoes();
MOSTRA_OPCAO('n',op);
switch (op){
case '0':
return 0;
break;
case '1':
cadastrarAviao(cabeca);
break;
case '2':
removeAviao(cabeca);
break;
case '3':
EXCLUIR_A_LISTA(cabeca);
break;
case '4':
consultaAviao(cabeca);
break;
case '5':
LISTA_COMPLETA(cabeca);
break;
default:
MSG("OPCAO INVALIDA !");
break;
}
}while(op != '0');
return 0;
}
a_numero_do_voo;
int
b_data_do_voo;
int
c_horario_do_voo;
char
d_aeroporto_de_Saida[30];
char
e_aeroporto_de_Chegada[30];
int
f_rota;
int
g_tempo_estimado_de_voo;
int
h_passageiros_a_bordo;
nova = ALOCA();
printf("ROTA: ");
scanf("%d", &nova->f_rota);
10
return nova;
}
void INSERIR_VALOR_NA_LISTA(celula *nova, celula *ini){
if (ini == NULL){
ini = nova;
}
else{
while(ini->prox!=NULL){
ini=ini->prox;
}
ini->prox = nova;
}
}
celula *CONSULTA_VALOR(int valor, celula *atu){
celula *ant = NULL;
11
if (aux == NULL)
MSG("ITEM NAO ENCONTRADO!");
else{
morta = aux->prox;
aux->prox = morta->prox;
free(morta);
morta = NULL;
MSG("ITEM EXCLUIDO COM SUCESSO!");
}
}
void EXCLUIR_A_LISTA(celula *ini){
ini->prox = NULL;
MSG("LISTA EXCLUIDA COM SUCESSO!");
}
void consultaVoo(celula *ini){
celula *aux;
if (ini->prox == NULL){
MSG("A LISTA ESTA VAZIA !");
return;
}
int valor;
char opcao = '1';
do{
switch(opcao) {
case '1':
printf("Informe o Item a ser consultado: ");
scanf("%d", &valor);
aux = CONSULTA_VALOR(valor, ini);
if (aux == NULL)
printf("ITEM NAO ENCONTRADO!\n");
else{
aux = aux->prox;
printf("\nNMERO DO VOO..........: %d\n",
aux->a_numero_do_voo);
aux->b_data_do_voo);
aux->c_horario_do_voo);
aux->d_aeroporto_de_Saida);
aux->e_aeroporto_de_Chegada);
printf("ROTA...................: %d\n",
aux->f_rota);
aux->g_tempo_estimado_de_voo);
aux->h_passageiros_a_bordo);
};
opcao = '9';
break;
case '9':
printf("Consultar outro Item <1-Sim/2-Nao>: ");
opcao = getche();
printf("\n");
break;
default:
printf("OPCAO INVALIDA!\n");
opcao = '9';
break;
}
}while (opcao != '2');
};
void LISTA_COMPLETA(celula *ini){
if (ini->prox == NULL){
MSG("A LISTA ESTA VAZIA !");
return;
}
celula *aux;
printf("==INICIO DA CONSULTA====================================");
printf("\n");
for(aux=ini->prox; aux!=NULL; aux=aux->prox){
printf("\n");
printf("NMERO DO VOO..........: %d |",
aux->a_numero_do_voo);
aux->b_data_do_voo);
aux->c_horario_do_voo);
printf("\n");
printf("AEROPORTO DE SAIDA.....: %s |",
printf("AEROPORTO DE CHEGADA.: %s |",
printf("ROTA.: %d |",
aux->d_aeroporto_de_Saida);
aux->e_aeroporto_de_Chegada);
aux->f_rota);
printf("\n");
printf("TEMPO ESTIMADO DE VOO..: %d |",
aux->g_tempo_estimado_de_voo);
12
aux->h_passageiros_a_bordo);
printf("\n");
}
printf("\n");
printf("==FINAL DE CONSULTA=====================================");
printf("\n");
system("pause");
};
//===============================================================================
char menu_de_opcoes(){
char op;
printf("\tMenu de Opes\n\t");
printf("---- -- ------\n\t");
MOSTRA_OPCAO('s','1');
printf("\n\t");
MOSTRA_OPCAO('s','2');
printf("\n\t");
MOSTRA_OPCAO('s','3');
printf("\n\t");
MOSTRA_OPCAO('s','4');
printf("\n\t");
MOSTRA_OPCAO('s','5');
printf("\n\t");
MOSTRA_OPCAO('s','6');
printf("\n\t");
MOSTRA_OPCAO('s','7');
printf("\n\t");
MOSTRA_OPCAO('s','8');
printf("\n\t");
MOSTRA_OPCAO('s','9');
printf("\n\t");
MOSTRA_OPCAO('s','0');
printf("\n\t");
printf("\n\t--------------- ");
printf("\n\tInfome a Opo: ");
op = getche();
return op;
}
//===============================================================================
int main(){
celula *cabeca;
cabeca = ALOCA();
system("title Empresa area VOEBEM");
system("COLOR 3F");
setlocale(LC_ALL, "portuguese");
char op;
do{
system("cls");
TITULO();
op = menu_de_opcoes();
MOSTRA_OPCAO('n',op);
switch (op){
case '0':
return 0;
break;
case '1':
cadastrarVoo(cabeca);
break;
case '2':
removeVoo(cabeca);
break;
case '3':
EXCLUIR_A_LISTA(cabeca);
break;
case '4':
consultaVoo(cabeca);
break;
case '5':
LISTA_COMPLETA(cabeca);
break;
default:
MSG("OPCAO INVALIDA !");
break;
}
}while(op != '0');
return 0;
}
13
a_numero_da_passagem;
int
b_numero_do_voo;
int
c_data_de_embarque;
int
d_Horario_de_embarque;
int
e_portao_de_embarque;
14
}
celula *LER(){
celula *nova;
nova = ALOCA();
return nova;
}
void INSERIR_VALOR_NA_LISTA(celula *nova, celula *ini){
if (ini == NULL){
ini = nova;
}
else{
while(ini->prox!=NULL){
ini=ini->prox;
}
ini->prox = nova;
}
}
celula *CONSULTA_VALOR(int valor, celula *atu){
celula *ant = NULL;
15
if (aux == NULL)
MSG("ITEM NAO ENCONTRADO!");
else{
morta = aux->prox;
aux->prox = morta->prox;
free(morta);
morta = NULL;
MSG("ITEM EXCLUIDO COM SUCESSO!");
}
}
void EXCLUIR_A_LISTA(celula *ini){
ini->prox = NULL;
MSG("LISTA EXCLUIDA COM SUCESSO!");
}
void consultaPassagem(celula *ini){
celula *aux;
if (ini->prox == NULL){
MSG("A LISTA ESTA VAZIA !");
return;
}
int valor;
char opcao = '1';
do{
switch(opcao) {
case '1':
printf("Informe o Item a ser consultado: ");
scanf("%d", &valor);
aux = CONSULTA_VALOR(valor, ini);
if (aux == NULL)
printf("ITEM NAO ENCONTRADO!\n");
else{
aux = aux->prox;
printf("\nNMERO DA PASSAGEM.....: %d\n",
aux->a_numero_da_passagem);
aux->b_numero_do_voo);
aux->c_data_de_embarque);
aux->d_Horario_de_embarque);
aux->e_portao_de_embarque);
};
opcao = '9';
break;
case '9':
printf("Consultar outro Item <1-Sim/2-Nao>: ");
opcao = getche();
printf("\n");
break;
default:
printf("OPCAO INVALIDA!\n");
opcao = '9';
break;
}
}while (opcao != '2');
};
void LISTA_COMPLETA(celula *ini){
if (ini->prox == NULL){
MSG("A LISTA ESTA VAZIA !");
return;
16
}
celula *aux;
printf("==INICIO DA CONSULTA====================================");
printf("\n");
for(aux=ini->prox; aux!=NULL; aux=aux->prox){
printf("\n");
printf("\nNMERO DA PASSAGEM.....: %d |",
aux->a_numero_da_passagem);
aux->b_numero_do_voo);
aux->c_data_de_embarque);
printf("\n");
printf("HORARIO EMBARQUE.......: %d |",
aux->d_Horario_de_embarque);
aux->e_portao_de_embarque);
printf("\n");
}
printf("\n");
printf("==FINAL DE CONSULTA=====================================");
printf("\n");
system("pause");
};
//===============================================================================
char menu_de_opcoes(){
char op;
printf("\tMenu de Opes\n\t");
printf("---- -- ------\n\t");
MOSTRA_OPCAO('s','1');
printf("\n\t");
MOSTRA_OPCAO('s','2');
printf("\n\t");
MOSTRA_OPCAO('s','3');
printf("\n\t");
MOSTRA_OPCAO('s','4');
printf("\n\t");
MOSTRA_OPCAO('s','5');
printf("\n\t");
MOSTRA_OPCAO('s','6');
printf("\n\t");
MOSTRA_OPCAO('s','7');
printf("\n\t");
MOSTRA_OPCAO('s','8');
printf("\n\t");
MOSTRA_OPCAO('s','9');
printf("\n\t");
MOSTRA_OPCAO('s','0');
printf("\n\t");
printf("\n\t--------------- ");
printf("\n\tInfome a Opo: ");
op = getche();
return op;
}
//===============================================================================
int main(){
celula *cabeca;
cabeca = ALOCA();
system("title Empresa area VOEBEM");
system("COLOR 2F");
setlocale(LC_ALL, "portuguese");
char op;
do{
system("cls");
TITULO();
op = menu_de_opcoes();
MOSTRA_OPCAO('n',op);
switch (op){
case '0':
return 0;
break;
case '1':
cadastrarPassagem(cabeca);
break;
case '2':
removePassagem(cabeca);
break;
case '3':
EXCLUIR_A_LISTA(cabeca);
break;
case '4':
consultaPassagem(cabeca);
break;
17
case '5':
LISTA_COMPLETA(cabeca);
break;
default:
MSG("OPCAO INVALIDA !");
break;
}
}while(op != '0');
return 0;
}
REFERENCIAS BIBLIOGRAFICAS
https://si2014.files.wordpress.com/2012/05/estrdado-materia-06-alocacao-de-memoria1.pdf
18