Você está na página 1de 6

Universidade Estadual de Feira de Santana

Engenharia de Computao
EXA-801 Programao e Algoritmos I
Prof. Matheus Giovanni Pires

Exerccios de Funes
1. Escreva um programa que leia um nmero e contenha uma funo. Esta funo deve receber por
parmetro o nmero verificar e retornar o valor 1 se o nmero for soluo da equao 2x2 - 7x + 3 =
0. Caso o nmero no seja soluo da equao, retornar o valor zero. A funo principal deve
recebe o valor de retorno e imprimir uma mensagem informando se o valor ou no soluo da
equao.
2. Escreva uma funo C que receba como parmetro o ngulo que uma linha faz com o eixo positivo
X e determina e retorna o quadrante que essa linha reside. A determinao do quadrante dada
atravs da seguinte tabela:
ngulo com o eixo positivo X Quadrante
Entre 0 e 90 graus 1
Entre 90 e 180 graus 2
Entre 180 e 270 graus 3
Entre 270 e 360 graus 4

Se o ngulo for exatamente 0, 90, 180, ou 270 graus, a linha correspondente no reside em nenhum
quadrante mas fica em cima de um eixo. Para esta situao, sua funo deve retornar 0. Um ngulo
fora do intervalo entre 0 e 360 deve resultar no retorno do valor 1. A funo principal deve imprimir
o valor retornado.
3. Escreva um programa que leia um nmero A (representando o nmero de alqueires) e uma letra (P
para Paulista, M para Mineiro e B para baiano). O programa deve chamar uma funo que recebe
por parmetro o nmero A e o caractere lido, e converte A para um valor em metros quadrados, e
retorna o valor encontrado segundo as informaes dadas logo abaixo. A funo principal deve
mostrar na tela o valor retornado.
Dado: 1 alqueire Paulista = 24200 m2
1 alqueire Mineiro = 48400 m2
1 alqueire baiano = 96 800 m2
4. Escreva um programa que contenha uma funo. A funo deve receber por parmetro dois valores
(um para comprimento e outro para largura), calcular e apresentar na tela a rea de retngulos
atravs da frmula do retngulo = comprimento * largura. Repetir a chamada da funo com a
passagem de parmetros enquanto no for digitado um nmero negativo para o comprimento ou
para a largura.
5. Escreva um programa para ajudar profissionais da rea esportiva a calcular o valor da frequncia
cardaca mnima de treinamento para potncia aerbica. Escreva um programa que contenha uma
funo. Esta funo deve receber por parmetro dois valores (os valores da idade e da frequncia
cardaca de repouso (FCR)), calcular a frequncia cardaca mnima de treinamento para potncia
aerbica e retornar o valor encontrado. Repetir a chamada da funo com a passagem de
parmetros e impresso do resultado enquanto no for digitado um nmero negativo para a idade.
Dado: FCT = FCR + 0.6 x ((220 idade) FCR)
6. Uma das maneiras de se conseguir a raiz quadrada de um nmero subtrair do nmero os mpares
consecutivos a partir de 1, at que o resultado da subtrao seja menor ou igual zero. O nmero
de vezes que se conseguir fazer a subtrao a raiz quadrada exata (resultado 0) ou aproximada
do nmero (resultado negativo).
Exemplo: Raiz de 16
16 - 1 = 15 - 3 = 12 - 5 = 7 - 7 = 0 A raiz de 16 4
1
7. Escreva um programa que leia um inteiro e passe o valor por parmetro para a funo raiz(). A
funo raiz() utiliza o mtodo descrito acima para calcular e retornar a raiz inteira encontrada. A raiz
encontrada dever ser impressa pelo programa principal.
8. Faa uma funo que dado um nmero representando uma temperatura em graus Fahrenheit,
retorne a temperatura em Celsius. Obs: C=(5/9)*(F-32).
9. Escreva uma funo que receba dois nmeros e retorne verdadeiro (1) ou falso (0) indicando se o
primeiro nmero divisvel pelo segundo.
10. Faa uma funo que receba um vetor de 100 elementos e retorne a mdia ponderada, onde os
pesos de cada valor dado pelo seu ndice no vetor.
11. Faa uma funo que dado um nmero n retorne o n-simo nmero de Fibonacci. O nmero de
fibonacci dado por n0=0, n1=1, ni = ni-1+ni-2.
12. Faa uma funo para calcular x elevado a y, sendo y inteiro e no negativo.
13. Simule a execuo do programa abaixo destacando sua sada, ou seja, o que exatamente ser
impresso na tela. Voc deve escrever na ordem em que os dados aparecem.

