#include <iostream> /* Biblioteca que contém as ferramentas para manipulação de entrada e saída de dados(Executa o fluxo de 'io'(Entrada e saida)) no c++. P.S: A biblioteca <iostream> é uma versão evoluída da <stdio.h> da linguagem C.Tem implementada palavras especiais pra manipularmos a formatação.Traz um conjunto de instruções chamados de manipuladores. */ using namespace std; /* Em nosso código, a linha usando namespace std; diz ao compilador que use o namespace std (padrão). O namespace std inclui recursos da Biblioteca Padrão C++. */ /* O ponto de entrada de cada programa C ++ é main() independente do que o programa faz. */ int main(int argc, char *argv[]) { int num; /* Na maioria dos ambientes de programa, o destino de saída padrão padrão é a tela. Em C ++, cout é o objeto de fluxo usado para acessá-lo. */ cout << "Digite um numero: " << endl; // << OPERADOR DE INSERÇÃO /* O manipulador endl move-se para uma nova linha para imprimir o segundo texto. O operador cout não insere uma quebra de linha no final da saída. Uma maneira de imprimir duas linhas é usar o manipulador de endl, que irá colocar uma quebra de linha. */ /* cout => CONSOLE.OUTPUT cout << É o nosso objeto de saída de fluxo, ou seja, passamos a este o que deve ser exibido no monitor.//OBJETO DE SAÍDA */ cin >> num; // >> OPERADOR DE EXTRAÇÃO /* cin => CONSOLE.INPUT cin >> É o nosso objeto de entrada de fluxo, ou seja, capturamos o que é digitado no teclado pelo nosso usuário. */ cout << "Voce digitou " << num << endl; return 0; /* A última instrução no programa é a declaração de retorno. A linha retorna 0; termina a função principal () e faz com que ele retorne o valor 0 ao processo de chamada. Um valor não-zero (geralmente de 1) sinaliza uma terminação anormal. */ }
I propose with this blog to share my doubts and knowledge about my private learning in the powerful and fascinating C ++ language, adjacencies and curiosities researched by me in technology. I believe that this will help me one day to write computational logic poems comprehensible to low- and medium-level language, making me, perhaps, a new possibility.
sábado, 17 de fevereiro de 2018
Função main, streams e execução do programa.
Alocando Memória Dinamicamente.
É quando não sabemos a quantidade de dados que deverão ser adicionados quando o programa está em execução.
Abaixo, segue um exemplo simples:
/*
--Alocando memória dinamicamente(Fora da pilha)--
O C++ oferece uma área extra na memória
com o objetivo de alocação de memória.
conhecido pelo nome de Heap(pilha).
*/
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
char *p = new char[256];
/*
'new' é a palavra reservada para a alocação de memoria.
No caso, a palavra-chave retorna um ponteiro para o array
recém criado.
A pilha de memória não é alocada até o momento de execução.
*/
p[0] = 'a';
p[1] = 'b';
p[2] = 'c';
p[3] = '\0'; // '\0' indica o final.
cout << *p << endl;
cout << *(p + 1) << endl;
cout << *(p + 2) << endl;
/*
Quando você aloca memória fora da pilha, precisa retorná-la.
Você retorna a memória á pilha usando a palavra reservada:
'delete'.
*/
delete[] p;
p = NULL; // Zerando um ponteiro.
return 0;
}
quinta-feira, 16 de novembro de 2017
Simples encadeamento de operadores '<<'
// O operador >> pode ser usado de forma encadeada.
#include <iostream>
using namespace std;
int main(void)
{
char nome[80];
cout << "Qual o seu nome?";
cin >> nome;
cout << "Ola" << " " << nome << ", tudo bem?"; // encadeamento do operador '<<'
cout << "Como voce esta?";
cout << "Desejo-lhe uma excelente semana!";
}
terça-feira, 14 de novembro de 2017
Alocar/desalocar memória e zerar o ponteiro.
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int x = 20; // Aloca memória
int* px;
px = &x; // & para acessar o endereço de memória da variável x
cout << *px << endl;
delete px; // Desaloca memória
px = NULL; // Zera o ponteiro
return 0;
}
-----------------------------------Com Array--------------------------------------
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int* ponteiro = new int[10]; // aloca memoria
cout << "Digite um numero: ";
cin >> *(ponteiro);
cout << "Voce digitou: " << *(ponteiro) << endl;
delete[] ponteiro; // desaloca memoria
ponteiro = NULL; // zerando o ponteiro
return 0;
}
using namespace std;
int main(int argc, char *argv[])
{
int x = 20; // Aloca memória
int* px;
px = &x; // & para acessar o endereço de memória da variável x
cout << *px << endl;
delete px; // Desaloca memória
px = NULL; // Zera o ponteiro
return 0;
}
-----------------------------------Com Array--------------------------------------
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int* ponteiro = new int[10]; // aloca memoria
cout << "Digite um numero: ";
cin >> *(ponteiro);
cout << "Voce digitou: " << *(ponteiro) << endl;
delete[] ponteiro; // desaloca memoria
ponteiro = NULL; // zerando o ponteiro
return 0;
}
quinta-feira, 9 de novembro de 2017
Ponteiros
É uma variável que contém o endereço de outra variável na memória interna do pc.
#include <iostream> // Entrada e saída de dados using namespace std; // Declarando espaço de nome std padrão int main(int argc, char *argv[]) { int var = 10; int* pvar; // Ponteiro // Sempre inicializar um ponteiro antes de utilizá-lo pvar = &var; // &var é o endereço da variável var cout << *pvar << endl;//acessa o conteúdo da variável através do *pvar *pvar = 20; // muda o valor da variável através do ponteiro cout << var << endl; return 0; }
quinta-feira, 26 de outubro de 2017
Funções
São fragmentos de código que executam uma tarefa específica,determinada e que pode ser utilizada
em vários caminhos diferentes. Pode ser chamada diversas vezes em um mesmo programa.
São utilizadas para otimizar o tempo e agregar valores de direção padrão, sem que haja a necessidade de repetir o processo de elaboração.
Definição da função:
<tipo de função> nome da função( declaração dos parâmetros) // cabeçalho da função
{
// escopo da função
<declaração das variáveis locais>
Comandos que formam o corpo da função
return <valor>; // ou return; ou nada
}
Tipos de funções:
void
int
float
double
char
struct
...
Segue abaixo, um exemplo simples de manipulação com funções:
/*
Function name: main, bool
Objective: Show how to handle functions.
return: 0
*/
#include <iostream>
#include <cstdlib>
using namespace std;
bool even(int num);
void message();
int main()
{
int n;
message();
cout << "Enter number: ";
cin >> n;
if(even(n))
{
cout << "The number " << n << " is even." << endl;
}
else
{
cout << "The number " << n << " is odd." << endl;
}
system("pause");
return 0;
}
void message()
{
cout << "learning C++ with fun!" << endl;
}
bool even(int num)
{
if(num % 2 == 0)
return true;
return false;
}
P.S:
1- O Visual Studio Code é o editor que utilizo. É uma Plataforma aberta, tem ferramentas de identificação de código e de integração com o Github. Poxa, o esquema de cores é, de fato, encantador. Sem falar que suporta as principais linguagens de programação com a sintaxe e até direito a preenchimento automático! Nhamy!
2- O exemplo acima saiu muito irreverente, com espaçamentos maiores do que o que parece belo. Eu copiei e colei do meu editor para obter uma representação quase fiel(quase mesmo) dele.
segunda-feira, 23 de outubro de 2017
Makefile para windows/(Makefile for windows)
Para a simplificação e aceleração na compilação de programas, utilizo do Makefile(arquivo de configuração usado pelo programa Make). Maneira fácil de compilar, visto que o programa Make é opensource e existem versões para sistemas operacionais diferentes.
O Make é "LIKE A BOSS"!
Primeiro, você deve instalar o MinGW:
https://sourceforge.net/projects/mingw-w64/
Depois, você abre o console, e no diretório "c:" você copia da forma que está abaixo:
copy c:\MinGW\bin\mingw32-make.exe c:\MinGW\bin\make.exe
Agora, é só executar o comando make.exe no seu console no windows.
Pronto! Você não precisa mais delegar à sua IDE a tarefa de compilação dos seus arquivos C++! YaY!
P.S: Segue abaixo, o link do meu projeto de exercícios em C++ com um exemplo estrutural do Make:
https://github.com/emevonlou/learningcpp
Assinar:
Postagens (Atom)