← Desenvolvimento

Dúvida programa em C

Lida 8628 vezes

Offline

Souza 
Elite
Mensagens 1816 Gostos 1
Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1

Utilizei durante muito tempo o eclipse, mas agora não troco o netbeans por nada.
Offline

diogoosorio 
Membro
Mensagens 134 Gostos 1
Feedback +1

Troféus totais: 22
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 4 Level 3 Level 2 Level 1 100 Posts 50 Posts

Isto para os puristas e para a malta que gosta de dar o "batimento" elitista ("Programar em notepad é que é!" e afins) custa um bocado de ouvir - mas se o vosso objetivo não passa por serem engenheiros informáticos, nem executarem tarefas muito específicas, eu não recomendaria C para começarem.

C é adequado para entender tudo o que se passa por detrás de uma linguagem de "mais alto nível" (as aspas estão ali - no pun intended), para programas onde a eficiência é crítica e\ou é necessário ter mais controlo sobre tudo o que se passa.

A verdade é que para a malta em que a produtividade é mais crítico do que controlar absolutamente tudo o que se passa under the hood, começar com Java ou C# parece-me uma abordagem muito mais lógica. Se depois houver carolice para perceber como é que o garbage collector trabalha com a memória, então vamos embora para C brincar com malloc's e afins.

Maior comunidade, mais documentação, um nível de abstração maior, mais bibliotecas e baseiam-se no paradigma de orientação por objetos. A não ser que vão para uma empresa com uma atividade muito específica, onde exista uma motivação grande para se programar em C, é mais provável que caiam numa linguagem mais dentro deste espectro. Dominem a plataforma .NET e J2EE e nos próximos anos não vão ter problemas em encontrar trabalho.

Para a malta que quer aprender mesmo C - GCC + Vim\vi. :)

Just my 2 cents.
Offline

kaydara 
Membro
Mensagens 616 Gostos 1
Feedback +1

Troféus totais: 21
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 4 Level 3 Level 2 Level 1 500 Posts 100 Posts

vim/vi ou emacs
Offline

dblue_one 
Membro
Mensagens 263 Gostos 0
Feedback +2

Troféus totais: 21
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 4 Level 3 Level 2 Level 1 100 Posts 50 Posts 10 Posts

Ser programador não é para quem quer  [-X ....muito boa gente tira todos os cursos de programação possíveis e imaginários e nunca se tornam bons programadores. Digamos que tem de se ter um raciocínio algorítmico....além de ter de se gostar da coisa, caso contrário nunca se vai ser, pelo menos, um  programador médio.

Aprender C para primeira linguagem não é definitivamente a melhor opção, tenta através de leitura/exercicios aprender as bases de uma linguagem mais High level como o VB. Depois a adaptação ao C torna-se mais intuitiva(apesar de haverem grandes diferenças entre ambas, mas o importante é perceber a logica da coisa).

E meu amigo, com o nosso melhor amigo google, só não aprende que não quer  :lol:
Offline

andre_mz 
Membro
Mensagens 688 Gostos 0
Feedback +3

Troféus totais: 25
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 500 Posts

Bom dia,

Estou aqui atrapalhado com um exercicio de programação de 1º ano.

Ainda nao sei quase nada de C se me pudessem ajudar, o exercicio é este:

Calcular a média sabendo que 50% da nota é para testes e 50% para o projecto. Dentro dos testes o Teste1 vale 60% e o Teste2 vale 40%

Como é que se faz..?

Obrigado.

Código: [Seleccione]
int main{

float nota_projecto;
float media_testes;
float teste1;
float teste 2;
float media_final;

sscanf("%f", &nota_projecto);
sscanf("%f", &teste1);
sscanf("%f", &teste2);

media_testes = 0,6*teste1+0,4*teste2;
media_final = 0,5*media_testes+0,5*nota_projecto;

printf ("A media final e %f", media_final);

return 0;
}

É um raciocínio simples. Este programa tem alguns erros. Por exemplo não verifiquei se no teclado era escrito um número. Devia ter posto um if para evitar erros e lixo. Não alocei memória nem fiz uma função como um user na página anterior fez.

Pessoalmente, não estudo programação pelos livros. É treinando. Se querem aprender algoritmos está tudo no youtube muito bem explicado. Programação é pensar um bocado. A única coisa que pode fazer confusão são os apontadores e falando por experiência própria, os argumentos! É sempre o que me causa mais dificuldade, passar variáveis para dentro de uma função. Agora listas, filas, pilhas, só não sabe quem não quer. Podem sempre testar onde se perde a informação.

Uma grande ferramenta que te pode ajudar é o Valgrind! Pesquisa sobre isso.. diz-te tudo sobre os erros de memória que o teu programa tem. Por exemplo se não fizeste um free ele alerta.

Se tiveres alguma dúvida avisa. ;)
Offline

anjo2 
Membro
Mensagens 3020 Gostos 0
Troféus totais: 31
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

Uma boa solução em C é sempre mais rápida que uma boa solução em Java,  mas também é mais difícil fazer uma solução em C e é bom ter-se bases de Assembly para fazer uma boa programação.

Apesar de um programador não precisar de fazer nada (ou praticamente nada) em Assembly, acho que é uma boa linguagem para começar se quiserem seguir a carreira de programação, é simplesmente a base e tem pouco mais de meia dúzia de comandos.
Exemplo, procurem o custo de fazer 2*2 e 2<<1, ou no caso anterior 0.5*media_testes e media_testes>>1
Offline

andre_mz 
Membro
Mensagens 688 Gostos 0
Feedback +3

Troféus totais: 25
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 500 Posts

Em Assembly é uma coisa +- assim isso.

MOV R1, 2
MOV R2, 2
MULT R1, R2

Não me lembro bem se a sintaxe da multiplicação era esta.

Uma cena assim. Já fiz um Pong em Assembly para a Uni. :P

Quase 2 mil linhas para fazer um jogo de caca, mas também são linhas com muito pouco conteúdo. Qualquer erro MÍNIMO estraga tudo. :lol: