Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.
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
C++ ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como calcular o coeficiente angular de uma reta em C++ dados dois pontos no plano cartesiano

Quantidade de visualizações: 1417 vezes
O Coeficiente Angular de uma reta é a variação, na vertical, ou seja, no eixo y, pela variação horizontal, no eixo x. Sim, isso mesmo. O coeficiente angular de uma reta tem tudo a ver com a derivada, que nada mais é que a taxa de variação de y em relação a x.

Vamos começar analisando o seguinte gráfico, no qual temos dois pontos distintos no plano cartesiano:



Veja que o segmento de reta AB passa pelos pontos A (x=3, y=6) e B (x=9, y=10). Dessa forma, a fórmula para obtenção do coeficiente angular m dessa reta é:

\[\ \text{m} = \frac{y_2 - y_1}{x_2 - x_1} = \frac{\Delta y}{\Delta x} = tg \theta \]

Note que __$\Delta y__$ e __$\Delta x__$ são as variações dos valores no eixo das abscissas e no eixo das ordenadas. No triângulo retângulo que desenhei acima, a variação __$\Delta y__$ se refere ao comprimento do cateto oposto e a variação __$\Delta y__$ se refere ao comprimento do cateto adjascente.

Veja agora o trecho de código na linguagem C++ que solicita as coordenadas x e y dos dois pontos, efetua o cálculo e mostra o coeficiente angular m da reta que passa pelos dois pontos:

#include <iostream>
#include <cstdlib>
 
using namespace std;
 
int main(int argc, char *argv[]){
  // coordenadas dos dois pontos
  float x1, y1, x2, y2;
  // guarda o coeficiente angular
  float m; 
       
  // x e y do primeiro ponto
  cout << "Coordenada x do primeiro ponto: ";
  cin >> x1;
  cout << "Coordenada y do primeiro ponto: ";
  cin >> y1;
     
  // x e y do segundo ponto
  cout << "Coordenada x do segundo ponto: ";
  cin >> x2;
  cout << "Coordenada y do segundo ponto: ";
  cin >> y2;   
     
  // vamos calcular o coeficiente angular
  m = (y2 - y1) / (x2 - x1);
     
  // mostramos o resultado
  cout << "O coeficiente angular é: " << m << "\n\n";
   
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

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

Coordenada x do primeiro ponto: 3
Coordenada y do primeiro ponto: 6
Coordenada x do segundo ponto: 9
Coordenada y do segundo ponto: 10
O coeficiente angular é: 0.666667
Pressione qualquer tecla para continuar...

Veja agora como podemos calcular o coeficiente angular da reta que passa pelos dois pontos usando o Teorema de Pitágoras. Note que agora nós estamos tirando proveito da tangente do ângulo Theta (__$\theta__$), também chamado de ângulo Alfa ou Alpha (__$\alpha__$):

#include <iostream>
#include <cstdlib>
#include <math.h>
 
using namespace std;
 
int main(int argc, char *argv[]){
  // coordenadas dos dois pontos
  float x1, y1, x2, y2;
  // guarda os comprimentos dos catetos oposto e adjascente
  float cateto_oposto, cateto_adjascente;
  // guarda o ângulo tetha (em radianos) e a tangente
  float tetha, tangente;
       
  // x e y do primeiro ponto
  cout << "Coordenada x do primeiro ponto: ";
  cin >> x1;
  cout << "Coordenada y do primeiro ponto: ";
  cin >> y1;
     
  // x e y do segundo ponto
  cout << "Coordenada x do segundo ponto: ";
  cin >> x2;
  cout << "Coordenada y do segundo ponto: ";
  cin >> y2;   
     
  // vamos obter o comprimento do cateto oposto
  cateto_oposto = y2 - y1;
  // e agora o cateto adjascente
  cateto_adjascente = x2 - x1;
  // vamos obter o ângulo tetha, ou seja, a inclinação da hipetunesa
  // (em radianos, não se esqueça)
  tetha = atan2(cateto_oposto, cateto_adjascente);
  // e finalmente usamos a tangente desse ângulo para calcular
  // o coeficiente angular
  tangente = tan(tetha);
     
  // mostramos o resultado
  cout << "O coeficiente angular é: " << tangente << "\n\n";
   
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Ao executar este código você verá que o resultado é o mesmo. No entanto, fique atento às propriedades do coeficiente angular da reta:

1) O coeficiente angular é positivo quando a reta for crescente, ou seja, m > 0;

2) O coeficiente angular é negativo quando a reta for decrescente, ou seja, m < 0;

3) Se a reta estiver na horizontal, ou seja, paralela ao eixo x, seu coeficiente angular é zero (0).

4) Se a reta estiver na vertical, ou seja, paralela ao eixo y, o coeficiente angular não existe.


VB.NET ::: Dicas & Truques ::: Matemática e Estatística

Como verificar se um número é par ou ímpar em VB.NET

Quantidade de visualizações: 20945 vezes
Em várias situações nós lidamos com códigos VB.NET nos quais precisamos verificar se um determinado valor é par ou ímpar. Para efetuar este teste, nós só precisamos usar o operador Mod, que retorna o resto de uma divisão envolvendo inteiros. Assim, se o resto da divisão for 0, sabemos que o número é par e, em caso contrário, será ímpar.

Veja o código completo para o exemplo que lê um número e informa se ele é par ou ímpar:

Imports System

Module Program
  Sub Main(args As String())
    Dim valor As Integer

    Console.Write("Informe um número inteiro: ")
    valor = Val(Console.ReadLine())

    If valor Mod 2 = 0 Then
      Console.WriteLine("O número é par")
    Else
      Console.WriteLine("O número é ímpar")
    End If

    Console.WriteLine("\nPressione qualquer tecla para sair...")
    ' pausa o programa
    Console.ReadKey()
  End Sub
End Module

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

Informe um número inteiro: 38
O número é par
Pressione qualquer tecla para sair...


Java ::: Dicas & Truques ::: Arquivos e Diretórios

Como renomear um diretório em Java usando o método renameTo() da classe File - Arquivos e diretórios em Java

Quantidade de visualizações: 95 vezes
Nesta dica mostrarei como podemos usar o método renameTo() da classe File da linguagem Java para renomear um diretório. Veja que este método retorna boolean, ou seja, o valor true caso o diretório for renomeado com sucesso e false em caso contrário.

Veja o código completo para o exemplo:

package arquivodecodigos;

import java.io.*;
 
public class Estudos{
  public static void main(String[] args){
    // diretorio com o nome antigo
    File dir1 = new File("c:\\java");
     
    // diretorio com o novo nome
    File dir2 = new File("c:\\java_novo");
     
    boolean ok = dir1.renameTo(dir2);
    if(ok){
      System.out.println("Diretorio renomeado com sucesso.");
    }
    else{
      System.out.println("Nao foi possivel renomear o diretorio.");
    }
  }
}

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

Diretorio renomeado com sucesso.


C ::: C para Engenharia ::: Física - Mecânica

Como calcular a altura da queda livre de um corpo dado o tempo de queda e a aceleração da gravidade usando a linguagem C

Quantidade de visualizações: 1875 vezes
A Queda livre é um movimento unidimensional e uniformemente acelerado. Tal movimento ocorre quando algum corpo é solto do repouso a partir de certa altura. Uma vez que a aceleração da gravidade é constante, se desconsiderarmos a ação de forças dissipativas, o tempo de descida nesse movimento será sempre igual.

Na prática, o movimento de queda livre ideal é bastante próximo daquele em que um objeto é solto a uma pequena altura em relação ao chão. No entanto, rigorosamente, esse movimento só acontece quando algum objeto é solto no vácuo. De acordo com as equações do movimento de queda livre, o tempo de queda não depende da massa dos objetos, mas da aceleração da gravidade e da altura em que esse objeto é solto.

A queda livre é um movimento vertical que ocorre com aceleração constante, de modo que a velocidade de queda do corpo aumenta a cada segundo em relação ao centro da Terra, de acordo com a aceleração da gravidade local.

Quando soltos no vácuo, corpos de massas diferentes chegarão no mesmo tempo ao chão. O fato de uma pena não chegar ao chão no mesmo tempo em que uma bola de boliche, quando soltas na superfície da Terra, está associado ao atrito com o ar, que é quase desprezível para objetos pesados e aerodinâmicos, como a bola de boliche.

A altura da queda livre de um objeto, quando temos apenas o tempo (duração da queda), pode ser obtida por meio da seguinte fórmula:

\[ \text{H} = \frac{\text{g} \cdot t^2}{2} \]

Onde:

H ? altura em metros na qual o corpo é abandonado.

g ? aceleração da gravidade (m/s2).

t ? tempo da queda (em segundos).

Em alguns livros de Física esta fórmula é encontrada também na forma:

