Preciso da ajuda de vocês em um programa

Iniciado por Fox, 01 de Setembro , 2006, 09:23:57 AM

tópico anterior - próximo tópico

0 Membros e 1 Visitante estão vendo este tópico.

Fox

Bom dia pra vocês.

É o seguinte começamos a ter aula de C aqui na faculdade e hoje o professor passou uma avaliação valendo 10 pontos.
Eu detesto programação ...mas fazer o que ne! Tenho ate hoje pra entregar o exercicio completo.
Mandei uma previa do que estou fazendo pra ele e tenho que mandar ainda hoje o fonte final.

Gostaria de saber se vocês podem me ajudar nesse problema.
O enunciado do exercicio é o seguinte:
CitarFaça um programa em que o usuario vai digitando um texto qualquer, e o que for digitado vai sendo armazenado em dois arquivos.

Se vogal: no arquivo "x.txt"
Senão:    no arquivo "y.txt"

OBS: O arquivo termina quando o usuario teclar "ESC".

Essa foi a previa que eu enviei pra ele:
Citar#include
#include
#include
#include
#include


using namespace std;

int main()
{
    char texto; // declaração variável
    ofstream arq;
    char tecla;
   
    arq.open("x.txt",ios::out|ios::ate);
    arq.open("y.txt",ios::out|ios::ate);
   
 
    cout<<"\nAperte ESC para sair.\n";
    cout<<"Aperte alguma tecla para continuar.\n";
       
   
    {
       cout <<"\nDigite o texto: ";
       while(getch()!= 27)
                   
       switch (texto) {
         case 'A':
         case 'E':
         case 'I':
         case 'O':
         case 'U':
           ....;
           break;
         default:
           ....;

       }
         
       cout<       arq <    }
   
     arq.close();
     system("PAUSE");
     return EXIT_SUCCESS;
}

Tenho que terminar o programa seguindo essa logica minha.


Quem vai poder me ajudar ... ou melhor, fazer essa merda ai pra mim?
 :'(

Obrigado

Anonymous

Bom, não irei faze-lo por voce, mais voce pode fazer usando GetAsynckeyState(..)  8)

nibbles

#2
getasynkeystate porque? lol
 é só guardar tudo numa string e ir lendo letra por letra ... if (c==a||c==b ....
daew guarda em um... else guarda em outro...
desculpa mas isso não é dificil é só estudar um pouco e por voce ter dito que odeia isso e só faz por causa da facul pior ainda, vou ajudar menos ainda, mas a idéia é essa, agora se vira negão x)

só mais uma coisa...
seu programa está em C++
e voce diz que é trabalho de C
nao entendi isso lol



"A diversão do inteligente é se fingir de burro para aquele que se finge de inteligente."
"ENGENHARIA SOCIAL. Porque não existe patch para a ignorância humana."

Fox

Eu sei nibbles...eu postei C... mas por causa do edite não mudei.
E eu pedi a ajuda numa boa... eu fiz umas alterações aqui e da pra tirar uns pontos. Eu so queria que vocês me ajudassem...mas tudo bem! Muito obrigado... quando precisar de alguma coisa é so falar.

E eu realmente detesto programação! Acho muito interessante e importante e dou muito valor pra quem entende do assunto. Mas realmente eu não gosto...não me identifico.

Defcon, vlw pela dica ai... eu vou dar uma olhada!

Emilly Rose

#4
SIm só usar iif e acondição se for vogal armazena numa var se nao for armazena em outra.



Vc pode ta usando vetor também pra armazenar as letras e jogalas no arquivo
Witherless Rose

Fox

Emily... eu entendo a logica... so que não sei regra nenhuma da linguagem entende?
Essa deve ser minha segunda aula...eu estava viajando e perdi muitas aulas na faculdade...quase 1 mes.
E estou tentando recuperar o tempo perdido ....

Vlw pela atenção.

Fox

Um amigo me ajudou aqui.... tenho agora que passar pra C++ e compilar pra ver se esta certinho.


#include
#include
#include
#include
#include


void main()
{
char texto; // declaração variável
char tecla;

FILE *arq_vogal, *arq_consoante;

arq_vogal = fopen("c:\x.txt", "w");
arq_consoante = fopen("c:\y.txt", "w");

while ((tecla=getchar())!='\e') // 27 é o código da tecla ESC
{
if ((tecla >= 'A' && tecla <= 'U') || tecla >= 'a' && tecla <= 'u'))

fputchar(tecla, arq_vogal);
else fputchar(tecla, arq_consoante);
}

