Utilize a linguagem C em todos os casos.
Estes exercícios foram planejados para treinar questões de fundamentos de programação.
- Escreva um programa com uma função que recebe um número inteiro e retorna um ponteiro para char contendo a representação em binário (mas represendada em ASCII) do número. O programa principal deve imprimir o resultado no vídeo. Atenção para alocação de memória e manipulação de ponteiros. O uso de ponteiros na passagem de parâmetros da função é obrigatório.
- Uma matriz é um quadrado latino de ordem n se em cada linha e em cada coluna aparecem todos os inteiros 1, 2, 3, ..., n. Escreva uma função que recebe como parâmetro um inteiro n e um ponteiro para uma matriz de inteiros e verifica se a matriz é um quadrado latino. Atenção para alocação de memória e manipulação de ponteiros. O uso de ponteiros na passagem de parâmetros da função é obrigatório. Exemplo de quadrado latino:
| 3 4 1 2 |
| 2 3 4 1 |
| 4 1 2 3 |
| 1 2 3 4 |
- Suponha um sistema para controlar o estoque de uma loja de informática. Utilize alocação estática de memória.
- Desenvolva estruturas de dados para representar o estoque, contendo o código, descrição (ex. computador, hd) quantidade, preço de custo e preço de venda. Escreva funções para inserir, excluir e consultar o estoque.
- Desenvolva estuturas de dados para representar os clientes e funcionários da loja (nome, cpf). Escreva funções para inserir, excluir e consultar as informações de clientes/funcionários.
- Escreva funções para registrar vendas. Uma venda deve ser realizada para um cliente conhecido por um funcionário conhecido. O programa deve fazer um fluxo de caixa rudimentar com as vendas considerando o preço de custo e o preço de venda.
- Inclua no seu programa uma função de teste que insere 10 produtos, 10 clientes e 2 funcionários. A função de teste deve acionar diversas vezes a função de venda.
- Adicional de 1/2 ponto: escreva funções que permitam a gravação e leitura dos dados em um arquivo texto.
- Mais um adicional de 1/2 ponto: reescreva tudo utilizando alocação dinâmica de memória.