Mudanças entre as edições de "AULA X - Programação 1 - Uso de IDE com o C"
(51 revisões intermediárias por 2 usuários não estão sendo mostradas) | |||
Linha 19: | Linha 19: | ||
<blockquote style="background: #DCF4CC; border: 1px solid black; padding: 1em;"> | <blockquote style="background: #DCF4CC; border: 1px solid black; padding: 1em;"> | ||
− | =O IDE CLion= | + | =O IDE CLion - Características e Como Instalar= |
</blockquote> | </blockquote> | ||
− | *cross- | + | *cross-plataforma: pode ser usado em diferentes Sistemas Operacionais (ver [https://www.jetbrains.com/help/clion/2019.1/clion-quick-start-guide.html]); |
*suporta oficialmente o compilador gcc (além de outros). O "gcc" e a ferramenta "make" devem estar instalados. | *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++; | *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 [https://www.jetbrains.com/community/education/#students Como aplicar para o CLion]. | ||
+ | |||
+ | ==Instalação sobre o Windows== | ||
+ | |||
+ | Consiste nos seguintes passos: | ||
+ | *Baixar o pacote de software MinGW de [http://mingw-w64.org/doku.php 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 [https://www.jetbrains.com/help/clion/quick-tutorial-on-configuring-clion-on-windows.html#MinGW] | ||
+ | *Baixar o CLion de [https://www.jetbrains.com/clion/download/download-thanks.html]. 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 [https://www.jetbrains.com/help/clion/quick-tutorial-on-configuring-clion-on-windows.html#MinGW] | ||
+ | |||
+ | <blockquote style="background: #DCF4CC; border: 1px solid black; padding: 1em;"> | ||
+ | |||
+ | ==Projeto em C com o CLion - Criação e Execução== | ||
+ | </blockquote> | ||
+ | |||
+ | 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. | ||
+ | |||
+ | [[imagem:PRG-TelaProjetoCLion.jpg|650px]] | ||
+ | |||
+ | Na sequÊncia esta tela deve ser mostrada: | ||
+ | |||
+ | |||
+ | [[imagem:PRG-TelaEdicaoCLion.jpg|650px]] | ||
+ | |||
+ | A execução do programa é realizada como mostrado abaixo: | ||
+ | |||
+ | [[imagem:PRG-TelaRun.jpg|650px]] | ||
+ | |||
+ | <blockquote style="background: lime; border: 1px solid black; padding: 1em;"> | ||
+ | Para mostrar linha no editor fazer: File->Settings->Editor->General->Appearance. ([https://stackoverflow.com/questions/31368195/how-do-i-show-line-numbers-in-clion-ide]) | ||
+ | </blockquote> | ||
+ | |||
+ | ==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: | ||
+ | |||
+ | <syntaxhighlight lang=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; | ||
+ | }</syntaxhighlight> | ||
+ | |||
+ | 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: | ||
+ | |||
+ | [[imagem:PRG-TelaDepuracao.jpg|650px]] | ||
+ | |||
+ | Observar que o conteúdo das variáveis podem ser inspecionados sobrepondo o mouse sobre a variável: | ||
+ | |||
+ | [[imagem:PRG-TelaWatchComMouse.jpg|650px]] | ||
+ | |||
+ | ==Uso de Funções da Biblioteca Matemática no CLION== | ||
+ | |||
+ | 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. | ||
+ | |||
+ | |||
+ | <blockquote style="background: #DCF4CC; border: 1px solid black; padding: 1em;"> | ||
+ | =Codespace do Github= | ||
+ | </blockquote> | ||
+ | |||
+ | |||
+ | O Codespace não é extamente uma IDE. Trata-se de uma espaço de trabalho criado na nuvem, associado a uma conta do github. Esta área pode ser | ||
+ | configurada para desenvolvimento, por exemplo, usando ferramentas da JetBrain ou o VS code com acesso por um browser da Internet. Detalhes sobre o Codespace podem ser vistos [https://docs.github.com/pt/codespaces aqui]. | ||
+ | |||
+ | A grande vantagem de uso do Codespace no contexto do curso de programação é ter zero instalação na sua máquina, podendo usar Windows, Linux ou outro sistema operacional. | ||
+ | |||
+ | ==Criação de conta GRATUITA no github== | ||
+ | |||
+ | Entre no site do github e crie uma conta GRATUITA. Se necessário olhe no youtube por vídeos recentes de como criar uma conta no github. | ||
+ | |||
+ | ==Criação de um Codespace baseado em um repositório já criado e configurado para as aulas de programação (do Prof.Roberto)== | ||
+ | |||
+ | #Logar na sua conta do github (você deve ter uma - faça o plano gratuito para aluno) | ||
+ | #Acessar este [https://github.com/rwnobrega/prg1 repositório] | ||
+ | #Clicar em CODE e selecionar o '+' para criar um codespace. Aguarde até que seja criado... | ||
+ | |||
+ | [[imagem:PRG-TelaCriacaoCodespace.png|650px]] | ||
+ | |||
+ | ==Onde encontrar o seu workspace e tempo de retenção== | ||
+ | |||
+ | Por default o tempo de retenção é 30 dias. Quando entrar na sua página do github, logo acima aparece o link para os seus Codespaces. É possível fazer commits de | ||
+ | arquivos de seu Codespace em repositórios do github, mas não abordaremos este assunto aqui. | ||
+ | |||
+ | =Exercícios= | ||
+ | |||
+ | Depurar os códigos abaixo: | ||
+ | |||
+ | <ol> | ||
+ | <li> | ||
+ | <syntaxhighlight lang=c> | ||
+ | #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; | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </li> | ||
+ | <li> | ||
+ | <syntaxhighlight lang=c> | ||
+ | #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; | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </li> | ||
+ | <li> | ||
+ | <syntaxhighlight lang=c> | ||
+ | #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; | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </li> | ||
+ | <li> | ||
+ | <syntaxhighlight lang=c> | ||
+ | #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; | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </li> | ||
+ | <li> | ||
+ | <syntaxhighlight lang=c> | ||
+ | #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; | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </li> | ||
+ | <li> | ||
+ | <syntaxhighlight lang=c> | ||
+ | #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; | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </li> | ||
+ | </ol> |
Edição atual tal como às 10h58min de 10 de março de 2023
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.
Na sequÊncia esta tela deve ser mostrada:
A execução do programa é realizada como mostrado abaixo:
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:
Observar que o conteúdo das variáveis podem ser inspecionados sobrepondo o mouse sobre a variável:
Uso de Funções da Biblioteca Matemática no CLION
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.
Codespace do Github
O Codespace não é extamente uma IDE. Trata-se de uma espaço de trabalho criado na nuvem, associado a uma conta do github. Esta área pode ser
configurada para desenvolvimento, por exemplo, usando ferramentas da JetBrain ou o VS code com acesso por um browser da Internet. Detalhes sobre o Codespace podem ser vistos aqui.
A grande vantagem de uso do Codespace no contexto do curso de programação é ter zero instalação na sua máquina, podendo usar Windows, Linux ou outro sistema operacional.
Criação de conta GRATUITA no github
Entre no site do github e crie uma conta GRATUITA. Se necessário olhe no youtube por vídeos recentes de como criar uma conta no github.
Criação de um Codespace baseado em um repositório já criado e configurado para as aulas de programação (do Prof.Roberto)
- Logar na sua conta do github (você deve ter uma - faça o plano gratuito para aluno)
- Acessar este repositório
- Clicar em CODE e selecionar o '+' para criar um codespace. Aguarde até que seja criado...
Onde encontrar o seu workspace e tempo de retenção
Por default o tempo de retenção é 30 dias. Quando entrar na sua página do github, logo acima aparece o link para os seus Codespaces. É possível fazer commits de arquivos de seu Codespace em repositórios do github, mas não abordaremos este assunto aqui.
Exercícios
Depurar os códigos abaixo:
-
#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; }
-
#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; }
-
#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; }
-
#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; }
-
#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; }
-
#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; }