// Criado por Antonio Batista
#include <iostream>    // biblioteca para entrada e saida de dados
#include<math.h>       // biblioteca de recursos para calculos matemáticos
#include <string>      // biblioteca para utilização de strings
using namespace std;  // definir todas as bibliotecas de função padrão, exemplo "std::cout"(para não ter de usar o std::)
int main()
{
// comentando apenas uma linha
/* comentando varias linhas...utilize nesse código para comentar o código que não deseja executar.
   comenta varias linhas
*/
// COMANDO BÁSICOS
    //VARIÁVEIS TIPO    NOME
    int numeroInteiro = 0 ;                      // declaração para uma variável de números inteiro. Ela reserva uma posição da memória(Posições reservadas para declaração de variável) para armazenar a variável
    char caractere;                             // declaracao de uma variável de caracteres.
    char questao1[] = "Qual seu nome? \n";     //declaração de um vetor de caracteres.
    char resposta1 [80];                      // declaração de vetor com quantidade de posições
    int a=3;                                 //declaração tipo int
    float b=6.1;                            //declaracao do tipo float(números com decimais)
    double c=1.5123;                       // declaracao do tipo double(números com maior precisão)
    int  x1=4,y1=2;
    cout << "Multiplicacao " << a*b << endl;           //multiplicando, endl equivale ao "\n" para pular linha
    cout << "Soma " << b+c << endl;                   // somando
    cout << "Divisao " << b/c << "\n";               // divisão
    cout << "Subtracao " << b-c << "\n";            // subtração
    cout << "Resto da divisao " << x1%y1 << "\n";  // resto da divisão
    cout << "Potencia "<< pow(x1,2) <<endl;       // potencia com a biblioteca #include<math.h>
    cout << "Potencia de outro modo:" << x2*x2 << endl; // potencia sem biblioteca;
    int j=10;
    cout << j++ << endl;      // diferença entre j++ e ++j, é o incremento, j++ primeiramente é executa a saída para depois realizar o incremento, ou seja imprime na tela valor 10 e depois soma +1
                             // assim j=11
    cout << ++j << endl;    // e aqui (++j) ele soma e depois imprime na tela, logo j = 12 irá aparecer na tela
    cout << "Digite um numero inteiro. \n" ;
    cin >>  numeroInteiro ;                 // salva a informação da entrada de dados( teclado ) na variável de inteiro "numeroInteiro"
    cout << "o numero inteiro digitado foi:" << numeroInteiro << "\n";
    cout << numeroInteiro << " outra maneira de digitar o numero inteiro \n" ;
    cout << "outra maneira de digitar o numero inteiro " << numeroInteiro << " é esta \n" ;
    cout << "Digite um caracter \n";
    cin >> caractere;
    cout << "Caracter digitado foi "<< caractere <<"\n";
    cout << questao1;
    cin >> resposta1;
    cout << "Seu nome e " << resposta1 << "\n";
// LAÇOS CONDICIONAIS
// Laços condicionais --> IF
    int x,y;
    cout << "Digite dois numeros em sequencia" << endl;
    cin  >> x >> y ;                                      // pegando dois numeros em sequencia
    cout << "numero digitado em x " << x << endl;
    cout << "numero digitado em y " << y << endl;
    if(x==y){                                            // condicao se x é igual a y
        cout << " Os dois sao iguais" <<endl;
    }else                                                // se não, caso não seja ele entra na condição posterior
    {
        if(y > x )                                        //se y for maior que x
        {
            cout << y << " E o maior valor" << endl;
        }else
        {
            cout << x << " E o maior" << endl;
        }
        if(x+2>y && x-1>0)                                // a medida que inserir mais condições , deve se juntar as condições com () de acordo com critério que desejar ,exemplo: ( x+2>y || (x-1>0 && x>0) )
        {
            cout << "condicao dupla E, ideia de soma, tem de acontecer as duas" << endl;
        }else
     {
        cout << "nao entrou na condicao" << endl;
     }
    }
// Laços condicionais --> Switch - com opcao caracter
    float r;
    int u;
    char operacao;
    cout << " Digite um numero" << endl;
    cin >> r ;
    cout << " Escolha outro numero" << endl;
    cin >> u ;
    cout << " Escolha a operacao , +,-,/,*" << endl;
    cin >> operacao ;
    switch(operacao)                                                          // operacao é a variavel que que vai para o "case" ou seja :
    {
    case '+' : cout << r+u << " Soma!\n";break;                             // quando "operacao" é igual a "+" ele entra nessa opção
    case '-' : cout << r-u << " Subtracao!\n"; break;                      // quando "operacao" é igual a "-" ele entra nessa opção
    case '/' : cout << r/u << " Divisao!\n"; break;                       // quando "operacao" é igual a "/" ele entra nessa opção
    case '*' : cout << r*u << " Multiplicacao\n"; break;                 // quando "operacao" é igual a "*" ele entra nessa opção
    default: cout << " Nao escolheu certo! " << operacao << endl;      // comando "default" é quando nenhuma das opcoes em "operacao" são encontradas, ele não entra em nenhum "case".
    }
// LAÇOS DE REPETIÇÃO
// laço de repetição - for
    int i;
    int vetorPreenchido[5] = {123,1,2,3,4};         // declaração de vetor ja preenchido ele têm TAMANHO 5, ou seja... posições [0][1][2][3][4]
    for(i=10; i>=0; i--)                 // para "i=10" vai decrementando de 1 em 1(i--) até chegar o 0 quando chegar em 0 ele não entra no laço.
    {
       cout << i << endl;
    }
    int i;
    for (i=0; i<=10; i=i+2)              // para "i=0" vai pecorrendo de 1 em 1(i++) até chegar o 10 quando chegar em 10 ele nao entra no laço.
    {
       cout << i << endl;
    for(i=0; i<=4; i++)               // para "i=0" vai pecorrendo de 1 em 1(i++) até chegar o 5 quando chegar em 5 ele nao entra no laço.
    {
       cout << vetorPreenchido[i] << endl;
    }
    for(i=0; i<10; i++)              // para i=0 vai pecorrendo de 1 em 1(i++) até chegar o 10 quando chegar em 10 ele não entra no laço.
                                    //vale notar que todos os valores após o tamanho do vetor são valores da memória, valores lixo.(inclusive o 5, que é o tamanho do vetor nesse exemplo)
                                   //então FIQUE ATENTO!
    {
       cout << vetorPreenchido[i] << endl;
    }
 //   }
// laço de repetição - while
    int i=10;
    while(i < 10)           // enquanto "i" for menor do que 10 ele executara o laço
    {
        i = i+1;
        cout << i << endl;
    }
// laço de repetição - do while
    do                      // executa ao menos uma vez a repetição "faça enquanto a condição seja verdade"
    {
        i = i-1;
        cout << i << endl;
    }while(i >= 10);
// VETORES
    int x;
    int i;
    int vetor [2];                                      // declaracao de vetor somente o seu tamanho(posicoes) sem conter informação
    int vetorPreenchido[5] = {123,1,2,3,4};            // o preenchimento de vetores começam com a POSIÇÃO 0(ZERO) ou seja,
                                                      // se vc declara um vetorPreenchido[5] ele quer dizer que tem 5 posições as
                                                     // posições 0,1,2,3,4.(vetor[0], vetor[1], vetor[2], vetor[3], vetor[4].
    cout <<"Digite a posicao que deseja entre 0 e 4 " << endl;
    cin >> i;
    cout << vetorPreenchido[i] <<endl;
    cout << " digite um numero para preencher a posicao 0 de outro vetor" << endl;
    cin >> x ;
    vetor[0]=x;                                 // salvar o valor na posição  0(zero) do vetor
    cout << " digite um numero para preencher a posicao 1 de outro vetor" <<endl;
    cin >> x ;
    vetor[1]=x;
    cout <<"Posicao [0] " << vetor[0]<< endl<< "Posicao [1] " << vetor [1] << endl;
// exercico de sala  --> calculo do desvio padrao
    int x[50];
    int i;
    int a=0;
    float desvio, soma;
    float media;
    for(i=0;i<50;i++)
    {
        a=a+2;
        x[i]=a;
        //  cout << i << " " << x[i] <<endl;
        soma=soma+x[i];
    }
    media=soma/50;
    for(i=0;i<50;i++)
    {
        soma=soma+pow(x[i]-media,2);
    }
    desvio=pow((soma/49), (1./2.));                         // 1./2. (não necessita de biblioteca) -->  raiz --> ou sqrt(soma/49), este deverá usar a biblioteca #include<math.h>
    cout <<"desvio padrao = " << desvio << endl;
//STRING
    string stg = "Ola mundo das strings";   // declaração de string
    string teste, get;
    cout<<"digite"<<endl;
    getline(cin,teste);                     // armazena no teste a linha de texto inteira, inclusive os espaços
    cout << teste <<endl;
    cout << stg << endl ;                   // imprimindo string na tela
    cout <<"";
    cin >> get;		                        //armazena no get apenas a palavra
    cout << get <<endl;
//STRING - manipulando string
    cout << stg[2] << endl;                 //imprime a terceira letra da frase contida no stg, no caso a letra "a"
    int tam = stg.size();                  // ver o tamanho da string inclusive cotnando com os espacos
    cout << tam <<endl;
//STRING - pecorrendo a string
 //   cout <<""<<endl;                     // somente para separar o código
    int i;
    for (i = 0; i < tam; i++){
	cout << stg[i];                      // imprime o caracter na posição i
    cout << endl;
    }
//STRING - adicionar caracter
    stg = stg + "!";                    // adiciona logo após o ultimo caracter da string
    cout << stg <<endl;
//MATRIZES
    int i=0,j=0;
    int mat[11][11];
    int x=2;
    for(i=0;i<=10;i++)                      // começa com a linha =0 (i=0) e entra no segundo for para pecorrer as colunas
    {
        for(j=0;j<=10;j++)
                                        // mantem-se na linha 0 (i=0) e vai ate a última coluna(j=10)
                                       //quando chegar em j=10 ele sai do laço e volta para o laço da linha (i), mudando i para i=1 e volta a percorrer as colunas até pecorrer toda a matriz.
        {
            x=x+2;
            mat[i][j] = x;          // guarda o valor de x na posicao [i][j] da matriz
     //     cout << "Posicao [" << i <<"] " << "Posicao ["<<j<< "]" ; //imprimir os valores da matriz para acompanhar o incremento
      //      cout << "=" <<mat[i][j]<<endl;
        }
    }
    cout <<""<<endl;
    for(i=0; i<11; i++)
    {
        for(j=0; j<11; j++)
    {
        cout << "Linha [" << i <<"] " << "Coluna ["<<j<< "]" ; //imprimir os valores da matriz
        cout <<"=" << mat[i][j] <<endl;
    }
    }
    return 0;
}
// Codigo parte 2 - Função Recursiva , codigo separado para facilitar a leitura do programa principal e função que será chamada recursivamente.
// FUNÇÃO RECURSIVA  - Calculo do fatorial
/*
#include <iostream>
using namespace std;
int fat(int n) {        // função recursiva, fica entrando na funcao até que chegue no fatorial de 1
	if(n <= 1){
		return 1;
              }
	int z= n * fat(n-1);    // fica entrando na função fat até que o n chegue em 1
    return z;
}
int main() {
	int n;
	cin >> n;
	while(n != -1) {
		cout << fat(n) << endl;     // entra na fat(n) e fica até que o calculo de fatorial esteja completo.
		cin >> n;
	}
	return 0;
}
// Função chamando outra
int funcaochamaoutra(int a, int b, int c) {	// função que soma 3 inteiros passados por parametro
return a+b+c;				//retorna o resultado da soma a+b+c
}
int main() {
    float x,y,z;
    cin >> x ;
    cin >> y ;
    cin >> z ;               				     // função principal
    cout << funcaochamaoutra(x,y,z) << endl;        //chama a função recursiva “funcaoRecursiva
                                        //(com os parametros 2, 3 e 7)
}
*/

Comentários