UFCG/CCT/DSC
Disciplina: Introdução à Ciência da Computação – Turmas 01, 02 e 04
Período 2014.1
Professor: Roberto M. de Faria/Ulrich Schiel
Escreva um programa que utilize uma função que receba um inteiro de 9 dígitos e retorne a soma destes dígitos. O programa lerá o inteiro e apresentará a soma.
Escreva um programa que leia um conjunto inteiro de 20 elementos e um valor para ser pesquisado neste conjunto. O programa informará se o valor pesquisado está presente ou não no conjunto, utilizará uma sub-rotina para ler o conjunto e utilizará uma função para fazer a pesquisa. A função quando encontra o valor procurado, retorna a posição do valor no conjunto e retorna 0, caso o valor não seja encontrado.
Escreva um programa que mostre o determinante de uma matriz inteira 3x3. O programa usa um sub-rotina para ler a matriz e uma função para o calculo do determinante.
Escreva um programa que mostre o seno de N ângulos em radianos. O seno será calculado por uma função que utiliza os 5 primeiros termos da série:
X3 x5 x7 x9
seno(x) = x - ---- + ---- - ---- + ---- - ...
3! 5! 7! 9!
Escreva um programa que utilize uma função que converta um número inteiro positivo da base decimal para binária. O programa lê o número decimal e apresenta o binário.
Escreva um programa que leia um número inteiro entre 0 e 999 e apresente-o por extenso. O programa usa uma função que recebe o inteiro e retorna seu valor por extenso.
Escreva um programa que utilize uma sub-rotina que receba uma quantidade de segundos decorridos e retorne o valor correspondente em quatro variáveis: dias, horas, minutos e segundos. O programa lerá e converterá e mostrará vários tempos em segundos e, parará quando ler um tempo negativo.
Escreva um programa que recebe uma lista de N nomes e os mostra em ordem crescente. O programa usa uma sub-rotina para a ordenação dos nomes.
OBS: Assuma que N será sempre menor ou igual a 50.
Escreva um programa que lê uma matriz inteira 6x6 e mostra o maior e o menor valores da matriz. O programa utiliza uma sub-rotina que encontra o menor e o maior valor da matriz.
Escreva um programa que utilize uma sub-rotina que calcule a matriz transposta de uma matriz real 4x5. O programa lê a matriz original através de uma sub-rotina. O programa também apresenta as matrizes original e transposta através de uma sub-rotina que recebe a matriz e suas dimensões.
Escreva um programa que leia 20 valores para um conjunto e os mostre na ordem de armazenamento e também na ordem inversa. A inversão dos dados no conjunto será feita por uma sub-rotina.
Escreva um programa que receba uma data como um único inteiro (ddmmaaaa) e apresente a data na forma: dd/mm/aaaa. O programa usa uma sub-rotina que recebe a data num único valor e devolve em variáveis separadas: dia mes e ano.
O programa abaixo usa uma função CHAR_TO_NUM() que converte uma cadeia de caracteres numéricos em um inteiro. Modifique-o para converter cadeias de números com pontos de milhar em números inteiros. P.ex. “3.125.000” passa a ser o número 3125000. Considere um tamanho fixo de caracteres numéricos com 9 posições, incluindo os pontos.
PROGRAM CONVERTE_CHAR_NUM
INTEGER NUMERO, CHAR_TO_NUM
CHARACTER (LEN=10) NUMCHAR
WRITE (*,*) "ENTRE COM O NUMERO"
READ(*,*) NUMCHAR
NUMERO = CHAR_TO_NUM(NUMCHAR)
WRITE (*,*) "A CONVERSAO DE ", NUMCHAR, "EH O NÚMERO ", NUMERO
STOP
END PROGRAM CONVERTE_CHAR_NUM
a) Modifique o programa adaptando o tamanho de NUMCHAR, troque CHAR_TO-NUM() por NUM_COM_PONTO() e que a saída de NUMERO seja no formato I7.
b) Programe a função NUM_COM_PONTO() extraindo de NUMCHAR as partes de milhâo, fazendo MILHAO = NUMCHAR(1:1), os milhares usando NUMCHAR(3:5) e as centenas com NUMCHAR(7:9). Converta estes digitos em números usando CHAR_TO_NUM() e retorne, como resultado, a soma destas partes ajustando os milhares e milhões.