SlideShare a Scribd company logo
1 of 15
Download to read offline
http://informaticaentretenimento.blogspot.com/



CEP- CENTRO DE EDUCAÇÃO PROFISSIONAL DE ITAJUBÁ

            TÉCNICO EM INFORMÁTICA




                     Turma: V2I

        Verônica Veiga Soares de Souza. N :17



            Arquitetura de Computadores

     Estruturas de linguagem de programação C++




                                  Trabalho apresentado na disciplina:

                                  De Arquitetura de Computadores.

                                  Do Professor Janderson Cruzz.

                                  No curso técnico em informática.

                                  Do CEP: Centro Profissional de

                                  Itajubá.



              4 DE NOVEMBRO DE 2011

                    ITAJUBÁ-MG
Estruturas Condicionais – IF/ELSE e Switch



Uma ação muito importante que o processador de qualquer computador executa, e que o
torna diferente de qualquer outra máquina, é a tomada de decisão definindo o que é
verdadeiro e o que é falso.

Se quisermos fazer um bom programa, esse programa deve ser capaz de definir caminhos
diferentes de acordo com decisões que o próprio programa toma. Para isso, precisamos de
uma estrutura seletiva da qual o único valor possível é o bit 1 ou 0, resumindo: retornar o
valor VERDADEIRO ou FALSO.

Em C / C++, como em muitas linguagens de programação, quem faz isso é o IF (SE
traduzindo).

Ou seja, se for tal coisa, faça isso! Simples desse jeito.

O ELSE é o que chamamos de caso contrário, ou seja, se for falso execute o que está no
ELSE.

Exemplificando: Se (IF) for tal coisa, faça isso! Caso contrário (ELSE), faça aquilo!

Usando IF

Para usar o IF basta digitar entre parênteses o que deve ser comparado.

IMPORTANTE: IF é uma palavra reservada que não aceita ponto-e-vírgula (;) no final.

Se for verdadeiro, o programa executará a primeira linha logo abaixo do if.

Mas, e se quisermos executar várias linhas se if for verdadeiro?

Se o if tiver que executar várias linhas, todas as linhas que devem ser enquadradas dentro
do bloco de dados - as chaves ({}).

Usando ELSE

O ELSE só existe se tiver um IF. O else só será executado se o IF for falso.

Else executará só a primeira linha abaixo dele. Se o else tiver que executar várias linhas,
vale a mesma regra de if. Todas as linhas a ser executadas deverão estar contidas dentro
do bloco de dados ({}).

No exemplo abaixo está um exemplo de uso do if e else com apenas uma linha a ser
executada.


#include <cstdio>
#include <cstdlib>

int main (void){
int nr;
    printf ("Digite um numero:n");
    scanf ("%d", &nr);
    getchar ();
    if (nr>=0)
        printf ("O numero digitado e positivonn");
        //se nr for maior ou igual a 0 o numero sera positivo
    else
        printf ("O numero digitado e negativonn");
        //caso contrario, ele sera negativo!
    system ("pause");
}

Agora, um exemplo de um programa onde o if e o else têm mais de uma linha a ser
executada

#include <cstdio>
#include <cstdlib>

int main (void){
   int nr, a, b, x;
   printf ("Escolha uma opcao:n");
   printf ("1.tmultiplicarn");
   printf ("2.tdividirn");
   scanf ("%d", &nr);
   getchar ();
   if (nr==1)
   {
       //se nr for igual a um executara todo esse bloco
       printf ("Digite os dois numero que deverao ser multiplicadosn");
       scanf ("%d %d", &a, &b);
       getchar ();
       x=a*b;
       system ("cls"); //limpa a tela
       printf ("%d X %d = %dn", a, b, x);
   }
   else
   {
       //se nr nao for igual a um executara todo esse bloco
       printf ("Digite os dois numero que deverao ser divididosn");
       scanf ("%d %d", &a, &b);
       getchar ();
       x=a/b;
       system ("cls"); //limpa a tela
       printf ("%d / %d = %dn", a, b, x);
   }
   system ("pause");
}


Switch

Uma instrução switch torna-se prática sempre que um programa necessita selecionar
algumas ações dentre as diversas possíveis, tendo como base o resultado de uma
expressão ou uma variável, equivalentes a um valor inteiro ou a um caractere. Isto é, o
comando switch é próprio para se testar uma variável em relação a diversos valores pré-
estabelecidos.

Sintaxe: switch (variável) {
         case constante_1:
         bloco_de_comandos_1;
         break;
         case constante_2:
         bloco_de_comandos_2;
         break;
         case constante_n:
         bloco_de_comandos_n;
         break;
         default:
         bloco_de_comandos_default;
         }


A estrutura switch não aceita expressões. Aceita apenas constantes. O switch testa a
variável e executa o bloco_de_comandos cujo case corresponda ao valor atual da variável.
A declaração default é opcional e será executada apenas se a variável, que está sendo
testada, não for igual a nenhuma das constantes. O comando break faz com que o switch
seja interrompido assim que uma das declarações for executada. Mas ele não é essencial
ao comando switch. Se após a execução do bloco_de_comandos não houver um break, o
programa continuará executando os próximos blocos de comandos sem testar com o valor
das próximas constantes. Isto pode ser útil em algumas situações, mas é recomendado
muito cuidado.

Exemplo 1

#include <stdio.h>

main ()

{

int num;

printf ("Digite um numero: ");

scanf ("%d",&num);

switch (num) {

case 9:

printf ("nnO numero e igual a 9.n");

break;

case 10:

printf ("nnO numero e igual a 10.n");

break;
case 11:

printf ("nnO numero e igual a 11.n");

break;

default:

printf ("nnO numero nao e nem 9 nem 10 nem 11.n");

}

}

Exemplo 2

#include <iostream>

#include <cstdlib>

#include <ctype.h>

using namespace std;

int reiniciar (void);

int main (void){

reiniciar ();

}

