|
UNIVERSIDADE
FEDERAL DE CAMPINA GRANDE CENTRO DE
ENGENHARIA ELÉTRICA E INFORMÁTICA DEPARTAMENTO DE
SISTEMAS E COMPUTAÇÃO INTRODUÇÃO À
CIÊNCIA DA COMPUTAÇÃO TURMA 05 – Prof.
Roberto Faria |
|
3º LISTA DE EXERCÍCIOS (Preparação para 3ª. prova)
Enviar para o e-mail icc.t05.exercicios@gmail.com
até o dia da 3ª Prova.
Formato do e-mail a ser
enviado:
Assunto: Lista-03:
nome do aluno (ou da dupla de alunos).
Texto:
Nome completo e
matrícula do aluno (ou da dupla de alunos).
Anexo:
arquivos fonte em
Fortran (.f95) contendo os programas-soluções desta
lista. O nome de cada programa deve ser: lista03_progxx.f96
(xx é o número da questão). O nome do aluno ou da dupla deve estar como
comentário no programa.
QUESTÕES:
01.
Faça
um programa que leia e imprima um conjunto de N inteiros. Em seguida, calcule a
média dos elementos desse conjunto e imprima apenas os elementos acima da
média. Use uma função para calcular a média dos elementos do conjunto.
02.
Faça
um programa para ler vários números inteiros no intervalo [100..900] e para cada número lido imprima a centena, a dezena e a unidade do número
lido. O programa encerra quando é lido um número fora do intervalo indicado. Use
a sub-rotina extrai_digitos() que recebe como parâmetro de entrada o
número que foi lido e retorna como parâmetros de saída a centena, a dezena e a
unidade desse número.
03.
Faça
um programa que leia e imprima um vetor com N elementos inteiros e, em seguida,
se X pertencer ao conjunto imprima as posições (os índices) onde os valores
iguais a X estão armazenados no vetor. Os valores de X e N serão informados
pelo usuário e N sempre será menor ou igual a 100. Além das sub-rotinas le_conjunto() e imprime_conjunto(),
use:
1.
a função x_pertence_ao_conjunto()
que recebe um conjunto de inteiros, o tamanho do conjunto e um inteiro X a ser
procurado no conjunto. A função deverá retornar verdadeiro se X pertence ao
conjunto e falso, caso contrário;
2.
a sub-rotina imprime_posicoes_de_x_no_conjunto() que recebe um conjunto de
inteiros, o tamanho do conjunto e um inteiro X. A sub-rotina deverá imprimir as
posições (os índices) onde os valores iguais a X estão armazenados no vetor.
04.
Faça um programa que leia dois conjuntos, cada um com no máximo 10
elementos inteiros e imprima os dois conjuntos lidos e mais dois conjuntos: o conjunto união e o conjunto interseção.
05.
Faça um programa que leia uma matriz MxN de
números inteiros, gerar a matriz transposta e em seguida imprimir as duas
matrizes. M e N serão informados pelo usuário e sempre serão menores ou iguais
a 10.
06.
Faça um programa para gerar uma matriz quadrada de ordem igual à N
(máximo 10), com os elementos da diagonal principal iguais a zero, os elementos
acima da diagonal principal iguais a 1 e os elementos
abaixo da diagonal principal iguais a -1. O programa deve mostrar a matriz
gerada.
07.
Faça um programa para ler duas matrizes MxN de
números inteiros e imprimir uma mensagem dizendo se estas matrizes são ou não
idênticas. M e N serão informados pelo usuário e sempre serão menores ou iguais
a 10. Além das sub-rotinas, le_matriz() e imprime_matriz(), use uma função sao_identicas() que recebe as matrizes,
suas dimensões e retorna verdadeiro, se as matrizes forem idênticas e falso,
caso contrário.
08.
Faça um programa para ler uma matriz M x N de números inteiros e
determinar o maior elemento em cada coluna da matriz. Use uma função que receba a matriz, o número de
linhas dessa matriz e o número de uma das colunas dessa matriz. A função deverá
retornar a soma dos elementos da coluna indicada.
09.
Faça um programa para verificar se N números inteiros positivos são ou não
primos. O programa deverá utilizar as seguintes funções:
·
eh_primo() que recebe um inteiro positivo e retorna verdadeiro ou
falso, se o número recebido é ou não primo. A função eh_primo() usa a função conta_divisores();
·
conta_divisores() que recebe um inteiro e retorna a quantidade de
divisores que este inteiro possui. A função conta_divisores() usa a função eh_divisor();
·
eh_divisor() que recebe dois
inteiros e retorna verdadeiro se o primeiro argumento é divisor do segundo e,
caso contrário, retorna falso.
10.
Faça um programa em FORTRAN para efetuar a multiplicação de uma matriz
inteira MxN (máximo 10x10) por um escalar também
inteiro. O programa usara três sub-rotinas: uma para ler matriz
, uma para efetuar a multiplicação da matriz operando pelo escalar e
outra para imprimir, de cada vez, as matrizes (operando e resultante).