PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.
Moderadores: Administradores, Moderadores
por Marcelo » Segunda Jan 27, 2003 13:43
Descubra o erro na programação abaixo feita em C.
#include<stdio.h>
int main()
{
int count;
for(count=´100´;count>=´1´;count=count-1)printf("%d",count);
return(0);
}
Para compilar em linux use:
$gcc -o teste teste.c
Para tornar executável use:
#cp teste /bin
E Execute com:
$teste
Marcelo Machado
Dep. de Hardware
-
Marcelo
- Aprendiz

-
- Mensagens: 35
- Registado: Quinta Dez 05, 2002 13:50
- Localização: brasil
-
por Little_Horn » Terça Jan 28, 2003 14:38
Eu n percebo nada de C (nunca fiz nada em C), mas se declaras a variável como sendo um número inteiro, será k na linha do "for" necessitas de colocar as plicas (')???
A seguir aos argumentos do "for", n devias de dar um espaço???
acho k o "for" ficava mais legivel se o colocasses assim:
for (count=´100´;count>=´1´;count=count-1) {
printf("%d",count);
}
Pelo menos para quem n percebe nada de programação, era capaz de se tornar mais fácil de compreender...
Não sei se o erro se encontra em algumas das cenas que te referi, porque como te disse nunca programei uma linha em C.
\m/ Come Play Dying \m/
-

Little_Horn
- Membro de Prata

-
- Mensagens: 167
- Registado: Terça Set 24, 2002 12:31
por Snake » Terça Jan 28, 2003 18:47
Que compilador estás a usar? se tas a usar o da Microsoft qualquer coisa estupida pode ser um erro
Bem se colocas as plicas nos nºs estás a dizer que eles são caracteres, logo o programa vai procurar na tabela ascii a sua correspondência é mesmo isso que queres?!
Coloca o erro que te dá quando tentas correr isso...e em que linha é, assim deverá ser mais fácil...

-
Snake
- Membro de Ouro

-
- Mensagens: 950
- Registado: Segunda Out 14, 2002 3:53
por Marcelo » Terça Jan 28, 2003 20:09
Isto é apenas um exercicio para testar a atenção!!!
O código compila e funciona de qualquer jeito, mas devido a
um ERRO passa a executar coisas completamente diferentes.
Como o programa está se for compilado e executado irá iniciar uma string infinita de inteiros na tela do micro e quando chegar na ultima linha e na ultima coluna iniciara o scrool de tela. O programa só ira parar quando for interrompido.
Já quando se retiram as plicas (´) o programa imprime uma sequencia finita de 100 até 1 em ordem decrescente.
ah! eu uso o gcc como compilador e no meu micro caseiro não entra microsoft, só uso no trabalho!!!!
Marcelo Machado
Dep. de Hardware
-
Marcelo
- Aprendiz

-
- Mensagens: 35
- Registado: Quinta Dez 05, 2002 13:50
- Localização: brasil
-
por Snake » Terça Jan 28, 2003 21:13
Conclusão o erro são as pelicas...

-
Snake
- Membro de Ouro

-
- Mensagens: 950
- Registado: Segunda Out 14, 2002 3:53
por Little_Horn » Quarta Jan 29, 2003 14:04
Lol. Bem me keria parecer...
É k se defines a variável como um inteiro, ao colocares as plicas vais estar a atribuir texto a uma variável que supostamente é numérica.
Apesar de nunca ter programado C, ainda lá consegui chegar!

\m/ Come Play Dying \m/
-

Little_Horn
- Membro de Prata

-
- Mensagens: 167
- Registado: Terça Set 24, 2002 12:31
por Snake » Quarta Jan 29, 2003 23:19
Little_Horn: tu podes fazer isso a unica diferença é que ele como tem as plicas vai buscar o caracter correspondente aquele numero na tabela ascii...
Aquilo não é um erro de sintaxe, apenas um "erro" que alteraria o output do programa completamente diferente!

-
Snake
- Membro de Ouro

-
- Mensagens: 950
- Registado: Segunda Out 14, 2002 3:53
por Little_Horn » Sexta Jan 31, 2003 15:10
Eu percebi...
Por isso mesmo! O número k está entre as plicas é referente à tabela de ASCII (tabela caracteres - números, letras, simbolos...).
Eu disse que nunca tinha programado em C, não disse que nunca tinha programado nem que sou burro...
Para justificar o que disse no meu post anterior, por exemplo, em ActionScript, se introduzires um número entre aspas ou plicas, esse número é convertido em texto. Se fizeres algum tipo de cálculo entre este "texto" e outro número, o "texto" é automáticamente convertido em número.
Já em C eu sei k não é assim. Tens sempre de especificar que tipo de variável é k keres usar.
Por isso é k eu te disse k os número k estão entre as plicas é como se fossem texto.
Talvez n tenha sido é a melhor forma de me explicar.
-

Little_Horn
- Membro de Prata

-
- Mensagens: 167
- Registado: Terça Set 24, 2002 12:31
por crisis » Sexta Jan 31, 2003 16:15
Na faculdade uma das regras que sempre seguimos era a de num ciclo for deste genero inicilizava-se a variavel a 0 e ia-se incrementando, nunca decrementar, por uma questão de clareza e unificação de código, para não termos 20 programadores a programar de maneira diferente, assim ficava tudo muito simples e limpo
Cumprimentos
-= Playground =-
P4 2.0 * ASUS P4S533 * 512 DDR * Chaintech Geforce4 MX440
Powered by Microsoft Windows XP
-= WorkStation =-
Athlon XP 1700+ * EPOX 8KHA+ * 256 DDR * ATI RAGE IIC
Powered by Microsoft Windows 2000 + Red Hat Linux 8.0
-

crisis
- Novato

-
- Mensagens: 8
- Registado: Quarta Nov 13, 2002 23:05
por Snake » Sexta Jan 31, 2003 18:18
crisis: isso também depende do que pretendes fazer, por xs temos de decrementar... mas em C podes trocar o "count=count-1" por "count--" : faz o mesmo efeito mas talvez seja mais explicito para alguns programadores!

-
Snake
- Membro de Ouro

-
- Mensagens: 950
- Registado: Segunda Out 14, 2002 3:53
por Little_Horn » Domingo Fev 02, 2003 14:48
lol. Vai td dar ao mesmo.
Eu pessoalmente prefiro o estilo var++ ou var-- por uma questão de poupar na digitação de caractéres...
\m/ Come Play Dying \m/
-

Little_Horn
- Membro de Prata

-
- Mensagens: 167
- Registado: Terça Set 24, 2002 12:31
Voltar para Programação
Quem está ligado:
Utilizador a ver este Fórum: Nenhum utilizador registado e 1 visitante