int reiniciar (void){

char opcao;

cout <<"Deseja reiniciar o programa? [S/N]n";

cin >> opcao;

opcao=toupper(opcao); // deixa a letra maiúscula

switch (opcao){

case 'S': //Entre aspas simples porque é um caracter

system ("cls");

main ();

case 'N': //Entre aspas simples porque é um caracter

return EXIT_SUCCESS;
default:

cout <<"aOpcao invalida!nn";

reiniciar ();

}

}


                 Estruturas Repetição – FOR, WHILE e DO WHILE


FOR

O FOR como qualquer iteração* precisa de uma variável para controlar os loops (voltas).
Em for, essa variável deverá ser inicializada, indicada seu critério de execução, e forma de
incremento ou decremento. Ou seja, for precisa de três condições. Vale salientar que essas
condições são separadas por ponto-e-vírgula (;).
*ITERAÇÃO é sinônimo de repetição.
Como procedemos:
FOR (inicialização ; até quando irá ser executado ; incremento ou decremento).
No exemplo, faremos um programa que contará de 1 a 100. Você verá que é um programa
que faz algo muito simples, ele soma um a uma variável várias vezes. O x começa em 1, o
loop só será executado enquanto x for


//loop com FOR
#include <iostream>
#include <cstdlib>
using namespace std;

int main (void){
   int x;
   for (x=1; x<=100; x++)
   /* inicialização: x começa em 1
      critério: executar enquanto x for menor ou igual a 100
      incremento (++) será somado 1 a x */
      cout << x <<"t"; system ("pause");
}

O FOR também segue a mesma regra de IF. Caso haja mais de uma linha a ser executada
pelo comando FOR, essas deverão estar agrupadas num bloco de dados ( { } ).
Este comando não se limita a operações com constantes, por exemplo: x=1, executar
enquanto x for menor ou igual a 100... Às vezes, o usuário pode entrar com dados para
controlar o loop. Veja:
No exemplo 1, a contagem começará a partir do número que o usuário digitar.



                       http://informaticaentretenimento.blogspot.com/
Exemplo 1

#include <iostream>
#include <cstdlib>
using namespace std;

int main (void){
   int x, user;
   cout <<"Digite um numero menor que 100 para iniciar a contagemn";
   cin >> user;
   cin.ignore ();
   system ("cls"); // limpa a tela
   for (x=user; x<=100; x++)
      cout << x <<"t";
   system ("pause");
}


 No exemplo 2, a contagem começará no 1 e terminará no número digitado pelo usuário.




Exemplo 2

#include <iostream>
#include <cstdlib>
using namespace std;

int main (void){
   int x, user;
   cout <<"Digite um numero menor que 100 para iniciar a contagemn";
   cin >> user;
   cin.ignore ();
   system ("cls"); // limpa a tela
   for (x=1; x<=user; x++)
      cout << x <<"t";
   system ("pause");
}

No exemplo 3, a contagem irá de 0 a 100 com intervalos determinados pelo usuário.

//exemplo 3
#include <iostream>
#include <cstdlib>
using namespace std;

int main (void){
   int x, user;
   cout <<"Digite qual sera o intervalo da contagemn";
   cin >> user;
   cin.ignore ();
   system ("cls"); // limpa a tela
   for (x=1; x<=100; x+=user)
cout << x <<"t";
    system ("pause");
}



WHILE

Uma outra forma de iteração (repetição) em C/C++ é o WHILE.

While executa uma comparação com a variável. Se a comparação for verdadeira, ele
executa o bloco de instruções ( { } ) ou apenas a próxima linha de código logo abaixo.

Procedemos da seguinte maneira: WHILE (comparação)

Veja o exemplo abaixo.

#include <iostream>
#include <cstdlib>
using namespace std;

int main (void){
   int par=0;
   cout <<"Os numeros pares de 0 a 100 sao:nn";
   while (par<=100)
   {
      cout <<par<<"t";
      par+=2; //o mesmo que par=par+2
   }
   system ("pause");
   return 0;
}

Neste exemplo serão mostrados os números pares entre 0 e 100.

Algumas precauções:
O WHILE muitas vezes pode nos pregar peças. Se prestarmos atenção, no exemplo acima
inicializamos a variável par em 0, pois quando usamos no while uma variável sem
inicializa-la pode causar comportamentos estranhos. E por que isso acontece? É simples.
C/C++ não inicializa variáveis automaticamente em 0, ou seja, se você comparar uma
variável não inicializada, essa variável pode ser qualquer coisa, ex.: 1557745, -9524778, 1
ou até mesmo 0.
Outro problema comum com o while é o loop infinito. O WHILE, diferentemente de FOR,
não incrementa ou decrementa automaticamente uma variável, isso deve estar expressado
dentro do bloco de instruções, como podemos ver na linha par+=2. Caso contrário, par
sempre seria zero e nunca chegaria a 100 para o loop parar, causando o loop infinito.
O ideal é utilizar o WHILE em um loop definido pelo usuário, que a partir de uma entrada
ele termine. Ou seja, enquanto o usuário não fizer determinada ação, o loop continuará a
dar voltas. Como no exemplo abaixo.

#include <iostream>
#include <cstdlib>
using namespace std;
int main (void){
   int nr=1;
   while (nr!=0) //enquanto nr for diferente de 0
   {
      cout <<"Digite um numero (0 para finalizar): ";
      cin >> nr;
      cin.ignore ();
      if (nr>0)
          cout <<"Este numero e positivon";
      else
          cout <<"Este numero e negativon";
   }
   return 0;
}



DO WHILE

A estrutura de repetição DO WHILE parte do princípio de que deve-se fazer algo primeiro e
só depois comparar uma variável para saber se o loop será executado mais uma vez.

Devemos proceder da seguinte maneira:

DO {bloco de instruções} WHILE (comparação);

Usamos DO, depois escrevemos tudo que o DO deve fazer no bloco de instruções, no final
do bloco colocamos o WHILE com a comparação entre parênteses, e não se esqueça que
neste caso termina-se a linha do WHILE com ponto-e-vírgula (;). Veja:


#include <iostream>
#include <cstdlib>

using namespace std;

