A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Tipos básicos de variáveis em C++. Uma variável é um objecto que contém informação. Essa informação está codificada em bits. A memória está segmentada.

Apresentações semelhantes


Apresentação em tema: "Tipos básicos de variáveis em C++. Uma variável é um objecto que contém informação. Essa informação está codificada em bits. A memória está segmentada."— Transcrição da apresentação:

1 Tipos básicos de variáveis em C++. Uma variável é um objecto que contém informação. Essa informação está codificada em bits. A memória está segmentada em agregados de bits: Byte que corresponde a um conjunto de 8 bits; Byte que corresponde a um conjunto de 8 bits; Word que corresponde a um conjunto de 2, 4 ou 8 bytes (às vezes mais); Word que corresponde a um conjunto de 2, 4 ou 8 bytes (às vezes mais); Por vezes usa-se também o nibble (4 bits), halfword (1/2xword), longword (2 x word), doubleword (2 x longword) e quadword (2 x doubleword). Por vezes usa-se também o nibble (4 bits), halfword (1/2xword), longword (2 x word), doubleword (2 x longword) e quadword (2 x doubleword). Alguns processadores obrigam a que os dados estejam alinhados, ou seja, quantidades de 2 bytes têm de começar em endereços que são múltiplos de 2, quantidades de 4 bytes têm de começar em endereços que são múltiplos de 4, etc. Esta informação é particularmente relevante para programas com uso intensivo de memória (Física Estatística, Teoria de Campo em redes, Monte-Carlo para simulação de dados experimentais, elementos finitos, etc.). Alguns processadores obrigam a que os dados estejam alinhados, ou seja, quantidades de 2 bytes têm de começar em endereços que são múltiplos de 2, quantidades de 4 bytes têm de começar em endereços que são múltiplos de 4, etc. Esta informação é particularmente relevante para programas com uso intensivo de memória (Física Estatística, Teoria de Campo em redes, Monte-Carlo para simulação de dados experimentais, elementos finitos, etc.).

2 Tipos básicos de variáveis em C++. A memória a que nos referimos num programa nem sempre é a RAM usual. Existem nos processadores zonas de armazenamento chamadas registos. O seu uso é particularmente importante quando queremos velocidade de execução. Cada byte na memória têm uma morada que o identifica. Cada variável tem portanto Uma morada que identifica a sua localização na memória; Uma morada que identifica a sua localização na memória; Um valor que está guardado nessa localização. Um valor que está guardado nessa localização. Como a unidade de base é 1 byte ou 2 bytes, o computador comunica-nos informações sobre o seu estado interno na base 8 (octal) ou 16 (hexadecimal). Um número em octal começa por 0 (zero): 012=10 10 Um número em octal começa por 0 (zero): 012=10 10 Um número em hexadecimal começa por 0x (zero x): 0xFF= Um número em hexadecimal começa por 0x (zero x): 0xFF=255 10

3 Tipos básicos de variáveis em C++. As variáveis numéricas em C e C++ são: Inteiras: char 1 byte; char 1 byte; int 1 word. int 1 word. A estas podem-se juntar qualificativos: long (o long int abrevia-se por long apenas); long (o long int abrevia-se por long apenas); short (o short int abrevia-se por short apenas); short (o short int abrevia-se por short apenas); signed admite valores positivos ou negativos; signed admite valores positivos ou negativos; unsigned só admite valores positivos. unsigned só admite valores positivos. Reais (floating point): float para precisão simples; float para precisão simples; double para precisão simples; double para precisão simples; A double pode-se juntar o qualificativo: long (nem sempre diferente de double); long (nem sempre diferente de double); Qualquer variável pode ter o qualificativo register indicando que deve ser guardada num registo (o compilador decide se é possível)

4 Tipos básicos de variáveis em C++. Alcance das variáveis (depende da implementação):

5 Ciclos for, while e do...while Em C/C++ existem 3 tipos diferentes de ciclos: while while for equivalente a um while for equivalente a um while do...while do...while O for e o while são equivalentes: forwhile for(int i=0 ;i<10 ;++i){ ……. } int i=0 ; while( i<10 ){ ……. ++i; }

