Você está na página 1de 43

RESUMO

J aprendeu fluxograma e/ou


Portugol, mas sente dificuldade de
migrar para C# ou Java? Seja
como o Senhor dos Algoritmos que
entende os fundamentos e, para
aprender uma nova linguagem de
programao, procura conhecer
sua sintaxe. Este e-book contm
tabelas para te ajudar na transio
de uma linguagem para outra.
Bons estudos!
Ramon Chiara
Entenda Programao de uma vez
por todas

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

Como Usar este e-book?


Para usar este e-book, voc pode desenvolver normalmente o algoritmo sendo estudado
usando o que voc sabe: fluxograma ou Portugol. Logo aps, voc traduz para a nova
linguagem usando as tabelas fornecidas nas prximas sees que so:

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.

Exemplo: suponha que voc tenha desenvolvido o seguinte algoritmos em Portugol do


Portugol Studio:

programa {
funcao inicio() {
inteiro n, fatorial

escreva("Entre com o valor de n: ")


leia(n)

fatorial = 1
para (inteiro i = 1; i <= n; i = i + 1) {
fatorial = fatorial * i
}

escreva("O fatorial de " + n + " " + fatorial)


}
}

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;

public class Program {


public static void main(String[] args) {
Scanner console = new Scanner(System.in);

inteiro n, fatorial

escreva("Entre com o valor de n: ")


leia(n)

fatorial = 1
para (inteiro i = 1; i <= n; i = i + 1) {
fatorial = fatorial * i
}

escreva("O fatorial de " + n + " " + fatorial)


}
}

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;

public class Program {


public static void main(String[] args) {
Scanner console = new Scanner(System.in);

int n, fatorial;

escreva("Entre com o valor de n: ")


leia(n)

fatorial = 1
para (inteiro i = 1; i <= n; i = i + 1) {
fatorial = fatorial * i
}

escreva("O fatorial de " + n + " " + fatorial)


}
}

5
Continuando, traduzimos o comando de impresso na tela:

import java.util.Scanner;

public class Program {


public static void main(String[] args) {
Scanner console = new Scanner(System.in);

int n, fatorial;

System.out.print("Entre com o valor de n: ");


leia(n)

fatorial = 1
para (inteiro i = 1; i <= n; i = i + 1) {
fatorial = fatorial * i
}

escreva("O fatorial de " + n + " " + fatorial)


}
}

E o comando que l a varivel inteira "n":

import java.util.Scanner;

public class Program {


public static void main(String[] args) {
Scanner console = new Scanner(System.in);

int n, fatorial;

System.out.print("Entre com o valor de n: ");


n = Integer.parseInt(console.nextLine());

fatorial = 1
para (inteiro i = 1; i <= n; i = i + 1) {
fatorial = fatorial * i
}

escreva("O fatorial de " + n + " " + fatorial)


}
}

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;

public class Program {


public static void main(String[] args) {
Scanner console = new Scanner(System.in);

int n, fatorial;

System.out.print("Entre com o valor de n: ");


n = Integer.parseInt(console.nextLine());

fatorial = 1;
para (inteiro i = 1; i <= n; i = i + 1) {
fatorial = fatorial * i
}

escreva("O fatorial de " + n + " " + fatorial)


}
}

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;

public class Program {


public static void main(String[] args) {
Scanner console = new Scanner(System.in);

int n, fatorial;

System.out.print("Entre com o valor de n: ");


n = Integer.parseInt(console.nextLine());

fatorial = 1;
for (int i = 1; i <= n; i = i + 1) {
fatorial = fatorial * i;
}

escreva("O fatorial de " + n + " " + fatorial)


}
}

7
Por ltimo, mais um comando de impresso na tela:

import java.util.Scanner;