int main (void){
   int nr;
   do
   {
      cout <<"Digite um numero (0 para finalizar): ";
      cin >> nr;
      cin.ignore ();
      if (nr%2==0)
          /* se nr for divisivel por 2
             (O resto da divisão por 2 for 0)*/
          cout <<"Este numero e parn";
      else
          cout <<"Este numero e imparn";
      system ("pause");
      system ("cls");
   } while (nr!=0); //enquanto nr for diferente de 0
   return 0;
}
Este programa verifica se um número é par ou ímpar, e finaliza em 0.
Partindo do ponto de vista que o usuário irá digitar o valor da variável nr durante o bloco
do DO e só depois será comparada no WHILE no final do bloco, então não tem porque
inicializar a variável (int nr;). Isso pode ajudar muitas vezes em que é necessário executar
um loop, nem que seja uma vez.



                                      Math.h e Cmath

Em C existe uma biblioteca própria para cálculos matemáticos um pouco mais complexo, a
biblioteca ao qual nos referimos é a math.h, que tem seu correspondente em C++
como cmath.
Com a biblioteca math.h (cmath) podemos encontrar facilmente funções para calcular
potências, raíz quadrada, funções trigonométricas para cálculos que envolvem seno, co-
seno e tangente, além de constantes para números irracionais como, por exemplo, PI (Π) e
√2.


Constantes matemáticas

Vamos iniciar listando as constantes matemáticas:

                                            Constante em C/C+ valor da constante em
   Simbologia            O que é
                                                    +                 C/C++

        e            Número de Euler              M_E           2,7182818284590452354

      log2 e    Logaritmo de e na base 2        M_LOG2E         1,4426950408889634074

     log10 e    Logaritmo de e na base 10      M_LOG10E        0,43429448190325182765

                   Logaritmo neperiano
      Ln2 (x)                                    M_LN2         0,69314718055994530942
                          binário

                 Logaritmo neperiano ou
     Ln10 (x)                                    M_LN10        2,30258509299404568402
                         natural

        Π                   Pi                    M_PI         3,14159265358979323846

       Π/2               Meio Pi                 M_PI_2        1,57079632679489661923

       Π/4             Quarto de Pi              M_PI_4        0,78539816339744830962

        √2         Raiz quadrada de 2           M_SQRT2        1,41421356237309504880

        √½        Raiz quadrada de meio        M_SQRT1_2       0,70710678118654752440


Como podemos ver, todas as constantes são valores do tipo double. E isso se reflete nas
funções.
Funções matemáticas

Trigonométricas



sin (): Retorna o valor do seno. Recebe como argumento o valor dos graus em double.

cos (): Retorna o valor do co-seno. Recebe como argumento o valor dos graus em double.

tan (): Retorna o valor da tangente. Recebe como argumento o valor dos graus em double.

Logaritmicas

log (): Retorna o valor do logaritmo na base 2. Exige um argumento do tipo double.

log10 (): Retorna o valor do logaritmo na base 10. Exige um argumento do tipo double.



Potências

pow (): Retorna o valor da base elevada ao expoente. Recebe dois argumentos do tipo
double, o primeiro é a base e o segundo o expoente. Por exemplo: se quisermos saber o
resultado da operação 210, faríamos pow (2, 10).

sqrt (): Retorna o valor da raiz quadrada. Recebe como argumento um double do qual ele
deve extrair a raiz.



Arredondamento

ceil(): Retorna o primeiro float sem casas decimais acima. Recebe um float como
argumento. Exemplo: ceil (45.98561) resultaria em 46.

floor(): Retorna o primeiro float sem casas decimais abaixo. Recebe um float como
argumento. Exemplo: floor (45.98561) resultaria em 45.

Para ilustrar todas essas funções e constantes, abaixo está um código demonstrando o
resultado de cada função da biblioteca math.h (cmath) vista neste artigo.




                     http://informaticaentretenimento.blogspot.com/
Para ilustrar todas essas funções e constantes, abaixo está um código demonstrando o
resultado de cada função da biblioteca math.h (cmath) vista neste artigo.




#include <cmath> // ou <math.h>
#include <iostream>
#include <cstdlib>
using namespace std;

int main (void){
   double graus, raio, base, expoente, x;
   cout << "TrigonometrianDigite o numero dos graus -> ";
   cin >> graus;
   cout << "GeometrianDigite a distancia do raio do circulo -> ";
   cin >> raio;
   cout << "PotenciacaonDigite a base -> ";
   cin >> base;
   cout << "Digite o expoente -> ";
   cin >> expoente;
   cin.ignore();
   system ("cls");
   x = pow (base, expoente);
   cout << "O seno de "<<graus<<" e "<<sin(graus)<<endl;
   cout << "O co-seno de "<<graus<<" e "<<cos(graus)<<endl;
   cout << "A tangente de "<<graus<<" e "<<tan(graus)<<endl;
   cout << base<<" elevado a "<<expoente<<" e "<<x<<endl;
   cout << "A raiz quadrada de "<<x<<" e "<<sqrt(x)<<endl;
   cout << "O log2 de "<<x<<" e "<<log(x)<<endl;
   cout << "O log10 de "<<x<<" e "<<log10(x)<<endl;
   cout << "O teto de "<<x<<" e "<<ceil(x)<<endl;
   cout << "A parte inteira de "<<x<<" e "<<floor(x)<<endl;
   cout << "Um circulo com "<<raio<<"cm de raio tem: ";
   cout << raio*2*M_PI<<"cm de comprimento e ";
   cout << pow(raio,2)*M_PI<<"cm de area.n"<<endl;
   system ("pause");
return EXIT_SUCCESS;
}




Construa um programa que tendo como entrada dois pontos quaisquer do plano P(x1,y1) e

Q(x2,y2), imprima a distância entre eles. A fórmula da distância é:

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

main()

{

    float x1, y1, x2, y2;

    float distancia;

    printf ("nDigite o valor de x1: ");

    scanf ("%f",&x1);

    printf ("nDigite o valor de y1: ");

    scanf ("%f",&y1);

    printf ("nDigite o valor de x2: ");

    scanf ("%f",&x2);

    printf ("nDigite o valor de y2: ");

    scanf ("%f",&y2);

    distancia=sqrt(pow((x2-x1),2)+pow((y2-y1),2));

    printf ("nA distancia entre os pontos P1 e P2 eh %.2fn", distancia);

    system("PAUSE");

}




 Construa um programa que calcule a quantidade de latas de tinta necessárias e o custo
para pintar tanques cilíndricos de combustível, onde são fornecidos a altura e o raio desse
cilindro.

Sabendo que:
- a lata de tinta custa R$20,00

- cada lata contém 5 litros

- cada litro de tinta pinta 3 metros quadrados.

    Sabendo que:

    Área do cilindro=3.14*raio2 + 2*3.14*raio*altura

    e que raio e altura são dados de entrada.



#include <stdio.h>

#include <stdlib.h>

#include <math.h>

main()

{

      float altura, raio, areaCilindro, qtdadeLitros, qtdadeLatas, custo;

      printf ("nDigite o valor da altura em metros: ");

      scanf ("%f",&altura);

      printf ("nDigite o valor do raio em metros: ");

      scanf ("%f",&raio);

      areaCilindro=3.14*raio*raio + 2*3.14*raio*altura;

      printf ("nA area do cilindro eh %.2f metros quadrados", areaCilindro);

      qtdadeLitros=areaCilindro/3;

      printf ("nA qtidade de litros necessaria eh de %.2f ", qtdadeLitros);

      qtdadeLatas=qtdadeLitros/5;

      printf ("nA qtidade de latas necessaria eh de %.2f ", qtdadeLatas);

      custo=qtdadeLatas*20;

      printf ("nO valor total das tintas eh de R$ %.2f n", custo);

      system("PAUSE");

}



                            http://informaticaentretenimento.blogspot.com/
Fonte:

http://www.tiexpert.net/index.php




               Acesse o blog abaixo: E seja bem vindo!
                              Temos curso online


                     http://informaticaentretenimento.blogspot.com/

More Related Content

What's hot

Estruturas de Repetição - FOR, WHILE e DO WHILE
Estruturas de Repetição - FOR, WHILE e DO WHILEEstruturas de Repetição - FOR, WHILE e DO WHILE
Estruturas de Repetição - FOR, WHILE e DO WHILENeto Côrtes
 
Aula6 - Linguagem C
Aula6 - Linguagem CAula6 - Linguagem C
Aula6 - Linguagem Capolllorj
 
Java básico - Módulo 05 - Estruturas de Repetição
Java  básico - Módulo 05 - Estruturas de RepetiçãoJava  básico - Módulo 05 - Estruturas de Repetição
Java básico - Módulo 05 - Estruturas de RepetiçãoProfessor Samuel Ribeiro
 
ICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicionalICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicionalFelipe J. R. Vieira
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Gercélia Ramos
 
0000364 aula 5 estruturas de decisão
0000364 aula 5   estruturas de decisão0000364 aula 5   estruturas de decisão
0000364 aula 5 estruturas de decisãoEvelyneBorges
 
ASP.Net Módulo 2
ASP.Net   Módulo 2ASP.Net   Módulo 2
ASP.Net Módulo 2michellobo
 
mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturadadiogoa21
 
Programação Concorrente - Aula 04
Programação Concorrente - Aula 04Programação Concorrente - Aula 04
Programação Concorrente - Aula 04thomasdacosta
 
Introdução ao php
Introdução ao phpIntrodução ao php
Introdução ao phpTiago Davi
 
Aula 04 Estruturas de repetição 02 - Para Faça
Aula 04  Estruturas de repetição 02 - Para FaçaAula 04  Estruturas de repetição 02 - Para Faça
Aula 04 Estruturas de repetição 02 - Para FaçaEder Samaniego
 
ICC – Aula 09 – Estrutura de Repetição
ICC – Aula 09 – Estrutura de RepetiçãoICC – Aula 09 – Estrutura de Repetição
ICC – Aula 09 – Estrutura de RepetiçãoFelipe J. R. Vieira
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoMauro Pereira
 
Linguagens de Programação II - Aula 3
Linguagens de Programação II - Aula 3Linguagens de Programação II - Aula 3
Linguagens de Programação II - Aula 3guestd6da1cd
 
Controle de Fluxo, Exceções, Assertivas
Controle de Fluxo, Exceções, AssertivasControle de Fluxo, Exceções, Assertivas
Controle de Fluxo, Exceções, AssertivasElenilson Vieira
 
Java básico - Módulo 04: Estruturas de controle
Java   básico - Módulo 04:  Estruturas de controleJava   básico - Módulo 04:  Estruturas de controle
Java básico - Módulo 04: Estruturas de controleProfessor Samuel Ribeiro
 

What's hot (20)

JAVA - Controle de programa
JAVA - Controle de programaJAVA - Controle de programa
JAVA - Controle de programa
 
Estruturas de Repetição - FOR, WHILE e DO WHILE
Estruturas de Repetição - FOR, WHILE e DO WHILEEstruturas de Repetição - FOR, WHILE e DO WHILE
Estruturas de Repetição - FOR, WHILE e DO WHILE
 
Aula6 - Linguagem C
Aula6 - Linguagem CAula6 - Linguagem C
Aula6 - Linguagem C
 
Switchcase
SwitchcaseSwitchcase
Switchcase
 
Java básico - Módulo 05 - Estruturas de Repetição
Java  básico - Módulo 05 - Estruturas de RepetiçãoJava  básico - Módulo 05 - Estruturas de Repetição
Java básico - Módulo 05 - Estruturas de Repetição
 
Algoritmos Aula 08
Algoritmos Aula 08Algoritmos Aula 08
Algoritmos Aula 08
 
Php básico
Php básicoPhp básico
Php básico
 
ICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicionalICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicional
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
 
0000364 aula 5 estruturas de decisão
0000364 aula 5   estruturas de decisão0000364 aula 5   estruturas de decisão
0000364 aula 5 estruturas de decisão
 
ASP.Net Módulo 2
ASP.Net   Módulo 2ASP.Net   Módulo 2
ASP.Net Módulo 2
 
mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturada
 
Programação Concorrente - Aula 04
Programação Concorrente - Aula 04Programação Concorrente - Aula 04
Programação Concorrente - Aula 04
 
Introdução ao php
Introdução ao phpIntrodução ao php
Introdução ao php
 
Aula 04 Estruturas de repetição 02 - Para Faça
Aula 04  Estruturas de repetição 02 - Para FaçaAula 04  Estruturas de repetição 02 - Para Faça
Aula 04 Estruturas de repetição 02 - Para Faça
 
ICC – Aula 09 – Estrutura de Repetição
ICC – Aula 09 – Estrutura de RepetiçãoICC – Aula 09 – Estrutura de Repetição
ICC – Aula 09 – Estrutura de Repetição
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigo
 
Linguagens de Programação II - Aula 3
Linguagens de Programação II - Aula 3Linguagens de Programação II - Aula 3
Linguagens de Programação II - Aula 3
 
Controle de Fluxo, Exceções, Assertivas
Controle de Fluxo, Exceções, AssertivasControle de Fluxo, Exceções, Assertivas
Controle de Fluxo, Exceções, Assertivas
 
Java básico - Módulo 04: Estruturas de controle
Java   básico - Módulo 04:  Estruturas de controleJava   básico - Módulo 04:  Estruturas de controle
Java básico - Módulo 04: Estruturas de controle
 

Similar to Estrutura de linguagem C++ (20)

Java3
Java3Java3
Java3
 
Aula3
Aula3Aula3
Aula3
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Algoritmos Aula 11
Algoritmos Aula 11Algoritmos Aula 11
Algoritmos Aula 11
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funções
 
Java hidden features
Java hidden featuresJava hidden features
Java hidden features
 
Curso de Java (Parte 3)
 Curso de Java (Parte 3) Curso de Java (Parte 3)
Curso de Java (Parte 3)
 
Tratamento de exceções java
Tratamento de exceções   javaTratamento de exceções   java
Tratamento de exceções java
 
Cap07
Cap07Cap07
Cap07
 
Cap07
Cap07Cap07
Cap07
 
Java hidden features
Java hidden featuresJava hidden features
Java hidden features
 
Introdução a linguagem c 2_97_2003
Introdução a linguagem c  2_97_2003Introdução a linguagem c  2_97_2003
Introdução a linguagem c 2_97_2003
 
RevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxRevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptx
 
Lógica de programação
Lógica de programaçãoLógica de programação
Lógica de programação
 
Introducao a Lógica de Programação
Introducao a Lógica de ProgramaçãoIntroducao a Lógica de Programação
Introducao a Lógica de Programação
 
Aula03 - JavaScript
Aula03 - JavaScriptAula03 - JavaScript
Aula03 - JavaScript
 
Java script2
Java script2Java script2
Java script2
 
Aula01
Aula01Aula01
Aula01
 
Series lab
Series labSeries lab
Series lab
 
Função malloc
Função mallocFunção malloc
Função malloc
 

More from Verônica Veiga

More from Verônica Veiga (18)

Trabalho: Arquitetura e software paralelo
Trabalho: Arquitetura e software paralelo  Trabalho: Arquitetura e software paralelo
Trabalho: Arquitetura e software paralelo
 
Trabalho: Rede sem fio.
Trabalho: Rede sem fio.Trabalho: Rede sem fio.
Trabalho: Rede sem fio.
 
Projeto: Montagem de uma rede local
Projeto: Montagem de uma rede local Projeto: Montagem de uma rede local
Projeto: Montagem de uma rede local
 
ApresentaçãoSlides - Xfetecep
ApresentaçãoSlides - XfetecepApresentaçãoSlides - Xfetecep
ApresentaçãoSlides - Xfetecep
 
Apostila: tutorial bios setup ide
Apostila: tutorial bios setup ideApostila: tutorial bios setup ide
Apostila: tutorial bios setup ide
 
Apostila: Curso de java III
Apostila: Curso de java IIIApostila: Curso de java III
Apostila: Curso de java III
 
Apostila:Curso de java II
Apostila:Curso de java II  Apostila:Curso de java II
Apostila:Curso de java II
 
Apostila: Curso de java I
Apostila: Curso de java IApostila: Curso de java I
Apostila: Curso de java I
 
Apostila: Netbeans
Apostila: NetbeansApostila: Netbeans
Apostila: Netbeans
 
Apostila: CSS
Apostila: CSSApostila: CSS
Apostila: CSS
 
Apostila dreamweaver
Apostila dreamweaver Apostila dreamweaver
Apostila dreamweaver
 
Banco de dados
Banco de dados   Banco de dados
Banco de dados
 
Algoritmo lamport
Algoritmo lamportAlgoritmo lamport
Algoritmo lamport
 
Arquitetura paralela
Arquitetura paralelaArquitetura paralela
Arquitetura paralela
 
Placas de redes
Placas de redesPlacas de redes
Placas de redes
 
Processadores
ProcessadoresProcessadores
Processadores
 
Relatório banda larga
Relatório banda largaRelatório banda larga
Relatório banda larga
 
Projeto rede local
Projeto rede localProjeto rede local
Projeto rede local
 

