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


  1. LISTA DE EXERCÍCIOS EM SALA DE AULA – 07

  1. 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.


  1. 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.


  1. 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.


  1. 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!

  1. 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.


  1. 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.


  1. 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.


  1. 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.


  1. 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.


  1. 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.


  1. 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.


  1. 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.

  2. 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.

2