Você está na página 1de 45

Programação Aplicada: C++

1 o Ano - 1 o Semestre

Diogo Chambel Lopes

Atlântica, Instituto Universitário

2023-2024

Programação Aplicada: C++ Atlântica, Instituto Universitário


Conteúdos programáticos

Capı́tulos do programa:
2. Hello, World!
Conteúdo dos slides adaptado do livro: Programming principles and practice
using C++, Bjarne Stroustrup, 2a edição, capı́tulo 2.

Programação Aplicada: C++ Atlântica, Instituto Universitário


2. Conceitos e definições básicas.

2.1. Introdução.

2.2. Um primeiro programa.

2.3. Compilação.

2.4. Linking (ligação).

2.5. Ambientes de programação.

2.6. Questões de revisão.

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.1 Introdução.

▶ Para que um computador execute uma tarefa, é necessário dizer-lhe


exatamente o que fazer, com todos os detalhes.

▶ Esta descrição da tarefa é um programa e a atividade de escrever e testar


programas é a programação.

▶ De certo modo todos programamos no dia-a-dia: como chegar ao cinema


mais próximo, como encontrar a casa-de-banho mais próxima, como
aquecer uma refeição no micro-ondas, etc.

▶ A diferença entre estas descrições de tarefas e os programas de


computador está no grau de precisão, uma vez que os humanos
compensam a falta de detalhe com o seu senso comum.

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.1 Introdução.

▶ Infelizmente, os computadores não possuem senso comum.

▶ Por exemplo, para encontrar a casa-de-banho mais próxima, seria


necessário especificar algo como: vire à direita no corredor, suba as
escadas, primeira porta à esquerda.

▶ Para um humano estas instruções são suficientes, mas para um


computador são pouco detalhadas.

▶ Por exemplo, se estivermos sentados a uma mesa, e pedimos direções


para encontrar a casa-de-banho.

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.1 Introdução.

▶ Um humano não precisa que lhe digam para se levantar da cadeira, para
contornar a mesa (não passar por baixo ou por cima), para não pisar o
gato, para abrir a porta da casa-de-banho antes de entrar, etc.

▶ Neste sentido, os computadores são pouco inteligentes, uma vez que


precisam de uma descrição de todos os detalhes da tarefa que vão
executar.

▶ A linguagem detalhada dos programas de computador é chamada


linguagem de programação, e o C++ é um exemplo de uma linguagem
de programação adequada para um grande numero de tarefas de
programação.

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.2 Um primeiro programa.
▶ Um primeiro programa clássico que escreve “Hello, World!” no monitor:

// Este programa escreve a mensagem Hello, World! no monitor.

// biblioteca com a definicao de cout


#include<iostream>

// using namespace std;


// using std::cout;

int main()
{
std::cout << "Hello, World!\n";
return 0;
}

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.2 Um primeiro programa.
▶ Este texto pode ser visto como um conjunto de instruções dadas ao
computador para executar, como uma receita de cozinha, ou como uma
lista de instruções de montagem de um móvel, etc.

▶ Nesta secção vemos o que faz cada linha do código anterior, começando
por:

std::cout << "Hello, World!\n";

▶ Esta é a linha que produz a saı́da de dados: escreve os caracteres “Hello,


World!” seguidos por uma nova linha, ou seja, no final da instrução o
cursor é colocado no inı́cio da linha seguinte.

▶ Em C++, string literals são delimitados por aspas (”), ou seja, “Hello,
World!\n” é uma string de caracteres.

▶ Uma barra invertida (backslash), seguida de n: \n é um carácter especial


que indica uma nova linha.

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.2 Um primeiro programa.
▶ O nome cout refere-se ao standard output stream (saı́da de dados).

▶ Os caracteres colocados em cout através do operador << vão aparecer


no ecrã.

▶ cout pronuncia-se “c-out” e é uma abreviação de “character output


stream”.

▶ Numa linha, tudo o que é escrito depois do sı́mbolo // é um comentário.

▶ Os comentários são ignorados pelo compilador e são escritos apenas para


informação dos programadores.

▶ A pessoa que mais provavelmente beneficiará da informação contida nos


comentários é a própria pessoa que escreveu o código, para se lembrar do
que foi feito.

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.2 Um primeiro programa.
▶ Os comentários devem servir para documentar os programas com o
detalhe necessário para serem compreendidos mais tarde.

▶ Um programa é escrito para duas audiências: os computadores que


executam os programas e os programadores que passam muitas horas a
modificá-los.

▶ Desta forma, o código (programa) é uma forma de comunicação entre


humanos.

▶ Na realidade, faz sentido considerar que o código é em primeiro lugar


dirigido a leitores humanos uma vez que se for difı́cil de entender os erros
no código poderão nunca ser corrigidos.

