Você está na página 1de 11

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO

UNIDADE ACADÊMICA DE BELO JARDIM


GRADUAÇÃO EM ENGENHARIA DA COMPUTAÇÃO
DISCIPLINA: PARADIGMAS DE PROGRAMAÇÃO
PERÍODO: 2024.1
PROFESSOR: WALDEMAR FERREIRA

VINÍCIUS ALESSANDRO PEREIRA DE OLIVEIRA

RELATÓRIO

Belo Jardim, 2024


2

SUMÁRIO

1.INTRODUÇÃO.…………………………………………………………….………………….3
2.MICROCONTROLADOR:O ARDUINO….....………………………………..……….........4
3. C + + E SEUS PARADIGMAS.………………………..…………………………………..5
4.REFERENCIAS………………………………………………………………………………10
3

1 INTRODUÇÃO

BJ BOTS CUP é o nome do campeonato regional de robótica, ocorrido no dia


11/04/2024, pela sua 2ª edição. Lá estavam presentes equipes de várias
localidades e de várias idades, o qual foi oferecido competições nas modalidades
sumô, seguidor de linha e cabo de guerra e, para os visitantes, além de prestigiar
a competição, também foram oferecidas arenas interativas para eles brincarem
com o robôs.

Nos robôs, é presente o hardware e o software. O hardware pelo uso de


microcontroladores que são controlados por linha de código, ou seja o software.
Ademais, código esse que podem ser utilizados várias linguagens de
programação, porém a abordada será o C + + e, como microcontrolador, o
arduíno. Ambos foram utilizados pela equipe Nexus na modalidade seguidor de
linha, o qual participei ativamente desde a construção do robô até a competição.

Foto 1 - Robô seguidor de linha


4

2.MICROCONTROLADOR: O ARDUINO

O Arduino é uma plataforma baseada em hardware e software. É válido


destacar que é uma plataforma de código aberto,ou seja,tem se acesso a
documentação detalhada e gratuita e a diagramas e fontes de programas.
Normalmente, um dispositivo baseado na plataforma Arduino é composto por uma
placa base com um microcontrolador e um módulo de extensão anexo, o chamado
shield. Ademais, a maioria dos arduinos possui entradas USB para receber a
programação diariamente de um computador

Assim, a linguagem de programação do Arduino é semelhante à linguagem C++ e


tornou-se muito popular entre os programadores de microcontroladores. A vantagem
do ambiente de desenvolvimento Arduino é a disponibilidade de inúmeras bibliotecas
prontas para facilitar a criação do programa e a enorme quantidade de aplicações
prontas para usar desenvolvidas por utilizadores desta plataforma em todo o mundo.
Logo, é importante destacar que o ambiente de desenvolvimento está amplamente
disponível, sem importar para que fins será utilizado.

O Arduino também pode ser construído, caso não tenha a placa base, seguindo a
documentação disponibilizada.

Foto 2 - Exemplo de um arduíno


5

3. C++ E SEUS PARADIGMAS

Inicialmente chamado de C with classes, desenvolvido por Bjarne Stroustrup,


que depois de um tempo começou a ser chamado de C++..

A motivação da criação da da linguagem de programação C ++ foi a


implementação de um suporte para a programação orientada a objetos, o qual
mantenha a eficiência e o baixo nível. Assim, permite aos desenvolvedores escrever
programas complexos, lidar com a alocação de memória, gerenciar recursos de
forma explícita e criar programas de alto desempenho. Ela oferece recursos
avançados, como herança, polimorfismo, sobrecarga de operadores e manipulação
direta de memória. Logo, ela combina recursos de instruções tornando-a uma das
linguagens mais versáteis e poderosas disponíveis atualmente. .

A relevância dessa linguagem de programação se dá por duas razões


principais: eficiência e desempenho. Ela permite o controle detalhado do computador
em que está sendo executado. Portanto, sua utilidade é vista quando precisamos
escrever programas que sejam muito rápidos e usem poucos recursos do sistema,
como memória ou processamento.Além disso, muitas bibliotecas e frameworks
populares foram criados usando o C++.

Foto 3 - Exemplo de um código em C ++ com paradigma imperativo


6

Por conseguinte, segue uma imagem de um pedaço do código implementado


em C ++ na plataforma do Arduino, para que o robô, seguidor de linha, siga a
linha.Vale destacar que, apesar de toda estrutura ser um pouco diferente em
envolver somente duas funções de setup() e loop(), toda a estrutura de linguagem e
sintaxe são da linguagem de programação C++

Foto 4 - Código do seguidor de linha utilizando linguagem de programação C++


7

Assim, essa linguagem de programação é multi paradigmas que comportam


os paradigmas de imperativo, orientação a objetos e genérica

Paradigmas imperativo:

A programação imperativa é um paradigma de programação de software que


descreve a computação como ações, enunciados ou comandos que mudam o
estado (variáveis) de um programa O nome do paradigma está ligado ao tempo
verbal imperativo, onde o programador diz ao computador: faça isso, depois isso,
depois aquilo... Este paradigma de programação se destaca pela simplicidade, uma
vez que todo ser humano, ao se programar, o faz imperativamente, baseado na ideia
de ações e estados, quase como um programa de computador.

