Ir ao conteúdo

Dev-c++ 4.9.9.2 (CONIO.C) problema.


leonardoadoado

Posts recomendados

Postado

Boa tarde, estou estudando a linguagem c++ por meio da plataforma dev-c++ 4.9.9.2.

Estou tentando mudar as cores das letras e tudo mais, contudo, a programa sempre acusa problema com o (CONIO.C).

Como resolvo isso. abaixo está a rotina.

#include<stdio.h>
#include<conio.h>
#include<conio2.h>
#include<conio.c>


main()
{
float V,S,T;


textcolor(RED);
cprintf("Informe a dinstância entre dois pontos em Km/h: ");
scanf("%f", &S);

printf("\nInforme o tempo gasto em horas: ");
scanf("%f", &T);

V=S/T;

if (V>=110)

printf("\nMulta por excesso de velocidade. Acima de 110Km/h é proibido! \n\n Você estava a %7.2f km/h", V);


else
printf("\nMuito bem, você está dentro do limite velocidade! você estava a %7.2f km/h", V);

getch();

}

Postado

Mas o problema é que quando ponho #include "conio.c" acontece a mesma coisa, ou seja, nada acontece. E o #include <conio.h> não reconhece a termo textcolor ou outro tipo de comando que muda a cor.

O que posse fazer para fazer o Dev-c++ mudar a cor do fundo das letras etc, pois o comandos habituais dão erro. Como esse abaixo.