▶ A primeira linha do código que estamos a considerar é um comentário:

// Este programa escreve a mensagem Hello, World! no monitor.

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.2 Um primeiro programa.
▶ Frequentemente, este tipo de comentários são a primeira parte do
programa a ser escrita e pelo menos informam-nos sobre a intenção do
programador.
▶ A linha abaixo é uma diretiva #include e informa o programa de que
deverá disponibilizar as ferramentas padrão de entrada e saı́da de
dados(standard C++ stream I/O) e neste caso são apenas usados a
função cout (standard output stream) e o seu operador de saı́da <<.
#include<iostream>
▶ Para iniciar a execução de um programa, o computador procura uma
função chamada main e começa a executar as instruções que estão no
interior dessa função.
int main()
{
std::cout << "Hello, World!\n";
return 0;
}

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.2 Um primeiro programa.
▶ Todos os programas em C++ têm de ter uma função chamada main.

▶ Uma função contém uma sequencia de instruções que o computador


executa na ordem em que estão escritas.

▶ Uma função tem 4 partes:


1. O tipo de dados de retorno (return type), neste caso int que
significa inteiro. int é uma palavra reservada que não pode ser
usada com outro propósito em C++.
2. Um nome, neste caso: main.
3. Uma lista de parâmetros entre parêntesis ( ). Neste caso, a lista de
parâmetros está vazia.
4. O corpo da função está entre chavetas { }, e contém as instruções
que a função deverá executar.

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.2 Um primeiro programa.
▶ O programa mais simples que se pode escrever em C++ é:

int main() {}

▶ No entanto, este programa não tem nenhuma utilidade.

▶ No programa que foi apresentado no inicio, a função main() tem duas


instruções no seu corpo:

std::cout << "Hello, World!\n";


return 0;

▶ Primeiro escreve “Hello, World!” para o ecrã, e depois devolve o valor 0


(zero).

▶ Uma vez que a função main() é chamada pelo sistema, não utilizamos
esse valor, que em alguns sistemas, como Unix/Linux pode ser usado para
confirmar que o programa foi executado sem erros.

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.3 Compilação.

▶ A linguagem C++ é uma linguagem compilada, o que significa que para


correr um programa, primeiro é necessário traduzir da linguagem escrita
pelo programador para outra linguagem que o computador compreenda.

▶ Esta tradução é feita por um programa chamado compilador.

▶ Aquilo que escrevemos e lemos é chamado código-fonte (source code) e


aquilo que o computador executa é chamado executável, código-objeto,
ou código-máquina.
▶ Tipicamente, os ficheiros de código-fonte em C++ têm a extensão .cpp, e
os ficheiros de código-objeto têm a extensão .obj (em Windows) ou .o
(Linux).

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.3 Compilação.
▶ Em geral quando falamos de código, queremos dizer código-fonte.

▶ O compilador lê o código-fonte e tenta interpretar o que foi escrito.

▶ O compilador procura o significado de cada palavra escrita no


código-fonte, e se existe algum erro óbvio que pode ser detetado sem
executar o programa.

▶ Se for omitido algum detalhe do programa, como um ficheiro numa


diretiva #include, um ponto e virgula ou chavetas, isto dará origem a
erros.

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.3 Compilação.
▶ Da mesma forma, o compilador não tolera erros gramaticais (exceto nos
comentários).

▶ O exemplos seguintes mostram alguns erros comuns:

// falta o #include
int main()
{
std::cout << "Hello, World!\n";
return 0;
}

▶ Não foi incluı́da a linha que diz ao compilador o que significa cout, o que
dá origem a um erro.

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.3 Compilação.
▶ Para corrigir o erro, temos de incluir o ficheiro de cabeçalho:

#include<iosteam>
int main()
{
std::cout << "Hello, World!\n";
return 0;
}

▶ O compilador deteta mais um erro: iostream foi mal escrito. Corrigindo:

#include<iostream>
int main()
{
std::cout << "Hello, World!\n";
return 0;
}

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.3 Compilação.
▶ Outro erro. integer em vez de int:

#include<iostream>
integer main()
{
std::cout << "Hello, World!\n";
return 0;
}

▶ Outro erro. Foi usado < (menor do que) em vez de << (operador de
saı́da):

#include<iostream>
int main()
{
std::cout < "Hello, World!\n";
return 0;
}
Programação Aplicada: C++ Atlântica, Instituto Universitário
2.3 Compilação.
▶ Outro erro: Foram usadas plicas (aspas simples, single quotes) em vez de
aspas (double quotes) para delimitar a string:

#include<iostream>
int main()
{
std::cout << ’Hello, World!\n’;
return 0;
}

▶ Outo erro: A linha não foi terminada com ponto e vı́rgula (semicolon).

