Você está na página 1de 40

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE PERNAMBUCO

Introdução à Programação

Profª Gilka Rocha Barbosa

1
Introdução à
Programação
Algoritmos
Método para construção de algoritmos
a) Ler atentamente o enunciado, destacando os
pontos mais importantes;
b) Definir os dados de saída
 Quais dados serão gerados

a) Definir os dados de entrada


 Quais dados serão recebidos

d) Definir o processamento
 Quais cálculos serão efetuados e quais as restrições
para esses cálculos.

e) Construir o algoritmo utilizando uma


representação escolhida;
f) Testar o algoritmo realizando simulações.
3
Representação de algoritmos
Descrição narrativa

Analisar o enunciado do problema e escrever os


passos a serem seguidos para resolução do
problema utilizando uma linguagem natural.

Vantagem
Não é necessário aprender nenhum novo
conceito.
Desvantagem
a linguagem natural abre espaço para várias
interpretações, o que posteriormente dificultará
a transcrição desse algoritmo para programa.

4
Representação de algoritmos
Fluxograma

Analisar o enunciado do problema e escrever os


passos a serem seguidos para resolução do
problema utilizando símbolos gráficos
predefinidos.

Vantagem
O entendimento de elemento gráfico é mais fácil
que o entendimento de textos.
Desvantagem
É necessário aprender a simbologia dos
fluxogramas e o algoritmo resultante não
apresenta muitos detalhes dificultando sua
transcrição para um programa.
5
Representação de algoritmos
Fluxograma
Conjunto de símbolos utilizados no fluxograma

Início e fim do algoritmo

Indica o sentido do fluxo de dados, serve


exclusivamente para conectar os símbolos
existentes
Cálculos e atribuições de valores

Entrada de dados

Saída de dados

Tomada de decisão, indicando a possibilidade se


desvios

6
Representação de algoritmos
Pseudocódigo, Portugol ou Português estruturado

Analisar o enunciado do problema e escrever os


passos a serem seguidos para resolução do problema
por meio de regras predefinidas.
Vantagem
a passagem do algoritmo para qualquer linguagem de
programação é quase imediata, bastando conhecer as
palavras reservadas da linguagem de programação.

Desvantagem
é necessário aprender as regras do pseudocódigo

7
Exemplo de algoritmo
Mostrar o resultado da soma de dois números

a) Descrição narrativa
Passo 1: Receber os dois números que serão somados.
Passo 2: Somar números.
Passo 3: Mostrar o resultado obtido.

c) Pseudocódigo
b) Fluxograma
Início ALGORITMO soma
DECLARE N1, N2, S : NUMÉRICO
N1, N2
INICIO
S = N1 + N2 LEIA (“Digite dois números”, N1, N2)
S ← N1 + N2
S
ESCREVA (“Soma = “, S)
Fim FIM

8
Exercícios - Usando pseudocódigo

1. Faça um algoritmo para mostrar o resultado da


divisão de dois números;
2. Faça um algoritmo para calcular a média
aritmética entre duas notas de um aluno e
para mostrar a situação desse aluno, que pode
ser aprovado (média maior ou igual a 7,0) ou
reprovado;
3. Faça um algoritmo para calcular o novo salário
de um funcionário. Sabe-se que os
funcionários que possuem salário atual até R$
500,00 terão aumento de 20%, os demais
terão aumento de 10%.

9
Estrutura de um algoritmo

Dados de Dados de
Processamento
entrada saída

Algoritmo
<declaração de variáveis>
Início
<comandos>
Fim.
10
Estrutura de um algoritmo

Algoritmo <nome do algoritmo>;


declaração de variáveis;
início
comando 1;
comando 2;
....
comando n;
fim.

11
Estrutura de um algoritmo

Algoritmo soma
declare A, B, C : numérico;
Início
leia (“Informe dois número”, A, B);
C ← A + B;
escreva (‘O valor da soma é:’, C);
Fim.

12
Operações com variáveis
 Variáveis devem ser declaradas
Exemplo: <variável>: <tipo>;

 As variáveis são modificadas através de um


comando de atribuição (=, , , := ) ou de leitura
Exemplo: Ler <variável>;
a  3;
a  a + 2;

 As variáveis podem ser impressas


Exemplo: Escrever (a);

 Existem condições
 para testar se a operação pode ser executada
 para verificar o resultado (falso/verdadeiro)
13
Atribuição
 Atribui valores ou operações a variáveis.

 := = 

<identificador> ← <expressão | identificador>

 ex:
X ← 4;
X ← x + 1;
y ← ‘aula’;
teste ← “falso”;

