Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO

Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.

C ::: Dicas & Truques ::: Strings e Caracteres

Como acessar os caracteres de uma string individualmente usando índices na linguagem C

Quantidade de visualizações: 9694 vezes
Como em C uma string é vetor (array) de caracteres, tais caracteres podem ser acessados por meio de seu índice no vetor (um valor inteiro começando em 0). Este trecho de código mostra como esta tarefa pode ser realizada:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main(int argc, char *argv[]){
  char palavra[] = "Arquivo";
 
  // vamos acessar o primeiro caractere da string
  char letra = palavra[0];
  printf("O primeiro caractere e %c\n", letra);
 
  // vamos acessar o quinto caractere da string
  letra = palavra[4];
  printf("O quinto caractere e %c\n", letra);
 
  puts("\n\n");
  system("PAUSE");
  return 0;
}

Ao executarmos este códigos nós teremos o seguinte resultado:

O primeiro caractere e A
O quinto caractere e i


Java ::: Coleções (Collections) ::: ArrayList

Java Collections para iniciantes - Arrays (vetores) ou a ArrayList? Qual devo usar?

Quantidade de visualizações: 16351 vezes
Uma das perguntas mais frequentes que os usuários do nosso site nos fazem é aquela sobre o uso de simples arrays (vetores e matrizes) ou objetos da classe ArrayList. Se o número de elementos for fixo ou você precisar de muita eficiência ao lidar com tipos primitivos, então arrays podem ser a melhor escolha.

Porém, muitos problemas envolvendo o armazenamento de dados requerem estruturas de dados que possam ser redimensionadas de acordo com a necessidade do algorítmo. Neste caso, uma ArrayList (ou qualquer uma das outras classes Collections) pode ser a escolha certa.

Veja um trecho de código para ficar mais fácil o entendimento:

package arquivodecodigos;
 
public class Estudos{
  public static void main(String args[]){
    int valores[] = {4, 12, 8, 5, 13};
    System.out.println("Primeiro elemento no vetor: " 
      + valores[0]);
  }
}

Ao executar este código nós teremos o seguinte resultado:

Primeiro elemento no vetor: 4

Como podemos ver neste exemplo, um array (nesse caso um vetor) possui um tamanho fixo, ou seja, o compilador não nos permite reduzir ou aumentar a quantidade de elementos em um vetor ou matriz criado a partir da notação de arrays. Assim, apesar de todas as facilidades que os arrays trazem consigo, este pode ser um empecilho para o tipo de aplicação que queremos desenvolver em um determinado momento.

A classe ArrayList, por outro lado, possui tamanho variado. Isso quer dizer que seu tamanho é aumentado ou reduzido de acordo com as necessidades do seu código.

Uma outra questão que diferencia arrays de ArrayList, é que não podemos armazenar tipos primitivos em um objeto da classe ArrayList. Se precisarmos fazer isso, o tipo primitivo deve ser colocado em uma classe encapsuladora, por exemplo, a classe Integer. Em algumas situações o compilador faz isso nos bastidores, e esta operação é chamada de auto-boxing.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle

Exercícios Resolvidos de Java - Escreva um programa Java para ler as notas n1 e n2 de um aluno e calcule a sua média aritmética

Quantidade de visualizações: 496 vezes
Pergunta/Tarefa:

Escreva um programa Java para ler as notas n1 e n2 de um aluno e calcule a sua média aritmética. Se a média for igual ou superior a 7,0 mostre uma mensagem indicando que o aluno foi aprovado.

Se a média for igual ou maior que 3,5 e inferior a 7,0 seu programa deverá indicar que o aluno ficou de exame. Uma média menor que 3,5 indica reprovação direta.

No caso do exame, leia uma nota entre 0 e 10. Agora a média do aluno deverá ser a média entre a média anterior e a nota do exame. Se a nova média for igual ou superior a 5,0 o aluno estará aprovado. Caso contrário o aluno será reprovado.

Use validação para evitar que o usuário informe notas inválidas, ou seja, notas menores que 0 ou maiores que 10. Caso notas inválidas sejam fornecidas seu programa deverá solicitar a nota novamente até que o usuário forneça notas válidas.