As linguagens imperativas também são chamadas de procedurais e se trata


do modelo mais antigo de todos, a execução é baseada em comandos e
armazenamento de dados. O paradigma imperativo foi predominante nas LP, pois
são mais fáceis de traduzir para uma forma adequada para execução da máquina.

Foto 5 - Exemplo de código em C++ em paradigma imperativo

Paradigmas orientados a objetos:

A Programação Orientada a Objetos(POO) trabalha utilizando classes, ela é


quem dá a vida ao objeto, pois é nela que são criadas as funcionalidades através
dos métodos, e suas especificidades através dos atributos. Ou seja, a classe não é o
objeto, ela é utilizada para construí-lo.

O objeto é uma abstração de software que pode ser algo representado por
algo real ou virtual, que é formado por um conjunto de propriedades que são as
8

variáveis e procedimentos que são os métodos, onde as variáveis possuem um tipo


que as define, e os métodos são rotinas que, quando executadas realizam algumas
tarefas. A classe é a abstração do objeto. Na verdade, ao criar um objeto, definindo
suas características e funcionalidades, programa-se uma classe.

Dentre alguns recursos aplicados na programação orientada a objeto, temos:


encapsulamento, herança e polimorfismo.

Encapsulamento é a limitação imposta a atributos de uma classe, restringindo


o acesso aos métodos dessa classe através de limitadores de acesso, dentre eles
os public, private e protected.

A herança permite definir uma nova classe, com base em uma já existente. A
classe criada,subclasse ou classe derivada, automaticamente herda todas as
variáveis e métodos da classe já existente que é denominada de superclasse. O
mecanismo de herança permite que a subclasse inclua ou sobre ponha novas
variáveis e métodos da superclasse.

O mecanismo de polimorfismo utilizado na programação orientada a objetos ,


nos permite tratar objetos semelhantes de uma maneira uniforme.Porém, para ser
aplicado é necessário a aplicação da herança, aplicada somente aos métodos de
uma classe.

Foto 6 - Exemplo de código em C++ com paradigma orientada a objetos


9

Paradigma genérica:

Programação genérica é um paradigma de programação no qual os


algoritmos são escritos em uma gramática estendida de forma a adaptar-se através
da especificação das partes variáveis que são definidas na instância do algoritmo.É
diferente da forma normal de programação na medida em que invoca de certa forma
as facilidades de metaprogramação da linguagem. Como isso ocorre em uma
extensão da linguagem, novas semânticas são introduzidas e a linguagem é
enriquecida no processo. Está relacionada com a metaprogramação, mas não
envolve a geração de código fonte visivelmente ao programador.

Para efeitos práticos, o paradigma permite que um parâmetro assuma


diferentes tipos de dados desde que certas regras sejam mantidas, como subtipos e
assinaturas. Por exemplo, para criar uma lista usando programação genérica, uma
possível declaração seria List<T>, no qual T é o tipo de dado. Para instanciar,
poderia-se usar List<Inteiro> ou List<Animal>, já que o conceito de lista independe
do tipo utilizado.
10

4. REFERÊNCIAS

- Wikipedia. C++. Disponível em: <https://pt.wikipedia.org/wiki/C%2B%2B>. Acesso


em: 12/04/2024.

- Microsoft. Functional-Style Programming in C#. Disponível em:


<https://learn.microsoft.com/pt-br/archive/msdn-magazine/2012/august/c-functional-s
tyle-programming-in-c>. Acesso em:12/04/2024.

- PET Física Unicentro. C: A evolução do C. Disponível em:


<https://www3.unicentro.br/petfisica/2023/07/28/c-a-evolucao-do-c/>. Acesso em:
12/04/2024.

- Wikipedia. Programação Imperativa. Disponível em:


<https://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_imperativa>. Acesso em:
12/04/2024.

- Brasil Escola. Programação Orientada a Objetos. Disponível em:


<https://meuartigo.brasilescola.uol.com.br/informatica/programacao-orientada-objeto
s.htm>. Acesso em: 12/04/2024.

- Wikipedia. Programação Genérica. Disponível em:


<https://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_gen%C3%A9rica#:~:text
=Programa%C3%A7%C3%A3o%20gen%C3%A9rica%20%C3%A9%20um%20para
digma,definidas%20na%20inst%C3%A2ncia%20do%20algoritmo.>. Acesso em:
12/04/2024.

- UFMS. Melhorando suas aplicações em C. Disponível em:


<https://www.ufsm.br/pet/sistemas-de-informacao/2020/03/10/melhorando-suas-aplic
acoes-em-c>. Acesso em:12/04/2024.

- YouTube. [Título do vídeo]. Disponível em:


<https://m.youtube.com/watch?v=iDpUnKpPxH8>. Acesso em:12/04/2024.

- Guia Dev. Pilares de Linguagens e Ferramentas: Paradigmas de Programação.


Disponível em:

<https://guia.dev/pt/pillars/languages-and-tools/programming-paradigms.html>.
Acesso em:12/04/2024.
11

Você também pode gostar