#include <stdio.h>

void FazAlgo (int, int *, int []);

void main (){


int a = 5, b = 6, c = 7, i, v[4];

for (i = 0; i < 4; i++)


v[i] = i + a;

printf("Os valores do vetor v sao: ");


for (i = 0; i < 4; i++)
printf(" %d", v[i]);

FazAlgo (a + c, &b, v);


printf("\n %d %d % d", a, b, c);
}

void FazAlgo (int x, int *y, int v[]) {


int b, *c;
c = y;
b = x % 4;
x = x + 2;
*y = *y + 3;
printf("\n %d %d %d %d %d", b, x , *y, v[b], *c);
}

14. Escreva um programa que contenha uma estrutura chamada Horrio capaz de armazenar horas,
minutos e segundos. Seu programa dever conter uma funo que recebe um horrio como
parmetro e altera-o para quando comear o horrio de vero.
15. Escreva um programa que leia um valor na unidade copos e faa uma chamada a uma funo
chamada liquido que deve determinar o nmero de gales, quartos e pints equivalentes ao valor em
copos. Em seguida os valores obtidos devem ser impressos na funo principal. Utilize a relao de
2 copos para 1 pint, 4 copos para 1 quarto e 16 copos para 1 galo.

16. Durante uma corrida de automveis com N voltas de durao foram anotados em um arquivo para
um piloto, na ordem, os tempos registrados em cada volta. Fazer um programa que leia o nmero
de voltas de uma corrida, e leia o tempo de cada uma das N voltas de um piloto e armazene-os um
vetor. Seu programa deve conter uma nica funo para calcular:
Melhor tempo;
A volta em que o melhor tempo ocorreu;
2
Tempo mdio das N voltas.
17. Fazer um programa que leia 15 valores reais e os armazene em um vetor B. Seu programa dever
passar o vetor para a funo extremos( ). A funo extremos( ) dever encontrar as posies onde
esto o maior e o menor valor existente no vetor. A funo principal dever imprimir o maior e o
menor valor bem como as respectivas posies no vetor.
18. Escreva um programa que contenha uma funo que recebe um nmero inteiro n > 0 e devolve
(atravs de parmetros) o nmero de dgitos de n e o primeiro dgito de n. Escreva um programa
que l uma seqncia de N inteiros positivos e imprime o nmero de dgitos e o primeiro dgito de
cada um deles.
19. Faa uma funo que receba, como parmetros, um vetor de inteiros e seu tamanho, e retorne 1 se
o vetor estiver ordenado de forma crescente e 0 se no estiver.
20. Escreva um programa que leia duas matrizes 10x10 e passe-as para uma funo que deve retornar
1 se as matrizes so iguais e 0 em caso contrario. A funo principal imprime uma mensagem
baseada no valor retornado.
21. Faa um funo que receba um vetor com 10 nmeros e informe a quantidade de ocorrncias do
ltimo nmero lido. Por exemplo, para a sequncia 38 4 23 5 6 7 4 12 4, o resultado deve ser O
nmero 4 apareceu 3 vezes.
22. Escreva um programa que leia um vetor de 50 nmeros inteiros e passe-o para uma funo que
determina e retorna quantas vezes um nmero tem na posio seguinte um nmero maior. A funo
principal deve imprimir o valor retornado.
23. Escreva um programa que contenha uma funo MAX que recebe como parmetros uma matriz
inteira A de tamanho 9x5 e imprime trs inteiros: k, Lin e Col. O inteiro k o maior elemento de A e
Lin a linha onde este elemento se encontra e Col a coluna onde este elemento se encontra.
Exemplo:

