Sunteți pe pagina 1din 11

Linguagem C++

Programao Estruturada

Struct
O conceito de orientao a objeto - principalmente classes tem uma base muito slida no conceito de estrutura de dados. As estruturas de dados consistem em criar apenas um dado que contm vrios membros, que nada mais so do que outras variveis. De uma forma mais simples, como se uma varivel tivesse outras variveis dentro dela.

Vantagem: A vantagem em se usar estruturas de dados que podemos agrupar de forma organizada vrios tipos de dados diferentes, por exemplo, dentro de uma estrutura de dados podemos ter juntos tanto um tipo float, um inteiro, um char ou um double.
As variveis que ficam dentro da estrutura de dados so chamadas de membros.

Struct
Para criar uma estrutura de dados usamos a palavra reservada struct.

Toda estrutura deve ser criada antes de qualquer funo ou mesmo da funo principal main.
Toda estrutura tem nome e seus membros so declarados dentro de um bloco de dados. Aps a definio de seus membros no bloco de dados, terminamos a linha com um ponto-e-vrgula (;).

Ex. Se fossemos criar uma estrutura de dados para simbolizar uma data faramos: struct data { int dia; int mes; int ano; };

Struct
include <iostream> .#include <cstdlib> Portanto, a varivel hoje declarada como sendo using namespace std; um tipo de dado data. Data uma estrutura de struct data { dados que tem trs caractersticas (ou trs int dia; membros) inteiros: dia, mes e ano. Como hoje int mes; um tipo de dado data, ele obtm os mesmos trs int ano;}; membros. Para acessar cada membro, usamos a int main (void){ varivel e depois o nome do membro que data hoje; queremos acessar separados por ponto (.). hoje.dia = 23; hoje.mes = 9; hoje.ano = 2008; cout <<"Hoje e "<<hoje.dia<<"/"<<hoje.mes<<"/"<<hoje.ano<<endl; system ("pause"); return EXIT_SUCCESS; }

Struct
#include <cstdlib> #include <iostream> using namespace std; struct st_parceiro_negocio { int Tipo_Parceiro; char CPF_CNPJ[14]; char Tipo_Pessoa[2]; char Razao_Social[50]; char Logradouro[20]; char Numero[10]; char Co_logradouro[50]; bool Flag_excluido; }; main (){ int i,x; struct st_parceiro_negocio eParceiroNegocio[20]; for (i=0; i<20; i++) { cout <<"informe o nome do parceiro"; cin >> eParceiroNegocio[i].Tipo_Parceiro; cout <<"\n" ; cout << eParceiroNegocio[i].Tipo_Parceiro; } system("PAUSE"); return EXIT_SUCCESS;}

Typecast
Typecasting uma tcnica utilizada em C/C++ para simples converso de tipo de dado, ou seja, ele no converte um tipo de dado, mas sim, faz com que ele se parea com outro tipo de dado. A tcnica de typecasting importante porque muitas vezes temos que retornar valores de tipos diferentes ou, de forma vulgar, traduzir certos tipos de dados genricos. O importante aqui saber que um processo com um tipo de dado, sempre resultar no mesmo tipo de dado. Para fazer o typecasting, basta colocar entre parnteses o tipo de dado para o qual deseja converter e, ento, coloc-lo antes de uma varivel especfica ou depois do operador de atribuio (=) para indicar que o resultado proveniente daquela operao deve ser convertido. Pensando no exemplo acima, vamos nomear uma varivel x sendo float (decimal) e iremos dividir duas variveis inteiras: n1 e n2; #include <iostream> using namespace std; int main (void){ int n1=10, n2=3; float x; x=(float)n1/n2; cout << x << endl; system ("pause");}

Typecast
Para demonstrar que podemos converter a interpretao de quaisquer dados, abaixo est um algoritmo que cria a tabela ASCII. Para faz-la, ns usaremos apenas uma varivel inteira curta no cdigo inteiro, e a converteremos para char. #include <iostream> using namespace std; int main (void){ for (unsigned short i=15; i<255; i++){ cout << i << "-" << (char)i << "\t\t"; } cout << endl; system ("pause");}

Recursividade C e C++
Recursividade Recursividade no um comando, mas uma "habilidade" de uma funo chamar a si mesma. Isto no privilgio apenas da linguagem C/C++, muitas outras linguagens como Java, Visual Basic, entre outras tambm possvel ser feito isso. Como fazemos uma funo chamar ela mesma simples, basta escrever no cdigo da funo, a funo que est sendo criada como se ela j tivesse sido criada antes. Parece estranho isso, mas vamos imaginar um exemplo simples: - Temos um programa e sabemos que o cdigo do programa est todo dentro da funo MAIN - se quisermos reiniciar o programa basta chamarmos a funo MAIN novamente. Veja o exemplo a seguir:

Recursividade C e C++
#include <iostream> include <cstdlib> using namespace std; .int main (void){ int a, b, c, opcao; cout <<"Digite o valor de A: "; cin >> a; cin.ignore(); cout <<"Digite o valor de B: "; cin >> b; cin.ignore(); c=a+b; cout <<"O resultado de A + B e "<<c<<"\n\n \Deseja reiniciar o programa e realizar outro calculo?\n \1. Sim\t2.Nao\n\n=> "; cin >> opcao; if (opcao==1) /* se '1' for digitado, a funo MAIN chama a funo MAIN, ou seja, reinicia o programa.*/ main(); else return EXIT_SUCCESS; }

Recursividade C e C++
Na linguagem C/C++, assim como em muitas outras linguagens de programao uma funo pode chamar a si prpria. Uma funo assim chamada de funo recursiva. Todo cuidado pouco ao se fazer funes recursivas. A primeira coisa a se providenciar um critrio de parada. Este vai determinar quando a funo dever parar de chamar a si mesma. Isto impede que a funo se chame infinitas vezes. Uma funo que calcule o fatorial de um nmero inteiro n um bom exemplo de uma funo recursiva:
#include <stdio.h> int fat(int n) { if (n) return n*fat(n-1) else return 1; } int main() { int n; printf("\n\nDigite um valor para n: "); scanf("%d", &n); printf("\nO fatorial de %d e' %d", n, fat(n)); return 0; }

Recursividade C e C++
Note que, enquanto n no for igual a 0, a funo fat chama a si mesma, cada vez com um valor menor. n=0 o critrio de parada para esta funo. H certos algoritmos que so o mais eficientes quando feitos de maneira recursiva, mas a recursividade algo a ser evitado sempre que possvel, pois, se usada incorretamente, tende a consumir muita memria e ser lenta. Lembre-se que memria consumida cada vez que o computador faz uma chamada a uma funo. Com funes recursivas a memria do computador pode se esgotar rapidamente.

S-ar putea să vă placă și