public class Program {


public static void main(String[] args) {
Scanner console = new Scanner(System.in);

int n, fatorial;

System.out.print("Entre com o valor de n: ");


n = Integer.parseInt(console.nextLine());

fatorial = 1;
for (int i = 1; i <= n; i = i + 1) {
fatorial = fatorial * i;
}

System.out.println("O fatorial de " + n + " " + fatorial);


}
}

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 algoritmo "meu programa"


VisuAlg var
...
inicio
...
fimalgoritmo

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)
{
...
}
}

Java import java.util.Scanner;


public class Program {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);

...
}
}

9
Criao de Variveis

Criao de Variveis do Tipo Inteiro


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 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;

Java byte i; O Java possui 4 tipos inteiros.


short i; Normalmente usamos o tipo int ou
int i; long.
long 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.

Java float d; O Java possui 2 tipos reais.


double d; Normalmente usamos o tipo double.
Quando for para tratar quantias
monetrias, usamos objetos da
classe BigDecimal (no se preocupe
com isso durante o aprendizado).

Criao de Variveis do Tipo Lgico


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 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 caracter s O tipo caracter serve para guardar


Portugol Studio cadeia s apenas um caractere.

C# char s; O tipo char serve para guardar


string s; apenas um caractere.

Java char s; O tipo char serve para guardar


String s; apenas um caractere.

Criao de Variveis do Tipo Vetor


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 v: vetor[linha1..linhaN] de tipo

Portugol do tipo v[linhas]


Portugol Studio
C# tipo[] v = new tipo[linhas];

Java tipo[] v = new tipo[linhas];

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

Portugol do tipo v[linhas][colunas]


Portugol Studio
C# tipo[,] m = new tipo[linhas, colunas];

Java tipo[][] m = new tipo[linhas][colunas];

13
Literais (Valores)

Literais do Tipo Inteiro


Linguagem Comando ou Exemplo Observaes
Fluxograma 3

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

Literais do Tipo Real


Linguagem Comando ou Exemplo Observaes
Fluxograma 3.14

Portugol do 3.14
VisuAlg
Portugol do 3.14
Portugol Studio
C# 3.14F float
3.14 double
3.14M decimal

Java 3.14F float


3.14 double

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

Literais do Tipo Texto


Linguagem Comando ou Exemplo Observaes
Fluxograma "texto entre aspas"

Portugol do "texto entre aspas"


VisuAlg
Portugol do 'C' caracter
Portugol Studio "texto entre aspas" cadeia

C# 'C' char
"texto entre aspas" string

Java 'C' char


"texto entre aspas" String

15
Estruturas Sequenciais

Entrada de Dados

Ler Valor do Tipo Inteiro


Linguagem Comando ou Exemplo Observaes
Fluxograma Para lembrar, costumo
comparar o smbolo
com um teclado.

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());

Ler Valor do Tipo Lgico


Linguagem Comando ou Exemplo Observaes
Fluxograma Para lembrar, costumo
comparar o smbolo
com um teclado.

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();

Ler Valor do Tipo Vetor


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 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(...);

Escrever, Pulando Linha


Linguagem Comando ou Exemplo Observaes
Fluxograma Para lembrar, costumo
comparar o smbolo com um
monitor (antigo), visto de lado.

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.

Portugol do escreva(..., a, ..., b, ...)


VisuAlg
Portugol do escreva(..., a, ..., b, ...)
Portugol Studio
C# Console.Write("...{0}...{1}...", a, b, ); Para saber o que colocar no
lugar do {n}, consulte a
documentao do C#.

Java System.out.printf("...%t...%t...", a, b, ); Para saber o que colocar no


lugar do t, consulte a
documentao do Java.

Escrever com Parmetros, Pulando Linha


Linguagem Comando ou Exemplo Observaes
Fluxograma Para lembrar, costumo
comparar o smbolo com um
monitor (antigo), visto de lado.

Portugol do escreval(..., a, ..., b, ...)