3 7 1 k =8

se A = 1 2 8 ento Lin = 2
5 3 4 Col = 3

Obs.: Se o elemento mximo ocorrer mais de uma vez, indique em Lin e Col qualquer uma das
possveis posies.
24. Escreva um programa que contenha uma funo. Essa funo deve receber por parmetro um vetor
A de inteiros de tamanho 5. A funo deve construir um vetor B de inteiros de tamanho 5 que
dever conter o fatorial de cada elemento de A. Depois mostrar na tela o contedo do vetor B.
Exemplo:
A 4 1 5 3
B 24 1 120 6

25. Escreva um programa que contenha uma funo que receba como parmetros uma frase (com
tamanho mximo de 350 caracteres) e retorne a quantidade de vogais existentes na string. A funo
principal deve imprimir o valor retornado.
26. Escreva um programa que contenha uma funo que receba com parmetro uma string e retorne
a quantidade de duplas de letras repetidas existem na string. A funo principal deve imprimir o
valor retornado.
27. Escreva um programa que contenha uma funo chamada plural() que recebe por parmetro uma
string contendo uma nica palavra, depois pluraliza a palavra seguindo as regras logo abaixo e
mostra na tela esta nova string :
Se a palavra terminar em l (ele) deve ser retirado o l e acrescentado os caracteres i e
s no final.
Exemplo: a string animal ser transformada em animais.

3
Se a palavra terminar em r ou s ou z deve ser acrescentado os caracteres e e s.

Exemplos: tambor ficar tambores, feliz felizes e vis vieses.

Se a palavra terminar em m deve ser retirado o m e acrescentado os caracteres n e


s.
Exemplo: homem ficar homens.
Todos os casos diferentes dos descritos acima apenas devero receber o caractere s
no final.
Exemplo: casa ficar casas.
28. Escreva um programa que contenha uma funo. Essa funo deve receber como parmetro uma
palavra e retorna 1 se palavra palndromo e 0 em caso contrario. Uma palavra palndromo
quando apresenta a mesma grafia quando lida a partir do incio ou de trs para diante; exemplo:
RIR, SOLOS, ASA, RALAR, ANA, ARARA. A funo principal deve imprimir uma mensagem
informando se a palavra ou no um palndromo.
29. Faa um programa que contenha uma funo. Essa funo deve receber uma string, dois nmeros
inteiros (representando posio inicial e posio final). A funo deve construir uma substring da
string recebida por parmetro, sendo que esta substring o intervalo, na string original, entre os
dois valores tambm recebidos por parmetro (inicial e final). Ao final a funo deve imprimir na tela
esta substring construda.
Exemplo: Se for digitada a string PROGRAMACAO e os valores 4 e 8 dever ser impresso na tela a
substring GRAMA.
30. Escreva uma programa que contenha uma funo que receba como parmetro uma frase e
construa uma nova frase codificada usando o mtodo ZENIT => POLAR. Neste mtodo cada vez
que no texto aparecer uma das letras do conjunto { Z, E, N, I, T} ela deve ser trocada pela
equivalente no conjunto {P, O, L, A, R}. Portanto, cada vez que aparecer uma letra e ela deve ser
substituda pela letra o, uma letra T deve ser substituda pela letra R, assim por diante. Lembrar que
as letras devem conservar as respectivas caixas, isto , letras maisculas continuam maisculas e
minsculas como minsculas.
Letra Original Letra Codificada
Z P
E O
N L
I A
T R

Exemplo:
Texto lido: Este problema eh simples.
Texto codificado: Osro probloma eh samplos