6 O ciclo do…while usa-se quando há necessidade de executar o ciclo pelo menos uma vez : por exemplo menus do { do { opcao=0; opcao=0; limpa_ecra(); limpa_ecra();/* Menu de opcoes Menu de opcoes*/ printf("Programa para calculo da trajectoria de um pendulo\n"); printf("Programa para calculo da trajectoria de um pendulo\n"); printf("pelo metodo de Euler-Cromer.\n\n"); printf("pelo metodo de Euler-Cromer.\n\n"); printf("(Resultados da execucao no ficheiro %s)\n\n", \ printf("(Resultados da execucao no ficheiro %s)\n\n", \ dados_iniciais.nome); dados_iniciais.nome); printf("Escolha uma opcao:\n\n\n"); printf("Escolha uma opcao:\n\n\n"); printf(" 1 - Usar valores iniciais pre-definidos:\n"); printf(" 1 - Usar valores iniciais pre-definidos:\n"); printf(" m=0.05 Kg, l=0.30 m, theta=0.1 rad,\n"); printf(" m=0.05 Kg, l=0.30 m, theta=0.1 rad,\n"); printf(" vel.= 0 rad/s, 500 pontos de solucao;\n"); printf(" vel.= 0 rad/s, 500 pontos de solucao;\n"); printf(" 2 - Definir valores;\n"); printf(" 2 - Definir valores;\n"); printf(" 3 - Executar o calculo com os valores \ printf(" 3 - Executar o calculo com os valores \ definidos na opcao 2;\n"); definidos na opcao 2;\n"); printf(" 4 - Sair do programa.\n\n"); printf(" 4 - Sair do programa.\n\n"); printf("Opcao: (valor por defeito: 1) "); printf("Opcao: (valor por defeito: 1) "); while ( opcao != 4 && opcao != 1 ); while ( opcao != 4 && opcao != 1 ); Repare-se que aqui o while termina com ; Ciclos for, while e do...while

7 Em C/C++ falso 0, verdade é não nulo while(1){ …. ….} Produz um ciclo infinito que tem de ser terminado de outra forma. Idem para for( ; 1 ; ){ …..} Nesse caso termina-se com break Ciclos for, while e do...while

8 Erro comum: incluir ; como por exemplo em while(1); { …. ….} O ; é a chamada instrução vazia: o ciclo é verdadeiramente infinito! Ciclos for, while e do...while

9 Instruções condicionais Controlo de um ciclo: breakcontinue #include int main(){ int i=4, j=100; while( abs(i) <=4 ){ if( i == 0 ) break; printf("i= %d, %d/%d= %d\n", i, j, i, j/i); --i; } return 0; } #include int main(){ int i=4, j=100; while( abs(i) <=4 ){ --i; if( i == 0 ) continue; printf("i= %d, %d/%d= %d\n", i, j, i, j/i); } return 0; } breakcontinue i= 4, 100/4= 25 i= 3, 100/3= 33 i= 2, 100/2= 50 i= 1, 100/1= 100 i= 3, 100/3= 33 i= 2, 100/2= 50 i= 1, 100/1= 100 i= -1, 100/-1= -100 i= -2, 100/-2= -50 i= -3, 100/-3= -33 i= -4, 100/-4= -25 i= -5, 100/-5= -20

10 Em C/C++ existem dois tipos de instruções condicionais: if…elseif … else if…elseif … else switch switch O switch é usado quando se tem de verificar um grande número de condições encadeadas e é equivalente a um conjunto de if…elseif … else. O switch só pode ser usado com uma variável de teste inteira!! Instruções condicionais

11 Exemplo de if…elseif … else: int main(int argc, char *argv[]){ int modif=0; int modif=0; int c; int c; FILE *entrada, *saida; FILE *entrada, *saida; verif_arg(argc); /* verifica numero de arg. */ verif_arg(argc); /* verifica numero de arg. */ entrada=fopen(argv[1], "rt"); entrada=fopen(argv[1], "rt"); if(!entrada){ if(!entrada){ fprintf(stderr, "Ficheiro %s inexistente\n", argv[1]); fprintf(stderr, "Ficheiro %s inexistente\n", argv[1]); exit(1); exit(1); } if( argc == 3 ) saida=fopen(argv[2], "wt"); if( argc == 3 ) saida=fopen(argv[2], "wt"); else if( argc == 2 ) saída=stderr; else if( argc == 2 ) saída=stderr; else saida=stdout; else saida=stdout; Instruções condicionais

12 Exemplo de if…elseif … else: int main(int argc, char *argv[]){ int modif=0; int modif=0; int c; int c; FILE *entrada, *saida; FILE *entrada, *saida; verif_arg(argc); /* verifica numero de arg. */ verif_arg(argc); /* verifica numero de arg. */ entrada=fopen(argv[1], "rt"); entrada=fopen(argv[1], "rt"); if(!entrada){ if(!entrada){ fprintf(stderr, "Ficheiro %s inexistente\n", argv[1]); fprintf(stderr, "Ficheiro %s inexistente\n", argv[1]); exit(1); exit(1); } if( argc == 3 ) saida=fopen(argv[2], "wt"); if( argc == 3 ) saida=fopen(argv[2], "wt"); else if( argc == 2 ) saída=stderr; else if( argc == 2 ) saída=stderr; else saida=stdout; else saida=stdout; Instruções condicionais

13 Exemplo de switch() /* Ciclo de leitura e conversao Ciclo de leitura e conversao*/ while((c=fgetc(entrada)) != EOF){ while((c=fgetc(entrada)) != EOF){ switch(c){ switch(c){ case 192: case 192: fputs("\\`A", saida); fputs("\\`A", saida); break; break; case 193: case 193: fputs("\\'A", saida); fputs("\\'A", saida); break; break;…default: fputc(c, saida); fputc(c, saida); } } Instruções condicionais

14 Exemplo do operador ? : : de Kronecker (i-j)?0:1; Operadores básicos


Carregar ppt "Tipos básicos de variáveis em C++. Uma variável é um objecto que contém informação. Essa informação está codificada em bits. A memória está segmentada."

Apresentações semelhantes


Anúncios Google