DECivil
Departamento de Engenharia Civil, Arquitectura e Georrecursos
Outras Linguagens
Aulas 26 e 27
Computação e Programação
IST / DECivil / 2013-2014
Francisco Regateiro
1
Objetivos
Revisitar os conceitos apresentados na 1ª aula.
Reconhecer a aplicabilidade dos conhecimentos desta UC no âmbito
de outras linguagens, utilizando a linguagem C++ como exemplo.
Saber comparar a ferramenta MATLAB com outras ferramentas e
linguagens de programação.
Computação e Programação
IST / DECivil / 2013-2014
Francisco Regateiro
2
Índice
•
•
•
•
•
•
Conceitos Gerais (i.e., Revisitação dos Conceitos Iniciais)
Programa Simples
Cálculo da Velocidade e Altitude
Programa com Ciclos
Programa com Ciclos e Condicional
Velocidade e Altitude com Funções
Computação e Programação
IST / DECivil / 2013-2014
Francisco Regateiro
3
Conceitos Gerais
Um algoritmo é uma sequência finita de passos (instruções) que
podem ser executados mecanicamente para atingir um determinado
objetivo, i.e., resolver um problema.
Uma linguagem de programação é um conjunto de regras sintácticas e
semânticas que permitem expressar algoritmos com vista à sua
execução por uma máquina.
Uma instrução corresponde ao conceito de frase nas línguas naturais,
mas escrita de acordo com uma determinada linguagem de
programação.
Um programa corresponde a um algoritmo expresso numa linguagem
de programação (código fonte) ou numa linguagem máquina (código
objeto).
Computação e Programação
IST / DECivil / 2013-2014
Francisco Regateiro
4
Conceitos Gerais
Genericamente, um computador é uma máquina capaz de receber,
processar, e fornecer informação.
Especificamente, o computador (digital) é um dispositivo electrónico
composto por processador(es), memória, e unidade(s) interna(s) de
armazenamento (permanente). Permite guardar informação discreta e
executar operações aritméticas e lógicas. É programável, i.e., permite
guardar e executar programas. Encontra-se ligado ao exterior através
de dispositivos periféricos (rato, teclado, monitor, impressora, rede de
comunicação).
O sistema operativo é o programa em execução permanente que
intermedeia na utilização do computador.
Computação e Programação
IST / DECivil / 2013-2014
Francisco Regateiro
5
Conceitos Gerais
O compilador e o interpretador são programas que recebem código
fonte escrito numa dada linguagem de programação.
O interpretador traduz e executa o código fonte “instrução a
instrução”.
O compilador traduz o código fonte e produz um ficheiro resultante
em linguagem máquina, chamado de ficheiro objeto ou executável. A
execução deste ficheiro objeto é feita diretamente no computador,
sem recorrer ao compilador.
Computação e Programação
IST / DECivil / 2013-2014
Francisco Regateiro
6
Conceitos Gerais
A programação é a atividade de desenvolver programas, podendo ser
dividida nas seguintes fases:
•
•
•
•
•
Análise do problema
Especificação do programa
Codificação
Teste
Manutenção
Computação e Programação
IST / DECivil / 2013-2014
Francisco Regateiro
7
Conceitos Gerais
A programação em larga escala requer uma decomposição sucessiva
dos problemas em problemas mais simples. Esta abordagem modular
é conhecida por decomposição do topo para a base (top-down).
Computação e Programação
IST / DECivil / 2013-2014
Francisco Regateiro
8
Programa Simples
exemplo1.cpp
#include <iostream>
using namespace std;
// Um programa em C++ com interação com o utilizador.
int main()
{
double x; /* Declaração de uma variável real */
cout << "Introduza um numero: ";
cin >> x;
cout << "O quadrado de " << x
<< " e' " << x * x << endl;
}
Computação e Programação
IST / DECivil / 2013-2014
Francisco Regateiro
9
Cálculo da Velocidade e Altitude
exemplo2.cpp
#include <iostream>
using namespace std;
int main()
{
double g = 9.81;
cout << "Introduza a velocidade inicial (m/s) > ";
double v0;
cin >> v0;
cout << "Introduza o tempo (s) > ";
double t;
cin >> t;
Computação e Programação
IST / DECivil / 2013-2014
Francisco Regateiro
10
Cálculo da Velocidade e Altitude
exemplo2.cpp
cout << "Resultados na Terra:" << endl;
cout << "A velocidade no momento " << t << " e' "
<< v0 - g * t << " e a altitude e' "
<< v0 * t - g * t * t / 2.0 << endl;
g = 3.63;
cout << "Resultados em Marte:" << endl;
cout << "A velocidade no momento " << t << " e' "
<< v0 - g * t << " e a altitude e' "
<< v0 * t - g * t * t / 2.0 << endl;
}
Computação e Programação
IST / DECivil / 2013-2014
Francisco Regateiro
11
Programa com Ciclos
exemplo3.cpp
#include <iostream>
using namespace std;
int main()
{
int limInf, limSup;
cout << "Introduza os limites de um intervalo de inteiros > ";
cin >> limInf;
cin >> limSup;
Computação e Programação
IST / DECivil / 2013-2014
Francisco Regateiro
12
Programa com Ciclos
exemplo3.cpp
cout << "Listagem das permutacoes de 2 elementos"
<< " do intervalo (com repeticoes)." << endl;
int primeiro = limInf ;
while(primeiro <= limSup)
{
for(int segundo = limInf ; segundo <= limSup ;
segundo = segundo + 1)
cout <<"(" << primeiro << ", " << segundo
<< ")" << endl;
primeiro = primeiro + 1;
}
}
Computação e Programação
IST / DECivil / 2013-2014
Francisco Regateiro
13
Programa com Ciclos e Condicional
exemplo4.cpp
#include <iostream>
using namespace std;
int main()
{
int limInf, limSup;
cout << "Introduza os limites de um intervalo de inteiros > ";
cin >> limInf;
cin >> limSup;
cout << "Listagem das permutacoes de 2 elementos"
<< " do intervalo (sem repeticoes)." << endl;
Computação e Programação
IST / DECivil / 2013-2014
Francisco Regateiro
14
Programa com Ciclos e Condicional
exemplo4.cpp
int primeiro = limInf ;
while(primeiro <= limSup)
{
for(int segundo = limInf ; segundo <= limSup ;
segundo = segundo + 1)
if(primeiro != segundo)
cout <<"(" << primeiro << ", " << segundo
<< ")" << endl;
primeiro = primeiro + 1;
}
}
Computação e Programação
IST / DECivil / 2013-2014
Francisco Regateiro
15
Velocidade e Altitude com Funções
exemplo5.cpp
#include <iostream>
using namespace std;
double velocidade(double g, double v, double t)
{
return v - g * t;
}
double altitude(double g, double v, double t)
{
return v * t - g * t * t * 0.5;
}
Computação e Programação
IST / DECivil / 2013-2014
Francisco Regateiro
16
Velocidade e Altitude com Funções
exemplo5.cpp
int main()
{
double gTerra = 9.81;
double gMarte = 3.63;
cout << "Introduza a velocidade inicial (m/s) > ";
double v0;
cin >> v0;
cout << "Introduza o tempo (s) > ";
double t;
cin >> t;
Computação e Programação
IST / DECivil / 2013-2014
Francisco Regateiro
17
Velocidade e Altitude com Funções
exemplo5.cpp
cout << "Resultados na Terra:" << endl;
cout << "A velocidade no momento " << t << " e' "
<< velocidade(gTerra, v0, t) << " e a altitude e' "
<< altitude(gTerra, v0, t) << endl;
cout << "Resultados em Marte:" << endl;
cout << "A velocidade no momento " << t << " e' "
<< velocidade(gMarte, v0, t) << " e a altitude e' "
<< altitude(gMarte, v0, t) << endl;
}
Computação e Programação
IST / DECivil / 2013-2014
Francisco Regateiro
18
Questões
Identifique as semelhanças e diferenças entre o MATLAB e a linguagem
C++ acerca dos seguintes conceitos: tipos de dados pré-definidos;
variável; expressão; instrução; controlo de execução; função;
comentário; programa.
Implemente em MATLAB o código em C++ aqui mostrado.
Qual a consequência de um erro sintático (ou semântico) para o
funcionamento de um compilador?
Qual a consequência de um erro sintático (ou semântico) para o
funcionamento de um interpretador?
Computação e Programação
IST / DECivil / 2013-2014
Francisco Regateiro
19
Download

Outras linguagens