Fazendo backup dos arquivos da IDE CS50 e Restaurando no codespace
Operadores, limitações, truncamento
mkdir
- Criar pastaExemplo: mkdir pasta
code
- Criar arquivoExemplo: code arquivo
cd
- Mudar de pastaExemplo: cd pasta
cd
O caractere (.
) é um atalho que representa o diretório atual.
Exemplo: cd .
O caractere (..
) é um atalho que representa o diretório acima do diretório atual.
Exemplo: cd ..
O caractere (../../
) é um atalho que representa dois níveis acima do diretório atual.
Exemplo: cd ../../
ls
- Lista arquivos ou pastas que estão dentro do diretórioAperte as teclas Ctrl
+L
./
- Executar o arquivo compiladoExemplo: ./hello
rm
- Remove um arquivo, pedindo confirmaçãoExemplo: rm hello.txt
*Mensagem de confirmação: Você realmente deseja remover o arquivo ‘hello.txt’?
sua resposta deve ser: y
ou yes
rm -f
- Remove um arquivo, SEM confirmaçãoExemplo: rm -f hello.txt
rm -r
- Remove um diretório inteiro, pedindo confirmaçãoExemplo: rm -r pset2
*Mensagem de confirmação: Você realmente deseja remover o diretório ‘pset2’? y
rm -rf
- Remove um diretório inteiro, SEM confirmaçãoExemplo: rm -rf pset2
mv
- Mover e Renomear um arquivo de um local para outro, da origem para o destino:Exemplo: mv greedy.c greddy.c
cp
- Copiar e Renomear um arquivoExemplo: cp hello.txt hi.txt
cp <nome do arquivo de origem> <nome do arquivo destino>
cp -r
- Copiar um diretório com seu conteúdoExemplo: cp -r pset0 pset3
cp <nome do diretório de origem> <nome do diretório destino>
pwd
- Mostra o caminho do diretório de trabalho atualchmod
rmdir
sudo
ln
man
clear
touch
diff
telnet
A versão mais recentede do Curso de Ciência da Computação de Harvard(2022) mudou o ambiente de desenvolvimento, também conhecido como IDE CS50 para o VS CODE CS50 (codespace). Se você tem familiaridade com o VS CODE ou gostaria de migrar para o novo IDE do CS50, siga as instruções desse vídeo, nele iremos apresentar o VS CODE CS50 e como ativá-lo, também testamos aquele exercício do "hello world" e "hello [nome]".
Dica de ouro: após os passos acima, dê uma olhadinha na sua caixa de entrada e verifique se há algum e-mail do bot do CS50 pedindo alguma autorização!!!
🙋 🙋♂️ Eu tenho uma dúvida: se migrarmos do CS50 IDE para o VS CODE CS50 iremos perder todos os arquivos criados? A resposta é não, você não irá perder seus arquivos. Entretanto, para não perder seus arquivos é necessário fazer os passos abaixo:
check50
- Irá verificar a exatidão do nosso código com alguns testes automatizados.
Obs: Tem que executar o comando dentro da pasta onde está o arquivo.
Exemplo: check50 cs50/problems/2022/x/mario/more
Com o cli50
você pode montar um diretório dentro de um container executando cs50/cli, uma imagem do Docker baseada no Ubuntu 20.04, uma distribuição popular do Linux.
compare50
é uma ferramenta para detectar similaridade no código que suporta bem mais de 300 linguagens de programação e modelagem. A ferramenta em si é de código aberto e, por design, extensível em seus métodos de comparação. Não há necessidade de fazer upload de código para um host externo, compare50 é executado localmente a partir da linha de comando. Como uma ferramenta local, compare50 apresenta suas descobertas em arquivos HTML estáticos e interativos que permitem o compartilhamento fácil. E faz isso incrivelmente rápido, comparando facilmente milhares de arquivos de origem em segundos.
Depuração
debug50
- Debug significa executar o código passo a passo em uma ferramenta de depuração, para localizar o ponto exato em que você cometeu um erro de programação.
Exemplo de execução do debug50:
debug50 ./buggy
Can't debug this program! Are you sure you're running debug50 on an executable, a Python script, or a Java program? Unsupported File: nomedoarquivo
Ajuda
help50
- É um comando que podemos executar para explicar problemas em nosso código de uma forma mais amigável.
Podemos executá-lo adicionando help50 à frente de um comando que estamos tentando.
Exemplo: help50 make hello
quando está correto:
quando tem erro:
render50
Gerar PDFs de código-fonte realçados pela sintaxe.
Sugestões de correções
style50
- Para ver sugestões de novas linhas e recuo.
Exemplo: style50 hello.c
É baseado em git, um “sistema de controle de versão distribuído” que permite salvar diferentes versões de arquivos sem ter que dar a cada versão um nome de arquivo exclusivo (como você costuma fazer em seu próprio Mac ou PC!). Por meio submit50e, por sua vez, gitvocê pode enviar o trabalho várias vezes (ou seja, várias versões do mesmo).
Quando você executa submit50, seus arquivos são “enviados” (ou seja, carregados) para a “organização” do CS50 (também chamada de “submit50”) no GitHub
Para enviar seu código: submit50 cs50/problems/2022/x/credit
depois digite: yes
#include <stdio.h>
int main(void)
{
printf("olá, mundo");
}
Existem muitos tipos de dados que podemos usar para nossas variáveis, que indicam ao computador que tipo de dados eles representam:
bool
uma expressão booleana verdadeira ou falsa
char
um único caractere ASCII como a ou 2
double
um valor de vírgula flutuante com mais dígitos do que um float
float
um valor de vírgula flutuante ou número real com um valor decimal
int
inteiros até um certo tamanho ou número de bits
long
inteiros com mais bits, para que possam contar mais do que um int
string
uma linha de caracteres
Existem vários operadores matemáticos que podemos usar também:
+
para adição
-
para subtração
*
para multiplicação
/
para divisão
%
para calcular o resto
\
backslash (barra invertida)
`
backtick (crase)
*
asterisk (asterisco)
_
underscore
{}
curly braces (chaves)
[]
square brackets (colchetes)
()
parentheses (parênteses)
#
hash mark (sustenido / hash / jogo da velha)
+
plus sign (sinal de “mais” ou somar)
-
minus sign (hyphen) (sinal de menos ou hífen)
.
dot (ponto)
!
exclamation mark (ponto de exclamação)
Para importar Bibliotecas:
#include <...> Inclui cabeçalho de biblioteca
#include <cs50.h> Funções do CS50;
#include <stdio.h> Funções de entrada/saída
#include <math.h> Funções matemáticas
E a biblioteca CS50 tem funções correspondentes para obter entrada de vários tipos:
get_char
- solicita ao usuário um char
get_double
- solicita ao usuário um double
get_float
- solicita ao usuário um float
get_int
- solicita ao usuário um int
get_long
- solicita ao usuário um long
get_string
- solicita ao usuário um string
Exemplo:
string nome = get_string("Qual é seu nome? \n");
fclose
- fecha um arquivo
fopen
- abre um arquivo
fprintf
- imprimir em um arquivo
fread
- lê bytes de um arquivo
fscanf
- obtém entrada de um arquivo
fwrite
- escreve bytes em um arquivo
printf
- imprimir na tela
scanf
- obtém entrada de um usuário
sprintf
- imprimir em uma string
printf
Para printf, também, existem diferentes marcadores de posição para cada tipo:
%c
para caracteres
%f
para flutuadores, duplos
%i
para ints
%li
para longos
%s
para strings
Exemplo:
printf("olá,%s \n" ,nome);
Outras bibliotecas no manual do CS50
Compilar o arquivo que criamos
Exemplo: make hello
make
é um programa que chama o compilador “clang”. Converte o código-fonte em código de máquina.
Para usar direto o compilador clang
:
Exemplo: clang hello.c
Terá como arquivo de saída com nome padrão: a.out
obs: Esse comando não funciona se tiver a biblioteca do CS50.
Para ter como saída um arquivo com nome específico, usamos o comando: clang -o
Exemplo: clang -o hello hello.c
Arquivo de saída: hello
-o
“saída”. Renomeia o arquivo final, ou seja, argumento de linha de comando, que permite especificar, explicitamente, como você deseja que seu programa de saída seja chamado.
Código-fonte: hello.c
Código de Máquina: hello
Se quisermos usar a biblioteca do CS50, via #include <cs50.h>
, para a função get_string
ou outra função dessa biblioteca, também temos que adicionar um sinalizador: clang -o hello hello.c -lcs50
O sinalizador -l
vincula o arquivo cs50
, que já está instalado no CS50 IDE, e inclui o código de máquina para get_string
(entre outras funções) que nosso programa pode consultar e usar também.
Com o make
, esses argumentos são gerados para nós, uma vez que a equipe também configurou o make
no IDE CS50.