Sua saída deverá ser parecida com:

Informe a nota N1: 9.4
Informe a nota N2: 11
Nota inválida. Informe a nota N2: 8.3
A média do aluno é: 8.85
O aluno foi aprovado

Informe a nota N1: 4.2
Informe a nota N2: 1.8
A média do aluno é: 3.0
O aluno reprovou direto.

Informe a nota N1: 5.7
Informe a nota N2: 6
A média do aluno é: 5.85
Informe a nota do exame: 7
A média do aluno com o exame é: 6.425
O aluno foi aprovado após o exame.
Resposta/Solução:

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) {
    // variáveis usadas na resolução do problema
    double n1, n2, media, exame;
    
    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
    
    // vamos ler a primeira nota
    System.out.print("Informe a nota N1: ");
    n1 = Double.parseDouble(entrada.nextLine());
    // a nota é válida?
    while ((n1 < 0) || (n1 > 10)) {
      System.out.print("Nota inválida. Informe a nota N1: ");
      n1 = Double.parseDouble(entrada.nextLine());
    }
    
    // vamos ler a segunda nota
    System.out.print("Informe a nota N2: ");
    n2 = Double.parseDouble(entrada.nextLine());
    // a nota é válida?
    while ((n2 < 0) || (n2 > 10)) {
      System.out.print("Nota inválida. Informe a nota N2: ");
      n2 = Double.parseDouble(entrada.nextLine());
    }
    
    // vamos calcular a média do aluno
    media = (n1 + n2) / 2.0;
    System.out.println("A média do aluno é: " + media);
    
    // o aluno foi aprovado?
    if (media >= 7.0) {
      System.out.println("O aluno foi aprovado");
    }
    // o aluno ficou de exame?
    else if ((media >= 3.5) && (media < 7.0)){
      // vamos ler a nota do exame
      System.out.print("Informe a nota do exame: ");
      exame = Double.parseDouble(entrada.nextLine());
      // a nota é válida?
      while ((exame < 0) || (exame > 10)) {
        System.out.print("Nota inválida. Informe a nota do exame: ");
        exame = Double.parseDouble(entrada.nextLine());
      }
      
      // calcula a nota média
      media = (media + exame) / 2.0;
      System.out.println("A média do aluno com o exame é: " + media);
      
      // o aluno foi aprovado após o exame?
      if (media >= 5.0) {
        System.out.println("O aluno foi aprovado após o exame.");
      }
      else {
        System.out.println("O aluno foi reprovado após o exame.");
      }
    }
    // reprovou direto
    else {
      System.out.println("O aluno reprovou direto.");
    }
  }
}



MySQL ::: Dicas & Truques ::: Data e Hora

Como retornar a hora atual no MySQL usando as funções CURTIME(), CURRENT_TIME e CURRENT_TIME()

Quantidade de visualizações: 11016 vezes
As funções CURTIME(), CURRENT_TIME e CURRENT_TIME() são usadas quando queremos obter a hora atual do servidor MySQL (no fuso horário atual, definido no banco de dados ou no sistema). O valor retornado pode estar no formato 'HH:MM:SS' ou HHMMSS.uuuuuu, dependendo se a função for chamada em um contexto string ou numérico. Veja:

SELECT CURTIME()

O valor retornado será algo como 23:06:33. Veja agora como usar CURTIME() em um contexto numérico:

SELECT CURTIME() + 0

O retorno será algo como 230633.000000.


C# ::: Dicas & Truques ::: Arquivos e Diretórios

Como retornar a data e hora da criação de um diretório em C# usando a função GetCreationTime() da classe Directory

Quantidade de visualizações: 159 vezes
Nesta dica mostrarei como usar o método GetCreationTime() da classe Directory do C# para obter e retornar a data e hora da criação de um diretório. Note que o retorno de uma chamada a este método é um objeto da classe DateTime.

Veja o código completo para o exemplo:

using System;
using System.IO;

