Escolar Documentos
Profissional Documentos
Cultura Documentos
O SENHOR DOS
ALGORITMOS
Domine vrias linguagens de programao
Sumrio
Introduo ................................................................................................................................ 4
Como Usar este e-book? ........................................................................................................ 4
Linguagens Usadas .................................................................................................................. 8
Fundamentos ............................................................................................................................ 9
Estrutura Bsica .................................................................................................................................. 9
Criao de Variveis ...................................................................................................................... 10
Criao de Variveis do Tipo Inteiro ........................................................................................... 10
Criao de Variveis do Tipo Real .............................................................................................. 11
Criao de Variveis do Tipo Lgico .......................................................................................... 11
Criao de Variveis do Tipo Texto ............................................................................................ 12
Criao de Variveis do Tipo Vetor ............................................................................................ 12
Criao de Variveis do Tipo Matriz ........................................................................................... 13
Literais (Valores) ............................................................................................................................... 14
Literais do Tipo Inteiro .................................................................................................................... 14
Literais do Tipo Real ....................................................................................................................... 14
Literais do Tipo Lgico ................................................................................................................... 15
Literais do Tipo Texto ...................................................................................................................... 15
Estruturas Sequenciais ........................................................................................................... 16
Entrada de Dados ............................................................................................................................ 16
Ler Valor do Tipo Inteiro ................................................................................................................ 16
Ler Valor do Tipo Real ................................................................................................................... 17
Ler Valor do Tipo Lgico ............................................................................................................... 17
Ler Valor do Tipo Texto .................................................................................................................. 18
Ler Valor do Tipo Vetor .................................................................................................................. 18
Ler Valor do Tipo Matriz ................................................................................................................. 19
Sada de Dados................................................................................................................................ 20
Escrever ........................................................................................................................................... 20
Escrever, Pulando Linha ................................................................................................................ 20
Escrever com Parmetros ............................................................................................................. 21
Escrever com Parmetros, Pulando Linha .................................................................................. 21
Limpar Tela ..................................................................................................................................... 22
Operaes ....................................................................................................................................... 23
Operao de Atribuio .............................................................................................................. 23
Operaes com Texto .................................................................................................................. 23
Operaes Aritmticas ................................................................................................................. 24
Operaes com Vetores .............................................................................................................. 25
Operaes com Matrizes ............................................................................................................. 26
Operaes Relacionais ................................................................................................................ 27
Operaes Lgicas ....................................................................................................................... 28
Outras Operaes ......................................................................................................................... 29
Estruturas de Deciso ............................................................................................................ 30
Se-Ento ............................................................................................................................................ 30
Se-Ento-Seno ............................................................................................................................... 31
Se-Ento-Seno Encadeado .......................................................................................................... 32
Escolha-Caso ................................................................................................................................... 33
Estruturas de Repetio......................................................................................................... 35
Enquanto ........................................................................................................................................... 35
Para ................................................................................................................................................... 36
Repita-At ......................................................................................................................................... 37
Faa-Enquanto ................................................................................................................................ 38
Interrupo da Repetio .............................................................................................................. 39
2
Procedimentos ....................................................................................................................... 40
Criao de Procedimento .............................................................................................................. 40
Criao de Funo ......................................................................................................................... 41
Execuo de Procedimento........................................................................................................... 42
Execuo de Funo ...................................................................................................................... 42
Consideraes Finais ............................................................................................................ 43
3
Introduo
Ol! Meu nome Ramon Chiara e este e-book um presente para voc do site Entenda
Programao de um vez por todas. Ele tem por objetivo facilitar a transio do aprendizado
entre linguagens de programao. muito comum, nos cursos universitrios, ter a linguagem
Portugol como sendo a primeira a ser aprendida. Logo aps, aprende-se alguma linguagem
comercial como C# ou Java. Notei, durante os ltimos anos lecionando algoritmos, lgica de
programao e outras disciplinas, que alguns alunos at conseguem desenvolver algoritmos em
fluxograma e/ou Portugol, mas sentem dificuldade na hora de migrar para as linguagens
comerciais. Da, nasceu este e-book como uma forma de ajud-los nessa transio. At porque
voc j deve ter ouvido falar que o importante saber algoritmos, pois aprender uma nova
linguagem uma questo de aprender a sua sintaxe. Eu tambm acredito nisso! O nome deste
e-book vem desta ideia, ou seja, se voc for o Senhor dos Algoritmos, dominar qualquer
linguagem! J
Fundamentos, onde esto as estruturas bsicas dos programas nas diversas linguagens,
bem como a criao de variveis.
Estruturas Sequenciais, de Deciso e de Repetio, onde voc encontra os comandos
de cada uma dessas estruturas.
Funes, onde mostrado a criao bem como a chamada ou execuo das
mesmas.
programa {
funcao inicio() {
inteiro n, fatorial
fatorial = 1
para (inteiro i = 1; i <= n; i = i + 1) {
fatorial = fatorial * i
}
4
Para traduz-lo para Java, basta procurar os comandos equivalentes e ir substituindo linha a
linha. Comeando pela estrutura bsica, iremos ver na tabela correspondente que a estrutura
do Java a que est abaixo, em vermelho, substituindo a estrutura bsica do Portugol (que
voc tambm pode ver na mesma tabela):
import java.util.Scanner;
inteiro n, fatorial
fatorial = 1
para (inteiro i = 1; i <= n; i = i + 1) {
fatorial = fatorial * i
}
Agora, vamos substituir a declarao das variveis. No podemos nos esquecer de colocar o
ponto-e-vrgula no final de comandos Java:
import java.util.Scanner;
int n, fatorial;
fatorial = 1
para (inteiro i = 1; i <= n; i = i + 1) {
fatorial = fatorial * i
}
5
Continuando, traduzimos o comando de impresso na tela:
import java.util.Scanner;
int n, fatorial;
fatorial = 1
para (inteiro i = 1; i <= n; i = i + 1) {
fatorial = fatorial * i
}
import java.util.Scanner;
int n, fatorial;
fatorial = 1
para (inteiro i = 1; i <= n; i = i + 1) {
fatorial = fatorial * i
}
6
Logo em seguida, temos uma operao de atribuio, que em Java a mesma coisa, com
exceo que, de novo, no podemos esquecer de colocar o ponto-e-vrgula no final da linha:
import java.util.Scanner;
int n, fatorial;
fatorial = 1;
para (inteiro i = 1; i <= n; i = i + 1) {
fatorial = fatorial * i
}
Depois, temos o lao do tipo "para" e, tambm, o comando que est dentro dele. Nesse
caso, temos uma operao de multiplicao e uma de atribuio que tambm so iguais nas
duas linguagens:
import java.util.Scanner;
int n, fatorial;
fatorial = 1;
for (int i = 1; i <= n; i = i + 1) {
fatorial = fatorial * i;
}
7
Por ltimo, mais um comando de impresso na tela:
import java.util.Scanner;
int n, fatorial;
fatorial = 1;
for (int i = 1; i <= n; i = i + 1) {
fatorial = fatorial * i;
}
Linguagens Usadas
Na presente verso deste texto, voc encontrar tabelas para a transio entre as seguintes
linguagens:
Fluxograma
Portugol do VisuAlg
Portugol do Portugol Studio
C#
Java
Estarei sempre atualizando este e-book para que ele contemple mais linguagens! Por isso,
importante que voc cadastre o seu e-mail no site Entenda Programao de uma vez por todas.
Assim, quando sair uma verso mais atual ou alguma novidade, eu te mando um e-mail,
combinado? Ento vamos s tabelas!
8
Fundamentos
Estrutura Bsica
Linguagem Comando ou Exemplo Observaes
Fluxograma
Portugol do programa
Portugol Studio {
inclua biblioteca Matematica Essa linha s
funcao inicio() necessria se voc for
{ usar as funes
... potencia ou raiz.
}
}
C# using System;
public class Program
{
public static void Main(string[] args)
{
...
}
}
...
}
}
9
Criao de Variveis
Portugol do var
VisuAlg i: inteiro
Portugol do inteiro i
Portugol Studio
C# sbyte i; O C# possui 8 tipos inteiros.
short i; Normalmente usamos o tipo int ou
int i; long.
long i;
byte i;
ushort i;
uint i;
ulong i;
10
Criao de Variveis do Tipo Real
Linguagem Comando ou Exemplo Observaes
Fluxograma Nas minhas aulas eu no vejo a
necessidade dessa informao no
fluxograma. Mas, alguns autores
usam o smbolo de "dados"
(paralelogramo).
Portugol do var
VisuAlg d: real
Portugol do real d
Portugol Studio
C# float d; O C# possui 3 tipos reais.
double d; Normalmente usamos o tipo double.
decimal d: Quando for para tratar quantias
monetrias, usamos o decimal.
Portugol do var
VisuAlg b: logico
Portugol do logico b
Portugol Studio
C# bool b;
Java boolean b;
11
Criao de Variveis do Tipo Texto
Linguagem Comando ou Exemplo Observaes
Fluxograma Nas minhas aulas eu no vejo a
necessidade dessa informao no
fluxograma. Mas, alguns autores
usam o smbolo de "dados"
(paralelogramo).
Portugol do var
VisuAlg s: caractere
Portugol do var
VisuAlg v: vetor[linha1..linhaN] de tipo
12
Criao de Variveis do Tipo Matriz
Linguagem Comando ou Exemplo Observaes
Fluxograma Nas minhas aulas
eu no vejo a
necessidade dessa
informao no
fluxograma. Mas,
alguns autores
usam o smbolo de
"dados"
(paralelogramo).
Portugol do var
VisuAlg m: vetor[linha1..linhaN, coluna1..colunaN] de tipo
13
Literais (Valores)
Portugol do 3
VisuAlg
Portugol do 3
Portugol Studio
C# 3 int
3L long
3U unsigned int
3UL unsigned long
Java 3 int
3L long
Portugol do 3.14
VisuAlg
Portugol do 3.14
Portugol Studio
C# 3.14F float
3.14 double
3.14M decimal
14
Literais do Tipo Lgico
Linguagem Comando ou Exemplo Observaes
Fluxograma F
V
Portugol do FALSO
VisuAlg VERDADEIRO
Portugol do falso
Portugol Studio verdadeiro
C# false
true
Java false
true
C# 'C' char
"texto entre aspas" string
15
Estruturas Sequenciais
Entrada de Dados
Portugol do leia(i)
VisuAlg
Portugol do leia(i)
Portugol Studio
C# i = sbyte.Parse(Console.ReadLine());
i = short.Parse(Console.ReadLine());
i = int.Parse(Console.ReadLine());
i = long.Parse(Console.ReadLine());
i = byte.Parse(Console.ReadLine());
i = ushort.Parse(Console.ReadLine());
i = uint.Parse(Console.ReadLine());
i = ulong.Parse(Console.ReadLine());
Java i = Byte.parseByte(console.nextLine());
i = Short.parseShort(console.nextLine());
i = Integer.parseInt(console.nextLine());
i = Long.parseLong(console.nextLine());
16
Ler Valor do Tipo Real
Linguagem Comando ou Exemplo Observaes
Fluxograma Para lembrar, costumo
comparar o smbolo
com um teclado.
Portugol do leia(d)
VisuAlg
Portugol do leia(d)
Portugol Studio
C# d = float.Parse(Console.ReadLine());
d = double.Parse(Console.ReadLine());
d = decimal.Parse(Console.ReadLine());
Java d = Float.parseFloat(console.nextLine());
d = Double.parseDouble(console.nextLine());
Portugol do leia(b)
VisuAlg
Portugol do leia(b)
Portugol Studio
C# b = bool.Parse(Console.ReadLine());
Java b = Boolean.parseBoolean(console.nextLine());
17
Ler Valor do Tipo Texto
Linguagem Comando ou Exemplo Observaes
Fluxograma Para lembrar, costumo comparar
o smbolo com um teclado.
Portugol do leia(s)
VisuAlg
Portugol do leia(s)
Portugol Studio
C# s = char.Parse(Console.ReadLine());
s = Console.ReadLine();
Java s = console.nextLine();
Portugol do para i de linha1 ate linhaN faca Para ler um vetor, temos que ler
VisuAlg leia(v[i]) cada uma das variveis
fimpara individualmente.
Portugol do para (inteiro i = 0; i < linhas; i = i + 1) { Para ler um vetor, temos que ler
Portugol Studio leia(v[i]) cada uma das variveis
} individualmente.
C# for (int i = 0; i < v.Length; i++) { Para ler um vetor, temos que ler
v[i] = comando de leitura cada uma das variveis
} individualmente.
Java for (int i = 0; i < v.length; i++) { Para ler um vetor, temos que ler
v[i] = comando de leitura cada uma das variveis
} individualmente.
18
Ler Valor do Tipo Matriz
Linguagem Comando ou Exemplo Observaes
Fluxograma Para lembrar, costumo
comparar o smbolo com um
teclado.
Portugol do para i de linha1 ate linhaN faca Para ler uma matriz, temos que
VisuAlg para j de coluna1 ate colunaN faca ler cada uma das variveis
leia(m[i, j]) individualmente.
fimpara
fimpara
Portugol do para (inteiro i = 0; i < linhas; i = i + 1) { Para ler uma matriz, temos que
Portugol Studio para (inteiro j = 0; j < colunas; j = j + 1) { ler cada uma das variveis
leia(m[i][j]) individualmente.
}
}
C# for (int i = 0; i < m.GetLength(0); i++) { Para ler uma matriz, temos que
for (int j = 0; j < m.GetLength(1); j++) { ler cada uma das variveis
m[i, j] = comando de leitura individualmente.
}
}
Java for (int i = 0; i < m.length; i++) { Para ler uma matriz, temos que
for (int j = 0; j < m[i].length; j++) { ler cada uma das variveis
m[i][j] = comando de leitura individualmente.
}
}
19
Sada de Dados
Escrever
Linguagem Comando ou Exemplo Observaes
Fluxograma Para lembrar, costumo
comparar o smbolo com um
monitor (antigo), visto de lado.
Portugol do escreva(...)
VisuAlg
Portugol do escreva(...)
Portugol Studio
C# Console.Write(...);
Java System.out.print(...);
Portugol do escreval(...)
VisuAlg
Portugol do escreva(...,"\n")
Portugol Studio
C# Console.WriteLine(...);
Java System.out.println(...);
20
Escrever com Parmetros
Linguagem Comando ou Exemplo Observaes
Fluxograma Para lembrar, costumo
comparar o smbolo com um
monitor (antigo), visto de lado.
21
Limpar Tela
Linguagem Comando ou Exemplo Observaes
Fluxograma No tem comando especfico.
Nesse caso, pode-se usar o
smbolo de processamento para
executar um comando de
limpar tela.
Portugol do limpatela
VisuAlg
Portugol do limpa()
Portugol Studio
C# Console.Clear();
22
Operaes
Operao de Atribuio
Linguagem Comando ou Exemplo Observaes
Fluxograma
Portugol do a <- b
VisuAlg
Portugol do a = b
Portugol Studio
C# a = b;
Java a = b;
23
Operaes Aritmticas
Linguagem Comando ou Exemplo Observaes
Fluxograma op um dos operadores mostrados
abaixo. Coloquei a operao de
atribuio porque, normalmente, quando
criamos alguma expresso, frmula, etc.
para ser calculada, queremos armazenar
o valor obtido.
Portugol do a + b Adio
VisuAlg a - b Subtrao
a*b Multiplicao
a/b Diviso
a\b Diviso Inteira
a % b ou a mod b Resto da Diviso
a^b Potenciao
RaizQ(a) Raiz Quadrada
Portugol do a + b Adio
Portugol Studio a - b Subtrao
a*b Multiplicao
a/b Diviso
a/b Diviso Inteira (a e b devem ser inteiros)
a%b Resto da Diviso
Matematica.potencia(a, b) Potenciao
Matematica.raiz(a, 2) Raiz Quadrada
C# a + b Adio
a-b Subtrao
a*b Multiplicao
a/b Diviso
a/b Diviso Inteira (a e b devem ser inteiros)
a%b Resto da Diviso
Math.Pow(a, b) Potenciao
Math.Sqrt(a) Raiz Quadrada
Java a + b Adio
a-b Subtrao
a*b Multiplicao
a/b Diviso
a/b Diviso Inteira (a e b devem ser inteiros)
a%b Resto da Diviso
Math.pow(a, b) Potenciao
Math.sqrt(a) Raiz Quadrada
24
Operaes com Vetores
Linguagem Comando ou Exemplo Observaes
Fluxograma op um dos operadores mostrados
abaixo. Coloquei a operao de
atribuio porque, normalmente, quando
criamos alguma expresso, frmula, etc.
para ser calculada, queremos armazenar
o valor obtido.
25
Operaes com Matrizes
Linguagem Comando ou Exemplo Observaes
Fluxograma op um dos operadores mostrados
abaixo. Coloquei a operao de
atribuio porque, normalmente, quando
criamos alguma expresso, frmula, etc.
para ser calculada, queremos armazenar
o valor obtido.
26
Operaes Relacionais
Linguagem Comando ou Exemplo Observaes
Fluxograma op um dos operadores mostrados
abaixo. Coloquei a operao de
atribuio porque, normalmente, quando
criamos alguma expresso, frmula, etc.
para ser calculada, queremos armazenar
o valor obtido.
C# a < b Menor
a <= b Menor ou Igual
a>b Maior
a >= b Maior ou Igual
a == b Igual
a != b Diferente
27
Operaes Lgicas
Linguagem Comando ou Exemplo Observaes
Fluxograma op um dos operadores mostrados
abaixo. Coloquei a operao de
atribuio porque, normalmente, quando
criamos alguma expresso, frmula, etc.
para ser calculada, queremos armazenar
o valor obtido.
Portugol do a e b E
VisuAlg a ou b OU
a xou b OU EXCLUSIVO
nao a NEGAO
Portugol do a e b E
Portugol Studio a ou b OU
No tem comando especfico. OU EXCLUSIVO
nao a NEGAO
C# a && b E
a || b OU
No tem comando especfico. OU EXCLUSIVO
!a NEGAO
Java a && b E
a || b OU
No tem comando especfico. OU EXCLUSIVO
!a NEGAO
28
Outras Operaes
Linguagem Comando ou Exemplo Observaes
Fluxograma op um dos operadores mostrados
abaixo. Coloquei a operao de
atribuio porque, normalmente, quando
criamos alguma expresso, frmula, etc.
para ser calculada, queremos armazenar
o valor obtido.
29
Estruturas de Deciso
Se-Ento
Linguagem Comando ou Exemplo Observaes
Fluxograma
Portugol do se (condio) {
Portugol Studio ...
}
C# if (condio) {
...
}
Java if (condio) {
...
}
30
Se-Ento-Seno
Linguagem Comando ou Exemplo Observaes
Fluxograma
Portugol do se (condio) {
Portugol Studio ...
} senao {
...
}
C# if (condio) {
...
} else {
...
}
Java if (condio) {
...
} else {
...
}
31
Se-Ento-Seno Encadeado
Linguagem Comando ou Exemplo Observaes
Fluxograma
Portugol do se (condio1) {
Portugol Studio ...
} senao se (condio2) {
...
} senao {
...
}
C# if (condio1) {
...
} else if (condio2) {
...
} else {
...
}
Java if (condio1) {
...
} else if (condio2) {
...
} else {
...
}
32
Escolha-Caso
Linguagem Comando ou Exemplo Observaes
Fluxograma Alguns autores utilizam apenas um
losango, com vrios fluxos saindo
dele, cada um com um dos casos
previstos.
C# switch (varivel) {
case valor1:
...
break;
case valor2:
case valor3:
...
break;
default:
...
break;
}
33
Java switch (varivel) {
case valor1:
...
break;
case valor2:
case valor3:
...
break;
default:
...
break;
}
34
Estruturas de Repetio
Enquanto
Linguagem Comando ou Exemplo Observaes
Fluxograma
35
Para
Linguagem Comando ou Exemplo Observaes
Fluxograma Alguns autores
utilizam apenas
um hexgono
alongado ao
invs do
losango; dentro
dele, colocam
o valor inicial, o
valor final e o
passo.
36
Repita-At
Linguagem Comando ou Exemplo Observaes
Fluxograma
37
Faa-Enquanto
Linguagem Comando ou Exemplo Observaes
Fluxograma
Portugol do faca {
Portugol Studio ...
} enquanto (condio)
C# do {
...
} while (condio);
Java do {
...
} while (condio);
38
Interrupo da Repetio
Linguagem Comando ou Exemplo Observaes
Fluxograma A interrupo da repetio feita de
forma normal, com uma seta de fluxo
saindo do lao ( comum que haja
alguma condio dentro do lao que
cause essa interrupo).
Portugol do interrompa
VisuAlg
Portugol do No tem comando especfico.
Portugol Studio
C# break;
Java break;
39
Procedimentos
Criao de Procedimento
Linguagem Comando ou Exemplo Observaes
Fluxograma Aqui, voc ir fazer outro
fluxograma, anotando o
nome dele. Pode-se usar o
comando de entrada de
dados para indicar a leitura
dos parmetros.
40
Criao de Funo
Linguagem Comando ou Exemplo Observaes
Fluxograma Aqui, voc ir fazer outro
fluxograma, anotando o
nome dele. Pode-se usar o
comando de entrada de
dados para indicar a leitura
dos parmetros. O retorno
do valor pode ser indicado
por um comando de sada.
41
Execuo de Procedimento
Linguagem Comando ou Exemplo Observaes
Fluxograma
Execuo de Funo
Linguagem Comando ou Exemplo Observaes
Fluxograma
42
Consideraes Finais
O projeto Entenda Programao de uma vez por todas um curso gratuito de algoritmos e
lgica de programao. Este e-book pode te ajudar a fazer a transio do Fluxograma ou
Portugol para C# ou Java, ou mesmo entre essas duas linguagens. Espero, sinceramente, que ele
tenha conseguido atingir este objetivo. Se voc encontrar algum erro, tiver alguma crtica ou
sugesto, por favor, entre em contato.
Alm disso, muitas novidades esto por vir. Uma delas que eu vou avanar nas bibliotecas
do Portugol Studio, que permitem acesso a arquivos, tela grfica, acesso ao mouse, entre outros.
Por isso, volto a pedir que voc cadastre o seu e-mail no site de forma que eu possa te avisar
sobre qualquer novidade.
Bons estudos!
www.entendaprogramacao.com.br
43