Postagens

Mostrando postagens com o rótulo CPP

C++ Básico Aula 17: Tratamento de Exceções

Imagem
Introdução     Muitas vezes ao rodar algum programa esbarramos em mensagens que indicam que o usuário fez algo diferente do que era esperado ou que o programa, por alguma razão, encontrou uma situação indesejada ou inesperada.  Dependendo da natureza do que causou essas mensagens, podemos ter o que chamamos de erros ou de exceções. Diferenciando Erros de Exceções     Em computação os erros geralmente são situações graves, imprevisíveis, das quais um programa não consegue se recuperar por que não podem ser tratadas por código,  causando uma interrupção na execução, que geralmente exige a reinicialização do programa.    Já as exceções são erros que podem ser previstos e antecipados pelo desenvolvedor, sendo consequentemente tratados por código, de maneira que o programa possa continuar a ser executado, sem causar interrupção.     São exemplos de erros os estouros de memória, estouros de pilha, falhas de hardware, entre outros. Já as exceçõ...

C++ Básico Aula 16: Arquivos

Imagem
  Introdução     Em Sistemas Embarcados muitas vezes teremos um microcontrolador com seus sensores gerando leituras de dados que precisarão ser armazenadas. Para isso existem Bancos de Dados como o MySQL que com o auxílio de ferramentas como o Node-Red e o protocolo MQTT permitem o armazenamento de uma grande quantidade de informações em Servidores.     No entanto existirão situações onde  o estudante precisará gravar arquivos de texto com preferências ou configurações de seus aplicativos. Pode ser em um cartão de memória micro SD ou mesmo na memória do dispositivo.     A finalidade dessa aula é dar uma introdução ao processo de gravação e leitura de arquivos texto com o C++, mas que não será necessariamente igual aos procedimentos comentados no parágrafo anterior, servindo nesse momento apenas para fins didáticos. A Biblioteca fstream     A inclusão da biblioteca fstream nos programas permite a manipulação de arquivos através do uso de ...

C++ Básico Aula 15: Datas

Imagem
  Recapitulando     Na aula passada conhecemos a biblioteca ctime que  oferece funcionalidades para trabalhar com data e hora. Dessa biblioteca vimos exemplos de uso de dados do tipo time_t que são chamados de timestamp, através de exemplos com a função time() que retorna o timestamp da data atual e a função   ctime()  que recebe com parâmetro uma  timestamp  e retorna uma string com um formato de data e hora internacional. Estruturas de data/hora     Acontece que  time_t  não é o único tipo de dado em C++ que armazena datas. Existe também o tipo  struct tm  para  estruturas de data/hora. Sua vantagem em relação ao  timestamp   é que ele armazena a data "quebrada" em vários componentes  como dia, mês, ano, etc. Membros do struct tm     E ssas partes da data nós chamamos de membros do struct tm e podem ser usadas para "montar" a data completa quando precisamos. Lembrando que elas s...

C++ Básico Aula 14: Bibliotecas

Imagem
  Relembrando     Nos cursos anteriores vimos que as bibliotecas eram coleções de recursos que eram incluídas nas linhas iniciais de nossos programas para que eles ganhassem funcionalidades. Algumas bibliotecas vem "de fábrica" com a linguagem e são chamadas de bibliotecas padrão. Outras podem ser criadas pelo desenvolvedor para serem reutilizadas em seus programas. Relembrou? Bibliotecas em C++     Todos os nossos exemplos nesse curso utilizaram uma biblioteca padrão para poder trabalhar com os dispositivos de entrada e saída. No caso era a iostream que era incluída no programa através da declaração #include <iostream>. Também chegamos a utilizar #include <string> para dar ao programa funcionalidades relacionadas a manipulação de strings.     Cabe lembrar que na linguagem C fazíamos a mesma coisa e, segundo nossas referências, o C++ aceita todas bibliotecas da linguagem C. Esclarecendo que o inverso não é verdadeiro, tendo em vista qu...

C++ Básico Aula 13: Polimorfismo

Imagem
Um exemplo de Polimorfismo na biologia são as muitas formas dos leucócitos Polimorfismo     A palavra polimorfismo significa "muitas formas" e é utilizada em diferentes áreas do conhecimento para representar as diferentes formas de um mesmo objeto de estudo. Em computação polimorfismo é um dos quatro pilares da Programação Orientada a Objetos, juntamente com os conceitos de abstração, herança e encapsulamento.     Em linguagens de programação como o C++, o polimorfismo é o termo utilizado para explicar as diferentes implementações de uma mesma Classe ou de suas classes derivadas. Vejamos um exemplo de polimorfismo dentro de uma classe. Polimorfismo dentro da classe     Digamos que eu queira criar a classe "formageometrica" e instanciar a partir dela diferentes objetos como círculos, quadrados, triângulos e retângulos. Como são diferentes formas geométricas, eu teria necessidade de usar diferentes atributos.       Um círculo não tem númer...

C++ Básico Aula 12: Construtores, Setters e Getters

Imagem
  Construtores     Agora que já sabemos o que são métodos de uma classe podemos conhecer alguns métodos especiais como os construtores. Como o próprio nome diz eles servem para "construir" a classe e se diferenciam de outros por ter o mesmo nome da classe que eles constroem. Vejamos um exemplo: #include <iostream> #include <string> using namespace std; int main() {   class Aluno {   public:     string nome ;           int nota ;     Aluno(string x, int y){         nome =x;         nota =y;     }   };   Aluno aluno1("Gabriel",10) ;   Aluno aluno2("Marta",8) ;   Aluno aluno3("Joaquim",9) ;   cout <<aluno1.nome << " " << aluno1.nota << "\n";   cout <<aluno2.nome << " " << aluno2.nota <<"\n";   cout <<aluno3.nome << " " << aluno3.nota <<"\n";   r...