namespace Estudos {
  class Principal {
    static void Main(string[] args) {
      // caminho e nome do diretíro
      string diretorio = @"C:\estudos_csharp\imagens";

      DateTime data = Directory.GetCreationTime(diretorio);
      Console.WriteLine("Diretório criado em: {0}", data);

      Console.WriteLine("\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

Ao executar este código C# nós teremos o seguinte resultado:

Diretório criado em: 17/07/2022 22:09:12


Dart ::: Dicas de Estudo e Anotações ::: Estruturas de Controle

Como usar o laço do..while da linguagem Dart

Quantidade de visualizações: 1821 vezes
O laço do...while (faça...enquanto) do Dart é usado quando queremos repetir uma ou mais instruções ENQUANTO uma condição estiver sendo satisfeita. A diferença entre o laço do...while e o laço while é que o primeiro testa a condição de continuidade no final, enquanto o segundo testa a condição de continuidade no início. Por essa razão, o do...while será executado pelo menos uma vez.

Veja um exemplo no qual contamos de 1 até 10:

void main() {
  int cont = 1;

  // vamos contar de 1 até 10
  do {
    print(cont);
    cont++;
  } while (cont <= 10);
}

A execução deste código mostrará o seguinte resultado:

c:\estudos_dart>dart laco_do_while.dart
1
2
3
4
5
6
7
8
9
10

Veja agora um exemplo no qual pedimos para o usuário informar vários valores inteiros e mostraremos a soma. O valor -1 interrompe a leitura:

// Vamos importar a biblioteca dart:io
import 'dart:io';

void main() {
  int valor; // guarda o valor informado pelo usuário
  int soma = 0; // guarda a soma dos valores

  do {
    // vamos pedir para o usuário digitar um valor inteiro
    stdout.write("Digite um número inteiro (-1 para parar): ");
    valor = int.parse(stdin.readLineSync());

    // este valor pode ser somado?
    if (valor != -1) {
      soma = soma + valor;
    }
  } while (valor != -1);

  // saímos do laço
  print("A soma dos valores lidos é $soma");
}

Execute este código e você terá um resultado parecido com:

c:\estudos_dart>dart laco_do_while.dart
Digite um número inteiro (-1 para parar): 5
Digite um número inteiro (-1 para parar): 2
Digite um número inteiro (-1 para parar): 4
Digite um número inteiro (-1 para parar): -1
A soma dos valores lidos é 11


Angular ::: Dicas & Truques ::: Componentes Angular

Angular para iniciantes - Como criar o seu primeiro componente Angular usando o Angular CLI - Comando ng generate component

Quantidade de visualizações: 2884 vezes
Aplicações Angular são construidas em cima de componentes, e estes consistem de:

a) Um template HTML que declara o que deve ser renderizado na página.
b) Uma classe TypeScript que define o comportamento do componente.
c) Um seletor CSS que define com o componente será usado em um template.
d) Estilos CSS opcionais aplicados ao template.

Todos esses aspectos acima são abordados em mais dicas dessa seção. O importante agora é entendermos como criar o componente e exibí-lo no navegador.

Assim, se você ainda não o fez, crie uma nova aplicação Angular usando o Angular CLI. Você pode usar um comando parecido com:

c:\estudos_angular>ng new estudos

Este comando vai criar uma nova aplicação Angular com o nome estudos dentro da pasta "c:\estudos_angular". Aguarde alguns minutos e verá que o Angular CLI já criou toda a estrutura da aplicação. Para executá-la, dispare os comandos abaixo:

c:\estudos_angular>cd estudos
c:\estudos_angular\estudos>ng serve --open

Quando a aplicação subir, veremos o seguinte resultado:



Você obteve um resultado parecido? Então vamos continuar.

Vá até o diretório "C:\estudos_angular\estudos\src\app" e você verá que o Angular CLI já criou para nós um componente com o nome AppComponent por meio dos arquivos app.component.css,
app.component.html, app.component.spec.ts e app.component.ts. Agora vamos voltar nossa atenção para o arquivo app.module.ts. Abra ele no seu editor de texto favorito e você verá o seguinte código:

import {NgModule} from '@angular/core';
import {BrowserModule} from '@angular/platform-browser';

import {AppComponent} from './app.component';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }


Por ora não vamos analisar todo o conteúdo deste arquivo, apenas fique atento ao que vai acontecer com ele depois que criarmos nosso novo componente, o que faremos agora.

Abra uma nova janela de terminal, navegue até o diretório raiz da aplicação e dispare o seguinte comando:

c:\angular>cd estudos
c:\angular\estudos>ng generate component noticia

Nesse momento o Angular CLI criou uma pasta noticia com os seguintes arquivos:

noticia.component.css
noticia.component.html
noticia.component.spec.ts
noticia.component.ts

Agora volte até o arquivo app.module.ts e veja que o Angular CLI o modificou, adicionando o novo componente NoticiaComponent. É importante entender bem o que acontece com este arquivo, pois é ele que indica qual componente será iniciado em primeiro lugar junto com a aplicação Angular.

Agora abra o arquivo noticia.component.ts e altere o seu conteúdo para a versão abaixo:

import { Component } from '@angular/core';

@Component({
  selector: 'app-noticia',
  templateUrl: './noticia.component.html',
  styleUrls: ['./noticia.component.css']
})
export class NoticiaComponent{
  titulo = `Presidente afirma que o preço da gasolina 
    não sobe mais.`;
}

Agora vá em noticia.component.html e altere-o para o código abaixo:

<div>
  <h2>Sou o componente Noticia</h2>
  <h3>{{ titulo }}</h3>
</div>

Nosso componente está pronto. Vamos fazer uns ajustes no componente que o Angular CLI criou para nós automaticamente. Abra o arquivo app.component.ts e altere o seu conteúdo para:

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  nome = 'AppComponent';
}

Agora vá até o arquivo app.component.html e modifique-o para o código abaixo:

<div>
  <h1>Sou o componente que o Angular CLI criou</h1>
  <h2>Meu nome é: {{ nome }}</h2>
</div>

<app-noticia></app-noticia>

Veja que coloquei o componente <app-noticia></app-noticia> dentro do componente principal. Agora, se você reiniciar a aplicação (é provável que as mudanças já estejam aparecendo no seu navegador) você verá o resultado abaixo:



Obteve resultado parecido? Que maravilha! Agora, para terminar esta dica, abra o arquivo noticia.component.css e vamos adicionar os estilos CSS abaixo:

h2 {color: red}
div {border: 1px solid green; padding: 10px}

Veja a aplicação novamente e note como o componente Noticia já contém uma formatação diferente. Agora é só criar vários componentes, agrupá-los, aplicar formatações CSS, imagens, etc, e contruir uma aplicação realmente interessante.


LISP ::: Dicas & Truques ::: Matemática e Estatística

Como calcular MMC em Lisp - Como calcular o Mínimo Múltiplo Comum na linguagem Lisp

Quantidade de visualizações: 961 vezes
O Mínimo Múltiplo Comum (MMC), ou LCM (Least Common Multiple) é um tipo de operação matemática utilizada para encontrar o menor número positivo, diferente de 0 (zero), que é múltiplo ao mesmo tempo de dois ou mais números. O MMC é utilizado, por exemplo, na soma e subtração de frações - quando é necessário um denominador comum.

Nesta dica mostrarei como podemos calcular o MMC de dois números inteiros informados pelo usuário. Veja o código Common Lisp completo:

; variáveis que vamos usar no programa
(let ((num1)(num2)(maior)(mmc))
  ; Vamos ler o primeiro número
  (princ "Informe o primeiro número: ")
  ; talvez o seu compilador não precise disso
  (force-output)
  ; atribui o valor lido à variável num1
  (setq num1 (read))
   
  ; Vamos ler o segundo número
  (princ "Informe o segundo número: ")
  ; talvez o seu compilador não precise disso
  (force-output)
  ; atribui o valor lido à variável num2
  (setq num2 (read)) 
   
  ; agora escolhemos o maior número
  (cond ((> num1 num2)(setq maior num1))
    (t (setq maior num2))
  )
  
  ; e entramos em um laço loop
  (loop
    ; testa se o maior é divisível por num1 e por num2
    (cond ((and (= 0 (rem maior num1))(= 0 (rem maior num2))) 
      ; mmc recebe o maior e sai do laço
      (setq mmc maior)(return)))
		
    ; incrementa o valor da variável maior	
    (setq maior (+ maior 1))
  )
  
  ; mostra o resultado
  (format t "O MMC dos dois números é ~D" mmc)
)

