terça-feira, 26 de maio de 2020

Pré-Processamento


        Pré-Processamento       

Macros Predefinidos

Os macros predefinidos possuem um significado especifico e não podem ser alterados.  Estão disponíveis quase em todos os compiladores que implementam esses padrões. Compiladores mais antigos podem não fornecer todos eles. Todos os seus nomes começam e terminam com underscores  duplos.

 

__DATE__

Exibe a data actual no formato "MMM DD YYYY" format.

__TIME__

Exibe a hora actual no formato "HH:MM:SS" format.

__FILE__

Exibe o path do directorio actual

__LINE__

Exibe o número de linha definido em formato decimal

__STDC__

Exibe 1 se o compilador for baseado no padrão ANSI

 

Exemplo:

#include <stdio.h>

 int main() {

    printf("File :%s\n", __FILE__ );

    printf("Date :%s\n", __DATE__ );

    printf("Time :%s\n", __TIME__ );

    printf("Line :%d\n", __LINE__ );

    printf("ANSI :%d\n", __STDC__ ); 

}

 


Share:

sexta-feira, 22 de maio de 2020

Exemplos JavaScript



Exemplos - JavaScript


Share:

segunda-feira, 18 de maio de 2020

Canvas API

      O elemento canvas    

O elemento Canvas API é usado para efectuar desenhos na tela através de JavaScript.  o O único elemento HTML existente para isso é o elemento canvas, o resto todo é feito via Javascript. Veja como inse­rir o elemento canvas numa página:

  <canvas id=”x” width=”300” height=”300”></canvas>   

Onde

  • x é o id do elemento canvas poderá ser acedido através do método getElementById().
  • width - Especifica  o comprimento do rectangulo
  • Height - especifica a altura do rectangulo.
  • <canvas> - elemento html
Essa declaração deo elemento canvas irá retornar um retângulo vazio. O método getContext() irá nos permitir contexto de desenho, com Javascript,


         Método getContext()       

Share:

sexta-feira, 15 de maio de 2020

Programando com Android Studio

Adicionar legenda

          Programando com Android Studio        

 
Share:

Mobile Cloud Computing e Sistemas Operativos Moveis

Adicionar legenda


Mobile Cloud Computing e Sistemas Operativos Moveis



Share:

sexta-feira, 8 de maio de 2020

Estruturas de controle - sequencial e decisão em C++



       ESTRUTURA DE CONTROLE          
As estruturas de controlo exercem um papel preponderante na criação de um programa, e independentemente da linguagem de programação utilizada as estruturas de controle é que determinam o fluxo da execução de um programa. Elas podem ser:
  • Estruturas sequênciais
  • Estruturas de decisão; 
  • Estruturas de repetição. 

      Estrutura de controle sequencial
Nesse tipo de estrutura, o fluxo do programa é executada de forma sequencial e cada instrução é executado apenas uma única vez e após o termino da instrução anterior.

    Comando 1
    Comando 2
    Comando 3
       …
    Comando n


A sintaxe de um programa que obedece a estrutura sequencial é ilustrada acima. Numa programa que obedece uma estrutura sequencial podem existir n comandos e cada comando é executado após o comando anterior e é mantida a ordem de execução.


Características principais de um programa em com a estrutura sequencial:
  • As instruções são executadas de forma sequencial;
  • É mantida a ordem de execução das instruções e cada instrução é executada uma única vez e após o término da anterior.
Um exemplo de um programa sequencial em C++ é apresentado a seguir

Exemplo 1

#include <iostream>
using namespace std;
int main{
        cout("Bem vindo ao Sistema \n");
        
cout("Obrigado pela sua presença");
}


Como resultado de execução o programa ira exibir a seguinte mensagem:

Bem vindo ao sistema!     
Obrigado pela sua presença



Neste exemplo temos um programa em C que exibe na tela duas mensagens sendo a primeira Bem vindo ao sistema e a segunda Obrigado pela sua presença. A ordem de exibição das mensagens satisfaz a ordem de execução do programa.


