Linguagem C

Olá amigos, nessa seção disponibilizarei um conteúdo um pouco diferente do que podemos encontrar em páginas sobre linguagens de programação. Quero colocar aqui uma um apanhado de dicas que fazem a diferença na hora de criar um bom código fonte. Inicialmente coloco vários exemplos para iniciantes da arte de programar.

Dicas

Instalação do C/C++

Nesse tutorial vc aprende a instalar o geany e o compilador mingw de maneira fácil e prática:
http://aquilesburlamaqui.wikidot.com/passo-a-passo-para-instalacao-do-geany-no-windows
Ele instala o C++ que é compativel com a linguagem C.

Hello World

#include <stdio.h>
 
int main() {
        printf("Hello World!\n");
}

Variáveis

#include <stdio.h>
 
int main() {
        int inteiro;
        float flutuante;
        char caracter;
        int arrayDeInteiros[10];
        float arrayDeFlutuantes[5];
        char arrayDeCaracter[50];
}

Saída da Dados

#include <stdio.h>
 
int main() {
        printf("%i\n",2);
        printf("%f\n",3.4);
        printf("%c\n",'a');
        printf("%s\n","Texto");
}

Entrada de Dados

#include <stdio.h>
 
int main() {
    int inteiro;
    float flutuante;
    char caractere;
    char string[50];
    scanf("%i",&inteiro);
    scanf("%f",&flutuante);
    getchar();
    scanf("%c",&caractere);
    getchar();
    scanf("%s",&string);
 
    printf("O inteiro digitado foi: %i\n",inteiro);
    printf("O flutuante digitado foi:%f\n",flutuante);
    printf("O caractere digitado foi:%c\n",caractere);
    printf("O string digitado foi:%s\n",string);
}

Condicional if

#include <stdio.h>
 
int main() {
        int x;
        printf("Qual a sua idade ?");
        scanf("%d",&x);
        if(x>=18)
           printf("Legal, com %d anos, você é maior de idade\n",x);
        else
           printf("Entendi, com %d anos, faltam %d para você se tornar maior de idade\n",x,18-x);
}

Condicional Switch

#include <stdio.h>
#include <stdlib.h>
 
int main() {
        int x;
        printf("MENU\n");
        printf("---------------------\n");
        printf("1 - Opção\n");
        printf("2 - Opção\n");
        printf("3 - Sair\n");
        scanf("%c",&x);
        switch(x) {
                case 1:
                        printf("Você escolheu a opção 1\n");
                        break;
                case 2:
                        printf("Você escolheu a opção 2\n");
                        break;
                case 3:
                        exit(0);
                        break;
                default:
                        printf("Opção inválida");
                        break;
        }
 
}

Repetições com for

#include <stdio.h>
 
int main() {
        int i;
        for(i = 0;i<10;i++) {
                printf("Imprimindo pela %i vez\n",i+1);
        }
}

Repetições com while

#include <stdio.h>
 
int main() {
        int i = 0;
        while(i<10) {
                printf("Imprimindo pela %i vez\n",i+1);
                i++;
        }
}

Repetições com do…while

#include <stdio.h>
 
int main() {
        int i = 0;
        do {
           printf("Imprimindo pela %i vez\n",i+1);
           i++;
        }while(i<10);
}

Vetores

int main(void) {
    int i,j;
    int array[10];
    printf("\n######## vetor de int ##########\n");    
    for(i = 0;i<10;i++) {
          array[i] = i*2;
    }
    for(i = 0;i<10;i++) {
          printf("%i -> array[%i]=%i\n",&array[i],i,array[i]);
    }
}

Matrizes

#include <stdio.h>
 
int main() {
        int matriz[10][3];
        int i,j;
        for(i=0;i<10;i++) {
                for(j=0;j<3;j++) {
                        matriz[i][j] = i+j;
                }
        }
 
        for(i=0;i<10;i++) {
                for(j=0;j<3;j++) {
                        printf("Matriz[%d][%d] = %d\n",i,j,matriz[i][j]);
                }
        }
}

Exemplo de Menu Textual

#include <stdio.h>
int main() {
   char opcao;
   do {
       system("cls"); //no linuc subsituir cls por clear
       printf("####################################################\n");
       printf("####################### MENU #######################\n");
       printf("####################################################\n");
       printf(" 1 - para coisar\n");
       printf(" 2 - para esbrugar\n");
       opcao = getch();
       switch(opcao) {
          case '1':
               printf("Coisando...\n");
               break;
          case '2':
               printf("Esbrugando...\n");
               break;
          default:
               printf("Opcao Invalida\n");
               break;
       }
       printf("\nVoltar ao menu? (s/n):");
       opcao = getch();
   }while(opcao == 's' || opcao == 'S');    
 
}

Ordenando um Vetor(Força Bruta)

#include<stdio.h>
int main(){
    int idade[5];//declarei 5 variaveis do tipo inteiro
    int x;
    //Lê todas as variaveis do vetor
    for(x=0;x<5;x++){
       printf("digite sua idade\n");
       scanf("%i",& idade[x]);
    }
    //Imprime as variaveis do vetor
    for(x=0;x<5;x++){
       printf("%i",idade[x]);
       if(x!=3 && x!=4)
          printf(", ");
       if(x==3)
          printf(" e ");
       if(x==4)
          printf(".");
    }   
    //Ordena as variaveis do vetor
    int y;
    int temporaria;
    for(x=0;x<5;x++){
       for(y=0;y<5;y++){
            if(idade[y]>idade[y+1]) {
                temporaria = idade[y];
                idade[y] = idade[y+1];
                idade[y+1] = temporaria;            
            }   
       }                               
    }
    printf("\n");
    //Imprime as variaveis do vetor
    for(x=0;x<5;x++){
       printf("%i",idade[x]);
       if(x!=3 && x!=4)
          printf(", ");
       if(x==3)
          printf(" e ");
       if(x==4)
          printf(".");
    }                  
    system("pause");
}

Estrutura

#include <stdio.h>
 
struct ponto {
      int x;
      int y;
};
 
int main() {
   struct ponto p1;
   p1.x = 0;
   p1.y = 15;
   printf("P1:(%d,%d)\n",p1.x,p1.y);
}

Jogo da Velha com funções

#include <stdio.h>
 
char m[3][3];
char jogador1;
char jogador2; 
 
void limpar_jogo() {
  int i,j;
  for(i=0;i<3;i++){
      for(j=0;j<3;j++){
         m[i][j]=' ';
      }
  }
}
 
void imprime_jogo(){
   int i,j;
   for(i=0;i<3;i++){
      for(j=0;j<3;j++){
         if(j==2){
            printf("%c ",m[i][j]);
         }
         else{
            printf("%c |",m[i][j]);
         }
      }
        if(i!=2){
           printf("\n--------\n");
        }else{
           printf("\n");
       }
   }
}
 
void escolha_de_jogador() {
   printf("escolha x ou o\n");
   scanf("%c",&jogador1);
   if(jogador1=='x'){
      jogador2= 'o';   
   }else{
      jogador2='x'; 
   }
}
 
void vez_jogador(int jogador) {
     int i,j;
     printf("jogador%i qual a linha:\n",jogador);
     scanf("%i",&i);   
     printf("Jogador%i qual a coluna:\n ",jogador);
     scanf("%i",&j);
     while(m[i][j]!=' '){
         printf("por favor jogador,escolha outra posiçao:\n");
         scanf("%i",&i);
         scanf("%i",&j);
     }    
     if(jogador==1)
       m[i][j]=jogador1;
     else
       m[i][j]=jogador2;
     imprime_jogo();
}
 
int testeEmpate() {
    int contador = 0;
    int i, j;
    for(i=0;i<3;i++) {
       for(j=0;j<3;j++) {
          if(m[i][j]==' ')
             contador++;
       }
    }
    if(contador==0)
       return 1;
    else
       return 0;
} 
 
