Programação de Soluções
Programação de Soluções
Computacionais
Computacionais
MÓDULO 2
MÓDULO 2
Conceitos básicos sobre algoritmos
Conceitos básicos sobre algoritmos
Dados
Dados
Dados
Dados

Valores utilizados para a resolução de um
Valores utilizados para a resolução de um
problema
problema

Podem ser fornecidos pelo usuário do
Podem ser fornecidos pelo usuário do
programa, originados de cálculos ou de
programa, originados de cálculos ou de
arquivos, bancos de dados ou outros programas
arquivos, bancos de dados ou outros programas

Armazenados temporariamente em
Armazenados temporariamente em variáveis
variáveis
para que possam ser processados de acordo
para que possam ser processados de acordo
com a especificação do algoritmo
com a especificação do algoritmo
Tipos de Dados
Tipos de Dados
Conjunto de valores possíveis que cada
Conjunto de valores possíveis que cada
variável pode possuir
variável pode possuir
NUMÉRICO
NUMÉRICO

INTEIRO
INTEIRO
 Ex.: -23, 98, 0, 560
Ex.: -23, 98, 0, 560

REAL (PONTO FLUTUANTE)
REAL (PONTO FLUTUANTE)
 Ex.: 23,45; -364,89; 0,0
Ex.: 23,45; -364,89; 0,0
LÓGICO (BOOLEANO)
LÓGICO (BOOLEANO)

VERDADEIRO/FALSO
VERDADEIRO/FALSO
Tipos de Dados
Tipos de Dados
LITERAL OU CARACTERE
LITERAL OU CARACTERE

Letras (maiúsculas e minúsculas)
Letras (maiúsculas e minúsculas)

Números
Números

