Estrutura de linguagem C++
Upcoming SlideShare
Loading in...5
×
 

Estrutura de linguagem C++

on

  • 1,548 views

 

Statistics

Views

Total Views
1,548
Views on SlideShare
1,548
Embed Views
0

Actions

Likes
0
Downloads
22
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Estrutura de linguagem C++ Estrutura de linguagem C++ Document 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 SwitchUma ação muito importante que o processador de qualquer computador executa, e que otorna 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 caminhosdiferentes de acordo com decisões que o próprio programa toma. Para isso, precisamos deuma estrutura seletiva da qual o único valor possível é o bit 1 ou 0, resumindo: retornar ovalor VERDADEIRO ou FALSO.Em C / C++, como em muitas linguagens de programação, quem faz isso é o IF (SEtraduzindo).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á noELSE.Exemplificando: Se (IF) for tal coisa, faça isso! Caso contrário (ELSE), faça aquilo!Usando IFPara 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 dentrodo bloco de dados - as chaves ({}).Usando ELSEO 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 dentrodo bloco de dados ({}).No exemplo abaixo está um exemplo de uso do if e else com apenas uma linha a serexecutada.#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 serexecutada#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");}SwitchUma instrução switch torna-se prática sempre que um programa necessita selecionaralgumas ações dentre as diversas possíveis, tendo como base o resultado de umaexpressã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 avariá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á sendotestada, não for igual a nenhuma das constantes. O comando break faz com que o switchseja interrompido assim que uma das declarações for executada. Mas ele não é essencialao comando switch. Se após a execução do bloco_de_comandos não houver um break, oprograma continuará executando os próximos blocos de comandos sem testar com o valordas próximas constantes. Isto pode ser útil em algumas situações, mas é recomendadomuito 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úsculaswitch (opcao){case S: //Entre aspas simples porque é um caractersystem ("cls");main ();case N: //Entre aspas simples porque é um caracterreturn EXIT_SUCCESS;
    • default:cout <<"aOpcao invalida!nn";reiniciar ();}} Estruturas Repetição – FOR, WHILE e DO WHILEFORO 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 deincremento ou decremento. Ou seja, for precisa de três condições. Vale salientar que essascondiçõ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 programaque faz algo muito simples, ele soma um a uma variável várias vezes. O x começa em 1, oloop 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 executadapelo 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, executarenquanto x for menor ou igual a 100... Às vezes, o usuário pode entrar com dados paracontrolar 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");}WHILEUma 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, eleexecuta 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 acimainicializamos a variável par em 0, pois quando usamos no while uma variável seminicializa-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 umavariável não inicializada, essa variável pode ser qualquer coisa, ex.: 1557745, -9524778, 1ou 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 expressadodentro do bloco de instruções, como podemos ver na linha par+=2. Caso contrário, parsempre 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 entradaele termine. Ou seja, enquanto o usuário não fizer determinada ação, o loop continuará adar 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 WHILEA estrutura de repetição DO WHILE parte do princípio de que deve-se fazer algo primeiro esó 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 finaldo bloco colocamos o WHILE com a comparação entre parênteses, e não se esqueça queneste 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 blocodo DO e só depois será comparada no WHILE no final do bloco, então não tem porqueinicializar a variável (int nr;). Isso pode ajudar muitas vezes em que é necessário executarum loop, nem que seja uma vez. Math.h e CmathEm C existe uma biblioteca própria para cálculos matemáticos um pouco mais complexo, abiblioteca 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 calcularpotê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áticasVamos 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,70710678118654752440Como podemos ver, todas as constantes são valores do tipo double. E isso se reflete nasfunções.
    • Funções matemáticasTrigonométricassin (): 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.Logaritmicaslog (): 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ênciaspow (): Retorna o valor da base elevada ao expoente. Recebe dois argumentos do tipodouble, o primeiro é a base e o segundo o expoente. Por exemplo: se quisermos saber oresultado da operação 210, faríamos pow (2, 10).sqrt (): Retorna o valor da raiz quadrada. Recebe como argumento um double do qual eledeve extrair a raiz.Arredondamentoceil(): Retorna o primeiro float sem casas decimais acima. Recebe um float comoargumento. Exemplo: ceil (45.98561) resultaria em 46.floor(): Retorna o primeiro float sem casas decimais abaixo. Recebe um float comoargumento. Exemplo: floor (45.98561) resultaria em 45.Para ilustrar todas essas funções e constantes, abaixo está um código demonstrando oresultado 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 oresultado 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) eQ(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 custopara pintar tanques cilíndricos de combustível, onde são fornecidos a altura e o raio dessecilindro.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/