14
Comando de entrada
Nome das variáveis
nas quais serão
Palavra- armazenados o
valores provenientes
chave do meio de entrada

leia (<identificador> [,<identificador> [ ... ] ] );


 Captura valores do dispositivo de entrada
especificado (Padrão = teclado).
 Os dados recebidos são armazenados em
variáveis.
 Pode conter mensagens.

leia (a)
leia (g, r, b)
leia (‘Digite seu nome: ‘, nome)
15
Comando de saída
Conteúdo que será
Palavra- mostrado através de
um meio de saída.
chave
escreva ( <expressão> );

 Envia a expressão para o dispositivo de saída


especificado (Padrão = tela).
 Expressão pode ser uma combinação de
variáveis, constantes e mensagens separadas
por vírgulas.

escreva (x)
escreva (‘Conteúdo de Y = ‘, y)
escreva(“O fatorial de”, N, " é ", fat);
16
Exercício

6. Dados três valores positivos, a, b e c,


determine a sua média aritmética,
harmônica, geométrica e ponderada com
pesos de 1, 2 e 3 respectivamente.

18
Estruturas

 Estrutura sequencial;
 Estrutura condicional;
 Estrutura de repetição;

19
Estrutura Sequencial
 Os comandos são executados na ordem
em que aparecem, de cima para baixo.

Algoritmo SEQUÊNCIA;
declare <lista de variáveis>;
início
Os comandos serão
<comando 1>
executados na ordem
<comando 2> em que aparecem.
...
<comando n>
fim.

