APTS - Engenharia de Software
Por: rsanto17 • 9/6/2015 • Trabalho acadêmico • 693 Palavras (3 Páginas) • 223 Visualizações
[pic 1]
FACULDADE ANHANGUERA DE TAUBATÉ – UNIDADE II
Engenharia de Software
Profº Neymar
Curso: Ciência da Computação
Semestre: 3º e 4º - Ano: 2013
RA | Nome do Aluno |
Índice
ETAPA 1
Passo 3
ETAPA 1
Passo 3
- Alocação Estática de Memória
Na alocação estática o espaço de memória, que as variáveis irão utilizar durante a execução do programa, é definido no processo de compilação, alocada toda de uma vez sem considerar a quantidade que seria realmente necessária na execução do programa não sendo possível alterar o tamanho desse espaço durante a execução do programa.
Exemplo: int v [1000]
Espaço contiguo na memória para 1000 valores inteiros:
Se cada int ocupa 4 bytes, 4000 bytes, 4KB
Exemplo: Alocar nome e sobrenome dos alunos do curso:
• 3000 espaços de memória, vetor de strings
• 100 caracteres (Tamanho máximo do nome inteiro)
• Podemos então definir 30 pessoas
• Não é o ideal pois a maioria dos nomes não usam os 100 caracteres
• Na alocação dinâmica não é necessário definir antes o tamanho máximo para os nomes.
- Programa em C – Estruturas de Voo
#include
#include
typedef struct // Estruturas de Voo
{
char modelo[50], fabri[50], motor[50];
int passa, velo, alti;
float compri, alt;
}taviao;
typedef struct // Contadores
{
int primeiro, ultimo;
}tordem;
void cadastrar(taviao av[], tordem *pri) // Cadastrando os Dados no Programa!
{
int opc;
if(pri -> ultimo == 100) // Verifica se o Limite de 100 Dados diferentes foram atingidos...
{
printf("\n\n\t Nao foi possivel Cadastrar: ");
printf("\n\t Causa: Limite de Dados atingido!");
system("pause>>null");
}
else
{
do
{
if(pri -> ultimo == 100) // Verifica se o Limite de 100 Dados diferentes foram atingidos...
{ // É feita a verificação novamente, pois o usuário pode escoher cadastrar um novo voo...
printf("\n\n\t Nao foi possivel Cadastrar: ");
printf("\n\t Causa: Limite de Dados atingido!");
system("pause>>null");
}
else
{
system("cls");
printf("\n\n\t CADASTRANDO..."); // Cadastrando os dados do VOO
pri -> ultimo++;
printf("\n\n\t Codigo: %d", pri -> ultimo);
printf("\n\n\t Modelo: ");
fflush(stdin);
gets(av[pri -> ultimo].modelo);
printf("\n\t Fabricante: ");
fflush(stdin);
gets(av[pri -> ultimo].fabri);
printf("\n\t Passageiros: ");
fflush(stdin);
scanf("%d", &av[pri -> ultimo].compri);
printf("\n\t Comprimento: ");
fflush(stdin);
scanf("%f", &av[pri -> ultimo].compri);
printf("\n\t Altura: ");
fflush(stdin);
scanf("%f", &av[pri -> ultimo].alt);
printf("\n\t Velocidade: ");
fflush(stdin);
scanf("%d", &av[pri -> ultimo].velo);
printf("\n\t Altitude: ");
fflush(stdin);
scanf("%d", &av[pri -> ultimo].alti);
printf("\n\t Motor: ");
fflush(stdin);
gets(av[pri -> ultimo].motor);
printf("\n\n\t Deseja Cadastrar Novo Usuário?! ");
printf("\n\n\t 1. Para SIM.");
printf("\n\n\t Escolha Sua Opcao: "); // Escolha a opcao para cadastrar um novo dado
scanf("%d", &opc);
}
}while(opc == 1);
}
}
void imprimir(taviao av[], tordem *pri) // Mostrando todos os voos cadastrados...
{
system("cls");
int i; // variavel utilizada no For...
if(pri -> ultimo == -1) // Verica se Existem Voos Cadastrados... Se for "-1", Não será exibido dados na tela
{
printf("\n\n\t Nao Existem Voo Cadastrados");
printf("\n\n\t Tecle ENTER...");
system("pause>>null");
}
else
{
printf("\n\n\n\t IMPRIMINDO DADOS...");
for(i = 0; i ultimo; i++) // Imprimindo todos os dados na tela...
{
printf("\n\n\t Codigo: %d", i);
printf("\n\t Modelo: %s", av[pri -> ultimo].modelo);
printf("\n\t Fabricante: %s", av[pri -> ultimo].fabri);
printf("\n\t Passageiros: %d", av[pri -> ultimo].passa);
printf("\n\t Comprimento: %f", av[pri -> ultimo].compri);
printf("\n\t Altura: %f", av[pri -> ultimo].alt);
printf("\n\t Velocidade: %d", av[pri -> ultimo].velo);
printf("\n\t Altitude: %d", av[pri -> ultimo].alti);
printf("\n\t Motor: %s", av[pri -> ultimo].motor);
printf("\n\n\t -------------------------------------------------\n\n");
}
printf("\n\n\t ENTER");
system("pause>>null");
}
}
void iniciando(tordem *ordem) // Funcao que Atribui o "-1" em 'primeiro' e 'ultimo'.
{
ordem -> primeiro = -1;
ordem -> ultimo = -1;
}
void main() //Primeira função a ser chamada no Programa..
{
int opc; // Variável de Opcao...
taviao aviao; // Acessando a Estrutura Aviao...
tordem ordem; // Acessando a Estrutura Ordem...
iniciando(&ordem); // Executando a Função "Iniciando"...
do
{
system("cls");
printf("\n\n\n\t\t\t TRABALHO - CONTROLE DE VOOS\n");
printf("\n\n\t 1. Cadastrar. ");
printf("\n\t 2. Imprimir. ");
printf("\n\n\t Outra Opcao: SAIR DO PROGRAMA...");
printf("\n\n\n\t Escolha sua opcao: "); // Usuario deverá escolher a opcao acima:
scanf("%d", &opc);
switch(opc)
{
case 1:
cadastrar(&aviao, &ordem);
opc = 1;
break;
case 2:
imprimir(&aviao, &ordem);
opc = 2;
break;
default:
printf("\n\n\t Saindo do Programa!!! ");
printf("\n\n\t Tecle ENTER...");
system("pause>>null");
break;
}
}while(opc == 1 || opc == 2);
}
...