\[ \text{h} = \frac{1}{2} \text{g} \cdot t^2 \]

Vamos ver um exemplo? Veja o seguinte enunciado:

1) Sabendo que um corpo leva 2s para chegar ao chão após ter sido abandonado a uma altura H em relação ao solo, calcule a altura em que esse corpo foi abandonado, em metros.

Note que o tempo de queda é de 2 segundos. Então, como sabemos que a aceleração da gravidade terrestre é 9.80665, só precisamos jogar na fórmula. Veja o código C completo para o exemplo:

#include <stdio.h>
#include <stdlib.h>
#include <math.h> 
     
int main(int argc, char *argv[]){
  // gravidade terrestre em m/s2
  float gravidade = 9.80665;
  // tempo da queda
  float segundos = 2; // em segundos
  
  // vamos calcular a altura da queda
  float altura = (gravidade * pow(segundos, 2)) / 2;
  
  // mostramos o resultado
  printf("A altura da queda livre é: %f metros",
    altura);
			  
  printf("\n\n");
  system("PAUSE");
  return 0;
}

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

A altura da queda livre é: 19.613300 metros.


C# ::: Windows Forms ::: CheckBox

Como marcar ou desmarcar uma CheckBox do C# Windows Forms via código

Quantidade de visualizações: 14738 vezes
É possível marcar ou desmarcar uma CheckBox do C# Windows Forms via código. Para isso só precisamos manipular sua propriedade Checked. Se quisermos que a CheckBox seja marcada, basta fornecermos o valor true para esta propriedade. Veja:

private void button1_Click(object sender, EventArgs e){
  // vamos marcar a CheckBox
  checkBox1.Checked = true;
}

Se quisermos desmarcar, basta fornecermos o valor false. Veja:

private void button1_Click(object sender, EventArgs e){
  // vamos desmarcar a CheckBox
  checkBox1.Checked = false;
}



PostgreSQL ::: Dicas & Truques ::: Comandos DDL (Data Definition Language - Linguagem de Definição de Dados)

Como criar uma tabela no PostgreSQL usando o comando DDL CREATE TABLE

Quantidade de visualizações: 6878 vezes
O comando DDL CREATE TABLE do PostgreSQL é usado quando queremos criar uma nova tabela em uma determinada base de dados (e schema). Em geral criamos novas tabelas usando a ferramenta pgAdmin. No entanto, é importante conhecer e dominar este comando de forma a conseguirmos criar tabelas a partir da janela de Query do pgAdmin, do SQL Shell (psql) ou usando uma linguagem de programação.

O comando DDL CREATE TABLE contém uma série de cláusulas opcionais. Muitas delas são abordadas nas dicas desta seção. Apenas o nome da tabela a ser criada é obrigatório. Veja o comando CREATE TABLE a seguir:

CREATE TABLE produtos();

Este comando criará uma tabela vazia e sem nenhum campo no schema public da base de dados na qual estamos conectados no momento. É claro que uma tabela sem nenhum campo não possui nenhuma utilidade (a não ser que decidamos adicionar os campos mais tarde). Sendo assim, veja um comando CREATE TABLE que cria uma tabela chamada usuarios com os campos: id, nome, senha, data_cadastro:

CREATE TABLE usuarios(
  id serial NOT NULL,
  nome varchar(20) NOT NULL,
  senha varchar(20) NOT NULL,
  data_cadastro date NOT NULL,
  PRIMARY KEY (id)
);

Ao dispararmos o comando, o PostgreSQL nos exibirá a seguinte mensagem:

NOTA: CREATE TABLE criará sequência implícita "usuarios_id_seq" para coluna serial "usuarios.id"
NOTA: CREATE TABLE / PRIMARY KEY criará índice implícito "usuarios_pkey" na tabela "usuarios"
Query returned successfully with no result in 121 ms.

Isso é sinal de que a tabela foi criada com sucesso. Para verifirmos e exibirmos os dados da tabela recém-criada, podemos disparar o seguinte comando DML SELECT:

SELECT column_name, data_type, is_nullable, character_maximum_length 
FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'usuarios';

Como resultado teremos:

column_name    data_type           is_nullable   character_maximum_length
id             integer             NO     
nome           character varying   NO            20
senha          character varying   NO            20
data_cadastro  date                NO
Note que o campo id da tabela é do tipo auto-incremento de 4 bytes e foi marcado como chave-primária. Os campos nome e senha são varchar de 20 caracteres e o campo data_cadastro é do tipo date.

