Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Hello World!
// my first program in C++ #include <iostream.h> int main () { cout << "Hello World!"; return 0; } Hello World!
Bytes Range
1 2 4 4 4 8 10 1 signed: -128 to 127 | unsigned: 0 to 255 signed: -32768 to 32767 | unsigned: 0 to 65535 signed:-2147483648 to 2147483647 unsigned: 0 to 4294967295 Veja long 3.4e + / - 38 (7 digits) 1.7e + / - 308 (15 digits) 1.2e + / - 4932 (19 digits) true or false
Inicializao
int a = 0; int a (0); // formas semelhantes
Declarao
const int width = 100; const char tab = '\t'; const zip = 12440; // tipo: int
a = b = c = 5; // todos iguais 5
// A: 4
B: 4
// A: 3
B: 4
Operao Condicional
condition ? result1 : result2 7==5 ? 4 : 3 // retorna 3, j que // 7 diferente de 5. a>b ? a : b // retorna o maior.
Estruturas de controlo
Um bloco de instrues um grupo de instrues separadas por ponto-e-vrgula (;) mas agrupadas em um bloco delimitado por chaves: { e }. Um statement refere-se tambm para uma instruo simples quanto a um bloco de instrues.
Estruturas de controlo
Estrutura Condicional: if e else
if (condition) statement
if (x == 100) cout << "x is 100"; if (x == 100) { cout << "x is "; cout << x; }
Estruturas de controlo
if (condition) statement1 else statement2
if (x == 100) cout << "x is 100"; else cout << "x is not 100"; if (x > 0) cout << "x else if (x < cout << "x else cout << "x
Estruturas de controlo
Estruturas de Repetio ou Laos
while (expression) statement
#include <iostream.h> int main () { int n; cout << "Enter the starting number > "; cin >> n; while (n>0) { cout << n << ", "; --n; } cout << "FIRE!"; return 0; }
10
Estruturas de controlo
do statement while (condition);
#include <iostream.h> int main () { unsigned long n; do { cout << "Enter number (0 to end): "; cin >> n; cout << "You entered: " << n << "\n"; } while (n != 0); return 0; }
Estruturas de controlo
for (initialization; condition; increase) statement;
#include <iostream.h> int main () { for (int n=10; n>0; n--) { cout << n << ", "; } cout << "FIRE!"; return 0; }
11
Estruturas de controlo
Os campos initialization e increase so opcionais. Utilizando o operador vrgula (,) possvel especificar mais de uma operao em qualquer campo.
Estruturas de controlo
Estrutura Seletiva switch
switch (expression) { case constant1: block of instructions 1 break; case constant2: block of instructions 2 break; . . . default: default block of instructions }
12
Funes
Uma funo um bloco de instrues que executado quando ele chamado de algum outro ponto do programa. type name ( argument1, argument2, ...)
statement
type o tipo de dado retornado pela funo. name o nome atribudo a funo. arguments (quantos forem especificados) so valores passados
para dentro da funo quando sua chamada realizada. Cada argumento consiste de um tipo de dado seguido de seu identificador, como uma declarao de varivel. statement o corpo da funo, que pode ser uma simples instruo ou um bloco de instruo.
Funes
#include <iostream.h> int addition (int a, int b) { int r; r=a+b; return (r); } int main () { int z; z = addition (5,3); cout << "The result is " << z; return 0; }
13
Funes
Passagem dos parmetros (argumentos)
Funes
Argumentos passados
por valor
e por referncia
Ateno: argumentos por referncia exclusivo do C++, sendo que em C necessrio o uso de ponteiros.
14
Ponteiros
At the moment in which we declare a variable it must be stored in a concrete location in this succession of cells (the memory). We generally do not decide where the variable is to be placed - fortunately that is something automatically done by the compiler and the operating system at runtime, but once the operating system has assigned an address there are some cases in which we may be interested in knowing where the variable is stored.
Ponteiros
Operador de endereo (&) & significa literalmente o endereo de"
andy = 25; fred = andy; ted = &andy;
15
Ponteiros
Operador de referncia (*) * significa literalmente o valor
apontado por
beth = *ted;
Ponteiros
No exemplo a seguir: andy = 25; ted = &andy; Todas as expresses abaixo so verdadeiras: andy == 25 &andy == 1776 ted == 1776 *ted == 25
16
Ponteiros
Declarao de variveis do tipo ponteiro
type * pointer_name;
int * number; char * character; float * greatnumber;
Ponteiros
#include <iostream.h> int main () { int value1 = 5, value2 = 15; int * mypointer; mypointer = &value1; *mypointer = 10; mypointer = &value2; *mypointer = 20; cout << "value1==" << value1 << "/ value2==" << value2; return 0; }
17
Ponteiros
Ponteiros e vetores
O identificador de um vetor equivalente ao endereo de seu primeiro elemento, como um ponteiro equivalente ao endereo do primeiro elemento que ele aponta, assim de fato eles so (quase) a mesma coisa.
Ponteiros
A diferena:
Supondo essas 2 declaraes:
int numbers [20]; int * p;
Isso porque o vetor um ponteiro constante, e nenhum valor pode ser associado a ele.
18
Ponteiros
#include <iostream.h> int main () { int numbers[5]; int * p; p = numbers; *p = 10; p++; *p = 20; p = &numbers[2]; *p = 30; p = numbers + 3; *p = 40; p = numbers; *(p+4) = 50; for (int n=0; n<5; n++) cout << numbers[n] << ", "; return 0; }
Ponteiros
Ver no Tutorial de C++:
Inicializao de ponteiro Aritmtica de ponteiros Ponteiro para ponteiros Ponteiro void Ponteiros para funes
19
int * bobby; bobby = new int [5]; if (bobby == NULL) { // error assigning memory. Take measures. };
20