VisuAlg
Portugol do escreva(..., a, ..., b, ... ,"\n")
Portugol Studio
C# Console.WriteLine("...{0}...{1}...", a, b, ); Para saber o que colocar no
lugar do {n}, consulte a
documentao do C#.

Java System.out.printf("...%t...%t...%n", a, b, ); Para saber o que colocar no


lugar do t, consulte a
documentao do Java.

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();

Java No tem comando especfico.

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;

Operaes com Texto


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 "texto" + "texto" Casos onde ocorrem concatenao, ou


VisuAlg "texto" + a seja, a juno de dois textos ou de um
a + "texto" texto com algum outro valor.

Portugol do "texto" + "texto" Casos onde ocorrem concatenao, ou


Portugol Studio "texto" + a seja, a juno de dois textos ou de um
a + "texto" texto com algum outro valor.

C# "texto" + "texto" Casos onde ocorrem concatenao, ou


"texto" + a seja, a juno de dois textos ou de um
a + "texto" texto com algum outro valor.

Java "texto" + "texto" Casos onde ocorrem concatenao, ou


"texto" + a seja, a juno de dois textos ou de um
a + "texto" texto com algum outro valor.

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.

Portugol do v[ndice da linha] Acesso uma varivel ou valor do vetor


VisuAlg
No tem comando especfico. Tamanho do vetor

Portugol do v[ndice da linha] Acesso uma varivel ou valor do vetor


Portugol Studio
Util.numero_elementos(v) Tamanho do vetor
necessrio incluir a biblioteca Util

C# v[ndice da linha] Acesso uma varivel ou valor do vetor


(ndice comea em 0 e termina em
tamanho - 1)

v.Length Tamanho do vetor

Java v[ndice da linha] Acesso uma varivel ou valor do vetor


(ndice comea em 0 e termina em
tamanho - 1)

v.length Tamanho do vetor

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.

Portugol do m[ndice da linha, ndice da Acesso uma varivel ou valor da matriz


VisuAlg coluna] (ndices comeam em 0 e terminam em
tamanho - 1)

No tem comando especfico. Tamanho da matriz

No tem comando especfico. Quantidade de linhas


No tem comando especfico. Quantidade de colunas de uma linha

Portugol do m[ndice da linha][ndice da Acesso uma varivel ou valor da matriz


Portugol Studio coluna] (ndices comeam em 0 e terminam em
tamanho - 1)

No tem comando especfico. Tamanho da matriz

Util.numero_linhas(m) Quantidade de linhas


Util.numero_colunas(m) Quantidade de colunas
necessrio incluir a biblioteca Util

C# m[ndice da linha, ndice da Acesso uma varivel ou valor da matriz


coluna] (ndices comeam em 0 e terminam em
tamanho - 1)

m.Length Tamanho da matriz

m.GetLength(0) Quantidade de linhas


m.GetLength(1) Quantidade de colunas

Java m[ndice da linha][ndice da Acesso uma varivel ou valor da matriz


coluna] (ndices comeam em 0 e terminam em
tamanho - 1)

No tem comando especfico. Tamanho da matriz

m.length Quantidade de linhas


m[ndice da linha].length Quantidade de colunas de uma linha

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.

Portugol do a < b Menor


VisuAlg a <= b Menor ou Igual
a>b Maior
a >= b Maior ou Igual
a=b Igual
a <> b Diferente

Portugol do a < b Menor


Portugol Studio a <= b Menor ou Igual
a>b Maior
a >= b Maior ou Igual
a == b Igual
a != b Diferente

C# a < b Menor
a <= b Menor ou Igual
a>b Maior
a >= b Maior ou Igual
a == b Igual
a != b Diferente

Java 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.

Portugol do No tem comando especfico. Incremento (a <- a + 1)


VisuAlg No tem comando especfico. Decremento (a <- a - 1)
No tem comando especfico. Operao com Atribuio (a = a op b)

Portugol do a++ Incremento (a <- a + 1)


