Você está aqui: Cards de Engenharia Civil - Construção Civil |
||
|
||
|
|
||
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: 2326 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:
// 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:
#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: 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 ::: Strings e Caracteres |
Como testar se uma string Java está toda em letras maiúsculas ou minúsculas usando as funções Character.isWhitespace() e Character.isUpperCase()Quantidade de visualizações: 8 vezes |
|
Nesta dica mostrarei como podemos combinar um laço e as funções Character.isWhitespace() e Character.isUpperCase() para testar se uma palavra, frase ou texto está toda em letras maiúsculas em Java. Veja o código completo para o exemplo:
package estudos;
public class Estudos {
public static void main(String[] args) {
// Este exemplo mostra como verificar se uma
// string está toda em letras maiúsculas
String frase = "PROGRAMANDO EM JAVA";
boolean maiusculas = true;
for (int i = 0; i < frase.length(); i++) {
Character caractere = frase.charAt(i);
if (Character.isWhitespace(caractere)) {
continue;
}
if (!Character.isUpperCase(caractere)) {
maiusculas = false;
break;
}
}
if (maiusculas) {
System.out.println("A string esta toda em letras maiusculas");
}
else{
System.out.println("A string NAO esta toda em letras maiusculas");
}
}
}
Ao executar este código Java nós teremos o seguinte resultado: A string está toda em letras maiúsculas |
PHP ::: Dicas & Truques ::: Matemática e Estatística |
Como gerar um número aleatório (randômico) em PHP usando a função rand()Quantidade de visualizações: 31145 vezes |
|
Nesta dica mostrarei como gerar números randômicos dentro de uma determinada faixa usando a função rand() da linguagem PHP. Veja que esta função requer o limite inicial e final (incluso) da faixa a partir da qual o número aleatório será gerado. Veja um código PHP no qual geramos um número aleatório entre 1 e 10: <html> <head> <title>Estudando PHP</title> </head> <body> <?php $num = rand(1, 10); echo "O número gerado foi: " . $num; ?> </body> </html> Ao executar este código nós teremos um resultado parecido com: O número gerado foi: 5 Obs: A partir da versão 4.2.0 do PHP, não é mais necessário usar srand() ou mt_srand() para inicializar a semente (seed) do gerador de números aleatórios. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercícios Resolvidos de Java - Um programa que lê um salário e concede um aumento de 20% para os salários inferiores a R$ 800,00Quantidade de visualizações: 5151 vezes |
|
Exercícios Resolvidos de Java - Um programa que lê um salário e concede um aumento de 20% para os salários inferiores a R$ 800,00 Pergunta/Tarefa: A empresa XYZ decidiu conceder um aumento de 20% aos funcionários com salários inferiores a R$ 800,00. Faça um programa Java que solicita o salário do funcionário e mostre o valor do salário reajustado ou uma mensagem, caso o funcionário não tenha direito ao aumento. Sua saída deverá ser parecida com: Informe o salário: 520 O salário informado foi: 520.0 O salário reajustado é: 530.4 Veja a resolução comentada deste exercício usando Java:
package estudos;
import java.util.Scanner;
public class Estudos {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
// vamos solicitar o salário do funcionário
System.out.print("Informe o salário: ");
double salario = Double.parseDouble(entrada.nextLine());
System.out.println("O salário informado foi: " + salario);
// vamos conceder o aumento ao salário inferior a 800,00
if(salario < 800.00){
double novoSalario = salario + (salario * (2.0 / 100.00));
System.out.println("O salário reajustado é: " + novoSalario);
}
else{
System.out.println("Não tem direito ao reajuste.");
}
System.out.println("\n");
}
}
|
PHP ::: Sistemas Completos com Código Fonte ::: Controle de Estoque |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesQuantidade de visualizações: 29034 vezes |
|
Como escrever um Controle de Estoque em PHP e MySQL do zero? Promoção Relâmpago: Este código fonte está disponível gratuitamente para os apoiadores do site. Chama no WhatsApp +55 (062) 98553-6711 para mais detalhes Sim, é isso mesmo. Você já imaginou o trabalho que dá criar um sistema de Controle de Estoque do zero? Você já pensou na quantidade de horas de trabalho que isso envolve? Não seria bom já ter boa parte do sistema já desenvolvido e você implementar apenas mais algumas poucas funcionalidades? A resposta está no código fonte que desenvolvemos para você nessa seção. Comece analisando a imagem a seguir: ![]() Nesta tela inicial podemos ver que o sistema é composto de cadastro de usuários, de categorias de produtos, um cadastro de fornecedores e um cadastro de produtos. Tanto o cadastro de produtos quanto o cadastro de fornecedores permitem inserir imagens, incluindo o recorte de imagens, para deixar todas as imagens com o mesmo tamanho e mesma resolução. Isso é importante, pois permite que qualquer usuário com conhecimento básico de informática consiga escolher uma imagem no computador, fazer o upload, recortar e salvar no diretório de imagens do programa. Na tela inicial podemos ver também a quantidade de produtos e itens cadastrados no estoque, a quantidade de produtos com estoque zero e estoque mínimo, assim como o investimento feito no estoque, o retorno e a margem de lucro. O sistema é responsivo? Sim, por ter sido escrito em Bootstrap, todas as páginas do sistema são responsíveis, ou seja, se adaptam à tela do computador e também do celular. Veja: ![]() Neste código fonte nós usamos o Bootstrap 5, mas você conseguirá, com pouca ou nenhuma modificação, rodá-lo nas versões anteriores. No entanto, como estamos o tempo todo melhorando este código para nossos clientes, é bem provável que teremos versões compatíveis com as novas versões do Bootstrap. Ah, e não se preocupe, todo o código Bootstrap, jQuery, Choise.js, Datatable, e outros scripts necessários estão devidamente colocados nos diretórios do sistema, não havendo a necessidade de baixar nada, nem mesmo usar CDNs. As telas do sistema obedecem um padrão de design? Sim, o design das telas é bem consistente, exibindo uma combinação de cores muito agradáveis aos olhos. Veja: ![]() Aqui nós o temos o Cadastro de Usuários do Sistema. Como se pode ver, é possível adicionar uma foto para cada usuário, com a opção de recortar a imagem antes de efetuar o download da mesma. Além disso, os usuários possuem níveis de acesso. O usuário admin possui os maiores privilégios. Os demais usuários podem ter permissões para cadastrar, alterar, excluir, ou somente cadastrar, ou somente visualizar, etc. O sistema mantém um registro de log para cada ação efetuada. Dessa forma, o admin saberá, com apenas um clique, quem cadastrou, alterou ou excluiu dados do sistema. Como o sistema controla a entrada e saída de produtos no estoque? Veja a seguinte imagem: ![]() Aqui nós temos o cadastro dos produtos, assim como suas fotos, as quais o usuário poderá recortar antes de fazer o upload. Note que a entrada no estoque solicita um fornecedor e a lista de produtos que farão parte da entrada. Assim que a entrada no estoque é confirmada, o valor de compra de cada produto é atualizado, assim como seu estoque. Na saída de estoque o sistema verifica se há estoque suficiente para as retiradas. O sistema é fácil de instalar? Sim, junto com o código fonte nós adicionamos instruções detalhadas de como criar a base de dados e as tabelas do MySQL. Em seguida você só precisa ajustar o servidor, usuário e senha do banco de dados no arquivo config.php, definir o caminho para os uploads das fotos dos usuários, fornecedores e produtos e executar o index.php. E o melhor de tudo: como apenas alguns "copiar-colar" você adiciona mais funcionalidades ao sistema, tornando-o ainda mais útil. Como posso obter este código fonte? Para adquirir este código fonte, me chama no WhatsApp +55 (062) 9 8553-6711 ou no e-mail osmar@arquivodecodigos.com.br. Se necessário podemos combinar e faço a instalação na sua máquina ou no seu domínio. Podemos também combinar as alterações ou a adição de novas funcionalidades. Não se esqueça: Uma boa forma de estudar o código é fazendo pequenas alterações e rodando para ver os resultados. Outra opção é começar um projeto PHP do zero e ir adicionando trechos do código fonte para melhor entendimento de suas partes. Para quem deseja ver o sistema funcionando antes de fazer o download, colocamos uma demonstração no link abaixo (Usuário "admin" e senha "admin"): Clique aqui para visualizar a demonstração (Live Demo) desse sistema |
Desafios, Exercícios e Algoritmos Resolvidos de PHP |
Veja mais Dicas e truques de PHP |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |









