Академический Документы
Профессиональный Документы
Культура Документы
1. Objetivos da computação
2. Desenvolvendo programas
3. Lógica e funções
4. Descrição narrativa
5. Fluxogramas
6. Pseudocódigo
7. Paradigmas de programação
8. Linguagem C
9. Atividades
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 1
Objetivo Básico da Computação
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 2
O computador/hardware/celular/robô é capaz de auxiliar em qualquer coisa
que lhe seja solicitada, mas:
• Não é independente
Muitas das vezes queremos que uma determinada rotina seja executada
por uma máquina! O computador é perfeito para isto!
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 3
Desenvolvimento de um programa
Para que o computador consiga ler o programa e entender o que fazer, este
programa deve ser escrito em uma linguagem que o computador entenda, ou
seja, em uma LINGUAGEM DE PROGRAMAÇÃO.
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 4
As principais etapas do desenvolvimento de um programa são:
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 5
Programas e funções
f (n) = 2 × n
n f (n)
0 0
1 2
2 4
3 6
4 8
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 6
Exemplo 2 Função matemática que calcula o consumo mensal de energia
elétrica de uma casa:
R$ 0.49414 × k, se k ≤ 100 KWh
f (k) = (1)
R$ 0.52914 × k, caso contrário
k f (k)
0 R$ 0.00
1 R$ 0.49414
30 R$ 14.82342
50 R$ 24.707
70 R$ 34.5898
99 R$ 48.91986
100 R$ 49.414
101 R$ 53.44314
150 R$ 79.371
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 7
Atividades
Esta atividade consiste na criação de funções matemáticas e deve ser en-
tregue no Google Classroom.
1. Faça uma função que tenha como entrada dois números naturais e exiba a
soma entre eles.
2. Faça uma função que tenha como entrada um número real e apresente a
raiz quadrada dele.
3. Faça uma função que tenha como entrada um número natural e exiba um
número ı́mpar relacionado a esse natural.
4. Faça uma função que imprima o resto da divisão de um número natural por
5.
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 8
Lógica e algoritmos
Um algoritmo pode ser aplicado em qualquer problema do dia-a-dia,
mesmo que não seja computacional.
Algoritmos exigem uma sequencia de passos detalhados que tenham sen-
tido lógico.
Exemplos de algoritmos:
• Fazer um sanduı́che;
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 9
Representação de Algoritmos
• Descrição Narrativa
• Fluxograma
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 10
Descrição Narrativa
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 11
Exemplo Algoritmo 1 - Somar três números:
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 12
Exemplo Algoritmo 2 - Sacar dinheiro no caixa eletrônico
2. colocar o cartão
3. digitar a senha
6. retirar o cartão
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 13
Fluxograma
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 14
Exemplo Algoritmo 3 - Possibilidades de um dia de domingo
Figura 2: Exemplo de fluxograma: Siga as setas a partir do nó Inı́cio. Retângulos indicam ações do algoritmo, enquanto que os
losangos indicam decisões que o algoritmo deve tomar. Há apenas um Inı́cio, mas pode ter vários nós Fim.
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 15
Exemplo Algoritmo 4 - Dados dois números A e B, escrever o maior den-
tre eles.
Figura 3: Dois fluxogramas diferentes que representam maneiras de escrever o maior entre dois números. Leia da elipse de inı́cio até
a elipse final.
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 16
Exemplo Algoritmo 5 - Média aritmética de duas notas do aluno, exibindo-
a e mostrando “Aprovado”, caso a média seja maior ou igual a 7, ou “Repro-
vado” (caso contrário).
Figura 4: Fluxograma que representa o algoritmo para fazer a média aritmética das notas de um aluno e exibir mensagem de
aprovação ou reprovação. Leia da elipse de inı́cio até a elipse final.
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 17
PN
Exemplo Algoritmo 6 - Somatório de i=0 ai = a0 + a1 + a2 + · · · + aN .
Figura 5: Fluxograma que representa o somatório de N valores a serem fornecidos pelo teclado. Dados de entrada: N número de
valores e ai que representa o valor de um dos N números a serem inseridos. Dado de saı́da é o somatório S . Observe que a estrutura
de repetição utilizada é caracterizada por um teste (decisão) de uma expressão que deverá resultar em verdadeiro enquanto houver
número a ser lido (dentro da quantidade N de números), um contador de ı́tens lidos “i” e um bloco de repetição terminado em um arco
que conduz o fluxo de execução ao inı́cio da decisão.
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 18
Elementos básicos de um Fluxograma
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 19
Teste de Mesa
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 20
Atividades
Faça um algoritmo em fluxograma para:
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 21
Pseudocódigo ou Portugol
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 22
Exemplo Algoritmo 7 - Algoritmo em pseudocódigo que lê dois inteiros e
apresenta o produto deles.
algoritmo “Multiplicação”
var
n1, n2, m: inteiro
inicio
escreva(“Digite dois números:”)
leia(n1)
leia(n2)
m ← n1 × n2
escreval(“Multiplicação = ”, m)
fim algoritmo
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 23
Exemplo Algoritmo 8 - Descubra o que esse algoritmo em Portugol faz.
algoritmo “Mistério”
var
n1, n2, d: inteiro
inicio
escreva(“Digite dois números:”)
leia(n1)
leia(n2)
se n2 = 0 então
escreva(“Impossı́vel fazer a operação.”)
senão
d ← n1/n2
escreval (“Resultado =”, d)
fimalgoritmo
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 24
Exemplo Algoritmo 9 - Soma enquanto valor for diferente de zero.
algoritmo “SomaEnquantoValorDiferenteDe0”
var
valorDigitado, soma: real
inicio
soma ← 0
escreva (“Digite um valor para a soma: ”)
leia (valorDigitado)
enquanto valorDigitado <> 0 faça
soma ← soma + valorDigitado
leia (valorDigitado)
fimenquanto
escreval (“Resultado: ”, soma)
fimalgoritmo
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 25
Atividades
Escreva algoritmos em Portugol (pseudocódigos) para:
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 26
Linguagens de programação e paradigmas
Uma linguagem de programação (LP) é uma ferramenta utilizada pelo
profissional de computação para escrever programas, isto é, conjuntos de
instruções a serem seguidas pelo computador para realizar um determinado
processo.
Serve para o ser humano “conversar” com a máquina, de tal forma, que ela
possa fazer algo útil a ele.
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 27
Linguagens de programação e paradigmas
Classificação das Linguagens pelo Nı́vel:
• Baixo nı́vel
– Voltadas para a máquina: Os programas são escritos usando instruções
do processador.
– Genericamente chamadas de linguagens Assembly
– Vantagem: Maior velocidade de processamento.
– Desvantagens: Dificuldade de programação, e geralmente um código
gerado para um tipo de processador não serve para outro.
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 28
– Vantagens: as linguagens de médio nı́vel são linguagens poderosas, per-
mitindo a criação de jogos até programas de alta performance.
– Desvantagens: alguns comandos têm uma sintaxe um pouco difı́cil de
compreender.
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 29
Exemplos de Linguagem de Programação
Figura 8: Exemplo de uma linguagem de programação de médio nı́vel (C) e de uma linguagem de programação de baixo nı́vel
(Assembly).
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 30
Exemplos de Linguagem de Programação
Figura 9: Exemplo de uma linguagem de programação de baixo nı́vel (Assembly) e de uma linguagem de programação de alto nı́vel
(C++).
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 31
Hierarquia das Linguagens de Programação
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 32
Hierarquia das Linguagens de Programação
Figura 11: Programa em linguagem de alto nı́vel (em C). Programa em linguagem de montagem (Assembly). Programa em linguagem
de máquina.
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 33
Hierarquia das Linguagens de Programação
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 34
Hierarquia das Linguagens de Programação
• Compilador
– Recebe a primeira instrução, confere para ver se está escrita correta-
mente, converte-a para linguagem de máquina e passa para a próxima
instrução, repetindo o processo sucessivamente até a última instrução.
O computador volta à primeira instrução, já transformada para linguagem
de máquina e executa-a. Passa à instrução seguinte, executa-a, etc., até
a última.
– O programa objeto é armazenado, então não é preciso recompilar a cada
execução do programa.
– Execução mais rápida.
– Exemplos de linguagens: C e C++
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 35
• Interpretador
– O programa conversor recebe a primeira instrução do programa, con-
fere para ver se está escrita corretamente, converte-a para linguagem de
máquina e então ordena ao computador que execute a instrução. Depois
repete o processo para a segunda instrução, removendo a primeira da
memória e assim por diante.
– Uma nova tradução é feita a cada execução do programa.
– Consome menos memória (só uma instrução por vez na memória).
– Exemplos de linguagens: Java, C# e Python
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 36
Linguagem de Programação C
C é uma linguagem e de programação compilada de propósito geral, es-
truturada, imperativa, procedural, padronizada pela ISO, criada em 1972, por
Dennis Ritchie, no AT&T Bell Labs, para desenvolver o sistema operacional
Unix (que foi originalmente escrito em Assembly).
A linguagem foi chamada “C”, porque suas caracterı́sticas foram obtidas a
partir de uma linguagem anteriormente chamado de ”B”, que de acordo com
a Ken Thompson era versão reduzida da linguagem de programação BCPL.
C é uma das linguagens de programação mais populares e existem poucas
arquiteturas para as quais não existem compiladores para C. C tem influenci-
ado muitas outras linguagens de programação, mais notavelmente C++, que
originalmente começou como uma extensão para C.
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 37
Criando um programa em C
Para criar um programa em C, primeiro você deverá entrar no sistema ope-
racional Ubuntu.
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 38
Em seguida digite o seu primeiro programa em C no Gedit.
1 #include<stdio.h>
2
3 int main()
4 {
5 printf("\nAlo mundo!\n");
6 }
Por fim, salve o arquivo com o nome: alomundo.c em uma pasta esco-
lhida (por exemplo a pasta “Aluno”, dentro de “Documentos”. Observe que a
extensão do arquivo é um .c, pois estamos trabalhando com programas na
linguagem de programação C.
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 39
Observações
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 40
Compilando um programa em C
Com o gcc já instalado no seu sistema, é muito simples usá-lo para com-
pilar programas em C.
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 41
Para mudar de pasta no terminal, use o comando cd seguido da pasta
para onde você quer ir. Por exemplo, se você salvou seu programa na pasta
pessoal “Aluno” dentro de “Documentos”, digite:
1 $ cd Documentos/Aluno
Dica 1: “..” (dois pontos seguidos) significa “uma pasta acima”. Portanto,
se você estivesse na pasta Aluno e quisesse voltar para a pasta pessoal,
poderia digitar “cd ..”. Hierarquias de pastas são criadas com a barra normal
“/” (e não com a barra invertida, como no Windows).
Para apenas compilar (e não montar) um arquivo, você deve usar o co-
mando:
1 $ gcc -c nomedoprograma.c
Note que não foi necessário especificar o nome do arquivo a ser gerado. O
gcc criará o arquivo nomedoprograma.o (a extensão .o significa objeto ou
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 42
programa-objeto), um nome que você, geralmente, não deveria mudar. (Você
pode, no entanto, mudá-lo, também com a opção -o.)
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 43
Atividades
Escreva dois programas na Linguagem de Programação C padrão no editor
de texto Gedit e depois compile os dois programas no terminal do Ubuntu
seguindo os passos aprendidos em sala de aula.
2. Escreva um programa que imprima na tela o seu nome e dê uma quebra
de linha após a impressão.
3. Você acredita ser mais fácil programar utilizando uma linguagem de baixo,
médio ou alto nı́vel? Por quê? Cite caracterı́sticas e dê exemplos de lin-
guagens de baixo e alto nı́vel.
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 44
Referências
• http://www.inf.pucrs.br/˜pinho/LaproI/IntroC/IntroC.htm
acesso em 09/08/2017.
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 45
Obrigada
danielli@iftm.edu.br
Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 46