31. Escreva um programa que leia uma string, um caractere e o ndice de uma posio da string e
passe-os como parmetro para uma funo. A funo deve inserir o caractere na string na posio
dada, "empurrando" todos os demais caracteres para a direita.
32. Escreva um programa que contenha uma funo chamada mistura. Esta funo recebe como
parmetros duas strings s1 e s2 e constri uma nova string s3 resultado da mistura das duas strings
recebidas como parmetros. Esta mistura consiste em pegar alternadamente um caractere de cada
string comeando por s1. Se uma string maior que a outra completa-se s3 com os caracteres
restantes da string maior.
Exemplo:
s1 = abcdef
s2 = gggg

4
A string resultante :
s3 = agbgcgdgef
33. Faa um programa que leia uma matriz 12 x 13 de nmeros inteiros e positivos e passe-a para uma
funo que deve multiplicar todos os elementos das linhas pares pelo maior elemento da matriz. A
funo principal deve imprimir a matriz antes e depois da chamada da funo.
34. Faa um programa que leia uma matriz 5 x 5 com nmeros reais e passe-a para uma funo que
deve construir um vetor que conter os menores elementos de cada linha. A funo deve imprimir o
vetor encontrado.
Exemplo:

1 5 2 .5 1

3.7 12 0.5 0.5
2 .3 7 5 .5 2 .3

35. Na teoria dos sistemas, define-se como elemento minimax de uma matriz o menor elemento da
linha onde se encontra o maior elemento da matriz. Escreva um programa que leia uma matriz 10 X
10 de inteiros e passe-a para uma funo que deve encontrar e retornar seu elemento minimax.
36. Escreva um programa que leia dois vetores ordenados crescentemente A e B de 10 posies e
passe-os para uma funo que deve construir um novo vetor C ordenado crescentemente com os
elementos de A e B.
Exemplo:
A
2 5 6 7 9
B
1 3 4 12 15
C
1 2 3 4 5 6 7 9 12 15

37. Dizemos que uma matriz quadrada inteira um quadrado mgico se a soma dos elementos de cada
linha, a soma dos elementos de cada coluna e a soma dos elementos das diagonais principal e
secundria so todas iguais.
Exemplo:

A matriz um quadrado mgico.


Escreva um programa que leia uma matriz 5x5 e passe-a para uma funo que deve retornar 1 se
ela um quadrado mgico e 0 em caso contrrio. A funo principal deve imprimir uma mensagem
informando se a matriz ou no um quadrado mgico.
38. Escreva um programa que contenha uma funo que receba via parmetro uma matriz
bidimensional MAT de valores inteiros, que seja quadrada de ordem 10 (dez). A funo deve
retornar 1 se a matriz for uma matriz identidade e 0 em caso contrrio. 4. Dizemos que uma matriz
quadrada uma matriz identidade se todos os elementos que no pertencem diagonal principal
so todos iguais a zero e todos os elementos da diagonal principal so iguais a 1.

5
39. Faa um programa, que leia em uma matriz a populao dos 10 municpios mais populosos de cada
um dos 26 estados brasileiros. Passe a matriz para uma funo que determina e imprime o nmero
de habitantes do municpio mais populoso e o nmero do estado a que pertence. Considerando que
a primeira coluna contm sempre a populao da capital do estado, calcular e retornar a mdia da
populao das capitais dos 26 estados.
40. Uma floricultura conhecedora de sua clientela gostaria de fazer um programa que pudesse controlar
sempre um estoque mnimo de determinadas plantas, pois todo dia, pela manh, o dono faz novas
aquisies. Criar um programa que deixe cadastrar 50 tipos de plantas e nunca deixar o estoque
ficar abaixo do ideal. Para cada planta, o dono gostaria de cadastrar um cdigo, o estoque ideal e a
quantidade em estoque. Escreva um programa que leia as informaes das 50 plantas e armazene-
as em uma matriz. Em seguida passe esta matriz para uma funo que deve calcular a quantidade
que o dono da loja precisa comprar de cada produto no prximo dia.

Você também pode gostar