Estrutura de linguagem C++

  • 1. http://informaticaentretenimento.blogspot.com/ CEP- CENTRO DE EDUCAÇÃO PROFISSIONAL DE ITAJUBÁ TÉCNICO EM INFORMÁTICA Turma: V2I Verônica Veiga Soares de Souza. N :17 Arquitetura de Computadores Estruturas de linguagem de programação C++ Trabalho apresentado na disciplina: De Arquitetura de Computadores. Do Professor Janderson Cruzz. No curso técnico em informática. Do CEP: Centro Profissional de Itajubá. 4 DE NOVEMBRO DE 2011 ITAJUBÁ-MG
  • 2. Estruturas Condicionais – IF/ELSE e Switch Uma ação muito importante que o processador de qualquer computador executa, e que o torna diferente de qualquer outra máquina, é a tomada de decisão definindo o que é verdadeiro e o que é falso. Se quisermos fazer um bom programa, esse programa deve ser capaz de definir caminhos diferentes de acordo com decisões que o próprio programa toma. Para isso, precisamos de uma estrutura seletiva da qual o único valor possível é o bit 1 ou 0, resumindo: retornar o valor VERDADEIRO ou FALSO. Em C / C++, como em muitas linguagens de programação, quem faz isso é o IF (SE traduzindo). Ou seja, se for tal coisa, faça isso! Simples desse jeito. O ELSE é o que chamamos de caso contrário, ou seja, se for falso execute o que está no ELSE. Exemplificando: Se (IF) for tal coisa, faça isso! Caso contrário (ELSE), faça aquilo! Usando IF Para usar o IF basta digitar entre parênteses o que deve ser comparado. IMPORTANTE: IF é uma palavra reservada que não aceita ponto-e-vírgula (;) no final. Se for verdadeiro, o programa executará a primeira linha logo abaixo do if. Mas, e se quisermos executar várias linhas se if for verdadeiro? Se o if tiver que executar várias linhas, todas as linhas que devem ser enquadradas dentro do bloco de dados - as chaves ({}). Usando ELSE O ELSE só existe se tiver um IF. O else só será executado se o IF for falso. Else executará só a primeira linha abaixo dele. Se o else tiver que executar várias linhas, vale a mesma regra de if. Todas as linhas a ser executadas deverão estar contidas dentro do bloco de dados ({}). No exemplo abaixo está um exemplo de uso do if e else com apenas uma linha a ser executada. #include <cstdio> #include <cstdlib> int main (void){
  • 3. int nr; printf ("Digite um numero:n"); scanf ("%d", &nr); getchar (); if (nr>=0) printf ("O numero digitado e positivonn"); //se nr for maior ou igual a 0 o numero sera positivo else printf ("O numero digitado e negativonn"); //caso contrario, ele sera negativo! system ("pause"); } Agora, um exemplo de um programa onde o if e o else têm mais de uma linha a ser executada #include <cstdio> #include <cstdlib> int main (void){ int nr, a, b, x; printf ("Escolha uma opcao:n"); printf ("1.tmultiplicarn"); printf ("2.tdividirn"); scanf ("%d", &nr); getchar (); if (nr==1) { //se nr for igual a um executara todo esse bloco printf ("Digite os dois numero que deverao ser multiplicadosn"); scanf ("%d %d", &a, &b); getchar (); x=a*b; system ("cls"); //limpa a tela printf ("%d X %d = %dn", a, b, x); } else { //se nr nao for igual a um executara todo esse bloco printf ("Digite os dois numero que deverao ser divididosn"); scanf ("%d %d", &a, &b); getchar (); x=a/b; system ("cls"); //limpa a tela printf ("%d / %d = %dn", a, b, x); } system ("pause"); } Switch Uma instrução switch torna-se prática sempre que um programa necessita selecionar algumas ações dentre as diversas possíveis, tendo como base o resultado de uma expressão ou uma variável, equivalentes a um valor inteiro ou a um caractere. Isto é, o
  • 4. comando switch é próprio para se testar uma variável em relação a diversos valores pré- estabelecidos. Sintaxe: switch (variável) { case constante_1: bloco_de_comandos_1; break; case constante_2: bloco_de_comandos_2; break; case constante_n: bloco_de_comandos_n; break; default: bloco_de_comandos_default; } A estrutura switch não aceita expressões. Aceita apenas constantes. O switch testa a variável e executa o bloco_de_comandos cujo case corresponda ao valor atual da variável. A declaração default é opcional e será executada apenas se a variável, que está sendo testada, não for igual a nenhuma das constantes. O comando break faz com que o switch seja interrompido assim que uma das declarações for executada. Mas ele não é essencial ao comando switch. Se após a execução do bloco_de_comandos não houver um break, o programa continuará executando os próximos blocos de comandos sem testar com o valor das próximas constantes. Isto pode ser útil em algumas situações, mas é recomendado muito cuidado. Exemplo 1 #include <stdio.h> main () { int num; printf ("Digite um numero: "); scanf ("%d",&num); switch (num) { case 9: printf ("nnO numero e igual a 9.n"); break; case 10: printf ("nnO numero e igual a 10.n"); break;
  • 5. case 11: printf ("nnO numero e igual a 11.n"); break; default: printf ("nnO numero nao e nem 9 nem 10 nem 11.n"); } } Exemplo 2 #include <iostream> #include <cstdlib> #include <ctype.h> using namespace std; int reiniciar (void); int main (void){ reiniciar (); } int reiniciar (void){ char opcao; cout <<"Deseja reiniciar o programa? [S/N]n"; cin >> opcao; opcao=toupper(opcao); // deixa a letra maiúscula switch (opcao){ case 'S': //Entre aspas simples porque é um caracter system ("cls"); main (); case 'N': //Entre aspas simples porque é um caracter return EXIT_SUCCESS;
  • 6. default: cout <<"aOpcao invalida!nn"; reiniciar (); } } Estruturas Repetição – FOR, WHILE e DO WHILE FOR O FOR como qualquer iteração* precisa de uma variável para controlar os loops (voltas). Em for, essa variável deverá ser inicializada, indicada seu critério de execução, e forma de incremento ou decremento. Ou seja, for precisa de três condições. Vale salientar que essas condições são separadas por ponto-e-vírgula (;). *ITERAÇÃO é sinônimo de repetição. Como procedemos: FOR (inicialização ; até quando irá ser executado ; incremento ou decremento). No exemplo, faremos um programa que contará de 1 a 100. Você verá que é um programa que faz algo muito simples, ele soma um a uma variável várias vezes. O x começa em 1, o loop só será executado enquanto x for //loop com FOR #include <iostream> #include <cstdlib> using namespace std; int main (void){ int x; for (x=1; x<=100; x++) /* inicialização: x começa em 1 critério: executar enquanto x for menor ou igual a 100 incremento (++) será somado 1 a x */ cout << x <<"t"; system ("pause"); } O FOR também segue a mesma regra de IF. Caso haja mais de uma linha a ser executada pelo comando FOR, essas deverão estar agrupadas num bloco de dados ( { } ). Este comando não se limita a operações com constantes, por exemplo: x=1, executar enquanto x for menor ou igual a 100... Às vezes, o usuário pode entrar com dados para controlar o loop. Veja: No exemplo 1, a contagem começará a partir do número que o usuário digitar. http://informaticaentretenimento.blogspot.com/
  • 7. Exemplo 1 #include <iostream> #include <cstdlib> using namespace std; int main (void){ int x, user; cout <<"Digite um numero menor que 100 para iniciar a contagemn"; cin >> user; cin.ignore (); system ("cls"); // limpa a tela for (x=user; x<=100; x++) cout << x <<"t"; system ("pause"); } No exemplo 2, a contagem começará no 1 e terminará no número digitado pelo usuário. Exemplo 2 #include <iostream> #include <cstdlib> using namespace std; int main (void){ int x, user; cout <<"Digite um numero menor que 100 para iniciar a contagemn"; cin >> user; cin.ignore (); system ("cls"); // limpa a tela for (x=1; x<=user; x++) cout << x <<"t"; system ("pause"); } No exemplo 3, a contagem irá de 0 a 100 com intervalos determinados pelo usuário. //exemplo 3 #include <iostream> #include <cstdlib> using namespace std; int main (void){ int x, user; cout <<"Digite qual sera o intervalo da contagemn"; cin >> user; cin.ignore (); system ("cls"); // limpa a tela for (x=1; x<=100; x+=user)
  • 8. cout << x <<"t"; system ("pause"); } WHILE Uma outra forma de iteração (repetição) em C/C++ é o WHILE. While executa uma comparação com a variável. Se a comparação for verdadeira, ele executa o bloco de instruções ( { } ) ou apenas a próxima linha de código logo abaixo. Procedemos da seguinte maneira: WHILE (comparação) Veja o exemplo abaixo. #include <iostream> #include <cstdlib> using namespace std; int main (void){ int par=0; cout <<"Os numeros pares de 0 a 100 sao:nn"; while (par<=100) { cout <<par<<"t"; par+=2; //o mesmo que par=par+2 } system ("pause"); return 0; } Neste exemplo serão mostrados os números pares entre 0 e 100. Algumas precauções: O WHILE muitas vezes pode nos pregar peças. Se prestarmos atenção, no exemplo acima inicializamos a variável par em 0, pois quando usamos no while uma variável sem inicializa-la pode causar comportamentos estranhos. E por que isso acontece? É simples. C/C++ não inicializa variáveis automaticamente em 0, ou seja, se você comparar uma variável não inicializada, essa variável pode ser qualquer coisa, ex.: 1557745, -9524778, 1 ou até mesmo 0. Outro problema comum com o while é o loop infinito. O WHILE, diferentemente de FOR, não incrementa ou decrementa automaticamente uma variável, isso deve estar expressado dentro do bloco de instruções, como podemos ver na linha par+=2. Caso contrário, par sempre seria zero e nunca chegaria a 100 para o loop parar, causando o loop infinito. O ideal é utilizar o WHILE em um loop definido pelo usuário, que a partir de uma entrada ele termine. Ou seja, enquanto o usuário não fizer determinada ação, o loop continuará a dar voltas. Como no exemplo abaixo. #include <iostream> #include <cstdlib> using namespace std;
  • 9. int main (void){ int nr=1; while (nr!=0) //enquanto nr for diferente de 0 { cout <<"Digite um numero (0 para finalizar): "; cin >> nr; cin.ignore (); if (nr>0) cout <<"Este numero e positivon"; else cout <<"Este numero e negativon"; } return 0; } DO WHILE A estrutura de repetição DO WHILE parte do princípio de que deve-se fazer algo primeiro e só depois comparar uma variável para saber se o loop será executado mais uma vez. Devemos proceder da seguinte maneira: DO {bloco de instruções} WHILE (comparação); Usamos DO, depois escrevemos tudo que o DO deve fazer no bloco de instruções, no final do bloco colocamos o WHILE com a comparação entre parênteses, e não se esqueça que neste caso termina-se a linha do WHILE com ponto-e-vírgula (;). Veja: #include <iostream> #include <cstdlib> using namespace std; int main (void){ int nr; do { cout <<"Digite um numero (0 para finalizar): "; cin >> nr; cin.ignore (); if (nr%2==0) /* se nr for divisivel por 2 (O resto da divisão por 2 for 0)*/ cout <<"Este numero e parn"; else cout <<"Este numero e imparn"; system ("pause"); system ("cls"); } while (nr!=0); //enquanto nr for diferente de 0 return 0; }
  • 10. Este programa verifica se um número é par ou ímpar, e finaliza em 0. Partindo do ponto de vista que o usuário irá digitar o valor da variável nr durante o bloco do DO e só depois será comparada no WHILE no final do bloco, então não tem porque inicializar a variável (int nr;). Isso pode ajudar muitas vezes em que é necessário executar um loop, nem que seja uma vez. Math.h e Cmath Em C existe uma biblioteca própria para cálculos matemáticos um pouco mais complexo, a biblioteca ao qual nos referimos é a math.h, que tem seu correspondente em C++ como cmath. Com a biblioteca math.h (cmath) podemos encontrar facilmente funções para calcular potências, raíz quadrada, funções trigonométricas para cálculos que envolvem seno, co- seno e tangente, além de constantes para números irracionais como, por exemplo, PI (Π) e √2. Constantes matemáticas Vamos iniciar listando as constantes matemáticas: Constante em C/C+ valor da constante em Simbologia O que é + C/C++ e Número de Euler M_E 2,7182818284590452354 log2 e Logaritmo de e na base 2 M_LOG2E 1,4426950408889634074 log10 e Logaritmo de e na base 10 M_LOG10E 0,43429448190325182765 Logaritmo neperiano Ln2 (x) M_LN2 0,69314718055994530942 binário Logaritmo neperiano ou Ln10 (x) M_LN10 2,30258509299404568402 natural Π Pi M_PI 3,14159265358979323846 Π/2 Meio Pi M_PI_2 1,57079632679489661923 Π/4 Quarto de Pi M_PI_4 0,78539816339744830962 √2 Raiz quadrada de 2 M_SQRT2 1,41421356237309504880 √½ Raiz quadrada de meio M_SQRT1_2 0,70710678118654752440 Como podemos ver, todas as constantes são valores do tipo double. E isso se reflete nas funções.
  • 11. Funções matemáticas Trigonométricas sin (): Retorna o valor do seno. Recebe como argumento o valor dos graus em double. cos (): Retorna o valor do co-seno. Recebe como argumento o valor dos graus em double. tan (): Retorna o valor da tangente. Recebe como argumento o valor dos graus em double. Logaritmicas log (): Retorna o valor do logaritmo na base 2. Exige um argumento do tipo double. log10 (): Retorna o valor do logaritmo na base 10. Exige um argumento do tipo double. Potências pow (): Retorna o valor da base elevada ao expoente. Recebe dois argumentos do tipo double, o primeiro é a base e o segundo o expoente. Por exemplo: se quisermos saber o resultado da operação 210, faríamos pow (2, 10). sqrt (): Retorna o valor da raiz quadrada. Recebe como argumento um double do qual ele deve extrair a raiz. Arredondamento ceil(): Retorna o primeiro float sem casas decimais acima. Recebe um float como argumento. Exemplo: ceil (45.98561) resultaria em 46. floor(): Retorna o primeiro float sem casas decimais abaixo. Recebe um float como argumento. Exemplo: floor (45.98561) resultaria em 45. Para ilustrar todas essas funções e constantes, abaixo está um código demonstrando o resultado de cada função da biblioteca math.h (cmath) vista neste artigo. http://informaticaentretenimento.blogspot.com/
  • 12. Para ilustrar todas essas funções e constantes, abaixo está um código demonstrando o resultado de cada função da biblioteca math.h (cmath) vista neste artigo. #include <cmath> // ou <math.h> #include <iostream> #include <cstdlib> using namespace std; int main (void){ double graus, raio, base, expoente, x; cout << "TrigonometrianDigite o numero dos graus -> "; cin >> graus; cout << "GeometrianDigite a distancia do raio do circulo -> "; cin >> raio; cout << "PotenciacaonDigite a base -> "; cin >> base; cout << "Digite o expoente -> "; cin >> expoente; cin.ignore(); system ("cls"); x = pow (base, expoente); cout << "O seno de "<<graus<<" e "<<sin(graus)<<endl; cout << "O co-seno de "<<graus<<" e "<<cos(graus)<<endl; cout << "A tangente de "<<graus<<" e "<<tan(graus)<<endl; cout << base<<" elevado a "<<expoente<<" e "<<x<<endl; cout << "A raiz quadrada de "<<x<<" e "<<sqrt(x)<<endl; cout << "O log2 de "<<x<<" e "<<log(x)<<endl; cout << "O log10 de "<<x<<" e "<<log10(x)<<endl; cout << "O teto de "<<x<<" e "<<ceil(x)<<endl; cout << "A parte inteira de "<<x<<" e "<<floor(x)<<endl; cout << "Um circulo com "<<raio<<"cm de raio tem: "; cout << raio*2*M_PI<<"cm de comprimento e "; cout << pow(raio,2)*M_PI<<"cm de area.n"<<endl; system ("pause");
  • 13. return EXIT_SUCCESS; } Construa um programa que tendo como entrada dois pontos quaisquer do plano P(x1,y1) e Q(x2,y2), imprima a distância entre eles. A fórmula da distância é: #include <stdio.h> #include <stdlib.h> #include <math.h> main() { float x1, y1, x2, y2; float distancia; printf ("nDigite o valor de x1: "); scanf ("%f",&x1); printf ("nDigite o valor de y1: "); scanf ("%f",&y1); printf ("nDigite o valor de x2: "); scanf ("%f",&x2); printf ("nDigite o valor de y2: "); scanf ("%f",&y2); distancia=sqrt(pow((x2-x1),2)+pow((y2-y1),2)); printf ("nA distancia entre os pontos P1 e P2 eh %.2fn", distancia); system("PAUSE"); } Construa um programa que calcule a quantidade de latas de tinta necessárias e o custo para pintar tanques cilíndricos de combustível, onde são fornecidos a altura e o raio desse cilindro. Sabendo que:
  • 14. - a lata de tinta custa R$20,00 - cada lata contém 5 litros - cada litro de tinta pinta 3 metros quadrados. Sabendo que: Área do cilindro=3.14*raio2 + 2*3.14*raio*altura e que raio e altura são dados de entrada. #include <stdio.h> #include <stdlib.h> #include <math.h> main() { float altura, raio, areaCilindro, qtdadeLitros, qtdadeLatas, custo; printf ("nDigite o valor da altura em metros: "); scanf ("%f",&altura); printf ("nDigite o valor do raio em metros: "); scanf ("%f",&raio); areaCilindro=3.14*raio*raio + 2*3.14*raio*altura; printf ("nA area do cilindro eh %.2f metros quadrados", areaCilindro); qtdadeLitros=areaCilindro/3; printf ("nA qtidade de litros necessaria eh de %.2f ", qtdadeLitros); qtdadeLatas=qtdadeLitros/5; printf ("nA qtidade de latas necessaria eh de %.2f ", qtdadeLatas); custo=qtdadeLatas*20; printf ("nO valor total das tintas eh de R$ %.2f n", custo); system("PAUSE"); } http://informaticaentretenimento.blogspot.com/
  • 15. Fonte: http://www.tiexpert.net/index.php Acesse o blog abaixo: E seja bem vindo! Temos curso online http://informaticaentretenimento.blogspot.com/