...collaborate on
View   r2  >  r1  ...

Ficha3 2 - 13 Mar 2005 - Main.JoseCarlosRamalho
Line: 1 to 1
 
META TOPICPARENT name="FichasPraticas"

Ficha Nº3

Objectivos:

Changed:
<
<
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.

>
>
O objectivo principal desta ficha é familiarizar o aluno com a codificação de algoritmos um pouco mais complexos alguns deles envolvendo manipulação de strings. Outro dos objectivos, é a integração com a disciplina de Arquitectura de Computadores, pelo que no fim da ficha aparece um conjunto de problemas sobre conversão de representações numéricas.
  Para atingir esse fim, o aluno irá desenvolver pequenos algoritmos e tentar codificá-los em C.
Added:
>
>
Nota: os exercícios 2, 3, 4 e 9 são de resolução opcional. Na ficha a submeter ao sistema só são obrigatórios os restantes.
 

Exercícios:

Changed:
<
<
[Exercício1] [Exercício2] [Exercício3] [Exercício4] [Exercício5] [Exercício6]
>
>
[Exercício1] [Exercício2] [Exercício3] [Exercício4] [Exercício5] [Exercício6] [Exercício7] [Exercício8] [Exercício9]
 
Line: 86 to 86
  fib(n) = fib(n-1) + fib(n-2) para n>=2
Added:
>
>

Exercício Nº7: Conversão decimal-binário

Depois de estudares o algoritmo das divisões sucessivas para a conversão de números decimais em números binários, desenvolvido na aula teórico-prática, codifica-o num programa em C.

Exercício Nº8: Conversão binário-decimal

Depois de teres resolvido o problema anterior, tenta resolver o problema inverso. Nota que os números binários são representados numa string com os carácteres 0 e 1.

Exercício Nº9: Conversão binário-hexadecimal

Pensa agora com converter um número binário em hexadecimal. Cria um programa em C para realizar esta tarefa.

 -- JoseCarlosRamalho - 07 Mar 2005

Ficha3 1 - 07 Mar 2005 - Main.JoseCarlosRamalho
Line: 1 to 1
Added:
>
>
META TOPICPARENT name="FichasPraticas"

Ficha Nº3

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 - 07 Mar 2005


Revision 2r2 - 13 Mar 2005 - 10:45:36 - JoseCarlosRamalho
Revision 1r1 - 07 Mar 2005 - 08:56:28 - JoseCarlosRamalho
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