#include<iostream>
int main()
{
std::cout << "Hello, World!\n"
return 0;
}
Programação Aplicada: C++ Atlântica, Instituto Universitário
2.3 Compilação.

▶ Todas as linhas de instruções em C++ são terminadas com ponto e


vı́rgula para indicar ao compilador onde termina uma instrução e começa
a próxima.

▶ Estes exemplos de erros são importantes uma vez que os programadores


passam muito tempo à procura de erros no código-fonte.

▶ Podemos considerar que o compilador tem sempre razão: quando dá uma
mensagem de erro e se recusa a compilar o código, há algo de errado no
programa, ou seja, não está definido de acordo com o padrão do C++
(C++ standard).

▶ O compilador acaba por nos poupar tempo, detetando erros que se


revelariam mais tarde.

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.4 Linking (ligação).
▶ Em geral um programa é composto por diferentes partes, escritas por
pessoas diferentes.

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.4 Linking (ligação).
▶ No exemplo deste capı́tulo o programa é composto pelo código escrito
por nós e pela biblioteca padrão do C++ (C++ standard library ).

▶ Estas partes têm de ser compiladas e os ficheiros resultantes de


código-objeto tem de ser ligadas (linked) para formar um programa
executável.

▶ O programa que liga os vários ficheiros de código-objeto é chamado


linker.

▶ Os ficheiros de código-objeto e os ficheiros executáveis não têm


portabilidade entre sistemas (windows, linux, etc.).

▶ Uma biblioteca é apenas código-fonte, que em geral é escrito por outros


programadores, e pode ser utilizado através de uma diretiva #include.

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.5 Ambientes de programação.

▶ Em geral, um programa é constituı́do por diferentes partes, que poderão


ser escritas por diferentes pessoas.

▶ Por exemplo, o programa “Hello, World!” é constituı́do pela parte escrita


por nós e por partes da biblioteca padrão do C++ (C++ standard
library ).

▶ Estas diferentes partes têm de ser compiladas e os ficheiros resultantes de


código-objeto têm de ser ligados para formar um executável.

▶ O programa que liga as várias partes de código-objeto é chamado linker.

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.5 Ambientes de programação.

▶ Para escrever ou alterar código-fonte, podem ser utilizados programas


especı́ficos, que incluem diversas ferramentas e são chamados IDE
(Interactive Development Environment ou Integrated Development
Environment)

▶ Estes programas (como o Visual Studio Code) incluem ferramentas de


depuração (debugging ), que consiste na atividade de procurar e corrigir
erros num programa.

▶ O código-fonte escrito de acordo com o padrão atualizado do C++


deverá funcionar em qualquer sistema (Windows, Linux, Macintosh, etc.).

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.6 Questões de revisão.
1. Qual é o propósito do programa “Hello, World!”?

2. Enumere as quatro partes de uma função.

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.6 Questões de revisão.
1. Qual é o propósito do programa “Hello, World!”?

▶ Dar uma impressão inicial sobre como funciona um programa em


C++.

2. Enumere as quatro partes de uma função.

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.6 Questões de revisão.
1. Qual é o propósito do programa “Hello, World!”?

▶ Dar uma impressão inicial sobre como funciona um programa em


C++.
▶ Introduzir o ambiente de programação (IDE).

2. Enumere as quatro partes de uma função.

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.6 Questões de revisão.
1. Qual é o propósito do programa “Hello, World!”?

▶ Dar uma impressão inicial sobre como funciona um programa em


C++.
▶ Introduzir o ambiente de programação (IDE).

2. Enumere as quatro partes de uma função.

▶ O tipo de dados de retorno. Exemplo: int.

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.6 Questões de revisão.
1. Qual é o propósito do programa “Hello, World!”?

▶ Dar uma impressão inicial sobre como funciona um programa em


C++.
▶ Introduzir o ambiente de programação (IDE).

2. Enumere as quatro partes de uma função.

▶ O tipo de dados de retorno. Exemplo: int.


▶ O nome. Exemplo: main.

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.6 Questões de revisão.
1. Qual é o propósito do programa “Hello, World!”?

▶ Dar uma impressão inicial sobre como funciona um programa em


C++.
▶ Introduzir o ambiente de programação (IDE).

2. Enumere as quatro partes de uma função.

▶ O tipo de dados de retorno. Exemplo: int.


▶ O nome. Exemplo: main.
▶ A lista de parâmetros entre parêntesis (), que pode estar vazia.

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.6 Questões de revisão.
1. Qual é o propósito do programa “Hello, World!”?

▶ Dar uma impressão inicial sobre como funciona um programa em


C++.
▶ Introduzir o ambiente de programação (IDE).

2. Enumere as quatro partes de uma função.

▶ O tipo de dados de retorno. Exemplo: int.


