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

JNabais

Membro
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
 
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
 
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:
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?
 
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
 
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:
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á?
 
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...
 
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á?

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.
 
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á?

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 :)
 
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).
 
Back
Topo