Tecnologias - Freelancer

Bem, decidi começar por aqui: https://www.edx.org/course/cs50s-introduction-to-computer-science . Aprender / relembrar o básico sobre computadores, sobre programação, sobre o pensamento lógico. Quando terminar o curso vou estar um mais mais informado sobre o passo seguinte.

Só ainda fiz a lição 0. Por agora, bastante agradado. Sugiro que quem como eu está indeciso por onde e como começar, que inicie a aprendizagem por adquirir as bases e este curso é muito bom ( pelas reviews que vi, a Academia de Código exige que se o complete antes de iniciar os seus cursos, por ex).

Quando tiver dúvidas, venho cá colocar.
 
Exercício da lição zero submetido. Era fazer um pequeno jogo, animação, em scratch. Fiz algo básico mas que ajudou a começar a interiorizar alguns conceitos (um jogo onde aparece morangos, maças e melancias; há uma taça que anda de x a x, onde ao apanhar melancias soma ao score um ponto, ao apanhar morangos ou maças desconta um valor). Usei variáveis, estruturas de selecção de dados, funções lógicas muito básicas. Também é o que é suposto usar. Estava complicado arrancar, mas vi alguns exemplos e lá consegui. Entretanto também já fiz outro jogo, onde é um gato atrás de um rato, sempre que o rato é apanhado, questiona se pretende continuar a jogar.

Agora segue-se a lição 01. Week 1. É sobre a linguagem de programação C.
 
Boas

Praticamente tudo o que sei hoje, aprendi com recursos online, sendo autodidata e neste momento trabalho na área.
Já passei por essas dúvidas todas e não tinha uma linha por onde me seguir.

Por isso, se tiveres dúvidas mais especifícas ou precisares de alguma coisa é só mandar PM que eu tento ajudar.

ps: ainda não sou powermember, por isso só posso responder uma vez por dia :D

Cumpz
 
Boas

Praticamente tudo o que sei hoje, aprendi com recursos online, sendo autodidata e neste momento trabalho na área.
Já passei por essas dúvidas todas e não tinha uma linha por onde me seguir.

Por isso, se tiveres dúvidas mais especifícas ou precisares de alguma coisa é só mandar PM que eu tento ajudar.

ps: ainda não sou powermember, por isso só posso responder uma vez por dia :D

Cumpz

Com certeza, obrigado!

Já começo a ver que em linguagem C temos que detalhar tudo, passo a passo, para que depois o compilador possa executar. Nesta fase acredito que seja bom, quantos menos automatismos melhor, para aprender todo o processo.
 
Com certeza, obrigado!

Já começo a ver que em linguagem C temos que detalhar tudo, passo a passo, para que depois o compilador possa executar. Nesta fase acredito que seja bom, quantos menos automatismos melhor, para aprender todo o processo.

Sim, C é bom para começares a desenvolver a lógica e o raciocínio, mas depois aconselho te a tentares dares prioridade a linguagens com muita procura no mercado, o que te vai levar a arranjar um maior número de clientes ou trabalho na área (se for esse o caso).

Aconselho te a aprenderes Javascript porque vai fazer com que evoluas bastante a nível de programação e tem muito mercado. Tem frameworks muito completas que te vão permitir trabalhar tanto, em frontend, como backend.
 
Sim, C é bom para começares a desenvolver a lógica e o raciocínio, mas depois aconselho te a tentares dares prioridade a linguagens com muita procura no mercado, o que te vai levar a arranjar um maior número de clientes ou trabalho na área (se for esse o caso).

Aconselho te a aprenderes Javascript porque vai fazer com que evoluas bastante a nível de programação e tem muito mercado. Tem frameworks muito completas que te vão permitir trabalhar tanto, em frontend, como backend.

A estratégia passa por primeiro terminar com sucesso este curso (CS50), posteriormente devo dedicar-me a SQL + Javascript. No entretanto devo ir resolvendo alguns exercícios com o que vou aprendendo para que fique bem interiorizado.
 
Tenho aqui um pequeno problema que estou com dificuldades em executar.

Tenho este código:

int main(void)
{
int n;
do
{
n = get_int("Height: ");
}
while (n < 1 && n > 9);
for (int x = 0; x < n; x++)
{
for (int j = 0; j < n; j++)
{
printf(" ");
}

for (int i = 0; i < n; i++)
{
printf("#");
}
printf("\n");
}
}

Que coloca em #'s consoante o número adicionado. Por exemplo, se for um 5 fica assim:

#####
#####
#####
#####
#####

Mas o que eu pretendo é:

#
##
###
####
#####

É aqui a minha dúvida. Estou com dificuldades em ordenar o número de #'s desta forma.
 
Tenho aqui um pequeno problema que estou com dificuldades em executar.

Tenho este código:

int main(void)
{
int n;
do
{
n = get_int("Height: ");
}
while (n < 1 && n > 9);
for (int x = 0; x < n; x++)
{
for (int j = 0; j < n; j++)
{
printf(" ");
}

for (int i = 0; i < n; i++)
{
printf("#");
}
printf("\n");
}
}

Que coloca em #'s consoante o número adicionado. Por exemplo, se for um 5 fica assim:

#####
#####
#####
#####
#####

Mas o que eu pretendo é:

#
##
###
####
#####

É aqui a minha dúvida. Estou com dificuldades em ordenar o número de #'s desta forma.

Ao analisares o código vês que o último for é que imprime o caracter '#' e faz isso n vezes. O que tens que fazer é criar uma variável (ex: count) com o valor 1 e alterar o for para imprimir só count vezes. Depois quando terminares o for incrementas count 1 vez.

Se continuares com dúvidas diz. Bom estudo.
 
Tenho aqui um pequeno problema que estou com dificuldades em executar.