fclose(arq_vogal);
fclose(arq_consoante);

return;
}

Anonymous

Citação de: "nibbles"getasynkeystate porque? lol
 é só guardar tudo numa string e ir lendo letra por letra ... if (c==a||c==b ....
daew guarda em um... else guarda em outro...
desculpa mas isso não é dificil é só estudar um pouco e por voce ter dito que odeia isso e só faz por causa da facul pior ainda, vou ajudar menos ainda, mas a idéia é essa, agora se vira negão x)

só mais uma coisa...
seu programa está em C++
e voce diz que é trabalho de C
nao entendi isso lol

1º LoL is you
2º Não é em relação a verificar letra por letra LOL

OnlyOne

brow , sem quere te enche o saco , mas se vc detesta programaçao , e pede pros outros fazerem o seu exercico , ja parou pra pensar q vc ta no curso errado ?
No céu toca Joy Division


Anonymous

Muda isso: "if ((tecla >= 'A' && tecla <= 'U') || tecla >= 'a' && tecla <= 'u')) " pq na tabela ASCII as vogais nao sao seguencionais, usa o switch que voce ja tava usando no começo....

Fox

Citação de: "OnlyOne"brow , sem quere te enche o saco , mas se vc detesta programaçao , e pede pros outros fazerem o seu exercico , ja parou pra pensar q vc ta no curso errado ?

Não estou no curso errado não! Existe outras areas em Sistema de Informação...

Fox

Citação de: "Black.Lord"Muda isso: "if ((tecla >= 'A' && tecla <= 'U') || tecla >= 'a' && tecla <= 'u')) " pq na tabela ASCII as vogais nao sao seguencionais, usa o switch que voce ja tava usando no começo....

Um chegado meu que disse sobre a sequencia das vogais na tabela ASCII... fiquei com o pé atras...mas ele afirmou isso. Por via das duvidas vou trocar... vlw

nibbles

a sequencia é o abcdefghijkl....
Citação de: "Defcon"
Citação de: "nibbles"getasynkeystate porque? lol
 é só guardar tudo numa string e ir lendo letra por letra ... if (c==a||c==b ....
daew guarda em um... else guarda em outro...
desculpa mas isso não é dificil é só estudar um pouco e por voce ter dito que odeia isso e só faz por causa da facul pior ainda, vou ajudar menos ainda, mas a idéia é essa, agora se vira negão x)

só mais uma coisa...
seu programa está em C++
e voce diz que é trabalho de C
nao entendi isso lol

1º LoL is you
2º Não é em relação a verificar letra por letra LOL


sabe oque significa lol?
bom, a idéia não é brigar, mas me corrija se estiver errado... essa api nao é para pegar o estado da tecla... tipo pressionada ou nao? é que eu acho que é isso... se nao for desculpe o engano.



"A diversão do inteligente é se fingir de burro para aquele que se finge de inteligente."
"ENGENHARIA SOCIAL. Porque não existe patch para a ignorância humana."

Ðark$pawn

Galera, vamos manerar com seus comentários, se não quiserem ajudar o nosso amigo fox, não ajudem; pois o objetivo do tópico é esse!!!

Dá próxima não haverá choro ao tomarem um Ponto Negativo... ;)

Dark_Side

Hi,
Uma maneira de fazer o exercício seria:

Declarar uma variável do tipo char para armazenar a tecla digitada que é retornada  pela função getch, contida em conio.h. Em seguida, dentro de um loop, associar à variável o valor de retorno da função getch() e comparar com switch ou if se o caractere corresponde a uma letra vogal ou consoante, e para cada ocasião, armazenar o caractere no arquivo.
Um simples exemplo:
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
char ch;
while(1) //Loop infinito
{
ch = getch(); // Obtém a tecla digitada e amarzena-a na variável [b]ch[/b]
if(ch == 27) break; //Interrompe o loop caso a tecla pressionada seja ESC.
if(ch == 13) cout << endl; // Se a tecla ENTER for pressionada, imprime uma quebra de linha.
cout << ch; //Mostra na tela o caractere pressionado, uma vez em que getch() o omite.

   /* Aqui você poderá utilizar switch ou if para verificar
   se a tecla armazenada em "ch" é uma letra vogal ou não */
}   
   
return 0;
}

Lembrando que você pode utilizar o método arquivo.put(caractere) para adicionar um caractere em um arquivo.
É por aí :)
Carry on...
Bye.