Ao executarmos este código Common Lisp nós teremos o seguinte resultado:

Informe o primeiro número: 6
Informe o segundo número: 3
O MMC dos dois números é: 6

Note que a linguagem Common Lisp possui uma função LCM() que permite calcular o MMC de dois ou mais números. Minha intenção com essa dica foi mostrar como o cálculo do MMC é feito em Common Lisp.


C ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções

Exercício Resolvido de C - Escreva um programa que solicite dois números do tipo inteiro distintos ao usuário e que apresente na tela o maior deles

Quantidade de visualizações: 696 vezes
Pergunta/Tarefa:

Escreva um programa que solicite dois números do tipo inteiro distintos ao usuário e que apresente na tela o maior deles. Esse programa deve possuir uma função para verificar qual é o maior número.

Atenção: seu código deverá assegurar que os dois números informados pelo usuário sejam diferentes. Exiba uma mensagem na tela caso isso acontecer.

Sua saída deverá ser parecida com:

Informe o primeiro número inteiro: 6
Informe o segundo número inteiro: 3
O maior número é: 6
Resposta/Solução:

Veja a resolução comentada deste exercício em C:

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

// protótipo da função que receberá dois números inteiros
// e retornará o maior deles
int maior_numero(int num1, int num2);

// função principal do programa
int main(int argc, char *argv[]){
  setlocale(LC_ALL,""); // para acentos do português 
  
  // variáveis usadas na resolução do problema
  int num1, num2, maior;
  
  // vamos pedir para o usuário informar os dois números
  printf("Informe o primeiro número inteiro: ");
  scanf("%d", &num1);
  printf("Informe o segundo número inteiro: ");
  scanf("%d", &num2);
  
  // os números são iguais?
  if(num1 == num2){
    printf("Erro. Os dois números são iguais.");
  }
  else{
    // vamos chamar a função para obter o número maior
    maior = maior_numero(num1, num2);
    printf("O maior número é: %d", maior);	
  }
  
  printf("\n\n");
  system("PAUSE");	
  return 0;
}

// função que receberá dois números inteiros e retornará
// o maior deles
int maior_numero(int num1, int num2){
  // o primeiro número é maior que o segundo?
  if(num1 > num2){
    return num1;
  }
  else{
    return num2;
  }
}



Delphi ::: VCL - Visual Component Library ::: TEdit

Como obter a quantidade de caracteres em um TEdit do Delphi usando a função GetTextLen()

Quantidade de visualizações: 12814 vezes
Em algumas ocasiões nós precisamos descobrir a quantidade de caracteres contidos em uma caixa de texto do tipo TEdit. Para isso podemos usar o método GetTextLen(), definido originalmente na classe TControl. Esta função retorna um valor inteiro contendo o tamanho do texto da caixa de texto.

Veja um exemplo do uso do método GetTextLen() no trecho de código a seguir:

procedure TForm1.Button1Click(Sender: TObject);
var
  tamanho: Integer;
begin
  // vamos obter a quantidade de caracteres no TEdit
  tamanho := Edit1.GetTextLen();

  // vamos mostrar o resultado
  ShowMessage('O Edit contém ' + IntToStr(tamanho) + ' caracteres.');
end;

Ao executar este exemplo você terá um resultado parecido com:

O Edit contém 5 caracteres.

Carregar Publicações Anteriores


Nossas 20 dicas & truques de programação mais populares

Você também poderá gostar das dicas e truques de programação abaixo

Nossas 20 dicas & truques de programação mais recentes

Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby


E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser. Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book Apenas R$ 32,90


© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 78 usuários muito felizes estudando em nosso site.