Caracteres especiais (&, #, @, ?, + etc.)
Caracteres especiais (&, #, @, ?, + etc.)

Ex.: “aluno”, “1234”, “@ internet”
Ex.: “aluno”, “1234”, “@ internet”
Tipos de Dados
Tipos de Dados
Algoritmos Java
Tipos de dados Tipos de dados Capacidade de armazenamento
Literal ou caractere
char 16 bits – Somente um caractere
String (classe) Cadeias de caracteres
Inteiro
byte 8 bits – De -128 a 127
short 16 bits – De -32.768 a 32.767
int
32 bits – De -2.147.483.648 a
2.147.483.647
long
64 bits – De
-9.223.372.036.854.775.808 a
9.223.372.036.854.775.807
Real (ponto flutuante)
float
32 bits – De (-3,4 x 10-38
) a (3,4 x 1038
)
(7 casas decimais)
double
64 bits – De (-1,7 x 10-308
) a (1,7 x 10308
) (15
casas decimais)
Lógico (booleano) boolean 8 bits – true ou false
Fonte: adaptado de Puga, Sandra – Lógica de Programação e estruturas de dados, com aplicações em Java / Sandra Puga,
Gerson Rissetti – 2. ed. – São Paulo: Pearson Prentice Hall, 2009 - p. 37
Variáveis
Variáveis
Algoritmos – usadas para representar
Algoritmos – usadas para representar
valores desconhecidos, porém necessários
valores desconhecidos, porém necessários
para resolução do problema
para resolução do problema
Podem ser alteradas de acordo com a
Podem ser alteradas de acordo com a
situação
situação
Embora possa assumir valores diferentes, ela
Embora possa assumir valores diferentes, ela
só pode armazenar um valor a cada instante
só pode armazenar um valor a cada instante
Linguagem de programação – armazenam
Linguagem de programação – armazenam
dados na memória RAM do computador
dados na memória RAM do computador
Formação de identificadores
Formação de identificadores
Nomes de variáveis
Nomes de variáveis
Constantes
Constantes
Rotinas
Rotinas
etc.
etc.
Formação de identificadores
Formação de identificadores
Regras básicas:
Regras básicas:

Caracteres permitidos: números, letras, _
Caracteres permitidos: números, letras, _

O primeiro deve ser sempre letra ou _
O primeiro deve ser sempre letra ou _

Não são permitidos espaços em branco,
Não são permitidos espaços em branco,
nem caracteres especiais (@, $, +, - , %, !
nem caracteres especiais (@, $, +, - , %, !
etc.)
etc.)

Não podem ser usadas palavras reservadas
Não podem ser usadas palavras reservadas
(palavras que pertencem a uma linguagem
(palavras que pertencem a uma linguagem
de programação)
de programação)
Formação de identificadores
Formação de identificadores
Exemplos:
Exemplos:

A
A

a
a

nota
nota

NOTA
NOTA

X5
X5

A32
A32

NOTA_1
NOTA_1

MATRICULA
MATRICULA
Formação de identificadores
Formação de identificadores
Exercício:
Exercício:

Por que os identificadores abaixo são
Por que os identificadores abaixo são
inválidos?
inválidos?
 5b
5b
 e 12
e 12
 x-y
x-y
 nota(2)
nota(2)
Exemplo - variáveis
Exemplo - variáveis
ALGORITMO
ALGORITMO
DECLARE
DECLARE N1, N2, D
N1, N2, D NUMÉRICO
NUMÉRICO
ESCREVA "Digite os dois números"
ESCREVA "Digite os dois números"
LEIA
LEIA N1, N2
N1, N2
SE
SE N2
N2 = 0
= 0
ENTÃO ESCREVA "Impossível dividir"
ENTÃO ESCREVA "Impossível dividir"
SENÃO INÍCIO
SENÃO INÍCIO
D
D ←
← N1
N1/
/N2
N2
ESCREVA "Divisão = ",
ESCREVA "Divisão = ", D
D
FIM
FIM
FIM_ALGORITMO
FIM_ALGORITMO
Declarando variáveis em
Declarando variáveis em
algoritmos
algoritmos
Pseudocódigo ou Portugol
Pseudocódigo ou Portugol

Após a palavra
Após a palavra DECLARE
DECLARE
ALGORITMO
ALGORITMO
DECLARE num1, num2 NUMÉRICO
DECLARE num1, num2 NUMÉRICO
nome, sexo LITERAL
nome, sexo LITERAL
teste LÓGICO
teste LÓGICO
...
...
FIM_ALGORITMO
FIM_ALGORITMO
Declarando variáveis em
Declarando variáveis em
algoritmos
algoritmos
Fluxograma
Fluxograma

não existe o conceito de declaração de
não existe o conceito de declaração de
variáveis
variáveis

as variáveis são utilizadas à medida do
as variáveis são utilizadas à medida do
necessário
necessário
INÍCIO
D ← N1/N2
N1, N2
D
N2 = 0
FIM
DIVISÃO
IMPOSSÍVEL
Declarando variáveis em Java
Declarando variáveis em Java
public class Exemplo {
public static void main(String args[]){
int num1, num2;
char sexo;
String nome;
...
}
}
Operador de atribuição
Operador de atribuição
Utilizado para conceder valores às
Utilizado para conceder valores às
variáveis
variáveis
Pode ser um valor predefinido ou
Pode ser um valor predefinido ou
pode ser o resultado de uma
pode ser o resultado de uma
expressão
expressão
Operador de atribuição em
Operador de atribuição em
algoritmos
algoritmos
Representado pelo símbolo
Representado pelo símbolo ←
←
Ex.:
Ex.:
ALGORITMO
ALGORITMO
DECLARE num1, num2 NUMÉRICO
DECLARE num1, num2 NUMÉRICO
nome, sexo LITERAL
nome, sexo LITERAL
teste LÓGICO
teste LÓGICO
num1 10
←
num1 10
←
num2 num1 * 2
←
num2 num1 * 2
←
nome 'Alexandre Siqueira Dias'
←
nome 'Alexandre Siqueira Dias'
←
sexo 'M'
←
sexo 'M'
←
teste falso
←
teste falso
←
FIM_ALGORITMO
FIM_ALGORITMO num1 ←
← 10
num2 ←
← num1 * 2
sexo ←
← '
' M'
'
teste ←
← falso
falso
Operador de atribuição em Java
Operador de atribuição em Java
Representado por
Representado por =
= (sinal de igualdade)
(sinal de igualdade)
Ex.:
Ex.:
public class Exemplo {
public static void main(String args[]){
int num1, num2;
char sexo = 'M'
'M';
String nome;
num1 = 10;
num2 = num1 * 10;
nome = "Alexandre Siqueira Dias";
"Alexandre Siqueira Dias";
...
}
}
em Java, é possível declarar e fornecer um valor inicial para a
variável em um único comando.
Comentários em Java
Comentários em Java
São textos que podem ser inseridos
São textos que podem ser inseridos
em programas para documentá-los
em programas para documentá-los
Não são analisados pelo compilador
Não são analisados pelo compilador
Símbolos:
Símbolos:

/*
/* ...
... */
*/ (para várias linhas)
(para várias linhas)

//
// (para uma única linha)
(para uma única linha)
Comentários em Java
Comentários em Java
Exemplo
Exemplo
public class Exemplo {
public class Exemplo {
/*
/*
Data: 17/08/2020
Data: 17/08/2020
Autor: Alexandre Siqueira Dias
Autor: Alexandre Siqueira Dias
Objetivo: Ler dois números e imprimir a soma na tela
Objetivo: Ler dois números e imprimir a soma na tela
*/
*/
public static void main(String args[]){
public static void main(String args[]){
int num1, num2;
int num1, num2;
//char sexo = 'M';
//char sexo = 'M';
...
...
}
}
}
}
Operadores aritméticos em Java
Operadores aritméticos em Java
Operador Exemplo Comentário
+ x + y soma
- x - y subtração
* x * y multiplicação
/ x / y divisão
% x % y resto da divisão de x por
y (só pode ser utilizado
com operandos inteiros)
Operadores aritméticos em Java
Operadores aritméticos em Java
Operador Exemplo Comentário
++ x++ aumenta o conteúdo de x
em uma unidade
-- x-- diminui o conteúdo de x
em uma unidade
+= x += y equivale a x = x + y
-= x -= y equivale a x = x - y
*= x *= y equivale a x = x * y
/= x /= y equivale a x = x / y
%= x %= y equivale a x = x % y
Operadores de comparação em
Operadores de comparação em
Java
Java
Operador Exemplo Comentário
== x == y Verifica se o conteúdo de x
é igual ao conteúdo de y
!= x != y Verifica se o conteúdo de x
é diferente do conteúdo
de y
<= x <= y Verifica se o conteúdo de x
é menor ou igual ao
conteúdo de y
>= x >= y Verifica se o conteúdo de x
é maior ou igual ao
conteúdo de y
Operadores de comparação em
Operadores de comparação em
Java
Java
Operador Exemplo Comentário
< x < y Verifica se o conteúdo de x
é menor do que o
conteúdo de y
> x > y Verifica se o conteúdo de x
é maior do que o
conteúdo de y

Módulo 2 - Conceitos básicos sobre algoritmos.ppt

  • 1.
    Programação de Soluções Programaçãode Soluções Computacionais Computacionais MÓDULO 2 MÓDULO 2 Conceitos básicos sobre algoritmos Conceitos básicos sobre algoritmos
  • 2.
    Dados Dados Dados Dados  Valores utilizados paraa resolução de um Valores utilizados para a resolução de um problema problema  Podem ser fornecidos pelo usuário do Podem ser fornecidos pelo usuário do programa, originados de cálculos ou de programa, originados de cálculos ou de arquivos, bancos de dados ou outros programas arquivos, bancos de dados ou outros programas  Armazenados temporariamente em Armazenados temporariamente em variáveis variáveis para que possam ser processados de acordo para que possam ser processados de acordo com a especificação do algoritmo com a especificação do algoritmo
  • 3.
    Tipos de Dados Tiposde Dados Conjunto de valores possíveis que cada Conjunto de valores possíveis que cada variável pode possuir variável pode possuir NUMÉRICO NUMÉRICO  INTEIRO INTEIRO  Ex.: -23, 98, 0, 560 Ex.: -23, 98, 0, 560  REAL (PONTO FLUTUANTE) REAL (PONTO FLUTUANTE)  Ex.: 23,45; -364,89; 0,0 Ex.: 23,45; -364,89; 0,0 LÓGICO (BOOLEANO) LÓGICO (BOOLEANO)  VERDADEIRO/FALSO VERDADEIRO/FALSO
  • 4.
    Tipos de Dados Tiposde Dados LITERAL OU CARACTERE LITERAL OU CARACTERE  Letras (maiúsculas e minúsculas) Letras (maiúsculas e minúsculas)  Números Números  Caracteres especiais (&, #, @, ?, + etc.) Caracteres especiais (&, #, @, ?, + etc.)  Ex.: “aluno”, “1234”, “@ internet” Ex.: “aluno”, “1234”, “@ internet”
  • 5.
    Tipos de Dados Tiposde Dados Algoritmos Java Tipos de dados Tipos de dados Capacidade de armazenamento Literal ou caractere char 16 bits – Somente um caractere String (classe) Cadeias de caracteres Inteiro byte 8 bits – De -128 a 127 short 16 bits – De -32.768 a 32.767 int 32 bits – De -2.147.483.648 a 2.147.483.647 long 64 bits – De -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 Real (ponto flutuante) float 32 bits – De (-3,4 x 10-38 ) a (3,4 x 1038 ) (7 casas decimais) double 64 bits – De (-1,7 x 10-308 ) a (1,7 x 10308 ) (15 casas decimais) Lógico (booleano) boolean 8 bits – true ou false Fonte: adaptado de Puga, Sandra – Lógica de Programação e estruturas de dados, com aplicações em Java / Sandra Puga, Gerson Rissetti – 2. ed. – São Paulo: Pearson Prentice Hall, 2009 - p. 37
  • 6.
    Variáveis Variáveis Algoritmos – usadaspara representar Algoritmos – usadas para representar valores desconhecidos, porém necessários valores desconhecidos, porém necessários para resolução do problema para resolução do problema Podem ser alteradas de acordo com a Podem ser alteradas de acordo com a situação situação Embora possa assumir valores diferentes, ela Embora possa assumir valores diferentes, ela só pode armazenar um valor a cada instante só pode armazenar um valor a cada instante Linguagem de programação – armazenam Linguagem de programação – armazenam dados na memória RAM do computador dados na memória RAM do computador
  • 7.
    Formação de identificadores Formaçãode identificadores Nomes de variáveis Nomes de variáveis Constantes Constantes Rotinas Rotinas etc. etc.
  • 8.
    Formação de identificadores Formaçãode identificadores Regras básicas: Regras básicas:  Caracteres permitidos: números, letras, _ Caracteres permitidos: números, letras, _  O primeiro deve ser sempre letra ou _ O primeiro deve ser sempre letra ou _  Não são permitidos espaços em branco, Não são permitidos espaços em branco, nem caracteres especiais (@, $, +, - , %, ! nem caracteres especiais (@, $, +, - , %, ! etc.) etc.)  Não podem ser usadas palavras reservadas Não podem ser usadas palavras reservadas (palavras que pertencem a uma linguagem (palavras que pertencem a uma linguagem de programação) de programação)
  • 9.
    Formação de identificadores Formaçãode identificadores Exemplos: Exemplos:  A A  a a  nota nota  NOTA NOTA  X5 X5  A32 A32  NOTA_1 NOTA_1  MATRICULA MATRICULA
  • 10.
    Formação de identificadores Formaçãode identificadores Exercício: Exercício:  Por que os identificadores abaixo são Por que os identificadores abaixo são inválidos? inválidos?  5b 5b  e 12 e 12  x-y x-y  nota(2) nota(2)
  • 11.
    Exemplo - variáveis Exemplo- variáveis ALGORITMO ALGORITMO DECLARE DECLARE N1, N2, D N1, N2, D NUMÉRICO NUMÉRICO ESCREVA "Digite os dois números" ESCREVA "Digite os dois números" LEIA LEIA N1, N2 N1, N2 SE SE N2 N2 = 0 = 0 ENTÃO ESCREVA "Impossível dividir" ENTÃO ESCREVA "Impossível dividir" SENÃO INÍCIO SENÃO INÍCIO D D ← ← N1 N1/ /N2 N2 ESCREVA "Divisão = ", ESCREVA "Divisão = ", D D FIM FIM FIM_ALGORITMO FIM_ALGORITMO
  • 12.
    Declarando variáveis em Declarandovariáveis em algoritmos algoritmos Pseudocódigo ou Portugol Pseudocódigo ou Portugol  Após a palavra Após a palavra DECLARE DECLARE ALGORITMO ALGORITMO DECLARE num1, num2 NUMÉRICO DECLARE num1, num2 NUMÉRICO nome, sexo LITERAL nome, sexo LITERAL teste LÓGICO teste LÓGICO ... ... FIM_ALGORITMO FIM_ALGORITMO
  • 13.
    Declarando variáveis em Declarandovariáveis em algoritmos algoritmos Fluxograma Fluxograma  não existe o conceito de declaração de não existe o conceito de declaração de variáveis variáveis  as variáveis são utilizadas à medida do as variáveis são utilizadas à medida do necessário necessário INÍCIO D ← N1/N2 N1, N2 D N2 = 0 FIM DIVISÃO IMPOSSÍVEL
  • 14.
    Declarando variáveis emJava Declarando variáveis em Java public class Exemplo { public static void main(String args[]){ int num1, num2; char sexo; String nome; ... } }
  • 15.
    Operador de atribuição Operadorde atribuição Utilizado para conceder valores às Utilizado para conceder valores às variáveis variáveis Pode ser um valor predefinido ou Pode ser um valor predefinido ou pode ser o resultado de uma pode ser o resultado de uma expressão expressão
  • 16.
    Operador de atribuiçãoem Operador de atribuição em algoritmos algoritmos Representado pelo símbolo Representado pelo símbolo ← ← Ex.: Ex.: ALGORITMO ALGORITMO DECLARE num1, num2 NUMÉRICO DECLARE num1, num2 NUMÉRICO nome, sexo LITERAL nome, sexo LITERAL teste LÓGICO teste LÓGICO num1 10 ← num1 10 ← num2 num1 * 2 ← num2 num1 * 2 ← nome 'Alexandre Siqueira Dias' ← nome 'Alexandre Siqueira Dias' ← sexo 'M' ← sexo 'M' ← teste falso ← teste falso ← FIM_ALGORITMO FIM_ALGORITMO num1 ← ← 10 num2 ← ← num1 * 2 sexo ← ← ' ' M' ' teste ← ← falso falso
  • 17.
    Operador de atribuiçãoem Java Operador de atribuição em Java Representado por Representado por = = (sinal de igualdade) (sinal de igualdade) Ex.: Ex.: public class Exemplo { public static void main(String args[]){ int num1, num2; char sexo = 'M' 'M'; String nome; num1 = 10; num2 = num1 * 10; nome = "Alexandre Siqueira Dias"; "Alexandre Siqueira Dias"; ... } } em Java, é possível declarar e fornecer um valor inicial para a variável em um único comando.
  • 18.
    Comentários em Java Comentáriosem Java São textos que podem ser inseridos São textos que podem ser inseridos em programas para documentá-los em programas para documentá-los Não são analisados pelo compilador Não são analisados pelo compilador Símbolos: Símbolos:  /* /* ... ... */ */ (para várias linhas) (para várias linhas)  // // (para uma única linha) (para uma única linha)
  • 19.
    Comentários em Java Comentáriosem Java Exemplo Exemplo public class Exemplo { public class Exemplo { /* /* Data: 17/08/2020 Data: 17/08/2020 Autor: Alexandre Siqueira Dias Autor: Alexandre Siqueira Dias Objetivo: Ler dois números e imprimir a soma na tela Objetivo: Ler dois números e imprimir a soma na tela */ */ public static void main(String args[]){ public static void main(String args[]){ int num1, num2; int num1, num2; //char sexo = 'M'; //char sexo = 'M'; ... ... } } } }
  • 20.
    Operadores aritméticos emJava Operadores aritméticos em Java Operador Exemplo Comentário + x + y soma - x - y subtração * x * y multiplicação / x / y divisão % x % y resto da divisão de x por y (só pode ser utilizado com operandos inteiros)
  • 21.
    Operadores aritméticos emJava Operadores aritméticos em Java Operador Exemplo Comentário ++ x++ aumenta o conteúdo de x em uma unidade -- x-- diminui o conteúdo de x em uma unidade += x += y equivale a x = x + y -= x -= y equivale a x = x - y *= x *= y equivale a x = x * y /= x /= y equivale a x = x / y %= x %= y equivale a x = x % y
  • 22.
    Operadores de comparaçãoem Operadores de comparação em Java Java Operador Exemplo Comentário == x == y Verifica se o conteúdo de x é igual ao conteúdo de y != x != y Verifica se o conteúdo de x é diferente do conteúdo de y <= x <= y Verifica se o conteúdo de x é menor ou igual ao conteúdo de y >= x >= y Verifica se o conteúdo de x é maior ou igual ao conteúdo de y
  • 23.
    Operadores de comparaçãoem Operadores de comparação em Java Java Operador Exemplo Comentário < x < y Verifica se o conteúdo de x é menor do que o conteúdo de y > x > y Verifica se o conteúdo de x é maior do que o conteúdo de y