Você está na página 1de 37

Pensamento Computacional

e Linguagem de Programação
Visual
Aula 02

Tecnologia em Sistemas para Internet


Planejamento da aula
Tema de Estudo 1
Instruções e outros elementos da linguagem visual.
● Resultado de Aprendizagem 1
Implementar soluções para os problemas estruturados propostos utilizando a
linguagem visual.
● Resultado de Aprendizagem 2
Desenvolver habilidades para o trabalho em equipe durante a resolução de
problemas complexos.

2
Tópicos da aula
● Algoritmos e programas.
● Diferentes representações.
● Instruções de entrada, saída e atribuição.
● Variáveis, identificadores e tipos de dados
○ Caracteres, Inteiro, Ponto Flutuante.

● Operadores e expressões aritméticas.

3
Algoritmos
Vimos que, um algoritmo é uma sequência de passos que visa atingir um objetivo.
● Exemplos de algoritmos:
○ Receita de bolo;

○ Instruções para trocar uma lâmpada;

○ Passo para resolver o problema da travessia dos Missionários e Canibais, etc.

4
Algoritmos computacionais
● Um conjunto finito de regras que provê uma sequência de operações para
resolver um tipo de problema específico. [KNUTH] (autor da coleção “The art
of computer programming”)

● Um algoritmo é uma sequência de passos computacionais que transformam


a entrada na saída. [CORMEN] (autor do livro “Algoritmos - Teoria e Prática”)

● Um algoritmo é uma sequência finita de instruções cuja execução, em


tempo finito, resolve um problema computacional (SALVETTI, 1999).

5
Propriedades de um algoritmo
A partir de um estado inicial produzem um estado final bem definido, após um período
finito.
Sequência finita de
passos
Passo 1
Passo 2
Entradas Saídas

...

Passo m
Todo algoritmo deve Todo algoritmo possui uma ou
possuir zero, uma ou mais mais saídas, que simboliza(m)
entradas de dados. seu(s) resultado(s).
Todo algoritmo deve
possuir início, meio e fim.
6
Representação de um algoritmo
● Para um algoritmo ser útil, ele deve ser entendido da mesma forma por todas
as pessoas que o utilizarem
○ Até agora usamos uma linguagem informal para representar os passos a serem executados,
simples, porém ambígua.

● Existem diversas maneiras de formalizar a representação de um algoritmo


○ Fluxograma (Diagrama de Blocos): uso de formas geométricas;

○ Pseudocódigo (Português Estruturado): uso de linguagem própria aproximando-se das


linguagens de programação.

7
Diagrama de Blocos - Fluxograma
● Definição:
Fluxograma: [...] Inform. (fluxo+grama). 1. diagrama para representação de um
algoritmo. 2. representação gráfica, por símbolos especiais, da definição,
análise ou método de solução de um problema. [Michaelis dicionário escolar
Língua Portuguesa]

● Sintaxe e semântica do fluxograma


○ Sintaxe: forma correta de empregar seus elementos, que são:
● símbolos gráficos específicos; „
● expressões admissíveis a serem escritas no interior dos símbolos; „
● sub-rotinas predefinidas que podem ser utilizadas nas expressões.
○ Semântica: regras de como entender e simular a solução que o fluxograma propõe.

8
Resumo dos símbolos

9
Um algoritmo para criar um algoritmo!
1. Entender o problema: aplicar os 3 pilares do PC (decomposição,
reconhecimento de padrões e abstração).
2. Definir os estímulos de entrada e resultados de saída.
3. Definir os passos que devem ser executados: usar diferentes estruturas de
controle (sequenciais, condicionais e repetição).
4. Testar o algoritmo definindo uma ou mais instâncias do problema, isto é, um
caso particular do problema.
5. Volte a etapas anteriores se o algoritmo não estiver correto.

Um algoritmo é correto se resolve o problema que promete resolver!


10
Exemplo de algoritmo
Descrição do problema: Descobrir a maior altura em um grupo de pessoas
posicionadas em fila.

11
Exemplo de algoritmo
1. Entender o problema: aplicar os pilares do Pensamento Computacional;
a. Decomposição (identificar quais são as alturas de todos, comparar todas as alturas
para descobrir qual é a maior, etc.)