Tenho este código:

int main(void)
{
int n;
do
{
n = get_int("Height: ");
}
while (n < 1 && n > 9);
for (int x = 0; x < n; x++)
{
for (int j = 0; j < n; j++)
{
printf(" ");
}

for (int i = 0; i < n; i++)
{
printf("#");
}
printf("\n");
}
}

Que coloca em #'s consoante o número adicionado. Por exemplo, se for um 5 fica assim:

#####
#####
#####
#####
#####

Mas o que eu pretendo é:

#
##
###
####
#####

É aqui a minha dúvida. Estou com dificuldades em ordenar o número de #'s desta forma.

Por acaso ando a fazer o mesmo curso que tu e já fiz esse exercício, e tens aí outro erro na parte do while, não sei se queres que te diga ou queres chegar lá sozinho.
 
Ao analisares o código vês que o último for é que imprime o caracter '#' e faz isso n vezes. O que tens que fazer é criar uma variável (ex: count) com o valor 1 e alterar o for para imprimir só count vezes. Depois quando terminares o for incrementas count 1 vez.

Se continuares com dúvidas diz. Bom estudo.

Obrigado, vou tentar lá chegar e na dúvida volto cá.
 
Por acaso ando a fazer o mesmo curso que tu e já fiz esse exercício, e tens aí outro erro na parte do while, não sei se queres que te diga ou queres chegar lá sozinho.

Tenho testado e bate certo, talvez por ter as condições dentro do for invertidas. Mas assim que ponha a funcionar o count a funcionar, logo dou atenção ao while. Obrigado pela opinião.
 
Tenho testado e bate certo, talvez por ter as condições dentro do for invertidas. Mas assim que ponha a funcionar o count a funcionar, logo dou atenção ao while. Obrigado pela opinião.

Pode bater certo, mas não estás a fazer exactamente o que foi pedido. Eu já encalhei no próximo exercício, percebo o que tenho de fazer, mas não sei como tornar isso em código...que é o meu grande problema. Alguém sugere algum sitio para praticar C? O freecodecamp não tem.
 
Pode bater certo, mas não estás a fazer exactamente o que foi pedido. Eu já encalhei no próximo exercício, percebo o que tenho de fazer, mas não sei como tornar isso em código...que é o meu grande problema. Alguém sugere algum sitio para praticar C? O freecodecamp não tem.

É possível que esteja a fazer errado. Assim que estiver completo, revejo tudo. Aliás, vou no fim voltar a repetir tudo, para ter a certeza que percebi as funções do; for; while;.

Estás preso nos arrays? Podes sempre procurar sobre os exercícios propostos no Google, aparecem muitas ajudas (o reddit tem uma zona de dúvidas do cs50) e assim conseguires desencalhar.
 
É possível que esteja a fazer errado. Assim que estiver completo, revejo tudo. Aliás, vou no fim voltar a repetir tudo, para ter a certeza que percebi as funções do; for; while;.

Estás preso nos arrays? Podes sempre procurar sobre os exercícios propostos no Google, aparecem muitas ajudas (o reddit tem uma zona de dúvidas do cs50) e assim conseguires desencalhar.

Na verdade estou preso no problema do cash, sei a abordagem que devo tomar, apenas não sei como tornar isso em código, e penso que o normal é o inverso :p.
 
Não sei se é uma opinião geral, mas eu que estou a tirar licenciatura acho que para quem está a começar normalmente o problema é mesmo transformar em código a nossa ideia de resolução. Para quem já tem experiência e por consequência tem problemas mais complexos é que passa a ser difícil decidir a estratégia a usar
 
Na verdade estou preso no problema do cash, sei a abordagem que devo tomar, apenas não sei como tornar isso em código, e penso que o normal é o inverso :p.

Eu ainda pretendo fazer a segunda versão do Mario para então chegar ao Cash.

Tenta desenhar a tua abordagem com fluxogramas, pode ser que ajude a depois começar a escrever o código. Podes também dividir o código por parcelas. No Mario primeiro tratei dos #'s, quando estava a funcionar tratei de os afastar para alinhar à direita e agora estou na fase de contar os #'s por linha.

Isto o difícil é começar..
 
Não sei se é uma opinião geral, mas eu que estou a tirar licenciatura acho que para quem está a começar normalmente o problema é mesmo transformar em código a nossa ideia de resolução. Para quem já tem experiência e por consequência tem problemas mais complexos é que passa a ser difícil decidir a estratégia a usar

Muito provavelmente esse é o maior problema de quem agora começa, o raciocínio lógico ligado com a ciência computacional. Mas lá chegaremos, todos conseguem chegar, uns com mais agilidade mental e outros com menos. Importante, talvez, é ter um método.
 
Consegui!

#include <cs50.h>
#include <stdio.h>

int main(void)
{
int n;
do
{
n = get_int("Height: ");
}

while (n < 1 || n > 8);

for (int x = 0; x < n; x++)
{
for (int j = n - 1; j > x; j=j-1)
{
printf(" ");
}
for (int i = - 1; i < x; i++)
{
printf("#");
}
printf("\n");
}
}

Estava realmente a ler muito mal os for's e por isso estava a ter dificuldades. Depois de muita tentativa e erro, lá consegui perceber em que condições é que eles ocorrem. Como são logo três, fiz um pouco de confusão. Aliás, muita confusão. :winknu:
 
Código:
#include <cs50.h>
#include <stdio.h>
int main(void)
{
int n;
do
{
n = get_int("Height: ");
} while (n < 1 || n > 8);
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (i + j < n - 1)
printf(" ");
else
printf("#");
}
printf("\n");
}
}
Já eu fiz assim, mas também suei bastante.
 
Última edição:
Back
Topo