No exemplo a seguir também estamos perante o mesmo cenário em que o resultado da execução corresponde a ordem de execução do programa. 

   Exemplo 2:

    #include <stdlib>
    int main (){
          int n1, n2, s;
          
cout(‘Introduz o primeiro número’);
          cin(n1);
          
cout(‘Introduz o segundo númeroa’);
          
cin(n2);
          s = n1 + n2;
          
cout("A soma é igual %d : ",s);
     }


Programa que efectua a soma de dois números

Descrição do código linha por linha
  1. Declaração de variáveis: São declaradas as variáveis n1, n2 e s para armazenar o primeiro valor, o segundo número e a soma respectivamente.
  2. Recorre-se ao comando cout para exibibir a mensagem Introduz o primeiro número : e posisiona o cursor na linha seguinte
  3. Recorrendo ao comando cin Lê-se o primeiro número introduzido usando o teclado
  4. Recorre-se ao comando cout para exibibir a mensagem Introduz o segundo número : e posisiona o cursor na linha seguinte graças a presença de \n
  5. Lê o segundo número introduzido
  6. Efectua-se a soma dos dois números e armazena se o resultado da execução passo a passo
  7. Exibe a soma determinada na linha anterior e a mensagem A soma é igual.
  8. Termina a execução.


            Estrutura de decisão            
Nem sempre que as situações da vida são lineares, em várias situações nós precisamos tomar decisões que dependem da satisfação de determinadas condições. Por exemplo, num dia de sol com uma temperatura acima de 35º C para definirmos a nossa agenda para o final de semana, tipo de roupa a usar, depende da temperatura que se faz sentir, se a temperatura for abaixo de zero graus não fará sentido usarmos roupa de verão.


Em uma estrutura de decisão pode existir uma condição ou várias que definem o fluxo de execução da instrução ou conjunto de instruções, mas a execução de uma determinada instrução depende da satisfação de uma determinada condição podendo haver execução de uma instrução quando esta condição for verdadeira e outra instrução quando a condição for falsa. Nesse contexto uma condição é uma expressão lógica.

Na programação temos um cenário similar em que o fluxo da execução de uma programação depende da satisfação de uma dada condição podendo haver execução de uma instrução quando esta condição for verdadeira e outra instrução quando a condição for falsa.


As estruturas de decisão que podem definir fluxo de execução podem ser:
  • De decisão simples
  • Composta
  • De selecção

            Estrutura de decisão simples            
Numa estrutura de decisão simples ou estrutura de desvio condicional simples, temos a execução de uma instrução ou conjunto de instruções apenas quando a expressão lógica for verdadeira. 

Sintaxe

  If (condição)
     Intrução;


A estrutura de decisão simples é representada pela seguinte sintaxe:

No exemplo 3 temos uma estrutura de decisão simples que exibe uma mensagem Aprovado quando o valor da média é superior a 10.

Exemplo 3

    #include <stdio.h> 
    int main (){
        float t1, t2, media;
        
cout("Introduz o valor de teste1 e teste 2");
        
cin(t1,t2);
        media = (t1 + t2)/2
        If (media >10) 
        
cout("Aprovado");
    } 



          Estrutura de decisão composta          
Numa estrutura de decisão composta ou estrutura de desvio condicional composta, o resultado da execução depende da avaliação da expressão lógica. Se a expressão lógica for verdadeira, uma instrução ou conjunto de instruções serão executados e caso a avaliação da mesma expressão for falsa(caso contrário), uma instrução ou conjunto de instruções serão executados. 

A estrutura de decisão composta é representada pela seguinte sintaxe:

Sintaxe:

      If (condição) {
          Intrução 1
      }else{
          Intrução 2
      }
No exemplo 2 temos uma estrutura de decisão composta na qual é avaliada a media, e se a media for maior que 10 será exibida a mensagem Aprovado e caso contrário é exibida a mensagem Reprovado.

