• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Barney_Stinson

[Duvida] Programação básica

13 mensagens neste tópico

Eu estou no primeiro ano da universidade e vou ter exame de computação e programação e estou a estudar para esse exame. Surgiu-me umas duvidas ao longo do estudo e como gostei do fórum decidi pedir ajuda.

Primeiro que tudo nós usamos o Code::blocks.

A primeira duvida é:  Construir uma aplicação que peça um número inteiro positivo, e pede sempre um numero ate que número introduzido seja de facto positivo.

eu tento fazer com o while mas não arranjo maneira de parar de pedir o numero.

segunda duvida:  Construa, em C++, uma aplicação que peça ao utilizador um número inteiro positivo inferior a 100, e que escreva no ecrã o número introduzido por extenso. Resolva:

  2. usando também instruções switch.

Este segundo só consigo fazer em if e não consigo em switch..

Desculpem ser perguntas tão básicas e chatas mas é que tenho uns péssimos professores:P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A primeira duvida é:  Construir uma aplicação que peça um número inteiro positivo, e pede sempre um numero ate que número introduzido seja de facto positivo.

eu tento fazer com o while mas não arranjo maneira de parar de pedir o numero.

É simples. O que tu queres é manter o programa num ciclo enquanto não inserires um número positivo. Logo fazes algo deste género:

int n=-1;
while (n<=0) {
   printf("Insira um numero positivo\n");
   scanf(" %d", &n);
}

O que o programa faz é repetir aquele ciclo enquanto n for maior ou igual a 0. Uma vez maior o ciclo acaba. Tens de iniciar o n a -1 (ou outro numero negativo) porque senao iniciares, ele por defeito pode ser já um numero positivo e depois salta o while.

Isto é para C...agora para C++ hás-de ter de fazer algo semelhante (com sintaxe diferente).

segunda duvida:  Construa, em C++, uma aplicação que peça ao utilizador um número inteiro positivo inferior a 100, e que escreva no ecrã o número introduzido por extenso. Resolva:

  2. usando também instruções switch.

Este segundo só consigo fazer em if e não consigo em switch..

Desculpem ser perguntas tão básicas e chatas mas é que tenho uns péssimos professores:P

No segundo caso tens de ler o numero introduzido e verificar se é de facto menor que 100:

int n=100;
while (n>=100 || n<=0) {
   printf("Insira um numero positivo menor que 100\n");
   scanf(" %d", &n);
}

Tens de iniciar o n a 100 (ou outro numero maior ou igual a 100 ou menor que 0) porque senao iniciares, ele por defeito pode ser já um numero positivo e depois salta o while.

Depois disto penso que tens mesmo que fazer 100 if's/cases.

Não estou a ver nenhuma maneira de ler o numero em extenso...pelo menos em C.

Da uma vista de olhos aqui:

http://www.cplusplus.com/doc/tutorial/control.html

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Muito obrigado Buttpt! O primeiro deu certo:

#include <iostream>
using namespace std;

int main()
{
    int a= -1;
    cout<<"Escreva um numero positivo: ";
    cin>> a;
    while(a<=0)
    {
        cout<<"Escreva um numero positivo: ";
        cin>> a;
    }

    cout<< "Escreveu o numero: "<<a<<"";

    return 0;
}

O segundo vou tentando mas acho que chego lá a esse.

Agora tenho outra duvida:

Construa, em C++, uma aplicação que leia números inteiros a partir de um ficheiro chamado inteiros.txt, verifique quais deles são múltiplos de 3, e os escreva num ficheiro chamado mult3.txt. Verifique o seu funcionamento.

Eu sei fazer os ficheiros e guardar, mas não sei verificar se o que está la dentro são múltiplos de 3, não o código para ler o ficheiro..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para verificar se são múltiplos de 3 basta verificar se o resto da divisão inteira (operador %) por 3 é 0.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

alguém me pode dizer como se faz este sff?

Construa, em C++, uma aplicação que leia números inteiros a partir de um ficheiro chamado inteiros.txt, verifique quais deles são múltiplos de 3, e os escreva num ficheiro chamado mult3.txt. Verifique o seu funcionamento.

Não arranjo maneira de o fazer..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

alguém me pode dizer como se faz este sff?

Construa, em C++, uma aplicação que leia números inteiros a partir de um ficheiro chamado inteiros.txt, verifique quais deles são múltiplos de 3, e os escreva num ficheiro chamado mult3.txt. Verifique o seu funcionamento.

Não arranjo maneira de o fazer..

ora ai tens compadre noob :) andamos os dois a começar nesta onda ++ hehe

http://agnor.gamedev-pt.net/gamedev/cpp/cpp008.html

aconcelho-te a estudar esse tutorial por completo, começar na lição 1, vais avançando aos poucos, está excelente mesmo.

abraço

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

alguém me pode dizer como se faz este sff?

Construa, em C++, uma aplicação que leia números inteiros a partir de um ficheiro chamado inteiros.txt, verifique quais deles são múltiplos de 3, e os escreva num ficheiro chamado mult3.txt. Verifique o seu funcionamento.

Não arranjo maneira de o fazer..

E que tal leres os posts anteriores?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E que tal leres os posts anteriores?

Eu li, mas esse não é o meu problema, vou mostrar o que já fiz:

#include <fstream> 
#include <iostream>
using namespace std;

int main()
{
    char aux[10];
    ofstream out("inteiros.txt");
    out << "1 2 3 4 5 6 7 8 9"<<endl;
    out.close();

    ifstream in("inteiros.txt");
    while( in >> aux )
        

    cout<<endl;
    cin.get();
    return 0;
}

Agora que faço para verificar quais dos numeros dentro do ficheiro são múltiplos de 3 e depois disso escrever noutro ficheiro? é que se fosse fora de um ficheiro seria: definir uma variavel, pedir um numero e confirmar se era múltiplo de 3, neste caso já não há variavel, como faço?

stevegaspar obrigado:D vai ajudar!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens variável ! No que fizeste, estás a ler o conteudo do ficheiro para "aux".

Já que sabes que o ficheiro tem números, podes fazer

int numero;
...
while (in >> numero ){
     // testa se numero é multiplo de 3
}

E se o número for multiplo de 3 podes escrever no outro ficheiro (já escreves em ficheiro inicialmente, é semelhante).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

#include <fstream>
#include <iostream>
using namespace std;

int main()
{
    char aux[10];
    int numero;
    ofstream out("inteiros.txt");
    out << "1 2 3 4 5 6 7 8 9"<<endl;
    out.close();

    ifstream in("inteiros.txt");
    while( in >> numero )
    {
        if (numero % 3 == 0)
            cout << "Os numeros multiplos de 3 sao: "<<numero<<"" <<endl;
    }

    ofstream out2("mult3.txt");
    out2 << numero;
    out2.close();


    ifstream in2("mult3.txt");
    while( in2 >> aux )
    {
        cout<< aux;
    }


    cout<<endl;
    cin.get();
    return 0;
}

Tenho algum erro, aparece apenas o 9 no mult3.txt, como faço para aparecer o 3,6,9?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tens de o por a escrever para o ficheiro dentro do while porque senao só escreve o ultimo valor que guardaste na variavel.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora