diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d88d337
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,263 @@
+## Ignore Visual Studio temporary files, build results, and
+## files generated by popular Visual Studio add-ons.
+
+###################
+# compiled source #
+###################
+*.com
+*.class
+*.dll
+*.exe
+*.pdb
+*.dll.config
+*.cache
+*.suo
+# Include dlls if they’re in the NuGet packages directory
+!/packages/*/lib/*.dll
+# Include dlls if they're in the CommonReferences directory
+!*CommonReferences/*.dll
+####################
+# VS Upgrade stuff #
+####################
+_UpgradeReport_Files/
+###############
+# Directories #
+###############
+bin/
+obj/
+TestResults/
+###################
+# Web publish log #
+###################
+*.Publish.xml
+#############
+# Resharper #
+#############
+/_ReSharper.*
+*.ReSharper.*
+############
+# Packages #
+############
+# it’s better to unpack these files and commit the raw source
+# git has its own built in compression methods
+*.7z
+*.dmg
+*.gz
+*.iso
+*.jar
+*.rar
+*.tar
+*.zip
+######################
+# Logs and databases #
+######################
+*.log
+*.sqlite
+# OS generated files #
+######################
+.DS_Store?
+ehthumbs.db
+Icon?
+Thumbs.db
+
+
+# User-specific files
+*.user
+*.userosscache
+*.sln.docstates
+
+# User-specific files (MonoDevelop/Xamarin Studio)
+*.userprefs
+
+# Build results
+[Dd]ebug/
+[Dd]ebugPublic/
+[Rr]elease/
+[Rr]eleases/
+x64/
+x86/
+build/
+bld/
+[Bb]in/
+[Oo]bj/
+
+# Visual Studo 2015 cache/options directory
+.vs/
+
+# MSTest test Results
+[Tt]est[Rr]esult*/
+[Bb]uild[Ll]og.*
+
+# NUNIT
+*.VisualState.xml
+TestResult.xml
+
+# Build Results of an ATL Project
+[Dd]ebugPS/
+[Rr]eleasePS/
+dlldata.c
+
+# DNX
+project.lock.json
+artifacts/
+
+*_i.c
+*_p.c
+*_i.h
+*.ilk
+*.meta
+*.obj
+*.pch
+*.pgc
+*.pgd
+*.rsp
+*.sbr
+*.tlb
+*.tli
+*.tlh
+*.tmp
+*.tmp_proj
+*.vspscc
+*.vssscc
+.builds
+*.pidb
+*.svclog
+*.scc
+
+# Chutzpah Test files
+_Chutzpah*
+
+# Visual C++ cache files
+ipch/
+*.aps
+*.ncb
+*.opensdf
+*.sdf
+*.cachefile
+
+# Visual Studio profiler
+*.psess
+*.vsp
+*.vspx
+
+# TFS 2012 Local Workspace
+$tf/
+
+# Guidance Automation Toolkit
+*.gpState
+
+# ReSharper is a .NET coding add-in
+_ReSharper*/
+*.[Rr]e[Ss]harper
+*.DotSettings.user
+
+# JustCode is a .NET coding add-in
+.JustCode
+
+# TeamCity is a build add-in
+_TeamCity*
+
+# DotCover is a Code Coverage Tool
+*.dotCover
+
+# NCrunch
+_NCrunch_*
+.*crunch*.local.xml
+
+# MightyMoose
+*.mm.*
+AutoTest.Net/
+
+# Web workbench (sass)
+.sass-cache/
+
+# Installshield output folder
+[Ee]xpress/
+
+# DocProject is a documentation generator add-in
+DocProject/buildhelp/
+DocProject/Help/*.HxT
+DocProject/Help/*.HxC
+DocProject/Help/*.hhc
+DocProject/Help/*.hhk
+DocProject/Help/*.hhp
+DocProject/Help/Html2
+DocProject/Help/html
+
+# Click-Once directory
+publish/
+
+# Publish Web Output
+*.[Pp]ublish.xml
+*.azurePubxml
+# TODO: Comment the next line if you want to checkin your web deploy settings
+# but database connection strings (with potential passwords) will be unencrypted
+*.pubxml
+*.publishproj
+
+# NuGet Packages
+*.nupkg
+# The packages folder can be ignored because of Package Restore
+**/packages/*
+# except build/, which is used as an MSBuild target.
+!**/packages/build/
+# Uncomment if necessary however generally it will be regenerated when needed
+#!**/packages/repositories.config
+
+# Windows Azure Build Output
+csx/
+*.build.csdef
+
+# Windows Store app package directory
+AppPackages/
+
+# Visual Studio cache files
+# files ending in .cache can be ignored
+*.[Cc]ache
+# but keep track of directories ending in .cache
+!*.[Cc]ache/
+
+# Others
+ClientBin/
+[Ss]tyle[Cc]op.*
+~$*
+*~
+*.dbmdl
+*.dbproj.schemaview
+*.pfx
+*.publishsettings
+node_modules/
+bower_components/
+orleans.codegen.cs
+
+# RIA/Silverlight projects
+Generated_Code/
+
+# Backup & report files from converting an old project file
+# to a newer Visual Studio version. Backup files are not needed,
+# because we have git ;-)
+_UpgradeReport_Files/
+Backup*/
+UpgradeLog*.XML
+UpgradeLog*.htm
+
+# SQL Server files
+*.mdf
+*.ldf
+
+# Business Intelligence projects
+*.rdl.data
+*.bim.layout
+*.bim_*.settings
+
+# Microsoft Fakes
+FakesAssemblies/
+
+# Node.js Tools for Visual Studio
+.ntvs_analysis.dat
+
+# Visual Studio 6 build log
+*.plg
+
+# Visual Studio 6 workspace options file
+*.opt
diff --git "a/Aulas/Se\303\247\303\243o 1 - Introdu\303\247\303\243o/Aula 6 - Introdu\303\247\303\243o \303\240 Estrutura de Dados.md" "b/Aulas/Se\303\247\303\243o 1 - Introdu\303\247\303\243o/Aula 6 - Introdu\303\247\303\243o \303\240 Estrutura de Dados.md"
new file mode 100644
index 0000000..4a15fc0
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 1 - Introdu\303\247\303\243o/Aula 6 - Introdu\303\247\303\243o \303\240 Estrutura de Dados.md"
@@ -0,0 +1,31 @@
+# Estrutura de Dados
+
+Organiza os dados.
+Diz como o dado será organizado
+* Define:
+ * critérios
+ * conjunto de regras
+ * restrições, de como os dados têm que ser organizados que o dado precisa atender, para se encaixar para estar dentro daquela estrutura.
+
+## Estrutura Clássica
+
+ * Lista
+ * Fila (FIFO)
+ * Pilha (LIFO)
+ * Árvore
+
+## Estruturas Básicas
+
+* Primitivas
+ * Número real
+ * Alfabeto
+ * Números inteiros
+
+* Personalizadas
+ * Estruturas de dados que podemos construir
+
+
+## Estruturas Booleanas
+
+* Verdadeiro
+* Falso
\ No newline at end of file
diff --git "a/Aulas/Se\303\247\303\243o 1 - Introdu\303\247\303\243o/Aula 7 - O que \303\251 o dotNET.md" "b/Aulas/Se\303\247\303\243o 1 - Introdu\303\247\303\243o/Aula 7 - O que \303\251 o dotNET.md"
new file mode 100644
index 0000000..206c5c7
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 1 - Introdu\303\247\303\243o/Aula 7 - O que \303\251 o dotNET.md"
@@ -0,0 +1,23 @@
+# O que é o .NET?
+
+> Framework desenvolvido pela Microsoft.
+
+## Definição
+
+### .NET
+
+* **Framework:** Estrutura utilizada para desenvolver uma aplicação.
+ * Conjunto de funcionalidades que é disponibilizado
+ * Multi-plataforma (Win - Mac - Linux)
+ * Mobile (Android - iOS)
+
+### C#
+
+* É uma das funcionalidades do .NET
+ * É a Linguagem
+
+## O .NET é separado em duas grandes partes
+
+### CLR (Commom Language Runtime)
+
+### LIB (Libraries)
\ No newline at end of file
diff --git "a/Aulas/Se\303\247\303\243o 1 - Introdu\303\247\303\243o/Aula 8 - Commom Language Runtime.md" "b/Aulas/Se\303\247\303\243o 1 - Introdu\303\247\303\243o/Aula 8 - Commom Language Runtime.md"
new file mode 100644
index 0000000..5b63853
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 1 - Introdu\303\247\303\243o/Aula 8 - Commom Language Runtime.md"
@@ -0,0 +1,20 @@
+# Commom Language Runtime (CLR)
+
+> Virtual Machine
+
+## Motivação da sua criação
+
+* **ILCode** (Intermedian Language Code)
+ * é interpretado pelo **CLR**
+
+* **CLR** (Commom Language Runtime)
+ * é compilado em tempo de execução pelo **JIT**
+
+* **JIT** (Just-In-Time Compiled)
+ * compila o código para executar o programa no **SO**
+
+* **SO** (System Operational)
+ * Win
+ * Mac
+ * Linux
+
diff --git "a/Aulas/Se\303\247\303\243o 2 - Configura\303\247\303\243o do Ambiente/Aula 9 - Configura\303\247\303\243o do Ambiente.md" "b/Aulas/Se\303\247\303\243o 2 - Configura\303\247\303\243o do Ambiente/Aula 9 - Configura\303\247\303\243o do Ambiente.md"
new file mode 100644
index 0000000..d42e2b3
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 2 - Configura\303\247\303\243o do Ambiente/Aula 9 - Configura\303\247\303\243o do Ambiente.md"
@@ -0,0 +1,7 @@
+# Configuração do Ambiente
+
+## Instalação do Visual Studo Community 2017
+
+> 15.9.35
+
+[Instalação do Visual Studio Community 2017 - Windows](https://www.youtube.com/watch?v=lwmVwBE1AXI)
\ No newline at end of file
diff --git "a/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 10 - Arquitetura de uma Solu\303\247\303\243o CSharp.md" "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 10 - Arquitetura de uma Solu\303\247\303\243o CSharp.md"
new file mode 100644
index 0000000..5e9e058
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 10 - Arquitetura de uma Solu\303\247\303\243o CSharp.md"
@@ -0,0 +1,13 @@
+# Arquitetura de Solução .NET
+
+* Inicia-se definindo uma solução
+ * uma **SOLUÇÃO** (Aplicação) pode ter diversos
+ * **PROJETOS** (Assembly) que pode gerar arquivos
+ * **`.EXE`**
+ * **`.DLL` (Dynamic Link Library)**
+ * dentro de um *projeto* pode conter
+ * ~(PASTAS) - que chamamos de **NAMESPACE**
+ * dentro do *namespace* poderá conter
+ * ~(ARQUIVOS) - que são as **CLASS**
+ * dentro da *class* irá conter
+ * o código **C#**
\ No newline at end of file
diff --git "a/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 11 - Criando um Projeto CSharp.md" "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 11 - Criando um Projeto CSharp.md"
new file mode 100644
index 0000000..a6c6482
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 11 - Criando um Projeto CSharp.md"
@@ -0,0 +1,17 @@
+# Criando um Projeto C#
+
+## Novo Projeto
+
+Arquivo > Novo > Projeto... > Visual C# > .NET Core > Aplicativo do Console (.NET Core) Visual C#
+
+## Alteração do estilo de código
+
+Ferramentas > Opções... > Editor de Texto > C# > Estilo de Código > Formatação > Novas Linhas
+
+* **Desmarcar todas:**
+ * Novas opções de linha para chaves
+ * novas opções de linha para palavras-chaves
+
+* Atalho para formatar o código conforme a nova padronização escolhida:
+ * `CTRL` + `K` + `D`
+
diff --git "a/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 12 - Organiza\303\247\303\243o b\303\241sica do c\303\263digo.md" "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 12 - Organiza\303\247\303\243o b\303\241sica do c\303\263digo.md"
new file mode 100644
index 0000000..2f10c2d
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 12 - Organiza\303\247\303\243o b\303\241sica do c\303\263digo.md"
@@ -0,0 +1,40 @@
+# Organização Básica do Código
+
+* Códigos em C# são organizados por sentenças de códigos
+ * Uma sentença de código é finalizada com **;**
+ * e pode estar em mais de uma linha
+
+* Pares de chaves **{ }**
+ * chaves de abertura e de fechamento
+ * denominam um bloco
+ * servem para agrupar um conjunto de sentenças
+
+* Ponto **.** (separador)
+
+* Aspas duplas **" "** - delimitadores de texto livre (Strings)
+
+```cs
+using System;
+
+namespace CursoCSharp
+{
+ class Program
+ {
+ static void Main(string[] args)
+ {
+ Console.WriteLine("Hello World!");
+
+ {
+ Console.WriteLine("Hello World!");
+ }
+ }
+ }
+}
+```
+
+## Executando o código criado
+
+* Clicando no botão **Play** da IDE (modo Debug)
+ * Tecla **`F5`** (modo Debug)
+
+* **`CTRL`** + **`F5`** - Mantém o terminal aberto apresentando a saída do código, até que seja precionada uma tecla para fechá-lo.
diff --git "a/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 13 - Primeiro Programa.md" "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 13 - Primeiro Programa.md"
new file mode 100644
index 0000000..64d4d20
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 13 - Primeiro Programa.md"
@@ -0,0 +1,73 @@
+# Primeiro Programa
+
+## Criando uma nova pasta no Projeto
+
+* Na tela de **Gerenciador de Soluções**
+ * botão direito no projeto *CursoCSharp*
+ * Adicionar > Nova Pasta
+ * Nomear a pasta como *"Fundamentos"*
+
+## Criando um novo arquivo na pasta Fundamentos
+
+* Na tela de **Gerenciador de Soluções**
+ * botão direito na pasta *Fundamentos*
+ * Adicionar > Classe...
+ * no campo **Nome**
+ * Nomear como *PrimeiroPrograma.cs*
+ * clicar no botão [Adicionar]
+ * > ***Obs.:*** *não é necessário incluir o ".cs" pois o próprio VS inclui a extensão ".cs".*
+
+### Conceito:
+
+#### **using** - [7:13]
+
+* `System.Console.Write("Primeiro ");`
+ * a palavra reservada *System*, está em cinza porque não há a necessidade de usá-lo, uma vez que o *System* foi declarado no **`using System;`**
+ * o que simplifica a utilização dos métodos da *classe System*
+durante o desenvolvimento do código.
+ * se não utilizássemos o `using`, deveriamos escrever a nossa
+sentença da seguinte forma:
+>```cs
+> System.Console.Write("Primeiro ");
+> System.Console.WriteLine("Programa");
+> System.Console.WriteLine("Terminou!");
+>```
+ * Para adequarmos a nossa sentença devemos retirar a palavra
+reservada *System* da sentença, mantendo-a apenas na declaração do `using`.
+ * `Console.Write("Primeiro ");`
+
+### [!Tips]
+* **`CTRL` + `.`**, exibe a resolução propósta pela IDE para
+correção de erros na sintáxe do código e deixá-lo mais simples e elegante.
+
+* **`cw`** - ao digitarmos e teclarmos `TAB` 2x, a IDE irá escrever o código `Console.WriteLine();`
+
+#### **Console.Write** - [5:40]
+
+* Significa que o texto será escrito na linha do *console* e o prompt permanecerá na mesma linha
+ * > Escreve e permanece na mesma linha
+
+#### **Console.WriteLine** - [5:59]
+
+* Significa que o texto será escrito na linha do *console* e o prompt irá para uma nova linha.
+ * > Escreve e quebra a linha
+
+### Método Main() - [12:04]
+
+O ponto de entrada de um programa é definido do método **`Main()`**
+
+### Erro - CS0017
+
+> *Programa tem mais de um ponto de entrada definido. Compilar com /main para especificar o tipo que contém o ponto de entrada.*
+
+### Possíveis resoluções:
+
+* Resolução 1: Renomeando o método **`Main()`** em cada arquivo de classe.
+ * Ex.: **`Main2()`**, no arquivo de classe *PrimeiroPrograma.cs*.
+
+* Resolução 2: Alterando as propriedades do projeto
+ * botão direito no projeto *CursoCSharp*
+ * Opção "Propriedades" > Aplicativo
+ * No campo *Objeto de inicialização:*
+ * podemos definir qual ponto de entrada será lido prioritariamente pelo VS.
+ * Mas para objetivo de aula iremos manter a opção *(Não definido)*, como padrão.
diff --git "a/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 14 - Link para material.md" "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 14 - Link para material.md"
new file mode 100644
index 0000000..2673dd9
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 14 - Link para material.md"
@@ -0,0 +1,5 @@
+# Aula 14 - Link para material
+
+* **Link para acessar o material que será utilizado na próxima aula:**
+
+[Central de exercícios](D:\repoCode\cod3r\util\central.zip)
diff --git "a/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 15 - Problema - Multiplos Main.md" "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 15 - Problema - Multiplos Main.md"
new file mode 100644
index 0000000..6b30f04
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 15 - Problema - Multiplos Main.md"
@@ -0,0 +1,36 @@
+# Aula 15 - Problema - Multiplos Main
+
+### Erro - CS0017
+
+> *Programa tem mais de um ponto de entrada definido. Compilar com /main para especificar o tipo que contém o ponto de entrada.*
+
+### Possibilidades para resolver:
+
+* Resolução 1: Renomeando o método **`Main()`** em cada arquivo de classe.
+ * Ex.: **`Main2()`**, no arquivo de classe *PrimeiroPrograma.cs*.
+
+* Resolução 2: Alterando as propriedades do projeto
+ * botão direito no projeto *CursoCSharp*
+ * Opção "Propriedades" > Aplicativo
+ * No campo *Objeto de inicialização:*
+ * podemos definir qual ponto de entrada será lido prioritariamente pelo VS.
+ * Mas para objetivo de aula iremos manter a opção *(Não definido)*, como padrão.
+
+#### Resolução 3
+
+* Nossas classes serão criadas com um padrão para cada aula.
+
+>```cs
+> public static void Executar() {}
+>```
+
+ * e iremos acrescentar ao nosso arquivo **Program.cs**,
+dentro do método **`Main()`** uma nova linha referenciando essa classe.
+Ex.:
+>```cs
+> {"Primeiro Programa - Fundamentos", PrimeiroPrograma.Executar},
+>```
+
+ * Descrição: *"Primeiro Programa - Fundamentos"* - para identificarmos o programa que será lido
+ * Classe: *`PrimeiroPrograma`* - chamada da classe
+ * Método: *`Executar`* - o método dentro dessa classe que será executado.
\ No newline at end of file
diff --git "a/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 16 - Coment\303\241rios de C\303\263digo.md" "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 16 - Coment\303\241rios de C\303\263digo.md"
new file mode 100644
index 0000000..2d432f8
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 16 - Coment\303\241rios de C\303\263digo.md"
@@ -0,0 +1,70 @@
+# Aula 16 - Comentários de Código
+
+## Iniciando a Rotina de aula
+
+* Criar um arquivo dentro do nosso projeto
+ * Botão direito na pasta *Fundamentos*
+ * Adicionar > Novo item...
+ * Itens do Visual C# > Classe
+ * No campo *Nome:* - nomeie o arquivo
+ * Ex.: *Comentarios.cs*
+ * Botão Adicionar para concluir o processo.
+
+* Criar um método `Executar()`
+ * dentro da `class Comentarios {}`
+
+ >```cs
+ > public static void Executar() {}
+ >```
+
+* Add a referência do exercício dentro de *Program.cs*
+ * dentro do método **`Main()`**
+
+ > ```cs
+ > {"Comentários - Fundamentos", Comentarios.Executar},
+ >```
+
+## Comentários de Código - (2:59)
+
+* **`//`** - Comentário de linha
+ * Utilizamos para comentar uma linha de código específica
+ * Para adicionar algum comentário simples sobre o trecho de código a seguir
+
+* **`///`** - XML Comments
+ * o C# tem o comentário que cria tags XML
+ * como por exemplo: ``
+ * onde podemos criar um sumário do código desenvolvido
+ * especificando, por exemplo, o que o método faz
+ * especificação sobre um parâmetro se colocarmos o
+*XML Comments* diretamente acima da método com parametros
+ * o C# irá criar as tags ``
+ * e tudo isso serve também para gerar documentação fora do código
+ * que poderá se consumida em um formato mais amigável
+ * Ex.: tag ``
+ * que faz uma referência para outra parte da documentação
+
+* **`/* */`** - Comentários de Múltipas linhas
+ * Utilizamos para adicionar comentários que ocupará mais de uma linha
+ * também utilizado para comentar blocos de códigos
+
+## Boas práticas
+
+* Faz com que tenhamos pouca necessidade de comentários no meio do código
+ * Código claro
+ * Bons nomes
+ * fácil leitura
+
+* Num contexto de CURSO é importante que todo o código seja comentado
+
+* Em um contexto REAL, não faz sentido o uso de um comentário óbivio
+
+#### Teclas de atalho
+
+* **`CRTL`+ `C`** - para comentar uma linha ou um trecho de código selecionado
+
+* **`CTRL` + `U`** - para descomentar uma linha ou um trecho de código selecionado
+
+#### Menu
+* Editar > Avançado
+ * Definir Seleção Como Comentário
+ * Remover definição de seleção como comentário
\ No newline at end of file
diff --git "a/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 17 - Vari\303\241veis e Constantes.md" "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 17 - Vari\303\241veis e Constantes.md"
new file mode 100644
index 0000000..ccb0b70
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 17 - Vari\303\241veis e Constantes.md"
@@ -0,0 +1,98 @@
+# Aula 17 - Variáveis e Constantes
+
+### Atalho
+
+* **`CTRL` + `D`** - Duplicar linha
+
+* Rotina de criação do arquivo da aula
+ * Na pasta Fundamentos
+ * `VariaveisEConstantes.cs`
+ * No método **`Main()`** do **Program.cs**
+ * `{"Variáveis e Constantes - Fundamentos",VariaveisEConstantes.Executar},`
+
+* C# é uma linguagem fortemente tipada
+
+## Variáveis
+
+Pode ser alterada durante a execução do algoritmo do programa
+
+### Exemplo de Declaração:
+
+* `double raio = 4.5;`
+ * **`double`**: Tipo da variável (números de ponto flutuante)
+ * **`raio`**: Nome da variável (identificador)
+ * **`=`**: sinal de atribuição à variável
+ * **`4.5`**: Valor atribuido à variável
+ * **`;`**: para finalizar a sentença
+
+## Constantes
+
+Não permite que esse identificador seja alterado
+durante todo o algoritmo do programa
+
+* `const double PI = 3.14;`
+ * **`const`**: Define que o identificador será uma constante
+ * **`double`**: Tipo da variável (números de ponto flutuante)
+ * **`PI`**: Nome da variável (identificador)
+ * **`=`**: sinal de atribuição à variável
+ * **`3.14`**: Valor atribuido à variável
+ * **`;`**: para finalizar a sentença
+
+## Tipos Internos
+
+### Tipo Booleano
+
+* **bool** -> `true` e `false`
+
+### Tipos Inteiros
+
+* **byte** -> constituído por 8 Bits (0 a 255)
+* **sbyte** -> tipo byte que aceita sinal, aceita um range entre positivos e negativos (-127 a 128)
+ * `MinValue` -> método que exibe o valor mínimo
+ * neste caso o menor valor de **sbyte**
+
+* **short** -> constituído por 2 bytes (maior valor: 32767)
+
+* **int** -> constituído por 4 bytes (menor valor: -2147483648)
+ * Mais usado dos inteiros!
+* **uint (unsigned Int)** -> constituído por 4 bytes sem sinal (menor valor: 0 - maior: 4.294.967.295)
+ * `populacaoBrasileira = 207_600_000;`
+ * podemos usar o "_" como separador universal
+ * isso permite clareza na leitura do número no código
+
+* **long** -> 8 bytes, range entre positivos e negativos
+* **ulong (unsigned long)** -> apenas positivos
+ * `populacaoMundial = 7_600_000_000;`
+ * podemos usar o "_" como separador universal
+ * isso permite clareza na leitura do número no código
+
+### Tipos Reais
+
+* **float** -> 4 bytes
+ * deve ter a letra *f* após o número com ponto flutuante
+ * sem essa notação o C# irá entender que o número é um **double** (que é dobro do float)
+
+* **double** -> 8 bytes
+ * Mais usado dos reais!
+ * utilizar preferencialmente
+
+* **decimal**
+ * muito utilizado para números astronômicos
+ * valor máximo: 79228162514264337593543950335
+
+### Tipos Caracteres
+
+* **char** -> 1 caractere
+ * delimitado por aspas simples
+ * Ex.: `char letra = 'b';`
+ * se colocarmos mais de uma letra dentro das aspas simples o C# acusará erro
+
+* **string** -> cadeia de caracteres
+ * delimitado por aspas duplas
+ * Ex.: `string texto = "Seja bem vindo ao Curso de C#!";`
+
+## Notação
+
+* **Camel Case** é a prática de escrever palavras compostas ou frases de modo que cada palavra ou abreviatura no meio da frase comece com uma letra maiúscula.
+
+* **Pascal Case** é a prática de escrever palavras compostas ou frases de modo que cada palavra ou abreviatura comece com uma letra maiúscula.
diff --git "a/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 18 - Infer\303\252ncia de Tipos.md" "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 18 - Infer\303\252ncia de Tipos.md"
new file mode 100644
index 0000000..0bed9df
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 18 - Infer\303\252ncia de Tipos.md"
@@ -0,0 +1,24 @@
+# Aula 18 - Inferência de Tipos
+
+* `Inferencia.cs`
+* `{"Inferências - Fundamentos", Inferencia.Executar},`
+
+* A **inferência** dentro do C# é tratada internamente pela linguagem
+* Ex.: `var nome = "Hamilton";`
+* **`var`**: mesmo não sendo um padrão de tipagem forte, o C# acata
+ * internamente o C# olha para o valor `"Hamilton"`
+ * por estar entre aspas duplas, ele infere que o valor é um tipo **string**
+ * se tentarmos colocar um valor do tipo inteiro posteriormente
+ * o C# reclamará erro de conversão do tipo int para string
+ * entendendo que uma variável do tipo **string**
+ * não pode receber um valor inteiro
+
+* outra deficiência da **inferência**
+ * quando se cria uma variável com tipo **`var`**
+ * para que o próprio compilador descubra o seu tipo
+ * essa variável não pode ser criada sem um valor definido
+ * se ocorrer de fazermos a atribuição em outra linha o C# reclamará o seguinte erro:
+ * > `var idade;` - **declaração**
+ * > `idade = 41;` - **atribuição**
+ * *Variáveis de tipo implícito devem ser inicializadas*
+ * > `var idade = 41;` - **declaração e inicialização**
\ No newline at end of file
diff --git "a/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 19 - Interpola\303\247\303\243o de Strings.md" "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 19 - Interpola\303\247\303\243o de Strings.md"
new file mode 100644
index 0000000..1c092b2
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 19 - Interpola\303\247\303\243o de Strings.md"
@@ -0,0 +1,31 @@
+# Aula 19 - Interpolação de Strings
+
+* Interpolacao.cs
+* `{"Interpolação de Strings - Fundamentos", Interpolacao.Executar},`
+
+* Até aqui estavamos utilizando como padrão,
+ * a **concatenação** para exibição do texto no console.
+ * Ex.:
+
+ >```cs
+ > Console.WriteLine("O " + nome + " da marca " + marca + " custa R$" + preco + ".");
+ >```
+
+## Utilizando a interpolação
+
+### Primeira forma:
+
+* Numerando as interpolações com índices
+
+```cs
+ Console.WriteLine("O {0} da marca {1} custa R${2}.", nome, marca, preco);
+```
+
+### Segunda forma:
+
+* Informando os nomes das próprias variáveis
+* para isso, add **`$`** (modificador) no início da string.
+
+```cs
+ Console.WriteLine($"A marca {marca} é legal!");
+```
\ No newline at end of file
diff --git "a/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 20 - Nota\303\247\303\243o Ponto.md" "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 20 - Nota\303\247\303\243o Ponto.md"
new file mode 100644
index 0000000..7885e51
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 20 - Nota\303\247\303\243o Ponto.md"
@@ -0,0 +1,38 @@
+# Aula 20 - Notação Ponto
+
+* NotacaoPonto.cs
+* {"Notação Ponto - Fundamentos", NotacaoPonto.Executar},
+
+* Utilizamos a **Notação Ponto** para acessar os membros de classe.
+ * nos dá acesso a muitas funcionalidades
+ * sempre associado ao que está antes da **Notação Ponto**. Ex.:
+ * Se for um **texto**, então funcionalidades referente a texto
+ * Se for **número**, então funcionalidades referente a número
+ * Se for algo que esteja **vázio**, podemos usar uma **`?`**
+ >```cs
+ > string valorImportante = null;
+ > Console.WriteLine(valorImportante?.Length);
+ >```
+
+ * Isso faz com que esse valor só seja acessado
+ * se de fato a variável **`valorImportante`**
+ * esteja definida
+ * se estiver vazia ela não será acessada e retonará um valor vazio
+ * é o que chamamos de ***Navegação Segura*** entre as chamadas- (evitar erro)
+ * ***Object reference not set to an instance of an object.***
+
+```cs
+var saudacao = "olá".ToUpper().Insert(3, " World!").Replace("World!", "Mundo!");
+```
+
+* A variável `saudacao` irá receber
+ * uma string "olá"
+ * com a **Notação Ponto** serão chamadas
+ * a funcionalidade **`ToUpper()`**, que transformará esse texto em maiúsculas "OLÁ"
+ * a funcionalidade **`Insert()`**, que adicionará na posição 3, o texto " World!"
+ * a funcionalidade **`Replace()`**, que substituirá
+ * o texto "World!"
+ * pelo texto "Mundo!"
+
+* Podemos encadear várias chamadas em uma única sentença de código.
+
diff --git "a/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 21 - Lendo Dados do Console.md" "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 21 - Lendo Dados do Console.md"
new file mode 100644
index 0000000..015c364
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 21 - Lendo Dados do Console.md"
@@ -0,0 +1,43 @@
+# Aula 21 - Lendo Dados do Console
+
+* LendoDados.cs
+* {"Lendo Dados do Console - Fundamentos", LendoDados.Executar},
+
+## Recuperando informação do Console
+
+* **`Console.ReadLine()`**
+ * Sentença de código responsável por ler uma linha digitada no console
+ * Utilizamos para pegar a entrada de dado pelo próprio console
+ * e armazenar de forma dinâmica na variável
+ * Por padrão todo dado capturado pelo **`ReadLine`** é uma string
+
+### Conversões
+
+* Quando as informações capturadas forem dados do tipo numérico:
+ * precisaremos converter conforme necessidade
+ * Para isso utilizaremos o **`Parse()`**, Ex.:
+ * conversão para um tipo inteiro
+
+ >```cs
+ > int idade = int.Parse(Console.ReadLine());
+ >```
+
+ * conversão para um tipo double
+
+ >```cs
+ > double salario = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture);
+ >```
+
+### System.Globalization
+
+* Em relação ao *salário*, no terminal o separador de casas decimais deverá ser digitado com:
+ * *vírgula*, se a configuração do Sistema Operacional estiver em pt-BR.
+
+ * *ponto*, se a configuração do Sistema Operacional estiver no padrão americano.
+
+> Porém é possível padronizarmos o *ponto* como separador de casas decimais, independente da configuração do S.O.
+
+Pra isso utilizaremos do **`System.Globalization;`** o
+ * **`CultureInfo.InvariantCulture`**
+ * Ou seja, utilizará a *cultura Invariante*
+ * não olhando para o símbolos culturais configurados no S.O.
\ No newline at end of file
diff --git "a/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 22 - Formatando N\303\272meros.md" "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 22 - Formatando N\303\272meros.md"
new file mode 100644
index 0000000..cc3b0d7
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 22 - Formatando N\303\272meros.md"
@@ -0,0 +1,44 @@
+# Aula 22 - Formatando Números
+
+* FormatandoNumero.cs
+* {"Formatando Número - Fundamentos", FormatandoNumero.Executar},
+
+## Símbolos de Formatação
+
+>```cs
+> double valor = 15.175;
+> Console.WriteLine(valor.ToString("F1"));
+>```
+
+* **`ToString("F1")`**
+ * Transformamos o valor numérico para uma string
+ * Dentro dele informamos qual o tipo de critério/formatação ele deve usar
+
+ * **`"F1"`(float)** - Formata o número decimal com apenas **uma casa decimal**
+ * as casas decimais serão arredondadas para exibir apenas um valor após a vírgula
+
+ * **`"C"` (currency)** - Formata o **`valor`** e exibe como um valor monetário
+
+ * **`"P"` (Percent)** - Multiplica o **`valor`** por 100 e Formata a exibição em percentual
+
+ * **`"#.##"`** - Formatação como máscara para ser exibido
+ * as casas decimais também sofrerão arredondamento
+
+ * para este exemplo podemos padronizar a *cultura* de exibição
+ * independente da configuração do SO, pra isso:
+ > `using System.Globalization;`
+
+>```cs
+> CultureInfo culturaBr = new CultureInfo("pt-BR");
+> Console.WriteLine(valor.ToString("C0", culturaBr));
+>```
+
+* 1º parâmetro: **`"C0"`** - Currency sem casas decimais
+* 2º parâmetro: **`cultura`** - exibir conforme a cultura parametrizada
+
+>```cs
+> int inteiro = 256;
+> Console.WriteLine(inteiro.ToString("D10"));
+>```
+
+* **`"D10"`** - Formata para *decimal* com 10 posições, completando com **zeros a esquerda**
diff --git "a/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 23 - Convers\303\265es.md" "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 23 - Convers\303\265es.md"
new file mode 100644
index 0000000..1d4c1d1
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 23 - Convers\303\265es.md"
@@ -0,0 +1,89 @@
+# Aula 23 - Conversões
+
+* Conversoes.cs
+* {"Conversões - Fundamentos", Conversoes.Executar},
+
+## Regras de conversão
+
+* Sempre que na conversão houver possibilidade de perda de informação:
+ * Devemos **explicitar** que queremos converter um tipo de número em outro
+
+### Situações que podem haver perda de informação
+
+1. Transformar um **número real** com casas decimais para um **inteiro**
+
+2. **double** para **float** - onde o primeiro tem uma quantidade de armazenamento superior em relação ao segundo
+
+> **O compilador não olha para o valor contido na variável e sim para o seu tipo, no momento da conversão.
+> A menos que façamos a conversão de forma explícita, o compilador irá barrar a conversão.**
+
+## Conversão Implícita
+
+>```cs
+> int inteiro = 10;
+> double quebrado = inteiro;
+>```
+
+* Neste exemplo houve uma conversão, porém, devido a capacidade de
+armazenamento do tipo **double** ser maior que a do tipo **inteiro**
+o compilador não irá reclamar.
+
+## Convesão Explícita
+
+### *Cast*
+
+>```cs
+> double nota = 9.7;
+> int notaTruncada = (int) nota;
+>```
+
+> Obs.: Neste tipo de conversão o valor será truncado, ou seja, o decimal será **arrancado** fora.
+
+* ***Caso a conversão não seja explicitada,***
+
+ >```cs
+ > double nota = 9.7;
+ > int notaTruncada = nota;
+ >```
+
+* ***resultará no seguinte Erro:***
+ > *Não é possível converter implicitamente tipo "double" em "int".
+ > Existe uma conversão explícita (há uma conversão ausente?)*
+
+### *Parse()*
+
+>```cs
+> string idadeString = Console.ReadLine();
+> int idadeInteiro = int.Parse(idadeString);
+>```
+
+* ***Observação.:***
+ > *Essa forma poderá gerar um erro para o programa, caso o que for digitado, não seja um número inteiro.*
+
+### *Convert*
+
+>```cs
+> idadeInteiro = Convert.ToInt32(idadeString);
+> Console.WriteLine("Resultado {0}", idadeInteiro);
+>```
+
+### *TryParse()*
+
+* _Forma segura de realizar a conversão de **string** para **int**_
+ > *Mesmo que se digite um valor que não é inteiro, será convertido para zero, __como padrão__, não gerando assim, erro no programa.*
+
+>```cs
+> Console.Write("Digite o primeiro número: ");
+> string palavra = Console.ReadLine();
+> int numero1;
+> int.TryParse(palavra, out numero1);
+> Console.WriteLine("Resultado 1: {0}", numero1);
+>```
+
+* Exemplo refatorado
+
+>```cs
+> Console.Write("Digite o segundo número: ");
+> int.TryParse(Console.ReadLine(), out int numero2);
+> Console.WriteLine("Resultado 2: {0}", numero2);
+>```
\ No newline at end of file
diff --git "a/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 24 - Operadores Aritm\303\251ticos.md" "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 24 - Operadores Aritm\303\251ticos.md"
new file mode 100644
index 0000000..4ae8d4a
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 24 - Operadores Aritm\303\251ticos.md"
@@ -0,0 +1,41 @@
+# Aula 24 - Operadores Aritméticos
+
+* OperadoresAritmeticos.cs
+* {"Operadores Aritméticos - Fundamentos", OperadoresAritmeticos.Executar},
+
+## Soma, Subtração e Multiplicação
+
+```cs
+// Preço Desconto
+var preco = 1000.0;
+var imposto = 355;
+var desconto = 0.1;
+
+double total = preco + imposto;
+var totalComDesconto = total - (total * desconto);
+Console.WriteLine("O preço final é {0}", totalComDesconto);
+```
+
+## Divisão e Potência
+
+```cs
+// IMC
+double peso = 93.2;
+double altura = 1.88;
+double imc = peso / Math.Pow(altura, 2);
+Console.WriteLine($"IMC é {imc}.");
+```
+
+* **`Math.Pow()`**
+ * 1o. argumento, refere-se a ***base***
+ * 2o. argumento, refere-se ao ***expoente***
+
+## Operador Módulo
+
+```cs
+// Número Par/Impar
+int par = 24;
+int impar = 55;
+Console.WriteLine("{0}/2 tem resto {1}", par, par % 2);
+Console.WriteLine("{0}/2 tem resto {1}", impar, impar % 2);
+```
diff --git "a/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 25 - Operadores Relacionais.md" "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 25 - Operadores Relacionais.md"
new file mode 100644
index 0000000..d1b19b3
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 25 - Operadores Relacionais.md"
@@ -0,0 +1,29 @@
+# Aula 25 - Operadores Relacionais
+
+* O resultado de um operador relacional sempre será **verdadeiro** ou **falso**
+* Ou seja, o resultado é ***Boleano (bool)***
+
+* OperadoresRelacionais.cs
+* {"Operadores Relacionais - Fundamentos", OperadoresRelacionais.Executar},
+
+## Notações
+
+* **`>`** - Maior que
+* **`<`** - Menor que
+* **`==`** - Igualdade
+* **`!=`** - Diferente
+* **`>=`** - Maior ou igual a
+* **`<=`** - Menor ou igual a
+
+```cs
+double nota = 6.0;
+double notaDeCorte = 7.0;
+
+Console.WriteLine("Nota inválida? {0}", nota > 10.0);
+Console.WriteLine("Nota inválida? {0}", nota < 0.0);
+Console.WriteLine("Perfeito? {0}", nota == 10.0);
+Console.WriteLine("Tem como melhorar? {0}", nota != 10.0);
+Console.WriteLine("Passou por média? {0}", nota >= notaDeCorte);
+Console.WriteLine("Recuperação? {0}", nota < notaDeCorte);
+Console.WriteLine("Reprovado? {0}", nota <= 3.0);
+```
\ No newline at end of file
diff --git "a/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 26 - Operadores L\303\263gicos_part_1.md" "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 26 - Operadores L\303\263gicos_part_1.md"
new file mode 100644
index 0000000..3702eab
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 26 - Operadores L\303\263gicos_part_1.md"
@@ -0,0 +1,38 @@
+# Aula 26 - Operadores Lógicos #01
+
+## Conceito
+
+### Tabela Verdade
+
+| Cenário TV50 |
+|:------------:|
+| (***AND***) |
+
+Ter || Qui || Sáb
+:--:|:--:|:--:|:--:|:--:
+| V | **&&** | V | = | V |
+| V | **&&** | F | = | F |
+| F | **&&** | V | = | F |
+| F | **&&** | F | = | F |
+
+| Cenário Sorvete |
+|:---------------:|
+| (***OR***) |
+
+Ter || Qui || Sáb
+:--:|:--:|:--:|:--:|:--:
+| V | **\|\|** | V | = | V |
+| V | **\|\|** | F | = | V |
+| F | **\|\|** | V | = | V |
+| F | **\|\|** | F | = | F |
+
+| Cenário TV32 |
+|:-------------:|
+| (***XOR***) |
+
+Ter || Qui || Sáb
+:--:|:--:|:--:|:--:|:--:
+| V | **^** | V | = | F |
+| V | **^** | F | = | V |
+| F | **^** | V | = | V |
+| F | **^** | F | = | F |
diff --git "a/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 27 - Operadores L\303\263gicos_part_2.md" "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 27 - Operadores L\303\263gicos_part_2.md"
new file mode 100644
index 0000000..d4b6456
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 27 - Operadores L\303\263gicos_part_2.md"
@@ -0,0 +1,24 @@
+# Aula 27 - Operadores Lógicos #02
+
+* OperadoresLogicos.cs
+* {"Operadores Lógicos - Fundamentos", OperadoresLogicos.Executar},
+
+### Operadores Binários
+
+* Opera encima de dois operandos
+
+* **&&** - Operador lógico **E**
+* **`executouTrabalho1 && executouTrabalho2`**
+
+* **||** - Operador lógico **OU**
+* **`executouTrabalho1 || executouTrabalho2`**
+
+* **^** - Operador lógico **OU Exclusivo**
+* **`executouTrabalho1 ^ executouTrabalho2`**
+
+### Operadores Unários
+
+* Trabalha com apenas um operador
+* **`!comprouSorvete`**
+ * O símbolo de exclamação vai representar uma **Negação lógica**
+ * invertendo o valor de um determinado operando
\ No newline at end of file
diff --git "a/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 28 - Operadores de Atribui\303\247\303\243o.md" "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 28 - Operadores de Atribui\303\247\303\243o.md"
new file mode 100644
index 0000000..85d5a05
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 28 - Operadores de Atribui\303\247\303\243o.md"
@@ -0,0 +1,83 @@
+# Aula 28 - Operadores de Atribuição
+
+* OperadoresAtribuicao.cs
+* {"Operadores Atribuição - Fundamentos", OperadoresAtribuicao.Executar},
+
+## Operador binário de Atribuição
+
+* **Atribuição substitutiva** - substitui-se o valor existente na variável
+
+ >```cs
+ > var num1 = 3;
+ > num1 = 7;
+ >```
+
+* **Atribuição aditiva** - acrescenta-se um valor ao valor existente na variável
+
+ >```cs
+ > var num1 = 3;
+ > num1 += 10; // num1 = num1 + 10;
+ >```
+
+* **Atribuição subtrativa** - subtrai-se um valor do valor existente na variável
+
+ >```cs
+ > var num1 = 3;
+ > num1 += 10; // num1 = num1 + 10;
+ > num1 -= 3; // num1 = num1 - 3;
+ >```
+
+* **Atribuição Multiplicativa** - multiplica-se um valor ao valor existente na variável
+
+ >```cs
+ > var num1 = 3;
+ > num1 += 10; // num1 = num1 + 10;
+ > num1 -= 3; // num1 = num1 - 3;
+ > num1 *= 5; // num1 = num1 * 5;
+ >```
+
+* **Atribuição divisiva** - divide-se um valor ao valor existente na variável
+
+ >```cs
+ > var num1 = 3;
+ > num1 += 10; // num1 = num1 + 10;
+ > num1 -= 3; // num1 = num1 - 3;
+ > num1 *= 5; // num1 = num1 * 5;
+ > num1 /= 2; // num1 = num1 / 2;
+ >```
+
+* **Atribuição por valor (cópia)** - atribui-se o valor de uma variável à outra variável
+
+ >```cs
+ > int a = 1; // atribuição a partir de um literal
+ > int b = a; // atribuição a partir de uma variável
+ >```
+
+## Operador unário de Atribuição
+
+### Ocorre uma atribuição implícita
+
+* **Atribuição com operador unário de incremento** - acrescenta-se uma unidade da variável em si próprio
+
+ >```cs
+ > a++; // a = a + 1;
+ >```
+
+* **Atribuição com operador unário de decremento** - subtrai-se uma unidade da variável em si próprio
+
+ >```cs
+ > b--; // b = b - 1;
+ >```
+
+* **Atribuição por referência** - atribui-se um valor a um local de memória referenciado na variável
+
+ >```cs
+ > dynamic c = new System.Dynamic.ExpandoObject();
+ > c.nome = "João";
+ >
+ > dynamic d = c;
+ > d.nome = "Maria";
+ >
+ > Console.WriteLine(c.nome);
+ >```
+
\ No newline at end of file
diff --git "a/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 29 - Operadores Un\303\241rios.md" "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 29 - Operadores Un\303\241rios.md"
new file mode 100644
index 0000000..aa08aac
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 29 - Operadores Un\303\241rios.md"
@@ -0,0 +1,54 @@
+# Aula 29 - Operadores Unários
+
+* OperadoresUnarios.cs
+* {"Operadores Unários - Fundamentos", OperadoresUnarios.Executar},
+
+* **`-`:** Símbolo de **menos**
+ * associado a um operando, ***inverte o sinal*** do valor aritmético contido na variável
+
+ >```cs
+ > var valorNegativo = -5;
+ > Console.WriteLine(-valorNegativo); // output: 5
+ >```
+
+* **`!`:** Símbolo de **exclamação**
+ * associado a um operando, faz uma ***negação lógica*** do resultado lógico da variável
+
+ >```cs
+ > var booleano = true;
+ > Console.WriteLine(!booleano);
+ >```
+
+* **Incremento**
+ * acrescenta-se uma unidade da variável em si próprio
+ * utilizando sintaxe com operador **Pós-fixado**
+ * colocando o símbolo de incremento *depois do operando*
+
+ >```cs
+ > var numero1 = 2;
+ > numero1++;
+ > Console.WriteLine(numero1);
+ >```
+
+* **Decremento**
+ * subtrai-se uma unidade da variável em si próprio
+ * utilizando sintaxe com operador **Pré-fixado**
+ * colocando o símbolo de decremento *antes do operando*
+
+ >```cs
+ > var numero1 = 2;
+ > --numero1; //
+ > Console.WriteLine(numero1);
+ >```
+
+***Observação:***
+
+* a sintaxe **Pré-fixado** tem ordem de precedência maior que a sintaxe **Pós-fixado**
+ * **`Console.WriteLine(numero1++ == --numero2);`**
+ * `--numero2` - será decrementado antes da comparação
+ * `numero1++` - será incrementado após a comparação
+
+* O exemplo acima, fere os princípios de Boas práticas, pois mistura:
+ * incremento
+ * decremento
+ * comparação
diff --git "a/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 30 - Operador Tern\303\241rio.md" "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 30 - Operador Tern\303\241rio.md"
new file mode 100644
index 0000000..aa796a4
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/Aula 30 - Operador Tern\303\241rio.md"
@@ -0,0 +1,30 @@
+# Aula 30 - Operador Ternário
+
+* OperadorTernario.cs
+* {"Operador Ternário - Fundamentos", OperadorTernario.Executar},
+
+* **Operador ternário**
+ * é um operador condicional
+ * pode compor uma expressão relacional
+ * ou expressão relacional e lógica
+ * retornará true ou false
+
+* > Observação: Só existe um operador ternário.
+
+ * 3 Partes do operador ternário
+
+ >```cs
+ > string resultado = nota >= 7.0 ? "Aprovado" : "Reprovado";
+ >```
+
+ * Uma Expressão - que retorna verdadeiro ou falso
+ * `nota >= 7.0`
+ * Operando 1 - que será atribuído se a expressão for verdadeira
+ * `? "Aprovado"`
+ * Operando 2 - que será atribuído se a expressão for falsa
+ * `: "Reprovado"`
+
+ * **`?`** - Expressão **SE**
+ * **`:`** - Expressão **SENÃO**
+
+ * A atribução condicional, será feita conforme a sequências dos símbolos, por isso é muito importante posicionar as resposta corretamente.
diff --git "a/Aulas/Se\303\247\303\243o 3 - Fundamentos/S03A23-Exemplo-TryParse.md" "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/S03A23-Exemplo-TryParse.md"
new file mode 100644
index 0000000..8ceb2fc
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 3 - Fundamentos/S03A23-Exemplo-TryParse.md"
@@ -0,0 +1,5 @@
+```cs
+Console.Write("Digite sua idade: ");
+int.TryParse(Console.ReadLine(), out int idade);
+Console.WriteLine("Você tem {0} anos.", idade);
+```
\ No newline at end of file
diff --git "a/Aulas/Se\303\247\303\243o 4 - Estruturas de Controle/Aula 31 - Estrutura IF.md" "b/Aulas/Se\303\247\303\243o 4 - Estruturas de Controle/Aula 31 - Estrutura IF.md"
new file mode 100644
index 0000000..e9b2277
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 4 - Estruturas de Controle/Aula 31 - Estrutura IF.md"
@@ -0,0 +1,89 @@
+# Aula 31 - Estrutura IF
+
+* EstruturaIf.cs
+* `{"Estrutura If - Estruturas de Controle", EstruturaIf.Executar},`
+
+> ***Importando a nova estrutura no Program.cs***
+
+* `using CursoCSharp.EstruturasDeControle;`
+
+## Funcionalidade
+
+* Serve para selecionar num conjunto
+ * uma ou mais sentença de códigos para ser executado ou não
+
+* **`if(exp)`**
+ * dentro dos parênteses terá uma expressão
+ * Essa *expressão* pode ter:
+ * vários operandos
+ * Essa expressão *sempre* irá retornar verdadeiro ou falso
+
+ >```cs
+ > if (exp)
+ > Sentenca;
+ >```
+
+ * a primeira sentença logo após o **`if`**
+ * será executada se a *expressão* for verdadeira
+ * caso contrário não será executada
+
+* **`{ }`** - o uso das chaves são obrigatórias
+ * quando tivermos mais de uma sentença associadas à *expressão*
+ * serve para delimitar um bloco de sentenças
+
+ >```cs
+ > if (exp) {
+ > Sentenca;
+ > Sentenca;
+ > Sentenca;
+ > }
+ >```
+
+ * Se a *expressão* for verdadeira o bloco associado será executado
+ * Se a *expressão* for falsa o bloco associado não será executado
+
+### Refatorando
+
+> **Obs.:** Quando a variável é do tipo booleana, não é necessário fazer uma *comparação relacional* para saber se ela é verdadeira ou falsa.
+
+```cs
+ bool bomComportamento = true;
+
+ if (nota >= 9.0 && bomComportamento)
+```
+
+* nessa sentença a variável `bomComportamento` já é um operando lógico
+* ou seja, **não precisamos** compará-la se verdadeira ou falsa, usando:
+ * `bomComportamento == true`
+ * isso seria como fazer a seguinte comparação `true == true`
+* precisando testar o inverso
+ * negamos ela com **`!`**
+ * Ex.: **`!bomComportamento`**
+
+* A expressão **`if (exp)`**, pode ser substituída pela seguinte expressão:
+
+ ```cs
+ bomComportamento = entrada == "S" || entrada == "s";
+ ```
+
+ * Uma vez que queremos atribuir **true**
+ * à variável `bomComportamento`
+ * se a expressão é *verdadeira*
+
+* Podemos ainda utilizar uma outra sentença para substituir a comparação de **"S"** ou **"s"**
+
+ ```cs
+ bomComportamento = entrada.ToLower() == "s";
+ ```
+
+ * **`ToLower()`** - Função transformar todo caractere em minúsculo
+
+### Advertência
+
+* Na estrutura de controle não utilizamos o **`;`**.
+ * Uma única exceção ocorrerá quando
+ *
+
+* Estruturas de controle controlam a execução de uma ou mais sentenças
+
+* A estrutura **`If`** controla se uma ou um bloco de sentença será executado ou não.
diff --git "a/Aulas/Se\303\247\303\243o 4 - Estruturas de Controle/Aula 32 - Estrutura IF - ELSE.md" "b/Aulas/Se\303\247\303\243o 4 - Estruturas de Controle/Aula 32 - Estrutura IF - ELSE.md"
new file mode 100644
index 0000000..af0abb9
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 4 - Estruturas de Controle/Aula 32 - Estrutura IF - ELSE.md"
@@ -0,0 +1,27 @@
+# Aula 32 - Estrutura IF/ELSE
+
+* EstruturaIfElse.cs
+* `{"Estrutura If Else - Estruturas de Controle", EstruturaIfElse.Executar},`
+
+* Sempre um dos dois será executado
+* Nunca os dois serão executados
+
+```cs
+ double nota = 7.0;
+
+ if (nota >= 7.0) {
+ Console.WriteLine("Aprovado!");
+ Console.WriteLine("Não fez mais que sua obrigação...");
+ } else {
+ Console.WriteLine("Recuperação");
+ }
+```
+
+* **`if ()`**
+ * A utilização das **`{}`** se dá por haver mais de uma sentença para ser executada.
+ * Representando um bloco de código associado a ele
+
+* **`else`**
+ * a mesma sintaxe da utilização das **`{}`** no `if`, também serve para o `else`
+ * por convenção estética aplicaremos as ***chaves*** em todos os blocos `else`
+ * mesmo que haja apenas uma sentença para ser executada
diff --git "a/Aulas/Se\303\247\303\243o 4 - Estruturas de Controle/Aula 33 - Estrutura IF - ELSE IF.md" "b/Aulas/Se\303\247\303\243o 4 - Estruturas de Controle/Aula 33 - Estrutura IF - ELSE IF.md"
new file mode 100644
index 0000000..fcdcf21
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 4 - Estruturas de Controle/Aula 33 - Estrutura IF - ELSE IF.md"
@@ -0,0 +1,45 @@
+# Aula 33 - Estrutura IF/ELSE IF
+
+* EstruturaIfElseIf.cs
+* `{"Estrutura If/Else/If - Estruturas de Controle", EstruturaIfElseIf.Executar},`
+
+* Com essa estrutura, poderemos trabalhar com múltiplas seleções, utilizando
+
+## Conceito
+
+* **`if()`** - para condição verdadeira
+* **`else if()`** - associando uma outra condição para ser testada
+
+```cs
+ if (nota >= 9.0) {
+ Console.WriteLine("Quadro de Honra!");
+ } else {
+ if (nota >= 7.0) {
+ Console.WriteLine("Aprovado!");
+ } else {
+ if (nota >= 5.0) {
+ Console.WriteLine("Recuperação");
+ } else {
+ Console.WriteLine("Te vejo na próxima...");
+ }
+ }
+ }
+
+ Console.WriteLine("Fim!");
+```
+
+### Simplificando
+
+```cs
+ if (nota >= 9.0) {
+ Console.WriteLine("Quadro de Honra!");
+ } else if (nota >= 7.0) {
+ Console.WriteLine("Aprovado!");
+ } else if (nota >= 5.0) {
+ Console.WriteLine("Recuperação");
+ } else {
+ Console.WriteLine("Te vejo na próxima...");
+ }
+
+ Console.WriteLine("Fim!");
+```
diff --git "a/Aulas/Se\303\247\303\243o 4 - Estruturas de Controle/Aula 34 - Estrutura SWITCH.md" "b/Aulas/Se\303\247\303\243o 4 - Estruturas de Controle/Aula 34 - Estrutura SWITCH.md"
new file mode 100644
index 0000000..0237563
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 4 - Estruturas de Controle/Aula 34 - Estrutura SWITCH.md"
@@ -0,0 +1,55 @@
+# Aula 34 - Estrutura Switch
+
+* EstruturaSwitch.cs
+* `{"Estrutura Switch - Estruturas de Controle", EstruturaSwitch.Executar},`
+
+### Conceito
+
+* Implementação de seleções múltiplas
+
+```cs
+ int nota = 0;
+
+ switch (nota) {
+ case 0:
+ Console.WriteLine("Péssimo");
+ break;
+ }
+```
+
+* **`switch (int) {}`** - onde `int` é um valor numérico
+
+* **`case 0:`** - onde `0` é um inteiro, sendo ele a primeira seleção
+
+* **`break;`** - utilizado para encerrar estrutura atual e vá para a linha posterior, após sua execução
+ * sendo obrigatório o uso dessa palavra reservada para cada `case` declarado
+
+> Observação:
+
+* Dentro de um `case`
+ * podemos ter mais de uma sentença de código, além do `break;`
+
+ >```cs
+ > int nota = 5;
+ >
+ > switch (nota) {
+ > case 5:
+ > Console.WriteLine("Ótimo");
+ > Console.WriteLine("Parabéns");
+ > break;
+ > }
+ >```
+
+ * assim como também podemos ter um bloco de códigos `{}`
+
+ >```cs
+ > int nota = 5;
+ >
+ > switch (nota) {
+ > case 5: {
+ > Console.WriteLine("Ótimo");
+ > Console.WriteLine("Parabéns");
+ > break;
+ > }
+ > }
+ >```
diff --git "a/Aulas/Se\303\247\303\243o 4 - Estruturas de Controle/Aula 35 - Estrutura WHILE.md" "b/Aulas/Se\303\247\303\243o 4 - Estruturas de Controle/Aula 35 - Estrutura WHILE.md"
new file mode 100644
index 0000000..7c4f435
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 4 - Estruturas de Controle/Aula 35 - Estrutura WHILE.md"
@@ -0,0 +1,77 @@
+# Aula 35 - Estrutura While
+
+* EstruturaWhile.cs
+* `{"Estrutura While - Estruturas de Controle", EstruturaWhile.Executar},`
+
+## Conceito
+
+* Associado ao `While` teremos uma sentença ou um bloco de códigos
+* e essa sentença ou bloco de código, será executada **enquanto** a expressão `While` for verdadeira
+
+* Usado para uma quantidade de repetição **indeterminada**
+ * Quando não sabemos quantas repetições exatamente serão executadas
+ * via de regra o `While` vai se encaixar muito bem nesse cenário
+
+### **`Random()`**
+
+* Classe que gera número aleatório
+
+### Sessão de declaração
+
+```cs
+ // Sessão de declaração
+ int palpite = 0;
+ Random random = new Random();
+
+ int numeroSecreto = random.Next(1, 16);
+ bool numeroEncontrado = false;
+ int tentativasRestantes = 3;
+ int tentativas = 0;
+```
+
+* iniciando a variável `palpite` em 0, que é diferente do valor que o usuário digitar
+
+* **`Next(1, 16)`** - será gerado número aleatório entre
+ * `1` - sendo este número *inclusivo* e
+ * `16` - sendo este número *exclusivo*
+
+* iniciando a variável booleana `numeroEncontrado` com `false`
+
+* a variável `tentativasRestantes`, que irá controlar as repetições do **`While`**, será decrementada.
+
+* a variável `tentativas`, iniciada com zero, terá funcionalidade
+ * de incrementar o número de tentativas utilizadas
+ * e será utilizada pelo `While` que irá comparar se o usuário atingiu o número de tentativas
+
+### Sessão de Implementação
+
+```cs
+// Sessão de Implementação
+while (tentativasRestantes > 0 && !numeroEncontrado) {
+ ...
+ if (numeroSecreto == palpite) {
+ ...
+ var corAnterior = Console.BackgroundColor;
+ Console.BackgroundColor = ConsoleColor.Green;
+ ...
+ Console.BackgroundColor = corAnterior;
+ }
+}
+```
+
+* **`var corAnterior = Console.BackgroundColor;`**
+ * Pega a cor atual do background do console para armazenar em uma variável
+
+* **`Console.BackgroundColor = ConsoleColor.Green;`**
+ * Altera a cor do background do console para verde
+
+* **`Console.BackgroundColor = corAnterior;`**
+ * Restaura a cor padrão, armazenada anteriormente na variável
+
+### Exemplo de Laço Infinito *(!CUIDADO)*
+
+>```cs
+> while(true) {
+>
+> }
+>```
diff --git "a/Aulas/Se\303\247\303\243o 4 - Estruturas de Controle/Aula 36 - Estrutura DO WHILE.md" "b/Aulas/Se\303\247\303\243o 4 - Estruturas de Controle/Aula 36 - Estrutura DO WHILE.md"
new file mode 100644
index 0000000..206aa47
--- /dev/null
+++ "b/Aulas/Se\303\247\303\243o 4 - Estruturas de Controle/Aula 36 - Estrutura DO WHILE.md"
@@ -0,0 +1,14 @@
+# Aula 36 - Estrutura Do While
+
+* EstruturaDoWhile.cs
+* `{"Estrutura Do While - Estruturas de Controle", EstruturaDoWhile.Executar},`
+
+## Conceito
+
+* Essa é a única estrutura que termina com **`;`**.
+* Nessa estrutura o bloco vem antes da expressão
+* O bloco é executado pelo menos uma vez
+* Somente ao final da primeira execução que testa a condição
+* Ela é uma estrutura menos usada
+* Quantidade indeterminada de repetições
+
diff --git a/CursoCSharp/CursoCSharp.sln b/CursoCSharp/CursoCSharp.sln
new file mode 100644
index 0000000..6ad921e
--- /dev/null
+++ b/CursoCSharp/CursoCSharp.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.28307.1500
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CursoCSharp", "CursoCSharp\CursoCSharp.csproj", "{221B5627-003F-4C52-A6B4-B84B96949485}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {221B5627-003F-4C52-A6B4-B84B96949485}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {221B5627-003F-4C52-A6B4-B84B96949485}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {221B5627-003F-4C52-A6B4-B84B96949485}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {221B5627-003F-4C52-A6B4-B84B96949485}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {D4922850-EEA3-4B65-BBD8-3B02F9A79F12}
+ EndGlobalSection
+EndGlobal
diff --git a/CursoCSharp/CursoCSharp/CentralDeExercicios.cs b/CursoCSharp/CursoCSharp/CentralDeExercicios.cs
new file mode 100644
index 0000000..ec54416
--- /dev/null
+++ b/CursoCSharp/CursoCSharp/CentralDeExercicios.cs
@@ -0,0 +1,51 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace CursoCSharp {
+ public class CentralDeExercicios {
+ Dictionary Exercicios;
+
+ public CentralDeExercicios(Dictionary exercicios) {
+ Exercicios = exercicios;
+ }
+
+ public void SelecionarEExecutar() {
+ int i = 1;
+
+ foreach (var exercicio in Exercicios) {
+ Console.WriteLine("{0}) {1}", i, exercicio.Key);
+ i++;
+ }
+
+ Console.Write("Digite o número (ou vazio para o último)? ");
+
+ int.TryParse(Console.ReadLine(), out int num);
+ bool numValido = num > 0 && num <= Exercicios.Count;
+ num = numValido ? num - 1 : Exercicios.Count - 1;
+
+ string nomeDoExercicio = Exercicios.ElementAt(num).Key;
+
+ Console.Write("\nExecutando exercício ");
+ Console.BackgroundColor = ConsoleColor.Yellow;
+ Console.ForegroundColor = ConsoleColor.Black;
+ Console.WriteLine(nomeDoExercicio);
+ Console.ResetColor();
+
+ Console.WriteLine(String.Concat(
+ Enumerable.Repeat("=", nomeDoExercicio.Length + 21)) + "\n");
+
+ Action executar = Exercicios.ElementAt(num).Value;
+ try {
+ executar();
+ } catch(Exception e) {
+ Console.BackgroundColor = ConsoleColor.Red;
+ Console.ForegroundColor = ConsoleColor.White;
+ Console.WriteLine("Ocorreu um erro: {0}", e.Message);
+ Console.ResetColor();
+
+ Console.WriteLine(e.StackTrace);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/CursoCSharp/CursoCSharp/CursoCSharp.csproj b/CursoCSharp/CursoCSharp/CursoCSharp.csproj
new file mode 100644
index 0000000..22f479e
--- /dev/null
+++ b/CursoCSharp/CursoCSharp/CursoCSharp.csproj
@@ -0,0 +1,9 @@
+
+
+
+ Exe
+ netcoreapp2.1
+
+
+
+
diff --git a/CursoCSharp/CursoCSharp/EstruturasDeControle/EstruturaDoWhile.cs b/CursoCSharp/CursoCSharp/EstruturasDeControle/EstruturaDoWhile.cs
new file mode 100644
index 0000000..7e58ca3
--- /dev/null
+++ b/CursoCSharp/CursoCSharp/EstruturasDeControle/EstruturaDoWhile.cs
@@ -0,0 +1,21 @@
+using System;
+
+namespace CursoCSharp.EstruturasDeControle
+{
+ class EstruturaDoWhile
+ {
+ public static void Executar() {
+ string entrada;
+
+ do
+ {
+ Console.WriteLine("Qual o seu nome?");
+ entrada = Console.ReadLine();
+
+ Console.WriteLine("Seja bem-vindo {0}", entrada);
+ Console.WriteLine("Deseja continuar? (S/N)");
+ entrada = Console.ReadLine();
+ } while (entrada.ToLower() == "s");
+ }
+ }
+}
diff --git a/CursoCSharp/CursoCSharp/EstruturasDeControle/EstruturaIf.cs b/CursoCSharp/CursoCSharp/EstruturasDeControle/EstruturaIf.cs
new file mode 100644
index 0000000..ae1694d
--- /dev/null
+++ b/CursoCSharp/CursoCSharp/EstruturasDeControle/EstruturaIf.cs
@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace CursoCSharp.EstruturasDeControle
+{
+ class EstruturaIf
+ {
+ public static void Executar() {
+ bool bomComportamento = false;
+ string entrada;
+
+ Console.Write("Digite a nota do aluno: ");
+ entrada = Console.ReadLine();
+ Double.TryParse(entrada, out double nota);
+
+ Console.Write("Possui bom comportamento (S/N): ");
+ entrada = Console.ReadLine();
+
+ //if (entrada == "S" || entrada == "s")
+ // bomComportamento = true;
+
+ //bomComportamento = entrada == "S" || entrada == "s";
+ bomComportamento = entrada.ToLower() == "s";
+
+ if (nota >= 9.0 && bomComportamento) {
+ Console.WriteLine("Quadro de honra!");
+ }
+ }
+ }
+}
diff --git a/CursoCSharp/CursoCSharp/EstruturasDeControle/EstruturaIfElse.cs b/CursoCSharp/CursoCSharp/EstruturasDeControle/EstruturaIfElse.cs
new file mode 100644
index 0000000..2fdaff4
--- /dev/null
+++ b/CursoCSharp/CursoCSharp/EstruturasDeControle/EstruturaIfElse.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace CursoCSharp.EstruturasDeControle
+{
+ class EstruturaIfElse
+ {
+ public static void Executar() {
+ double nota = 6.0;
+
+ if (nota >= 7.0) {
+ Console.WriteLine("Aprovado!");
+ Console.WriteLine("Não fez mais que sua obrigação...");
+ } else {
+ Console.WriteLine("Recuperação");
+ }
+ }
+ }
+}
diff --git a/CursoCSharp/CursoCSharp/EstruturasDeControle/EstruturaIfElseIf.cs b/CursoCSharp/CursoCSharp/EstruturasDeControle/EstruturaIfElseIf.cs
new file mode 100644
index 0000000..2d6ec1a
--- /dev/null
+++ b/CursoCSharp/CursoCSharp/EstruturasDeControle/EstruturaIfElseIf.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace CursoCSharp.EstruturasDeControle
+{
+ class EstruturaIfElseIf
+ {
+ public static void Executar() {
+ Console.Write("Digite a nota do aluno: ");
+
+ string entrada = Console.ReadLine();
+ Double.TryParse(entrada, out double nota);
+
+ if (nota >= 9.0) {
+ Console.WriteLine("Quadro de Honra!");
+ } else if (nota >= 7.0) {
+ Console.WriteLine("Aprovado!");
+ } else if (nota >= 5.0) {
+ Console.WriteLine("Recuperação");
+ } else {
+ Console.WriteLine("Te vejo na próxima...");
+ }
+
+ Console.WriteLine("Fim!");
+ }
+ }
+}
diff --git a/CursoCSharp/CursoCSharp/EstruturasDeControle/EstruturaSwitch.cs b/CursoCSharp/CursoCSharp/EstruturasDeControle/EstruturaSwitch.cs
new file mode 100644
index 0000000..ae11ced
--- /dev/null
+++ b/CursoCSharp/CursoCSharp/EstruturasDeControle/EstruturaSwitch.cs
@@ -0,0 +1,37 @@
+using System;
+
+namespace CursoCSharp.EstruturasDeControle
+{
+ class EstruturaSwitch
+ {
+ public static void Executar() {
+ Console.Write("Avalie meu atendimento com uma nota de 0 a 5: ");
+ int.TryParse(Console.ReadLine(), out int nota);
+
+ switch (nota) {
+ case 0:
+ Console.WriteLine("Péssimo");
+ break;
+ case 1:
+ case 2:
+ Console.WriteLine("Ruim");
+ break;
+ case 3:
+ Console.WriteLine("Regular");
+ break;
+ case 4:
+ Console.WriteLine("Bom");
+ break;
+ case 5:
+ Console.WriteLine("Ótimo");
+ Console.WriteLine("Parabéns!");
+ break;
+ default:
+ Console.WriteLine("Nota inválida");
+ break;
+ }
+
+ Console.WriteLine("Obrigado por participar de nossa pesquisa.");
+ }
+ }
+}
\ No newline at end of file
diff --git a/CursoCSharp/CursoCSharp/EstruturasDeControle/EstruturaWhile.cs b/CursoCSharp/CursoCSharp/EstruturasDeControle/EstruturaWhile.cs
new file mode 100644
index 0000000..05c8d17
--- /dev/null
+++ b/CursoCSharp/CursoCSharp/EstruturasDeControle/EstruturaWhile.cs
@@ -0,0 +1,46 @@
+using System;
+
+namespace CursoCSharp.EstruturasDeControle
+{
+ class EstruturaWhile
+ {
+ public static void Executar() {
+ int palpite = 0;
+ Random random = new Random();
+
+ int numeroSecreto = random.Next(1, 16);
+ bool numeroEncontrado = false;
+ int tentativasRestantes = 3;
+ int tentativas = 0;
+
+ while (tentativasRestantes > 0 && !numeroEncontrado) {
+ Console.Write("Insira o seu palpite: ");
+ string entrada = Console.ReadLine();
+ int.TryParse(entrada, out palpite);
+
+ tentativas++;
+ tentativasRestantes--;
+
+ var corAnterior = Console.BackgroundColor;
+
+ if (numeroSecreto == palpite) {
+ numeroEncontrado = true;
+ //var corAnterior = Console.BackgroundColor;
+ Console.BackgroundColor = ConsoleColor.Green;
+ Console.WriteLine("Número encontrado em {0} tentativa(s)", tentativas);
+ Console.BackgroundColor = corAnterior;
+ } else if (palpite > numeroSecreto) {
+ Console.WriteLine("Menor...Tente novamente!");
+ Console.BackgroundColor = ConsoleColor.DarkYellow;
+ Console.WriteLine("Tentativas restantes: {0}", tentativasRestantes);
+ Console.BackgroundColor = corAnterior;
+ } else {
+ Console.WriteLine("Maior...Tente novamente!");
+ Console.BackgroundColor = ConsoleColor.DarkMagenta;
+ Console.WriteLine("Tentativas restantes: {0}", tentativasRestantes);
+ Console.BackgroundColor = corAnterior;
+ }
+ }
+ }
+ }
+}
diff --git a/CursoCSharp/CursoCSharp/Fundamentos/Comentarios.cs b/CursoCSharp/CursoCSharp/Fundamentos/Comentarios.cs
new file mode 100644
index 0000000..0ce2f99
--- /dev/null
+++ b/CursoCSharp/CursoCSharp/Fundamentos/Comentarios.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace CursoCSharp.Fundamentos {
+
+ ///
+ ///
+ ///
+ class Comentarios {
+ public static void Executar() {
+ // Cuidado com os comentários desnecessários
+ Console.WriteLine("Código claro é sempre melhor!");
+
+ Console.WriteLine("O C# tem o XML Comments");
+ }
+ }
+}
diff --git a/CursoCSharp/CursoCSharp/Fundamentos/Conversoes.cs b/CursoCSharp/CursoCSharp/Fundamentos/Conversoes.cs
new file mode 100644
index 0000000..b9cface
--- /dev/null
+++ b/CursoCSharp/CursoCSharp/Fundamentos/Conversoes.cs
@@ -0,0 +1,37 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace CursoCSharp.Fundamentos
+{
+ class Conversoes
+ {
+ public static void Executar() {
+ int inteiro = 10;
+ double quebrado = inteiro;
+ Console.WriteLine(quebrado);
+
+ double nota = 9.7;
+ int notaTruncada = (int) nota;
+ Console.WriteLine("Nota truncada: {0}", notaTruncada);
+
+ Console.Write("Digite sua idade: ");
+ string idadeString = Console.ReadLine();
+ int idadeInteiro = int.Parse(idadeString);
+ Console.WriteLine("Idade inserida {0}", idadeInteiro);
+
+ idadeInteiro = Convert.ToInt32(idadeString);
+ Console.WriteLine("Resultado {0}", idadeInteiro);
+
+ Console.Write("Digite o primeiro número: ");
+ string palavra = Console.ReadLine();
+ int numero1;
+ int.TryParse(palavra, out numero1);
+ Console.WriteLine("Resultado 1: {0}", numero1);
+
+ Console.Write("Digite o segundo número: ");
+ int.TryParse(Console.ReadLine(), out int numero2);
+ Console.WriteLine("Resultado 2: {0}", numero2);
+ }
+ }
+}
diff --git a/CursoCSharp/CursoCSharp/Fundamentos/FormatandoNumero.cs b/CursoCSharp/CursoCSharp/Fundamentos/FormatandoNumero.cs
new file mode 100644
index 0000000..acdcd6a
--- /dev/null
+++ b/CursoCSharp/CursoCSharp/Fundamentos/FormatandoNumero.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Globalization;
+
+namespace CursoCSharp.Fundamentos
+{
+ class FormatandoNumero
+ {
+ public static void Executar() {
+ double valor = 15.175;
+ Console.WriteLine(valor.ToString("F1"));
+ Console.WriteLine(valor.ToString("C"));
+ Console.WriteLine(valor.ToString("P"));
+ Console.WriteLine(valor.ToString("#.##"));
+
+ CultureInfo culturaBr = new CultureInfo("pt-BR");
+ Console.WriteLine(valor.ToString("C0", culturaBr));
+
+ CultureInfo culturaUs = new CultureInfo("en-US");
+ Console.WriteLine(valor.ToString("C3", culturaUs));
+
+ int inteiro = 256;
+ Console.WriteLine(inteiro.ToString("D10"));
+ }
+ }
+}
diff --git a/CursoCSharp/CursoCSharp/Fundamentos/Inferencia.cs b/CursoCSharp/CursoCSharp/Fundamentos/Inferencia.cs
new file mode 100644
index 0000000..40e689a
--- /dev/null
+++ b/CursoCSharp/CursoCSharp/Fundamentos/Inferencia.cs
@@ -0,0 +1,24 @@
+using System;
+
+namespace CursoCSharp.Fundamentos
+{
+ class Inferencia
+ {
+ public static void Executar() {
+ var nome = "Hamilton";
+ // nome = 123;
+ Console.WriteLine(nome);
+
+ // int idade;
+ var idade = 41;
+ Console.WriteLine(idade);
+
+ int a;
+ a = 3;
+
+ int b = 2;
+
+ Console.WriteLine(a + b);
+ }
+ }
+}
diff --git a/CursoCSharp/CursoCSharp/Fundamentos/Interpolacao.cs b/CursoCSharp/CursoCSharp/Fundamentos/Interpolacao.cs
new file mode 100644
index 0000000..93c14f2
--- /dev/null
+++ b/CursoCSharp/CursoCSharp/Fundamentos/Interpolacao.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace CursoCSharp.Fundamentos
+{
+ class Interpolacao
+ {
+ public static void Executar() {
+ string nome = "Notebook Gamer";
+ string marca = "Dell";
+ double preco = 5800.00;
+
+ Console.WriteLine("O " + nome + " da marca "
+ + marca + " custa R$" + preco + ".");
+
+ Console.WriteLine("O {0} da marca {1} custa R${2}.",
+ nome, marca, preco);
+
+ Console.WriteLine($"A marca {marca} é legal!");
+
+ Console.WriteLine($"A soma de 1 + 1 = {1 + 1}");
+ }
+ }
+}
diff --git a/CursoCSharp/CursoCSharp/Fundamentos/LendoDados.cs b/CursoCSharp/CursoCSharp/Fundamentos/LendoDados.cs
new file mode 100644
index 0000000..f807677
--- /dev/null
+++ b/CursoCSharp/CursoCSharp/Fundamentos/LendoDados.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Globalization;
+
+namespace CursoCSharp.Fundamentos
+{
+ class LendoDados
+ {
+ public static void Executar() {
+ Console.Write("Qual o seu nome? ");
+ string nome = Console.ReadLine();
+
+ Console.Write("Qual é a sua idade? ");
+ int idade = int.Parse(Console.ReadLine());
+
+ Console.Write("Qual é o seu salário? ");
+ double salario = double.Parse(Console.ReadLine(),
+ CultureInfo.InvariantCulture);
+
+ Console.WriteLine($"{nome} tem {idade} anos e recebe um salário de R${salario}");
+ }
+ }
+}
diff --git a/CursoCSharp/CursoCSharp/Fundamentos/NotacaoPonto.cs b/CursoCSharp/CursoCSharp/Fundamentos/NotacaoPonto.cs
new file mode 100644
index 0000000..56e4477
--- /dev/null
+++ b/CursoCSharp/CursoCSharp/Fundamentos/NotacaoPonto.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace CursoCSharp.Fundamentos
+{
+ class NotacaoPonto
+ {
+ public static void Executar() {
+ var saudacao = "olá".ToUpper().Insert(3, " World!")
+ .Replace("World!", "Mundo!");
+ Console.WriteLine(saudacao);
+
+ Console.WriteLine("Teste".Length);
+
+ string valorImportante = null;
+ Console.WriteLine(valorImportante?.Length);
+ }
+ }
+}
diff --git a/CursoCSharp/CursoCSharp/Fundamentos/OperadorTernario.cs b/CursoCSharp/CursoCSharp/Fundamentos/OperadorTernario.cs
new file mode 100644
index 0000000..7dae311
--- /dev/null
+++ b/CursoCSharp/CursoCSharp/Fundamentos/OperadorTernario.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace CursoCSharp.Fundamentos
+{
+ class OperadorTernario
+ {
+ public static void Executar() {
+ var nota = 7.0;
+ bool bomComportamento = false;
+ string resultado = nota >= 7.0 && bomComportamento
+ ? "Aprovado" : "Reprovado";
+
+ Console.WriteLine(resultado);
+ }
+ }
+}
diff --git a/CursoCSharp/CursoCSharp/Fundamentos/OperadoresAritmeticos.cs b/CursoCSharp/CursoCSharp/Fundamentos/OperadoresAritmeticos.cs
new file mode 100644
index 0000000..a90d138
--- /dev/null
+++ b/CursoCSharp/CursoCSharp/Fundamentos/OperadoresAritmeticos.cs
@@ -0,0 +1,37 @@
+using System;
+using System.Globalization;
+
+namespace CursoCSharp.Fundamentos
+{
+ class OperadoresAritmeticos
+ {
+ public static void Executar() {
+ // Preço Desconto
+ var preco = 1000.0;
+ var imposto = 355;
+ var desconto = 0.1;
+
+ double total = preco + imposto;
+ var totalComDesconto = total - (total * desconto);
+
+ CultureInfo culturaBr = new CultureInfo("pt-BR");
+ Console.WriteLine($"O total do Preço + Imposto é de {total.ToString("C", culturaBr)}");
+ Console.WriteLine($"Com o Desconto de {desconto.ToString("P0")}");
+ Console.WriteLine("O preço final é {0}", totalComDesconto.ToString("C", culturaBr));
+
+ // IMC
+ double peso = 93.3;
+ double altura = 1.88;
+ double imc = peso / Math.Pow(altura, 2);
+
+ Console.WriteLine($"O seu IMC é {imc.ToString("F1")}.");
+
+ // Número Par/Impar
+ int par = 24;
+ int impar = 55;
+
+ Console.WriteLine("{0}/2 tem resto {1}", par, par % 2);
+ Console.WriteLine("{0}/2 tem resto {1}", impar, impar % 2);
+ }
+ }
+}
diff --git a/CursoCSharp/CursoCSharp/Fundamentos/OperadoresAtribuicao.cs b/CursoCSharp/CursoCSharp/Fundamentos/OperadoresAtribuicao.cs
new file mode 100644
index 0000000..ed2df89
--- /dev/null
+++ b/CursoCSharp/CursoCSharp/Fundamentos/OperadoresAtribuicao.cs
@@ -0,0 +1,37 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace CursoCSharp.Fundamentos
+{
+ class OperadoresAtribuicao
+ {
+ public static void Executar() {
+ var num1 = 3;
+ num1 = 7;
+ num1 += 10;
+ num1 -= 3;
+ num1 *= 5;
+ num1 /= 2;
+
+ Console.WriteLine(num1);
+
+ int a = 1;
+ int b = a;
+
+ a++;
+ b--;
+
+ Console.WriteLine($"{a} {b}");
+
+ // Não se preocupe com essa parte do código
+ dynamic c = new System.Dynamic.ExpandoObject();
+ c.nome = "João";
+
+ dynamic d = c;
+ d.nome = "Maria";
+
+ Console.WriteLine(c.nome);
+ }
+ }
+}
diff --git a/CursoCSharp/CursoCSharp/Fundamentos/OperadoresLogicos.cs b/CursoCSharp/CursoCSharp/Fundamentos/OperadoresLogicos.cs
new file mode 100644
index 0000000..ea025f7
--- /dev/null
+++ b/CursoCSharp/CursoCSharp/Fundamentos/OperadoresLogicos.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace CursoCSharp.Fundamentos
+{
+ class OperadoresLogicos
+ {
+ public static void Executar() {
+ var executouTrabalho1 = true;
+ var executouTrabalho2 = false;
+
+ bool comprouTv50 = executouTrabalho1 && executouTrabalho2;
+ Console.WriteLine("Comprou a Tv 50? {0}", comprouTv50);
+
+ var comprouSorvete = executouTrabalho1 || executouTrabalho2;
+ Console.WriteLine("Comprou o sorvete? {0}", comprouSorvete);
+
+ var comprouTv32 = executouTrabalho1 ^ executouTrabalho2;
+ Console.WriteLine("Comprou a Tv 32? {0}", comprouTv32);
+
+ Console.WriteLine("Mais saudável? {0}", !comprouSorvete);
+ }
+ }
+}
diff --git a/CursoCSharp/CursoCSharp/Fundamentos/OperadoresRelacionais.cs b/CursoCSharp/CursoCSharp/Fundamentos/OperadoresRelacionais.cs
new file mode 100644
index 0000000..f04f4ff
--- /dev/null
+++ b/CursoCSharp/CursoCSharp/Fundamentos/OperadoresRelacionais.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace CursoCSharp.Fundamentos
+{
+ class OperadoresRelacionais
+ {
+ public static void Executar() {
+ // double nota = 6.0;
+ Console.Write("Digite a nota: ");
+ double.TryParse(Console.ReadLine(), out double nota);
+ double notaDeCorte = 7.0;
+
+ Console.WriteLine("Nota inválida? {0}", nota > 10.0);
+ Console.WriteLine("Nota inválida? {0}", nota < 0.0);
+ Console.WriteLine("Perfeito? {0}", nota == 10.0);
+ Console.WriteLine("Tem como melhorar? {0}", nota != 10.0);
+ Console.WriteLine("Passou por média? {0}", nota >= notaDeCorte);
+ Console.WriteLine("Recuperação? {0}", nota < notaDeCorte);
+ Console.WriteLine("Reprovado? {0}", nota <= 3.0);
+ }
+ }
+}
diff --git a/CursoCSharp/CursoCSharp/Fundamentos/OperadoresUnarios.cs b/CursoCSharp/CursoCSharp/Fundamentos/OperadoresUnarios.cs
new file mode 100644
index 0000000..d2c8e44
--- /dev/null
+++ b/CursoCSharp/CursoCSharp/Fundamentos/OperadoresUnarios.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace CursoCSharp.Fundamentos
+{
+ class OperadoresUnarios
+ {
+ public static void Executar() {
+ var valorNegativo = -5;
+ var numero1 = 2;
+ var numero2 = 3;
+ var booleano = true;
+
+ Console.WriteLine(-valorNegativo);
+ Console.WriteLine(!booleano);
+
+ numero1++;
+ Console.WriteLine(numero1);
+
+ --numero1;
+ Console.WriteLine(numero1);
+
+ Console.WriteLine(numero1++ == --numero2);
+ Console.WriteLine($"{numero1} {numero2}");
+ }
+ }
+}
diff --git a/CursoCSharp/CursoCSharp/Fundamentos/PrimeiroPrograma.cs b/CursoCSharp/CursoCSharp/Fundamentos/PrimeiroPrograma.cs
new file mode 100644
index 0000000..8ff2615
--- /dev/null
+++ b/CursoCSharp/CursoCSharp/Fundamentos/PrimeiroPrograma.cs
@@ -0,0 +1,11 @@
+using System;
+
+namespace CursoCSharp.Fundamentos {
+ class PrimeiroPrograma {
+ public static void Executar() {
+ Console.Write("Primeiro ");
+ Console.WriteLine("Programa");
+ Console.WriteLine("Terminou!");
+ }
+ }
+}
diff --git a/CursoCSharp/CursoCSharp/Fundamentos/VariaveisEConstantes.cs b/CursoCSharp/CursoCSharp/Fundamentos/VariaveisEConstantes.cs
new file mode 100644
index 0000000..454820c
--- /dev/null
+++ b/CursoCSharp/CursoCSharp/Fundamentos/VariaveisEConstantes.cs
@@ -0,0 +1,65 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace CursoCSharp.Fundamentos
+{
+ class VariaveisEConstantes
+ {
+ public static void Executar() {
+ // área da circunferência
+ double raio = 4.5;
+ const double PI = 3.14;
+
+ // modificando o valor da variável
+ raio = 5.5;
+ //PI = 3.1415; -> mostra que não é possível alterar uma constante
+
+ double area = PI * raio * raio;
+ Console.WriteLine(area);
+ Console.WriteLine("A área da da circunferência é: " + area);
+
+ // Tipo internos
+
+ bool estaChovendo = true;
+ Console.WriteLine("Está chovendo? " + estaChovendo);
+
+ //byte idade = 41;
+ byte idade = byte.MaxValue;
+ Console.WriteLine("Idade " + idade);
+
+ sbyte saldoDeGols = sbyte.MinValue;
+ Console.WriteLine("Saldo de Gols " + saldoDeGols);
+
+ short salario = short.MaxValue;
+ Console.WriteLine("Salario " + salario);
+
+ int menorValor = int.MinValue; // Mais usado dos inteiros!
+ Console.WriteLine("Menor Int " + menorValor);
+
+ uint populacaoBrasileira = 207_600_000; // podemos usar o "_" como separador universal
+ Console.WriteLine("População 'fake' brasileira é " + populacaoBrasileira);
+
+ long menorValorLong = long.MinValue;
+ Console.WriteLine("Menor long " + menorValorLong);
+
+ ulong populacaoMundial = 7_600_000_000;
+ Console.WriteLine("População Mundial " + populacaoMundial);
+
+ float precoComputador = 1299.99F;
+ Console.WriteLine("Preço Computador " + precoComputador);
+
+ double valorDeMercadoDaApple = 1_000_000_000_000.00; // Mais usado dos reais!
+ Console.WriteLine("Valor de mercado da Apple " + valorDeMercadoDaApple);
+
+ decimal distanciaEntreEstrelas = decimal.MaxValue;
+ Console.WriteLine("Distância entre as estrelas " + distanciaEntreEstrelas);
+
+ char letra = 'b';
+ Console.WriteLine("Letra " + letra);
+
+ string texto = "Seja bem vindo ao Curso de C#!";
+ Console.WriteLine(texto);
+ }
+ }
+}
diff --git a/CursoCSharp/CursoCSharp/Program.cs b/CursoCSharp/CursoCSharp/Program.cs
new file mode 100644
index 0000000..c716bf1
--- /dev/null
+++ b/CursoCSharp/CursoCSharp/Program.cs
@@ -0,0 +1,42 @@
+using System;
+using System.Collections.Generic;
+
+using CursoCSharp.Fundamentos;
+using CursoCSharp.EstruturasDeControle;
+
+namespace CursoCSharp
+{
+ class Program
+ {
+ static void Main(string[] args) {
+ var central = new CentralDeExercicios(new Dictionary() {
+ // Fundamentos
+ {"Primeiro Programa - Fundamentos", PrimeiroPrograma.Executar},
+ {"Comentários - Fundamentos", Comentarios.Executar},
+ {"Variáveis e Constantes - Fundamentos", VariaveisEConstantes.Executar},
+ {"Inferências - Fundamentos", Inferencia.Executar},
+ {"Interpolação de Strings - Fundamentos", Interpolacao.Executar},
+ {"Notação Ponto - Fundamentos", NotacaoPonto.Executar},
+ {"Lendo Dados - Fundamentos", LendoDados.Executar},
+ {"Formatando Número - Fundamentos", FormatandoNumero.Executar},
+ {"Conversões - Fundamentos", Conversoes.Executar},
+ {"Operadores Aritméticos - Fundamentos", OperadoresAritmeticos.Executar},
+ {"Operadores Relacionais - Fundamentos", OperadoresRelacionais.Executar},
+ {"Operadores Lógicos - Fundamentos", OperadoresLogicos.Executar},
+ {"Operadores Atribuição - Fundamentos", OperadoresAtribuicao.Executar},
+ {"Operadores Unários - Fundamentos", OperadoresUnarios.Executar},
+ {"Operador Ternário - Fundamentos", OperadorTernario.Executar},
+
+ // Estruturas de Controle
+ {"Estrutura If - Estruturas de Controle", EstruturaIf.Executar},
+ {"Estrutura If/Else - Estruturas de Controle", EstruturaIfElse.Executar},
+ {"Estrutura If/Else/If - Estruturas de Controle", EstruturaIfElseIf.Executar},
+ {"Estrutura Switch - Estruturas de Controle", EstruturaSwitch.Executar},
+ {"Estrutura While - Estruturas de Controle", EstruturaWhile.Executar},
+ {"Estrutura Do While - Estruturas de Controle", EstruturaDoWhile.Executar},
+ });
+
+ central.SelecionarEExecutar();
+ }
+ }
+}
\ No newline at end of file