20
Estrutura Sequencial
Ex.:
Algoritmo Média
declare Nome : literal
Nota1, Nota2, media : real
início
leia (‘Digite o nome do aluno:’, nome )
leia (‘Digite a primeira nota: ’, Nota1)
leia (‘Digite a segunda nota: ’, Nota2)
media ← ( Nota1 + Nota2 ) / 2
escreva (‘A média de ‘, nome,` é: ’ , media )
fim
Exercício:
Faça um Teste de Mesa do algoritmo Média para 3 alunos.

21
Estrutura de Controle Condicional

Estrutura de Desvio Condicional,


Controle Condicional,
Decisão ou
Seleção

Permite a escolha entre blocos de


comandos alternativos.

22
A tomada de decisão
 Em muitas situações, é necessário executar
um grupo de ações dependendo do
resultado de certas avaliações.

 Imagine o caso de identificar se um aluno


foi ou não aprovado. O resultado depende
da avaliação da média obtida pelo aluno.

 Usamos o desvio condicional para executar


um grupo de comandos dependendo do
resultado de uma expressão lógica.

23
Desvio condicional simples

Verdadeira
Condição comandos

Falsa

 Se a condição for verdadeira, provocará um


desvio e executará o bloco de comandos.

24
Desvio condicional simples
...
se <condição>
[então]
<instrução para condição verdadeira>
fim-se
...
 Condição é uma expressão lógica.
 Se o resultado da condição for verdadeiro, será
executado o comando após a palavra então.

 Caso a condição resulte em falso, ou após a


execução da instrução, o programa continua
executando os comandos após o fim-se.
25
Desvio condicional simples
Algoritmo Condicional_Simples;
declare N1, N2, Media : numérico
Inicio
leia (‘Digite a primeira nota: ’, N1)
leia (‘Digite a segunda nota: ’, N2)
Media ← (N1 + N2)/2
escreva (‘Média = ’, Media)
se Media < 7,0
escreva (‘Deve fazer o Exame Final’)
fim-se
fim.
26
Desvio condicional composto

Falsa Verdadeira
Comandos B Condição Comandos A

 Se a condição for verdadeira, executará


o bloco de comandos A, caso contrário,
executará o bloco B. Nunca os dois.

27
Desvio condicional composto
...
se <condição>
[então ]
<instrução para condição verdadeira>
senão
<instrução para condição falsa>
fim-se
...
 Se o resultado da condição for verdadeiro, será
executado o comando após a palavra então,
caso contrário, será executado a instrução após
a palavra senão.
 Somente uma das duas será executada. Após,
o programa continua...
28
Desvio condicional composto
Algoritmo Condicional_Composto
declare N1, N2, Media : real
Início
leia (‘Digite a primeira nota: ’, N1)
leia (‘Digite a segunda nota: ’, N2)
Media ← (N1 + N2)/2
se Media < 7.0
escreva (‘Aluno Reprovado!!!’)
senão
escreva (‘Aluno Aprovado!!!’)
fim-se
escreva (‘Média = ’, Media)
fim
29
Bloco de Comandos

 Pode-se utilizar um grupo de


comandos ao invés de uma única
instrução.

se Media < 7,0


leia (‘Digite NotaFinal:’, NotaFinal)
MediaFinal ← (Media+NotaFinal) / 2
senão
escreva(‘Aprovado.’)
fim-se

30
Aninhamento de Estruturas

 Uma estrutura pode conter outras


estruturas em sua definição.

 Não há limites para a quantidade de


níveis de aninhamento.

31
Desvio condicional aninhado
Algoritmo Condicional_Aninhado
declare N1, N2, Media : real
início
escreva ( ‘Digite duas notas:’, N1, N2)
Media ← (N1 + N2)/2
se Media < 7,0
se Media < 3
escreva(‘Aluno Reprovado!!!’)
senão
escreva (“Aluno em final”)
fim-se
senão
escreva(‘Aluno Aprovado!!!’)
fim-se
escreva(‘Média = ’, Media)
fim
32
Exercícios
20. Construa um algoritmo que receba 2 números
e, se o primeiro número for maior que zero e
menor que 10, mostre a soma destes números;
caso contrário, mostre a multiplicação deles.

21. Construa um algoritmo que receba cinco grupos


de 2 números e mostre a soma destes
números;

22. Faça um algoritmo que receba dois números e


mostre o maior deles;

23. Faça um algoritmo que receba três números e


mostre-os em ordem crescente.

33
Estruturas de Repetição
Permitem a execução de comandos
repetidas vezes.
Repetição condicional
A repetição acontecerá com base em
uma condição.
 Condição no início
 Condição no final

Repetição com variável de controle


A repetição será controlada por uma
variável (contador)
34
Condição no início

Verdadeira
condição comandos

Falsa

Se a condição for verdadeira, os


comandos serão executados e o processo
reinicia; caso contrário, a repetição não
acontecerá

35
Interrupção no início
Sintaxe
enquanto <condição> [faça]
[início]
<comandos>
fim-enquanto
Exemplo 1
leia (“Digite um número: “, Y)
X←0
enquanto X<Y
escreva ( X )
X←X+1
fim-enquanto
36
Exemplo: Calcular a média de várias notas. A nota = -1
indica que já foram informadas todas as notas (flag).

leia(Nota)
Total ← 0
N←0
enquanto Nota<>-1
Total ← Total + Nota
N←N+1
leia (Nota)
fim-enquanto
se N > 0
Media ← Total / N
escreva ( Media )
senão
escreva ( “Notas não informadas”)
fim-se
37
Variável de Controle
 Repetições que possuem um número finito de
execuções (conhecido) podem ser processadas
através de uma repetição controlada por uma
variável de controle do tipo contador;

 Podem ser crescentes ou decrescentes;

 A execução dos comandos deve acontecer para


cada valor de um determinado conjunto de
valores. Em cada repetição, a variável de
controle assume um dos valores do conjunto.
Quando a variável tiver assumido uma vez
cada valor, então a repetição termina.
38
Variável de controle
Sintaxe
para <VarControle> ← <ValorIni> até
<ValorFim> [de <Incremento>] [faça]
[início]
<comandos>
fim-para
 A variável de controle (VarControle) assumirá cada
elemento entre o ValorIni e o ValorFim;
 Na primeira vez, a variável de controle assume o
ValorIni e executa os comandos uma vez. Ao terminar
a execução, assume o sucessor de ValorIni e executa
novamente. Ao assumir o ValorFim e executar os
comandos, a repetição é interrompida;
 Algumas linguagens aceitam definir o tamanho do
incremento.
39
Variável de Controle
 Exemplo 1
para X ← 1 até 10 faça
escreva ( X )
fim-para

 Exemplo 2
z←0
para X ← 1 até 5
leia ( Y )
z←z+Y
fim-para
x ← z/X
Escreva (X)
40
Exercícios
27. Construa um algoritmo que receba um valor N inteiro e
positivo, calcule e mostre o fatorial de N (N!).
28. Construa um algoritmo que leia dez conjuntos de dois
valores, o primeiro valor corresponde ao número do
aluno, o segundo valor corresponde à sua altura em
centímetros. Encontre e mostre o número e a altura do
aluno mais baixo e do aluno mais alto.
29.Faça um algoritmo que leia cinco pares de valores (a,b),
todos inteiros, positivos, um de cada vez. Mostre os
números inteiros pares de a até b (inclusive).
30.Faça um algoritmo que leia o número de termos e um
valor positivo para x, calcule e mostre o valor da série:
x 2 x3 x 4 x5 x6 x7
s         ...
1! 2! 3! 4! 5! 6!
41

Você também pode gostar