Вы находитесь на странице: 1из 47

Algoritmos e Lógica de Programação

Bacharelado em Engenharia Elétrica

Instituto Federal do Triângulo Mineiro Campus Patrocı́nio

Aula 05 Linguagens de Programação

Profa. Dra. Danielli Araújo Lima

Patrocı́nio, MG, Brasil


Sumário

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

Auxiliar os seres humanos em trabalhos repetitivos e manuais, diminuindo


esforços e economizando tempo.

Figura 1: Um robô é um conjunto de componentes eletrônicos, mecânicos e computacionais.

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 tem iniciativa

• Não é independente

• Não é criativo nem inteligente

É necessário que o computador receba suas instruções nos mı́nimos de-


talhes, para que tenha condições de realizar suas tarefas.

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

O computador deve receber, manipular e armazenar dados (todas essas


operações são realizadas por meio de programas).

Quando construı́mos um software para realizar determinado processa-


mento de dados, devemos escrever um programa ou vários programas in-
terligados.

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.

A linguagem de programação permite que o homem se “comunique” com


o computador (robô, celular), fazendo com que o mesmo execute tarefas de-
terminadas.

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:

• Análise - estuda-se o enunciado do problema para definir:


– dados de entrada,
– processamento,
– dados de saı́da

• Algoritmo - para descrever COMO resolver o problema identificado, utiliza-


se ferramentas do tipo:
– descrição narrativa,
– fluxograma,
– português estruturado

• Codificação - transforma-se o algoritmo em códigos na linguagem de


programação escolhida

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

O algoritmo é uma sequência de instruções finita, não ambı́gua e ordenada


de forma lógica para a resolução de uma determinada tarefa ou problema.

Um PROGRAMA implementa um algoritmo. É o algoritmo materializado na


forma de uma sequência de instruções. Pode ser entendido como uma função
matemática qualquer (conjunto de entradas e uma saı́da), pois uma função é
um objeto que estabelece um relacionamento entrada e saı́da.

Exemplo 1 Função matemática que calcula o dobro de um número natural:

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.

5. Faça uma função que verifique se um determinado número é par. Se ele


for par, retorne 1, se ele for ı́mpar retorne 0.

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:

• Instruções para se utilizar um aparelho eletrodoméstico;

• Uma receita para preparo de algum prato;

• Guia de preenchimento para declaração do imposto de renda;

• Fazer um sanduı́che;

• Trocar uma lâmpada;

• Sacar dinheiro em um banco 24 horas.

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

Existem diversas formas de representar um algoritmo, dentre elas, pode-


mos citar:

• Descrição Narrativa

• Fluxograma

• Pseudocódigo, também conhecido como Linguagem Estruturada ou Portu-


gol

Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 10
Descrição Narrativa

• Analisar o enunciado do problema e escrever, utilizando uma linguagem


natural (lı́ngua portuguesa, por exemplo), os passos a serem seguidos para
a resolução do problema.

• Vantagem: Não é necessário aprender nenhum conceito novo.

• Desvantagem: Ambuiguidades / Subjetividade. Ex: “Afrouxar ligeiramente


os parafusos”.

Observação: foram realizados vários exemplos na aula introdutória - atra-


vessar a rua, preparar um bolo, trocar o pneu de um carro, origami, preparar
batatas fritas.

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:

1. Receber três números como entrada (n1, n2, n3)

2. Somar os três números (soma = n1 + n2 + n3)

3. Mostrar o resultado obtido (imprimir na tela a soma)

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

1. ir até um caixa eletrônico

2. colocar o cartão

3. digitar a senha

4. solicitar a quantia desejada

5. se saldo for maior ou igual a quantia desejada, realizar o saque; caso


contrário, não realizar o saque ou sacar uma quantia menor

6. retirar o cartão

7. sair do caixa eletrônico

Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 13
Fluxograma

• Analisar o enunciado do problema e escrever, utilizando sı́mbolos gráficos


predefinidos, os passos a serem seguidos para a resolução dos problemas.

• É uma representação gráfica de algoritmos onde formas geométricas dife-


rentes implicam ações (instruções, comandos) distintas.

• Vantagem: o entendimento dos sı́mbolos gráficos é mais fácil que o enten-


dimento subjetivo dos textos.

• Desvantagens: é necessário aprender a simbologia dos fluxogramas.


Complica-se à medida que o algoritmo cresce.

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

Figura 6: Sı́mbolos de padronização utilizados em 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

Geralmente, precisamos verificar se nossos algoritmos estão corretos.


Para isso, devemos utilizar um teste fazendo passo a passo do nosso algo-
ritmo. Este procedimento é usualmente denominado teste de mesa.

Figura 7: Teste de mesa utilizados em um fluxograma.

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:

1. Atravessar a rua, conforme descrição narrativa apresentada na aula intro-


dutória.

2. Fritar batatas, conforme descrição narrativa apresentada na aula intro-


dutória.

3. Calcular o valor do consumo de energia elétrica de uma residência.

4. Calcular o quadrante em que um ponto (x, y) encontra-se no plano cartesi-


ano.

5. Transformar a temperatura de Celsius para Farenheit.

6. Calcular o ı́ndice de massa corporal de uma pessoa a partir do peso e da


altura.

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

• Linguagem intermediária entre linguagem natural e linguagem de


programação.

• Escrever, por meio de regras predefinidas, os passos a serem seguidos


para resolução do problema.

• Vantagem: codificação em linguagem de programação é quase imediata

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

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:

1. Calcular o valor do consumo de energia elétrica de uma residência.

2. Calcular o quadrante em que um ponto (x, y) encontra-se no plano cartesi-