É importante termos em mente a mensagem de erro que o PostgreSQL exibirá quando tentamos criar uma tabela com um nome de uma já existente na mesma base de dados e schema:

NOTA:  CREATE TABLE criará sequência implícita "usuarios_id_seq1" 
para coluna serial "usuarios.id"
ERRO:  relação "usuarios" já existe

********** Error **********

ERRO: relação "usuarios" já existe
SQL state: 42P07
Para evitar este erro, o PostgreSQL nos fornece a cláusula IF NOT EXISTS. Esta cláusula faz com que o comando CREATE TABLE verifique antes se uma tabela com o mesmo nome já existe. Veja:

CREATE TABLE IF NOT EXISTS usuarios(
  id serial NOT NULL,
  nome varchar(20) NOT NULL,
  senha varchar(20) NOT NULL,
  data_cadastro date NOT NULL,
  PRIMARY KEY (id)
);

Agora o PostgreSQL trocará a mensagem de erro pela seguinte mensagem de advertência:

NOTA:  relação "usuarios" já existe, ignorando

Query returned successfully with no result in 14 ms.



PHP ::: Dicas & Truques ::: Strings e Caracteres

Como transformar uma string em letras minúsculas em PHP usando a função strtolower()

Quantidade de visualizações: 31 vezes
A função strtolower() do PHP pode ser usada quando queremos converter uma palavra, frase ou texto para letras minúsculas.

Veja um exemplo de seu uso:

<?php
  // vamos definir a codificação como iso-8859-1
  ini_set('default_charset', "iso-8859-1");
  
  // vamos criar uma string
  $frase = "PHP? Eu gosto de PHP";
  echo "A frase original é: " . $frase;
  
  // agora vamos converter a frase para letras
  // minúsculas
  $frase_minusculas = strtolower($frase);
  echo "<br>Em letras minúsculas: " . $frase_minusculas;
?>

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

A frase original é: PHP? Eu gosto de PHP
Em letras minúsculas: php? eu gosto de php

Ao executar este código no PHP 8, Windows 10 e codificação do arquivo em ANSI, o resultado da função strtolower() é o esperado, mas somente sem usar acentos e caracteres especiais. Veja:

<?php
  // vamos definir a codificação como iso-8859-1
  ini_set('default_charset', "iso-8859-1");
  
  // vamos criar uma string
  $frase = "JAVA? NÃO! É DE PHP QUE EU GOSTO";
  echo "A frase original é: " . $frase;
  
  // agora vamos converter a frase para letras
  // minúsculas
  $frase_minusculas = strtolower($frase);
  echo "<br>Em letras minúsculas: " . $frase_minusculas;
?>

Ao executarmos o código novamente nós teremos a seguinte saída:

A frase original é: JAVA? NÃO! É DE PHP QUE EU GOSTO
Em letras minúsculas: java? nÃo! É de php que eu gosto

Note que as letras acentuadas não foram convertidas para letras minúsculas. Isso aconteceu porque os caracteres acentuados são tratados como caracteres de múltiplos bytes, ou seja, multi-byte chars. A saída, nesse caso, e no PHP 8 (e acredito mais recentes), é usar a função mb_strtolower(). Veja:

<?php
  // vamos definir a codificação como iso-8859-1
  ini_set('default_charset', "iso-8859-1");
  
  // vamos criar uma string
  $frase = "JAVA? NÃO! É DE PHP QUE EU GOSTO";
  echo "A frase original é: " . $frase;
  
  // agora vamos converter a frase para letras
  // minúsculas
  $frase_minusculas = mb_strtolower($frase);
  echo "<br>Em letras minúsculas: " . $frase_minusculas;
?>

Execute o código novamente e verá que o resultado agora está correto:

A frase original é: JAVA? NÃO! É DE PHP QUE EU GOSTO
Em letras minúsculas: java? não! é de php que eu gosto

Agora você já sabe o primeiro passo para resolver problemas de acentuação no PHP. Bons estudos.


C ::: Desafios e Lista de Exercícios Resolvidos ::: Razão e Proporção

Exercícios Resolvidos de C - Como resolver problemas de razão e proporção em C - Em uma empresa, a razão entre o número de mulheres e o número

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

Em uma empresa, a razão entre o número de mulheres e o número de homens é de 3/5. Sabendo que há 30 homens nessa empresa, então o número de mulheres é:

A) 18
B) 20
C) 22
D) 24
E) 27

