O objetivo deste trabalho é a implementação de um algoritmo para gerenciar a criação e utilização de variáveis.
As variáveis deverão estar armazenadas em uma estrutura do tipo char memoria[5000].
Os tipos de variáveis que podem ser manipuladas são char, int, float, e vetoresdeumaouduasdimensões contendo char, int ou float.
Os comandos para criação e utilização das variáveis devem ser lidos do teclado ou de um arquivo.
No programa deverá ser possível realizar, repetidas vezes, os seguintes comandos:
Criar uma variável: com este comando o programa deve buscar o primeiro endereço livre na memória e alocar a partir deste, os bytes necessários para armazenar a variável. Para exemplos deste comando, veja a Tabela 1;
Alterar o valor de uma variável: com este comando é possivel alterar o valor de uma variável; Para exemplos deste comando, veja a Tabela 2;
Imprimir o valor de uma variável: com este comando, é possível imprimir na tela o valor de uma variável. Devem ser exibidos o nome da variável e seu valor atual. Para exemplos deste comando, veja a Tabela 3;
Imprimir o valor de todas as variáveis: com este comando, é possível imprimir na tela o valor de todas as variáveis que estão na memória.
Para cada variável o programa deve armazenar uma estrutura como esta:
typedef struct{
char nome[30]; // contém o nome da variável
char* inicio; // aponta para a posição inicial da variável no vetor memoria;
int tipo; // armazena o tipo da variável no vetor memoria;
} Variavel;
Variavel listaDeVariaveis[100];
char memoria[5000];
Comando
Equivalente em C
CREATE_CHAR C
char C;
CREATE_INT idade
int idade;
CREATE_FLOAT peso
float peso;
CREATE_VET_CHAR nome 20
char nome[20];
CREATE_VET_INT idades 10
int idades[10];
CREATE_MAT_FLOAT alturas 5 10
float alturas[5][10]
Tabela 1 Exemplos de comandos de criação de variáveis
Comando
Equivalente em C
SET C #
C = '#';
SET idade 123
idade = 123;
SET peso 45.67
peso = 45.67;
SET nome A 3
nome[3] = 'A';
SET nome UMA_STRING
strcpy(nome, “UMA_STRING”)
SET alturas 5 2 1.76
alturas[5][2] = 1.76;
Tabela 2 Exemplos de comandos de alteração de variáveis
Comando
Equivalente em C
PRINT C
printf(“%c\n”, C);
PRINT idade
printf(“%d\n”, idade);
PRINT peso
printf(“%f\n”, peso);
PRINT idades 3
printf(“%d\n”, idades[3]);
PRINT alturas 5 2
printf(“%f\n”, alturas[5][2]);
Tabela 3 Exemplos de comandos de exibição de variáveis
Os trabalhos são em duplas ou individuais. A pasta do projeto deve ser compactada em um arquivo .zip e este deve ser submetido pelo Moodle até a data e hora especificadas.
Não envie .rar, .7z, .tar.gz - apenas .zip.
O código deve estar identado corretamente (o Code::Blocksfazissoautomaticamente).
As funções desse programa não podem ter mais do que 20 linhas (-2 pontos).
Os vetores do programa devem ser manipulados com ponteiros e não com índices (-2 pontos).
A nota do trabalho depende da apresentação deste no laboratório, na data marcada. Trabalhos entregues mas não apresentados terão sua nota anulada automaticamente. Durante a apresentação será avaliado o domínio da resolução do problema, podendo inclusive ser possível invalidar o trabalho quando constatada a falta de conhecimento sobre o código implementado.
A cópia parcial ou completa do trabalho terá como conseqüência a atribuição de nota ZERO ao trabalho dos alunos envolvidos. A verificação de cópias é feita inclusive entre turmas.
A cópia de código ou algoritmos existentes da Internet também não é permitida. Se alguma idéia encontrada na rede for utilizada na implementação, sua descrição e referência deve constar no artigo.