ano.

3. Transformar a moeda dólares canadenses em reais.

4. Calcular a média de duas notas de um aluno e exibir na tela “Aprovado”, se


média maior que 70 e “Reprovado”, caso contrário.

5. Calcular o ı́ndice de massa corporal de uma pessoa a partir do peso e da


altura.

6. Calcular as raı́zes de um polinômio de grau 2 (ax2 + bx + c) utilizando-se a


fórmula de Bhaskara.

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.

As linguagens de programação podem ser classificadas em relação a três


critérios:

• Em relação ao nı́vel: Baixo nı́vel, médio nı́vel ou alto nı́vel.

• Em relação à geração: 1a, 2a, 3a, 4a ou 5a Geração.

• Em relação ao paradigma: Procedimental, Funcional, Lógico, Orientado a


objetos, etc.

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.

• Médio Nı́vel (exemplo: C)


– Voltadas ao ser humano e à máquina
– Mistura entre linguagens de alto e baixo nı́vel.
– A linguagem C, por exemplo, permite trabalhar com posições de memória
(caracterı́stica de linguagens de baixo nı́vel) e, ao mesmo tempo, possui
operações de alto nı́vel (if/else, while, for)

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.

• Alto nı́vel (exemplos: Java, C#, C++)


– Voltadas para o ser humano: Mais fácil de entender o código
– Independem da arquitetura: os programas podem ser migrados de uma
máquina para outra sem problemas.
– Vantagens: o programador não precisa se preocupar com o funciona-
mento interno da máquina, um tradutor converterá a linguagem de alto
nı́vel para a linguagem de máquina. Programação mais fácil.
– Desvantagens: rotinas mais complexas, mais lentas e que ocupam mais
memória.

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

Comparando Médio Nı́vel x Baixo Nı́vel

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

Comparando Baixo Nı́vel x Alto Nı́vel

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

Diagrama que representa os nı́veis de hierarquia das linguagens de


programação.

Figura 10: Esquema hierárquico 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

Diagrama que representa os nı́veis de hierarquia das linguagens de


programação (Programa fonte até Programa objeto).

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

Diagrama para os paradigmas de programação.

Figura 12: Diagrama que exemplifica a hierarquia entre as linguagens.

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

A conversão da linguagem de alto/médio nı́vel para a linguagem de


máquina (binário) pode ser feita de duas formas:

• 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

Figura 13: A linguagem de programação C é compilada.

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.

Figura 14: 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 37
Criando um programa em C
Para criar um programa em C, primeiro você deverá entrar no sistema ope-
racional Ubuntu.

Posteriormente, entre no editor de texto denominado “Gedit”.

Figura 15: Editor de texto do Ubuntu denominado Gedit.

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.

A biblioteca “stdio.h” é utilizada para entrada (in) e saı́da (out) de dados


(ou E/S de dados) e o comando #include faz a inclusão desta biblioteca ao
seu programa.

Um programa em C é composto por um conjunto de funções. Todo pro-


grama tem uma função principal (main function). Em C a função principal é
denominada “main()”.

Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 39
Observações

Observação 1: Após cada cada comando em C deve-se colocar um “;”


(ponto-e-vı́rgula).

Observação 2: Um programa em C deve ser identado para que possa ser


lido com mais facilidade.

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

Este tutorial assume que você está usando o terminal de um sistema do


tipo Unix (Linux Ubuntu).

Figura 16: Terminal do Ubuntu.

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).

Dica 2: para ver o conteúdo de uma pasta pessoal, digite o comando


“ls”. Assim, todos os arquivos de uma determinada pasta serão listados no
terminal.

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.)

Os vários programas-objeto devem ser montados para formar um exe-


cutável. Isso é feito com o comando:
1 $ gcc -o programaexecutavel nomedoprograma.o

Você precisa especificar o nome do arquivo executável de saı́da pois o


padrão, por razões históricas, é usar o arquivo a.out. Em geral, usamos
o mesmo nome do arquivo de código, tirando a extensão .c. Veja que, ao
contrário do Windows, o Linux não precisa da extensão .exe para reconhecer
um arquivo executável; ele utiliza os atributos de permissão do arquivo para
saber se ele é executável, dos quais o gcc já cuida automaticamente.

Para executar o programa, a maneira mais “universal” é digitar o seguinte


comando no terminal:
1 $ ./programaexecutavel

No qual os caracteres ./ indicam que o programa está no diretório (pasta)


atual.

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.

1. Escreva um programa que imprima na tela ‘‘Alô Mundo!!!’’ e dê uma


quebra de linha após a impressão.

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.

Você deverá enviar no Google Classroom os seguintes documentos: “pro-


grama1.c” e “programa2.c”. Enviar também uma foto captura de tela da
compilação no terminal.

Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 44
Referências

• Avelar, Adriano. Notas de Aula - Paradigmas de linguagens de


programação.

• Soares de Lima, Edirlei. Notas de Aula - Conceitos de linguagens de


programação, UERJ

• P. de Souza, Criston. Notas de Aula - Introdução à programação, UNIVASF.

• Reis, Rachel. Notas de Aula - Programação / Algoritmo.

• Ponciano, Jean. Notas de Aula - Introdução à Ciência da Computação UFU.

• http://fig.if.usp.br/˜esdobay/c/gcc.html acesso em 09/08/2017.

• 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

Figura 17: Até a próxima aula!!!

Profa. Dra. Danielli Araújo Lima : Algoritmos e Lógica de Programação Engenharia Elétrica IFTM Campus Patrocı́nio 46

Вам также может понравиться