An open API service indexing awesome lists of open source software.

https://github.com/juletopi/algoritmos_e_logica_de_programacao

👩‍💻 • Repositório back-end com os conteúdos de Algoritmos e Lógica de Programação, utilizando o Visual Studio e a linguagem CSharp como ferramentas de aprendizado.
https://github.com/juletopi/algoritmos_e_logica_de_programacao

algorithms algoritmos arrays back-end backend csharp for-while for-while-loops functions if-else if-else-statements logica-de-programacao portugues portuguese programing-logic switch-case switch-case-statements visual-studio

Last synced: 11 months ago
JSON representation

👩‍💻 • Repositório back-end com os conteúdos de Algoritmos e Lógica de Programação, utilizando o Visual Studio e a linguagem CSharp como ferramentas de aprendizado.

Awesome Lists containing this project

README

          


Licence-badge




Algorithms-pic

Algoritmos e Lógica de Programação 👩‍💻




• Este é um repositório com o conteúdo das aulas de Algoritmos e Lógica de Programação, \
ministradas pelo professor [**Clayton Ferraz Andrade**](https://www.linkedin.com/in/claytonferraz/), utilizando o **Visual Studio** e a \
linguagem **CSharp** como ferramentas de aprendizado.



VisualStudioIDE-badge


CSharpLanguage-badge




NETFramework-badge

Sumário 🧾



Professor   |  
Conceitos Aprendidos 1   |  
Conceitos Aprendidos 2


Conceitos Aprendidos 3   |  
Conceitos Aprendidos 4   |  
Conceitos Aprendidos 5

Conceitos Aprendidos 6   |  
Conceitos Aprendidos 7   |  
Autor






[![Readme Quotes](https://quotes-github-readme.vercel.app/api?type=horizontal&theme=merko&quote=Medir%20o%20progresso%20da%20programação%20por%20linhas%20de%20código%20é%20como%20medir%20o%20progresso%20da%20construção%20de%20aeronaves%20em%20termos%20de%20peso.&author=Bill%20Gates)](https://github.com/piyushsuthar/github-readme-quotes)

## 👨‍🏫 Professor:


ClaytonFerraz-pic

**Clayton Ferraz Andrade - Analista de Sistemas | Professor de Curso Técnico e Superior | Coordenador de Curso Superior de Tecnologia em ADS** \
[**IFRO Campus Ji-Paraná**](https://portal.ifro.edu.br/ji-parana) • Atuando desde Março de 2014 \
Linguagens & Tecnologias: `JavaScript` • `HTML` • `PHP` • `C#` • `GraphQL` • `E outros...` \
Contato: **[clayton.andrade@ifro.edu.br](mailto:clayton.andrade@ifro.edu.br)**




## 📚 Conceitos Aprendidos:

### 1. Comentários, declaração de variáveis e comandos do console

> [!NOTE]\
> *Retirado da aula de "[Calculadora_CSharp](https://github.com/juletopi/Algoritmos_e_Logica_de_Programacao/blob/main/Calculadora_CSharp/Program.cs)"*

Nesta aula foram aprendidos:
- Conceitos básicos para o uso do Visual Studio
- Utilização do Visual Studio para conceitos matemáticos
- Criação de algoritmos matemáticos usando lógica de programação e comandos de console



```c#
// Na criação de um "algoritmo", podemos seguir este sete passos ↴
// 1.NOME, 2.INÍCIO, 3.DADOS/VARIÁVEIS, 4.ENTRADA, 5.PROCESSAMENTO, 6.SAÍDA, 7.FIM

// 1.NOME:
namespace Calculadora_CSharp
{
internal class Program
{
static void Main(string[] args)
{
// 2.INÍCIO
// Faça um algorítimo que receba dois valores e mostre
// a soma desses dois valores.

// 3.DADOS/VARIÁVEIS
double n1 = 0;
double n2 = 0;
double soma = 0;

// 4.ENTRADA
Console.WriteLine("Digite o primeiro número:");
n1 = double.Parse(Console.ReadLine());
Console.WriteLine("\r\nDigite o segundo número:");
n2 = double.Parse(Console.ReadLine());

// 5.PROCESSAMENTO
soma = n1 + n2;

// 6.SAÍDA
Console.WriteLine("\r\nOs números somados são: " +soma);
Console.ReadKey();
}
}
}
// 7.FIM :)
```


Voltar para o início ↺



### 2. Conceitos de "If/Else"

> [!NOTE]\
> *Retirado da aula de "[Saque_Bancario_CSharp](https://github.com/juletopi/Algoritmos_e_Logica_de_Programacao/blob/main/Saque_Bancario_CSharp/Program.cs)"*



Nesta aula foram aprendidos:
- Utilização do comando "If/Else"
- Possibilidades de instrução

```c#
{
// "If/Else" é um comando que existe para executar uma de duas possibilidades
// de instrução. No caso de se a expressão original "if" ser avaliada como
// FALSE, a expressão secundária "else" será executada.

// Exemplo: Saque bancário baseado no saldo informado ↴

double saldo = 0;
double saque = 0;

Console.WriteLine("Informe seu saldo (Somente números):");
saldo = double.Parse(Console.ReadLine());
Console.WriteLine("\r\nDigite o quanto quer sacar (Somente números):");
saque = double.Parse(Console.ReadLine());

if (saque <= saldo)
{
saldo = (saldo - saque);
Console.WriteLine("\r\nSaque efetudado com sucesso! O seu saldo agora, é de: R$" +saldo);
}
else
{
Console.WriteLine("\r\nSaldo insuficiente, o saque não foi efetuado! Seu saldo é de: R$" +saldo);
}
Console.ReadKey();
}
```


Voltar para o início ↺



### 3. Conceitos de "Switch/Case"

> [!NOTE]\
> *Retirado da aula de "[Escolha_de_Cursos_CSharp](https://github.com/juletopi/Algoritmos_e_Logica_de_Programacao/blob/main/Escolha_de_Cursos_CSharp/Program.cs)"*



Nesta aula foram aprendidos:
- Utilização do comando "Switch/Case"
- Estrutura de múltiplas escolhas

```c#
{
// Em alguma situações você pode usar o "If/Else" ou o "Switch/Case" para resolver
// o mesmo problema. Apesar de serem comandos parecidos, funcionam de formas diferentes.
// Normalmente se usa o comando do "Switch/Case" quando há diversas variáveis,
// executando uma peça diferente do código dependendo de qual valor ele se encaixar.

// Exemplo: Tabela de escolha de cursos ↴

string curso, string turma;
int opc_curso = 0;

Console.WriteLine("O que você deseja cursar?");
Console.WriteLine("\r\nDigite 1 para o curso de ADS");
Console.WriteLine("Digite 2 para o curso de Química");
Console.WriteLine("Digite 3 para o curso de Florestas");
opc_curso = Convert.ToInt32(Console.ReadLine());

switch (opc_curso)
{
case 1:
curso = "ADS";
break;
case 2:
curso = "Química";
break;
case 3:
curso = "Florestas";
break;
default:
Console.WriteLine("\r\nVocê digitou alguma informação errada!!!");
curso = "Sem curso definido.";
break;
}
Console.WriteLine("\r\nO seu curso escolhido é: " +curso);
Console.ReadKey();
}
```


Voltar para o início ↺



### 4. Conceitos de "For/While"

> [!NOTE]\
> *Retirado da aula de "[Tabuada_CSharp](https://github.com/juletopi/Algoritmos_e_Logica_de_Programacao/blob/main/Tabuada_CSharp/Program.cs)"*



Nesta aula foram aprendidos:
- Conceitos de "For/While"
- Utilização do comando "For"
- Estrutura de repetição

```c#
{
// As estruturas de repetição são utilizadas para processar uma coleção
// de dados, que precisam ser processados por um mesmo bloco de código.
// O FOR é mais usado para loops definidos e WHILE para loops infinitos.

// Exemplo usando o FOR: Tabuada de um número até onde o usuário quiser ↴

int i, n, m;
int resultado;

Console.WriteLine("Defina um número para exibir a tabuada dele:");
n = int.Parse(Console.ReadLine());
Console.WriteLine("\r\nQuantas vezes?");
m = int.Parse(Console.ReadLine());
Console.WriteLine("");

for (i = 1; i <= m; i++)
{
resultado = n * i;
Console.WriteLine(n + " x " + i + " = " + resultado);
}
Console.ReadKey();
}
```


Voltar para o início ↺




|

⚠️ AVISO

|
|:---------------------------------|
|


A partir deste ponto, se inicia:
**"Algoritmos e Lógica de Programação II"** |



### 5. Conceitos e Métodos de Array/Funções

> [!NOTE]\
> *Retirado da aula de "[Function_Arrays_Fixos_CSharp](https://github.com/juletopi/Algoritmos_e_Logica_de_Programacao/blob/main/Function_Arrays_Fixos_CSharp/Program.cs)"*



Nesta aula foram aprendidos:
- Conceito sobre funções/arrays
- Criação de funções/arrays
- Chamada mais fixa de funções dentro do algoritmo

```c#
// - Vetores/Arrays
// Vetores, também conhecidos como arrays unidimensionais, são estruturas de dados que armazenam um
// conjunto de elementos do mesmo tipo em uma sequência contígua de memória. Os elementos são acessados
// por meio de um índice inteiro, que representa a posição do elemento no vetor.

int[] valores = new int[3];
string[] nomes = new string[3];

for (int i = 0; i < valores.Length; i++) // <-- O "for" é usado para inserir os valores dinamicamente.
{
Console.WriteLine("Digite valores: ");
valores[i] = Convert.ToInt32(Console.ReadLine());
}

for (int i = 0; i < valores.Length; i++)
{
Console.WriteLine("Digite nomes: ");
nomes[i] = Console.ReadLine();
}

Console.WriteLine("O 2º valor inserido é: " + valores[2]); // <-- Aqui é imprimido o 2º valor inserido no índice.
Console.WriteLine("O 3º nome inserido é: " + nomes[3]); // <-- Aqui é imprimido o 3º valor inserido no índice.
Console.WriteLine("A quantidade de nomes insiridos é: " + nomes[Length]); // <-- Ao usar o "Lenght", é imprimido o tamanho do vetor.

for (int i = 0; i < valores.Length; i++)
{
Console.WriteLine("Valor inserido: " + valores[2]); // <-- Aqui é imprimido todos os valores inseridos no índice.
}

int soma = valores[0] + valores[1] + valores[2]++;
Console.WriteLine("Resultado da soma dos valores inseridos: " + soma); // <-- Somando os valores inseridos em cada índice.
```


Voltar para o início ↺



### 6. Conceitos e Métodos de Array/Funções (Avançados)

> [!NOTE]\
> *Retirado da aula de "[Function_Arrays_Dinamicos](https://github.com/juletopi/Algoritmos_e_Logica_de_Programacao/blob/main/Function_Arrays_Dinamicos/Program.cs)"*



Nesta aula foram aprendidos:
- Conceitos mais avançados sobre funções/arrays
- Chamada mais dinâmica de funções dentro do algoritmo

```c#
// Exemplo feito em aula (Cadastro de notas de alunos)

int x = 0;

Console.WriteLine("Digite quantos alunos deseja cadastrar: "); // <-- Pedindo para o usuário especificar
x = int.Parse(Console.ReadLine()); // quantos cadastros deseja fazer

string[] nomeAluno;
double[] nota1 = new double[x];
double[] nota2 = new double[x];
double[] media = new double[x];
nomeAluno = new string[x];

for (int i = 0; i < nomeAluno.Length; i++) // <-- É aplicado o "Lenght" somente a variáveis do tipo vetor/array
{
Console.WriteLine("\r\nDigite o nome do aluno: ");
nomeAluno[i] = Console.ReadLine();

Console.WriteLine("Digite a 1º nota do aluno: ");
nota1[i] = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Digite a 2º nota do aluno: ");
nota2[i] = Convert.ToDouble(Console.ReadLine());

media[i] = (nota1[i] + nota2[i]) / 2;
}

Console.Clear();

for (int i = 0; i < nomeAluno.Length; i++) // <-- Criando um efeito de "Calculando...", exibindo a mensagem
{ // "Calculando notas", seguida por 50 pontos impressos em uma
Console.Write("\r\n Calculando notas"); // linha, com um atraso de 30 milissegundos entre cada ponto
for (int j = 0; j < 50; j++)
{
System.Threading.Thread.Sleep(30);
Console.Write(".");
}

Console.WriteLine();
Console.WriteLine("\r\n-----------------------------------------");

Console.WriteLine(" As notas do aluno " + nomeAluno[i] + " são: ");
Console.WriteLine(" Nota 1: " + nota1[i] + "pts");
Console.WriteLine(" Nota 2: " + nota2[i] + "pts");
Console.WriteLine("\r\n A sua média é: " + media[i] + "pts");

if (media[i] >= 60)
{
Console.WriteLine("\r\n Está APROVADO!");
}
else
{
Console.WriteLine("\r\n Está REPROVADO!");
}

Console.WriteLine("\r\n Pressione ENTER para prosseguir...");

Console.WriteLine("-----------------------------------------");

Console.ReadKey();
}
```


Voltar para o início ↺



### 7. Conceitos e Métodos de Matrizes

> [!NOTE]\
> *Retirado da aula de "[Function_Matrizes](https://github.com/juletopi/Algoritmos_e_Logica_de_Programacao/blob/main/Function_Matrizes/Program.cs)"*



Nesta aula foram aprendidos:
- Conceitos sobre arrays/vetores multidimensionais (matrizes)
- Criação de matrizes

```c#
// Exemplo feito em aula (Cadastro de clientes, produtos e preços)

// Matrizes são usadas para organizar e manipular dados de maneira eficiente em
// uma estrutura tabular. Elas permitem armazenar informações relacionadas em
// um formato de grade, o que facilita o acesso rápido a elementos específicos.

string[] nomeCliente;
int[] quantProd;
double[] precoProdTotal;
double[][] precoProd;
string[][] nomeProd;

Console.WriteLine("Quantos clientes deseja cadastrar? ");
int quant = Convert.ToInt32(Console.ReadLine());

nomeCliente = new string[quant];
quantProd = new int[quant];
precoProd = new double[quant][];
nomeProd = new string[quant][];

for (int i = 0; i < quant; i++)
{
Console.WriteLine("\r\nDigite o nome do Cliente:");
nomeCliente[i] = Console.ReadLine();
Console.Write("Digite quantos produtos este cliente quer comprar: ");
quantProd[i] = Convert.ToInt32(Console.ReadLine());

precoProd[i] = new double[quantProd[i]];
nomeProd[i] = new string[quantProd[i]];

for (int j = 0; j < quantProd[i]; j++)
{
Console.Write("\r\nDigite o NOME do produto do cliente: " + nomeCliente[i]);
nomeProd[i][j] = Console.ReadLine();
Console.Write("Digite o PREÇO do produto do cliente: " + nomeCliente[i]);
precoProd[i][j] = Convert.ToDouble(Console.ReadLine());
}
}

// Mostrar os dados

Console.Write("Carregando.");
for (int i = 0; i < 60; i++)
{
System.Threading.Thread.Sleep(30);
Console.Write(".");
}

Console.WriteLine("");
for (int i = 0; i < quant; i++)
{
Console.WriteLine("Cliente: " + nomeCliente[i]);
Console.WriteLine("Este cliente comprou " + quantProd[i] + " produtos.");

for (int j = 0; j < quantProd[i]; j++)
{
Console.WriteLine("\r\nO " + (j + 1) + "º produto é: " + nomeProd[i][j]);
Console.WriteLine("O " + (j + 1) + "º produto tem o valor de: " + precoProd[i][j]);
}
}

// Calcular o valor total das compras aqui, se necessário
```


Voltar para o início ↺


## 👤 Autor





JuletopiAvatar-pic


Júlio Cézar | Juletopi









Voltar para o início ↺


----


Feito com 💚 e ☕ por Juletopi.