Exemplo 4
            #include <stdio.h> 
         int main (){
             float t1, t2, media;
             
cout("Introduz o valor de teste1 e teste 2");
             
cin(t1,t2);
             media = (t1 + t2)/2
             If (media >10) {
                
cout("Aprovado");
             else
                
cout("Reprovado" );
          } 


          Estrutura de decisão múltipla          
Numa estrutura de decisão múltipla, o resultado da execução depende da avaliação da expressão lógica e podem existir inúmeras condições. A primeira condição é antecedida por um if, e as restantes por um else if. Se a expressão lógica for verdadeira, uma instrução ou conjunto de instruções serão executados e caso a avaliação da mesma expressão for falsa(caso contrário), uma instrução ou conjunto de instruções serão executados.  

A estrutura de decisão múltipla é representada pela seguinte sintaxe:

Sintaxe:

      If (condição 1) {
          Intrução 1;
      }else if(condição 2){
          Intrução 2;
      }else if(condição 3){
                        Intrução 3;
      }       ...
       else if (condição n){
          instrução n;
      }
No exemplo 5 temos uma estrutura de decisão múltipla na qual é avaliada a media, e se a media for maior ou igual a 14 será exibida a mensagem Dispensado, se a média for maior ou igual a 10 será exibida a mensagem Admitido e caso contrário é exibida a mensagem Excluído.

Exemplo 5:

         #include <stdio.h>
         int main (){
             float t1, t2, media;
             cout("Introduz o valor de teste1 e teste 2");
             cin(t1,t2);
             media = (t1 + t2)/2
             If (media >=14) {
                cout("Dispensado");
             }else 
If (media >=10) {
                cout("Admitido" );
             }else{
                cout("Excluído" );
             }
          } 



            Comando Switch case               

Uma instrução switch permite que uma variável seja testada quanto à igualdade em relação a uma lista de valores. Cada valor é chamado de caso, e a variável que está sendo activada é verificada para cada caso de switch.

Este comando permite nos evitar o recurso ao if, fornecendo nós o switch como um comando alternativo. É uma forma de reduzir a complexidade de vários if … else encadeados.
É muito utilizado, principalmente para uso em estruturas de menu.

Sintaxe

     switch(expressao) { 
           case (constante) : 
                 instrução 1; 
                 break; // opcional 

           case (constante) : 
                 instrução 2; 
                 break; // opcional 

          case (constante) : 
                 instrução 3; 
                 break; // opcional

               ...
          case (constante) : 
                 instrução n; 
                 break; // opcional

          default : // opcional

                 instruções;
      }


As regras a seguir se aplicam a uma instrução switch case:
  • A expressão usada em uma instrução switch deve ter um tipo inteiro ou char ou ser de um tipo de classe em que a classe tenha uma única função de conversão para um tipo integral ou enumerado.
  • pode ter qualquer número de instruções case em um switch. Cada case é seguido pelo valor a ser comparado e dois pontos.
  • A constante em um case deve ser o mesmo tipo de dados que a variável definida no switch e deve ser uma constante ou literal.
  • Quando a variável que está sendo considerada é igual a um case, as instruções que seguem o case serão executadas até que uma declaração de interrupção seja alcançada.
  • Quando uma instrução de interrupção é alcançada, o switch termina e o fluxo de controle salta para a próxima linha após a instrução do switch.


Nem todo case precisa conter uma interrupção. Se nenhuma interrupção aparecer, o fluxo de controle avança para os casos subsequentes até que uma interrupção seja atingida.

Uma instrução de switch pode ter um case predefinido opcional, que deve aparecer no final do switch. O case padrão pode ser usado para executar uma tarefa quando nenhum dos casos for verdadeiro. Nenhuma interrupção é necessária no case predifinido.


No exemplo a seguir é ilustrado um programa que verifica o dia da semana, o utilizador digita um número no intervalo de 1 a 7 e o programa vai retornar o dia da semana equivalente ao número.

Exemplo 6:

       #include <stdio.h>
       int main (void ){
           int valor;
           cout ("Digite um valor de 1 a 7: ");
           cin(valor);
   
           switch ( valor ){
                   case 1 :
                   cout ("Domingo\n");
                   break;

                   case 2 :
                   cout ("Segunda\n");
                   break;

                   case 3 :
                   cout ("Terça\n");
                   break;

                   case 4 :
                   cout ("Quarta\n");
                   break;

                   case 5 :
                   cout ("Quinta\n");
                   break;

                   case 6 : 
                   cout ("Sexta\n");
                   break;

                   case 7 :
                   cout ("Sabado\n");
                   break;

                   default :
                   cout ("Valor invalido!\n");
            }

       return 0;
       }

Share:

sábado, 2 de maio de 2020

Tipos de dados em C++




               TIPOS DE DADOS

Um tipo de dados na programação C++ representa um conjunto de valores que uma derminada variável ou função pode assumir. A linguagem C++ fornece vários tipos de tipos de dados que permitem ao programador seleccionar o tipo apropriado para cada situação.

O tipo de dados em uma linguagem de programação é a colecta de dados com valores com significado fixo e características. Alguns deles são um número inteiro, ponto flutuante, caracteres etc. Geralmente, as linguagens de programação especificam o intervalo de valores que podem ser atribuídos para um determinado tipo de dados. Além disso  o tipo de uma variável determina quanto espaço ela ocupa no armazenamento e como o padrão de bits armazenado é interpretado.

Os tipos de dados C++ são usados ​​para:
  • Identificar o tipo de uma variável quando declarada.
  • Identificar o tipo do valor de retorno de uma função.
  • Identifique o tipo de parâmetro esperado por uma função.

O ANSI C++ fornece três tipos de dados:
  • Tipos de dados primitivos (primários): Integer, Character, Boolean, Float, double e Void.
  • Tipos de dados derivados: Function, Array, Reference e pointer.
  • Tipos de dados definidos pelo utilizador(Class, Structure, Union e Enumeration).


Os dados primitivos são descritos a seguir:

Uma função não possui valor e geralmente é usado para especificar o tipo de função ou o valor de retorno. Se a função tiver um tipo nulo, significa que a função não retornará nenhum valor.
      int - Usado para denotar um tipo inteiro.
     char - Usado para denotar um tipo de caractere.
      float, double - Usado para denotar um tipo de ponto flutuante.
      int *, float *, char * - Usado para denotar um tipo de ponteiro.
      boolean - Usado para denotar um tipo lógico que pode assumir dois valores 0 e 1.


Os tipos de dados podem ser identificados usando uma palavra chave que pode ser usada durante a declaração de variáveis.


Tipo de dadospalavra chave
Booleanbool
Characterchar
Integerint
Floating pointfloat
Double floating pointdouble
Valuelessvoid
Wide characterwchar_t

Os tipos de dados podem ser alterados usando os seguintes modificadores:
  • signed
  • unsigned
  • short
  • long

A tabela que segue mostra cada o tipo de dados primitivos, o tamanho o espaço de memória e intervalo de valores que podem assumir 

TipoTamanho intervalo
char1byte-127 to 127 or 0 to 255
unsigned char1byte0 to 255
signed char1byte-127 to 127
int4bytes-2147483648 to 2147483647
unsigned int4bytes0 to 4294967295
signed int4bytes-2147483648 to 2147483647
short int2bytes-32768 to 32767
unsigned short int2bytes0 to 65,535
signed short int2bytes-32768 to 32767
long int8bytes-2,147,483,648 to 2,147,483,647
signed long int8bytes-2,147,483,648 to 2,147,483,647
unsigned long int8bytes0 to 4,294,967,295
long long int8bytes-(2^63) to (2^63)-1
unsigned long long int8bytes0 to 18,446,744,073,709,551,615
float4bytes
double8bytes
long double12bytes
wchar_t2 or 4 bytes1 wide character
A seguir é apresentado um exemplo de um programa que mostra o tamanho de cada tipo de dados.

#include <iostream> 
using namespace std; 
int main() { 
   cout << "Tamanho de char : " << sizeof(char) << endl; 
   cout << "Tamanho de int : " << sizeof(int) << endl;
  cout << "Tamanho de short int : " << sizeof(short int) << endl;
   cout << "Tamanho de long int : " << sizeof(long int) << endl;
   cout << "Tamanho de float : " << sizeof(float) << endl;
   cout << "Tamanho de double : " << sizeof(double) << endl;
   cout << "Tamanho de wchar_t : " << sizeof(wchar_t) << endl; 

   return 0; 

}


Exemplo 01:
Crie um programa que permite calcular a idade de uma pessoa.



#include <iostream> 
using namespace std; 
int main() { 
   int idade, ano; 
   cout << "Digite o seu ano de nascimento: " << endl; 
   cin >> ano; 
   idade = 2020 - ano;
   cout << " A sua idade e': " << idade;

return 0; }




Exemplo 02:
Lê as dimensões de um rectângulo (base e altura), calcular e escrever a área do rectângulo.

#include <iostream> 
using namespace std; 

int main() { 
      float base, h, area;
      cout << "Digite o valor da base: " << endl;
      cin >> base;
      cout << "Digite o valor da altura: " << endl;
      area = base*h;
      cout << " A area do rectangulo e': " << area;

return 0;
}


         Especificações de formato de dados 

A documentação mais técnica os chama de "especificadores de conversão", pois o que ocorre na maioria das vezes é, de facto, a conversão de um valor numérico em uma sequência de caracteres que representa aquele valor.


%d- número decimal inteiro (int). Também pode ser usado %i como equivalente a %d.
%u- número decimal natural (unsigned int), ou seja, sem sinal.
%o- número inteiro representado na base octal. Exemplo: 41367 (corresponde ao decimal 17143).
%xNúmero inteiro representado na base hexadecimal. Exemplo: 42f7 (corresponde ao decimal 17143). Se usarmos %X, as letras serão maiúsculas: 42F7.
%X- hexadecimal com letras maiúsculas
%f  número decimal de ponto flutuante. No caso da função printf, devido às conversões implícitas da linguagem C, serve tanto para float como para double. No caso da função scanf, %f serve para float e %lf serve para double.
%enúmero em notação científica, por exemplo 5.97e-12. Podemos usar %E para exibir o E maiúsculo (5.97E-12).
%E- número em notação científica com o "e"maiúsculo
%g escolhe automaticamente o mais apropriado entre %f e %e. Novamente, podemos usar %G para escolher entre %f e %E.
%p- ponteiro: exibe o endereço de memória do ponteiro em notação hexadecimal.
%c - caractere: imprime o caractere que tem o código ASCII correspondente ao valor dado.

Sequência de caracteres (string, em inglês).



           Exercícios          
  1. Execute e compile os exemplos apresentados neste tutorial.
  2. Leia dois números e calcule a soma e o produto entre eles, e a subtracção do primeiro valor com o segundo. Escreva o resultado na tela. 
  3. Crie um programa que lê a idade de uma pessoa expressa em anos, meses e dias e mostre-a expressão apenas em dias. ;
  4. Lê as dimensões de um rectângulo (base e altura), calcular e escrever a área do rectângulo.
  5. Faça um programa que ajude os turistas, onde seja informada a temperatura em Fahrenheit e seja mostrada a temperatura em graus centígrados. Formula: C =5* (°F - 32)/9.
  6.  Desenvolva um programa que calcule o consumo de combustível de um automóvel em uma determinada viagem. O programa deve solicitar as seguintes informações ao utilizador:
                  Quantos quilómetros têm a viagem?
                  Quantos quilómetros o carro faz por litro?
                  Qual o preço do litro do combustível?
           O processamento do algoritmo deve mostrar:
                 Quantos litros de combustível serão gastos com a viagem.
                 Quanto dinheiro será gasto com combustível.


             Referencias  

https://pt.wikibooks.org/wiki/Programar_em_C/Entrada_e_sa%C3%ADda_simples

https://en.wikipedia.org/wiki/C_data_types
https://www.tutorialspoint.com/cprogramming/c_data_types.htm
https://www.geeksforgeeks.org/data-types-in-c/
https://www.programiz.com/c-programming/c-data-types

Share:

Seguidores

Visitantes do blog

Pesquisar neste blogue

posts recentes

Traduzir