[Linker error] undefined reference to `textcolor'

E o conio.c dá erro. Com faço para corrigir esses erros.

obrigado e aguardo.

Postado

Se ele diz que a função não existe, é porque não existe...

Provavelmente é alguma função que existia antes e foi retirada da biblioteca...

Abre a pasta do dev e procura a conio.h e vê se realmente existe a função textcolor...

Postado

Está certo. Andei lendo e descobri que o Dev-c++ parece que não muda cores de fundo e letras da maneira como o turbo e outras plataformas.

Contudo, gostaria de solucionar outro problema. Tem alguma função de alguma biblioteca que decompõe um numero informado em numeros inteiros e soma.

Pois estou tentanto escrever um programa onde se informa um número inteiro positivo, exibe os números inteiros na tela, faz a soma entre eles e tira a média aritmética entre os números. Consigo fazer a primeira parte que é decompor o número informado em inteiros. Como faço pra somar esses inteiros e tirar a media.

Ex. O programa pede um número. Ai a pessoa digite 3. Então o programa mostra 3 2 1 , até ai eu consegui escrever o programa. Mas como faço pra fazer o programa somar (3 + 2 + 1)/3 e dar o resultado???

veja a rotina.

#include<stdio.h>
#include<conio.h>


int N,X,M;
main()
{
do
{
printf("\nInforme qualquer número positivo: ");scanf("%d",&N);

if(N<=0)
{
printf("\nO valor informado é menor que 1. Repita\n.");
}
}
while(N<=0);

printf("\nListagem dos números de 1 até %d.\n\n",N);

for(X=1;X<=N;X++)
{
printf(" %d",X);

}


getch();
}

Edit: Olá, pessoal. Não precisa mais tirar minha dúvida, pois já descobrir como fazer o que estava querendo. Contudo se alguém tiver outra maneira de fazer o que essa rotinha faz na parte em negrito, eu aceito a sugestão. Veja a rotina abaixo.

#include<stdio.h>
#include<conio.h>


float N,X,M,CONTADOR=1,NUMERO=1;
char RESP='s';

main()
{

while(RESP=='s')
{
do
{
printf("\nInforme qualquer número positivo: ");scanf("%f",&N);

if(N<=0)
{
printf("\nO valor informado é menor que 1. Repita\n.");
}
}
while(N<=0);

printf("\nListagem dos números de 1 até %1.0f\n\n",N);

for(X=1;X<=N;X++)
{
printf("%4.0f",X);

[B] NUMERO=NUMERO+CONTADOR;
CONTADOR=CONTADOR+1;
}

NUMERO=NUMERO-1;
M=NUMERO/N;[/B]

printf("\n\nA soma entre esses números é: %3.0f",NUMERO);
printf("\n\nA média aritmética entre esses números é: %3.2f",M);

printf("\n\nDeseja repetir a operação? (s) ou (n)\n\n");
RESP=getch();
N=0;X=0;M=0,CONTADOR=1;NUMERO=1;
}
}

A parte em negrito era o que estava faltado e consegui formular. Abraços.

Postado

Ok, muito obrigado. Eu agora entendi como funciona a lógica de programação para essa operação e para operações do tipo.

Abraço.

Ok. Dei uma olhado no link que você me recomendou. Me esclareceu algumas coisas, contudo, o tópico foi solucionado pelo advento da biblioteca conio.c, e esse bibioteca não é reconhecida pelo dev-c 4.9.9.2. Contudo, percebi que posso mudar as cores através do conio.h. Falta descobrir com mudar apenas o fundo ou apenas uma linha com essa biblioteca, pois o comando dado como exemplo no link ensina mudar a cor de tudo, tando do fundo como de todas as linhas o comando que faz isso é system ("color X"). Isso eu aprendi. Quero saber como ou se é possivel usar esse comando ou essa biblioteca tambem para mudar a cor de apenas uma linha ou somente do fundo etc.

Postado

Tente executar o algoritmo abaixo usando o "conio.h" se não funcionar use o "conio.c", do link que te indiquei do seguinte modo.

Crie uma pasta e dentro salve 3 arquivos :

O algoritmo abaixo (ex: teste.c) .

O algoritmo do link (conio.h).

O algoritmo do link (conio.c).

Depois é só executar seu algoritmo.

#include <stdio.h>
#include "conio.c"

int main(){
int i=0;
while(i<9){
textcolor(i);printf("Teste 1\n");
i++;
}
textcolor(12);printf("\nTeste 2 - RED\n");
textcolor(2);printf("\nTeste 3 - GREEN\n");
return 0;
}

Postado

Eu já possuo o conio.c e o conio.h na pasta include do dev, só que quando eu compilo, o deve não reconhece o conio.c. Quando eu deixo só o conio.h, os comandos tipo textcolor e tudo mais não é reconhecido.

Camo já disse, consigo mudar as cores com conio.h pelo comando system("color X") (x é cor). Mas só que muda todas as letras e o fundo tambem. Deve ter alguma forma mudar de forma mais seletiva com o comando sytem("color" X). Pois com o conio.c já tentei tudo, tenho ele na pasta include e mesmo assim o dev-c não reconhece.

agaurdo.

Postado

Na mesma pasta qual?

De que pasta você está falando?

Bom dia a todos. Tenho um problema aqui. Fiz uma rotina para elevar uma matriz ao quadrado, e no último número da matriz o mesmo não é elevado ao quadrado e aparece outro valor qualquer lá. abaixo está a rotina. Será que elevei ao quadrado de forma errada? Aguardo e obrigado.

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

int MA[3],MB[3],C;

main()

{

printf("\nInsira elementos na matriz A para ser elevado ao quadrado na matriz B.\n\n");

for(C=1;C<=3;C++)

{

printf("MA[%d] ",C);scanf("%d",&MA[C]);

}

printf("\nAbaixo esta a matriz B com a raiz quadrada da matriz A\n");

for(C=1;C<=3;C++)

{

MB[C]=(MA[C]*MA[C]);

printf("\nMB[%d] = %d ",C,MB[C]);

_sleep(1000);

}

getch();

}

Postado

Ainda não entendi que pasta você se refere. Por favor, seja mais claro.

Você está dizendo para salvar o conio.c na pasta onde estou salvando os executáveis de minhas rotinas?

Ou é na pasta onde o dev-c++ está instalado?

______________________________________________________

Você poderia ver o erro da rotina logo acima?

A fórmula de elevar ao quadrado está errada?

Aguardo e obrigado.

Postado

Cara... suponha que você faça esse programa:

#include <stdio.h>

int main()
{
printf("Alo mundo!\n");
getchar();
return 0;
}

E você o salvou com nome de "alo.c" nessa pasta:

C:/MeusProgramas/

De tal forma que seu diretório está assim:

C:/MeusProgramas/
alo.c
alo.exe (considerando que você já compilou)

Coloque então o conio.c NA MESMA PASTA DO SEU .C, de tal forma que seu diretório fique assim:

C:/MeusProgramas/
alo.c
alo.exe (considerando que você já compilou)
conio.c

...

-

Postado

Eu fiz isso. coloquei o conio.c na pasta onde está salvo os arquivos *.c

Chamei esse função por meio do #include"conio.c" e #include<conio.c> e mesmo assim a plataforma não reconhece o conio.c.

Vou estudar melhor a função system("color" x) do conio.h para ver se consigo o que quero, pois essa função muda a cor de tudo. Vou tentar descobrir como fazer pra mudar a função de uma linha ou somente do fundo etc por meio do conio.h.

Postado
Eu fiz isso. coloquei o conio.c na pasta onde está salvo os arquivos *.c

Chamei esse função por meio do #include"conio.c" e #include<conio.c> e mesmo assim a plataforma não reconhece o conio.c.

Vou estudar melhor a função system("color" x) do conio.h para ver se consigo o que quero, pois essa função muda a cor de tudo. Vou tentar descobrir como fazer pra mudar a função de uma linha ou somente do fundo etc por meio do conio.h.

Certeza que seu conio.c tem a função que você quer?

E a função system(); é de stdlib.h e não de conio...

-

Postado

Eu acho que o problem é a plataforma que uso (DEV-c++ 4.9.9.2)

Acho que na versão antiga tudo funciona bem.

Mas obrigado pela dicas. Vou continuar estudando o C++ e vou deixar pra resvolver a questão de mudar as cores depois, já que isso não é importante para mim agora.

Você viu a rotina que envei anteriormente. Poderia dar uma olhada?

O relato do problema também está lá junto com rotina.

Postado

Cara... qualquer vetor, seja em C, C++ ou Java, começa em 0.

Se você tem um vetor de três posições ele vai de 0 a 2 [0][1][2]

E você estava acessando [1][2][3].

3 não faz parte do vetor, ou é espaço de memória não alocado, ou é de outra variável...

Corrigido:


#include<stdlib.h>

int main()
{
int MA[3],MB[3],C;
printf("\nInsira elementos na matriz A para ser elevado ao quadrado na matriz B.\n\n");
for(C=0;C<3;C++)
{
printf("MA[%d] ",C+1);
scanf("%d",&MA[C]);
}

printf("\nAbaixo esta a matriz B com o quadrado da matriz A\n");

for(C=0;C<3;C++)
{
MB[C]=(MA[C]*MA[C]);
printf("\nMB[%d] = %d ",C+1,MB[C]);
}

getchar();
getchar();
return 0;
}
#include<stdio.h>

-

Postado

Ok. Entendi. Obrigado. O problema foi que na apostila que eu estou lendo não explicou isso e eu estava pensando que uma matriz [3] continha o 0,1,2,3 variáveis. Mas não é nada disso. ela contem 0,1,2 assim como voce me explicou.

valeu. Abraços.

Postado

Bom dia a todos. Tenho um problema aqui. Fiz uma rotina para elevar uma matriz ao quadrado, e no último número da matriz o mesmo não é elevado ao quadrado e aparece outro valor qualquer lá. abaixo está a rotina. Será que elevei ao quadrado de forma errada? Aguardo e obrigado.


\\CORRIGIDO
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>



int MA[3],MB[3],C;

main()
{
printf("\nInsira elementos na matriz A para ser elevado ao quadrado na matriz B.\n\n");
for(C=0;C<3;C++)
{

printf("MA[%d] ",C+1);scanf("%d",&MA[C]);

}


printf("\nAbaixo esta a matriz B com a raiz quadrada da matriz A\n");

for(C=0;C<3;C++)
{

MB[C]=(MA[C]*MA[C]);

printf("\nMB[%d] = %d ",C+1,MB[C]);

_sleep(1000);
}



getch();
}

Seu código esta quase certo, exceto que quando você declara MA[3] está dizendo que seu vetor MA tem 3 posições, o que você se equivocou é que a 1ª posição começa com "0",

Ou seja seu vetor ficaria assim:

MA[0] = 1ª posição

MA[1] = 2ª posição

MA[2] = 3ª posição

E seu for() começa com 1 e termina com 3, o MA[3] não existe, aconteceria um overflow, estouro de pilha. Apareceria qualquer valor, como se fosse lixo de memória.

(Para se ter uma matriz deveria declarar: int MA[3][3])

valeu.

4ºSEM SI - Anhanguera

A diferença entre vitória e fracasso não depende de nossas habilidades pessoais, mas sim em Quem depositamos nossa confiança. ”Que os homens se apoderem da Minha força e façam paz Comigo; sim, que façam paz Comigo”. (Is.27:5)

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!