Postagens

Mostrando postagens com o rótulo C

União de dois vetores e intermediários de um vetor

Em Programação de Computadores foi pedido * que se fizesse duas aplicações, ambas utilizando alocação dinâmica de memória em uma função. Para a primeira foi necessário que a partir de um vetor de inteiros fossem separados em um outro vetor (esse alocado dinamicamente) os valores entre um minimo e máximo vindo do usuário. Após a alocação de memória e o seu preenchimento o programa exibe na tela o conteúdo desse vetor. Já na segunda aplicação era necessário apenas a união de dois vetores. Os códigos do primeiro e segundo programas podem ser vistos abaixo : *Esses exercícios foram requisitados para a formulação da N2 da disciplina e foi entregue à professora em 11/2017

Alocação dinâmica de memória em matrizes em C

Uma matriz de tamanho dinâmico em C é implantada a partir de vetores contidos em vetores. Exemplificando, uma matriz 2x3 teria em cada uma das duas linhas, um vetor de 3 posições formando assim três colunas. Sendo declarada como um ponteiro de ponteiro (por exemplo, int **matriz ), para a sua alocação é necessário a alocação de um vetor comum e com o auxílio de uma função de repetição, como o for , criar um novo vetor dentro do primeiro. Como se pode ver no código abaixo: ... //matriz é alocada como vetor tendo um tamanho m matriz = ( int *) malloc(m * sizeof ( int* ));                 for (i = 0;i < m;i++){ /*Nesta etapa é alocado outro vetor dentro da posição i,fazendo desta maneira n colunas*/                matriz[i] = ( int *) malloc (n* sizeof ( int *)); …           A utilização de um dado ...

Teoria dos conjuntos (Projeto Interdisciplinar)

O primeiro projeto interdisciplinar deste semestre (2º), foi um programa em C  que classificava conjuntos entre simétrica, assimétrica, transitiva, reflexiva, de ordem e/ou de equivalência. Abaixo está o executável (arquivo .exe para Windows) e o código fonte.

Deu Ruim.exe

Imagem
Imagino que erros em programação ocorrem sempre. Um ponto e vírgula aqui, esquecer de um parentese ou chave lá... Pois bem. Pequenos erros que sempre ocorrem mas que são de rápida solução. MAS é claro que existem erros maiores e o que eu gostaria de compartilhar é o clássico loop infinito . Ontem (19/10) na aula de Programação de Computadores meu colega tinha entrado em um loop que ficava exibindo um printf  eterno na tela. Normalmente ajudá-lo a resolver o problema seria logo o que deveria fazer, correto? Mas propus a ele: "Que tal "otimizar" esse bug?" Partindo do principio de que tudo pode piorar, dentro do for  que se foi usado, usei o comando system("color \\") onde cada barra era uma letra ou número que faz referência a alguma cor. O comando color  na verdade faz parte do Prompt de Comandos do Windows, assim "invoquei" o cmd pela função system  e toda a mágica ocorreu como se pode ver no vídeo abaixo: Depois de ver aquilo qu...

BOAS PRÁTICAS DE PROGRAMAÇÃO

Imagem
Na criação de projetos grandes e em equipe, e até em simples projetos, boas práticas de programação se tornam indispensáveis para o desenvolvimento e também para a manutenção do software. Abaixo estão alguns dos mais imprescindíveis pontos para a criação de um bom código: Uso de comentários Principalmente em partes mais complexas, comentários ajudam a terceiros compreenderem o que aquele trecho de código faz. Pode ser útil inclusive para o criador quando em grandes projetos para relembrar da lógica utilizada. É recomendado também, fazer comentários para a explicação de funções e variáveis. Evitar comentários desnecessários Existem diversos “comandos óbvios”, que não precisam ser comentados, tais como um i++. Nomes de variáveis É útil nomear variáveis com a sua real função para maior clareza do código, evitando assim, usar variáveis genéricas como “a” ou “z”, na qual não dizem muito sobre o que armazenam. Endentação e espaçamento Um código endentado coopera para uma ma...

Vogal ou Consoante com Switch-Case em C

Depois de algum tempo sem postar aqui no JStudium resolvi voltar postando alguns programas que criei semestre passado (meu primeiro semestre na faculdade :v). Abaixo está um programa bem simples que usa o comando condicional switch-case para verificar se a letra inserida pelo usuário é uma vogal ou consoante. #include <stdio.h> #include <stdlib.h> int main() { /* Alunos: Joao Marcos Santos; ---> Eng. de Computacao Lucas Lima Queiroz; ---> Eng. Eletrica @ Universidade Sao Francisco */ char letra; printf("Digite uma letra (em forma minuscula) para saber se ela e uma vogal ou uma consoante: "); scanf("%c", &letra); switch (letra) { /* Caso a letra inserida for a, e, i, o ou u, sera informado que a letra e uma vogal caso nao for uma dessas letras, sera informado que e uma consoante */ case 'a': printf("\n A letra ...