1. (a) Escreva uma função que recebe um número inteiro n>0 e devolve o número de dígitos de n e o primeiro dígito de n.
(b) Escreva um programa que leia uma seqüência de n inteiros positivos
e imprime o número de dígitos e o primeiro dígito de cada um deles.
2. (a) Escreva uma função que recebe como parâmetro um inteiro positivo ano e devolve 1 se ano for bissexto, 0 em caso contrário. (Um ano é bissexto se (ano % 4 == 0 && (ano % 100 != 0 || ano % 400 == 0)).)
(b) Escreva uma função que tem como parâmetros de entrada e saída três números inteiros, dia, mes e ano, representando uma data, e modifica esses inteiros de forma que eles representem o dia seguinte.
(c) Escreva um programa que leia um inteiro positivo n e uma seqüência de
n datas e imprime, para cada data, o dia seguinte.
3. (a) Escreva uma função de cabeçalho int divide (int *m, int *n, int d) que recebe três inteiros positivos como parâmetros e devolve 1 se d divide pelo menos um entre *m e *n, 0 caso contrário. Fora isso, se d divide *m, divide *m por d, e o mesmo para o *n.
(b) Escreva um programa que lê dois inteiros positivos m e n
e calcula, usando a função acima, o mínimo múltiplo comum entre m
e n, ou seja, mmc(m,n).
4. (a) Escreva uma função com protótipo void somabit (int b1, int b2, int *vaium, int *soma); que recebe três bits (inteiros entre 0 e 1) b1, b2 e *vaium e devolve um bit soma representando a soma dos três e o novo um bit "vai-um" em *vaium.
(b) Escreva um programa que leia dois números em binário e calcula um
número em binário que é a soma dos dois números dados. Utilize a
função acima.
5. (a) Escreva uma função com o protótipo void converte (char ch, int *tipo, char *valor); que recebe um caractere ch e devolve em *tipo 0, se o caractere for um número inteiro, 1 se for uma letra (maiúscula ou minúscula) e 2 caso contrário; e além disso, no caso de ser uma letra, converte para maiúscula, senão devolve ch inalterado.
(b) Escreva um programa que leia uma seqüência de n caracteres e
imprima a seqüência convertida para maiúscula, eliminando os
caracteres que não forem letras ou números.
6. (POLI 94) Considere as seguintes fórmulas de recorrências:
Podemos então montar a seguinte tabela:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Este exercício está dividido em três partes.
(a) Só para ver se você entendeu as fórmulas, qual é o valor de F6 e G6?
(b) Faça uma função de nome valor que recebe um inteiro k >1 e devolve Fk e Gk.
Exemplo: Para k=2, a função deve devolver os valores 1 e 2. Para k=3, a função deve devolver os valores 3 e 8. Para k=4, a função deve devolver os valores 8 e 11.
(c) Faça um programa que lê um inteiro n > 2 e imprime os valores
Seu programa deve obrigatoriamente utilizar a função do
item anterior, mesmo que você não a tenha feito.