Tutorial - Portugol/Algoritimo - Parte 2

O que é algoritimo?
Algoritimo é um conjunto de instruções executadas em sequência até determinada condição. Digamos assim, para nós humanos é muito fácil mandar alguém abrir uma porta. A pessoa vai e abre, mas imagine se você fosse pedir para um computador/robô abrir uma porta. O que aconteceria? Para o computador/robô conseguir abrir a porta você teria que colocar uma série de comandos em sequência para que ele executasse um por um até abrir a porta.
Ex: 1o - Levante, 2o Vire-se 30 graus para a direita, 3o Dê 5 passos para frente, 4o levante o braço 25 cm,5o coloque a mão na maçaneta, 6o Gire a maçaneta 90 graus no sentido anti horário, 7o Puxe a porta.

A maquina precisa receber todos os passos de um processo para conseguir executa-lo, como se fosse uma receita. Isso é algoritimo.

Regras para a escrita de algoritmos legíveis.

1-
Um algoritimo começa com a palavra inicio e termina com a palavra fim. Logo após a palavra inicio vem a declaração de variáveis. Declarar uma variável significa indicar o seu nome e tipo.

2-
Os comandos do algoritimo devem ser escritos em letra minúscula e sublinhados. Ao final de cada comando deverá ser colocado um ';'.

3-
Um algoritimo é escrito de forma tabulada.

4-
Siga as regras para criação de dos nomes das variáveis conforme postado anteriormente.

5-
Procure incorporar comentários para descrever partes importantes ou complexas de seu algoritimo. Os comentários são escritos entre chaves, não tem valor lógico, sendo apenas valor visual.
Ex: {Isto é um comentário}
Isto ajuda na documentação e clareza do algoritimo.

Tutorial Portugal - Variáveis - Parte 1

Mas o que são variáveis?
Variáveis como o próprio nome diz, são as partes de um algoritimo que
vão variar. Elas podem servir para armazenar resultados de operações, armazenar
a entrada de dados do usuário e por ai vai. De um modo geral variáveis servem para armazenar na memória RAM de um computador
dados que posteriormente serão processados.

Tipos de variáveis
A principio, vou mostrar dois tipos de variáveis,
as
Numéricas(inteiro: 5, -5, 4, 3, 2... real: 8.53, 4.37. -2.9...) e as

Alfanuméricas (caracter: "O que é Glugol?","Este é um texto".... lógico: verdadeiro ou falso 0 ou 1).

Cada tipo de variavel é capaz de armazenar um tipo de dado. O tipo inteiro pode armazenar números inteiros. O tipo real pode armazenar números reais. O tipo caracter pode armazenar letras e frases e qualquer caracter, o conteudo dessa variavel é tratado como texto, não possui nenhum valor numérico. Lógico é capaz de armazenar condições verdadeiras ou falsas.

Nomeando variáveis
Existem vários tipos de "portugol", vou citar as regras de nomeação de variáveis de um dos
tipos mais comuns.

Regras para a criação de variáveis:

1 - O nome de uma variável deve começar com uma letra. A partir do segundo carácter em diante poderá ser letras ou números("_" é considerado como uma letra)

2 - O nome de uma variável deve ser escrito em letras MAIÚSCULAS sem sublinhar.

3 - Procure criar o nome da variável simbolizando o conteúdo que ela irá armazenar. ( Isso ajuda na clareza e documentação do algoritimo).

Declarando variáveis
Para declarar uma variavel em portugol é bem simples, primeiramente você descreve o tipo da variável sublinhado e em letras minúsculas, depois os nomes das variáveis.
Ex:
inteiro: DIAS, FALTAS;
real: FALTAS, MEDIA, PESO, ALTURA;
caracter: NOME, RUA;


Em breve a Parte 2
Qualquer dúvida mande um email ou um comentário.

Hierarquia de resolução de operações

Vou postar aqui a hierarquia de resolução de operações matemáticas no computador.
Ela sera util para o tutorial de "portugol" e algoritimo que estou montando para vocês.

Primeiramente temos que entender que o computador realiza alguns calculos
matemáticos dando preferência para alguns sinais.

Para começar o computador realiza tudo que se encontra dentro dos (parênteses)
depois vem as seguintes funções matemáticas:

1o (cos(), sen(), log(), etc...).
2o Potenciação. (^)
3o Multiplicação e divisão. (* e /)
4o Soma e subtraçao. (+ e -)


Exemplos:

5 x (5 + 4) x cos(2) + 4(6/2 + 3)


Primeiro será realizado o que está dentro dos parênteses
(5 + 4) e (6/2 + 3), no caso de (6/2 + 3) a divisão tem preferência logo será
calculada primeiro. Em seguida será calculao o cos(2). Depois as multiplicações
e por ultimo as somas e divisões.


Qualquer duvida mande um email ou um comentario.
Em breve tutoriais de Portugol e Algoritimo.

Tabela ASCII

Pessoal, pra quem tem dificuldades com a tabela ASCII, vai ai um codigo em C que irá imprimir os 256 caracteres da tabela ASC.


#include < stdio.h>

#include < conio.h>

int main()
{
int i;
i = 0;

printf ("TABELA ASCII");
while (i < 256)
{
printf ("%d - %c", i, i);
i++;
}

getch();
}





Pra quem não gosta de usar C, a lógica é simples.
Fassa um loop que imprima caracteres de 0 a 255.

Qualquer duvida mande-nos um email.

Projeto Binário

Bom, como nosso primeiro trabalho, queríamos um programa que convertesse qualquer número decimal para binário. Depois pensamos, que de acordo com a lógica de conversão de bases era a mesma, expandimos nosso conversor para as demais bases, de binário ate hexadecimal. Utilizamos a linguagem C, e abaixo vai o código fonte da lógica em si.



//Inclusao de bibiliotecas

#include < stdio.h>
#include < conio.h>
#include < math.h>
#include < iostream>

//Declaracao de funcoes

void calculo(long int N,long int base);

//MAIN

int main()
{

//Declaracao de variaveis locais

long int B,num,E,aux,i,bin[100],base;

//Aqui você coloca os comando de entrada para o usuario.

calculo(num, base);

}

void calculo(long int num1,long int base1)
{

long int aux; int B,E,i;
long int bin[100];
aux = num1;
char conve[100];

//Inicializacao de variaveis

B = E = i = 0;

//Contando numero de posicoes do vetor

while (aux != 0)
{

aux = aux/base1;
i++;

}
//Limpando vetor

while (B<100)
{

bin[B++] = 0;

}
//Divisao por 2 e armazenamento do resto

while (E'<'i)
{

bin[E] = num1%base1;
num1 = num1/base1;
switch (bin[E])
{


case 0: conve[E]= '0';
break;
case 1: conve[E]= '1';
break;
case 2: conve[E]= '2';
break;
case 3: conve[E]= '3';
break;
case 4: conve[E]= '4';
break;
case 5: conve[E]= '5';
break;
case 6: conve[E]= '6';
break;
case 7: conve[E]= '7';
break;
case 8: conve[E]= '8';
break;
case 9: conve[E]= '9';
break;
case 10: conve[E]= 'A';
break;
case 11: conve[E]= 'B';
break;
case 12: conve[E]= 'C';
break;
case 13: conve[E]= 'D';
break;
case 14: conve[E]= 'E';
break;
case 15: conve[E]= 'F';
break;

}
E++;

}


}



Eu sei que existem lógicas melhores, mas como estamos aprendendo fizemos assim.
Descobrimos depois que %O imprime o valor em octal e que %x ou %X imprime o valor em
hexadecimal, porem nossa lógica converte para bases intermediarias também.