Linguagens compiladas: C++ Fora do livro adoptado
(rep.) Conceitos iniciais Computador Um computador é genericamente uma máquina programável capaz de receber, processar, e fornecer informação. Computador digital (de programa armazenado) Um computador digital é um dispositivo electrónico composto fundamentalmente por: Processadores: CPU = ALU + CU + Memória (primária) para processamento. Memória de massa ou secundária, para armazenamento. Mecanismos de I/O: dispositivos periféricos para comunicação com o exterior. ( Sistema Operativo: software interface utilizador-hardware + )
(rep.) Conceitos iniciais Algoritmo No essencial, um algoritmo é uma sequência de instruções a ser executadas mecanicamente para atingir um determinado objetivo. Linguagem de programação Uma linguagem de programação é uma linguagem bem definida, cujos elementos têm uma forma (sintaxe) e um significado (semântica) precisos, de modo a que possam ser mecanicamente traduzidos para linguagem máquina. Programa Um programa de computador é um algoritmo expresso numa linguagem de programação (código fonte), em linguagem máquina (código máquina), ou numa forma intermédia (e.g., código objecto).
(rep.) Conceitos iniciais Compilador/Interpretador Um compilador/interpretador é um programa que traduz código fonte (escrito numa dada linguagem de programação) para código máquina, ou para uma forma intermédia próxima do código máquina. Compilador O compilador interpreta e traduz o código fonte todo de uma só vez, produzindo um ficheiro objeto (executável) que poderá ser executado posteriormente. Interpretador O interpretador trata o código fonte "passo a passo", interpretando e avaliando (ou executando) cada instrução antes de passar à seguinte.
(rep.) Conceitos iniciais Programação A programação é a actividade de desenvolver programas, podendo ser dividida nas seguintes fases: Análise do problema Especificação do programa Codificação Teste Manutenção Programação em larga escala 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).
hello.cpp Code::Blocks, C++ > Base para aplicação de consola #include <iostream> using namespace std; int main() cout << "Hello world!" << endl; return 0;
programa_elementar.cpp C++ > Exemplo 1 /* Código C++ para ilustrar os aspectos mais elementares da linguagem. */ #include <iostream> using namespace std; int main() double x; cout << "Introduza um numero > "; cin >> x; cout << "O quadrado de " << x << "e' " << x * x << endl; return 0; // dispensável com o MinGW
queda_livre.cpp /* * Código C++ para ilustrar: * - Declaração com atribuição * - Atribuição */ #include <iostream> using namespace std; int main() double g = 9.81; C++ > Exemplo 2 (1/2) cout << "Introduza a velocidade inicial (m/s) > "; double v0; cin >> v0; continua
C++ > Exemplo 2 (2/2) cout << "Introduza o tempo decorrido (s) > "; double t; cin >> t; cout << endl << "Resultados na Terra:" << endl; cout << "A velocidade no instante " << t << " e' " << v0 - g * t << " e a altitude e' " << v0 * t - g * t * t / 2.0 << endl; g = 3.63; cout << endl << "Resultados em Marte:" << endl; cout << "A velocidade no instante " << t << " e' " << v0 - g * t << " e a altitude e' " << v0 * t - g * t * t / 2.0 << endl; ACABOU!
permutacoes_de_2.cpp #include <iostream> using namespace std; C++ > Exemplo 3 (1/2) int main() int liminf, limsup; cout << "Introduza os limites" << " de um intervalo de inteiros > "; cin >> liminf; cin >> limsup; cout << endl << "Listagem das permutacoes de 2 elementos" " do intervalo (com repeticoes):" << endl; continua
C++ > Exemplo 3 (2/2) int i = liminf; while (i <= limsup) for (int j = liminf; j <= limsup; j = j + 1) cout << "(" << i << ", " << j << ")" << endl; i = i + 1; ACABOU!
permutacoes_de_2_diferentes.cpp #include <iostream> using namespace std; C++ > Exemplo 4 (1/2) int main() int liminf, limsup; cout << "Introduza os limites" << " de um intervalo de inteiros > "; cin >> liminf; cin >> limsup; cout << endl << "Listagem das permutacoes de 2 elementos" " do intervalo (sem repeticoes):" << endl; continua
C++ > Exemplo 4 (2/2) int i = liminf; while (i <= limsup) for (int j = liminf; j <= limsup; j = j + 1) if (i!= j) cout << "(" << i << ", " << j << ")" << endl; i = i + 1; ACABOU!
queda_livre_decomposto.cpp #include <iostream> using namespace std; C++ > Exemplo 5 (1/3) 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; continua
C++ > Exemplo 5 (2/3) 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 decorrido (s) > "; double t; cin >> t; continua
C++ > Exemplo 5 (3/3) cout << endl << "Resultados na Terra:" << endl; cout << "A velocidade no instante " << t << " e' " << velocidade(gterra, v0, t) << " e a altitude e' " << altitude(gterra, v0, t) << endl; cout << endl << "Resultados em Marte:" << endl; cout << "A velocidade no instante " << t << " e' " << velocidade(gmarte, v0, t) << " e a altitude e' " << altitude(gmarte, v0, t) << endl; ACABOU!