C ::: Dicas & Truques ::: Arquivos e Diretórios |
Como escrever em um arquivo um caractere de cada vez usando a função fputc() da linguagem CQuantidade de visualizações: 9250 vezes |
Em algumas situações precisamos escrever em um arquivo um caractere de cada vez. Para isso podemos usar a função fputc() do header stdio.h. Esta função recebe o caractere a ser escrito e um ponteiro para o objeto FILE que identifica o arquivo no qual queremos escrever. Se o caractere for escrito com sucesso, o indicador de posição interna do arquivo é adiantado para a inserção do próximo caractere. Veja um exemplo no qual escrevemos o alfabeto maiúsculo em um arquivo chamado alfabeto.txt: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]){ FILE *arquivo; char letra; // vamos abrir o arquivo para escrita arquivo = fopen("alfabeto.txt", "w"); if(arquivo != NULL){ for(letra = 'A'; letra <= 'Z'; letra++){ fputc((int)letra, arquivo); } fclose(arquivo); } puts("Tentei escrever no arquivo. Veja se funcionou."); puts("\n\n"); system("PAUSE"); return 0; } Ao executar este código nós teremos o seguinte resultado: Tentei escrever no arquivo. Veja se funcionou. Em seguida, se olharmos o conteúdo do arquivo "alfabeto.txt" veremos que o conteúdo foi escrito da forma que imaginamos. |
C ::: Estruturas de Dados ::: Lista Ligada Simples |
Estruturas de Dados em C - Como remover um nó no final de uma lista ligada simples em C - Listas encadeadas em CQuantidade de visualizações: 1861 vezes |
Nesta dica mostraremos como é possível excluir o nó no fim (o último nó) de uma lista encadeada simples (singly linked list) em C. Veja a função:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // função que permite remover um nó no fim // da lista, ou seja, o último nó da lista. // A função retorna um ponteiro para o início da lista struct No *remover_final(struct No *inicio){ struct No *n; // nó que será removido // nó que antecede o nó a ser removido. Isso // faz sentido, já que ele será o último nó // agora struct No *anterior; n = inicio; // aponta para o início da lista // varremos os nós da lista e paramos um nó antes do // nó a ser excluído while(n->proximo != NULL){ anterior = n; // anterior assume o lugar de n n = n->proximo; // e n assume o seu próximo } // anterior passa a ser o último nó agora anterior->proximo = NULL; // mostra o nó removido printf("\nNo removido: %d\n", n->valor); free(n); // libera o nó que antes era o último return inicio; } Note que a função recebe um ponteiro para o início da lista e retorna também um ponteiro para o início da lista. Tenha o cuidado de verificar se a lista não está vazia antes de tentar fazer a exclusão. No exemplo eu fiz isso na função main(). Veja a listagem completa abaixo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> // estrutura Nó struct No{ int valor; struct No *proximo; }; // fim da estrutura Nó // função que permite exibir os valores de // todos os nós da lista void exibir(struct No *n){ if(n != NULL){ do{ printf("%d\n", n->valor); n = n->proximo; }while(n != NULL); } else printf("A lista esta vazia\n\n"); } // função que permite remover um nó no fim // da lista, ou seja, o último nó da lista. // A função retorna um ponteiro para o início da lista struct No *remover_final(struct No *inicio){ struct No *n; // nó que será removido // nó que antecede o nó a ser removido. Isso // faz sentido, já que ele será o último nó // agora struct No *anterior; n = inicio; // aponta para o início da lista // varremos os nós da lista e paramos um nó antes do // nó a ser excluído while(n->proximo != NULL){ anterior = n; // anterior assume o lugar de n n = n->proximo; // e n assume o seu próximo } // anterior passa a ser o último nó agora anterior->proximo = NULL; // mostra o nó removido printf("\nNo removido: %d\n", n->valor); free(n); // libera o nó que antes era o último return inicio; } // função que permite inserir nós no // final da lista. // veja que a função recebe o valor a ser // armazenado em cada nó e um ponteiro para o // início da lista. A função retorna um // ponteiro para o início da lista struct No *inserir_final(struct No *n, int v){ // reserva memória para o novo nó struct No *novo = (struct No*)malloc(sizeof(struct No)); novo->valor = v; // verifica se a lista está vazia if(n == NULL){ // é o primeiro nó...não deve apontar para // lugar nenhum novo->proximo = NULL; return novo; // vamos retornar o novo nó como sendo o início da lista } else{ // não está vazia....vamos inserir o nó no final // o primeiro passo é chegarmos ao final da lista struct No *temp = n; // vamos obter uma referência ao primeiro nó // vamos varrer a lista até chegarmos ao último nó while(temp->proximo != NULL){ temp = temp->proximo; } // na saída do laço temp aponta para o último nó da lista // novo será o último nó da lista...o campo próximo dele deve // apontar para NULL novo->proximo = NULL; // vamos fazer o último nó apontar para o nó recém-criado temp->proximo = novo; return n; // vamos retornar o início da lista intacto } } int main(int argc, char *argv[]) { // declara a lista struct No *inicio = NULL; // vamos inserir quatro valores no final // da lista inicio = inserir_final(inicio, 45); inicio = inserir_final(inicio, 3); inicio = inserir_final(inicio, 98); inicio = inserir_final(inicio, 47); // vamos exibir o resultado printf("Valores presentes na lista ligada antes da remocao:\n"); exibir(inicio); // vamos remover o nó no fim da lista if(inicio != NULL){ inicio = remover_final(inicio); } // vamos exibir o resultado printf("\nValores presentes na lista ligada apos a remocao:\n"); exibir(inicio); system("pause"); return 0; } Ao executar esse código você terá o seguinte resultado: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- Valores presentes na lista ligada antes da remocao: 45 3 98 47 No removido: 47 Valores presentes na lista ligada apos a remocao: 45 3 98 Pressione qualquer tecla para continuar. . . |
Java ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular a equação reduzida da reta em Java dados dois pontos pertencentes à retaQuantidade de visualizações: 1161 vezes |
Nesta dica de Java veremos como calcular a equação reduzida da reta quando temos dois pontos pertencentes à esta reta. Não, nessa dica não vamos calcular a equação geral da reta, apenas a equação reduzida. Em outras dicas do site você encontra como como isso pode ser feito. Para relembrar: a equação reduzida da reta é y = mx + n, em que x e y são, respectivamente, a variável independente e a variável dependente; m é o coeficiente angular, e n é o coeficiente linear. Além disso, m e n são números reais. Com a equação reduzida da reta, é possível calcular quais são os pontos que pertencem a essa reta e quais não pertencem. Vamos começar então analisando a seguinte figura, na qual temos dois pontos que pertencem à uma reta: Note que a reta da figura passa pelos pontos A(5, 5) e B(9, 2). Então, uma vez que já temos os dois pontos, já podemos calcular a equação reduzida da reta. Veja o código Java completo para esta tarefa: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; import java.util.Scanner; public class Estudos{ public static void main(String[] args){ // vamos usar a classe Scanner para ler os dados Scanner entrada = new Scanner(System.in); // vamos ler as coordenadas do primeiro ponto System.out.print("Coordenada x do primeiro ponto: "); double x1 = Double.parseDouble(entrada.nextLine()); System.out.print("Coordenada y do primeiro ponto: "); double y1 = Double.parseDouble(entrada.nextLine()); // vamos ler as coordenadas do segundo ponto System.out.print("Coordenada x do segundo ponto: "); double x2 = Double.parseDouble(entrada.nextLine()); System.out.print("Coordenada y do segundo ponto: "); double y2 = Double.parseDouble(entrada.nextLine()); String sinal = "+"; // vamos calcular o coeficiente angular da reta double m = (y2 - y1) / (x2 - x1); // vamos calcular o coeficiente linear double n = y1 - (m * x1); // coeficiente linear menor que zero? O sinal será negativo if (n < 0){ sinal = "-"; n = n * -1; } // mostra a equação reduzida da reta System.out.println("Equação reduzida: y = " + m + "x" + " " + sinal + " " + n); System.exit(0); } } Ao executar este código Java nós teremos o seguinte resultado: Coordenada x do primeiro ponto: 5 Coordenada y do primeiro ponto: 5 Coordenada x do segundo ponto: 9 Coordenada y do segundo ponto: 2 Equação reduzida: y = -0,75x + 8,75 Para testarmos se nossa equação reduzida da reta está realmente correta, considere o valor 3 para o eixo x da imagem acima. Ao efetuarmos o cálculo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- >> y = (-0.75 * 3) + 8.75 y = 6.5000 temos o valor 6.5 para o eixo y, o que faz com que o novo ponto caia exatamente em cima da reta considerada na imagem. |
Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira |
Perfil em aço Alguns materiais fazem parte do processo de produção do aço ou até são resultantes de suas variações. Eles apresentam características que diferem entre si. Um desses materiais contém de 3 a 4% de carbono em sua composição. Assinale a alternativa que indica corretamente qual é esse material. A) Aço. B) Aço macio. C) Ferro fundido. D) Ferro forjado. E) Aço de médio carbono. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Equação de Bernoulli Considere o tubo de fluxo abaixo contendo óleo, que flui de forma a podermos considera-lo um fluido ideal. Ele flui por um tubo que sobe de nível e se estreita. Dois manômetros marcam a pressão em dois pontos do tubo, como mostra a figura. Qual o valor da pressão indicada no segundo manômetro? (Dados: ρóleo = 900 kg / m3 e g = 9,8 m/s2) A) 290 kPa B) 109 kPa C) 114 kPa D) 286 kPa E) 90,7 kPa Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira |
O aço no edifício A estrutura de estabilização da moldura estrutural da edificação da figura abaixo, que caracteriza-se pela criação de configurações triangulares estáveis, ou amarrações diagonais, pode ser chamada de: A) Estrutura contraventada. B) Moldura amarrada excentricamente. C) Moldura resistente a momentos. D) Paredes de cisalhamento. E) Nenhuma das alternativas anteriores. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira |
Estrutura e propriedade dos materiais A determinação e o conhecimento dos materiais são muito importantes para a escolha do material para determinada aplicação. Essa escolha é a partir: A) de um banco de dados obtidos por meio de ensaios laboratoriais. B) da análise do agrupamento e da organização dos átomos. C) da estrutura interna do material. D) da análise das características físicas do material. E) da avaliação da composição química dos materiais. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
Ética profissional, social, política Se a maior preocupação de Maquiavel é o Estado, poderíamos dizer que isso o situa no presente temporal. A respeito disto, afirma Sadek (1995, p. 17): "De fato, sua preocupação em todas as suas obras é o Estado. Não o melhor Estado, aquele tantas vezes imaginado, mas que nunca existiu. Mas o Estado real, capaz de impor a ordem". A partir do trecho citado, assinale a alternativa correta: A) Para Maquiavel, o tempo presente do Estado deve ser considerado pela ética. B) Para Maquiavel, a ética está associada ao exercício da ordem. C) Para Maquiavel, a ética está atrelada a uma idealização da ação na política. D) Para Maquiavel, a ordem é fruto de um Estado ético. E) Para Maquiavel, o Estado existe enquanto mantenedor da ética. Verificar Resposta Estudar Cards Todas as Questões |
Nossas 20 dicas & truques de programação mais recentes |
QGIS - Como exibir o id de uma camada do QGIS a partir de uma ação usando PyQGIS e o símbolo @layer_id QGIS - Como definir o título do projeto do QGIS usando PyQGIS e a função setTitle() da classe QgsProject QGIS - Como retornar o título do projeto do QGIS usando PyQGIS e a função title() da classe QgsProject AutoCAD Civil 3D - Como criar pontos COGO no AutoCAD Civil 3D |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
Nossas 20 dicas & truques de programação mais populares |
Adobe Flex - Criando um TextInput somente leitura Delphi - Delphi para matemática - Como arredondar valores de ponto-flutuante para cima usando a função Ceil() Java - Como usar o método next() da interface Iterator do Java para obter o próximo elemento da iteração JSP (Java Server Pages) - O que são JavaBeans e para que servem? Portugol - Exercícios Resolvidos de Portugol - Como converter de decimal para números romanos em Portugol |
Você também poderá gostar das dicas e truques de programação abaixo |
PHP - Como inserir um determinado número de zeros antes de um número em PHP usando a função sprintf() |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |