estrutura de linguagem c++

15
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

Upload: veronica-veiga

Post on 28-Jun-2015

1.518 views

Category:

Technology


3 download

TRANSCRIPT

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 positivo\n\n"); //se nr for maior ou igual a 0 o numero sera positivo else printf ("O numero digitado e negativo\n\n"); //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.\tmultiplicar\n"); printf ("2.\tdividir\n"); 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 multiplicados\n"); scanf ("%d %d", &a, &b); getchar (); x=a*b; system ("cls"); //limpa a tela printf ("%d X %d = %d\n", a, b, x); } else { //se nr nao for igual a um executara todo esse bloco printf ("Digite os dois numero que deverao ser divididos\n"); scanf ("%d %d", &a, &b); getchar (); x=a/b; system ("cls"); //limpa a tela printf ("%d / %d = %d\n", 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 ("\n\nO numero e igual a 9.\n");

break;

case 10:

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

break;

case 11:

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

break;

default:

printf ("\n\nO 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!\n\n";

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 contagem\n"; 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 contagem\n"; 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 contagem\n"; 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:\n\n"; 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 positivo\n"; else cout <<"Este numero e negativo\n"; } 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 par\n"; else cout <<"Este numero e impar\n"; 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:

Simbologia O que é Constante em C/C++

valor da constante em 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

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

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

Π 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 << "Trigonometria\nDigite o numero dos graus -> "; cin >> graus; cout << "Geometria\nDigite a distancia do raio do circulo -> "; cin >> raio; cout << "Potenciacao\nDigite 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 %.2f\n", 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/