Portugol Studio a-- Decremento (a <- a - 1)
a op= b Operao com Atribuio (a = a op b)

C# a++ ou ++a Incremento (a <- a + 1)


a-- ou --a Decremento (a <- a - 1)
a op= b Operao com Atribuio (a = a op b)

Java a++ ou ++a Incremento (a <- a + 1)


a-- ou --a Decremento (a <- a - 1)
a op= b Operao com Atribuio (a = a op b)

29
Estruturas de Deciso

Se-Ento
Linguagem Comando ou Exemplo Observaes
Fluxograma

Portugol do se condio entao


VisuAlg ...
fimse

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 entao


VisuAlg ...
senao
...
fimse

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 entao


VisuAlg ...
senao
se condio2 entao
...
senao
...
fimse
fimse

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.

Portugol do escolha varivel


VisuAlg caso valor1
...
caso valor2, valor3
...
outrocaso
...
fimescolha

Portugol do escolha (varivel) {


Portugol caso valor1:
...
Studio
pare
caso valor2:
caso valor3:
...
pare
caso contrario:
...
}

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

Portugol do enquanto condio faca


VisuAlg ...
fimenquanto

Portugol do enquanto (condio) {


Portugol ...
}
Studio
C# while (condio) {
...
}

Java while (condio) {


...
}

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.

Portugol do para varivel de valor1 ate valorN passo P faca


VisuAlg ...
fimpara

Portugol do para (varivel = valor1; varivel <= valorN; varivel += P) {


Portugol Studio ...
}

C# for (varivel = valor1; varivel <= valorN; varivel += P) {


...
}

Java for (varivel = valor1; varivel <= valorN; varivel += P) {


...
}

36
Repita-At
Linguagem Comando ou Exemplo Observaes
Fluxograma

Portugol do repita Termina quando a condio for


VisuAlg ... verdadeira.
ate condio

Portugol do No tem comando especfico. Mas, possvel usar a estrutura


Portugol Studio enquantocom a condio invertida.

C# No tem comando especfico. Mas, possvel usar a estrutura


enquantocom a condio invertida.

Java No tem comando especfico. Mas, possvel usar a estrutura


enquantocom a condio invertida.

37
Faa-Enquanto
Linguagem Comando ou Exemplo Observaes
Fluxograma

Portugol do No tem comando especfico. Mas, possvel usar a estrutura repita-


VisuAlg atcom a condio invertida.

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).

No exemplo ao lado, mostrada a


interrupo em um lao do tipo faa-
enquanto, mas a interrupo pode ser
usada em qualquer estrutura de
repetio.

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.

Portugol do procedimento nome(parmetro: tipo; ...)


VisuAlg var
...
inicio
...
fimprocedimento

Portugol do funcao vazio nome(parmetro: tipo; ...) {


Portugol Studio ...
}

C# static void nome(tipo parmetro, ...) {


...
}

Java static void nome(tipo parmetro, ...) {


...
}

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.

Portugol do funcao nome(parmetro: tipo; ...): tipo


VisuAlg var
...
inicio
...
retorne valor
fimfuncao

Portugol do funcao tipo nome(parmetro: tipo; ...) {


Portugol Studio ...
retorne valor
}

C# static tipo nome(tipo parmetro, ...) {


...
return valor;
}

Java static tipo nome(tipo parmetro, ...) {


...
return valor;
}

41
Execuo de Procedimento
Linguagem Comando ou Exemplo Observaes
Fluxograma

Portugol do nome(valor, ...)


VisuAlg
Portugol do nome(valor, ...)
Portugol Studio
C# nome(valor, ...);

Java nome(valor, ...);

Execuo de Funo
Linguagem Comando ou Exemplo Observaes
Fluxograma

Portugol do a <- nome(valor, ...)


VisuAlg
Portugol do a = nome(valor, ...)
Portugol Studio
C# a = nome(valor, ...);

Java a = nome(valor, ...);

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

Você também pode gostar