PROGRAMAÇÃO - PRG
Introdução aos
algoritmos de
programação
Prof. Rodrigo Coral
1
Prof. Rodrigo Coral
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;
2
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;
3
Algoritmos
• EXERCÍCIO 1:
– Escreva um algoritmo para obter a média de três números
a seguir em sua calculadora; Lembre-se que qualquer um
que não conheça sua calculadora deverá ser capaz de
realizar essa atividade sem que dúvidas surjam.
MEDIA = 12 + 6 + 9
3
4
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
5
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
6
Fluxograma
• EXERCÍCIO 2:
– Implemente um algorítimo que poderia ser utilizado pelo
computador para calcular a média aritmética de duas
avaliações de um aluno. Ao final o programa deverá ser
capaz de fornecer a informação se o aluno está aprovado
ou reprovado. A média para aprovação é de 6,0;
– Use indicadores de variáveis para esse exercício
7
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
8
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;
9
Operadores
• Operador Aritmético
Operador
Operação realizada
+
*
/
%
++
--
Soma
Subtração
Multiplicação
Divisão
Resto da divisão
Incremento
Decremento
10
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
11
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
12
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)
13
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
14
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
15
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
16
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
17
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
18
Programação estruturada
• Em 1960 Böhm e jacopini provaram que todo
algorítimo computacional pode ser descrito em
termos de apenas três padrões de passos,
denominados de estruturas de controle, que são
passos básicos que auxiliam na construção dos
programas:
• Sequência;
• Seleção;
• Repetição;
19
Programação estruturada
• Sequência: estrutura que permite indicar dois ou
mais passos que devem ser executados
sequencialmente, na ordem que são especificados;
20
Programação estruturada
• Condição: permite indicar dois ou mais passos que
devem ser executados de forma mutuamente
exclusiva, dependendo de uma determinada
condição;
V
?
F
21
Programação estruturada
• Repetição: permite indicar um ou mais passos que
devem ser executados repetidamente, dependendo
de uma determinada condição;
V
?
F
22
Programação estruturada
• 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 e o forno
desligado. Elabore um algoritmo que implemente
essa situação;
23
Declarações de Controle
• Resolução
Variáveis:
Tforno – temperatura do forno
Início
In
Ler Tforno
V
Tforno >= 700
F
Ligar Alarme
Desliga o forno
Ler Tforno
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.
Fim
In
24
Declarações de Controle
Início
In
F
Alarme
== 1?
Variáveis-entrada:
Tforno;
S_Forno;
Variáveis-sáida:
Alarme;
Forno;
S_Forno
== 1?
V
F
Ligar forno?
V
V
Ler Tforno
S_Forno = 1
Desligar
alarme?
V
Alarme = 0
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.
F
F
F
Tforno
>= 700?
V
F
Alarme = 1
Finalizar
programa?
V
Forno = 0
Fim
In
25
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
26
Declarações de Controle
• Exercício 5: Implemente um algoritmo em
programação estruturada na qual é possível
converter temperaturas em graus celcius em graus
fahrenheit ou Kelvin
27
Declarações de Controle
• Resolução
28
Declarações de Controle
• Exercício 6: 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.
29
Declarações de Controle
• Resolução
30
Declarações de Controle
• Exercício 7: 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.
31
Declarações de Controle
• Resolução
32
Declarações de Controle
• Exercício 8: 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.
33
Declarações de Controle
• Resolução
34
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
35
Declarações de Controle
• Exercício 9: 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
36
Declarações de Controle
• Resolução
37
Declarações de Controle
• Exercício 10: 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.
38
Declarações de Controle
39
Declarações de Controle
• Resolução
40
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
41