PROGRAMAÇÃO - PRG
ALGORITMOS
Prof. Stefano
1
Prof. Stefano
•
•
•
•
•
•
•
Introdução
Algoritmos
Fluxograma
Constantes e variáveis
Operadores
Declarações de Controle
Exercícios
2
Introdução
• Lógica de programação:
– Técnica para gerar uma determinada sequência de
atividades para atingir um determinado objetivo;
• Sequência Lógica:
– São os diferentes passos ou instruções para solucionar um
problema;
• Instruções:
– São um conjunto de regras ou normas definidas para
realização de uma atividade. É uma ação elementar
executada pelo computador;
3
Algoritmos
• Algoritmos é uma maneira de formalizar uma
sequência de passos para execução de uma
atividade.
• A formalização é necessária para que diferentes
pessoas possam entender e repetir os passos para
chegar a solução do problema;
• Ex.:
–
–
–
–
Executar a operação de soma em uma calculadora;
Fazer uma transferência bancária;
Ajustar o horário no celular;
Programar um DVD para gravar um programa;
4
Algoritmos
• EXERCÍCIO 1:
– Descreva passo a passo como você faria para obter a
média de três números a seguir em sua calculadora;
MEDIA = 12 + 6 + 9
3
5
Fluxograma
• Para representar graficamente um algoritmo
utilizaremos o fluxograma;
• Um fluxograma é a representação das diferentes
etapas de um processo através de elementos gráficos
ligados conforme a lógica de programação;
• Simbologia
Símbolo
Função
Início ou Fim de um algoritmo
Processamento geral
Decisão
6
Fluxograma
• EXERCÍCIO 2:
– Implemente em um fluxograma o algoritmo do cálculo da
média de três números a seguir em sua calculadora do
exercício anterior;
7
Constantes e variáveis
• Identificadores: São nomes arbitrários dados as
funções, variáveis, constantes. Os identificadores
podem ser1 letras de A à Z, números de 0 à 9 e
“_“(underline). Não pode começar com número.
– Exemplos:
• Temperatura_media
• Temp
• _T1
1 – Depende de cada compilador
8
Constantes e variáveis
• Constantes: são elementos que tem um valor fixo,
não podendo ser mudados durante a execução do
programa;
– Exemplo: π = 3,1415927.... Em vez de escrever toda vez o
número podemos nomear uma constante PI = 3,1415927 e
durante programa utilizar PI;
• Variáveis: são elementos que permitem a alteração
do seu valor durante a execução do programa. É
recomendável que no início do programa seja
atribuído um valor inicial a elas, que elas sejam
inicializadas;
– Exemplo: Calcule consumo médio de combustível de um
automóvel. CONSUMO= KM/L
9
Constantes e variáveis
• EXERCÍCIO 3:
– Para preparar uma salada de frutas, um cozinheiro foi
comprar 4 frutas, onde cada fruta tem seu preço e a
quantidade que o cozinheiro precisa descrito na tabela a
seguir. Monte um algoritmo que calcule quanto ele terá
que pagar por cada fruta e o valor total da despesa;
FR1
FR2
FR3
FR4
Preço por
kg(R$)
1,30
1,90
4,50
0,98
Peso (kg)
2,5
1,3
0,6
3,8
Observar a utilização de constantes e variáveis
10
Operadores
• Operador é um símbolo que
faz com que
compilador execute alguma operação matemática ou
lógica;
• Os principais operadores são aritméticos, de relação,
lógicos e bit a bit;
• A seguir serão apresentados os principais elementos
de cada operador. Este tópico será visto em maiores
detalhes na linguagem de programação aplicado
diretamente ao compilador utilizado;
11
Operadores
• Operador Aritmético
Operador
Operação realizada
+
*
/
%
++
--
Soma
Subtração
Multiplicação
Divisão
Resto da divisão
Incremento
Decremento
12
Operadores
• Operador de Relação: eles testam as relações nas
expressões. Seu resultado é 1 se for verdadeiro ou 0
se for falso;
Operador
Operação realizada
==
!=
>
<
>=
<=
Igual a
Não igual a
Maior que
Menor que
Maior ou igual a
Menor ou igual a
13
Operadores
•
•
•
•
•
•
•
Exemplos de Operador de Relação:
4 = = 3; retorna 0 - FALSO
3 = = 3; retorna 1 - VERDADEIRO
7 > = 3; retorna 1 – VERDADEIRO
4 < = 3; retorna 0 - FALSO
4 ! = 3; retorna 1 – VERDADEIRO
4 > 3; retorna 1 – VERDADEIRO
14
Operadores
• Operadores lógicos: realizam operações lógicas nas
expressões.
Os operandos são considerados
verdadeiros(1) ou falsos(0). Seu resultado é 1 se for
verdadeiro ou 0 se for falso;
Operador
Operação realizada
&&
||
!
AND
OR
NOT (Negado)
15
Operadores
• Exemplos de Operador Lógico:
a) (3 > 1) & & (2= = 2);
1 & & 1; resulta em 1 - verdadeiro
b) (3 > 7) | | (2= = 2);
0 | | 1 ; resulta em 1 - verdadeiro
c) !{(3 > 1) & & (2= = 2)} ;
!{ 1 & &
1};
!{ 1} ; - resulta em 0 - falso
16
Operadores
• Operadores Bit a Bit: eles testam as relações dos
operadores nas expressões bit a bit;
Operador
Operação realizada
&
|
^
~
>>
AND
<<
OR
XOR
NOT
SHIFT RIGHT,desloca bits a
direita
SHIFT LEFT, desloca bits a
esquerda
17
Operadores
• Exemplos de Operador Bit a Bit:
a) v1= 101101, v2=110011, v3 = v1 & v2; AND
v1 = 1 0 1 1 0 1
v2 = 1 1 0 0 1 1
v3 = 1 0 0 0 0 1
b) v1= 110001, v2=010111, v3 = v1 | v2; OR
v1 = 1 1 0 0 0 1
v2 = 0 1 0 1 1 1
v3 = 1 1 0 1 1 1
18
Operadores
• Exemplos de Operador Bit a Bit:
c) v1= 101101, v2=110011, v3 = v1 ^ v2; XOR
v1 = 1 0 1 1 0 1
v2 = 1 1 0 0 1 1
v3 = 0 1 1 1 1 0
d) v1= 110001, v2 = ~ v1 ; NOT
v1 = 1 1 0 0 0 1
v2 = 0 0 1 1 1 0
19
Operadores
• Exemplos de Operador Bit a Bit:
e) v1= 000101, v2=v1 << 2; SHIFT LEFT (x 2)
= 001010; <<1
v2 = 010100; <<2
f) v1= 010100, v2=v1 >> 2; SHIFT RIGHT (÷ 2)
= 001010; >> 1
v2 = 000101; >> 2
20
Declarações de Controle
• As declarações controlam o fluxo de execução de um
algoritmo, sendo assim de fundamental importância
o domínio da sua correta utilização;
• Em uma linguagem de programação existem
diferentes declarações, mas aqui, para um primeiro
contato, utilizaremos a declaração de controle
condicional;
21
Declarações de Controle
• Declaração de controle condicional
IF.......THEN....ELSE
SE......ENTÃO...SENÃO
• Ele é utilizado para executar um determinado
comando se uma determinada condição for
verdadeira. A opção ELSE não é obrigatória.
IF (true) THEN
CommandsTrue
ELSE
CommandsFalse
IF (verdadeiro) THEN
ComandosVerdadeiro
ELSE
ComandosFalso
22
Declarações de Controle
• Para implementação do caso geral no algoritmo
utilizamos o losango;
As saídas V e F
podem ser trocadas
Pergunta
pergunta
?
V
Comandos
Verdadeiro
F
Comandos
Falso
23
Declarações de Controle
• OPÇÃO 1: Somente verdadeiro;
Pergunta
pergunta
?
V
Comandos
Verdadeiro
24
Declarações de Controle
• OPÇÃO 1: Exercício 4:
• Considere um forno onde a temperatura limite seja
de 700º C. Se a temperatura atual do forno atingir
este valor o alarme deve ser ligado. Elabore um
algoritmo que implemente essa situação;
25
Declarações de Controle
• Resolução
Início
In
Ler Tforno
V
Tforno >= 700
Ligar Alarme
F
Fim
In
A inclusão da etapa de
leitura do sensor do forno,
considerando ser um sinal
analógico, foi colocada
aqui porque geralmente
requer
um
tratamento
adicional no programa.
26
Declarações de Controle
• CASO 2: Com verdadeiro e falso o algoritmo fica da
forma como já visto anteriormente;
Pergunta
pergunta
?
V
Comandos
Verdadeiro
F
Comandos
Falso
27
Declarações de Controle
• Exercício 5: Na esteira abaixo quando o sensor S1 for
acionado o motor M1 deve ser ligado. Implemente
um algoritmo que atenda o solicitado.
S1
M1
28
Declarações de Controle
• Resolução
Início
In
Ler S1
S1 == 1
F
M1= 0
V
M1= 1
A inclusão da etapa de leitura
do sensor S1 em muitas
situações
pode
ser
considerada
redundante,
sendo colocada aqui para
chamar a atenção ao fato,
podendo ser omitida no futuro.
Fim
In
29
Declarações de Controle
• Exercício 6: Na esteira abaixo quando o sensor S1 for
acionado por uma peça o motor M1 deve ser ligado e
quando a peça acionar o sensor S2 o motor deve ser
desligado. Implemente um algoritmo que atenda o
solicitado.
S1
S2
M1
30
Declarações de Controle
• Resolução
31
Declarações de Controle
• Exercício 7: Na esteira abaixo a peça é colocada na posição
dada pelo sensor S1, e com isso o motor M1 é ligado, levando
a peça até o sistema de aquecimento. Neste instante o motor
M1 é desligado e a peça espera 10 segundos, sendo o motor
M1 ligado novamente para levar a peça para o resfriamento,
quando então o motor M1 é desligado novamente,
aguardando agora 20 segundos neste estágio. Após decorrido
o tempo o motor M1 é ligado novamente para levar a peça
até a posição dada pelo sensor S4, quando o motor é
desligado novamente. Implemente um algoritmo que atenda
o solicitado.
32
Declarações de Controle
• Resolução
33
Declarações de Controle
• Exercício 8: No sistema abaixo quando uma peça é colocada
na posição dada pelo sensor S1 o motor M1 é ligado, levando
a peça até o sensor S2 e caindo na caixa de saída. Sabe-se que
a caixa suporta até 20 peças. Implemente um contador(CONT)
para que somente quando somente 20 peças caírem na caixa
o motor M1 é desligado e a lâmpada L1 é ligada, alertando ao
operador da necessidade de trocar a caixa. Implemente um
algoritmo que atenda o solicitado.
34
Declarações de Controle
• Resolução
35
Declarações de Controle
• Exercício 9: No exercício anterior foi acrescentado o
botão B1 no painel para que quando o operador
trocar a caixa ele irá apertar o botão a lâmpada L1 irá
apagar, o motor M1 é ligado novamente, o contador
é zerado e o ciclo se inicia novamente.
36
Declarações de Controle
• Resolução
37
Declarações de Controle
• CASO 3: IF ANINHADO. Quando vários laços são
utilizados, um dentro de outro;
V
Pergunta1
?
Comandos1
N
V
Comandos2
Pergunta2
?
N
V
Pergunta3
?
Comandos3
N
Comandos4
38
Declarações de Controle
• Exercício 10: No reservatório da figura abaixo um
sensor mede o nível (NIVEL) de líquido existente.
Elabore um algoritmo que controle o acionamento
das bombas de acordo com a tabela abaixo;
NIVEL
B1
B2
B3
NIVEL>9
0
0
0
6<NIVEL≤9
1
0
0
2<NIVEL≤6
1
1
0
NIVEL≤2
1
1
1
39
Declarações de Controle
• Resolução
40
Declarações de Controle
• Exercício 11: No sistema de seleção da página
seguinte quando uma caixa é colocada na posição
dada pelo sensor S1 o motor M1 é ligado levando a
caixa até o sensor S5, quando então é desligado.
Implemente um algoritmo para que de acordo com o
tipo de caixa, dada pela figura e identificada no
sistema através do acionamento dos sensores S2,S3
e S4, somente a lâmpada correspondente fique
ligada. Esta lâmpada somente poderá ficar ligada até
a caixa correspondente chegar ao sensor S5. O
sistema é contínuo. Implemente também um
contador para cada tipo de caixa.
41
Declarações de Controle
42
Declarações de Controle
• Resolução
43
REFERÊNCIAS
•
•
•
•
•
Robert Schildt. C completo e total.
User´s Manual MikroC
Fábio Pereira. Programação em C
Notas de aula do Prof. Stefano
Curso básico de lógica de programação.
Unicamp
44