AULA X - Programação 1 - Uso de IDE com o C

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Objetivos

O aluno deverá ser capaz de:

  • utilizar uma Interface Gráfica de Desenvolvimento (IDE) para desenvolver programas C;
  • usar conceito de projeto
  • depurar programas na IDE

O que é uma IDE

  • IDE é um ambiente Integrado de Desenvolvimento de Software. O IDE integra gerenciador de projeto, editor, compilador, linkers, depuradores e terminais para visualização de forma que o desenvolvedor possa ter alta produtividade no desenvolvimento;
  • Exemplos de IDE: Netbeans, Eclipse, CLion...


O IDE CLion - Características e Como Instalar

  • cross-plataforma: pode ser usado em diferentes Sistemas Operacionais (ver [1]);
  • suporta oficialmente o compilador gcc (além de outros). O "gcc" e a ferramenta "make" devem estar instalados.
  • inclui ("bundle") o GDB, um deputarador da Gnu para código C/C++;

Existem duas opções de instalações para a realidade IFSC SJ:

  • Instalar o Linux em uma Máquina Virtual e depois instalar o CLion sobre o Linux
  • Instalar o CLion diretamente sobre o Windows e usando as ferramentas Minimum GNU

Vamos começar pela última opção considerando que o hardware disponível pode ter limitações.

VAMOS considerar que será instalada a VERSÃO TRIAL de 30 dias. Já foi comentado em sala que o ifsc já está cadastrado no site do CLIon então cada aluno poder aplicar para obter um código de ativação. Ver Como aplicar para o CLion.

Instalação sobre o Windows

Consiste nos seguintes passos:

  • Baixar o pacote de software MinGW de versão 64 bits.
  • Instalar MinGW, executar e selecionar os pacotes mingw-developer-tool, mingw32-base, mingw32-gcc-g++, mingw32-msys-base. Ver detalhes em [2]
  • Baixar o CLion de [3]. Note que o download começa de imediato. NÃO precisa aplicar neste momento para obter o funcionamento em modo trial. Para habilitação posterior deve ser usado o email do domínio IFSC
  • Ir na pasta Download e descompactar e executar o instalador do CLion.
  • Executar o CLion e configurar conforme colocado em [4]

Projeto em C com o CLion - Criação e Execução

Criar um projeto (<New Project>)com as configurações abaixo. Notar que um projeto será por default criado dentro de uma área de projetos (Workspace). O Workspace pode ser mudado mas não recomendamos fazer isto por enquanto.

PRG-TelaProjetoCLion.jpg

Na sequÊncia esta tela deve ser mostrada:


PRG-TelaEdicaoCLion.jpg

A execução do programa é realizada como mostrado abaixo:

PRG-TelaRun.jpg

Para mostrar linha no editor fazer: File->Settings->Editor->General->Appearance. ([5])

Depuração em Alto nível

A depuração em alto nível permite a execução passo a passo do programa (usando o depurado gdb). Cole o seguinte código no arquivo main.c:

#include <stdio.h>

int main() {
    int x,y;

    printf("Entre com o valor de x\n");
    scanf("%d", &x);
    x = x + 1;
    y = x * 7;
    printf("valor de x = %d\n", x);
    return 0;
}

Para explorar a execução passo a passo, coloque um BREAKPOINT na linha 6 (o primeiro printf) Vá até esta linha e faça CTRL-F8. Observe que a linha fica vermelha.

Execute conforme a tela abaixo. Em azul aparecerá a linha que SERÁ executada. Observe que no momento em que o scanf for executado, a entrada de dados é realizada em uma janela CONSOLE de apoio:

PRG-TelaDepuracao.jpg

Observar que o conteúdo das variáveis podem ser inspecionados sobrepondo o mouse sobre a variável:

PRG-TelaWatchComMouse.jpg

Uso de Funções da Biblioteca Matemática

Além de incluir no código fonte a diretiva:

#include <math.h>

Incluir no arquivo CMakeList.txt a linha

target_link_libraries(hello m)

Onde aparece o hello, substituir pelo nome do projeto.

Exercícios

Depurar os códigos abaixo:

  1. #include <stdio.h>
    
    int main() {
    
        char x;
        char i;
    
        x=95;
        for(i='M';i>65;i--){
            if(i=='F' || i=='A')
                x=x+1;
        }
        printf("%c %d\n", x,i);
        return 0;
    }
    
  2. #include <stdio.h>
    
    int main() {
    
        int i;
        int soma=6;
    
        do {
            if (soma=7)
                break;
            soma = soma + 1;
        } while(soma<10);
        
        printf("soma =%d\n", soma);
    
        return 0;
    }
    
  3. #include <stdio.h>
    
    int main() {
    
       int i,j,k;
    
       i=5;
       k=7;
       j=6;
       if(i>6 && i<10) {
           j=j+k;
       } else if (k!=5) {
           j=j*10;
       } else {
           j++;
       }
       printf("%d\n", j);
    
       return 0;
    }
    
  4. #include <stdio.h>
    
    int main() {
    
       int i,j,k;
    
       i=0;
       k=0;
       do {
           for(j=0;j<100;j++){
               if (j==1)
                   break;
               else {
                   continue;
               }
               k=k+1;
           }
           k=k+j;
           i=i+1;
       }while (i<2);
    
       printf("k=%d\n", k);
       return 0;
    }
    
  5. #include <stdio.h>
    
    int main() {
    
       int x,i,N, produto=1,cont=0;
    
       do {
           printf("Entre com o valor de N\n");
           scanf("%d", &N);
           if (N<=0)
               printf("Número deve ser positivo, entre novamente...\n");
       } while(N<=0);
    
       for (i=0;i<N;i++) {
           printf("ENtre com o número %d \n", i+1);
           scanf("%d", &x);
           if (x>10 && x< 50)
               cont = cont+1;
       }
    
       printf("Maiores que 10 e menores que 50 => %d", cont);
       return 0;
    }
    
  6. #include <stdio.h>
    
    int main()
    {
    
       int i=0,i_ant,fat_ant,N, fat=1;
    
       printf("Entre com o valor de N\n");
       do {
          scanf("%d", &N);
          if (N<2)
              printf("Valor de N deve ser maior que 1\n");
       }while (N<2);
    
    
       while (N>fat){
            i_ant=i;
            fat_ant=fat;
            i = i+1;
            fat = fat*i;
       }
       printf("Numero com fatorial imediatamente menor => %d com fatorial %d\n", i_ant,fat_ant);
       return 0;
    }