▶ O nome. Exemplo: main.
▶ A lista de parâmetros entre parêntesis (), que pode estar vazia.
▶ O corpo da função que está entre chavetas {} e contém as
instruções que a função deverá executar.

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.6 Questões de revisão.
3. Indique uma função que deve aparecer em todos os programas C++.

4. No programa “Hello, World!”, qual é o propósito da linha return 0;?

5. Para que serve um compilador?

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.6 Questões de revisão.
3. Indique uma função que deve aparecer em todos os programas C++.

▶ Todos os programas em C++ têm de ter uma função chamada


main.

4. No programa “Hello, World!”, qual é o propósito da linha return 0;?

5. Para que serve um compilador?

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.6 Questões de revisão.
3. Indique uma função que deve aparecer em todos os programas C++.

▶ Todos os programas em C++ têm de ter uma função chamada


main.

4. No programa “Hello, World!”, qual é o propósito da linha return 0;?

▶ A instrução return 0 devolve ao sistema o valor 0 se o programa for


executado sem erros.

5. Para que serve um compilador?

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.6 Questões de revisão.
3. Indique uma função que deve aparecer em todos os programas C++.

▶ Todos os programas em C++ têm de ter uma função chamada


main.

4. No programa “Hello, World!”, qual é o propósito da linha return 0;?

▶ A instrução return 0 devolve ao sistema o valor 0 se o programa for


executado sem erros.
▶ Se não for incluı́da esta linha, o compilador acrescenta-a
automaticamente no final do programa.

5. Para que serve um compilador?

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.6 Questões de revisão.
3. Indique uma função que deve aparecer em todos os programas C++.

▶ Todos os programas em C++ têm de ter uma função chamada


main.

4. No programa “Hello, World!”, qual é o propósito da linha return 0;?

▶ A instrução return 0 devolve ao sistema o valor 0 se o programa for


executado sem erros.
▶ Se não for incluı́da esta linha, o compilador acrescenta-a
automaticamente no final do programa.

5. Para que serve um compilador?

▶ O compilador interpreta os ficheiros de código-fonte e gera os


ficheiros de código-objeto.

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.6 Questões de revisão.

6. Qual é o propósito da diretiva #include?

7. Qual é o propósito do linker?

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.6 Questões de revisão.

6. Qual é o propósito da diretiva #include?

▶ A diretiva #include informa o compilador que deverá disponibilizar


ao compilador o código do ficheiro mencionado na mesma.

7. Qual é o propósito do linker?

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.6 Questões de revisão.

6. Qual é o propósito da diretiva #include?

▶ A diretiva #include informa o compilador que deverá disponibilizar


ao compilador o código do ficheiro mencionado na mesma.

7. Qual é o propósito do linker?

▶ O linker é o programa que liga os ficheiros de código-objeto para


formar o ficheiro executável.

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.6 Questões de revisão.

8. Qual é a diferença entre um ficheiro de código-fonte e um ficheiro de


código-objeto?

9. O que é um IDE e para que serve?

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.6 Questões de revisão.

8. Qual é a diferença entre um ficheiro de código-fonte e um ficheiro de


código-objeto?

▶ Os ficheiros de código-fonte são escritos por programadores e são


interpretados pelo compilador.

9. O que é um IDE e para que serve?

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.6 Questões de revisão.

8. Qual é a diferença entre um ficheiro de código-fonte e um ficheiro de


código-objeto?

▶ Os ficheiros de código-fonte são escritos por programadores e são


interpretados pelo compilador.
▶ Os ficheiros de código-objeto são gerados pelo compilador e ligados
pelo linker para construir o ficheiro executável.

9. O que é um IDE e para que serve?

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.6 Questões de revisão.

8. Qual é a diferença entre um ficheiro de código-fonte e um ficheiro de


código-objeto?

▶ Os ficheiros de código-fonte são escritos por programadores e são


interpretados pelo compilador.
▶ Os ficheiros de código-objeto são gerados pelo compilador e ligados
pelo linker para construir o ficheiro executável.

9. O que é um IDE e para que serve?

▶ Um IDE (Integrated Development Environment) serve para escrever


ou alterar código-fonte e inclui várias ferramentas úteis (debugging,
etc.).

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.6 Questões de revisão.

10. Por que razão é necessário praticar?

▶ Exercı́cio: Modifique o programa hello world! para escrever no ecrã as


duas linhas abaixo:
Hello, programming!
Here we go!

Programação Aplicada: C++ Atlântica, Instituto Universitário


2.6 Questões de revisão.

10. Por que razão é necessário praticar?

▶ A programação é uma atividade com objetivos práticos e


consequentemente não é suficiente entender a teoria.

▶ Exercı́cio: Modifique o programa hello world! para escrever no ecrã as


duas linhas abaixo:
Hello, programming!
Here we go!

Programação Aplicada: C++ Atlântica, Instituto Universitário

Você também pode gostar