Antes de tentarmos resolver esse problema em C, vamos relembrar o que são razão e proporção. Os conceitos de razão e proporção estão ligados ao quociente. A razão é o quociente de dois números, e a proporção é a igualdade entre duas razões.

No exercício acima, o valor de 30 homens está fixo, mas seu programa C deverá pedir para o usuário informar a quantidade de homens. Isso vai permitir aplicar o algoritmo em situações diferentes da exposta aqui.

Sua saída deve ser parecida com:

Informe a quantidade de homens: 30
A quantidade de homens é: 30
A quantidade de mulheres é: 18.0
Resposta/Solução:

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

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

// função principal do programa
int main(int argc, char *argv[]){
  // variáveis usadas na resolução do problema
  float dividendo = 3.0;
  float divisor = 5.0;
  int quant_homens;
  float quant_mulheres;
    
  // vamos ler a quantidade de homens
  printf("Informe a quantidade de homens: ");
  scanf("%d", &quant_homens);
  printf("A quantidade de homens é: %d", quant_homens);
    
  // agora fazemos a multiplicação cruzada
  quant_mulheres = (quant_homens * dividendo);
  // e dividimos pelo divisor
  quant_mulheres = quant_mulheres / divisor;
    
  // e mostramos o resultado
  printf("\nA quantidade de mulheres é: %f", quant_mulheres);
  
  printf("\n\n");
  system("PAUSE");
  return 0;
}



Delphi ::: Dicas & Truques ::: Data e Hora

Como retornar a data e hora atual em Delphi usando as funções Now() e DateTimeToStr()

Quantidade de visualizações: 23839 vezes
Em algumas situações precisamos obter a data e hora atual do sistema. Em Delphi isso pode ser feito com o auxílio da função Now(), presente na unit SysUtils. Este função não requer nenhum argumento e retorna a data e hora atual como um TDateTime. Veja o exemplo:

procedure TForm1.Button1Click(Sender: TObject);
var
  data: TDateTime;
begin
  // vamos obter a data e hora atual
  data := Now();

  // vamos exibir o resultado
  ShowMessage(DateTimeToStr(data));
end;

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

28/09/2018 15:14:15

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.


GoLang ::: Fundamentos da Linguagem ::: Laços de Repetição

Como usar o laço for em GoLang - O laço for da linguagem Go

Quantidade de visualizações: 1007 vezes
Como todas (ou praticamente todas) as linguagens de programação, a GoLang também possui o seu laço for, ou loop for. Este laço é usado para repetir uma ou mais instruções quando sabemos exatamente quantas vezes essa repetição ocorrerá.

Em Go, o laço for é composto de três partes: inicialização, teste de continuidade e incremento ou decremento da variável de controle. Na parte da inicialização nós declaramos e inicializamos as variáveis que serão usadas dentro da estrutura. O teste de continuidade é a parte na qual verificamos se o laço deverá continuar repetindo ou encerrar. Finalmente, a parte de incremento ou decremento é usada para ajustarmos a variável de controle do laço.

Veja, por exemplo, como escrever um laço for em GoLang que contará de 1 até 10, escrevendo os números na tela:

// pacote principal
package main

// vamos importar o módulo de formatação de
// entrada e saída
import "fmt"

// esta é a função principal do programa
func main() {
  for i := 1; i <= 10; i++ {  
    fmt.Printf("%d  ", i)  
  }  
}

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

1 2 3 4 5 6 7 8 9 10

O laço for da linguagem GoLang nos permite omitir as partes da inicialização e de incremento ou decremento, embora esse tipo de código não seja muito usual.

Veja um trecho de código no qual usamos o laço for da linguagem Go para contar de 10 até 0 (omitindo a parte da inicialização da variável de controle):

// pacote principal
package main

// vamos importar o módulo de formatação de
// entrada e saída
import "fmt"

// esta é a função principal do programa
func main() {
  i := 10 // definimos o valor inicial aqui
  
  for ; i >= 0; i-- {  
    fmt.Printf("%d  ", i)  
  }  
}

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

10 9 8 7 6 5 4 3 2 1 0

Veja, agora, uma modificação do código acima. Desta vez eu omiti a parte de incremento ou decremento da variável de controle:

// pacote principal
package main

// vamos importar o módulo de formatação de
// entrada e saída
import "fmt"

// esta é a função principal do programa
func main() {
  for i := 10; i >= 0; {  
    fmt.Printf("%d  ", i)
    i--	
  }  
}


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



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