...collaborate on

Search: \.*

Education/PP2 Web Changed Changed by
AvaliacaoPP2 12 Feb 2007 - 19:53 - r4 JoseBacelarAlmeida

Avaliação

A avaliação tem duas componentes, uma teória e uma prática. A componente teórica corresponderá à melhor nota obtida em exame e a componente prática à média aritmética obtida nos trabalhos práticos.

Em ambas as partes a nota mínima obrigatória é 7,5 valores.

A nota final é dada pela fórmula que se apresenta a seguir.

Somatório( Teórico * 60% , Prático * 40% )

-- JoseCarlosRamalho - 23 Feb 2004

Didactica 21 Apr 2004 - 21:27 - r2 JoseCarlosRamalho

Links

Exemplos

  1. Desenvolvimento modular duma aplicação de gestão de alunos (listas ligadas sobre estruturas estáticas):
FichasPraticas 12 Feb 2007 - 19:53 - r18 JoseBacelarAlmeida

Fichas para as aulas práticas (2003/2004)

FichasPraticasFicha1 12 Feb 2007 - 19:53 - r3 JoseBacelarAlmeida

Ficha Nº1

Objectivos:

O objectivo principal desta ficha é familiarizar o aluno com a linguagem algorítmica que irá ser usada para especificar os algoritmos e com as estruturas de controlo da linguagem C.

Para atingir esse fim, o aluno irá desenvolver pequenos algoritmos e tentar codificá-los em C.

Exercícios:

Exercício Nº1: O Maior de 2 Números

Desenvolva o algoritmo, e posteriormente codifique-o em C, de um programa que lê dois inteiros e escreve o maior deles.

Exercício Nº2: O Maior de N Números

Desenvolva o algoritmo, e posteriormente codifique-o em C, de um programa que lê N inteiros e escreve o maior deles.

Exercício Nº3: Números Pares

Desenvolva o algoritmo, e posteriormente codifique-o em C, de um programa que lê um determinado número inteiro N e escreve os números pares até N.

Exercício Nº4: Potências

Desenvolva o algoritmo, e posteriormente codifique-o em C, de um programa que lê 2 números inteiros, a e b, e escreve o resultado de elevar a à potência de b (utilize estruturas cíclicas para calcular o valor da potência).

Exercício Nº5: Factorial

Desenvolva o algoritmo, e posteriormente codifique-o em C, de um programa que lê um inteiro positivo e escreve o valor do seu factorial.

Exercício Nº6: Tabela de Conversão de Temperaturas

Considere a seguinte fórmula:Fahreneit = 32 + (1.8 * Celsius)

Desenvolva o algoritmo, e posteriormente codifique-o em C, de um programa que calcula uma tabela de conversão entre graus Celsius e graus Fahreneit com Fahreneit a variar entre 0 e 300 (considere intervalos de 5 graus).

-- JoseCarlosRamalho - 25 Feb 2004

FichasPraticasFicha10 24 Jan 2005 - 17:31 - r3 JoseCarlosRamalho

Ficha Nº10: Estruturas de Dados Dinâmicas - Árvores Binárias

Objectivos:

O objectivo principal desta ficha é familiarizar o aluno com a utilização de estruturas de dados dinâmicas, nomeadamente, as árvores binárias.

Exercícios:

Exercício Nº 1: Árvores Binárias Ordenadas de Inteiros

Considere uma lista de inteiros (não se sabe o seu comprimento). Especifique então as seguintes funções e estruturas de dados:

  1. Defina os tipos necessários para suportar uma árvore binária ordenada (de procura) de inteiros.
  2. Especifique uma função para inserir um valor na árvore.
  3. Especifique uma função para listar os valores armazenados (codifique as três funções de listagem possíveis).
  4. Especifique uma função para procurar um valor na árvore (como resultado deverá devolver um apontador para o elemento ou NULL caso não o encontre).
  5. Especifique uma função para contar os elementos da árvore.
  6. Especifique uma função para calcular o maior elemento na árvore.
  7. Especifique um programa, usando as funções definidas, que cria uma lista com os múltiplos de 7 entre 0 e 100 e os lista por ordem decrescente e crescente.
  8. Especifique uma função que calcula o peso de uma árvore (a sua profundidade).
  9. Especifique uma função que dada uma árvore, a lista por níveis.

Exercício Nº 2: Gestão do Login dos Utilizadores de uma Aplicação

Para controlar o acesso a uma aplicação informática, pretende-se manter em memória o conjunto dos pares "Username-Password" de todos os Utilizadores autorizados. Usando uma Árvore Binária de Procura para armazenar essa informação e após definir os tipos de variáveis em C, necessários para suportar essa representação, implemente as seguintes operações na linguagem C:

  1. "valida": função booleana que diz se o par "username-password" corresponde a um utilizador válido.
  2. "daSenha": função que retorna a password de um dado username.
  3. "listaTodos": procedimento que faz uma listagem ordenada alfabeticamente de todos os pares "Username-Password" válidos.
  4. "insere": função que recebe um novo par "Username-Password" e a Árvore com o conjunto de utilizadores actuais e devolve uma nova Árvore com o novo par inserido na follha correcta.

Exercício Nº 3: Árvores Binárias para Expressões Aritméticas (+,-,*,/)

  1. Defina a estrutura de dados para uma árvore binária que irá armazenar expressões aritméticas, operadores nos nodos intermédios armazenados de acordo com a sua prioridade de cálculo e operandos (números reais) nas folhas.
  2. Especifique uma função que dada uma árvore deste tipo lista a expressão na forma: infixa, pré-fixa, pós-fixa.
  3. Especifique uma função que dada uma árvore deste tipo calcula o valor da expressão lá armazenada.

Exercício Nº 4: Dicionários

Pretende-se criar um dicionário que associe a cada palavra (termo chave), a sua classificação morfológica, origem, significado e sinónimos. O programa a desenvolver para manipulação do dicionário (suponha que o mesmo foi criado por uma outra aplicação), além de facultar uma consulta eficiente (dada uma palavra retorna toda a informação associada, ou produz uma mensagem de falha, caso não haja nenhuma chave igual à palavra dada), deve permitir listar globalmente toda a informação contida, ordenada alfabeticamente pelos termos-chave, e deve ser capaz de ler e salvar o dicionário em ficheiro binário.

  1. Defina a estrutura de dados para armazenar cada entrada (par "termo-chave,informação-associada").
  2. Implemente o dicionário num array ordenado de entradas.
  3. Implemente o dicionário numa lista ligada dinâmica e ordenada de entradas.
  4. Implemente o dicionário usando sub-lista ligadas dinâmica e ordenada de entradas cada lista correspondente a 1 das 26 letras do alfabeto, acessiveis através de um indíce guardado em Árvore Binária de Procura (em alternativa, armazene-o num array).
FichasPraticasFicha1Res 24 Jan 2005 - 17:31 - r3 JoseCarlosRamalho

Resolução da Ficha Prática 1

Exercício 1: O maior de 2 números

#include <stdio.h>