b. Reconhecimento de Padrões (como realizar a comparação?)

c. Abstração (identificar a pessoa é irrelevante, o que importa é apenas a sua altura)

2. Definir os estímulos de entrada e resultados de saída;


a. Entradas: Uma sequência de n alturas [altura1, altura2..., alturan ]

b. Saídas: A maior altura entre [altura1, altura2..., alturan]

12
Passos do algoritmo - usando narrativa
3. Definir os passos que devem ser executados: usar diferentes estruturas de controle
(sequenciais, condicionais e repetição);
1. Pegue a altura do primeiro da fila. Então, anote em algum lugar esta informação. Esta é a altura
máxima até o momento (atribuição).
2. Percorra cada um dos próximos da fila e faça o seguinte (estrutura de repetição):
a. Pegue a altura do próximo da fila, esta é a altura atual (atribuição).

b. Compare a altura atual com a altura máxima até o momento. Esta comparação pode resultar em três
possibilidades: a altura atual é menor, igual ou é maior que a altura máxima até o momento (estrutura
condicional).

i. Se a altura for menor ou igual, então pegue a próxima altura.

ii. Senão (isto é, se a altura atual for maior) faça o valor da altura máxima ser igual ao valor da altura atual.

3. Informe o valor da altura máxima.

13
Como executar o algoritmo?
4. Testar o algoritmo definindo uma ou mais instâncias do problema, isto é, um
caso particular do problema.
● Definir uma instância do problema:
○ Por exemplo, considerar 3 alturas, ou seja, n = 3.

● Vamos precisar manter informações sobre a altura de cada pessoa.


● Também vamos precisar manter informações sobre a altura atual e altura
máxima.
Nota:
❏ Chamamos de
variáveis os termos
que usamos para
representar os dados.
14
Conceito de variável

Variável representa um valor com um significado físico, esse valor é armazenado


na memória de um computador.

Similar àquele empregado na matemática

15
Atributos de uma variável

Identificador É o nome do local onde o dado que deve ser armazenado

Tipo É o tipo do dado que deve ser armazenado

Informação É o dado em si que deve ser armazenado.

16
Identificadores

● Nome das variáveis, das constantes, dos programas, etc.


○ É permitido utilizar números, letras maiúsculas, letras minúsculas e o
caractere sublinhado nos identificadores.
○ O primeiro caractere não pode ser um número.
○ Não é permitido utilizar as palavras reservadas de uma linguagem nos
identificadores.

17
Tipos de dados

● Tipos numéricos (positivos e negativos):


○ Inteiro: não possui a parte fracionária (ex. 98, 0, -12);
○ Real: possui a parte fracionária (ex. 3.4, -1.23);

● Tipos literais ou cadeias de caracteres:


○ ‘A’, “aluno@utfpr.edu.br”

● Tipos lógicos ou booleanos:


○ verdadeiro ou falso (true ou false);

18
Como executar o algoritmo?
Atribuindo valores às variáveis: Executando os passos do algoritmo:

Identificador Dado

altura_1 1.8

altura_2 1.95

altura_3 1.62

altura_atual ?

altura_maxima ? Nota:
❏ O padrão de nomeação
empregado neste exemplo
chama-se Snake case.

❏ Pesquise sobre outros padrões


e quando devem ser utilizados.

19
Como executar o algoritmo?
Atribuindo valores às variáveis: Executando os passos do algoritmo:

Identificador Dado 1. Pegue a altura do primeiro da fila.

altura_1 1.8
altura_1 = 1.8
altura_2 1.95

altura_3 1.62

altura_atual ?

altura_maxima ? Nota:
❏ “=” é chamado de
operador de atribuição
❏ x = y significa que o valor
de y é atribuído a x (lê-se
x recebe y)
20
Operadores de atribuição

● Atribui o valor da direita à variável da


Operador Exemplo Comentário
esquerda.
= x=y Atribui o valor de y a x
● O valor pode ser:
+= x += y Equivale a x = x + y
○ uma constante, uma variável ou
-= x -= y Equivale a x = x – y uma expressão

