jogo dos sete erros

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

jogo dos sete erros

Mensagempor 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
Aprendiz
 
Mensagens: 35
Registado: Quinta Dez 05, 2002 13:50
Localização: brasil

Mensagempor 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/
Avatar do Utilizador
Little_Horn
Membro de Prata
Membro de Prata
 
Mensagens: 167
Registado: Terça Set 24, 2002 12:31

Mensagempor 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 :lol:

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
Membro de Ouro
 
Mensagens: 950
Registado: Segunda Out 14, 2002 3:53

Mensagempor 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
Aprendiz
 
Mensagens: 35
Registado: Quinta Dez 05, 2002 13:50
Localização: brasil

Mensagempor Snake » Terça Jan 28, 2003 21:13

Conclusão o erro são as pelicas... :D
Snake
Membro de Ouro
Membro de Ouro
 
Mensagens: 950
Registado: Segunda Out 14, 2002 3:53

Mensagempor 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/
Avatar do Utilizador
Little_Horn
Membro de Prata
Membro de Prata
 
Mensagens: 167
Registado: Terça Set 24, 2002 12:31

Mensagempor 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
Membro de Ouro
 
Mensagens: 950
Registado: Segunda Out 14, 2002 3:53

Mensagempor 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.
Avatar do Utilizador
Little_Horn
Membro de Prata
Membro de Prata
 
Mensagens: 167
Registado: Terça Set 24, 2002 12:31

Mensagempor 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
Avatar do Utilizador
crisis
Novato
Novato
 
Mensagens: 8
Registado: Quarta Nov 13, 2002 23:05

Mensagempor 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
Membro de Ouro
 
Mensagens: 950
Registado: Segunda Out 14, 2002 3:53

Mensagempor 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/
Avatar do Utilizador
Little_Horn
Membro de Prata
Membro de Prata
 
Mensagens: 167
Registado: Terça Set 24, 2002 12:31


Voltar para Programação

Quem está ligado:

Utilizadores a ver este Fórum: Nenhum utilizador registado e 0 visitantes

cron