int main( ) {
  int a, b;
  printf("Primeiro número: \n");
  scanf("%d", &a);
  printf("Segundo número: \n";
  scanf("%d", &b);
  printf("O maior número é o %d\n", a>b?a:b);
  return 0;
}

Exercício 2: O maior de N números

#include <stdio.h>

/*----- programa principal -----*/  
int main( ) {
  int N=0, conta; 
  int num, max;

  printf("Indique quantos números vai introduzir: "); 
  while (N<=0) {
    scanf("%d",&N);
  }
  printf("Escreva o próximo número: ");
  scanf("%d",&num);
  
  max = N;
  for (conta=N-1; conta>0; conta--) { 
    printf("Escreva o próximo número: "); scanf("%d",&num);
    if (num > max) { 
       max = num;
    } 
  }
  printf("\nO Maior dos %d numeros introduzidos e: %d \n",N,max); 
   
  return 0;
}

Exercício 3: Números pares

#include <stdio.h>

/*----- programa principal -----*/  
int main( ) {
  int N=0; 
  int par;

  printf("Indique o limite superior para os números pares a gerar (imprimir): "); 
  scanf("%d",&N); 

  for (par=2; par<=N; par=par+2) { 
    printf("O próximo Numero Par e: %d \n",par);
  }
  printf("Ja nao ha mais Numeros Pares menores ou iguais a %d \n",N);
    
  return 0;
}

Exercício 3: Números pares (outra solução)

                                            
#include <stdio.h>

/*----- programa principal -----*/  
int main( ) {
  int N=0; 
  int par, conta;

  printf("Indique quantos números pares quer gerar (imprimir): "); 
  while (N <= 0) {
    scanf("%d",&N);
  }
  conta=0; 
  while (conta < N) { 
    conta++;
    par = 2*conta; 
    printf("O próximo Numero Par e: %d \n",par);
  }
  printf("Ja foram gerados os %d primeiros Numeros Pares \n",N);
    
  return 0;
}

Exercício 4: Potências (de base A e expoente B)

#include <stdio.h>

/*----- programa principal -----*/  
int main( ) {
  int A,B; 
  int pot;

  printf("Escreva a Base e o Expoente (inteiro e nao-negativo): "); 
  scanf("%d %d",&A,&B); 
  pot = 1;
  if (B >= 0) {
     while (B) /* equivalente a (B>0) */
     { 
       pot = pot*A; 
       B--;    /* ou seja, B = B-1 */
     }
     printf("A potencia %d elevado a %d e igual a %d \n",A,B,pot);

  } else {
     printf("\n O expoente tem de ser um Numero Inteiro Nao-Negativo \n");
  }
     
  return 0;
}         

Exercício 5: Factorial

#include <stdio.h>

/*----- programa principal -----*/  
int main( ) {
  int N=0; 
  int fact=1;

  printf("Indique o Numero cujo Factorial quer calcular (inteiro e positivo): "); 
  while (N<=0) {
    scanf("%d",&N);
  }
  
  while (N) { 
    fact = fact*N; 
    N--;
  }
  printf("O Factorial do numero dado e: %d \n",fact);
    
  return(0);
}

Exercício 5: Factorial: solução recursiva

#include <stdio.h>

/*----- programa principal -----*/  
int main( ) {
  int N=0; 

  printf("Indique o Numero cujo Factorial quer calcular (inteiro e positivo): "); 
  while (N<=0) {
    scanf("%d",&N);
  }
  
  printf("O Factorial do numero dado e: %d \n",factorial(N));
    
  return(0);
}

int factorial(int a) {
   if (a <= 1) return 1;
   else return a * factorial(a - 1);
}

Exercício 6: Conversão Celsius para Fahreneit

#include <stdio.h>

/*----- programa principal -----*/  
int main( ) {
  float Celsius; 
  int Fahr;

  for (Fahr=0; Fahr<=300; Fahr += 5) { 
    printf("%5d Fhareneit ==> %6.1f \n", Fahr, ((Fahr-32.0)/1.8));
    N--;
  }
    
  return 0;
}

-- JoseCarlosRamalho - 09 Mar 2004

FichasPraticasFicha2 09 Mar 2004 - 22:54 - r5 JoseCarlosRamalho

Ficha Nº2

Objectivos:

O objectivo principal desta ficha é familiarizar o aluno com a linguagem algorítmica que irá ser usada para especificar os algoritmos e com as estruturas de controlo da linguagem C.

Nesta ficha, introduz-se também o conceito de subrotina ou função em C como método para repartir um problema em problemas mais pequenos.

Para atingir esse fim, o aluno irá desenvolver pequenos algoritmos e tentar codificá-los em C.

Exercícios:

[Exercício1] [Exercício2] [Exercício3] [Exercício4] [Exercício5] [Exercício6]


Exercício Nº1: Divisores de um número

Desenvolva o algoritmo, e posteriormente codifique-o em C, de um programa que lê um inteiros e escreve no écran os seus divisores.


Exercício Nº2: Maior Divisor Comum

Desenvolva o algoritmo, e posteriormente codifique-o em C como uma função. A sua função deverá ter dois argumentos inteiros e produzir um resultado inteiro que é o maior divisor comum dos argumentos recebidos. Posteriormente codifique um programa principal (main()) que utiliza esta função para cálculo do maior divisor comum de dois números fornecidos pelo utilizador.

Ver Algorítmo de Euclides

Que pode ser resumido em:

mdc(m,n) -->
             m>=n : m%n==0 --> n
                    m%n!=0 --> mdc(n,m%n)

             m<n  : mdc(n,m)


Exercício Nº3: Menor Múltiplo Comum

Desenvolva o algoritmo, e posteriormente codifique-o em C como uma função. A sua função deverá ter dois argumentos inteiros e produzir um resultado inteiro que é o menor múltiplo comum dos argumentos recebidos. Posteriormente codifique um programa principal (main()) que utiliza esta função para cálculo do menor múltiplo comum de dois números fornecidos pelo utilizador.


Exercício Nº4: É Primo?

Desenvolva o algoritmo, e posteriormente codifique-o em C como uma função. A sua função deverá ter um argumento inteiros e produzir um resultado do tipo booleano (o docente irá desenvolver uma pequena biblioteca de booleanos: bool.h). O resultado será verdadeiro (TRUE) se o argumento passado fôr primo e falso (FALSE) caso contrário. Posteriormente codifique um programa principal (main()) que utiliza esta função para verificar quem é primo numa sequência de inteiros introduzidos pelo utilizador (terminada por 0).


Exercício Nº5: Tudo ao contrário!

Foste transferido para uma nova escola.

Nessa escola, a professora e matemática gostava muito de pôr os alunos a pensar e tentava que a mais simples tarefa fosse algo em que o raciocínio tivesse que intervir.

Uma das medidas que ela implementou foi a de utilizar os números inteiros invertidos. Por exemplo, o 12 seria 21 e o 1821 seria 1281.

Ora, os alunos locais já estão habituados a lidar com os inteiros daquela maneira e até fazem as operações de adição e subtracção com os inteiros naquela forma. No entanto, para ti, que acabaste de chegar à escola esta tarefa não é tão simples. Assim, resolveste criar um programa em computador que fizesse três coisas:

  1. dado um número calcula o seu inverso (o valor inteiro correcto)
  2. dados dois números na forma invertida calcula a sua soma e devolve o resultado na mesma forma invertida
  3. dados dois números na forma invertida calcula a sua subtracção e devolve o resultado na mesma forma invertida

Sugestão: especifica uma função para cada um dos pontos acima.


Exercício Nº6: Sequência de Fibonacci

Codifica um programa que gere os primeiros 20 números de Fibonacci. Os números de Fibonacci são definidos recursivamente da seguinte forma:

   fib(0) = 1
   fib(1) = 1
   fib(n) = fib(n-1) + fib(n-2)   para n>=2

-- JoseCarlosRamalho - 04 Mar 2004

FichasPraticasFicha2Res 24 Jan 2005 - 17:31 - r3 JoseCarlosRamalho
/**
title: Ano Lectivo 2003/04 -- Resolução da Ficha nº2 
ficheiro: pp203resf02.c autor: PRH versao de: 2004.03.15
.uso do printf() e do scanf()
.uso de condicoes
.uso de ciclos diversos
**/  

Divisores de um número (Ficha nº2 - Exercício 1)


/**
title: Divisores de um número (Ficha nº2 - Exercício 1)
**/  
#include <stdio.h>

/*----- programa principal -----*/  
int main( )
{int num=0, divisor;

  printf("Escreva o número cujos divisores quer calcular: "); 
  while (num<=0) { scanf("%d",&num); }
  
  printf("Lista dos Divisores de %d:\n",num);
  for (divisor=1; divisor<=num; divisor++)
    { 
      if ((num%divisor)==0) { printf("%d\n",divisor);  } 
    }
 
  return(0);
}

Divisores de um número -- 2ª versão, optimizada (Ficha nº2 - Exercício 1)

/**
title: Divisores de um número -- 2ª versão, optimizada (Ficha nº2 - Exercício 1)
**/  
#include <stdio.h>
#include <math.h>

/*----- programa principal -----*/  
int main( )
{int num=0, divisor, lim;

  printf("Escreva o número cujos divisores quer calcular: "); 
  while (num<=0) { scanf("%d",&num); }
  
  printf("Lista dos Divisores de %d:\n",num);
  lim = (int)sqrt((double)num);
  for (divisor=1; divisor<=lim; divisor++)
    { 
      if ((num%divisor)==0) { printf("um par de divisores é %d  e %d\n",divisor, num/divisor);  } 
    }
 
  return(0);
}

Menor Múltiplo Comum de dois números (Ficha nº2 - Exercício 3)

/**
title: Menor Múltiplo Comum de dois números (Ficha nº2 - Exercício 3)
**/  
#include <stdio.h>

/*----- programa principal -----*/  
int main( )
{int N,M,MMC; 
 int maior;

  printf("Indique os números cujo MMC quer calcular: "); 
  scanf("%d%d",&N,&M); 
  MMC = maior = (N>=M)? N: M;
  while (((MMC%N)!=0)||((MMC%M)!=0))
    { 
      MMC += maior;
    }
  printf("O Menor Multiplo Comum entre %d e %d é: %d \n",N,M,MMC);
    
  return(0);
}

Tudo ao contrário, ou "Números Invertidos" (Ficha nº1 - Exercício 5)

/**
title: Tudo ao contrário, ou "Números Invertidos"  (Ficha nº1 - Exercício 5)
**/  
#include <stdio.h>

/*----- programa principal -----*/  
int main( )
{int orig= -1; 
 int inverte;

  printf("Indique o Numero Original (>=0) que quer inverter: "); 
  while (orig<0) { scanf("%d",&orig); }
  inverte = 0;
  
  while (orig)
    { 
      proxdig = orig%10; 
      orig = orig/10;
      inverte = inverte*10 + proxdig;
    }
    
  printf("O numero invertido e: %d \n",inverte);
  return(0);
}

Os N primeiros Números de Fibonacci (Ficha nº2 - Exercício 6)

                                                      
/**
title: Os N primeiros Números de Fibonacci (Ficha nº2 - Exercício 6)
**/  
#include <stdio.h>
#define MAX 20

/*----- função de Fibonacci -----*/  
int fib( int n )
{int f;
  if ((n==0)||(n==1)) 
       { f = 1; }
  else { f = fib(n-1) + fib(n-2); }
  return(f);  
}
/*----- programa principal -----*/  
int main( )
{int N; 
 int res;

  printf("Os %d primeiros números de FIBONACCI são: \n",MAX); 
  for ( N=0; N<MAX; N++ )
    { 
      res = fib(N);
      printf("%6d \n",res);
    }
    
  return(0);
}
FichasPraticasFicha3 24 Jan 2005 - 17:31 - r5 JoseCarlosRamalho

Ficha Nº3

Objectivos:

O objectivo principal desta ficha é familiarizar o aluno com a utilização e manipulação de vectores e matrizes em C. As strings são casos particulares de arrays: uma string é um array em que os elementos são todos do tipo char. Assim, nesta ficha surgem também alguns exercícios envolvendo manipulação de strings.

Exercícios:

Média de 10 números; Capicua; Romano-Árabe; Cifra; Estatísticas;

Exercício Nº1: Média de 10 números inteiros

Especifique um programa e codifique-o em C que lê 10 números inteiros positivos e escreve:

  • a sua média e o valor máximo;
  • os numeros maiores que a média;
  • a quantidade de números menores que a média;

Exercício Nº2: Capicua

Especifique uma função que recebe uma string e verifica se a mesma é capicua (lida da esquerda para a direita, ou da direita para a esquerda, é a mesma palavra/frase).
Exemplos típicos: ala ou rapar.
Um caso curioso (e, claro, mais complexo) é a seguinte Capicua brasileira: Socorram-me subi no onibus em Marrocos.

Exercício Nº3: Conversão Romano-Árabe

Especifique uma função que recebe uma string contendo um número escrito em notação romana e que dá como resultado o respectivo valor inteiro (correspondente à notação arábica).

Exercício Nº4: Cifra por substituição arbitrária

Considere a cifra (palavra-chave) constituída pelas letras "SAPO" seguidas de um dígito n (entre 0 e 9). Para a cifragem (codificação) da mensagem efectuam-se os seguintes passos:

  1. reduzem-se espaços seguidos a um único espaço e mantém-se os caracteres de pontuação;
  2. os digitos rodam-se (circularmente) para a direita da quantidade n;
  3. convertem-se todas as letras em maiúsculas ou minúsculas;
  4. considera-se a seguinte tabela de codificação:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
S A P O B C D E F G H I J K L M N Q R T U V W X Y Z

A construção desta tabela limita-se a colocar a palavra chave no início e completar com as restantes letras do alfabeto, não colocando as letras que se repetem.

  1. para a codificação, substitui-se cada um dos carácteres da primeira linha pelo carácter correspondente da segunda linha.

Construa um programa que dada uma cifra, codifique a mensagem, e um outro que, dada a mensagem cifrada e a cifra, descodifique a mensagem.

Exercício Nº5: Estatísticas de texto

Crie um programa que leia todos os caracteres de um texto (até encontrar um o fimde ficheiro, eof) e que no fim indique quantas vezes apareceu cada uma das 26 letras do alfabeto (considere maiúsculas iguais às minúsculas).

-- JoseCarlosRamalho - 09 Mar 2004

FichasPraticasFicha4 01 Apr 2004 - 14:56 - r3 JoseCarlosRamalho

Ficha Nº4

Objectivos:

O objectivo principal desta ficha é familiarizar o aluno com a utilização e manipulação de matrizes em C. As strings são casos particulares de arrays: uma string é um array em que os elementos são todos do tipo char. Assim, nesta ficha surgem também alguns exercícios envolvendo manipulação de strings.

Exercícios:

Exercício Nº1: Média dos Alunos

Cada aluno de uma licenciatura em Ciências da Computação pode ter notas correspondentes a 10 disciplinas feitas durante o ano lectivo (caso não tenha sido avaliado positivamente a uma disciplina não terá essa nota).

  1. Declare as estruturas de dados (o modelo) necessárias para suportar o sistema de informação: um aluno tem um número (inteiro), um nome (string) e uma lista de notas (reais).
  2. Inicialize a estrutura de dados: na declaração e/ou numa função de inicialização que é chamada no início da função main().
  3. Especifique um programa em C para calcular a média de cada aluno (faça uma função que dada a estrutura de dados principal e o identificador do aluno, produz como resultado a sua média).
  4. Calcule a média geral da turma.
  5. Calcule a média da turma em cada disciplina.
  6. Calcule a percentagem de faltas (ausência de nota).

Exercício Nº2: Gestão de Armazens

Uma empresa tem 10 armazens e precisa de um programa que leia as vendas mensais dos 10 armazens, calcule a media de vendas e produza uma listagem dos armazens com vendas superiores à média calculada.

Exercício Nº3: Normalização de Espaços numa String

Especifique as seguintes funções:

  1. Dada uma string, retira os espaços no fim da string.
  2. Dada uma string, retira os espaços do início da string.
  3. Dada uma string, substitui todas as sequências de um ou mais carácteres brancos (espaço ou TAB) no meio da string por um único espaço branco.

Exercício Nº4: Conversão Árabe-Romano

Especifique um programa em C que lê um inteiro e produz a string com o correspondente número em notação romana.

FichasPraticasFicha5 29 Mar 2004 - 20:00 - r2 JoseCarlosRamalho

Ficha Nº5: Busca e Ordenação de Arrays

Objectivos:

O objectivo principal desta ficha é familiarizar o aluno com a utilização dos algoritmos tradicionais de busca e ordenação de Arrays.

Exercícios:

Exercício Nº1: Inserção Ordenada

Voltando ao exercício da última ficha em que se geriam alunos e respectivas notas, implemente a operação correspondente à inserção de um novo aluno (faça a inserção ordenada desse aluno). Este problema pode ser dividido em três fases:

  1. Descobrir a posição onde o novo aluno deverá ser inserido;
  2. Deslocar os elementos maiores uma posição para a frente;
  3. Inserir o novo aluno na posição livre.

Exercício Nº2: Remoção

Especifique a operação de remoção de um aluno tendo o cuidado de deixar a estrutura ordenada e sem "buracos".

Exercício Nº3: Busca Dicotómica

Uma vez que a estrutura está ordenada a pesquisa pode ser optimizada. Implemente a pesquisa dicotómica sobre um array ordenado.

FichasPraticasFicha6 01 Apr 2004 - 15:22 - NEW JoseCarlosRamalho

Ficha Nº6: Arrays e Estruturas

Objectivos:

O objectivo principal desta ficha é familiarizar o aluno com a utilização de algoritmos mais avançados de busca e ordenação sobre Arrays. No fim, porpõem-se alguns exercícos envolvendo estruturas.

Exercícios:

Exercício Nº1: Estrutura Ligada

Voltando ao exercício da última ficha em que se geriam alunos e respectivas notas, considere a hipótese de utilizar uma ligação lógica entre os elementos como forma de os manter ordenados(como discutido na aula teórica de 01-04-2004) e implemente as seguintes funções:

  1. Incialização do modelo de dados: lembre-se que também será necessário gerir as posições livres.
  2. Listar: esta função produz uma listagem ordenada da informação de todos os alunos.
  3. Consulta: esta função imprime no écran toda a informação referente a um determinado aluno.
  4. Inserir: esta função insere o novo aluno na primeira posição livre e actualiza as ligações de forma a manter a informação logicamente ordenada.
  5. Remover: esta função remove o aluno em causa e coloca a respectiva posição na lista de posições livres (garbage collector).
Este problema pode ser dividido em três fases:

Exercício Nº2: Estrutura ou Produto Cartesiano

Considere de novo o problema do exercício anterior e resolva as seguintes alíneas:

  1. Defina um tipo de dados Aluno como sendo uma estrutura (struct) onde é guardada a informação do aluno.
  2. Defina um tipo de dados Turma como sendo uma lista de Aluno.
  3. Declare variáveis do tipo Aluno e do tipo Turma.
  4. Adapte as funções desenvolvidas no exercício anterior para trabalhar com estes novos tipos de dados.
FichasPraticasFicha7 21 Apr 2004 - 22:02 - NEW JoseCarlosRamalho

Ficha Nº7: Ficheiros e Estruturas

Objectivos:

O objectivo principal desta ficha é familiarizar o aluno com a utilização de ficheiros e definição de tipos estruturados de dados.

Exercícios:

Exercício Nº1: Polinómios

Exercício Nº2: Expressões Aritméticas

FichasPraticasFicha8 04 May 2004 - 09:54 - NEW JoseCarlosRamalho

Ficha Nº8: Estruturas de Dados Dinâmicas - Listas Ligadas

Objectivos:

O objectivo principal desta ficha é familiarizar o aluno com a utilização de estruturas de dados dinâmicas.

Exercícios:

Exercício Nº1: Lista de Inteiros

Considere uma lista de inteiros (não se sabe o seu comprimento). Especifique então as seguintes funções e estruturas de dados:

  1. Defina os tipos necessários para suportar uma lista ligada de inteiros.
  2. Especifique uma função para inserir um valor na cabeça da lista.
  3. Especifique uma função para listar os valores da lista, do início para o fim (faça também a função que lista os elementos na ordem inversa).
  4. Especifique uma função para procurar um valor na lista (como resultado deverá devolver um apontador para o elemento ou NULL caso não o encontre).
  5. Especifique uma função para contar os elementos da lista.
  6. Especifique uma função para calcular o maior elemento na lista.
  7. Especifique um programa, usando as funções definidas, que cria uma lista com os múltiplos de 3 entre 0 e 100 e os lista por ordem decrescente e crescente.

Exercício Nº2: À procura da saída ...

Suponha que existe um labirinto (pense numa representação adequada para o mesmo) que tem um ponto de entrada e um ponto de saída. Especifique um algoritmo que vai descobrir um caminho possível entre o ponto de entrada e o ponto de saída. Ajuda: modele numa lista ligada uma stack para ir guardando o caminho percorrido e as hipóteses alternativas.

Exercício Nº3: A Agenda de Contactos

Pretende-se que desenvolva uma aplicação para gerir uma agenda de contactos. Uma agenda é uma lista de entradas ou grupos de entradas. Uma entrada tem a seguinte constituição:

chave
chave única de identificação (não pode haver duas entradas com a mesma chave);
tipo
tipo da entrada: pessoa, empresa, ...
nome
nome da pessoa, empresa ou entidade;
email
contacto electrónco (é opcional)
telefone
número de telefone (obrigatório)

Um grupo pode ter entradas, referências a entradas já existentes na agenda (por chave) ou subgrupos (os grupos podem ter grupos aninhados infinitamente). O grupo tem, então, a seguinte constituição:

chave
chave única de identificação (não pode haver dois grupos com a mesma chave);
nome
nome do grupo; lista de itens: entradas e/ou grupos e/ou referências;

Por sua vez, a referência é apenas constituída pela chave da entrada ou grupo que referencia.

Desenvolva a aplicação nas seguintes etapas:

  1. Defina as estruturas de dados necessárias para suportar o sistema de informação;
  2. Espeifique as várias funções de inserção: inserir uma entrada na agenda, inserir um grupo na agenda, inserir uma entrada num grupo, ...
  3. Especifique uma função para listar o conteúdo da agenda.
  4. Especifique uma função para gravar o conteúdo da agenda num ficheiro.
  5. Especifique uma função para carregar o conteúdo da agenda de um ficheiro.
  6. Especifique as várias funções de remoção.

Divirta-se...

FichasPraticasFicha8Res 20 May 2004 - 18:20 - r2 JoseCarlosRamalho

Makefile

prog.exe : prog.o lista.o
    gcc -o prog.exe prog.o lista.o

prog.o : prog.c lista.h
    gcc -c prog.c

lista.o : lista.h lista.c
    gcc -c lista.c


lista.h

#ifndef _LISTA
#define _LISTA

typedef struct sInteiro
  {
    int valor;
    struct sInteiro * seg;
  } Nodo, *Lista;

Lista inserir( int v, Lista l );
void listar( Lista l );
void listar_inv( Lista l );
Lista procurar( int v, Lista l );
int conta_elems( Lista l );

#endif


lista.c

#include "lista.h"
#include <stdio.h>

Lista inserir( int v, Lista l )
{
  Lista novo;

  novo = (Lista) malloc(sizeof(Nodo));
  novo->valor = v;
  novo->seg = l;

  return novo;
}


void listar( Lista l )
{
  if(l)
  {
    printf("%d ",l->valor);
    listar(l->seg);
  }
}

Lista inserir_ord( int v, Lista l)
{
  Lista novo;


  if((!l) || (l->valor > v))
  {
    novo = (Lista) malloc(sizeof(Nodo));
    novo->valor = v;
    novo->seg = l;
    return novo;
  }
  else
  {
    l->seg = inserir_ord(v,l->seg);
    return l;
  }
}


prog.c

#include <stdio.h>
#include "lista.h"

int main()
{
  Lista li=NULL;
  int i=0;

  while ((i+=3) < 100)
    li = inserir(i,li);

  listar(li);

  return 0;
}
FichasPraticasFicha9 18 May 2004 - 01:04 - NEW JoseCarlosRamalho

Ficha Nº9: Estruturas de Dados Dinâmicas - Listas Ligadas

Objectivos:

O objectivo principal desta ficha é familiarizar o aluno com a utilização de estruturas de dados dinâmicas.

Exercícios:

Exercício Nº1: Quantas letras?

Especifique um programa/função que dada uma frase/nome constrói uma lista de ocorrências das letras ordenada alfabeticamente. Pense numa solução com arrays e noutra com estruturas dinâmicas.

Exercício Nº2: À procura da saída ...

Suponha que existe um labirinto (pense numa representação adequada para o mesmo) que tem um ponto de entrada e um ponto de saída. Especifique um algoritmo que vai descobrir um caminho possível entre o ponto de entrada e o ponto de saída. Ajuda: modele numa lista ligada uma stack para ir guardando o caminho percorrido e as hipóteses alternativas.

Exercício Nº3: A Agenda de Contactos

Pretende-se que desenvolva uma aplicação para gerir uma agenda de contactos. Uma agenda é uma lista de entradas ou grupos de entradas. Uma entrada tem a seguinte constituição:

chave
chave única de identificação (não pode haver duas entradas com a mesma chave);
tipo
tipo da entrada: pessoa, empresa, ...
nome
nome da pessoa, empresa ou entidade;
email
contacto electrónco (é opcional)
telefone
número de telefone (obrigatório)

Um grupo pode ter entradas, referências a entradas já existentes na agenda (por chave) ou subgrupos (os grupos podem ter grupos aninhados infinitamente). O grupo tem, então, a seguinte constituição:

chave
chave única de identificação (não pode haver dois grupos com a mesma chave);
nome
nome do grupo; lista de itens: entradas e/ou grupos e/ou referências;

Por sua vez, a referência é apenas constituída pela chave da entrada ou grupo que referencia.

Desenvolva a aplicação nas seguintes etapas:

  1. Defina as estruturas de dados necessárias para suportar o sistema de informação;
  2. Espeifique as várias funções de inserção: inserir uma entrada na agenda, inserir um grupo na agenda, inserir uma entrada num grupo, ...
  3. Especifique uma função para listar o conteúdo da agenda.
  4. Especifique uma função para gravar o conteúdo da agenda num ficheiro.
  5. Especifique uma função para carregar o conteúdo da agenda de um ficheiro.
  6. Especifique as várias funções de remoção.

Divirta-se...

MenuTopics 09 Mar 2004 - 23:22 - r2 JoseCarlosRamalho
Programa
Avaliação
Sumários
Trabalhos Práticos
Fichas das aulas práticas
Repositório anárquico de enunciados
NovasPP2 12 Feb 2007 - 19:53 - r45 JoseBacelarAlmeida
  • Notas finais, após o exame de recurso --> PDF
  • Notas finais --> PDF
  • (Pequenas correcções nas) Notas práticas --> PDF
  • Apresentação do tp4 nos dias 6 e 7 de Junho (folha de inscrição no DI / D.Rosa) Obrigatório trazer versão em papel do relatório.
  • Saiu o enunciado do 4º Trabalho Prático (data de entrega 5 de Junho)
  • Devido a problemas na form de submissão -- Nova data de entrega do TP3 --> 5 de Maio
  • Criado um mini repositório de Exercícios de Aulas. Aceitam-se contribuições
  • Saiu o enunciado do 3º Trabalho Prático (data de entrega 3 de Maio)
  • Foi activada a form de submissão do tp2. P.F. Avisem-me de anomalias encontradas!
  • Saiu o enunciado do 2º Trabalho Prático (data de entrega 3 de Abril, por submissão electrónica)
  • Devido ao atraso de entrada ao serviço do dispositivo de submissão, as entregas electrónicas podem ser realizadas até ao dia 14 de Março.
  • Não é permitido uso de "system"
  • Os trabalhos submetidos são compilados com "cc -Wall"
  • Foi activada a form de submissão. Este sistema é altamente experimental -- avisem-me de anomalias encontradas!
  • Se por algum motivo tiverem problemas de Name Server tentem aceder à form de submissão via esta form alternativa...
  • Saiu o enunciado do 1º Trabalho Prático (data de entrega 13 de Março, por submissão electrónica)

ParadigmasProgramacaoIIPrograma 04 Mar 2004 - 15:56 - NEW JoseCarlosRamalho

-- JoseCarlosRamalho - 04 Mar 2004

ProgramaDetalhado 12 Feb 2007 - 19:53 - r5 JoseBacelarAlmeida

Programa da Disciplina: Paradigmas de Programação II

Licenciatura em Matemática e Ciências da Computação -
  1. ano


Índice Remissivo

[1.Introdução à Programação Imperativa]
[2.Estudo da linguagem de programação "C"]
[3.Procura e Ordenação: conceitos e algoritmos mais vulgares ]
[4.Recursividade]
[5.Estruturas de Dados]

1.Introdução à Programação Imperativa

[Indice]

  1. Revisão da noção de Programação: objectivos, dificuldades e etapas.

  2. Uma visão global dos paradigmas de programação.

  3. Apresentação detalhada do paradigma; panorâmica histórica das linguagens de programação imperativas.

  4. Análise Descendente de problemas

  5. Noção de Algoritmo: Linguagem Algorítmica em português estruturado ---introdução das diversas construções linguísticas através de problemas-exemplo típicos.


2.Estudo da linguagem de programação "C"

[Indice]

  1. Filosofia e historial desta linguagem.

  2. Representação da Informação: tipos de dados.

  3. Instruções simples e estruturas de controlo em "C".

  4. Acesso e armazenamento de informação em memória secundária: manipulação de ficheiros.

  5. Estruturas de dados dinâmicas: apontadores, listas e árvores.

  6. Introdução ao polimorfismo: registos variantes e apontadores para funções.


3.Procura e Ordenação: conceitos e algoritmos mais vulgares

[Indice]

Apresentação, simulação e discussão de algoritmos.


4.Recursividade

[Indice]

Resolução de alguns problemas abordados no paradigma funcional já leccionado.

  1. Adequação da recursividade ao problema a resolver.

    Implementação de alguns casos matemáticos de natureza recursiva.

    Resolução de problemas try-and-error.


5.Estruturas de Dados

[Indice]

Conceitos e algoritmos principais para as implementações em array e listas ligadas.

  • Listas: caso geral, Stacks e Queues.
  • Funções Finitas.
  • Estruturas arbóreas: árvores binárias, árvores de decisão, árvores de expressões, etc.


Generated by prog2.xsl from pp2-2004.xml
An XML Application by jcr, 2002.

-- JoseCarlosRamalho - 04 Mar 2004

RepositorioProblemas 12 Feb 2007 - 19:53 - r4 JoseBacelarAlmeida

Repositório Anárquico de Enunciados

Cálculo da Tabuada

Codifica um programa que receba um inteiro positivo, e imprima a sua tabuada (da multiplicação), de 1 a 10 (como se o computador estivesse na primária).

O adivinho

O computador adivinho, tenta adivinhar um número entre 0 e 100, em várias tentativas. Em cada tentativa, mostra o número e pergunta se está correcto, ao que o utilizador responde "sim" ou "maior" ou "menor" consoante o número em que pensou seja igual, maior ou menor do que o indicado.

-- AlbertoSimoes - 11 Mar 2005

Resultados 12 Feb 2007 - 19:53 - r8 JoseBacelarAlmeida

Resultados de Exames, Correcções e TPS

2004/2005

Notas práticas: PDF

Notas Finais (1ª Época): PDF

2003/2004

Exame: 1ª chamada (23 de Junho)

  Versão A   Versão B   Versão C   Versão D
Pergunta a b c d   a b c d   a b c d   a b c d
1. V V F V   V F V V   F F F F   F F F F
2. V F V F   F V F V   F V V V   V V V F
3. F F V V   F V V F   F V F V   V F V F
4. V V V V   V V V V   V F V F   F V F V
5. F F F F   F F F F   V V F F   V F F V
6. F V F V   V F V F   V V V V   V V V V
7. F V F F   V F F F   F F F V   F F V F

Resultados

Resultados da 1ª chamada e TPs

Exame: 2ª chamada (8 de Julho)

  Versão A   Versão B   Versão C   Versão D
Pergunta a b c d   a b c d   a b c d   a b c d
1. V V F V   V F V F   V F V F   V V F V
2. F V F V   V F V F   F V V V   V F F F
3. F V F V   F V X F   V V F F   F V V V
4. F F V V   V V F V   V V F F   F F V V
5. V V V F   F V V V   V F V V   F F V V
6. V F V V   F V F F   V V F V   V F F X
7. F F V F   V F V V   F F V F   V V V F

Resultados

Resultados após a 2ª chamada e TPs

SumariosPP2 15 Jun 2004 - 16:31 - r8 JoseCarlosRamalho

Sumários do ano lectivo 2003/2004

Aulas Teóricas (LMCC)

2004-02-26
Apresentação da disciplina: avaliação, ferramentas e plataformas a utilizar. Apresentação da arquitectura de um compilador da linguagem C. Introdução à liguagem algorítmica que irá ser utiizada nas aulas práticas. Implementação de alguns programas pequenos.
2004-03-01
Estruturas Condicionais: a instrução if-else, instruções if-else encadeadas, a instrução switch.
2004-03-04
Apresentação da arquitectura de uma máquina de stack para a execução de programas. Execução do factorial: passagem de argumentos pela stack, endereço de retorno. A tabela ASCII e o tratamento de carácteres em C. Conversão de formatos com as instruções printf e scanf.
2004-03-08
Operações e operadores relacionais em C. Definição de funções em C: codificação do maior de dois números. Operadores aritméticos. Introdução às expressões condicionais e codificação de alguns exemplos: potências, conversão entre maiúsculas e minúsculas.
2004-03-11
Tipos de dados nativos: int, long, float, double, char. Conversão entre tipos de dados. Pequena introdução aos arrays: armazenamento em memória, declaração, exercícios com vectores de inteiros.
2004-03-15
O modelo de dados Stack: exemplos, aplicações, implementação com arrays. As funções: push, pop, empty, top, init.
2004-03-18
Manipulação de vectores: declaração, inicialização, passagem de vectores como argumentos para funções, armazenamento em memória, indexação.
2004-03-22
Arrays com mais de uma dimensão: declaração, inicialização e manipulação. Resolução de alguns exercícios com matrizes: transposta, soma da diagonal, soma duma coluna, soma duma linha. Declaração e manipulação de strings.
2004-03-25
Introdução à procura em estruturas de dados: algoritmos de busca em arrays - busca linear.
2004-03-29
Ordenação de arrays: o algoritmo das trocas directas - bubblesort. Exemplificação da inserção ordenada em arrays.
2004-04-01
Introdução ao conceito de lista ligada. Os conceitos de ordem física e ordem lógica e o problema de manter várias ordens lógicas sobre a mesma ordem física.
2004-04-05
Implementação de listas ligadas sobre estruturas estáticas: inicialização, gestão das posições livres, inserção e actualização de informação.
2004-04-15
Estruturas variantes: armazenamento de expressões aritméticas. Definição de tipos com estruturas variantes. Exemplificação de uma implementação de listas ligadas sobre arrays. Introdução ao desenvolvimento modular de programas.
2004-04-19
Não foi leccionada para permitir a alunos e docentes a participação nas JOIN2004.

2004-05-10
Enterro da Gata.
2004-05-13
Enterro da Gata.
2004-05-20
Resolução do problema: "A Central de Encomendas da Telepizza"; definição das estruturas de dados; operações de inserção e de listagem.
2004-05-24
Listas ligadas duplamente ligadas: como inserir ordenadamente. Introdução às árvores binárias de procura.
2004-05-27
Algoritmos sobre árvores binárias de procura: inserção ordenada, travessias (inorder, posorder, preorder), cáulculos com acumulação e remoção.
2004-05-31
Implementação de "demolidores" de estruturas de dados: o problema da recolha de lixo.
2004-06-03
Fecho da disciplina. Conversa com os alunos sobre o programa leccionado, os objectivos que se pretenderam atingir e o que efectivamente aconteceu ao longo do semestre.

Aulas Práticas

Prof. José Carlos Ramalho

2004-03-02
Resolução da ficha prática 1.
2004-03-09
Resolução da ficha prática 2.
2004-03-16
Resolução da ficha prática 3.
2004-03-23
Resolução da ficha prática 4.
2004-03-30
Resolução da ficha prática 5.
2004-04-06
Resolução da ficha prática 6.
2004-04-20
JOIN2004.
2004-04-27
Avaliação do segundo trabalho prático.
2004-05-04
Resolução da ficha prática 7.
2004-05-11
Resolução da ficha prática 8.
2004-05-18
Resolução da ficha prática 9.
2004-05-25
Resolução da ficha prática 10.
2004-05-01
Avaliação do terceiro trabalho prático.

Prof. Pedro Rangel Henriques

Clique aqui.

TrabalhosPraticos 12 Feb 2007 - 19:53 - r19 JoseBacelarAlmeida

Trabalhos Práticos

TrabalhosPraticosRegulamento 12 Feb 2007 - 19:53 - r3 JoseBacelarAlmeida

Regulamento para a Elaboração e Entrega dos Trabalhos Práticos

  1. Os trabalhos práticos deverão ser realizados em equipes de 3 elementos. Não serão aceites equipes com número de elementos inferior ou superior a 3.
  2. Na defesa do trabalho deverão estar presentes todos os elementos da equipe. A ausência durante a entrega e defesa do trabalho corresponde à nota 0. Situações devidamente justificadas poderão levar a uma posterior defesa do trabalho mas, individual.
  3. Caso sejam detectadas situações fraudulentas, as equipes envolvidas (copiantes e copiados) terão a matrícula à disciplina anulada e FRAUDE como nota a ser lançada nas pautas que serão afixadas.
  4. O Trabalho corresponderá a um problema que depois de devidamente analisado deverá ter a sua solução implementada em C.
  5. A plataforma que será usada para testar o trabalho será a imagem Linux disponível nas máquinas da sala aberta do Departamento.
  6. Será da inteira responsabilidade da equipe que apresenta o trabalho, o garantir que o mesmo está em condições de ser apresentado, antes da entrega. Durante a entrega não serão admitidos erros de compilação nem que a execução do trabalho "termine abruptamente sem explicações" antes do fim esperado.
  7. A equipe, durante a entrega, deverá fazer-se acompanhar por um relatório, impresso em papel, do trabalho que está a apresentar. Esse relatório deverá ser criado em LaTeX? de acordo com um formato que será brevemente disponibilizado.
  8. As entregas serão feitas por marcação prévia: na semana anterior à data de finalização do trabalho, serão colocadas, na Secretaria do Departamento, as folhas de marcação.
  9. As folhas de marcação abarcarão vários dias e várias horas, divididos em slots de 20 minutos. É da responsabilidade da equipe a marcação de uma slot que não colida com aulas de outras disciplinas.
  10. Este ano, irá vigorar a Lei do Buraco para as marcações: se no fim da semana em que decorreram as marcações houver algum slot livre, não será aceite mais nenhuma marcação para além daquelas que estejam registadas nas folhas.
  11. A equipe deverá comparecer 15 minutos antes da hora marcada na sala onde se efectuará a entrega.
  12. A falta a uma marcação implica nota 0 no trabalho em questão.
  13. Os trabalhos práticos serão avaliados por patamares:
    • 0 - não fizeram
    • 4-8 - não compilou, rebentou durante a execução, ...
    • 10 - cumpre os mínimos no limite (há coisas que não estão bem)
    • 13 - cumpre bem os mínimos
    • 16 - cumpre bem os requisitos propostos
    • 19 - excede a proposta
  14. Os patamares enunciados no ponto anterior são referências. O docente poderá decidir atribuir valores intermédios nalguns casos.

-- JoseCarlosRamalho - 26 Feb 2004

TrabalhosPraticosSubmissao 16 Mar 2004 - 19:54 - r3 JoseCarlosRamalho

Regras para a submissão dos Trabalhos Práticos

Este ano, todos os trabalhos terão de ser enviados electronicamente através do site: http://labdotnet.di.uminho.pt/submitPP2/

Como é feita a entrega?

Acedem ao site e registam o vosso grupo: escolhem Registar e vão introduzir um username para o grupo e a password; depois fazem login com esse nome e password; introduzem um nome para o grupo (pode ser o que quiserem, usem a imaginação), um número, e um a um os elementos do grupo; no fim selecionam actualizar; por fim, para submeter o trabalho clicam no link em cima que diz "Submeter Trabalho", seleccionam o ficheiro que contem o trabalho no vosso disco ou disquete e fazem o "Submit".

Se um dia se esquecerem da password dirijam-se a nós. Não tentem registar-se mais do que uma vez.

O ficheiro do trabalho deverá estar em formato ZIP e deverá conter:

  1. o ficheiro TeX? do relatório, exemplo: trab1.tex
  2. o ficheiro C do problema que resolveram, exemplo: 21fosforos.c
  3. se resolveram mais de um problema, os outros ficheiros C, um por problema.

Se tiverem problemas a criar o ficheiro ZIP qualquer docente da disciplina vos poderá ajudar ou até os técnicos do primeiro piso (o Jaime, o João ou a Carla).

TrabalhosPraticosTP1 12 Feb 2007 - 19:53 - r4 JoseBacelarAlmeida

Trabalho Prático Nº1

Objectivos e Organização

Este trabalho prático tem como principais objectivos:

  • familiarização com o computador em ambiente linux, e com algumas ferramentas de apoio à programação, tais como um editor vi/emacs;
  • iniciação à codificação, na linguagem imperativa C, das estruturas de dados e dos algoritmos concebidos e à execução e teste e dos programas escritos;
  • introdução à documentação dos projectos de programação realizados usando o processador LaTeX.

Para o efeito, esta folha contém seis enunciados, dos quais deverá resolver dois (poderá resolver mais mas só dois serão avaliados).

O relatório a elaborar, deve ser claro e sucinto e, além do respectivo enunciado e da descrição do problema, deverá conter exemplos de utilização e o código do programa.

Como foi dito, o relatório terá de ser escrito em LaTeX sugerindo-se que adoptem o esqueleto proposto que pode ser descarregado a partir da página principal dos trabalhos práticos.


Enunciados

O Adivinho

Escreva um programa em C que adivinhe um número (a chave) entre 1 e 100 escolhido pelo utilizador.

Em cada tentativa, programa palpita um número e o utilizador indica se acertou, ou então se é maior ou menor que a chave.

O jogo prossegue até o computador acertar, ou até se atingir um número N (dado) de tentativas.


O Adivinho Sofisticado

Escreva um programa em C que escolha (use o gerador de números aleatórios da linguagem C, rand()) um número (a chave) entre 1 e 100 que terá de ser adivinhado pelo utilizador.

Em cada tentativa, o utilizador introduz o número palpitado e o computador indica se acertou, ou então se é maior ou menor que a chave.

O jogo prossegue até o utilizador acertar, ou até atingir um número N (dado) de tentativas.


O Sabichão Matemático

Escreva um programa em C que escolha (use o gerador de números aleatórios da linguagem C, rand()) dois números (os operandos) entre 0 e 10 e, depois de os mostrar ao utilizador, pergunte o valor do produto.

Ao fim de N (dado) de tentativas, o computador indica o número de vezes que o utilizador levou para acertar.

Se quiser tornar o seu programa mais interessante, gere também aleatoriamente a operação (adição, multiplicação, subtracção ou divisão) que o utilizador deve fazer.


Dados da Sorte

Escreva um programa em C que simule o lançamento de 2 dados (use o gerador de números aleatórios da linguagem C, rand()) e indique ao fim de quantas jogadas é que ambas as faces sorteadas são iguais (ostentam o mesmo valor).


Dados da Sorte 2

Escreva um programa em C que simule o lançamento de 2 dados (use o gerador de números aleatórios da linguagem C, rand()) e indique ao fim de quantas jogadas é que a soma do valor sorteado em cada dado é um número par.


21 fósforos

Escreva um programa em C que implemente o jogo dos fósforos: no início há 21 fósforos sobre a mesa; em cada jogada, cada jogador deve retirar entre 1 e 4 fósforos, perdendo aquele que retirar o último.

A estratégia ganhadora é o segundo jogador retirar sempre a diferença para 5 do número retirado pelo primeiro jogador.

O seu programa deve dar a escolher ao utilizador qual dos dois começa a jogar e, caso o computador seja o segundo a jogar deverá ganhar sempre, se fôr o primeiro deverá ganhar se o utilizador cometer um erro de estratégia.


-- JoseCarlosRamalho - 27 Feb 2004

TrabalhosPraticosTP2 17 Mar 2004 - 10:03 - r4 JoseCarlosRamalho

Trabalho Prático II

Objectivos e Organização

Este trabalho prático tem como principais objectivos:

  • familiarização com tipos de dados estruturados;
  • utilização de estruturas de controle em situações mais elaboradas;
  • incrementar os cuidados na validação dos dados introduzidos pelo utilizador.

Dos vários enunciados apresentados deverá escolher apenas um que deverá resolver e defender. Se tiver tempo, invista na qualidade melhorando e acrescentando funcionalidades extra à sua aplicação (use a imaginação).

O relatório a elaborar, deve ser claro e sucinto e, além do respectivo enunciado e da descrição do problema, deverá conter exemplos de utilização e o código do programa.

Como foi dito, o relatório terá de ser escrito em LaTeX? sugerindo-se que adoptem o esqueleto proposto que pode ser descarregado a partir da página principal dos trabalhos práticos.


Enunciados

Minesweeper

Implemente o conhecido jogo minesweeper.

Dado um tabuleiro m * n e um conjunto de p bombas (que o programa distribuirá aleatoriamente no tabuleiro), o objectivo do jogador é acertar em todas as casas do tabuleiro sem acertar nas bombas. As jogadas são realizadas da seguinte forma:

  1. o jogador indica uma casa do tabuleiro;
  2. se acertou numa bomba, perdeu!
  3. se existe alguma bomba na vizinhança dessa casa (portanto, nas 8 casas circundantes), o programa deverá mostrar (nessa casa) o número de bombas que existem à sua volta;
  4. se não existe nenhuma bomba na vizinhança, o programa deve realizar jogadas automaticamente para cada uma das 8 casas vizinhas, prosseguindo assim até já não haver mais casas nestas condições.

Joga da Forca

Implemente o jogo da forca. Nesta implementação, o programa deve pedir inicialmente a frase mistério com que vai jogar. Depois, mostra-a na forma de um mapa com a posição das letras em relação aos espaços.

Em cada uma das 6 tentativas (este número pode ser variável), o jogador vai fornecer uma letra que, caso exista na frase mistério, será substituída no mapa. No caso de não existir, deve ser apresentada, em todas as posteriores jogadas, numa zona de letras usadas em vão.

Como resultado final, o computador deve mostar sempre a frase mistério indicando se o Jogador consegui descobrir todas as letras, ou se perdeu por ter esgotado as tentativas.

Opcionalmente, poderá tentar retirar a palavra (ou frase) aleatóriamente de um ficheiro. Uma vez que este trabalho terá um prazo mais apertado do que o que seria necessário para apresentar o funcionamento com ficheiros, está por sua conta para investigar os comandos fopen, fgets, fclose e relacionados.

Joga dos Provérbios

Implemente o jogo dos provérbios (é uma variante do jogo da forca descrito em cima). Nesta implementação, o programa deve pedir inicialmente a provérbio mistério com que vai jogar. Depois, mostra-o na forma de um mapa com a posição das letras em relação aos espaços.

No início do jogo, o jogador dispõe de um determinado saldo. Em cada jogada, o jogador vai comprar uma letra ou tentar adivinhar o provérbio. No caso da letra, se esta existir no provérbio mistério, será substituída no mapa e o saldo do jogador decrementado, se não existir, deve ser apresentada, em todas as posteriores jogadas, numa zona de letras usadas em vão. No caso do jogador acertar no provérbio, o seu saldo será incrementado pelo valor das letras ainda não compradas e presentes no provérbio. Se falhar ao adivinhar, o seu saldo será decrementado pelo valor correspondente ao das letras ainda em jogo.

Como resultado final, o computador deve mostar sempre o provérbio mistério indicando se o Jogador conseguiu descobrir todas as letras, ou se perdeu por ter esgotado as tentativas.

O jogo termina quando o saldo do jogador se tornar negativo ou quando este decidir abandonar o jogo.

Opcionalmente, poderá tentar retirar o provérbio aleatóriamente de um ficheiro. Uma vez que este trabalho terá um prazo mais apertado do que o que seria necessário para apresentar o funcionamento com ficheiros, está por sua conta para investigar os comandos fopen, fgets, fclose e relacionados.

TrabalhosPraticosTP3 02 May 2004 - 11:00 - r2 JoseCarlosRamalho

Trabalho Prático III

TPs: Gestor Bibliográfico; Agência Matrimonial.

Objectivos e Organização

Este trabalho prático tem como principais objectivos:

  • familiarização com tipos de dados dinâmicos;
  • armazenamento de informação em memória secundária;
  • incrementar os cuidados na validação dos dados introduzidos pelo utilizador;
  • introduzir o aluno ao desenvolvimento de sistemas de informação.

Dos vários enunciados apresentados deverá escolher apenas um que deverá resolver e defender. Se tiver tempo, invista na qualidade melhorando e acrescentando funcionalidades extra à sua aplicação (use a imaginação).

O relatório a elaborar, deve ser claro e sucinto e, além do respectivo enunciado e da descrição do problema, deverá conter exemplos de utilização e o código do programa.

Como foi dito, o relatório terá de ser escrito em LaTeX? sugerindo-se que adoptem o esqueleto proposto que pode ser descarregado a partir da página principal dos trabalhos práticos.


Enunciados

Gestor Bibliográfico

Neste projecto, pretende-se que o aluno desenvolva uma plataforma de suporte a uma base de dados bibliográfica tipo BibTeX? , ou seja, o sistema de informação será composto por uma lista de registos. Um registo destes pode ser de um de vários tipos. Os vários tipos e a respectiva estrutura descrevem-se a seguir.

article
artigo publicado em revista; tem os seguintes campos obrigatórios: lista de autores, título, nome da revista e ano; e tem os seguintes campos opcionais: volume, número, páginas, mês e nota descritiva.
book
campos obrigatótios: lista de autores ou de editores, título, editora, ano; campos opcionais: volume ou número, série, edição, mês e nota descritiva.
inbook
capítulo de um livro; campos obrigatórios: lista de autores ou de editores, título, capítulo ou páginas, editora, ano; campos opcionais: volume ou número, série, edição, mês e nota descritiva.
inproceedings
artigo publicado nas actas de uma conferência; campos obrigatórios: lista de autores, título, título das actas, ano; campos opcionais: editor, volume ou número, série, páginas, edição, mês e nota descritiva.
masterthesis
tese de mestrado; campos obrigatórios: autor, título, instituição, ano; campos opcionais: mês e nota descritiva.
misc
Este tipo deverá ser usado para todas as entradas que não sejam classificáveis num dos outros tipos, por exemplo referências da Internet; campos obrigatórios: nenhum; campos opcionais: lista de autores, título, meio de publicação, mês, ano e nota descritiva.
phdthesis
tese de doutoramento; campos obrigatórios: autor, título, instituição, ano; campos opcionais: mês e nota descritiva.
proceedings
Actas de Conferência; campos obrigatórios: título e ano; campos opcionais: lista de editores, volume ou número, série, editora, nota descritiva, mês e organização.
techreport
Relatório Técnico; campos obrigatórios: lista de autores, título, instituição e ano; campos opcionais: número, mês e nota descritiva.

A aplicação a desenvolver deverá ter os seguintes requisitos:

  • No incício de uma sessão, o programa deverá carregar os registos bibliográficos de um ficheiro chamado "BIB.DAT".
  • No fim da sessão, os registos deverão ser gravados no mesmo ficheiro para que o estado da plicação seja preservado entre sessões.
  • A aplicação deverá disponibilizar as seguintes operações ao utilizador:
    1. Inserção de um registo.
    2. Consulta de um registo (por chave de citação)
    3. Remoção de um registo (por chave de citação), a aplicação deverá mostrar o registo e pedir uma confirmação ao utilizador antes do registo ser removido.
    4. Listagem (por ordem alfabética de título).
    5. Listagem (por ordem alfabética de autor), para cada autor apresenta a sua lista de publicações ordenadas alfabeticamente por título (esta operação é um extra).
    6. Listagem (por ordem alfabética de título em que estes estão agrupados por tipo).
    7. Gravar, em qualquer momento o utilizador poderá solicitar a gravação dos dados em memória para um determinado ficheiro (diferente do "BIB.DAT").
    8. Carregar, permite recuperar um estado anterior da aplicação (de um ficheiro qualquer fornecido pelo utilizador mas que obedeça à estrutura estabelecida para o repositório).
    9. Outras operações que a sua imaginação puder fornecer...

Sugere-se que comece por desenvolver a aplicação nestas etapas:

  1. Decidir quais as estruturas de dados que irão suportar a informação em memória central (listas ligadas, esquemas de ordenação ...).
  2. Definição dos tipos de dados
  3. Implementação das funções para manipulação das estruturas de dados
  4. Implementação das funções de IO (apresentação e interacção com o utilizador)

Divirta-se ...


Agência Matrimonial

Neste projecto, pretende-se que o aluno desenvolva uma aplicação para gerir uma agência matrimonial/encontros. A aplicação irá tentar usar uma função de semelhança parametrizada pelo utilizador para encontrar uma pessoa ou lista de pessoas compatíveis com um determinado perfil. Para isso, é necessário criar uma base de dados de indívíduos onde ficará registado o perfil de cada indivíduo. O sistema terá dois modos de funcionamento: um para o administrador e outro para o utilizador normal. Mais à frente será descrito em mais pormenor o comportamento de cada um.

Um indivíduo é registado na base de dados com os seguintes campos de informação:

Código
o sistema deverá atribuir automaticamente um código a cada indivíduo que se regista; este código serve para identificar univocamente o indivíduo noutras operações.
Nome
o indivíduo é registado com o seu nome verdadeiro, opcionalmente poderá adoptar um pseudónimo que será visualizado pelo utilizador em vez do seu nome.
Sexo
Masculino ou Feminino. Data de Nascimento: data em formato ANSI: aaaa-mm-dd (a validação é um extra). Lista de Contactos: morada, email, telefone, telemóvel, ... São todos opcionais tendo, no entanto, que ser preenchido pelo menos um (a lista não pode ser vazia).
Profissão
lista de actividades que desenvolve profissionalmente.
Habilitações
lista de cursos e graus que detem. Lista de Preferências/Hábitos: actividades desportivas, hábitos tabágicos, hábitos culturais (música, leitura, teatro, cinema, ...), hábitos noturnos (pub, disco, ...), hábitos televisivos (informação, filmes, telenovelas, concursos, ...).
Objectivos
Procura um Amigo, Encontro, Compromisso com vista a casamento, ...

No acto do registo, o utente deverá ter a possibilidade de indicar, para cada item de informação, se este é visível para todos os utilizadores ou apenas para o administrador.

A aplicação a desenvolver deverá disponibilizar duas interfaces: a do administrador e a do utente.

Na interface do administrador deverão estar disponíveis as seguintes operações:

  1. Inserção de um indivíduo - o administrador poderá inserir indivíduos, por exemplo, durante as consultas.
  2. Remoção de um indivíduo (por código) - só o administrador poderá fazer remoções; esta operação deverá mostrar o registo que irá ser apagado e solicitar a confirmação, só então procederá à remoção efectiva.
  3. Consulta dos dados relativos a um indivíduo (por código) - esta operação deverá mostrar a informação completa de um registo.
  4. Listagem por ordem alfabética de nome - esta operação deverá apresentar o código, o nome e respectivo pseudónimo (se existir) de todos os indivíduos.
  5. Listagem por ordem cronológica de nascimento - esta operação deverá apresentar o código, o nome e a idade respectiva de cada indivíduo.
  6. Procurar perfil compatível - esta operação recebe como argumento o código de um indivíduo e, baseada numa outra função que entra em linha de conta com pesos e desvios dos vários parâmetros, dá uma lista de indivíduos ordenada do mais compatível para o menos compatível.
  7. Procurar perfil - esta operação é semelhante à anterior só a função que determina a semelhança é definida pelo utilizador; é apresentada uma interface que permite definir domínios de valores e pesos para cada parâmetro.
  8. Gravar - esta operação grava em ficheiro, "AGENCIA.DAT", o estado actual da Base de Dados.
  9. Carregar - esta operação permite num determinado momento carregar uma Base de Dados previamente gravado em ficheiro; antes de carregar a nova informação o utilizador deverá ser interrogado sobre se quer limpar a informação que existe em memória ou se quer fazer o "merge" da informação (esta funcionalidade é um extra).

Na interface do utilizador normal estão disponíveis as mesmas operações, à excepção da remoção, só que apenas serão mostrados os dados marcados como não confidenciais.

Se o utilizador da aplicação, administrador ou utente, nada indicar, a aplicação deverá sempre carregar a informação de "AGENCIA.DAT" no início e gravar a informação em "AGENCIA.DAT" antes de terminar.

Não tente fazer nenhum destes enunciados de uma só vez, faça-o incrementalmente e comece por definir as estruturas de dados e a operação de inserção.

Divirta-se

WebChanges 16 Aug 2001 - 19:58 - NEW PeterThoeny?

50 Recent Changes in TWiki Web retrieved at 17:38 (GMT)

WebSearchAdvanced 17 May 2007 - 14:51 - NEW TWikiGuest
WebHome 12 Feb 2007 - 19:53 - r18 JoseBacelarAlmeida
Paradigmas de Programação II 1ºano da LMCC e LESI 2004/2005 Equipe Docente: José João Almeida João Alexandre Saraiva Novidades ...
TrabalhosPraticosTP1 12 Feb 2007 - 19:53 - r4 JoseBacelarAlmeida
Trabalho Prático Nº1 Objectivos e Organização Este trabalho prático tem como principais objectivos : familiarização com o computador em ambiente linux , e ...
TrabalhosPraticosRegulamento 12 Feb 2007 - 19:53 - r3 JoseBacelarAlmeida
Regulamento para a Elaboração e Entrega dos Trabalhos Práticos 1 Os trabalhos práticos deverão ser realizados em equipes de 3 elementos. Não serão aceites equipes ...
Resultados 12 Feb 2007 - 19:53 - r8 JoseBacelarAlmeida
Resultados de Exames, Correcções e TPS 2004/2005 Notas práticas: Notas Finais (1ª Época): http://natura.di.uminho.pt/~jj/Education.PP2 05/notaJulho.pdf PDF 2003 ...
FichasPraticasFicha1 12 Feb 2007 - 19:53 - r3 JoseBacelarAlmeida
Ficha Nº1 Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a linguagem algorítmica que irá ser usada para especificar os algoritmos ...
ProgramaDetalhado 12 Feb 2007 - 19:53 - r5 JoseBacelarAlmeida
Programa da Disciplina: Paradigmas de Programa o II Licenciatura em Matem tica e Ci ncias da Computa o 1 ano Iacute;ndice Remissivo 1.Introdu o Programa ...
NovasPP2 12 Feb 2007 - 19:53 - r45 JoseBacelarAlmeida
Notas finais, após o exame de recurso Notas finais http://natura.di.uminho.pt/~jj/Education.PP2 05/notaJulho.pdf PDF (Pequenas correcções nas ...
RepositorioProblemas 12 Feb 2007 - 19:53 - r4 JoseBacelarAlmeida
Repositório Anárquico de Enunciados Cálculo da Tabuada Codifica um programa que receba um inteiro positivo, e imprima a sua tabuada (da multiplicação), de 1 a 10 ...
TrabalhosPraticos 12 Feb 2007 - 19:53 - r19 JoseBacelarAlmeida
Trabalhos Práticos Regulamento. Relatório: Sugere se LaTeX mini manual html de LaTeX fazer download do esqueleto ...
FichasPraticas 12 Feb 2007 - 19:53 - r18 JoseBacelarAlmeida
Fichas para as aulas práticas (2003/2004) ficha 1 (Estruturas de controlo em C) Resolução (prh) ficha 2 (Mais Estruturas de controlo em C) ...
AvaliacaoPP2 12 Feb 2007 - 19:53 - r4 JoseBacelarAlmeida
Avaliação A avaliação tem duas componentes, uma teória e uma prática. A componente teórica corresponderá à melhor nota obtida em exame e a componente prática à média ...
WebStatistics 28 Jan 2007 - 09:37 - r881 TWikiGuest
Statistics for Education/PP2 Web Month: Topic views: Topic saves: File uploads: Most popular topic views: Top contributors for topic save ...
FichasPraticasFicha3 24 Jan 2005 - 17:31 - r5 JoseCarlosRamalho
Ficha Nº3 Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização e manipulação de vectores e matrizes em C. As strings são casos ...
FichasPraticasFicha10 24 Jan 2005 - 17:31 - r3 JoseCarlosRamalho
Ficha Nº10: Estruturas de Dados Dinâmicas Árvores Binárias Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização de estruturas de ...
FichasPraticasFicha1Res 24 Jan 2005 - 17:31 - r3 JoseCarlosRamalho
Resolução da Ficha Prática 1 Exercício 1: O maior de 2 números #include int main( ) { int a, b; printf("Primeiro número: \n"); scanf("%d", a); printf("Segundo ...
FichasPraticasFicha2Res 24 Jan 2005 - 17:31 - r3 JoseCarlosRamalho
/ title: Ano Lectivo 2003/04 Resolução da Ficha nº2 ficheiro: pp203resf02.c autor: PRH versao de: 2004.03.15 .uso do printf() e do scanf() .uso de condicoes .uso ...
WebLeftBar 16 Aug 2004 - 09:01 - NEW ArthurClemens?
Web Web Home Changes Index Search Webs
SumariosPP2 15 Jun 2004 - 16:31 - r8 JoseCarlosRamalho
Sumários do ano lectivo 2003/2004 Aulas Teóricas (LMCC) 2004 02 26: Apresentação da disciplina: avaliação, ferramentas e plataformas a utilizar. Apresentação da ...
FichasPraticasFicha8Res 20 May 2004 - 18:20 - r2 JoseCarlosRamalho
Makefile prog.exe : prog.o lista.o gcc o prog.exe prog.o lista.o prog.o : prog.c lista.h gcc c prog.c lista.o : lista.h lista.c gcc c lista.c lista ...
FichasPraticasFicha9 18 May 2004 - 01:04 - NEW JoseCarlosRamalho
Ficha Nº9: Estruturas de Dados Dinâmicas Listas Ligadas Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização de estruturas de dados ...
FichasPraticasFicha8 04 May 2004 - 09:54 - NEW JoseCarlosRamalho
Ficha Nº8: Estruturas de Dados Dinâmicas Listas Ligadas Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização de estruturas de dados ...
TrabalhosPraticosTP3 02 May 2004 - 11:00 - r2 JoseCarlosRamalho
Trabalho Prático III TPs: Gestor Bibliográfico; Agência Matrimonial. Objectivos e Organização Este trabalho prático tem como principais objectivos: familiariza ...
FichasPraticasFicha7 21 Apr 2004 - 22:02 - NEW JoseCarlosRamalho
Ficha Nº7: Ficheiros e Estruturas Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização de ficheiros e definição de tipos estruturados ...
Didactica 21 Apr 2004 - 21:27 - r2 JoseCarlosRamalho
Links e Estruturas de Dados Exemplos 1 Desenvolvimento modular duma aplicação de gestão de alunos (listas ligadas sobre estruturas estáticas): ...
FichasPraticasFicha6 01 Apr 2004 - 15:22 - NEW JoseCarlosRamalho
Ficha Nº6: Arrays e Estruturas Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização de algoritmos mais avançados de busca e ordena ...
FichasPraticasFicha4 01 Apr 2004 - 14:56 - r3 JoseCarlosRamalho
Ficha Nº4 Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização e manipulação de matrizes em C. As strings são casos particulares ...
FichasPraticasFicha5 29 Mar 2004 - 20:00 - r2 JoseCarlosRamalho
Ficha Nº5: Busca e Ordenação de Arrays Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização dos algoritmos tradicionais de busca ...
TrabalhosPraticosTP2 17 Mar 2004 - 10:03 - r4 JoseCarlosRamalho
Trabalho Prático II Objectivos e Organização Este trabalho prático tem como principais objectivos: familiarização com tipos de dados estruturados; utiliza ...
TrabalhosPraticosSubmissao 16 Mar 2004 - 19:54 - r3 JoseCarlosRamalho
Regras para a submissão dos Trabalhos Práticos Este ano, todos os trabalhos terão de ser enviados electronicamente através do site: http://labdotnet.di.uminho.pt/submitPP2 ...
WebPreferences 12 Mar 2004 - 18:36 - r6 JoseCarlosRamalho
TWiki.Education/PP2 Web Preferences The following settings are web preferences of the TWiki.Education/PP2 web. These preferences overwrite the site level preferences ...
WebNotify 10 Mar 2004 - 14:45 - r3 AlcinoCunha
This is a subscription service to be automatically notified by e mail when topics change in this Education/PP2 web. This is a convenient service, so you do not have ...
MenuTopics 09 Mar 2004 - 23:22 - r2 JoseCarlosRamalho
Programa Avaliação Sumários Trabalhos Práticos Fichas das aulas práticas Repositório anárquico de enunciados
FichasPraticasFicha2 09 Mar 2004 - 22:54 - r5 JoseCarlosRamalho
Ficha Nº2 Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a linguagem algorítmica que irá ser usada para especificar os algoritmos ...
ParadigmasProgramacaoIIPrograma 04 Mar 2004 - 15:56 - NEW JoseCarlosRamalho
JoseCarlosRamalho 04 Mar 2004
WebRss 30 Jan 2003 - 08:15 - NEW PeterThoeny?
TWiki's Education/PP2 web /view/Education/PP2 The Education/PP2 web of TWiki. TWiki is a Web Based Collaboration Platform for the Corporate World.
WebIndex 24 Nov 2001 - 11:41 - r2 PeterThoeny?
See also the faster WebTopicList
WebTopicList 24 Nov 2001 - 11:40 - NEW PeterThoeny?
See also the verbose WebIndex.
WebChanges 16 Aug 2001 - 19:58 - NEW PeterThoeny?
WebSearch 08 Aug 2001 - 05:26 - NEW PeterThoeny?
Found 40 topics.

See also: rss-small RSS feed, recent changes with 50, 100, 200, 500, 1000 topics, all changes

WebHome 12 Feb 2007 - 19:53 - r18 JoseBacelarAlmeida

um-logo.gif

Paradigmas de Programação II
1ºano da LMCC e LESI 2004/2005
Equipe Docente:
José João Almeida
João Alexandre Saraiva

largo_paco_sec_XVI.jpg


Novidades

  • Notas finais, após o exame de recurso --> PDF
  • Notas finais --> PDF
  • (Pequenas correcções nas) Notas práticas --> PDF
  • Apresentação do tp4 nos dias 6 e 7 de Junho (folha de inscrição no DI / D.Rosa) Obrigatório trazer versão em papel do relatório.
  • Saiu o enunciado do 4º Trabalho Prático (data de entrega 5 de Junho)
  • Devido a problemas na form de submissão -- Nova data de entrega do TP3 --> 5 de Maio
  • Criado um mini repositório de Exercícios de Aulas. Aceitam-se contribuições
  • Saiu o enunciado do 3º Trabalho Prático (data de entrega 3 de Maio)
  • Foi activada a form de submissão do tp2. P.F. Avisem-me de anomalias encontradas!
  • Saiu o enunciado do 2º Trabalho Prático (data de entrega 3 de Abril, por submissão electrónica)
  • Devido ao atraso de entrada ao serviço do dispositivo de submissão, as entregas electrónicas podem ser realizadas até ao dia 14 de Março.
  • Não é permitido uso de "system"
  • Os trabalhos submetidos são compilados com "cc -Wall"
  • Foi activada a form de submissão. Este sistema é altamente experimental -- avisem-me de anomalias encontradas!
  • Se por algum motivo tiverem problemas de Name Server tentem aceder à form de submissão via esta form alternativa...
  • Saiu o enunciado do 1º Trabalho Prático (data de entrega 13 de Março, por submissão electrónica)

WebIndex 24 Nov 2001 - 11:41 - r2 PeterThoeny?
Education/PP2 Web Changed Changed by
AvaliacaoPP2 12 Feb 2007 - 19:53 - r4 JoseBacelarAlmeida
Avaliação A avaliação tem duas componentes, uma teória e uma prática. A componente teórica corresponderá à melhor nota obtida em exame e a componente prática à média ...
Didactica 21 Apr 2004 - 21:27 - r2 JoseCarlosRamalho
Links e Estruturas de Dados Exemplos 1 Desenvolvimento modular duma aplicação de gestão de alunos (listas ligadas sobre estruturas estáticas): ...
FichasPraticas 12 Feb 2007 - 19:53 - r18 JoseBacelarAlmeida
Fichas para as aulas práticas (2003/2004) ficha 1 (Estruturas de controlo em C) Resolução (prh) ficha 2 (Mais Estruturas de controlo em C) ...
FichasPraticasFicha1 12 Feb 2007 - 19:53 - r3 JoseBacelarAlmeida
Ficha Nº1 Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a linguagem algorítmica que irá ser usada para especificar os algoritmos ...
FichasPraticasFicha10 24 Jan 2005 - 17:31 - r3 JoseCarlosRamalho
Ficha Nº10: Estruturas de Dados Dinâmicas Árvores Binárias Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização de estruturas de ...
FichasPraticasFicha1Res 24 Jan 2005 - 17:31 - r3 JoseCarlosRamalho
Resolução da Ficha Prática 1 Exercício 1: O maior de 2 números #include int main( ) { int a, b; printf("Primeiro número: \n"); scanf("%d", a); printf("Segundo ...
FichasPraticasFicha2 09 Mar 2004 - 22:54 - r5 JoseCarlosRamalho
Ficha Nº2 Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a linguagem algorítmica que irá ser usada para especificar os algoritmos ...
FichasPraticasFicha2Res 24 Jan 2005 - 17:31 - r3 JoseCarlosRamalho
/ title: Ano Lectivo 2003/04 Resolução da Ficha nº2 ficheiro: pp203resf02.c autor: PRH versao de: 2004.03.15 .uso do printf() e do scanf() .uso de condicoes .uso ...
FichasPraticasFicha3 24 Jan 2005 - 17:31 - r5 JoseCarlosRamalho
Ficha Nº3 Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização e manipulação de vectores e matrizes em C. As strings são casos ...
FichasPraticasFicha4 01 Apr 2004 - 14:56 - r3 JoseCarlosRamalho
Ficha Nº4 Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização e manipulação de matrizes em C. As strings são casos particulares ...
FichasPraticasFicha5 29 Mar 2004 - 20:00 - r2 JoseCarlosRamalho
Ficha Nº5: Busca e Ordenação de Arrays Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização dos algoritmos tradicionais de busca ...
FichasPraticasFicha6 01 Apr 2004 - 15:22 - NEW JoseCarlosRamalho
Ficha Nº6: Arrays e Estruturas Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização de algoritmos mais avançados de busca e ordena ...
FichasPraticasFicha7 21 Apr 2004 - 22:02 - NEW JoseCarlosRamalho
Ficha Nº7: Ficheiros e Estruturas Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização de ficheiros e definição de tipos estruturados ...
FichasPraticasFicha8 04 May 2004 - 09:54 - NEW JoseCarlosRamalho
Ficha Nº8: Estruturas de Dados Dinâmicas Listas Ligadas Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização de estruturas de dados ...
FichasPraticasFicha8Res 20 May 2004 - 18:20 - r2 JoseCarlosRamalho
Makefile prog.exe : prog.o lista.o gcc o prog.exe prog.o lista.o prog.o : prog.c lista.h gcc c prog.c lista.o : lista.h lista.c gcc c lista.c lista ...
FichasPraticasFicha9 18 May 2004 - 01:04 - NEW JoseCarlosRamalho
Ficha Nº9: Estruturas de Dados Dinâmicas Listas Ligadas Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização de estruturas de dados ...
MenuTopics 09 Mar 2004 - 23:22 - r2 JoseCarlosRamalho
Programa Avaliação Sumários Trabalhos Práticos Fichas das aulas práticas Repositório anárquico de enunciados
NovasPP2 12 Feb 2007 - 19:53 - r45 JoseBacelarAlmeida
Notas finais, após o exame de recurso Notas finais http://natura.di.uminho.pt/~jj/Education.PP2 05/notaJulho.pdf PDF (Pequenas correcções nas ...
ParadigmasProgramacaoIIPrograma 04 Mar 2004 - 15:56 - NEW JoseCarlosRamalho
JoseCarlosRamalho 04 Mar 2004
ProgramaDetalhado 12 Feb 2007 - 19:53 - r5 JoseBacelarAlmeida
Programa da Disciplina: Paradigmas de Programa o II Licenciatura em Matem tica e Ci ncias da Computa o 1 ano Iacute;ndice Remissivo 1.Introdu o Programa ...
RepositorioProblemas 12 Feb 2007 - 19:53 - r4 JoseBacelarAlmeida
Repositório Anárquico de Enunciados Cálculo da Tabuada Codifica um programa que receba um inteiro positivo, e imprima a sua tabuada (da multiplicação), de 1 a 10 ...
Resultados 12 Feb 2007 - 19:53 - r8 JoseBacelarAlmeida
Resultados de Exames, Correcções e TPS 2004/2005 Notas práticas: Notas Finais (1ª Época): http://natura.di.uminho.pt/~jj/Education.PP2 05/notaJulho.pdf PDF 2003 ...
SumariosPP2 15 Jun 2004 - 16:31 - r8 JoseCarlosRamalho
Sumários do ano lectivo 2003/2004 Aulas Teóricas (LMCC) 2004 02 26: Apresentação da disciplina: avaliação, ferramentas e plataformas a utilizar. Apresentação da ...
TrabalhosPraticos 12 Feb 2007 - 19:53 - r19 JoseBacelarAlmeida
Trabalhos Práticos Regulamento. Relatório: Sugere se LaTeX mini manual html de LaTeX fazer download do esqueleto ...
TrabalhosPraticosRegulamento 12 Feb 2007 - 19:53 - r3 JoseBacelarAlmeida
Regulamento para a Elaboração e Entrega dos Trabalhos Práticos 1 Os trabalhos práticos deverão ser realizados em equipes de 3 elementos. Não serão aceites equipes ...
TrabalhosPraticosSubmissao 16 Mar 2004 - 19:54 - r3 JoseCarlosRamalho
Regras para a submissão dos Trabalhos Práticos Este ano, todos os trabalhos terão de ser enviados electronicamente através do site: http://labdotnet.di.uminho.pt/submitPP2 ...
TrabalhosPraticosTP1 12 Feb 2007 - 19:53 - r4 JoseBacelarAlmeida
Trabalho Prático Nº1 Objectivos e Organização Este trabalho prático tem como principais objectivos : familiarização com o computador em ambiente linux , e ...
TrabalhosPraticosTP2 17 Mar 2004 - 10:03 - r4 JoseCarlosRamalho
Trabalho Prático II Objectivos e Organização Este trabalho prático tem como principais objectivos: familiarização com tipos de dados estruturados; utiliza ...
TrabalhosPraticosTP3 02 May 2004 - 11:00 - r2 JoseCarlosRamalho
Trabalho Prático III TPs: Gestor Bibliográfico; Agência Matrimonial. Objectivos e Organização Este trabalho prático tem como principais objectivos: familiariza ...
WebChanges 16 Aug 2001 - 19:58 - NEW PeterThoeny?
WebHome 12 Feb 2007 - 19:53 - r18 JoseBacelarAlmeida
Paradigmas de Programação II 1ºano da LMCC e LESI 2004/2005 Equipe Docente: José João Almeida João Alexandre Saraiva Novidades ...
WebIndex 24 Nov 2001 - 11:41 - r2 PeterThoeny?
See also the faster WebTopicList
WebLeftBar 16 Aug 2004 - 09:01 - NEW ArthurClemens?
Web Web Home Changes Index Search Webs
WebNotify 10 Mar 2004 - 14:45 - r3 AlcinoCunha
This is a subscription service to be automatically notified by e mail when topics change in this Education/PP2 web. This is a convenient service, so you do not have ...
WebPreferences 12 Mar 2004 - 18:36 - r6 JoseCarlosRamalho
TWiki.Education/PP2 Web Preferences The following settings are web preferences of the TWiki.Education/PP2 web. These preferences overwrite the site level preferences ...
WebRss 30 Jan 2003 - 08:15 - NEW PeterThoeny?
TWiki's Education/PP2 web /view/Education/PP2 The Education/PP2 web of TWiki. TWiki is a Web Based Collaboration Platform for the Corporate World.
WebSearch 08 Aug 2001 - 05:26 - NEW PeterThoeny?
WebSearchAdvanced 17 May 2007 - 14:51 - NEW TWikiGuest
WebStatistics 28 Jan 2007 - 09:37 - r881 TWikiGuest
Statistics for Education/PP2 Web Month: Topic views: Topic saves: File uploads: Most popular topic views: Top contributors for topic save ...
WebTopicList 24 Nov 2001 - 11:40 - NEW PeterThoeny?
See also the verbose WebIndex.
Found 40 topics.

See also the faster WebTopicList

WebLeftBar 16 Aug 2004 - 09:01 - NEW ArthurClemens?

WebNotify 10 Mar 2004 - 14:45 - r3 AlcinoCunha
This is a subscription service to be automatically notified by e-mail when topics change in this Education/PP2 web. This is a convenient service, so you do not have to come back and check all the time if something has changed. To subscribe, please add a bullet with your WikiName in alphabetical order to this list:

Format: <space><space><space>, followed by:
* Main.yourWikiName (if you want that the e-mail address in your home page is used)
* Main.yourWikiName - yourEmailAddress (if you want to specify a different e-mail address)
* Main.anyTWikiGroup (if you want to notify all members of a particular TWikiGroup)

Related topics: TWikiUsers, TWikiRegistration

WebPreferences 12 Mar 2004 - 18:36 - r6 JoseCarlosRamalho

TWiki.Education/PP2 Web Preferences

The following settings are web preferences of the TWiki.Education/PP2 web. These preferences overwrite the site-level preferences in TWikiPreferences, and can be overwritten by user preferences (your personal topic, i.e. TWikiGuest in the TWiki.Main web)

Preferences:

    • Set WEBTITLE = Paradigmas da Programação II

  • List of topics of the TWiki.Education/PP2 web:

  • Web specific background color: (Pick a lighter one of the StandardColors)
    • Set WEBBGCOLOR = #33CCFF

  • List this web in the SiteMap:
    • If yes, set SITEMAPLIST to on, do not set NOSEARCHALL, and add the "what" and "use to..." description for the site map. Make sure to list only links that include the name of the web, e.g. Education/PP2.Topic links.
    • Set SITEMAPLIST = on
    • Set SITEMAPWHAT = Paradigmas da Programação 2
    • Set SITEMAPUSETO = ...collaborate on

  • Exclude web from a web="all" search: (Set to on for hidden webs)
    • Set NOSEARCHALL =

  • Default template for new topics and form(s) for this web:
    • WebTopicEditTemplate? : Default template for new topics in this web. (Site-level is used if topic does not exist)
    • TWiki.WebTopicEditTemplate: Site-level default template
    • TWikiForms: How to enable form(s)
    • Set WEBFORMS =

  • Users or groups who are not / are allowed to view / change / rename topics in the Education/PP2 web: (See TWikiAccessControl)
    • Set DENYWEBVIEW =
    • Set ALLOWWEBVIEW =
    • Set DENYWEBCHANGE =
    • Set ALLOWWEBCHANGE = StaffGroup
    • Set DENYWEBRENAME =
    • Set ALLOWWEBRENAME = StaffGroup

  • Web preferences that are not allowed to be overridden by user preferences:
    • Set FINALPREFERENCES = WEBTOPICLIST, DENYWEBVIEW, ALLOWWEBVIEW, DENYWEBCHANGE, ALLOWWEBCHANGE, DENYWEBRENAME, ALLOWWEBRENAME

Notes:

  • A preference is defined as:
    6 spaces * Set NAME = value
    Example:
    • Set WEBBGCOLOR = #33CCFF
  • Preferences are used as TWikiVariables by enclosing the name in percent signs. Example:
    • When you write variable %WEBBGCOLOR% , it gets expanded to #33CCFF .
  • The sequential order of the preference settings is significant. Define preferences that use other preferences first, i.e. set WEBCOPYRIGHT before WIKIWEBMASTER since %WEBCOPYRIGHT% uses the %WIKIWEBMASTER% variable.
  • You can introduce new preferences variables and use them in your topics and templates. There is no need to change the TWiki engine (Perl scripts).

Related Topics:

WebRss 30 Jan 2003 - 08:15 - NEW PeterThoeny?
TWiki's Education/PP2 web http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2 The Education/PP2 web of TWiki. TWiki is a Web-Based Collaboration Platform for the Corporate World. en-us Copyright 2020 by contributing authors TWiki Administrator [webmaster@di.uminho.pt] The contributing authors of TWiki TWiki DIUM.Education/PP2 http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2 /twiki/pub/Main/LocalLogos/um_eengP.jpg WebSearchAdvanced http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/WebSearchAdvanced (last changed by TWikiGuest) 2007-05-17T14:51:38Z guest WebHome http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/WebHome Paradigmas de Programação II 1ºano da LMCC e LESI 2004/2005 Equipe Docente: José João Almeida João Alexandre Saraiva Novidades ... (last changed by JoseBacelarAlmeida) 2007-02-12T19:53:24Z JoseBacelarAlmeida TrabalhosPraticosTP1 http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/TrabalhosPraticosTP1 Trabalho Prático Nº1 Objectivos e Organização Este trabalho prático tem como principais objectivos : familiarização com o computador em ambiente linux , e ... (last changed by JoseBacelarAlmeida) 2007-02-12T19:53:24Z JoseBacelarAlmeida TrabalhosPraticosRegulamento http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/TrabalhosPraticosRegulamento Regulamento para a Elaboração e Entrega dos Trabalhos Práticos 1 Os trabalhos práticos deverão ser realizados em equipes de 3 elementos. Não serão aceites equipes ... (last changed by JoseBacelarAlmeida) 2007-02-12T19:53:23Z JoseBacelarAlmeida TrabalhosPraticos http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/TrabalhosPraticos Trabalhos Práticos Regulamento. Relatório: Sugere se LaTeX mini manual html de LaTeX fazer download do esqueleto ... (last changed by JoseBacelarAlmeida) 2007-02-12T19:53:23Z JoseBacelarAlmeida Resultados http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/Resultados Resultados de Exames, Correcções e TPS 2004/2005 Notas práticas: Notas Finais (1ª Época): http://natura.di.uminho.pt/~jj/Education.PP2 05/notaJulho.pdf PDF 2003 ... (last changed by JoseBacelarAlmeida) 2007-02-12T19:53:23Z JoseBacelarAlmeida RepositorioProblemas http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/RepositorioProblemas Repositório Anárquico de Enunciados Cálculo da Tabuada Codifica um programa que receba um inteiro positivo, e imprima a sua tabuada (da multiplicação), de 1 a 10 ... (last changed by JoseBacelarAlmeida) 2007-02-12T19:53:23Z JoseBacelarAlmeida ProgramaDetalhado http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/ProgramaDetalhado Programa da Disciplina: Paradigmas de Programa o II Licenciatura em Matem tica e Ci ncias da Computa o 1 ano Iacute;ndice Remissivo 1.Introdu o Programa ... (last changed by JoseBacelarAlmeida) 2007-02-12T19:53:23Z JoseBacelarAlmeida NovasPP2 http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/NovasPP2 Notas finais, após o exame de recurso Notas finais http://natura.di.uminho.pt/~jj/Education.PP2 05/notaJulho.pdf PDF (Pequenas correcções nas ... (last changed by JoseBacelarAlmeida) 2007-02-12T19:53:23Z JoseBacelarAlmeida WebLeftBar http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/WebLeftBar Web Web Home Changes Index Search Webs (last changed by ArthurClemens) 2004-08-16T09:01:46Z ArthurClemens SumariosPP2 http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/SumariosPP2 Sumários do ano lectivo 2003/2004 Aulas Teóricas (LMCC) 2004 02 26: Apresentação da disciplina: avaliação, ferramentas e plataformas a utilizar. Apresentação da ... (last changed by JoseCarlosRamalho) 2004-06-15T16:31:00Z JoseCarlosRamalho FichasPraticasFicha8Res http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/FichasPraticasFicha8Res Makefile prog.exe : prog.o lista.o gcc o prog.exe prog.o lista.o prog.o : prog.c lista.h gcc c prog.c lista.o : lista.h lista.c gcc c lista.c lista ... (last changed by JoseCarlosRamalho) 2004-05-20T18:20:15Z JoseCarlosRamalho FichasPraticasFicha9 http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/FichasPraticasFicha9 Ficha Nº9: Estruturas de Dados Dinâmicas Listas Ligadas Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização de estruturas de dados ... (last changed by JoseCarlosRamalho) 2004-05-18T01:04:00Z JoseCarlosRamalho FichasPraticasFicha8 http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/FichasPraticasFicha8 Ficha Nº8: Estruturas de Dados Dinâmicas Listas Ligadas Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização de estruturas de dados ... (last changed by JoseCarlosRamalho) 2004-05-04T09:54:00Z JoseCarlosRamalho TrabalhosPraticosTP3 http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/TrabalhosPraticosTP3 Trabalho Prático III TPs: Gestor Bibliográfico; Agência Matrimonial. Objectivos e Organização Este trabalho prático tem como principais objectivos: familiariza ... (last changed by JoseCarlosRamalho) 2004-05-02T11:00:00Z JoseCarlosRamalho TrabalhosPraticosTP2 http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/TrabalhosPraticosTP2 Trabalho Prático II Objectivos e Organização Este trabalho prático tem como principais objectivos: familiarização com tipos de dados estruturados; utiliza ... (last changed by JoseCarlosRamalho) 2004-03-17T10:03:14Z JoseCarlosRamalho
WebSearch 08 Aug 2001 - 05:26 - NEW PeterThoeny?

Web Search

Search: \.*

Found 0 topics.

  Advanced search | Help
TIP: to search for all topics that contain "SOAP", "WSDL", a literal "web service", but not "shampoo", write: soap wsdl "web service" -shampoo
Search where:       
(otherwise search Education/PP2 Web only)

Other search options:
WebSearchAdvanced 17 May 2007 - 14:51 - NEW TWikiGuest

Advanced Search

Search: \.*

Education/PP2 Web Changed Changed by
AvaliacaoPP2 12 Feb 2007 - 19:53 - r4 JoseBacelarAlmeida

Avaliação

A avaliação tem duas componentes, uma teória e uma prática. A componente teórica corresponderá à melhor nota obtida em exame e a componente prática à média aritmética obtida nos trabalhos práticos.

Em ambas as partes a nota mínima obrigatória é 7,5 valores.

A nota final é dada pela fórmula que se apresenta a seguir.

Somatório( Teórico * 60% , Prático * 40% )

-- JoseCarlosRamalho - 23 Feb 2004

Didactica 21 Apr 2004 - 21:27 - r2 JoseCarlosRamalho

Links

Exemplos

  1. Desenvolvimento modular duma aplicação de gestão de alunos (listas ligadas sobre estruturas estáticas):
FichasPraticas 12 Feb 2007 - 19:53 - r18 JoseBacelarAlmeida

Fichas para as aulas práticas (2003/2004)

FichasPraticasFicha1 12 Feb 2007 - 19:53 - r3 JoseBacelarAlmeida

Ficha Nº1

Objectivos:

O objectivo principal desta ficha é familiarizar o aluno com a linguagem algorítmica que irá ser usada para especificar os algoritmos e com as estruturas de controlo da linguagem C.

Para atingir esse fim, o aluno irá desenvolver pequenos algoritmos e tentar codificá-los em C.

Exercícios:

Exercício Nº1: O Maior de 2 Números

Desenvolva o algoritmo, e posteriormente codifique-o em C, de um programa que lê dois inteiros e escreve o maior deles.

Exercício Nº2: O Maior de N Números

Desenvolva o algoritmo, e posteriormente codifique-o em C, de um programa que lê N inteiros e escreve o maior deles.

Exercício Nº3: Números Pares

Desenvolva o algoritmo, e posteriormente codifique-o em C, de um programa que lê um determinado número inteiro N e escreve os números pares até N.

Exercício Nº4: Potências

Desenvolva o algoritmo, e posteriormente codifique-o em C, de um programa que lê 2 números inteiros, a e b, e escreve o resultado de elevar a à potência de b (utilize estruturas cíclicas para calcular o valor da potência).

Exercício Nº5: Factorial

Desenvolva o algoritmo, e posteriormente codifique-o em C, de um programa que lê um inteiro positivo e escreve o valor do seu factorial.

Exercício Nº6: Tabela de Conversão de Temperaturas

Considere a seguinte fórmula:Fahreneit = 32 + (1.8 * Celsius)

Desenvolva o algoritmo, e posteriormente codifique-o em C, de um programa que calcula uma tabela de conversão entre graus Celsius e graus Fahreneit com Fahreneit a variar entre 0 e 300 (considere intervalos de 5 graus).

-- JoseCarlosRamalho - 25 Feb 2004

FichasPraticasFicha10 24 Jan 2005 - 17:31 - r3 JoseCarlosRamalho

Ficha Nº10: Estruturas de Dados Dinâmicas - Árvores Binárias

Objectivos:

O objectivo principal desta ficha é familiarizar o aluno com a utilização de estruturas de dados dinâmicas, nomeadamente, as árvores binárias.

Exercícios:

Exercício Nº 1: Árvores Binárias Ordenadas de Inteiros

Considere uma lista de inteiros (não se sabe o seu comprimento). Especifique então as seguintes funções e estruturas de dados:

  1. Defina os tipos necessários para suportar uma árvore binária ordenada (de procura) de inteiros.
  2. Especifique uma função para inserir um valor na árvore.
  3. Especifique uma função para listar os valores armazenados (codifique as três funções de listagem possíveis).
  4. Especifique uma função para procurar um valor na árvore (como resultado deverá devolver um apontador para o elemento ou NULL caso não o encontre).
  5. Especifique uma função para contar os elementos da árvore.
  6. Especifique uma função para calcular o maior elemento na árvore.
  7. Especifique um programa, usando as funções definidas, que cria uma lista com os múltiplos de 7 entre 0 e 100 e os lista por ordem decrescente e crescente.
  8. Especifique uma função que calcula o peso de uma árvore (a sua profundidade).
  9. Especifique uma função que dada uma árvore, a lista por níveis.

Exercício Nº 2: Gestão do Login dos Utilizadores de uma Aplicação

Para controlar o acesso a uma aplicação informática, pretende-se manter em memória o conjunto dos pares "Username-Password" de todos os Utilizadores autorizados. Usando uma Árvore Binária de Procura para armazenar essa informação e após definir os tipos de variáveis em C, necessários para suportar essa representação, implemente as seguintes operações na linguagem C:

  1. "valida": função booleana que diz se o par "username-password" corresponde a um utilizador válido.
  2. "daSenha": função que retorna a password de um dado username.
  3. "listaTodos": procedimento que faz uma listagem ordenada alfabeticamente de todos os pares "Username-Password" válidos.
  4. "insere": função que recebe um novo par "Username-Password" e a Árvore com o conjunto de utilizadores actuais e devolve uma nova Árvore com o novo par inserido na follha correcta.

Exercício Nº 3: Árvores Binárias para Expressões Aritméticas (+,-,*,/)

  1. Defina a estrutura de dados para uma árvore binária que irá armazenar expressões aritméticas, operadores nos nodos intermédios armazenados de acordo com a sua prioridade de cálculo e operandos (números reais) nas folhas.
  2. Especifique uma função que dada uma árvore deste tipo lista a expressão na forma: infixa, pré-fixa, pós-fixa.
  3. Especifique uma função que dada uma árvore deste tipo calcula o valor da expressão lá armazenada.

Exercício Nº 4: Dicionários

Pretende-se criar um dicionário que associe a cada palavra (termo chave), a sua classificação morfológica, origem, significado e sinónimos. O programa a desenvolver para manipulação do dicionário (suponha que o mesmo foi criado por uma outra aplicação), além de facultar uma consulta eficiente (dada uma palavra retorna toda a informação associada, ou produz uma mensagem de falha, caso não haja nenhuma chave igual à palavra dada), deve permitir listar globalmente toda a informação contida, ordenada alfabeticamente pelos termos-chave, e deve ser capaz de ler e salvar o dicionário em ficheiro binário.

  1. Defina a estrutura de dados para armazenar cada entrada (par "termo-chave,informação-associada").
  2. Implemente o dicionário num array ordenado de entradas.
  3. Implemente o dicionário numa lista ligada dinâmica e ordenada de entradas.
  4. Implemente o dicionário usando sub-lista ligadas dinâmica e ordenada de entradas cada lista correspondente a 1 das 26 letras do alfabeto, acessiveis através de um indíce guardado em Árvore Binária de Procura (em alternativa, armazene-o num array).
FichasPraticasFicha1Res 24 Jan 2005 - 17:31 - r3 JoseCarlosRamalho

Resolução da Ficha Prática 1

Exercício 1: O maior de 2 números

#include <stdio.h>

int main( ) {
  int a, b;
  printf("Primeiro número: \n");
  scanf("%d", &a);
  printf("Segundo número: \n";
  scanf("%d", &b);
  printf("O maior número é o %d\n", a>b?a:b);
  return 0;
}

Exercício 2: O maior de N números

#include <stdio.h>

/*----- programa principal -----*/  
int main( ) {
  int N=0, conta; 
  int num, max;

  printf("Indique quantos números vai introduzir: "); 
  while (N<=0) {
    scanf("%d",&N);
  }
  printf("Escreva o próximo número: ");
  scanf("%d",&num);
  
  max = N;
  for (conta=N-1; conta>0; conta--) { 
    printf("Escreva o próximo número: "); scanf("%d",&num);
    if (num > max) { 
       max = num;
    } 
  }
  printf("\nO Maior dos %d numeros introduzidos e: %d \n",N,max); 
   
  return 0;
}

Exercício 3: Números pares

#include <stdio.h>

/*----- programa principal -----*/  
int main( ) {
  int N=0; 
  int par;

  printf("Indique o limite superior para os números pares a gerar (imprimir): "); 
  scanf("%d",&N); 

  for (par=2; par<=N; par=par+2) { 
    printf("O próximo Numero Par e: %d \n",par);
  }
  printf("Ja nao ha mais Numeros Pares menores ou iguais a %d \n",N);
    
  return 0;
}

Exercício 3: Números pares (outra solução)

                                            
#include <stdio.h>

/*----- programa principal -----*/  
int main( ) {
  int N=0; 
  int par, conta;

  printf("Indique quantos números pares quer gerar (imprimir): "); 
  while (N <= 0) {
    scanf("%d",&N);
  }
  conta=0; 
  while (conta < N) { 
    conta++;
    par = 2*conta; 
    printf("O próximo Numero Par e: %d \n",par);
  }
  printf("Ja foram gerados os %d primeiros Numeros Pares \n",N);
    
  return 0;
}

Exercício 4: Potências (de base A e expoente B)

#include <stdio.h>

/*----- programa principal -----*/  
int main( ) {
  int A,B; 
  int pot;

  printf("Escreva a Base e o Expoente (inteiro e nao-negativo): "); 
  scanf("%d %d",&A,&B); 
  pot = 1;
  if (B >= 0) {
     while (B) /* equivalente a (B>0) */
     { 
       pot = pot*A; 
       B--;    /* ou seja, B = B-1 */
     }
     printf("A potencia %d elevado a %d e igual a %d \n",A,B,pot);

  } else {
     printf("\n O expoente tem de ser um Numero Inteiro Nao-Negativo \n");
  }
     
  return 0;
}         

Exercício 5: Factorial

#include <stdio.h>

/*----- programa principal -----*/  
int main( ) {
  int N=0; 
  int fact=1;

  printf("Indique o Numero cujo Factorial quer calcular (inteiro e positivo): "); 
  while (N<=0) {
    scanf("%d",&N);
  }
  
  while (N) { 
    fact = fact*N; 
    N--;
  }
  printf("O Factorial do numero dado e: %d \n",fact);
    
  return(0);
}

Exercício 5: Factorial: solução recursiva

#include <stdio.h>

/*----- programa principal -----*/  
int main( ) {
  int N=0; 

  printf("Indique o Numero cujo Factorial quer calcular (inteiro e positivo): "); 
  while (N<=0) {
    scanf("%d",&N);
  }
  
  printf("O Factorial do numero dado e: %d \n",factorial(N));
    
  return(0);
}

int factorial(int a) {
   if (a <= 1) return 1;
   else return a * factorial(a - 1);
}

Exercício 6: Conversão Celsius para Fahreneit

#include <stdio.h>

/*----- programa principal -----*/  
int main( ) {
  float Celsius; 
  int Fahr;

  for (Fahr=0; Fahr<=300; Fahr += 5) { 
    printf("%5d Fhareneit ==> %6.1f \n", Fahr, ((Fahr-32.0)/1.8));
    N--;
  }
    
  return 0;
}

-- JoseCarlosRamalho - 09 Mar 2004

FichasPraticasFicha2 09 Mar 2004 - 22:54 - r5 JoseCarlosRamalho

Ficha Nº2

Objectivos:

O objectivo principal desta ficha é familiarizar o aluno com a linguagem algorítmica que irá ser usada para especificar os algoritmos e com as estruturas de controlo da linguagem C.

Nesta ficha, introduz-se também o conceito de subrotina ou função em C como método para repartir um problema em problemas mais pequenos.

Para atingir esse fim, o aluno irá desenvolver pequenos algoritmos e tentar codificá-los em C.

Exercícios:

[Exercício1] [Exercício2] [Exercício3] [Exercício4] [Exercício5] [Exercício6]


Exercício Nº1: Divisores de um número

Desenvolva o algoritmo, e posteriormente codifique-o em C, de um programa que lê um inteiros e escreve no écran os seus divisores.


Exercício Nº2: Maior Divisor Comum

Desenvolva o algoritmo, e posteriormente codifique-o em C como uma função. A sua função deverá ter dois argumentos inteiros e produzir um resultado inteiro que é o maior divisor comum dos argumentos recebidos. Posteriormente codifique um programa principal (main()) que utiliza esta função para cálculo do maior divisor comum de dois números fornecidos pelo utilizador.

Ver Algorítmo de Euclides

Que pode ser resumido em:

mdc(m,n) -->
             m>=n : m%n==0 --> n
                    m%n!=0 --> mdc(n,m%n)

             m<n  : mdc(n,m)


Exercício Nº3: Menor Múltiplo Comum

Desenvolva o algoritmo, e posteriormente codifique-o em C como uma função. A sua função deverá ter dois argumentos inteiros e produzir um resultado inteiro que é o menor múltiplo comum dos argumentos recebidos. Posteriormente codifique um programa principal (main()) que utiliza esta função para cálculo do menor múltiplo comum de dois números fornecidos pelo utilizador.


Exercício Nº4: É Primo?

Desenvolva o algoritmo, e posteriormente codifique-o em C como uma função. A sua função deverá ter um argumento inteiros e produzir um resultado do tipo booleano (o docente irá desenvolver uma pequena biblioteca de booleanos: bool.h). O resultado será verdadeiro (TRUE) se o argumento passado fôr primo e falso (FALSE) caso contrário. Posteriormente codifique um programa principal (main()) que utiliza esta função para verificar quem é primo numa sequência de inteiros introduzidos pelo utilizador (terminada por 0).


Exercício Nº5: Tudo ao contrário!

Foste transferido para uma nova escola.

Nessa escola, a professora e matemática gostava muito de pôr os alunos a pensar e tentava que a mais simples tarefa fosse algo em que o raciocínio tivesse que intervir.

Uma das medidas que ela implementou foi a de utilizar os números inteiros invertidos. Por exemplo, o 12 seria 21 e o 1821 seria 1281.

Ora, os alunos locais já estão habituados a lidar com os inteiros daquela maneira e até fazem as operações de adição e subtracção com os inteiros naquela forma. No entanto, para ti, que acabaste de chegar à escola esta tarefa não é tão simples. Assim, resolveste criar um programa em computador que fizesse três coisas:

  1. dado um número calcula o seu inverso (o valor inteiro correcto)
  2. dados dois números na forma invertida calcula a sua soma e devolve o resultado na mesma forma invertida
  3. dados dois números na forma invertida calcula a sua subtracção e devolve o resultado na mesma forma invertida

Sugestão: especifica uma função para cada um dos pontos acima.


Exercício Nº6: Sequência de Fibonacci

Codifica um programa que gere os primeiros 20 números de Fibonacci. Os números de Fibonacci são definidos recursivamente da seguinte forma:

   fib(0) = 1
   fib(1) = 1
   fib(n) = fib(n-1) + fib(n-2)   para n>=2

-- JoseCarlosRamalho - 04 Mar 2004

FichasPraticasFicha2Res 24 Jan 2005 - 17:31 - r3 JoseCarlosRamalho
/**
title: Ano Lectivo 2003/04 -- Resolução da Ficha nº2 
ficheiro: pp203resf02.c autor: PRH versao de: 2004.03.15
.uso do printf() e do scanf()
.uso de condicoes
.uso de ciclos diversos
**/  

Divisores de um número (Ficha nº2 - Exercício 1)


/**
title: Divisores de um número (Ficha nº2 - Exercício 1)
**/  
#include <stdio.h>

/*----- programa principal -----*/  
int main( )
{int num=0, divisor;

  printf("Escreva o número cujos divisores quer calcular: "); 
  while (num<=0) { scanf("%d",&num); }
  
  printf("Lista dos Divisores de %d:\n",num);
  for (divisor=1; divisor<=num; divisor++)
    { 
      if ((num%divisor)==0) { printf("%d\n",divisor);  } 
    }
 
  return(0);
}

Divisores de um número -- 2ª versão, optimizada (Ficha nº2 - Exercício 1)

/**
title: Divisores de um número -- 2ª versão, optimizada (Ficha nº2 - Exercício 1)
**/  
#include <stdio.h>
#include <math.h>

/*----- programa principal -----*/  
int main( )
{int num=0, divisor, lim;

  printf("Escreva o número cujos divisores quer calcular: "); 
  while (num<=0) { scanf("%d",&num); }
  
  printf("Lista dos Divisores de %d:\n",num);
  lim = (int)sqrt((double)num);
  for (divisor=1; divisor<=lim; divisor++)
    { 
      if ((num%divisor)==0) { printf("um par de divisores é %d  e %d\n",divisor, num/divisor);  } 
    }
 
  return(0);
}

Menor Múltiplo Comum de dois números (Ficha nº2 - Exercício 3)

/**
title: Menor Múltiplo Comum de dois números (Ficha nº2 - Exercício 3)
**/  
#include <stdio.h>

/*----- programa principal -----*/  
int main( )
{int N,M,MMC; 
 int maior;

  printf("Indique os números cujo MMC quer calcular: "); 
  scanf("%d%d",&N,&M); 
  MMC = maior = (N>=M)? N: M;
  while (((MMC%N)!=0)||((MMC%M)!=0))
    { 
      MMC += maior;
    }
  printf("O Menor Multiplo Comum entre %d e %d é: %d \n",N,M,MMC);
    
  return(0);
}

Tudo ao contrário, ou "Números Invertidos" (Ficha nº1 - Exercício 5)

/**
title: Tudo ao contrário, ou "Números Invertidos"  (Ficha nº1 - Exercício 5)
**/  
#include <stdio.h>

/*----- programa principal -----*/  
int main( )
{int orig= -1; 
 int inverte;

  printf("Indique o Numero Original (>=0) que quer inverter: "); 
  while (orig<0) { scanf("%d",&orig); }
  inverte = 0;
  
  while (orig)
    { 
      proxdig = orig%10; 
      orig = orig/10;
      inverte = inverte*10 + proxdig;
    }
    
  printf("O numero invertido e: %d \n",inverte);
  return(0);
}

Os N primeiros Números de Fibonacci (Ficha nº2 - Exercício 6)

                                                      
/**
title: Os N primeiros Números de Fibonacci (Ficha nº2 - Exercício 6)
**/  
#include <stdio.h>
#define MAX 20

/*----- função de Fibonacci -----*/  
int fib( int n )
{int f;
  if ((n==0)||(n==1)) 
       { f = 1; }
  else { f = fib(n-1) + fib(n-2); }
  return(f);  
}
/*----- programa principal -----*/  
int main( )
{int N; 
 int res;

  printf("Os %d primeiros números de FIBONACCI são: \n",MAX); 
  for ( N=0; N<MAX; N++ )
    { 
      res = fib(N);
      printf("%6d \n",res);
    }
    
  return(0);
}
FichasPraticasFicha3 24 Jan 2005 - 17:31 - r5 JoseCarlosRamalho

Ficha Nº3

Objectivos:

O objectivo principal desta ficha é familiarizar o aluno com a utilização e manipulação de vectores e matrizes em C. As strings são casos particulares de arrays: uma string é um array em que os elementos são todos do tipo char. Assim, nesta ficha surgem também alguns exercícios envolvendo manipulação de strings.

Exercícios:

Média de 10 números; Capicua; Romano-Árabe; Cifra; Estatísticas;

Exercício Nº1: Média de 10 números inteiros

Especifique um programa e codifique-o em C que lê 10 números inteiros positivos e escreve:

  • a sua média e o valor máximo;
  • os numeros maiores que a média;
  • a quantidade de números menores que a média;

Exercício Nº2: Capicua

Especifique uma função que recebe uma string e verifica se a mesma é capicua (lida da esquerda para a direita, ou da direita para a esquerda, é a mesma palavra/frase).
Exemplos típicos: ala ou rapar.
Um caso curioso (e, claro, mais complexo) é a seguinte Capicua brasileira: Socorram-me subi no onibus em Marrocos.

Exercício Nº3: Conversão Romano-Árabe

Especifique uma função que recebe uma string contendo um número escrito em notação romana e que dá como resultado o respectivo valor inteiro (correspondente à notação arábica).

Exercício Nº4: Cifra por substituição arbitrária

Considere a cifra (palavra-chave) constituída pelas letras "SAPO" seguidas de um dígito n (entre 0 e 9). Para a cifragem (codificação) da mensagem efectuam-se os seguintes passos:

  1. reduzem-se espaços seguidos a um único espaço e mantém-se os caracteres de pontuação;
  2. os digitos rodam-se (circularmente) para a direita da quantidade n;
  3. convertem-se todas as letras em maiúsculas ou minúsculas;
  4. considera-se a seguinte tabela de codificação:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
S A P O B C D E F G H I J K L M N Q R T U V W X Y Z

A construção desta tabela limita-se a colocar a palavra chave no início e completar com as restantes letras do alfabeto, não colocando as letras que se repetem.

  1. para a codificação, substitui-se cada um dos carácteres da primeira linha pelo carácter correspondente da segunda linha.

Construa um programa que dada uma cifra, codifique a mensagem, e um outro que, dada a mensagem cifrada e a cifra, descodifique a mensagem.

Exercício Nº5: Estatísticas de texto

Crie um programa que leia todos os caracteres de um texto (até encontrar um o fimde ficheiro, eof) e que no fim indique quantas vezes apareceu cada uma das 26 letras do alfabeto (considere maiúsculas iguais às minúsculas).

-- JoseCarlosRamalho - 09 Mar 2004

FichasPraticasFicha4 01 Apr 2004 - 14:56 - r3 JoseCarlosRamalho

Ficha Nº4

Objectivos:

O objectivo principal desta ficha é familiarizar o aluno com a utilização e manipulação de matrizes em C. As strings são casos particulares de arrays: uma string é um array em que os elementos são todos do tipo char. Assim, nesta ficha surgem também alguns exercícios envolvendo manipulação de strings.

Exercícios:

Exercício Nº1: Média dos Alunos

Cada aluno de uma licenciatura em Ciências da Computação pode ter notas correspondentes a 10 disciplinas feitas durante o ano lectivo (caso não tenha sido avaliado positivamente a uma disciplina não terá essa nota).

  1. Declare as estruturas de dados (o modelo) necessárias para suportar o sistema de informação: um aluno tem um número (inteiro), um nome (string) e uma lista de notas (reais).
  2. Inicialize a estrutura de dados: na declaração e/ou numa função de inicialização que é chamada no início da função main().
  3. Especifique um programa em C para calcular a média de cada aluno (faça uma função que dada a estrutura de dados principal e o identificador do aluno, produz como resultado a sua média).
  4. Calcule a média geral da turma.
  5. Calcule a média da turma em cada disciplina.
  6. Calcule a percentagem de faltas (ausência de nota).

Exercício Nº2: Gestão de Armazens

Uma empresa tem 10 armazens e precisa de um programa que leia as vendas mensais dos 10 armazens, calcule a media de vendas e produza uma listagem dos armazens com vendas superiores à média calculada.

Exercício Nº3: Normalização de Espaços numa String

Especifique as seguintes funções:

  1. Dada uma string, retira os espaços no fim da string.
  2. Dada uma string, retira os espaços do início da string.
  3. Dada uma string, substitui todas as sequências de um ou mais carácteres brancos (espaço ou TAB) no meio da string por um único espaço branco.

Exercício Nº4: Conversão Árabe-Romano

Especifique um programa em C que lê um inteiro e produz a string com o correspondente número em notação romana.

FichasPraticasFicha5 29 Mar 2004 - 20:00 - r2 JoseCarlosRamalho

Ficha Nº5: Busca e Ordenação de Arrays

Objectivos:

O objectivo principal desta ficha é familiarizar o aluno com a utilização dos algoritmos tradicionais de busca e ordenação de Arrays.

Exercícios:

Exercício Nº1: Inserção Ordenada

Voltando ao exercício da última ficha em que se geriam alunos e respectivas notas, implemente a operação correspondente à inserção de um novo aluno (faça a inserção ordenada desse aluno). Este problema pode ser dividido em três fases:

  1. Descobrir a posição onde o novo aluno deverá ser inserido;
  2. Deslocar os elementos maiores uma posição para a frente;
  3. Inserir o novo aluno na posição livre.

Exercício Nº2: Remoção

Especifique a operação de remoção de um aluno tendo o cuidado de deixar a estrutura ordenada e sem "buracos".

Exercício Nº3: Busca Dicotómica

Uma vez que a estrutura está ordenada a pesquisa pode ser optimizada. Implemente a pesquisa dicotómica sobre um array ordenado.

FichasPraticasFicha6 01 Apr 2004 - 15:22 - NEW JoseCarlosRamalho

Ficha Nº6: Arrays e Estruturas

Objectivos:

O objectivo principal desta ficha é familiarizar o aluno com a utilização de algoritmos mais avançados de busca e ordenação sobre Arrays. No fim, porpõem-se alguns exercícos envolvendo estruturas.

Exercícios:

Exercício Nº1: Estrutura Ligada

Voltando ao exercício da última ficha em que se geriam alunos e respectivas notas, considere a hipótese de utilizar uma ligação lógica entre os elementos como forma de os manter ordenados(como discutido na aula teórica de 01-04-2004) e implemente as seguintes funções:

  1. Incialização do modelo de dados: lembre-se que também será necessário gerir as posições livres.
  2. Listar: esta função produz uma listagem ordenada da informação de todos os alunos.
  3. Consulta: esta função imprime no écran toda a informação referente a um determinado aluno.
  4. Inserir: esta função insere o novo aluno na primeira posição livre e actualiza as ligações de forma a manter a informação logicamente ordenada.
  5. Remover: esta função remove o aluno em causa e coloca a respectiva posição na lista de posições livres (garbage collector).
Este problema pode ser dividido em três fases:

Exercício Nº2: Estrutura ou Produto Cartesiano

Considere de novo o problema do exercício anterior e resolva as seguintes alíneas:

  1. Defina um tipo de dados Aluno como sendo uma estrutura (struct) onde é guardada a informação do aluno.
  2. Defina um tipo de dados Turma como sendo uma lista de Aluno.
  3. Declare variáveis do tipo Aluno e do tipo Turma.
  4. Adapte as funções desenvolvidas no exercício anterior para trabalhar com estes novos tipos de dados.
FichasPraticasFicha7 21 Apr 2004 - 22:02 - NEW JoseCarlosRamalho

Ficha Nº7: Ficheiros e Estruturas

Objectivos:

O objectivo principal desta ficha é familiarizar o aluno com a utilização de ficheiros e definição de tipos estruturados de dados.

Exercícios:

Exercício Nº1: Polinómios

Exercício Nº2: Expressões Aritméticas

FichasPraticasFicha8 04 May 2004 - 09:54 - NEW JoseCarlosRamalho

Ficha Nº8: Estruturas de Dados Dinâmicas - Listas Ligadas

Objectivos:

O objectivo principal desta ficha é familiarizar o aluno com a utilização de estruturas de dados dinâmicas.

Exercícios:

Exercício Nº1: Lista de Inteiros

Considere uma lista de inteiros (não se sabe o seu comprimento). Especifique então as seguintes funções e estruturas de dados:

  1. Defina os tipos necessários para suportar uma lista ligada de inteiros.
  2. Especifique uma função para inserir um valor na cabeça da lista.
  3. Especifique uma função para listar os valores da lista, do início para o fim (faça também a função que lista os elementos na ordem inversa).
  4. Especifique uma função para procurar um valor na lista (como resultado deverá devolver um apontador para o elemento ou NULL caso não o encontre).
  5. Especifique uma função para contar os elementos da lista.
  6. Especifique uma função para calcular o maior elemento na lista.
  7. Especifique um programa, usando as funções definidas, que cria uma lista com os múltiplos de 3 entre 0 e 100 e os lista por ordem decrescente e crescente.

Exercício Nº2: À procura da saída ...

Suponha que existe um labirinto (pense numa representação adequada para o mesmo) que tem um ponto de entrada e um ponto de saída. Especifique um algoritmo que vai descobrir um caminho possível entre o ponto de entrada e o ponto de saída. Ajuda: modele numa lista ligada uma stack para ir guardando o caminho percorrido e as hipóteses alternativas.

Exercício Nº3: A Agenda de Contactos

Pretende-se que desenvolva uma aplicação para gerir uma agenda de contactos. Uma agenda é uma lista de entradas ou grupos de entradas. Uma entrada tem a seguinte constituição:

chave
chave única de identificação (não pode haver duas entradas com a mesma chave);
tipo
tipo da entrada: pessoa, empresa, ...
nome
nome da pessoa, empresa ou entidade;
email
contacto electrónco (é opcional)
telefone
número de telefone (obrigatório)

Um grupo pode ter entradas, referências a entradas já existentes na agenda (por chave) ou subgrupos (os grupos podem ter grupos aninhados infinitamente). O grupo tem, então, a seguinte constituição:

chave
chave única de identificação (não pode haver dois grupos com a mesma chave);
nome
nome do grupo; lista de itens: entradas e/ou grupos e/ou referências;

Por sua vez, a referência é apenas constituída pela chave da entrada ou grupo que referencia.

Desenvolva a aplicação nas seguintes etapas:

  1. Defina as estruturas de dados necessárias para suportar o sistema de informação;
  2. Espeifique as várias funções de inserção: inserir uma entrada na agenda, inserir um grupo na agenda, inserir uma entrada num grupo, ...
  3. Especifique uma função para listar o conteúdo da agenda.
  4. Especifique uma função para gravar o conteúdo da agenda num ficheiro.
  5. Especifique uma função para carregar o conteúdo da agenda de um ficheiro.
  6. Especifique as várias funções de remoção.

Divirta-se...

FichasPraticasFicha8Res 20 May 2004 - 18:20 - r2 JoseCarlosRamalho

Makefile

prog.exe : prog.o lista.o
    gcc -o prog.exe prog.o lista.o

prog.o : prog.c lista.h
    gcc -c prog.c

lista.o : lista.h lista.c
    gcc -c lista.c


lista.h

#ifndef _LISTA
#define _LISTA

typedef struct sInteiro
  {
    int valor;
    struct sInteiro * seg;
  } Nodo, *Lista;

Lista inserir( int v, Lista l );
void listar( Lista l );
void listar_inv( Lista l );
Lista procurar( int v, Lista l );
int conta_elems( Lista l );

#endif


lista.c

#include "lista.h"
#include <stdio.h>

Lista inserir( int v, Lista l )
{
  Lista novo;

  novo = (Lista) malloc(sizeof(Nodo));
  novo->valor = v;
  novo->seg = l;

  return novo;
}


void listar( Lista l )
{
  if(l)
  {
    printf("%d ",l->valor);
    listar(l->seg);
  }
}

Lista inserir_ord( int v, Lista l)
{
  Lista novo;


  if((!l) || (l->valor > v))
  {
    novo = (Lista) malloc(sizeof(Nodo));
    novo->valor = v;
    novo->seg = l;
    return novo;
  }
  else
  {
    l->seg = inserir_ord(v,l->seg);
    return l;
  }
}


prog.c

#include <stdio.h>
#include "lista.h"

int main()
{
  Lista li=NULL;
  int i=0;

  while ((i+=3) < 100)
    li = inserir(i,li);

  listar(li);

  return 0;
}
FichasPraticasFicha9 18 May 2004 - 01:04 - NEW JoseCarlosRamalho

Ficha Nº9: Estruturas de Dados Dinâmicas - Listas Ligadas

Objectivos:

O objectivo principal desta ficha é familiarizar o aluno com a utilização de estruturas de dados dinâmicas.

Exercícios:

Exercício Nº1: Quantas letras?

Especifique um programa/função que dada uma frase/nome constrói uma lista de ocorrências das letras ordenada alfabeticamente. Pense numa solução com arrays e noutra com estruturas dinâmicas.

Exercício Nº2: À procura da saída ...

Suponha que existe um labirinto (pense numa representação adequada para o mesmo) que tem um ponto de entrada e um ponto de saída. Especifique um algoritmo que vai descobrir um caminho possível entre o ponto de entrada e o ponto de saída. Ajuda: modele numa lista ligada uma stack para ir guardando o caminho percorrido e as hipóteses alternativas.

Exercício Nº3: A Agenda de Contactos

Pretende-se que desenvolva uma aplicação para gerir uma agenda de contactos. Uma agenda é uma lista de entradas ou grupos de entradas. Uma entrada tem a seguinte constituição:

chave
chave única de identificação (não pode haver duas entradas com a mesma chave);
tipo
tipo da entrada: pessoa, empresa, ...
nome
nome da pessoa, empresa ou entidade;
email
contacto electrónco (é opcional)
telefone
número de telefone (obrigatório)

Um grupo pode ter entradas, referências a entradas já existentes na agenda (por chave) ou subgrupos (os grupos podem ter grupos aninhados infinitamente). O grupo tem, então, a seguinte constituição:

chave
chave única de identificação (não pode haver dois grupos com a mesma chave);
nome
nome do grupo; lista de itens: entradas e/ou grupos e/ou referências;

Por sua vez, a referência é apenas constituída pela chave da entrada ou grupo que referencia.

Desenvolva a aplicação nas seguintes etapas:

  1. Defina as estruturas de dados necessárias para suportar o sistema de informação;
  2. Espeifique as várias funções de inserção: inserir uma entrada na agenda, inserir um grupo na agenda, inserir uma entrada num grupo, ...
  3. Especifique uma função para listar o conteúdo da agenda.
  4. Especifique uma função para gravar o conteúdo da agenda num ficheiro.
  5. Especifique uma função para carregar o conteúdo da agenda de um ficheiro.
  6. Especifique as várias funções de remoção.

Divirta-se...

MenuTopics 09 Mar 2004 - 23:22 - r2 JoseCarlosRamalho
Programa
Avaliação
Sumários
Trabalhos Práticos
Fichas das aulas práticas
Repositório anárquico de enunciados
NovasPP2 12 Feb 2007 - 19:53 - r45 JoseBacelarAlmeida
  • Notas finais, após o exame de recurso --> PDF
  • Notas finais --> PDF
  • (Pequenas correcções nas) Notas práticas --> PDF
  • Apresentação do tp4 nos dias 6 e 7 de Junho (folha de inscrição no DI / D.Rosa) Obrigatório trazer versão em papel do relatório.
  • Saiu o enunciado do 4º Trabalho Prático (data de entrega 5 de Junho)
  • Devido a problemas na form de submissão -- Nova data de entrega do TP3 --> 5 de Maio
  • Criado um mini repositório de Exercícios de Aulas. Aceitam-se contribuições
  • Saiu o enunciado do 3º Trabalho Prático (data de entrega 3 de Maio)
  • Foi activada a form de submissão do tp2. P.F. Avisem-me de anomalias encontradas!
  • Saiu o enunciado do 2º Trabalho Prático (data de entrega 3 de Abril, por submissão electrónica)
  • Devido ao atraso de entrada ao serviço do dispositivo de submissão, as entregas electrónicas podem ser realizadas até ao dia 14 de Março.
  • Não é permitido uso de "system"
  • Os trabalhos submetidos são compilados com "cc -Wall"
  • Foi activada a form de submissão. Este sistema é altamente experimental -- avisem-me de anomalias encontradas!
  • Se por algum motivo tiverem problemas de Name Server tentem aceder à form de submissão via esta form alternativa...
  • Saiu o enunciado do 1º Trabalho Prático (data de entrega 13 de Março, por submissão electrónica)

ParadigmasProgramacaoIIPrograma 04 Mar 2004 - 15:56 - NEW JoseCarlosRamalho

-- JoseCarlosRamalho - 04 Mar 2004

ProgramaDetalhado 12 Feb 2007 - 19:53 - r5 JoseBacelarAlmeida

Programa da Disciplina: Paradigmas de Programação II

Licenciatura em Matemática e Ciências da Computação -
  1. ano


Índice Remissivo

[1.Introdução à Programação Imperativa]
[2.Estudo da linguagem de programação "C"]
[3.Procura e Ordenação: conceitos e algoritmos mais vulgares ]
[4.Recursividade]
[5.Estruturas de Dados]

1.Introdução à Programação Imperativa

[Indice]

  1. Revisão da noção de Programação: objectivos, dificuldades e etapas.

  2. Uma visão global dos paradigmas de programação.

  3. Apresentação detalhada do paradigma; panorâmica histórica das linguagens de programação imperativas.

  4. Análise Descendente de problemas

  5. Noção de Algoritmo: Linguagem Algorítmica em português estruturado ---introdução das diversas construções linguísticas através de problemas-exemplo típicos.


2.Estudo da linguagem de programação "C"

[Indice]

  1. Filosofia e historial desta linguagem.

  2. Representação da Informação: tipos de dados.

  3. Instruções simples e estruturas de controlo em "C".

  4. Acesso e armazenamento de informação em memória secundária: manipulação de ficheiros.

  5. Estruturas de dados dinâmicas: apontadores, listas e árvores.

  6. Introdução ao polimorfismo: registos variantes e apontadores para funções.


3.Procura e Ordenação: conceitos e algoritmos mais vulgares

[Indice]

Apresentação, simulação e discussão de algoritmos.


4.Recursividade

[Indice]

Resolução de alguns problemas abordados no paradigma funcional já leccionado.

  1. Adequação da recursividade ao problema a resolver.

    Implementação de alguns casos matemáticos de natureza recursiva.

    Resolução de problemas try-and-error.


5.Estruturas de Dados

[Indice]

Conceitos e algoritmos principais para as implementações em array e listas ligadas.

  • Listas: caso geral, Stacks e Queues.
  • Funções Finitas.
  • Estruturas arbóreas: árvores binárias, árvores de decisão, árvores de expressões, etc.


Generated by prog2.xsl from pp2-2004.xml
An XML Application by jcr, 2002.

-- JoseCarlosRamalho - 04 Mar 2004

RepositorioProblemas 12 Feb 2007 - 19:53 - r4 JoseBacelarAlmeida

Repositório Anárquico de Enunciados

Cálculo da Tabuada

Codifica um programa que receba um inteiro positivo, e imprima a sua tabuada (da multiplicação), de 1 a 10 (como se o computador estivesse na primária).

O adivinho

O computador adivinho, tenta adivinhar um número entre 0 e 100, em várias tentativas. Em cada tentativa, mostra o número e pergunta se está correcto, ao que o utilizador responde "sim" ou "maior" ou "menor" consoante o número em que pensou seja igual, maior ou menor do que o indicado.

-- AlbertoSimoes - 11 Mar 2005

Resultados 12 Feb 2007 - 19:53 - r8 JoseBacelarAlmeida

Resultados de Exames, Correcções e TPS

2004/2005

Notas práticas: PDF

Notas Finais (1ª Época): PDF

2003/2004

Exame: 1ª chamada (23 de Junho)

  Versão A   Versão B   Versão C   Versão D
Pergunta a b c d   a b c d   a b c d   a b c d
1. V V F V   V F V V   F F F F   F F F F
2. V F V F   F V F V   F V V V   V V V F
3. F F V V   F V V F   F V F V   V F V F
4. V V V V   V V V V   V F V F   F V F V
5. F F F F   F F F F   V V F F   V F F V
6. F V F V   V F V F   V V V V   V V V V
7. F V F F   V F F F   F F F V   F F V F

Resultados

Resultados da 1ª chamada e TPs

Exame: 2ª chamada (8 de Julho)

  Versão A   Versão B   Versão C   Versão D
Pergunta a b c d   a b c d   a b c d   a b c d
1. V V F V   V F V F   V F V F   V V F V
2. F V F V   V F V F   F V V V   V F F F
3. F V F V   F V X F   V V F F   F V V V
4. F F V V   V V F V   V V F F   F F V V
5. V V V F   F V V V   V F V V   F F V V
6. V F V V   F V F F   V V F V   V F F X
7. F F V F   V F V V   F F V F   V V V F

Resultados

Resultados após a 2ª chamada e TPs

SumariosPP2 15 Jun 2004 - 16:31 - r8 JoseCarlosRamalho

Sumários do ano lectivo 2003/2004

Aulas Teóricas (LMCC)

2004-02-26
Apresentação da disciplina: avaliação, ferramentas e plataformas a utilizar. Apresentação da arquitectura de um compilador da linguagem C. Introdução à liguagem algorítmica que irá ser utiizada nas aulas práticas. Implementação de alguns programas pequenos.
2004-03-01
Estruturas Condicionais: a instrução if-else, instruções if-else encadeadas, a instrução switch.
2004-03-04
Apresentação da arquitectura de uma máquina de stack para a execução de programas. Execução do factorial: passagem de argumentos pela stack, endereço de retorno. A tabela ASCII e o tratamento de carácteres em C. Conversão de formatos com as instruções printf e scanf.
2004-03-08
Operações e operadores relacionais em C. Definição de funções em C: codificação do maior de dois números. Operadores aritméticos. Introdução às expressões condicionais e codificação de alguns exemplos: potências, conversão entre maiúsculas e minúsculas.
2004-03-11
Tipos de dados nativos: int, long, float, double, char. Conversão entre tipos de dados. Pequena introdução aos arrays: armazenamento em memória, declaração, exercícios com vectores de inteiros.
2004-03-15
O modelo de dados Stack: exemplos, aplicações, implementação com arrays. As funções: push, pop, empty, top, init.
2004-03-18
Manipulação de vectores: declaração, inicialização, passagem de vectores como argumentos para funções, armazenamento em memória, indexação.
2004-03-22
Arrays com mais de uma dimensão: declaração, inicialização e manipulação. Resolução de alguns exercícios com matrizes: transposta, soma da diagonal, soma duma coluna, soma duma linha. Declaração e manipulação de strings.
2004-03-25
Introdução à procura em estruturas de dados: algoritmos de busca em arrays - busca linear.
2004-03-29
Ordenação de arrays: o algoritmo das trocas directas - bubblesort. Exemplificação da inserção ordenada em arrays.
2004-04-01
Introdução ao conceito de lista ligada. Os conceitos de ordem física e ordem lógica e o problema de manter várias ordens lógicas sobre a mesma ordem física.
2004-04-05
Implementação de listas ligadas sobre estruturas estáticas: inicialização, gestão das posições livres, inserção e actualização de informação.
2004-04-15
Estruturas variantes: armazenamento de expressões aritméticas. Definição de tipos com estruturas variantes. Exemplificação de uma implementação de listas ligadas sobre arrays. Introdução ao desenvolvimento modular de programas.
2004-04-19
Não foi leccionada para permitir a alunos e docentes a participação nas JOIN2004.

2004-05-10
Enterro da Gata.
2004-05-13
Enterro da Gata.
2004-05-20
Resolução do problema: "A Central de Encomendas da Telepizza"; definição das estruturas de dados; operações de inserção e de listagem.
2004-05-24
Listas ligadas duplamente ligadas: como inserir ordenadamente. Introdução às árvores binárias de procura.
2004-05-27
Algoritmos sobre árvores binárias de procura: inserção ordenada, travessias (inorder, posorder, preorder), cáulculos com acumulação e remoção.
2004-05-31
Implementação de "demolidores" de estruturas de dados: o problema da recolha de lixo.
2004-06-03
Fecho da disciplina. Conversa com os alunos sobre o programa leccionado, os objectivos que se pretenderam atingir e o que efectivamente aconteceu ao longo do semestre.

Aulas Práticas

Prof. José Carlos Ramalho

2004-03-02
Resolução da ficha prática 1.
2004-03-09
Resolução da ficha prática 2.
2004-03-16
Resolução da ficha prática 3.
2004-03-23
Resolução da ficha prática 4.
2004-03-30
Resolução da ficha prática 5.
2004-04-06
Resolução da ficha prática 6.
2004-04-20
JOIN2004.
2004-04-27
Avaliação do segundo trabalho prático.
2004-05-04
Resolução da ficha prática 7.
2004-05-11
Resolução da ficha prática 8.
2004-05-18
Resolução da ficha prática 9.
2004-05-25
Resolução da ficha prática 10.
2004-05-01
Avaliação do terceiro trabalho prático.

Prof. Pedro Rangel Henriques

Clique aqui.

TrabalhosPraticos 12 Feb 2007 - 19:53 - r19 JoseBacelarAlmeida

Trabalhos Práticos

TrabalhosPraticosRegulamento 12 Feb 2007 - 19:53 - r3 JoseBacelarAlmeida

Regulamento para a Elaboração e Entrega dos Trabalhos Práticos

  1. Os trabalhos práticos deverão ser realizados em equipes de 3 elementos. Não serão aceites equipes com número de elementos inferior ou superior a 3.
  2. Na defesa do trabalho deverão estar presentes todos os elementos da equipe. A ausência durante a entrega e defesa do trabalho corresponde à nota 0. Situações devidamente justificadas poderão levar a uma posterior defesa do trabalho mas, individual.
  3. Caso sejam detectadas situações fraudulentas, as equipes envolvidas (copiantes e copiados) terão a matrícula à disciplina anulada e FRAUDE como nota a ser lançada nas pautas que serão afixadas.
  4. O Trabalho corresponderá a um problema que depois de devidamente analisado deverá ter a sua solução implementada em C.
  5. A plataforma que será usada para testar o trabalho será a imagem Linux disponível nas máquinas da sala aberta do Departamento.
  6. Será da inteira responsabilidade da equipe que apresenta o trabalho, o garantir que o mesmo está em condições de ser apresentado, antes da entrega. Durante a entrega não serão admitidos erros de compilação nem que a execução do trabalho "termine abruptamente sem explicações" antes do fim esperado.
  7. A equipe, durante a entrega, deverá fazer-se acompanhar por um relatório, impresso em papel, do trabalho que está a apresentar. Esse relatório deverá ser criado em LaTeX? de acordo com um formato que será brevemente disponibilizado.
  8. As entregas serão feitas por marcação prévia: na semana anterior à data de finalização do trabalho, serão colocadas, na Secretaria do Departamento, as folhas de marcação.
  9. As folhas de marcação abarcarão vários dias e várias horas, divididos em slots de 20 minutos. É da responsabilidade da equipe a marcação de uma slot que não colida com aulas de outras disciplinas.
  10. Este ano, irá vigorar a Lei do Buraco para as marcações: se no fim da semana em que decorreram as marcações houver algum slot livre, não será aceite mais nenhuma marcação para além daquelas que estejam registadas nas folhas.
  11. A equipe deverá comparecer 15 minutos antes da hora marcada na sala onde se efectuará a entrega.
  12. A falta a uma marcação implica nota 0 no trabalho em questão.
  13. Os trabalhos práticos serão avaliados por patamares:
    • 0 - não fizeram
    • 4-8 - não compilou, rebentou durante a execução, ...
    • 10 - cumpre os mínimos no limite (há coisas que não estão bem)
    • 13 - cumpre bem os mínimos
    • 16 - cumpre bem os requisitos propostos
    • 19 - excede a proposta
  14. Os patamares enunciados no ponto anterior são referências. O docente poderá decidir atribuir valores intermédios nalguns casos.

-- JoseCarlosRamalho - 26 Feb 2004

TrabalhosPraticosSubmissao 16 Mar 2004 - 19:54 - r3 JoseCarlosRamalho

Regras para a submissão dos Trabalhos Práticos

Este ano, todos os trabalhos terão de ser enviados electronicamente através do site: http://labdotnet.di.uminho.pt/submitPP2/

Como é feita a entrega?

Acedem ao site e registam o vosso grupo: escolhem Registar e vão introduzir um username para o grupo e a password; depois fazem login com esse nome e password; introduzem um nome para o grupo (pode ser o que quiserem, usem a imaginação), um número, e um a um os elementos do grupo; no fim selecionam actualizar; por fim, para submeter o trabalho clicam no link em cima que diz "Submeter Trabalho", seleccionam o ficheiro que contem o trabalho no vosso disco ou disquete e fazem o "Submit".

Se um dia se esquecerem da password dirijam-se a nós. Não tentem registar-se mais do que uma vez.

O ficheiro do trabalho deverá estar em formato ZIP e deverá conter:

  1. o ficheiro TeX? do relatório, exemplo: trab1.tex
  2. o ficheiro C do problema que resolveram, exemplo: 21fosforos.c
  3. se resolveram mais de um problema, os outros ficheiros C, um por problema.

Se tiverem problemas a criar o ficheiro ZIP qualquer docente da disciplina vos poderá ajudar ou até os técnicos do primeiro piso (o Jaime, o João ou a Carla).

TrabalhosPraticosTP1 12 Feb 2007 - 19:53 - r4 JoseBacelarAlmeida

Trabalho Prático Nº1

Objectivos e Organização

Este trabalho prático tem como principais objectivos:

  • familiarização com o computador em ambiente linux, e com algumas ferramentas de apoio à programação, tais como um editor vi/emacs;
  • iniciação à codificação, na linguagem imperativa C, das estruturas de dados e dos algoritmos concebidos e à execução e teste e dos programas escritos;
  • introdução à documentação dos projectos de programação realizados usando o processador LaTeX.

Para o efeito, esta folha contém seis enunciados, dos quais deverá resolver dois (poderá resolver mais mas só dois serão avaliados).

O relatório a elaborar, deve ser claro e sucinto e, além do respectivo enunciado e da descrição do problema, deverá conter exemplos de utilização e o código do programa.

Como foi dito, o relatório terá de ser escrito em LaTeX sugerindo-se que adoptem o esqueleto proposto que pode ser descarregado a partir da página principal dos trabalhos práticos.


Enunciados

O Adivinho

Escreva um programa em C que adivinhe um número (a chave) entre 1 e 100 escolhido pelo utilizador.

Em cada tentativa, programa palpita um número e o utilizador indica se acertou, ou então se é maior ou menor que a chave.

O jogo prossegue até o computador acertar, ou até se atingir um número N (dado) de tentativas.


O Adivinho Sofisticado

Escreva um programa em C que escolha (use o gerador de números aleatórios da linguagem C, rand()) um número (a chave) entre 1 e 100 que terá de ser adivinhado pelo utilizador.

Em cada tentativa, o utilizador introduz o número palpitado e o computador indica se acertou, ou então se é maior ou menor que a chave.

O jogo prossegue até o utilizador acertar, ou até atingir um número N (dado) de tentativas.


O Sabichão Matemático

Escreva um programa em C que escolha (use o gerador de números aleatórios da linguagem C, rand()) dois números (os operandos) entre 0 e 10 e, depois de os mostrar ao utilizador, pergunte o valor do produto.

Ao fim de N (dado) de tentativas, o computador indica o número de vezes que o utilizador levou para acertar.

Se quiser tornar o seu programa mais interessante, gere também aleatoriamente a operação (adição, multiplicação, subtracção ou divisão) que o utilizador deve fazer.


Dados da Sorte

Escreva um programa em C que simule o lançamento de 2 dados (use o gerador de números aleatórios da linguagem C, rand()) e indique ao fim de quantas jogadas é que ambas as faces sorteadas são iguais (ostentam o mesmo valor).


Dados da Sorte 2

Escreva um programa em C que simule o lançamento de 2 dados (use o gerador de números aleatórios da linguagem C, rand()) e indique ao fim de quantas jogadas é que a soma do valor sorteado em cada dado é um número par.


21 fósforos

Escreva um programa em C que implemente o jogo dos fósforos: no início há 21 fósforos sobre a mesa; em cada jogada, cada jogador deve retirar entre 1 e 4 fósforos, perdendo aquele que retirar o último.

A estratégia ganhadora é o segundo jogador retirar sempre a diferença para 5 do número retirado pelo primeiro jogador.

O seu programa deve dar a escolher ao utilizador qual dos dois começa a jogar e, caso o computador seja o segundo a jogar deverá ganhar sempre, se fôr o primeiro deverá ganhar se o utilizador cometer um erro de estratégia.


-- JoseCarlosRamalho - 27 Feb 2004

TrabalhosPraticosTP2 17 Mar 2004 - 10:03 - r4 JoseCarlosRamalho

Trabalho Prático II

Objectivos e Organização

Este trabalho prático tem como principais objectivos:

  • familiarização com tipos de dados estruturados;
  • utilização de estruturas de controle em situações mais elaboradas;
  • incrementar os cuidados na validação dos dados introduzidos pelo utilizador.

Dos vários enunciados apresentados deverá escolher apenas um que deverá resolver e defender. Se tiver tempo, invista na qualidade melhorando e acrescentando funcionalidades extra à sua aplicação (use a imaginação).

O relatório a elaborar, deve ser claro e sucinto e, além do respectivo enunciado e da descrição do problema, deverá conter exemplos de utilização e o código do programa.

Como foi dito, o relatório terá de ser escrito em LaTeX? sugerindo-se que adoptem o esqueleto proposto que pode ser descarregado a partir da página principal dos trabalhos práticos.


Enunciados

Minesweeper

Implemente o conhecido jogo minesweeper.

Dado um tabuleiro m * n e um conjunto de p bombas (que o programa distribuirá aleatoriamente no tabuleiro), o objectivo do jogador é acertar em todas as casas do tabuleiro sem acertar nas bombas. As jogadas são realizadas da seguinte forma:

  1. o jogador indica uma casa do tabuleiro;
  2. se acertou numa bomba, perdeu!
  3. se existe alguma bomba na vizinhança dessa casa (portanto, nas 8 casas circundantes), o programa deverá mostrar (nessa casa) o número de bombas que existem à sua volta;
  4. se não existe nenhuma bomba na vizinhança, o programa deve realizar jogadas automaticamente para cada uma das 8 casas vizinhas, prosseguindo assim até já não haver mais casas nestas condições.

Joga da Forca

Implemente o jogo da forca. Nesta implementação, o programa deve pedir inicialmente a frase mistério com que vai jogar. Depois, mostra-a na forma de um mapa com a posição das letras em relação aos espaços.

Em cada uma das 6 tentativas (este número pode ser variável), o jogador vai fornecer uma letra que, caso exista na frase mistério, será substituída no mapa. No caso de não existir, deve ser apresentada, em todas as posteriores jogadas, numa zona de letras usadas em vão.

Como resultado final, o computador deve mostar sempre a frase mistério indicando se o Jogador consegui descobrir todas as letras, ou se perdeu por ter esgotado as tentativas.

Opcionalmente, poderá tentar retirar a palavra (ou frase) aleatóriamente de um ficheiro. Uma vez que este trabalho terá um prazo mais apertado do que o que seria necessário para apresentar o funcionamento com ficheiros, está por sua conta para investigar os comandos fopen, fgets, fclose e relacionados.

Joga dos Provérbios

Implemente o jogo dos provérbios (é uma variante do jogo da forca descrito em cima). Nesta implementação, o programa deve pedir inicialmente a provérbio mistério com que vai jogar. Depois, mostra-o na forma de um mapa com a posição das letras em relação aos espaços.

No início do jogo, o jogador dispõe de um determinado saldo. Em cada jogada, o jogador vai comprar uma letra ou tentar adivinhar o provérbio. No caso da letra, se esta existir no provérbio mistério, será substituída no mapa e o saldo do jogador decrementado, se não existir, deve ser apresentada, em todas as posteriores jogadas, numa zona de letras usadas em vão. No caso do jogador acertar no provérbio, o seu saldo será incrementado pelo valor das letras ainda não compradas e presentes no provérbio. Se falhar ao adivinhar, o seu saldo será decrementado pelo valor correspondente ao das letras ainda em jogo.

Como resultado final, o computador deve mostar sempre o provérbio mistério indicando se o Jogador conseguiu descobrir todas as letras, ou se perdeu por ter esgotado as tentativas.

O jogo termina quando o saldo do jogador se tornar negativo ou quando este decidir abandonar o jogo.

Opcionalmente, poderá tentar retirar o provérbio aleatóriamente de um ficheiro. Uma vez que este trabalho terá um prazo mais apertado do que o que seria necessário para apresentar o funcionamento com ficheiros, está por sua conta para investigar os comandos fopen, fgets, fclose e relacionados.

TrabalhosPraticosTP3 02 May 2004 - 11:00 - r2 JoseCarlosRamalho

Trabalho Prático III

TPs: Gestor Bibliográfico; Agência Matrimonial.

Objectivos e Organização

Este trabalho prático tem como principais objectivos:

  • familiarização com tipos de dados dinâmicos;
  • armazenamento de informação em memória secundária;
  • incrementar os cuidados na validação dos dados introduzidos pelo utilizador;
  • introduzir o aluno ao desenvolvimento de sistemas de informação.

Dos vários enunciados apresentados deverá escolher apenas um que deverá resolver e defender. Se tiver tempo, invista na qualidade melhorando e acrescentando funcionalidades extra à sua aplicação (use a imaginação).

O relatório a elaborar, deve ser claro e sucinto e, além do respectivo enunciado e da descrição do problema, deverá conter exemplos de utilização e o código do programa.

Como foi dito, o relatório terá de ser escrito em LaTeX? sugerindo-se que adoptem o esqueleto proposto que pode ser descarregado a partir da página principal dos trabalhos práticos.


Enunciados

Gestor Bibliográfico

Neste projecto, pretende-se que o aluno desenvolva uma plataforma de suporte a uma base de dados bibliográfica tipo BibTeX? , ou seja, o sistema de informação será composto por uma lista de registos. Um registo destes pode ser de um de vários tipos. Os vários tipos e a respectiva estrutura descrevem-se a seguir.

article
artigo publicado em revista; tem os seguintes campos obrigatórios: lista de autores, título, nome da revista e ano; e tem os seguintes campos opcionais: volume, número, páginas, mês e nota descritiva.
book
campos obrigatótios: lista de autores ou de editores, título, editora, ano; campos opcionais: volume ou número, série, edição, mês e nota descritiva.
inbook
capítulo de um livro; campos obrigatórios: lista de autores ou de editores, título, capítulo ou páginas, editora, ano; campos opcionais: volume ou número, série, edição, mês e nota descritiva.
inproceedings
artigo publicado nas actas de uma conferência; campos obrigatórios: lista de autores, título, título das actas, ano; campos opcionais: editor, volume ou número, série, páginas, edição, mês e nota descritiva.
masterthesis
tese de mestrado; campos obrigatórios: autor, título, instituição, ano; campos opcionais: mês e nota descritiva.
misc
Este tipo deverá ser usado para todas as entradas que não sejam classificáveis num dos outros tipos, por exemplo referências da Internet; campos obrigatórios: nenhum; campos opcionais: lista de autores, título, meio de publicação, mês, ano e nota descritiva.
phdthesis
tese de doutoramento; campos obrigatórios: autor, título, instituição, ano; campos opcionais: mês e nota descritiva.
proceedings
Actas de Conferência; campos obrigatórios: título e ano; campos opcionais: lista de editores, volume ou número, série, editora, nota descritiva, mês e organização.
techreport
Relatório Técnico; campos obrigatórios: lista de autores, título, instituição e ano; campos opcionais: número, mês e nota descritiva.

A aplicação a desenvolver deverá ter os seguintes requisitos:

  • No incício de uma sessão, o programa deverá carregar os registos bibliográficos de um ficheiro chamado "BIB.DAT".
  • No fim da sessão, os registos deverão ser gravados no mesmo ficheiro para que o estado da plicação seja preservado entre sessões.
  • A aplicação deverá disponibilizar as seguintes operações ao utilizador:
    1. Inserção de um registo.
    2. Consulta de um registo (por chave de citação)
    3. Remoção de um registo (por chave de citação), a aplicação deverá mostrar o registo e pedir uma confirmação ao utilizador antes do registo ser removido.
    4. Listagem (por ordem alfabética de título).
    5. Listagem (por ordem alfabética de autor), para cada autor apresenta a sua lista de publicações ordenadas alfabeticamente por título (esta operação é um extra).
    6. Listagem (por ordem alfabética de título em que estes estão agrupados por tipo).
    7. Gravar, em qualquer momento o utilizador poderá solicitar a gravação dos dados em memória para um determinado ficheiro (diferente do "BIB.DAT").
    8. Carregar, permite recuperar um estado anterior da aplicação (de um ficheiro qualquer fornecido pelo utilizador mas que obedeça à estrutura estabelecida para o repositório).
    9. Outras operações que a sua imaginação puder fornecer...

Sugere-se que comece por desenvolver a aplicação nestas etapas:

  1. Decidir quais as estruturas de dados que irão suportar a informação em memória central (listas ligadas, esquemas de ordenação ...).
  2. Definição dos tipos de dados
  3. Implementação das funções para manipulação das estruturas de dados
  4. Implementação das funções de IO (apresentação e interacção com o utilizador)

Divirta-se ...


Agência Matrimonial

Neste projecto, pretende-se que o aluno desenvolva uma aplicação para gerir uma agência matrimonial/encontros. A aplicação irá tentar usar uma função de semelhança parametrizada pelo utilizador para encontrar uma pessoa ou lista de pessoas compatíveis com um determinado perfil. Para isso, é necessário criar uma base de dados de indívíduos onde ficará registado o perfil de cada indivíduo. O sistema terá dois modos de funcionamento: um para o administrador e outro para o utilizador normal. Mais à frente será descrito em mais pormenor o comportamento de cada um.

Um indivíduo é registado na base de dados com os seguintes campos de informação:

Código
o sistema deverá atribuir automaticamente um código a cada indivíduo que se regista; este código serve para identificar univocamente o indivíduo noutras operações.
Nome
o indivíduo é registado com o seu nome verdadeiro, opcionalmente poderá adoptar um pseudónimo que será visualizado pelo utilizador em vez do seu nome.
Sexo
Masculino ou Feminino. Data de Nascimento: data em formato ANSI: aaaa-mm-dd (a validação é um extra). Lista de Contactos: morada, email, telefone, telemóvel, ... São todos opcionais tendo, no entanto, que ser preenchido pelo menos um (a lista não pode ser vazia).
Profissão
lista de actividades que desenvolve profissionalmente.
Habilitações
lista de cursos e graus que detem. Lista de Preferências/Hábitos: actividades desportivas, hábitos tabágicos, hábitos culturais (música, leitura, teatro, cinema, ...), hábitos noturnos (pub, disco, ...), hábitos televisivos (informação, filmes, telenovelas, concursos, ...).
Objectivos
Procura um Amigo, Encontro, Compromisso com vista a casamento, ...

No acto do registo, o utente deverá ter a possibilidade de indicar, para cada item de informação, se este é visível para todos os utilizadores ou apenas para o administrador.

A aplicação a desenvolver deverá disponibilizar duas interfaces: a do administrador e a do utente.

Na interface do administrador deverão estar disponíveis as seguintes operações:

  1. Inserção de um indivíduo - o administrador poderá inserir indivíduos, por exemplo, durante as consultas.
  2. Remoção de um indivíduo (por código) - só o administrador poderá fazer remoções; esta operação deverá mostrar o registo que irá ser apagado e solicitar a confirmação, só então procederá à remoção efectiva.
  3. Consulta dos dados relativos a um indivíduo (por código) - esta operação deverá mostrar a informação completa de um registo.
  4. Listagem por ordem alfabética de nome - esta operação deverá apresentar o código, o nome e respectivo pseudónimo (se existir) de todos os indivíduos.
  5. Listagem por ordem cronológica de nascimento - esta operação deverá apresentar o código, o nome e a idade respectiva de cada indivíduo.
  6. Procurar perfil compatível - esta operação recebe como argumento o código de um indivíduo e, baseada numa outra função que entra em linha de conta com pesos e desvios dos vários parâmetros, dá uma lista de indivíduos ordenada do mais compatível para o menos compatível.
  7. Procurar perfil - esta operação é semelhante à anterior só a função que determina a semelhança é definida pelo utilizador; é apresentada uma interface que permite definir domínios de valores e pesos para cada parâmetro.
  8. Gravar - esta operação grava em ficheiro, "AGENCIA.DAT", o estado actual da Base de Dados.
  9. Carregar - esta operação permite num determinado momento carregar uma Base de Dados previamente gravado em ficheiro; antes de carregar a nova informação o utilizador deverá ser interrogado sobre se quer limpar a informação que existe em memória ou se quer fazer o "merge" da informação (esta funcionalidade é um extra).

Na interface do utilizador normal estão disponíveis as mesmas operações, à excepção da remoção, só que apenas serão mostrados os dados marcados como não confidenciais.

Se o utilizador da aplicação, administrador ou utente, nada indicar, a aplicação deverá sempre carregar a informação de "AGENCIA.DAT" no início e gravar a informação em "AGENCIA.DAT" antes de terminar.

Não tente fazer nenhum destes enunciados de uma só vez, faça-o incrementalmente e comece por definir as estruturas de dados e a operação de inserção.

Divirta-se

WebChanges 16 Aug 2001 - 19:58 - NEW PeterThoeny?

50 Recent Changes in TWiki Web retrieved at 17:38 (GMT)

WebSearchAdvanced 17 May 2007 - 14:51 - NEW TWikiGuest
WebHome 12 Feb 2007 - 19:53 - r18 JoseBacelarAlmeida
Paradigmas de Programação II 1ºano da LMCC e LESI 2004/2005 Equipe Docente: José João Almeida João Alexandre Saraiva Novidades ...
TrabalhosPraticosTP1 12 Feb 2007 - 19:53 - r4 JoseBacelarAlmeida
Trabalho Prático Nº1 Objectivos e Organização Este trabalho prático tem como principais objectivos : familiarização com o computador em ambiente linux , e ...
TrabalhosPraticosRegulamento 12 Feb 2007 - 19:53 - r3 JoseBacelarAlmeida
Regulamento para a Elaboração e Entrega dos Trabalhos Práticos 1 Os trabalhos práticos deverão ser realizados em equipes de 3 elementos. Não serão aceites equipes ...
Resultados 12 Feb 2007 - 19:53 - r8 JoseBacelarAlmeida
Resultados de Exames, Correcções e TPS 2004/2005 Notas práticas: Notas Finais (1ª Época): http://natura.di.uminho.pt/~jj/Education.PP2 05/notaJulho.pdf PDF 2003 ...
FichasPraticasFicha1 12 Feb 2007 - 19:53 - r3 JoseBacelarAlmeida
Ficha Nº1 Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a linguagem algorítmica que irá ser usada para especificar os algoritmos ...
ProgramaDetalhado 12 Feb 2007 - 19:53 - r5 JoseBacelarAlmeida
Programa da Disciplina: Paradigmas de Programa o II Licenciatura em Matem tica e Ci ncias da Computa o 1 ano Iacute;ndice Remissivo 1.Introdu o Programa ...
NovasPP2 12 Feb 2007 - 19:53 - r45 JoseBacelarAlmeida
Notas finais, após o exame de recurso Notas finais http://natura.di.uminho.pt/~jj/Education.PP2 05/notaJulho.pdf PDF (Pequenas correcções nas ...
RepositorioProblemas 12 Feb 2007 - 19:53 - r4 JoseBacelarAlmeida
Repositório Anárquico de Enunciados Cálculo da Tabuada Codifica um programa que receba um inteiro positivo, e imprima a sua tabuada (da multiplicação), de 1 a 10 ...
TrabalhosPraticos 12 Feb 2007 - 19:53 - r19 JoseBacelarAlmeida
Trabalhos Práticos Regulamento. Relatório: Sugere se LaTeX mini manual html de LaTeX fazer download do esqueleto ...
FichasPraticas 12 Feb 2007 - 19:53 - r18 JoseBacelarAlmeida
Fichas para as aulas práticas (2003/2004) ficha 1 (Estruturas de controlo em C) Resolução (prh) ficha 2 (Mais Estruturas de controlo em C) ...
AvaliacaoPP2 12 Feb 2007 - 19:53 - r4 JoseBacelarAlmeida
Avaliação A avaliação tem duas componentes, uma teória e uma prática. A componente teórica corresponderá à melhor nota obtida em exame e a componente prática à média ...
WebStatistics 28 Jan 2007 - 09:37 - r881 TWikiGuest
Statistics for Education/PP2 Web Month: Topic views: Topic saves: File uploads: Most popular topic views: Top contributors for topic save ...
FichasPraticasFicha3 24 Jan 2005 - 17:31 - r5 JoseCarlosRamalho
Ficha Nº3 Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização e manipulação de vectores e matrizes em C. As strings são casos ...
FichasPraticasFicha10 24 Jan 2005 - 17:31 - r3 JoseCarlosRamalho
Ficha Nº10: Estruturas de Dados Dinâmicas Árvores Binárias Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização de estruturas de ...
FichasPraticasFicha1Res 24 Jan 2005 - 17:31 - r3 JoseCarlosRamalho
Resolução da Ficha Prática 1 Exercício 1: O maior de 2 números #include int main( ) { int a, b; printf("Primeiro número: \n"); scanf("%d", a); printf("Segundo ...
FichasPraticasFicha2Res 24 Jan 2005 - 17:31 - r3 JoseCarlosRamalho
/ title: Ano Lectivo 2003/04 Resolução da Ficha nº2 ficheiro: pp203resf02.c autor: PRH versao de: 2004.03.15 .uso do printf() e do scanf() .uso de condicoes .uso ...
WebLeftBar 16 Aug 2004 - 09:01 - NEW ArthurClemens?
Web Web Home Changes Index Search Webs
SumariosPP2 15 Jun 2004 - 16:31 - r8 JoseCarlosRamalho
Sumários do ano lectivo 2003/2004 Aulas Teóricas (LMCC) 2004 02 26: Apresentação da disciplina: avaliação, ferramentas e plataformas a utilizar. Apresentação da ...
FichasPraticasFicha8Res 20 May 2004 - 18:20 - r2 JoseCarlosRamalho
Makefile prog.exe : prog.o lista.o gcc o prog.exe prog.o lista.o prog.o : prog.c lista.h gcc c prog.c lista.o : lista.h lista.c gcc c lista.c lista ...
FichasPraticasFicha9 18 May 2004 - 01:04 - NEW JoseCarlosRamalho
Ficha Nº9: Estruturas de Dados Dinâmicas Listas Ligadas Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização de estruturas de dados ...
FichasPraticasFicha8 04 May 2004 - 09:54 - NEW JoseCarlosRamalho
Ficha Nº8: Estruturas de Dados Dinâmicas Listas Ligadas Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização de estruturas de dados ...
TrabalhosPraticosTP3 02 May 2004 - 11:00 - r2 JoseCarlosRamalho
Trabalho Prático III TPs: Gestor Bibliográfico; Agência Matrimonial. Objectivos e Organização Este trabalho prático tem como principais objectivos: familiariza ...
FichasPraticasFicha7 21 Apr 2004 - 22:02 - NEW JoseCarlosRamalho
Ficha Nº7: Ficheiros e Estruturas Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização de ficheiros e definição de tipos estruturados ...
Didactica 21 Apr 2004 - 21:27 - r2 JoseCarlosRamalho
Links e Estruturas de Dados Exemplos 1 Desenvolvimento modular duma aplicação de gestão de alunos (listas ligadas sobre estruturas estáticas): ...
FichasPraticasFicha6 01 Apr 2004 - 15:22 - NEW JoseCarlosRamalho
Ficha Nº6: Arrays e Estruturas Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização de algoritmos mais avançados de busca e ordena ...
FichasPraticasFicha4 01 Apr 2004 - 14:56 - r3 JoseCarlosRamalho
Ficha Nº4 Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização e manipulação de matrizes em C. As strings são casos particulares ...
FichasPraticasFicha5 29 Mar 2004 - 20:00 - r2 JoseCarlosRamalho
Ficha Nº5: Busca e Ordenação de Arrays Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização dos algoritmos tradicionais de busca ...
TrabalhosPraticosTP2 17 Mar 2004 - 10:03 - r4 JoseCarlosRamalho
Trabalho Prático II Objectivos e Organização Este trabalho prático tem como principais objectivos: familiarização com tipos de dados estruturados; utiliza ...
TrabalhosPraticosSubmissao 16 Mar 2004 - 19:54 - r3 JoseCarlosRamalho
Regras para a submissão dos Trabalhos Práticos Este ano, todos os trabalhos terão de ser enviados electronicamente através do site: http://labdotnet.di.uminho.pt/submitPP2 ...
WebPreferences 12 Mar 2004 - 18:36 - r6 JoseCarlosRamalho
TWiki.Education/PP2 Web Preferences The following settings are web preferences of the TWiki.Education/PP2 web. These preferences overwrite the site level preferences ...
WebNotify 10 Mar 2004 - 14:45 - r3 AlcinoCunha
This is a subscription service to be automatically notified by e mail when topics change in this Education/PP2 web. This is a convenient service, so you do not have ...
MenuTopics 09 Mar 2004 - 23:22 - r2 JoseCarlosRamalho
Programa Avaliação Sumários Trabalhos Práticos Fichas das aulas práticas Repositório anárquico de enunciados
FichasPraticasFicha2 09 Mar 2004 - 22:54 - r5 JoseCarlosRamalho
Ficha Nº2 Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a linguagem algorítmica que irá ser usada para especificar os algoritmos ...
ParadigmasProgramacaoIIPrograma 04 Mar 2004 - 15:56 - NEW JoseCarlosRamalho
JoseCarlosRamalho 04 Mar 2004
WebRss 30 Jan 2003 - 08:15 - NEW PeterThoeny?
TWiki's Education/PP2 web /view/Education/PP2 The Education/PP2 web of TWiki. TWiki is a Web Based Collaboration Platform for the Corporate World.
WebIndex 24 Nov 2001 - 11:41 - r2 PeterThoeny?
See also the faster WebTopicList
WebTopicList 24 Nov 2001 - 11:40 - NEW PeterThoeny?
See also the verbose WebIndex.
WebChanges 16 Aug 2001 - 19:58 - NEW PeterThoeny?
WebSearch 08 Aug 2001 - 05:26 - NEW PeterThoeny?
Found 40 topics.

See also: rss-small RSS feed, recent changes with 50, 100, 200, 500, 1000 topics, all changes

WebHome 12 Feb 2007 - 19:53 - r18 JoseBacelarAlmeida

um-logo.gif

Paradigmas de Programação II
1ºano da LMCC e LESI 2004/2005
Equipe Docente:
José João Almeida
João Alexandre Saraiva

largo_paco_sec_XVI.jpg


Novidades

  • Notas finais, após o exame de recurso --> PDF
  • Notas finais --> PDF
  • (Pequenas correcções nas) Notas práticas --> PDF
  • Apresentação do tp4 nos dias 6 e 7 de Junho (folha de inscrição no DI / D.Rosa) Obrigatório trazer versão em papel do relatório.
  • Saiu o enunciado do 4º Trabalho Prático (data de entrega 5 de Junho)
  • Devido a problemas na form de submissão -- Nova data de entrega do TP3 --> 5 de Maio
  • Criado um mini repositório de Exercícios de Aulas. Aceitam-se contribuições
  • Saiu o enunciado do 3º Trabalho Prático (data de entrega 3 de Maio)
  • Foi activada a form de submissão do tp2. P.F. Avisem-me de anomalias encontradas!
  • Saiu o enunciado do 2º Trabalho Prático (data de entrega 3 de Abril, por submissão electrónica)
  • Devido ao atraso de entrada ao serviço do dispositivo de submissão, as entregas electrónicas podem ser realizadas até ao dia 14 de Março.
  • Não é permitido uso de "system"
  • Os trabalhos submetidos são compilados com "cc -Wall"
  • Foi activada a form de submissão. Este sistema é altamente experimental -- avisem-me de anomalias encontradas!
  • Se por algum motivo tiverem problemas de Name Server tentem aceder à form de submissão via esta form alternativa...
  • Saiu o enunciado do 1º Trabalho Prático (data de entrega 13 de Março, por submissão electrónica)

WebIndex 24 Nov 2001 - 11:41 - r2 PeterThoeny?
Education/PP2 Web Changed Changed by
AvaliacaoPP2 12 Feb 2007 - 19:53 - r4 JoseBacelarAlmeida
Avaliação A avaliação tem duas componentes, uma teória e uma prática. A componente teórica corresponderá à melhor nota obtida em exame e a componente prática à média ...
Didactica 21 Apr 2004 - 21:27 - r2 JoseCarlosRamalho
Links e Estruturas de Dados Exemplos 1 Desenvolvimento modular duma aplicação de gestão de alunos (listas ligadas sobre estruturas estáticas): ...
FichasPraticas 12 Feb 2007 - 19:53 - r18 JoseBacelarAlmeida
Fichas para as aulas práticas (2003/2004) ficha 1 (Estruturas de controlo em C) Resolução (prh) ficha 2 (Mais Estruturas de controlo em C) ...
FichasPraticasFicha1 12 Feb 2007 - 19:53 - r3 JoseBacelarAlmeida
Ficha Nº1 Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a linguagem algorítmica que irá ser usada para especificar os algoritmos ...
FichasPraticasFicha10 24 Jan 2005 - 17:31 - r3 JoseCarlosRamalho
Ficha Nº10: Estruturas de Dados Dinâmicas Árvores Binárias Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização de estruturas de ...
FichasPraticasFicha1Res 24 Jan 2005 - 17:31 - r3 JoseCarlosRamalho
Resolução da Ficha Prática 1 Exercício 1: O maior de 2 números #include int main( ) { int a, b; printf("Primeiro número: \n"); scanf("%d", a); printf("Segundo ...
FichasPraticasFicha2 09 Mar 2004 - 22:54 - r5 JoseCarlosRamalho
Ficha Nº2 Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a linguagem algorítmica que irá ser usada para especificar os algoritmos ...
FichasPraticasFicha2Res 24 Jan 2005 - 17:31 - r3 JoseCarlosRamalho
/ title: Ano Lectivo 2003/04 Resolução da Ficha nº2 ficheiro: pp203resf02.c autor: PRH versao de: 2004.03.15 .uso do printf() e do scanf() .uso de condicoes .uso ...
FichasPraticasFicha3 24 Jan 2005 - 17:31 - r5 JoseCarlosRamalho
Ficha Nº3 Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização e manipulação de vectores e matrizes em C. As strings são casos ...
FichasPraticasFicha4 01 Apr 2004 - 14:56 - r3 JoseCarlosRamalho
Ficha Nº4 Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização e manipulação de matrizes em C. As strings são casos particulares ...
FichasPraticasFicha5 29 Mar 2004 - 20:00 - r2 JoseCarlosRamalho
Ficha Nº5: Busca e Ordenação de Arrays Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização dos algoritmos tradicionais de busca ...
FichasPraticasFicha6 01 Apr 2004 - 15:22 - NEW JoseCarlosRamalho
Ficha Nº6: Arrays e Estruturas Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização de algoritmos mais avançados de busca e ordena ...
FichasPraticasFicha7 21 Apr 2004 - 22:02 - NEW JoseCarlosRamalho
Ficha Nº7: Ficheiros e Estruturas Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização de ficheiros e definição de tipos estruturados ...
FichasPraticasFicha8 04 May 2004 - 09:54 - NEW JoseCarlosRamalho
Ficha Nº8: Estruturas de Dados Dinâmicas Listas Ligadas Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização de estruturas de dados ...
FichasPraticasFicha8Res 20 May 2004 - 18:20 - r2 JoseCarlosRamalho
Makefile prog.exe : prog.o lista.o gcc o prog.exe prog.o lista.o prog.o : prog.c lista.h gcc c prog.c lista.o : lista.h lista.c gcc c lista.c lista ...
FichasPraticasFicha9 18 May 2004 - 01:04 - NEW JoseCarlosRamalho
Ficha Nº9: Estruturas de Dados Dinâmicas Listas Ligadas Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização de estruturas de dados ...
MenuTopics 09 Mar 2004 - 23:22 - r2 JoseCarlosRamalho
Programa Avaliação Sumários Trabalhos Práticos Fichas das aulas práticas Repositório anárquico de enunciados
NovasPP2 12 Feb 2007 - 19:53 - r45 JoseBacelarAlmeida
Notas finais, após o exame de recurso Notas finais http://natura.di.uminho.pt/~jj/Education.PP2 05/notaJulho.pdf PDF (Pequenas correcções nas ...
ParadigmasProgramacaoIIPrograma 04 Mar 2004 - 15:56 - NEW JoseCarlosRamalho
JoseCarlosRamalho 04 Mar 2004
ProgramaDetalhado 12 Feb 2007 - 19:53 - r5 JoseBacelarAlmeida
Programa da Disciplina: Paradigmas de Programa o II Licenciatura em Matem tica e Ci ncias da Computa o 1 ano Iacute;ndice Remissivo 1.Introdu o Programa ...
RepositorioProblemas 12 Feb 2007 - 19:53 - r4 JoseBacelarAlmeida
Repositório Anárquico de Enunciados Cálculo da Tabuada Codifica um programa que receba um inteiro positivo, e imprima a sua tabuada (da multiplicação), de 1 a 10 ...
Resultados 12 Feb 2007 - 19:53 - r8 JoseBacelarAlmeida
Resultados de Exames, Correcções e TPS 2004/2005 Notas práticas: Notas Finais (1ª Época): http://natura.di.uminho.pt/~jj/Education.PP2 05/notaJulho.pdf PDF 2003 ...
SumariosPP2 15 Jun 2004 - 16:31 - r8 JoseCarlosRamalho
Sumários do ano lectivo 2003/2004 Aulas Teóricas (LMCC) 2004 02 26: Apresentação da disciplina: avaliação, ferramentas e plataformas a utilizar. Apresentação da ...
TrabalhosPraticos 12 Feb 2007 - 19:53 - r19 JoseBacelarAlmeida
Trabalhos Práticos Regulamento. Relatório: Sugere se LaTeX mini manual html de LaTeX fazer download do esqueleto ...
TrabalhosPraticosRegulamento 12 Feb 2007 - 19:53 - r3 JoseBacelarAlmeida
Regulamento para a Elaboração e Entrega dos Trabalhos Práticos 1 Os trabalhos práticos deverão ser realizados em equipes de 3 elementos. Não serão aceites equipes ...
TrabalhosPraticosSubmissao 16 Mar 2004 - 19:54 - r3 JoseCarlosRamalho
Regras para a submissão dos Trabalhos Práticos Este ano, todos os trabalhos terão de ser enviados electronicamente através do site: http://labdotnet.di.uminho.pt/submitPP2 ...
TrabalhosPraticosTP1 12 Feb 2007 - 19:53 - r4 JoseBacelarAlmeida
Trabalho Prático Nº1 Objectivos e Organização Este trabalho prático tem como principais objectivos : familiarização com o computador em ambiente linux , e ...
TrabalhosPraticosTP2 17 Mar 2004 - 10:03 - r4 JoseCarlosRamalho
Trabalho Prático II Objectivos e Organização Este trabalho prático tem como principais objectivos: familiarização com tipos de dados estruturados; utiliza ...
TrabalhosPraticosTP3 02 May 2004 - 11:00 - r2 JoseCarlosRamalho
Trabalho Prático III TPs: Gestor Bibliográfico; Agência Matrimonial. Objectivos e Organização Este trabalho prático tem como principais objectivos: familiariza ...
WebChanges 16 Aug 2001 - 19:58 - NEW PeterThoeny?
WebHome 12 Feb 2007 - 19:53 - r18 JoseBacelarAlmeida
Paradigmas de Programação II 1ºano da LMCC e LESI 2004/2005 Equipe Docente: José João Almeida João Alexandre Saraiva Novidades ...
WebIndex 24 Nov 2001 - 11:41 - r2 PeterThoeny?
See also the faster WebTopicList
WebLeftBar 16 Aug 2004 - 09:01 - NEW ArthurClemens?
Web Web Home Changes Index Search Webs
WebNotify 10 Mar 2004 - 14:45 - r3 AlcinoCunha
This is a subscription service to be automatically notified by e mail when topics change in this Education/PP2 web. This is a convenient service, so you do not have ...
WebPreferences 12 Mar 2004 - 18:36 - r6 JoseCarlosRamalho
TWiki.Education/PP2 Web Preferences The following settings are web preferences of the TWiki.Education/PP2 web. These preferences overwrite the site level preferences ...
WebRss 30 Jan 2003 - 08:15 - NEW PeterThoeny?
TWiki's Education/PP2 web /view/Education/PP2 The Education/PP2 web of TWiki. TWiki is a Web Based Collaboration Platform for the Corporate World.
WebSearch 08 Aug 2001 - 05:26 - NEW PeterThoeny?
WebSearchAdvanced 17 May 2007 - 14:51 - NEW TWikiGuest
WebStatistics 28 Jan 2007 - 09:37 - r881 TWikiGuest
Statistics for Education/PP2 Web Month: Topic views: Topic saves: File uploads: Most popular topic views: Top contributors for topic save ...
WebTopicList 24 Nov 2001 - 11:40 - NEW PeterThoeny?
See also the verbose WebIndex.
Found 40 topics.

See also the faster WebTopicList

WebLeftBar 16 Aug 2004 - 09:01 - NEW ArthurClemens?

WebNotify 10 Mar 2004 - 14:45 - r3 AlcinoCunha
This is a subscription service to be automatically notified by e-mail when topics change in this Education/PP2 web. This is a convenient service, so you do not have to come back and check all the time if something has changed. To subscribe, please add a bullet with your WikiName in alphabetical order to this list:

Format: <space><space><space>, followed by:
* Main.yourWikiName (if you want that the e-mail address in your home page is used)
* Main.yourWikiName - yourEmailAddress (if you want to specify a different e-mail address)
* Main.anyTWikiGroup (if you want to notify all members of a particular TWikiGroup)

Related topics: TWikiUsers, TWikiRegistration

WebPreferences 12 Mar 2004 - 18:36 - r6 JoseCarlosRamalho

TWiki.Education/PP2 Web Preferences

The following settings are web preferences of the TWiki.Education/PP2 web. These preferences overwrite the site-level preferences in TWikiPreferences, and can be overwritten by user preferences (your personal topic, i.e. TWikiGuest in the TWiki.Main web)

Preferences:

    • Set WEBTITLE = Paradigmas da Programação II

  • List of topics of the TWiki.Education/PP2 web:

  • Web specific background color: (Pick a lighter one of the StandardColors)
    • Set WEBBGCOLOR = #33CCFF

  • List this web in the SiteMap:
    • If yes, set SITEMAPLIST to on, do not set NOSEARCHALL, and add the "what" and "use to..." description for the site map. Make sure to list only links that include the name of the web, e.g. Education/PP2.Topic links.
    • Set SITEMAPLIST = on
    • Set SITEMAPWHAT = Paradigmas da Programação 2
    • Set SITEMAPUSETO = ...collaborate on

  • Exclude web from a web="all" search: (Set to on for hidden webs)
    • Set NOSEARCHALL =

  • Default template for new topics and form(s) for this web:
    • WebTopicEditTemplate? : Default template for new topics in this web. (Site-level is used if topic does not exist)
    • TWiki.WebTopicEditTemplate: Site-level default template
    • TWikiForms: How to enable form(s)
    • Set WEBFORMS =

  • Users or groups who are not / are allowed to view / change / rename topics in the Education/PP2 web: (See TWikiAccessControl)
    • Set DENYWEBVIEW =
    • Set ALLOWWEBVIEW =
    • Set DENYWEBCHANGE =
    • Set ALLOWWEBCHANGE = StaffGroup
    • Set DENYWEBRENAME =
    • Set ALLOWWEBRENAME = StaffGroup

  • Web preferences that are not allowed to be overridden by user preferences:
    • Set FINALPREFERENCES = WEBTOPICLIST, DENYWEBVIEW, ALLOWWEBVIEW, DENYWEBCHANGE, ALLOWWEBCHANGE, DENYWEBRENAME, ALLOWWEBRENAME

Notes:

  • A preference is defined as:
    6 spaces * Set NAME = value
    Example:
    • Set WEBBGCOLOR = #33CCFF
  • Preferences are used as TWikiVariables by enclosing the name in percent signs. Example:
    • When you write variable %WEBBGCOLOR% , it gets expanded to #33CCFF .
  • The sequential order of the preference settings is significant. Define preferences that use other preferences first, i.e. set WEBCOPYRIGHT before WIKIWEBMASTER since %WEBCOPYRIGHT% uses the %WIKIWEBMASTER% variable.
  • You can introduce new preferences variables and use them in your topics and templates. There is no need to change the TWiki engine (Perl scripts).

Related Topics:

WebRss 30 Jan 2003 - 08:15 - NEW PeterThoeny?
TWiki's Education/PP2 web http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2 The Education/PP2 web of TWiki. TWiki is a Web-Based Collaboration Platform for the Corporate World. en-us Copyright 2020 by contributing authors TWiki Administrator [webmaster@di.uminho.pt] The contributing authors of TWiki TWiki DIUM.Education/PP2 http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2 /twiki/pub/Main/LocalLogos/um_eengP.jpg WebSearchAdvanced http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/WebSearchAdvanced (last changed by TWikiGuest) 2007-05-17T14:51:38Z guest WebHome http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/WebHome Paradigmas de Programação II 1ºano da LMCC e LESI 2004/2005 Equipe Docente: José João Almeida João Alexandre Saraiva Novidades ... (last changed by JoseBacelarAlmeida) 2007-02-12T19:53:24Z JoseBacelarAlmeida TrabalhosPraticosTP1 http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/TrabalhosPraticosTP1 Trabalho Prático Nº1 Objectivos e Organização Este trabalho prático tem como principais objectivos : familiarização com o computador em ambiente linux , e ... (last changed by JoseBacelarAlmeida) 2007-02-12T19:53:24Z JoseBacelarAlmeida TrabalhosPraticosRegulamento http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/TrabalhosPraticosRegulamento Regulamento para a Elaboração e Entrega dos Trabalhos Práticos 1 Os trabalhos práticos deverão ser realizados em equipes de 3 elementos. Não serão aceites equipes ... (last changed by JoseBacelarAlmeida) 2007-02-12T19:53:23Z JoseBacelarAlmeida TrabalhosPraticos http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/TrabalhosPraticos Trabalhos Práticos Regulamento. Relatório: Sugere se LaTeX mini manual html de LaTeX fazer download do esqueleto ... (last changed by JoseBacelarAlmeida) 2007-02-12T19:53:23Z JoseBacelarAlmeida Resultados http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/Resultados Resultados de Exames, Correcções e TPS 2004/2005 Notas práticas: Notas Finais (1ª Época): http://natura.di.uminho.pt/~jj/Education.PP2 05/notaJulho.pdf PDF 2003 ... (last changed by JoseBacelarAlmeida) 2007-02-12T19:53:23Z JoseBacelarAlmeida RepositorioProblemas http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/RepositorioProblemas Repositório Anárquico de Enunciados Cálculo da Tabuada Codifica um programa que receba um inteiro positivo, e imprima a sua tabuada (da multiplicação), de 1 a 10 ... (last changed by JoseBacelarAlmeida) 2007-02-12T19:53:23Z JoseBacelarAlmeida ProgramaDetalhado http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/ProgramaDetalhado Programa da Disciplina: Paradigmas de Programa o II Licenciatura em Matem tica e Ci ncias da Computa o 1 ano Iacute;ndice Remissivo 1.Introdu o Programa ... (last changed by JoseBacelarAlmeida) 2007-02-12T19:53:23Z JoseBacelarAlmeida NovasPP2 http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/NovasPP2 Notas finais, após o exame de recurso Notas finais http://natura.di.uminho.pt/~jj/Education.PP2 05/notaJulho.pdf PDF (Pequenas correcções nas ... (last changed by JoseBacelarAlmeida) 2007-02-12T19:53:23Z JoseBacelarAlmeida WebLeftBar http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/WebLeftBar Web Web Home Changes Index Search Webs (last changed by ArthurClemens) 2004-08-16T09:01:46Z ArthurClemens SumariosPP2 http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/SumariosPP2 Sumários do ano lectivo 2003/2004 Aulas Teóricas (LMCC) 2004 02 26: Apresentação da disciplina: avaliação, ferramentas e plataformas a utilizar. Apresentação da ... (last changed by JoseCarlosRamalho) 2004-06-15T16:31:00Z JoseCarlosRamalho FichasPraticasFicha8Res http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/FichasPraticasFicha8Res Makefile prog.exe : prog.o lista.o gcc o prog.exe prog.o lista.o prog.o : prog.c lista.h gcc c prog.c lista.o : lista.h lista.c gcc c lista.c lista ... (last changed by JoseCarlosRamalho) 2004-05-20T18:20:15Z JoseCarlosRamalho FichasPraticasFicha9 http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/FichasPraticasFicha9 Ficha Nº9: Estruturas de Dados Dinâmicas Listas Ligadas Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização de estruturas de dados ... (last changed by JoseCarlosRamalho) 2004-05-18T01:04:00Z JoseCarlosRamalho FichasPraticasFicha8 http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/FichasPraticasFicha8 Ficha Nº8: Estruturas de Dados Dinâmicas Listas Ligadas Objectivos: O objectivo principal desta ficha é familiarizar o aluno com a utilização de estruturas de dados ... (last changed by JoseCarlosRamalho) 2004-05-04T09:54:00Z JoseCarlosRamalho TrabalhosPraticosTP3 http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/TrabalhosPraticosTP3 Trabalho Prático III TPs: Gestor Bibliográfico; Agência Matrimonial. Objectivos e Organização Este trabalho prático tem como principais objectivos: familiariza ... (last changed by JoseCarlosRamalho) 2004-05-02T11:00:00Z JoseCarlosRamalho TrabalhosPraticosTP2 http://wiki.di.uminho.pt/twiki/bin/view/Education/PP2/TrabalhosPraticosTP2 Trabalho Prático II Objectivos e Organização Este trabalho prático tem como principais objectivos: familiarização com tipos de dados estruturados; utiliza ... (last changed by JoseCarlosRamalho) 2004-03-17T10:03:14Z JoseCarlosRamalho
WebSearch 08 Aug 2001 - 05:26 - NEW PeterThoeny?

Web Search

Search: \.*

Found 0 topics.

  Advanced search | Help
TIP: to search for all topics that contain "SOAP", "WSDL", a literal "web service", but not "shampoo", write: soap wsdl "web service" -shampoo
Search where:       
(otherwise search Education/PP2 Web only)

Other search options:
WebSearchAdvanced 17 May 2007 - 14:51 - NEW TWikiGuest

Warning
Can't INCLUDE TWiki.WebSearchAdvanced repeatedly, topic is already included.
WebStatistics 28 Jan 2007 - 09:37 - r881 TWikiGuest

Statistics for Education/PP2 Web

Month: Topic
views:
Topic
saves:
File
uploads:
Most popular
topic views:
Top contributors for
topic save and uploads:
Jan 2007 1604 0 0 192 WebHome
140 FichasPraticas
138 WebStatistics
137 TrabalhosPraticos
 80 ProgramaDetalhado
 70 WebIndex
 58 FichasPraticasFicha1
 55 WebChanges
 54 TrabalhosPraticosTP1
 48 RepositorioProblemas
 46 NovasPP2
 
Dec 2006 886 0 0 107 WebHome
104 FichasPraticas
 64 TrabalhosPraticos
 42 FichasPraticasFicha1
 42 WebChanges
 39 WebIndex
 37 SumariosPP2
 36 ProgramaDetalhado
 35 FichasPraticasFicha3
 28 FichasPraticasFicha2
 26 WebStatistics
 
Nov 2006 1312 0 0 206 WebHome
122 TrabalhosPraticos
 96 FichasPraticas
 78 ProgramaDetalhado
 75 WebIndex
 50 WebChanges
 46 RepositorioProblemas
 44 FichasPraticasFicha1Res
 42 AvaliacaoPP2
 40 WebStatistics
 39 SumariosPP2
 
Oct 2006 1622 0 0 307 WebHome
123 TrabalhosPraticos
119 FichasPraticas
107 ProgramaDetalhado
 68 WebIndex
 66 TrabalhosPraticosTP1
 59 WebChanges
 58 SumariosPP2
 56 RepositorioProblemas
 55 WebStatistics
 50 FichasPraticasFicha1
 
Sep 2006 1364 0 0 167 WebHome
125 FichasPraticas
 83 ProgramaDetalhado
 82 TrabalhosPraticos
 68 WebStatistics
 54 WebIndex
 54 NovasPP2
 51 SumariosPP2
 42 WebChanges
 40 RepositorioProblemas
 38 Resultados
 
Aug 2006 1194 0 0 181 WebHome
132 WebStatistics
 90 ProgramaDetalhado
 73 NovasPP2
 65 TrabalhosPraticos
 64 FichasPraticas
 50 SumariosPP2
 46 WebIndex
 41 WebChanges
 36 AvaliacaoPP2
 34 RepositorioProblemas
 
Jul 2006 1953 0 0 390 WebHome
181 NovasPP2
122 WebStatistics
113 Resultados
 97 FichasPraticas
 95 TrabalhosPraticos
 72 ProgramaDetalhado
 62 SumariosPP2
 59 AvaliacaoPP2
 55 WebIndex
 42 WebChanges
 
Jun 2006 2768 0 0 485 WebHome
239 WebStatistics
157 FichasPraticas
157 TrabalhosPraticos
153 NovasPP2
151 ProgramaDetalhado
125 Resultados
 93 RepositorioProblemas
 90 WebIndex
 73 AvaliacaoPP2
 66 SumariosPP2
 
May 2006 2303 0 0 351 WebHome
178 TrabalhosPraticos
146 WebStatistics
133 FichasPraticas
125 ProgramaDetalhado
119 NovasPP2
 83 SumariosPP2
 76 RepositorioProblemas
 70 WebIndex
 63 WebChanges
 62 AvaliacaoPP2
 
Apr 2006 2521 0 0 500 WebHome
216 TrabalhosPraticos
145 ProgramaDetalhado
142 NovasPP2
137 FichasPraticas
110 WebStatistics
 92 RepositorioProblemas
 87 WebChanges
 84 SumariosPP2
 79 TrabalhosPraticosTP1
 75 Resultados
 
Mar 2006 6395 0 0 1352 WebHome
537 TrabalhosPraticos
370 FichasPraticas
363 NovasPP2
293 WebStatistics
275 ProgramaDetalhado
209 SumariosPP2
202 RepositorioProblemas
188 AvaliacaoPP2
177 Resultados
170 WebChanges
 
Feb 2006 4690 0 0 1231 WebHome
416 TrabalhosPraticos
274 FichasPraticas
272 WebStatistics
233 ProgramaDetalhado
157 NovasPP2
156 AvaliacaoPP2
153 RepositorioProblemas
138 Resultados
138 SumariosPP2
134 FichasPraticasFicha1
 
Jan 2006 2670 0 0 350 WebHome
185 TrabalhosPraticos
170 NovasPP2
158 ProgramaDetalhado
141 FichasPraticas
124 WebStatistics
110 SumariosPP2
105 WebChanges
 94 RepositorioProblemas
 91 Resultados
 89 AvaliacaoPP2
 
Dec 2005 3420 0 0 324 WebHome
296 TrabalhosPraticos
288 NovasPP2
225 WebStatistics
200 FichasPraticas
163 SumariosPP2
158 ProgramaDetalhado
117 WebChanges
112 RepositorioProblemas
101 Resultados
 94 TrabalhosPraticosTP1
 
Nov 2005 3007 0 0 430 WebHome
255 TrabalhosPraticos
193 FichasPraticas
188 ProgramaDetalhado
173 NovasPP2
161 SumariosPP2
140 WebChanges
117 WebStatistics
112 RepositorioProblemas
110 WebIndex
 83 AvaliacaoPP2
 
Oct 2005 3291 0 0 705 WebHome
240 TrabalhosPraticos
225 NovasPP2
197 FichasPraticas
179 ProgramaDetalhado
153 SumariosPP2
138 WebStatistics
135 WebChanges
109 WebIndex
108 RepositorioProblemas
 90 Resultados
 
Sep 2005 2321 0 0 316 WebHome
160 ProgramaDetalhado
149 TrabalhosPraticos
131 FichasPraticas
130 NovasPP2
128 SumariosPP2
111 WebStatistics
110 WebIndex
 95 WebChanges
 91 RepositorioProblemas
 84 Resultados
 
Aug 2005 2280 0 0 408 WebHome
170 TrabalhosPraticos
154 NovasPP2
118 WebStatistics
111 ProgramaDetalhado
107 Resultados
104 FichasPraticas
 87 SumariosPP2
 84 WebIndex
 79 RepositorioProblemas
 77 AvaliacaoPP2
 
Jul 2005 12626 3 0 6924 WebHome
2460 Resultados
395 AvaliacaoPP2
328 TrabalhosPraticos
218 FichasPraticas
208 RepositorioProblemas
206 NovasPP2
181 ProgramaDetalhado
151 WebStatistics
119 SumariosPP2
112 Didactica
  3 JoseJoao
Jun 2005 8438 5 0 3377 WebHome
1134 TrabalhosPraticos
720 Resultados
445 AvaliacaoPP2
300 FichasPraticas
249 RepositorioProblemas
242 ProgramaDetalhado
190 NovasPP2
163 WebStatistics
150 SumariosPP2
143 Didactica
  5 JoseJoao
May 2005 8207 4 0 2750 WebHome
1946 TrabalhosPraticos
330 FichasPraticas
288 Resultados
240 AvaliacaoPP2
232 ProgramaDetalhado
231 RepositorioProblemas
203 NovasPP2
201 WebStatistics
186 SumariosPP2
146 Didactica
  4 JoseJoao
Apr 2005 9580 11 1 3555 WebHome
2432 TrabalhosPraticos
412 FichasPraticas
264 RepositorioProblemas
251 ProgramaDetalhado
248 AvaliacaoPP2
221 Resultados
198 SumariosPP2
182 NovasPP2
177 WebStatistics
140 Didactica
 12 JoseJoao
Mar 2005 14113 31 0 4175 WebHome
2991 TrabalhosPraticos
976 FichasPraticas
547 RepositorioProblemas
469 ProgramaDetalhado
430 AvaliacaoPP2
352 TrabalhosPraticosRegulamento
349 SumariosPP2
331 FichasPraticasFicha1
322 Resultados
268 Didactica
 24 JoseJoao
  7 AlbertoSimoes
Feb 2005 5207 2 0 1299 WebHome
398 TrabalhosPraticos
382 FichasPraticas
283 ProgramaDetalhado
261 RepositorioProblemas
213 FichasPraticasFicha1
205 WebStatistics
181 AvaliacaoPP2
167 SumariosPP2
163 Resultados
125 Didactica
  2 JoseCarlosRamalho
Jan 2005 2012 19 0 312 WebHome
166 TrabalhosPraticos
138 FichasPraticas
121 ProgramaDetalhado
120 WebStatistics
 89 SumariosPP2
 88 WebChanges
 77 NovasPP2
 72 AvaliacaoPP2
 72 RepositorioProblemas
 72 WebIndex
 18 JoseCarlosRamalho
  1 JoostVisser
Dec 2004 1888 0 0 269 WebHome
178 TrabalhosPraticos
104 ProgramaDetalhado
 92 FichasPraticas
 82 NovasPP2
 81 WebStatistics
 66 Resultados
 66 SumariosPP2
 65 RepositorioProblemas
 62 WebNotify
 59 AvaliacaoPP2
 
Nov 2004 4658 0 0 1685 WebStatistics
955 WebHome
251 TrabalhosPraticos
140 FichasPraticas
136 NovasPP2
134 ProgramaDetalhado
118 SumariosPP2
106 RepositorioProblemas
 96 WebIndex
 76 AvaliacaoPP2
 76 WebChanges
 
Oct 2004 2414 1 0 315 WebHome
226 WebStatistics
187 TrabalhosPraticos
149 SumariosPP2
143 ProgramaDetalhado
126 FichasPraticas
118 NovasPP2
 92 WebIndex
 92 RepositorioProblemas
 86 WebChanges
 76 TrabalhosPraticosTP1
  1 JoseCarlosRamalho
Sep 2004 3019 0 0 412 WebHome
267 WebStatistics
200 TrabalhosPraticos
154 ProgramaDetalhado
135 SumariosPP2
134 NovasPP2
116 FichasPraticas
111 RepositorioProblemas
103 Resultados
 93 WebIndex
 90 AvaliacaoPP2
 
Aug 2004 4486 0 0 1758 WebStatistics
450 WebHome
261 TrabalhosPraticos
138 NovasPP2
131 FichasPraticas
118 SumariosPP2
115 ProgramaDetalhado
100 Resultados
 90 RepositorioProblemas
 84 WebIndex
 84 AvaliacaoPP2
 
Jul 2004 11159 13 0 4330 WebHome
2648 Resultados
1364 WebStatistics
321 TrabalhosPraticos
291 AvaliacaoPP2
217 FichasPraticas
184 RepositorioProblemas
146 NovasPP2
145 SumariosPP2
142 ProgramaDetalhado
110 Didactica
 13 JoseCarlosRamalho
Jun 2004 9267 23 0 2812 WebHome
1271 WebStatistics
864 TrabalhosPraticos
458 Resultados
408 FichasPraticas
359 AvaliacaoPP2
356 TrabalhosPraticosTP3
273 TrabalhosPraticosSubmissao
224 RepositorioProblemas
202 ProgramaDetalhado
178 Didactica
 21 JoseCarlosRamalho
  2 PedroRangelHenriques
May 2004 9246 37 0 2453 WebHome
1274 WebStatistics
1110 TrabalhosPraticos
1094 TrabalhosPraticosTP3
592 FichasPraticas
242 FichasPraticasFicha8
192 FichasPraticasFicha7
180 Didactica
176 AvaliacaoPP2
170 RepositorioProblemas
169 FichasPraticasFicha8Res
 37 JoseCarlosRamalho
Apr 2004 8451 17 0 2625 WebHome
1463 TrabalhosPraticos
646 FichasPraticas
493 TrabalhosPraticosSubmissao
383 TrabalhosPraticosTP2
329 TrabalhosPraticosRegulamento
296 Didactica
271 FichasPraticasFicha6
270 AvaliacaoPP2
255 RepositorioProblemas
207 ProgramaDetalhado
 17 JoseCarlosRamalho
Mar 2004 17636 93 0 4275 WebHome
2896 TrabalhosPraticos
1595 FichasPraticas
1247 TrabalhosPraticosTP1
977 TrabalhosPraticosTP2
868 TrabalhosPraticosSubmissao
696 TrabalhosPraticosRegulamento
677 RepositorioProblemas
589 FichasPraticasFicha1
537 FichasPraticasFicha2
525 ProgramaDetalhado
 76 JoseCarlosRamalho
 11 AlbertoSimoes
  4 AlcinoCunha
  1 PedroRangelHenriques
  1 JoseJoao

Notes:

  • Do not edit this topic, it is updated automatically. (You can also force an update)
  • TWikiDocumentation tells you how to enable the automatic updates of the statistics.
  • Suggestion: You could archive this topic once a year and delete the previous year's statistics from the table.
WebTopicList 24 Nov 2001 - 11:40 - NEW PeterThoeny?

See also the verbose WebIndex.

Found 40 topics.

  Simple search | Help
TIP: to search for all topics that contain "SOAP", "WSDL", a literal "web service", but not "shampoo", write: soap wsdl "web service" -shampoo
Search where:


(otherwise search Education/PP2 Web only)
Sort results by:


Make search:
(semicolon ; for and) about regular expression search
Don't show:

Do show: about BookView
Limit results to: (all to show all topics)

Other search options:
WebStatistics 28 Jan 2007 - 09:37 - r881 TWikiGuest

Statistics for Education/PP2 Web

Month: Topic
views:
Topic
saves:
File
uploads:
Most popular
topic views:
Top contributors for
topic save and uploads:
Jan 2007 1604 0 0 192 WebHome
140 FichasPraticas
138 WebStatistics
137 TrabalhosPraticos
 80 ProgramaDetalhado
 70 WebIndex
 58 FichasPraticasFicha1
 55 WebChanges
 54 TrabalhosPraticosTP1
 48 RepositorioProblemas
 46 NovasPP2
 
Dec 2006 886 0 0 107 WebHome
104 FichasPraticas
 64 TrabalhosPraticos
 42 FichasPraticasFicha1
 42 WebChanges
 39 WebIndex
 37 SumariosPP2
 36 ProgramaDetalhado
 35 FichasPraticasFicha3
 28 FichasPraticasFicha2
 26 WebStatistics
 
Nov 2006 1312 0 0 206 WebHome
122 TrabalhosPraticos
 96 FichasPraticas
 78 ProgramaDetalhado
 75 WebIndex
 50 WebChanges
 46 RepositorioProblemas
 44 FichasPraticasFicha1Res
 42 AvaliacaoPP2
 40 WebStatistics
 39 SumariosPP2
 
Oct 2006 1622 0 0 307 WebHome
123 TrabalhosPraticos
119 FichasPraticas
107 ProgramaDetalhado
 68 WebIndex
 66 TrabalhosPraticosTP1
 59 WebChanges
 58 SumariosPP2
 56 RepositorioProblemas
 55 WebStatistics
 50 FichasPraticasFicha1
 
Sep 2006 1364 0 0 167 WebHome
125 FichasPraticas
 83 ProgramaDetalhado
 82 TrabalhosPraticos
 68 WebStatistics
 54 WebIndex
 54 NovasPP2
 51 SumariosPP2
 42 WebChanges
 40 RepositorioProblemas
 38 Resultados
 
Aug 2006 1194 0 0 181 WebHome
132 WebStatistics
 90 ProgramaDetalhado
 73 NovasPP2
 65 TrabalhosPraticos
 64 FichasPraticas
 50 SumariosPP2
 46 WebIndex
 41 WebChanges
 36 AvaliacaoPP2
 34 RepositorioProblemas
 
Jul 2006 1953 0 0 390 WebHome
181 NovasPP2
122 WebStatistics
113 Resultados
 97 FichasPraticas
 95 TrabalhosPraticos
 72 ProgramaDetalhado
 62 SumariosPP2
 59 AvaliacaoPP2
 55 WebIndex
 42 WebChanges
 
Jun 2006 2768 0 0 485 WebHome
239 WebStatistics
157 FichasPraticas
157 TrabalhosPraticos
153 NovasPP2
151 ProgramaDetalhado
125 Resultados
 93 RepositorioProblemas
 90 WebIndex
 73 AvaliacaoPP2
 66 SumariosPP2
 
May 2006 2303 0 0 351 WebHome
178 TrabalhosPraticos
146 WebStatistics
133 FichasPraticas
125 ProgramaDetalhado
119 NovasPP2
 83 SumariosPP2
 76 RepositorioProblemas
 70 WebIndex
 63 WebChanges
 62 AvaliacaoPP2
 
Apr 2006 2521 0 0 500 WebHome
216 TrabalhosPraticos
145 ProgramaDetalhado
142 NovasPP2
137 FichasPraticas
110 WebStatistics
 92 RepositorioProblemas
 87 WebChanges
 84 SumariosPP2
 79 TrabalhosPraticosTP1
 75 Resultados
 
Mar 2006 6395 0 0 1352 WebHome
537 TrabalhosPraticos
370 FichasPraticas
363 NovasPP2
293 WebStatistics
275 ProgramaDetalhado
209 SumariosPP2
202 RepositorioProblemas
188 AvaliacaoPP2
177 Resultados
170 WebChanges
 
Feb 2006 4690 0 0 1231 WebHome
416 TrabalhosPraticos
274 FichasPraticas
272 WebStatistics
233 ProgramaDetalhado
157 NovasPP2
156 AvaliacaoPP2
153 RepositorioProblemas
138 Resultados
138 SumariosPP2
134 FichasPraticasFicha1
 
Jan 2006 2670 0 0 350 WebHome
185 TrabalhosPraticos
170 NovasPP2
158 ProgramaDetalhado
141 FichasPraticas
124 WebStatistics
110 SumariosPP2
105 WebChanges
 94 RepositorioProblemas
 91 Resultados
 89 AvaliacaoPP2
 
Dec 2005 3420 0 0 324 WebHome
296 TrabalhosPraticos
288 NovasPP2
225 WebStatistics
200 FichasPraticas
163 SumariosPP2
158 ProgramaDetalhado
117 WebChanges
112 RepositorioProblemas
101 Resultados
 94 TrabalhosPraticosTP1
 
Nov 2005 3007 0 0 430 WebHome
255 TrabalhosPraticos
193 FichasPraticas
188 ProgramaDetalhado
173 NovasPP2
161 SumariosPP2
140 WebChanges
117 WebStatistics
112 RepositorioProblemas
110 WebIndex
 83 AvaliacaoPP2
 
Oct 2005 3291 0 0 705 WebHome
240 TrabalhosPraticos
225 NovasPP2
197 FichasPraticas
179 ProgramaDetalhado
153 SumariosPP2
138 WebStatistics
135 WebChanges
109 WebIndex
108 RepositorioProblemas
 90 Resultados
 
Sep 2005 2321 0 0 316 WebHome
160 ProgramaDetalhado
149 TrabalhosPraticos
131 FichasPraticas
130 NovasPP2
128 SumariosPP2
111 WebStatistics
110 WebIndex
 95 WebChanges
 91 RepositorioProblemas
 84 Resultados
 
Aug 2005 2280 0 0 408 WebHome
170 TrabalhosPraticos
154 NovasPP2
118 WebStatistics
111 ProgramaDetalhado
107 Resultados
104 FichasPraticas
 87 SumariosPP2
 84 WebIndex
 79 RepositorioProblemas
 77 AvaliacaoPP2
 
Jul 2005 12626 3 0 6924 WebHome
2460 Resultados
395 AvaliacaoPP2
328 TrabalhosPraticos
218 FichasPraticas
208 RepositorioProblemas
206 NovasPP2
181 ProgramaDetalhado
151 WebStatistics
119 SumariosPP2
112 Didactica
  3 JoseJoao
Jun 2005 8438 5 0 3377 WebHome
1134 TrabalhosPraticos
720 Resultados
445 AvaliacaoPP2
300 FichasPraticas
249 RepositorioProblemas
242 ProgramaDetalhado
190 NovasPP2
163 WebStatistics
150 SumariosPP2
143 Didactica
  5 JoseJoao
May 2005 8207 4 0 2750 WebHome
1946 TrabalhosPraticos
330 FichasPraticas
288 Resultados
240 AvaliacaoPP2
232 ProgramaDetalhado
231 RepositorioProblemas
203 NovasPP2
201 WebStatistics
186 SumariosPP2
146 Didactica
  4 JoseJoao
Apr 2005 9580 11 1 3555 WebHome
2432 TrabalhosPraticos
412 FichasPraticas
264 RepositorioProblemas
251 ProgramaDetalhado
248 AvaliacaoPP2
221 Resultados
198 SumariosPP2
182 NovasPP2
177 WebStatistics
140 Didactica
 12 JoseJoao
Mar 2005 14113 31 0 4175 WebHome
2991 TrabalhosPraticos
976 FichasPraticas
547 RepositorioProblemas
469 ProgramaDetalhado
430 AvaliacaoPP2
352 TrabalhosPraticosRegulamento
349 SumariosPP2
331 FichasPraticasFicha1
322 Resultados
268 Didactica
 24 JoseJoao
  7 AlbertoSimoes
Feb 2005 5207 2 0 1299 WebHome
398 TrabalhosPraticos
382 FichasPraticas
283 ProgramaDetalhado
261 RepositorioProblemas
213 FichasPraticasFicha1
205 WebStatistics
181 AvaliacaoPP2
167 SumariosPP2
163 Resultados
125 Didactica
  2 JoseCarlosRamalho
Jan 2005 2012 19 0 312 WebHome
166 TrabalhosPraticos
138 FichasPraticas
121 ProgramaDetalhado
120 WebStatistics
 89 SumariosPP2
 88 WebChanges
 77 NovasPP2
 72 AvaliacaoPP2
 72 RepositorioProblemas
 72 WebIndex
 18 JoseCarlosRamalho
  1 JoostVisser
Dec 2004 1888 0 0 269 WebHome
178 TrabalhosPraticos
104 ProgramaDetalhado
 92 FichasPraticas
 82 NovasPP2
 81 WebStatistics
 66 Resultados
 66 SumariosPP2
 65 RepositorioProblemas
 62 WebNotify
 59 AvaliacaoPP2
 
Nov 2004 4658 0 0 1685 WebStatistics
955 WebHome
251 TrabalhosPraticos
140 FichasPraticas
136 NovasPP2
134 ProgramaDetalhado
118 SumariosPP2
106 RepositorioProblemas
 96 WebIndex
 76 AvaliacaoPP2
 76 WebChanges
 
Oct 2004 2414 1 0 315 WebHome
226 WebStatistics
187 TrabalhosPraticos
149 SumariosPP2
143 ProgramaDetalhado
126 FichasPraticas
118 NovasPP2
 92 WebIndex
 92 RepositorioProblemas
 86 WebChanges
 76 TrabalhosPraticosTP1
  1 JoseCarlosRamalho
Sep 2004 3019 0 0 412 WebHome
267 WebStatistics
200 TrabalhosPraticos
154 ProgramaDetalhado
135 SumariosPP2
134 NovasPP2
116 FichasPraticas
111 RepositorioProblemas
103 Resultados
 93 WebIndex
 90 AvaliacaoPP2
 
Aug 2004 4486 0 0 1758 WebStatistics
450 WebHome
261 TrabalhosPraticos
138 NovasPP2
131 FichasPraticas
118 SumariosPP2
115 ProgramaDetalhado
100 Resultados
 90 RepositorioProblemas
 84 WebIndex
 84 AvaliacaoPP2
 
Jul 2004 11159 13 0 4330 WebHome
2648 Resultados
1364 WebStatistics
321 TrabalhosPraticos
291 AvaliacaoPP2
217 FichasPraticas
184 RepositorioProblemas
146 NovasPP2
145 SumariosPP2
142 ProgramaDetalhado
110 Didactica
 13 JoseCarlosRamalho
Jun 2004 9267 23 0 2812 WebHome
1271 WebStatistics
864 TrabalhosPraticos
458 Resultados
408 FichasPraticas
359 AvaliacaoPP2
356 TrabalhosPraticosTP3
273 TrabalhosPraticosSubmissao
224 RepositorioProblemas
202 ProgramaDetalhado
178 Didactica
 21 JoseCarlosRamalho
  2 PedroRangelHenriques
May 2004 9246 37 0 2453 WebHome
1274 WebStatistics
1110 TrabalhosPraticos
1094 TrabalhosPraticosTP3
592 FichasPraticas
242 FichasPraticasFicha8
192 FichasPraticasFicha7
180 Didactica
176 AvaliacaoPP2
170 RepositorioProblemas
169 FichasPraticasFicha8Res
 37 JoseCarlosRamalho
Apr 2004 8451 17 0 2625 WebHome
1463 TrabalhosPraticos
646 FichasPraticas
493 TrabalhosPraticosSubmissao
383 TrabalhosPraticosTP2
329 TrabalhosPraticosRegulamento
296 Didactica
271 FichasPraticasFicha6
270 AvaliacaoPP2
255 RepositorioProblemas
207 ProgramaDetalhado
 17 JoseCarlosRamalho
Mar 2004 17636 93 0 4275 WebHome
2896 TrabalhosPraticos
1595 FichasPraticas
1247 TrabalhosPraticosTP1
977 TrabalhosPraticosTP2
868 TrabalhosPraticosSubmissao
696 TrabalhosPraticosRegulamento
677 RepositorioProblemas
589 FichasPraticasFicha1
537 FichasPraticasFicha2
525 ProgramaDetalhado
 76 JoseCarlosRamalho
 11 AlbertoSimoes
  4 AlcinoCunha
  1 PedroRangelHenriques
  1 JoseJoao

Notes:

  • Do not edit this topic, it is updated automatically. (You can also force an update)
  • TWikiDocumentation tells you how to enable the automatic updates of the statistics.
  • Suggestion: You could archive this topic once a year and delete the previous year's statistics from the table.
WebTopicList 24 Nov 2001 - 11:40 - NEW PeterThoeny?

See also the verbose WebIndex.

Found 40 topics.
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback
Syndicate this site RSSATOM