220 likes | 317 Views
Programação em C++. Iniciação à linguagem C++. 1º Programa em C++. Um programa em C++ é constituído por: Várias funções, das quais uma obrigatoriamente tem que se chamar main. A função main(), como qualquer outra é definida : por um cabeçalho constituído por:
E N D
Programação em C++ Iniciação à linguagem C++
1º Programa em C++ • Um programa em C++ é constituído por: • Várias funções, das quais uma obrigatoriamente tem que se chamar main. • A função main(), como qualquer outra é definida : • por um cabeçalho constituído por: • tipo de dados que a função devolve. • o seu nome. • parâmetros formais que recebe. • por um corpo (definido entre “{ }”) com : • declarações • definições • instruções • comentários • Inclusão de ficheiros header com: • protótipos de funções, macros, instruções, declarações de tipos #include <iostream.h> int main() { // Mensagem a mostrar no ecra. cout << "Hello, World!\n"; return 0; } Iniciação à linguagem C++
Outro exemplo Ex . - Mostrar a equivalência entre números decimais, hexadecimais e octais #include<iostream.h> #include<iomanip.h> void main() { int fim,inc,num; // Primeira linha (declaracoes). fim=16; // Segunda linha (afectação). inc=1; // Terceira linha (afectação). // Quarta linha (expressão). cout << "decimal hexadecimal octal" << endl; // Quinta linha (instrução for). for (num =0; num <= fim ;num= num + inc) cout << dec <<num<<´-´<< hex <<num<<´-´<< oct <<num<<endl; } Iniciação à linguagem C++
Ambiente de desenvolvimento • - editor • compilador • linker/locator • debugger Iniciação à linguagem C++
Sempre que um programa for constituído por vários módulos, torna-se necessário criar um projecto, indicando quais os módulos que devem ser ligados, na fase de criação do programa final. Fases de geração de um programa Iniciação à linguagem C++
Palavras chave do C++ O C++ (como qualquer linguagem) define um conjunto de palavras que não podem ser usadas para objectivos diversos do seu significado. Iniciação à linguagem C++
Declarações e definições Em C++ qualquer identificador tem que ser declarado antes de ser usado. Declarar uma entidade, consiste exclusivamente em anunciar a sua existência, explicitando-lhe o nome e o tipo. No entanto, a maior parte das declarações, são também definições, isto é, definem a entidade que passa a ser designada por esse nome. int y; // variável y do tipo inteiro /*variável do tipo char, iniciada com o caracter 'k'.*/ char c='k'; extern int x; float sqrt ( float ); Iniciação à linguagem C++
Cálculo da área de um circulo Operadores e expressões Com variáveis e operadores, constroem-se expressões a que ficam associados valores. Expressões operam sobre variáveis de forma a produzir novos valores. Como constituintes de um programa, constam também operadores aritmético, lógicos e relacionais ( +, -, *, /, =, &&, ||, etc. ). #include <iostream.h> // Directiva para o pré processador. void main() { // Declaração (definição e iniciação) de uma constante do tipo float. const float pi = 3.14159265; int raio; // Declaração (definição) de um inteiro. float area; // Declaração (definição) de um float. // Instruções de saída e entrada de dados cout << "Qual o raio do circulo? "; cin >> raio; area = pi * ( raio * raio ); // Aqui têm que existir conversões de tipos. cout << "A area e’ " << area << endl; // Escrita do área no ecrã. } Iniciação à linguagem C++
A partir dos tipos de variáveis básicos, definem-se outros tipos de variáveis ditos tipos derivados, tais comoarrays, enumerados, apontadores, referências, estrutura e uniões desses tipos fundamentais (ou básicos). Tipos primitivos de dados e sua representação Iniciação à linguagem C++
Alcance e espaço de memória ocupado Iniciação à linguagem C++
12345678901234567890 255 255 1250500750 99.99895 Representação de dados formatados no stdout #include <iostream.h> #include <iomanip.h> void main() { int int_num = 255; float float_num = 99.99895; // long int por omissão. long big_num = 1250500750.75; cout <<"12345678901234567890\n"; cout << int_num << endl; cout << setw(6) << int_num << endl; cout << big_num << endl; cout << float_num << endl; } Qual será o output deste programa Iniciação à linguagem C++
Operadores - Precedência e ordem de avaliação (1) Iniciação à linguagem C++
Operadores - Precedência e ordem de avaliação (2) Iniciação à linguagem C++
Instrução de controlo de execução Decisão binária - if Programa em C++ #include <iostream.h>void main() { int year; cout << "Ano -> "; cin >> year; if (year%400 == 0 || year%4 == 0 && year%100 != 0) cout << "E’"; else cout << "Nao e’"; cout << " um ano bissexto." << endl;} O ano é bissexto? Iniciação à linguagem C++
Operador condicional ternário (?:) O operador condicional ternário é uma forma compactada de exprimir uma acção condicional if-else; modulo_n = (n<0) ? -n: n; if (n<0) modulo_n=-n; else modulo_n=n; Iniciação à linguagem C++
Instrução de controlo de execução Decisão múltipla - switch Iniciação à linguagem C++
Quantos dias faltam até ao fim do mês? #include<iostream.h> void main() { int dia, mes, a, numDias; cout << "Dia -> "; cin >> dia; cout << "Mes -> "; cin >> mes; cout << "Ano -> "; cin >> a; if ( mes > 0 && mes <= 12) switch (mes) { case 2 : numDias = 28 + (a%400 == 0 || a%4 && a%100 != 0); break; case 4 : case 6 : case 9 : case 11: numDias = 30; break; default: numDias = 31; } else numDias = 0; if (dia > 0 && dia <= numDias) cout << "Faltam " << (numDias - dia) << "dias." << endl; else cout << "Data invalida." << endl; } Iniciação à linguagem C++
Instruções de controlo de execução Repetição condicional - while, for, do-while Iniciação à linguagem C++
Adivinhar um nº entre 0 e 7 em 3 tentativas (1) Arvore de decisão binária Iniciação à linguagem C++
Adivinhar um nº entre 0 e 7 em 3 tentativas (2) Fluxograma Programa em C++ #include <iostream.h>#include <ctype.h>void main() { cout << "Pense num numero de 0 a 7 " " e prima uma tecla."; cin.get(); // Adivinhar o número. int number = 0; for(int i = 4 ; i > 0; i /= 2) { char ch; cout << "\nE’ maior ou igual que " << (i + number) << " (S/N)?"; cin >> ch; if (toupper(ch) == 'S') number += i; } cout <<"\nO numero que pensou e’ ” << number <<'.' << endl;} Iniciação à linguagem C++
Instruções de transferência de controlo break e continue void main() { char buf[80]; cout << "Escreve uma string : "; cin.getline(buf, 80, '\n'); for(int i = 0; i < strlen(buf); ++i) if(buf[i] != '@') continue; else { cout << "Caracter '@' encontrado na posição " << i << endl; break; } if ( i == strlen(buf) ) cout << "caracter '@' não encontrado!" << endl; cout << “BYE” << endl; } Iniciação à linguagem C++
Instruções de transferência de controlo goto #include <iostream.h>#include <ctype.h>void main() { char ch; cout<<"O programa verifica se um inteiro e' capicua.\n"; do { unsigned long number, invNumber = 0; cout <<"Escreva o inteiro - "; cin >> number; while ( number ) { int digit = (int) (number % 10); if ( (number/=10) == invNumber || number == (invNumber = invNumber * 10 + digit)) { cout << "Muito bem, o inteiro escrito"; goto endProgram; } } cout<<"Nao e' capicua.\nQuer tentar de novo (S/N) ? "; cin>>ch; } while ( tolower(ch) == 's’ ); // Repetir até basta. cout << "Por exemplo 12321";endProgram: cout << " e' capicua." << endl;} E´capicua? Iniciação à linguagem C++