*= x *= y Equivale a x = x * y
● Exemplos
○ x = 4;
/= x /= y Equivale a x = x / y
○ y = x + 2;
%= x %= y Equivale a x = x % y
○ y = y + 4;
○ y= 2.5;

21
Como executar o algoritmo?
Atribuindo valores às variáveis: Executando os passos do algoritmo:

Identificador Dado 1. Pegue a altura do primeiro da fila. Esta é a altura máxima


até o momento (atribuição).
altura_1 1.8

altura_2 1.95 altura_1 = 1.8

altura_3 1.62
altura_maxima = altura_1
altura_atual ?

altura_maxima 1.8

22
Como executar o algoritmo?
Atribuindo valores às variáveis: Executando os passos do algoritmo:

Identificador Dado 2. Percorra cada um dos próximos da fila e faça o seguinte


(estrutura de repetição):
altura_1 1.8
a. Pegue a altura do próximo da fila, esta é a altura
altura_2 1.95 atual (atribuição).

altura_3 1.62
altura_atual = altura_2
altura_atual ?

altura_maxima 1.8

23
Como executar o algoritmo?
Atribuindo valores às variáveis: Executando os passos do algoritmo:

Identificador Dado
2. Percorra cada um dos próximos da fila e faça o seguinte
(estrutura de repetição):
altura_1 1.8
a. Pegue a altura do próximo da fila, esta é a altura
altura_2 1.95
atual (atribuição).

altura_3 1.62
b. Compare a altura atual com a altura máxima
até o momento. Esta comparação pode resultar
altura_atual 1.95 em três possibilidades.
altura_maxima 1.8

Menor, Igual ou
altura_atual Maior? altura_maxima

24
Operadores relacionais

Operador Exemplo Comentário

== x == y O conteúdo de x é igual ao de y

!= x != y O conteúdo de x é diferente do de y

<= x <= y O conteúdo de x é menor ou igual ao de y

>= x >= y O conteúdo de x é maior ou igual ao de y

< x<y O conteúdo de x é menor que o de y

> x>y O conteúdo de x é maior que o de y

25
Como executar o algoritmo?
Atribuindo valores às variáveis: Executando os passos do algoritmo:

Identificador Dado 2. Percorra cada um dos próximos da fila e faça o seguinte


(estrutura de repetição):
altura_1 1.8
a. Pegue a altura do próximo da fila, esta é a altura
altura_2 1.95 atual (atribuição).

altura_3 1.62 b. Compare a altura atual com a altura máxima


altura_atual 1.95
até o momento.

altura_maxima 1.8
altura_atual <= altura_maxima

VERDADEIRO OU
FALSO?
26
Como executar o algoritmo?
Atribuindo valores às variáveis: Executando os passos do algoritmo:

Identificador Dado 2. Percorra cada um dos próximos da fila e faça o seguinte


(estrutura de repetição):
altura_1 1.8
a. Pegue a altura do próximo da fila, esta é a altura
altura_2 1.95 atual (atribuição).

altura_3 1.62 b. Compare a altura atual com a altura máxima


altura_atual 1.95
até o momento.

altura_maxima 1.8
altura_atual <= altura_maxima

1.95 1.8
VERDADEIRO OU
FALSO?
27
Como executar o algoritmo?
Atribuindo valores às variáveis: Executando os passos do algoritmo:

Identificador Dado 2. Percorra cada um dos próximos da fila e faça o seguinte


(estrutura de repetição):
altura_1 1.8
a. Pegue a altura do próximo da fila, esta é a altura
altura_2 1.95 atual (atribuição).

altura_3 1.62 b. Compare a altura atual com a altura máxima


altura_atual 1.95
até o momento.

altura_maxima 1.8
altura_atual <= altura_maxima

1.95 1.8

FALSO

28
Como executar o algoritmo?
Atribuindo valores às variáveis: Executando os passos do algoritmo:

Identificador Dado 2. Percorra cada um dos próximos da fila e faça o seguinte


(estrutura de repetição):
altura_1 1.8
a. Pegue a altura do próximo da fila, esta é a altura
altura_2 1.95 atual (atribuição).

altura_3 1.62 b. Compare a altura atual com a altura máxima


altura_atual 1.95
até o momento.
i. Se a altura for menor ou igual, então pegue a
altura_maxima 1.8
altura do próximo.

ii. Senão faça o valor da altura máxima ser igual


ao valor da altura atual.

altura_maxima = altura_atual
29
Como executar o algoritmo?
Atribuindo valores às variáveis: Executando os passos do algoritmo:

Identificador Dado 2. Percorra cada um dos próximos da fila e faça o seguinte


(estrutura de repetição):
altura_1 1.8
a. Pegue a altura do próximo da fila, esta é a altura
altura_2 1.95 atual (atribuição).

altura_3 1.62
altura_atual = altura_3
altura_atual 1.62

altura_maxima 1.95

30
Como executar o algoritmo?
Atribuindo valores às variáveis: Executando os passos do algoritmo:

Identificador Dado 2. Percorra cada um dos próximos da fila e faça o seguinte


(estrutura de repetição):
altura_1 1.8
a. Pegue a altura do próximo da fila, esta é a altura
altura_2 1.95 atual (atribuição).

altura_3 1.62 b. Compare a altura atual com a altura máxima até o


momento.
altura_atual 1.62

altura_maxima 1.95
altura_atual <= altura_maxima

1.62 1.95
VERDADEIRO OU
FALSO?
31
Como executar o algoritmo?
Atribuindo valores às variáveis: Executando os passos do algoritmo:

Identificador Dado 2. Percorra cada um dos próximos da fila e faça o seguinte


(estrutura de repetição):
altura_1 1.8
a. Pegue a altura do próximo da fila, esta é a altura
altura_2 1.95 atual (atribuição).

altura_3 1.62 b. Compare a altura atual com a altura máxima até o


momento.
altura_atual 1.62

altura_maxima 1.95
altura_atual <= altura_maxima

1.62 1.95

VERDADEIRO

32
Como executar o algoritmo?
Atribuindo valores às variáveis: Executando os passos do algoritmo:

Identificador Dado 2. Percorra cada um dos próximos da fila e faça o seguinte


(estrutura de repetição):
altura_1 1.8
a. Pegue a altura do próximo da fila, esta é a altura
altura_2 1.95 atual (atribuição).

altura_3 1.62 b. Compare a altura atual com a altura máxima


altura_atual 1.62
até o momento.
i. Se a altura for menor ou igual, então pegue a
altura_maxima 1.95
altura do próximo.

ii. Senão faça o valor da altura máxima ser igual ao


valor da altura atual.

Todas as alturas já foram


processadas!
33
Como executar o algoritmo?
Atribuindo valores às variáveis: Executando os passos do algoritmo:

Identificador Dado 3. Informe o valor da altura máxima.

altura_1 1.8

altura_2 1.95
A altura máxima é 1.95!
altura_3 1.62

altura_atual 1.62

altura_maxima 1.95 Nota:


❏ Idealmente, devemos
realizar mais testes para
verificar se o algoritmo é
executado corretamente
para diferentes instâncias
do problema!
34
Algoritmos computacionais e programas
● Algoritmos computacionais são algoritmos executados por um computador.
○ Devemos implementá-lo por meio de programas de computador.

● Programa é a tradução de um algoritmo para um formato que o computador entende.


○ Esta tradução é chamada de implementação.

● Implementação: os programas são implementados em alguma linguagem de


programação (exemplos: Java, C, Pascal, Phyton, etc.).

algoritmo
+ implementação
= programa

Representação Usando uma


narrativa, linguagem de Código
fluxograma, etc programação executável

35
Complementar
1. Pesquise sobre as diferentes formas de representar os algoritmos e avalie
qual delas você considera melhor.

2. Pesquise sobre operação módulo (resto da divisão) em linguagens de


programação e exemplifique como ele pode ser utilizado para resolver
problemas.

36
Referências
SOUZA, Marco A. Furlan de; GOMES, Marcelo M.; SOARES, Marcio V.;
CONCILIO, Ricardo. Algoritmos e lógica de programação: um texto introdutório
para a engenharia. [Digite o Local da Editora]: Cengage Learning Brasil, 2019.
E-book. ISBN 9788522128150. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9788522128150/. Acesso em: 13
abr. 2023.

37

Você também pode gostar