Publicidade cabeçário

sexta-feira, 15 de fevereiro de 2013

C++ Estrutura de Dados - Revisão Struct, Procedimento e Função

Conceito de Struct

O mario bros tá um doce doce doce =x
  • Estrutura Heterogênea
  • Agrupamento de Campos
Sintaxe de Struct

struct <nome>{
<campos>
};

Struct são estruturas que lembram Classes em Orientação a Objetos
Struct são estruturas que lembram Classes em Orientação a Objetos
fonte da imagem: whiskymemories.blogspot.com 

Sintaxe de Procedimento

void <nome_procedimento>(){
<campos>
}

Sintaxe de Função

<tipagem> <nome_função>{
<campos>
}
observações:
  • Structs necessitam de ;(ponto e vírgula) depois do { }(abre e fecha chaves)
  • Em procedimento depois do nome é necessário ()(abre e fecha parenteses)
  • É necessário colocar a tipagem antes do nome da  Função 
1) Programa
#include <stdio.h>
#include <conio.h>

struct funcionario{
       char nome[30];
       float salario;
       };

main(){
       funcionario fun[5]; //inicializando a struct
/**********************declarando variáveis******************************************/
    
       for(int i=0; i <5; i++){
       printf("\n\t Digite o nome do funcionario.:");
       gets(fun[i].nome);
       
       printf("\n\t Digite o salario do funcionario.:");
       scanf("%f",&fun[i].salario);
       getchar(); //para limpar a string 
       } //fim for
/**********************pegando os valores******************************************/
       
       for(int i=0; i <5; i++){
       printf("\n\t O funcionario %s recebe %6.2f de salario",fun[i].nome,fun[i].salario);                
       } //fim for
/********************imprimindo os valores******************************************/      

       getch();
       } //fim main
Nosso amigo fiel getchar() ;DD
Nosso amigo fiel getchar() ;DD

Uso de Struct em C++
Uso de Struct em C++
fonte da imgem: bdfatec.blogspot.com.br

     Primeiro programa da noite, a struct funciona como uma classe em O.O., são fáceis de manipular, a única coisa que se deve prestar atenção é na sujeira de memória causada pelo comando gets(), por isso a necessidade de se utilizar o getchar(); ou fflush(stdin);

2) Programa
#include <stdio.h>
#include <conio.h>

int iVetor[6];

void preencher_vetor(){
    for(int i=0; i < 6; i++){
            printf("\n\t Digite um valor para o vetor.: ");
            scanf("%d",&iVetor[i]);
            }//fim for 
     } //fim preencher_vetor
/*****************procedimento para preencher o vetor*************/

void exibir_vetor(){
    printf("\n\t Os valores digitados para o vetor sao.: ");
    for(int i=0; i < 6; i++)  printf("\n\t %d",iVetor[i]);
     } //fim exibir_vetor
/*****************procedimento para imprimir o vetor*************/
     
main(){
       preencher_vetor();
       exibir_vetor();
/*****************chamando os procedimentos*************/      
       getch();
       } //fim main

Procedimentos diferenciam de funções por não "devolverem" valores.
Uso de Procedimentos em C++
Uso de Procedimentos em C++
fonte da imagem: bdfatec.blogspot.com.br

3) Programa

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>


/*
Criar 4 funções com as operações básicas (digitadas no main) e o usuário deve escolher
qual operação quer usar.
*/

float soma(float x, float y){
         return x + y;
         }//fim soma
/**********função que calcula a soma*******************************************/

float sub(float x, float y){
         if (x >y) return x - y;
         else
         return y - x;
         }//fim sub
/**********função que calcula a subtração***************************************/
         
float div(float x, float y){
         if(y != 0) return x/y;
         }//fim div
/**********função que calcula a divisão****************************************/

float mult(float x, float y){
         return x * y;
         }//fim mult         
/**********função que calcula a multiplicação**********************************/         
              
main(){
      float fNum1, fNum2,fResultado;
      int op;
/**************declaração de variáveis************************************/   
   
      printf("\n\t Digite um numero.:");
      scanf("%f",&fNum1);
      printf("\n\t Digite um numero.:");
      scanf("%f",&fNum2);
/**************pegando valores do usuário************************************/      
      do{
      printf("\n\t Calculadora");
      printf("\n\t Digite a opcao desejada");   
      printf("\n\t 1 - Somar");
      printf("\n\t 2 - Subtrair");
      printf("\n\t 3 - Dividir");
      printf("\n\t 4 - Multiplicar");    
      printf("\n\t 0 - Sair \n\n\tOpcao desejada.:");    
      scanf("%d",&op);
/**************menu de escolha************************************************/
        
      switch(op){
              case 0: 
                   break;
              case 1:
                   fResultado=soma(fNum1,fNum2);   
                   printf("\b\t A soma dos numeros digitados e: %5.2f",fResultado);
                   break;
              case 2:
                   fResultado=sub(fNum1,fNum2);   
                   printf("\n\t A subtracao dos numeros digitados e: %5.2f",fResultado);
                   break;
              case 3:
                   if(fNum2 == 0) printf("\n\t Divisao invalida!!");
                   else{
                   fResultado=div(fNum1,fNum2);   
                   printf("\n\t A divisao dos numeros digitados e: %5.2f",fResultado);
                   }
                   break;
              case 4:
                   fResultado=mult(fNum1,fNum2);   
                   printf("\n\t A multiplicacao dos numeros digitados e: %5.2f",fResultado);
                   break;
              default:
                   printf("\n\t Digite um numero valido!!!");
                   break;
                 } //fim switch 
/**************lógica para definir o que o usuário quer fazer*******************/                   
                 getch();
                 system("cls");    // limpa a tela
      }while(op != 0);
  } //fim main

Aqui a maior dificuldade é criar um menu do que propriamente as contas, visto que as funções simplificam o código. Os testes para evitar problemas com a divisão.
Uso de funções em C++
fonte da imagem: bdfatec.blogspot.com.br


fonte: <Prof. Jean Daniel - Estrutura de Dados - Revisão II>
adaptado: arroyo, gabriel

Gostou do blog? Então segue =D 
Gostou da postagem? Então comenta ;DDD 
Fique por dentro das atualizações