Estrutura de linguagem C++
-
Upload
veronica-veiga -
Category
Technology
-
view
1.518 -
download
3
Transcript of Estrutura de linguagem C++
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/