1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Alguem me ajuda a resolver uma ficha de avaliação de programação?? pf

Discussão em 'Programação' iniciada por JNabais, 16 de Janeiro de 2007. (Respostas: 14; Visualizações: 1562)

  1. Estou no primeiro ano da faculdade e estou com problemas com a cadeira de programação. Estou neste momento a tentar resolver uma ficha para avaliação mas tenho muitas dúvidas e não tenho quem me ajude.
    Se fosse possível ajguem me ajudar agradecia muito....

    O meu primeiro problema é este:
    O exercício dá um programa que declara uma matiz NxN

    int matriz [N] [N];
    int i, j;

    for (i = 0; i < N; i++)
    for (j= 0; j < N; j++)
    matriz [j] = rand ();


    e agora pede para acrescentar um trecho que transponha a matriz.

    Se calhar e fácil lol mas eu não estou mesmo a dar com isto.

    obrigado pela atenção
     
  2. Um trecho??? o que é que queres dizer especificamente com isso??? acabei por nao perceber o teu problema...

    Cmpts
     
  3. Onde acaba esse programa que dei é para acrescentar outra parte que dê para calcular a matriz tansposta. Se for necessário pode-se declarar mais variáveis
     
  4. jtcgomes

    jtcgomes Power Member

    isso basta criares uma matriz auxiliar...
    copias tudo da original para a matriz auxiliar, e depois fazes o [j] da matriz aux...
     
    Última edição: 16 de Janeiro de 2007
  5. Obrigada. Sou mesmo muito má nisto.

    Tenho outro problema ( que deve ser básico mas eu não sei ) como é que faço um programa que leia um texto do utilizador e depois indique quantas palavras tem esse texto?
     
  6. jtcgomes

    jtcgomes Power Member

    Faz um ciclo k corra a string...
    não sei k linguagem tás a usar..
    mas mete um contador, até encontrar um espaço...
     
  7. Pretender

    Pretender Power Member

    pedes o texto em string.
    Depois ves qual o código ascii para a tecla espaço.
    http://www.asciitable.com/
    Depois percorres a string com um for até final da string (\n) e contas os espaços que tem.
    Adicionas ao contador mais duas palavras (a inicial e a final que não contem espaço :P)
    O algoritmo é este :)

    EDIT: o jtcgomes antecipou-se :D
     
  8. RS

    RS Power Member

    Ou então usas uma classe que faça parse de strings por tokens, como a StringTokenizer ou a classe Scanner.
    A StringTokenizer por default faz parse por espaços olha um exemplo :

    Código:
    String speech = "Four score and seven years ago"; 
    StringTokenizer st = new StringTokenizer(speech); 
    while (st.hasMoreTokens()) { 
       println(st.nextToken()); 
    }
    e o resultado da execução :

    Código:
    Four 
    score 
    and 
    seven 
    years 
    ago
    A partir daqui deve ser fácil descobrir o que queres :) . Alguma dúvida pergunta



    Edit: Por estupidez minha admiti que isto era JAVA, lol sorry se não for é seguir os passos que os outros deram
     
    Última edição: 16 de Janeiro de 2007
  9. Estou a fazer em linguagem em C.

    Muito obrigada, a sério. Estou um bocado aflita com isto. Devem pensar k sou bem burra lol mas não apanhei as bases agora é dificil. O stor não ajudou muito. Tenho lido é um livro de programação.

    Eu tinha declarado um char texto[1000]
    Eu sei k o equivalente ao espaço é o NULL mas agora como é que ponho a correr o texto de espaço em espaço. Eu estava a fazer com um While. Não dá?
     
  10. jtcgomes

    jtcgomes Power Member

    Em java, fazia algo do género

    Código:
       public void InsertOrdered(Object elem){
            Comparable e= (Comparable)elem;
            int pos = elementCount;
            super.add(elem);
            while(pos>0 && e.compareTo(elementData[pos-1])<0) {
                elementData[pos] = elementData[pos-1];
                pos--;
            }
            elementData[pos]=elem;
            
            
        }
    tenho-te a dar os parabens...
    só de leres um livro programas... não é mau... inventa, mexe, brinca com o compilador.. só assim se aprende... eu uso mais os livros/aposttilas para tirar duvidas...
     
  11. FELiYCORA

    FELiYCORA 1st Folding then Sex

    Se declaraste esse vector, agora só tens que fazer um ciclo com um if dentro:

    Código:
    
    while(texto[i] != '\0')
    {
      if(texto[i] == '  ')
        num_palavras++;
      i++;
    }
    
    Isto se usaste o fgets para ler os dados ou outra função que guarde numa string. Caso seja apenas um vector (sem o '\0' no fim) fazes o ciclo enquanto o i for menor que 1000.

    O espaço não é mais que um espaço dentro de plicas ('). Não andes com codigo ASCII porque pode variar dependendo do sistema. É melhor e muito mais intuitivo meteres o caracter que quiseres entre plicas.
     
  12. |[Kaos]|

    |[Kaos]| Power Member

    só um pequeno reparo, em C , NULL não é equivalente ao espaço, se fores a procurar espaços numa string procuras por " " ( um espaço mesmo lol ). NULL é como o nome indica, para quando queres procurar por algo nulo, fim da string ou algo do género.

    Boa sorte com isso, já passei pelo mesmo, com a mesma linguagem e tudo lol :)
     
  13. VuDu

    VuDu Power Member

  14. FELiYCORA

    FELiYCORA 1st Folding then Sex

    Caso queiras chegar a esse nível de exigência basta colocar uma variável auxiliar que guarda o último caracter, se este for um espaço então não conta...
     
  15. Já agora, usa o isspace() incluído no ctype.h.
    Além dos espaços, também vê os tabs (\t), form feeds (\f), new lines (\n), returns (\r) e vertical tabs (\v).
     

Partilhar esta Página