void testar_jogo(int i){
   if(i==1) { 
        //linha 0 
        if(m[0][0]==jogador1 &&  m[0][1]==jogador1 && m[0][2]==jogador1) {
           printf("O jogador 1 Ganhou\n");
           exit(1);
        }
    //linha 1
        if(m[1][0]==jogador1 &&  m[1][1]==jogador1 && m[1][2]==jogador1) {
           printf("O jogador 1 Ganhou\n");
       exit(1);    
        } 
        //linha 2
    if(m[2][0]==jogador1 &&  m[2][1]==jogador1 && m[2][2]==jogador1) {
           printf("O jogador 1 Ganhou\n");
           exit(1);
        } 
        //col 0
    if(m[0][0]==jogador1 &&  m[1][0]==jogador1 && m[2][0]==jogador1) {
           printf("O jogador 1 Ganhou\n");
           exit(1);
        } 
    //col 1 
    if(m[0][1]==jogador1 &&  m[1][1]==jogador1 && m[2][1]==jogador1) {
           printf("O jogador 1 Ganhou\n");
           exit(1);
        } 
        //col 2
    if(m[0][2]==jogador1 &&  m[1][2]==jogador1 && m[2][2]==jogador1) {
           printf("O jogador 1 Ganhou\n");
           exit(1);
        } 
        //diagonal primaria
    if(m[0][0]==jogador1 &&  m[1][1]==jogador1 && m[2][2]==jogador1) {
           printf("O jogador 1 Ganhou\n");
           exit(1);
        } 
        //diagonal secundaria 
    if(m[0][2]==jogador1 &&  m[1][1]==jogador1 && m[2][0]==jogador1) {
           printf("O jogador 1 Ganhou\n");
           exit(1);
        } 
   }else {
        //linha 0 
        if(m[0][0]==jogador2 &&  m[0][1]==jogador2 && m[0][2]==jogador2) {
           printf("O jogador 2 Ganhou\n");
           exit(1);
        }
    //linha 1
        if(m[1][0]==jogador2 &&  m[1][1]==jogador2 && m[1][2]==jogador2) {
           printf("O jogador 2 Ganhou\n");
           exit(1);
        } 
        //linha 2
    if(m[2][0]==jogador2 &&  m[2][1]==jogador2 && m[2][2]==jogador2) {
           printf("O jogador 2 Ganhou\n");
           exit(1);
        } 
        //col 0
    if(m[0][0]==jogador2 &&  m[1][0]==jogador2 && m[2][0]==jogador2) {
           printf("O jogador 2 Ganhou\n");
           exit(1);
        } 
    //col 1 
    if(m[0][1]==jogador2 &&  m[1][1]==jogador2 && m[2][1]==jogador2) {
           printf("O jogador 2 Ganhou\n");
           exit(1);
        } 
        //col 2
    if(m[0][2]==jogador2 &&  m[1][2]==jogador2 && m[2][2]==jogador2) {
           printf("O jogador 2 Ganhou\n");
           exit(1);
        } 
        //diagonal primaria
    if(m[0][0]==jogador2 &&  m[1][1]==jogador2 && m[2][2]==jogador2) {
           printf("O jogador 2 Ganhou\n");
           exit(1);
        } 
        //diagonal secundaria 
    if(m[0][2]==jogador2 &&  m[1][1]==jogador2 && m[2][0]==jogador2) {
           printf("O jogador 2 Ganhou\n");
           exit(1);
        } 
   }
   if(testeEmpate()==1) {
     printf("Jogo empatado!\n");
     exit(1);
   }
}
 
int main(){
   int i,j;
   limpar_jogo();
   imprime_jogo();
   escolha_de_jogador();
   while(1){
       vez_jogador(1);
     testar_jogo(1);
        vez_jogador(2);
        testar_jogo(2);
   }    
}
Add a New Comment
or Sign in as Wikidot user
(will not be published)
- +
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.