Você está na página 1de 13

BACHARELADO EM ENGENHARIA AMBIENTAL

Introdução a Ciência da Computação II

Trabalho Prático 5 - Lista de Exercícios 5


Linguagem C: Funções com Vetores e Matrizes
Isabele Canesin Longo
Ivan Souza Isael De Barros
Vitória Akiyama de Oliveira

1) Faça uma função, em linguagem C, que dado um vetor com n números


inteiros, encontre e retorne o MENOR número presente no vetor.
#include <stdio.h>
#include <locale.h>
int funkao(int vet[],int n ){
int menor, i;
menor = vet[0];
for(i = 1; i < n; i++){
if(vet[i] < menor){
menor = vet[i];
}}
return (menor);
}

int main(){
setlocale(LC_ALL, "Portuguese");

int n, i, menor, posMenor;

printf("Quantos elementos deseja inserir no vetor: ");


scanf("%d", &n);

int vet[n];

for(int i = 0; i < n; i++){


printf("Insira o %d elementos do vetor: ", (i+1));
scanf("%d", &vet[i]);
}

menor=funkao(vet,n);

printf("\n Menor valor: %d",menor);


return 0;}
2) Faça uma função, em linguagem C, que dado um vetor com n números
inteiros, encontre e retorne a POSIÇÃO do MENOR número presente no
vetor.
#include <stdio.h>
#include <locale.h>
int funkao(int vet[],int n ){
int menor, i, posMenor;
menor = vet[0];
posMenor = 1;
for(i = 1; i < n; i++){
if(vet[i] < menor){
menor = vet[i];
posMenor = i+1;
}
}

return (posMenor);
}

int main(){
setlocale(LC_ALL, "Portuguese");

int n, i, menor, posMenor;

printf("Quantos elementos deseja inserir no vetor: ");


scanf("%d", &n);

int vet[n];

for(int i = 0; i < n; i++){


printf("Insira o %d elementos do vetor: ", (i+1));
scanf("%d", &vet[i]);
}

posMenor=funkao(vet,n);

printf("\n Menor valor está na posição: %d",posMenor);

return 0;

3) Faça uma função, em linguagem C, que dado um vetor com n números


reais e um número real constante, multiplique os números presentes no
vetor pela constante indicada.
#include <stdio.h>
#include <stdlib.h>
void Mult(float vet[], int n, float cont){
int i;
for(i=0; i<n; i++){
vet[i]=cont*vet[i];
}
return;
}
int main(){
int i,n;
float cont;
printf("\n Digite o tamanho do vetor:");
scanf("%d", &n);
printf("\n Digite uma constante:");
scanf("%f", &cont);
float vet[n];

for(i=0; i<n; i++){


printf("\n Digite o numero na posicao [%d]: ", i);
scanf("%f", &vet[i]);
}
Mult(vet,n,cont);
printf("\n\n Os numeros que foi colocado no vetor foram multiplicados
pela constante indicada tendo resultado:\n");
for(i=0; i<n; i++){
printf("% .2f", vet[i]);
}
printf("\n\n");
return 0;
}

4) Faça uma função, em linguagem C, que dado um vetor com n números


reais que representam os salários de n funcionários, calcule e retorne a
média salarial dos funcionários.
#include <stdio.h>
#include <stdlib.h>
float Media(float vet[], int n){
int i;
float soma=0.0,media;
for(i=0; i<n; i++){
soma= soma+vet[i];
}
media= soma/n ;
return(media);
}
int main(){
int i,n,L;
printf("\n Insira a quantidade de funcionarios:");
scanf("%d", &n);
float vet[n];
for(i=0; i<n; i++){
printf("\n O salario do funcionario [%d]",i);
scanf("%f", &vet[i]);
}
Media(vet,n);
printf("\n Media dos salarios igual a : %f",Media (vet,n));
return 0;
}
5) Faça uma função, em linguagem C, que dado um vetor original com n
números inteiros e um vetor resultado de tamanho n, armazene no vetor
resultado os elementos do vetor original em ordem inversa. Exemplo:

#include <stdio.h>
#include <stdlib.h>

void vetorinver(int vetorO[], int n, int vetorInver[]){


int i=0,j=0;
for(j=n-1;j>=0;j--){
vetorInver[i]= vetorO[j];
i++;
}
printf("\n O vetor na ordem inversa\n");
for(i=0; i<n; i++){
printf("% d", vetorInver[i]);
}
return;
}

void main(){
int n,i;
printf("\nDigite o tamanho do vetor:");
scanf("%d", &n);
int vetorO[n], vetorInver[n];
for(i=0; i<n; i++){
printf("digite o numero da posicao [%d]: ",i);
scanf("%d", &vetorO[i]);
}
vetorinver(vetorO,n,vetorInver);
}

1
6) Dizemos que um número natural n, com pelo menos dois algarismos, é
palíndromo se:
O 1° algarismo de n é igual ao seu último algarismo,
O 2° algarismo de n é igual ao penúltimo algarismo, e assim
sucessivamente, por exemplo:

Faça uma função, em linguagem C, que dado um vetor com n números


inteiros entre 0 e 9, verifique se a sequência de números inserida no
vetor forma um número palíndromo. Retorne 1 caso o vetor represente
um número palíndromo. Retorne 0 caso o vetor NÃO represente um
número palíndromo.

#include <stdio.h>
#include <stdlib.h>

int Palindromo(int vetor[], int n,int rotev[]){


int i=0,j,cont;
for(j=n-1; j>=0; j--){
rotev[i] = vetor[j];
i++;
}
for(i=0; i<n; i++){
if(vetor[i]==rotev[i]){
cont++;
}
}
if(cont==n){
printf("\n palindromo");
return 1;
}
else{
printf("\n no palindromo");
return 0;
}
}
int main(){
int n,i;
printf("\n Digite o tamanho do vetor >= 2:");
scanf("%d", &n);
int vetor[n],rotev[n];
for(i=0; i<n; i++){
printf("\n Digite o valor do vetor na posicao [%d]:",i);
scanf("%d", &vetor[i]);
}
Palindromo(vetor,n,rotev);
return 0;
}

7) Faça funções, em linguagem C, que dado vetor com n números reais,


calcule e retorne cada uma das seguintes medidas:
a. Média Aritmética (MA)
b. Média Geométrica (MG)
c. Média de Raiz Quadrada (MRQ)

OBS: No exercício 7, deve ser feita uma função para calcular cada
média, ou seja, três funções devem ser implementadas.

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
float MediaA(int n, float vet[]){
int i;

float soma=0,ma;

for(i=0; i<n; i++){


soma = soma+vet[i];
}
ma = soma/n;
return(ma);
}
float MediaG(int n, float vet[]){
int i;
float mg,multi=1;
for(i=0; i<n; i++){
multi=multi*vet[i];
}
mg=pow(multi,(float)1/n);
return(mg);
}
float MediaRaizQ(int n, float vet[]){
int i;
float mrq,pot;
for(i=0; i<n; i++){
pot=pot+pow(vet[i],2);
}
mrq=sqrt(pot/n);
return(mrq);
}
int main(){
int n,i;
float a;
printf("\n Digite quantos numeros serao introduzidos para a media:");
scanf("%d", &n);
float vet[n];
for(i=0; i<n; i++){
printf("\n Digite o numero da posicao [%d]:", i);
scanf("%f", &vet[i]);
}
printf("\n A media aritmetica: %f", MediaA(n,vet));
printf("\n A media geometrica: %f", MediaG(n,vet));
printf("\n A media Raiz quadrada: %f", MediaRaizQ(n,vet));
return 0;
}

8) Faça uma função, em linguagem C, que dado uma Matriz de números


inteiros de dimensão 6 x 6, encontre e retorne o MAIOR elemento
presente na Matriz.
#include <stdio.h>
#include <stdlib.h>

int matrizmaior(int matriz[6][6]){


int i,j,maior=0;

for(i=0; i<6; i++){


for(j=0; j<6; j++){
if(matriz[i][j]>maior){
maior=matriz[i][j];
}}}
return(maior);
}
int main(){
int i,j;
int matriz [6][6];
for(i=0; i<6; i++){
for(j=0; j<6; j++){
printf("\n Digite o numero na posicao [%d][%d]: ",i,j);
scanf("%d", &matriz[i][j]);}
}
printf(" O maior numero da matriz é :%d", matrizmaior(matriz));
return 0;
}

9) Faça uma função, em linguagem C, que dado uma Matriz de números


reais de dimensão 3 x 3, encontre e retorne a soma de todos os
elementos da Matriz.
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

int Soma(int matriz[3][3]){


int i, j;
int Soma = 0;
for(i = 0; i < 3; i++){
for(j = 0; j < 3; j++){
Soma = matriz[i][j] + Soma;
}
}
return (Soma);
}

int main(){
setlocale(LC_ALL, "Portuguese");
int i, j, Result;
int matriz[3][3];
for(i = 0; i < 3; i++){
for(j = 0; j < 3; j++){
printf("\n Digite o elemento na posição[%d][%d]:",i,j);
scanf("%d", &matriz[i][j]);
}
}
Result = Soma(matriz);
printf("\n A soma dos elementos da matriz é: %d", Result);
}

10) Faça uma função, em linguagem C, que dado uma Matriz de números
inteiros de dimensão 9 x 9, encontre e retorne a soma de todos os
números impares presentes na Matriz.
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int SomaImpar(int matriz[9][9]){
int i,j;
float somaI=0;
for(i=0; i<9; i++){
for(j=0; j<9; j++){
if(matriz[i][j]%2==0){}
else{
somaI=somaI+matriz[i][j];
}
}
}
return(somaI);
}
int main(){
setlocale(LC_ALL,"portuguese");
int i,j,a;
int matriz [9][9];
for(i=0; i<9; i++){
for(j=0; j<9; j++){
printf("\n Digite o elemento na posicao[%d][%d]:",i,j);
scanf("%d", &matriz[i][j]);
}
}
a=SomaImpar(matriz);
printf("A soma dos impares:%d",a);
return 0;
}
11) Faça uma função, em linguagem C, que dado uma Matriz de números
reais de dimensão 6 x 6, encontre e retorne a multiplicação de todos os
elementos da Matriz.
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
void Mult (float matriz [6][6], float n){
int i,j;
for(i=0; i<6; i++){
for(j=0; j<6; j++){
matriz[i][j]=matriz[i][j]*n;
}
}
return;
}
int main(){
setlocale(LC_ALL,"portuguese");
int i,j;
float n;
printf("\n Insira o numero que irá multiplicar:");
scanf("%f", &n);
float matriz [6][6];
for(i=0; i<6; i++){
for(j=0; j<6; j++){
printf("\n Digite o numero na posicao [%d][%d]: ",i,j);
scanf("%f", &matriz[i][j]);
}
}
Mult(matriz,n);
printf("A matriz multiplicada é:\n");
for(i=0; i<6; i++){
for(j=0; j<6; j++){
printf("%.3f", matriz[i][j]);
}
printf("\n\n");
}
return 0;
}

12) Faça uma função, em linguagem C, que dado uma Matriz de números
inteiros de dimensão 3 x 3, encontre e retorne a soma dos elementos da
diagonal secundária da Matriz. Observe o exemplo da diagonal
secundária da matriz 3x3:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

int Soma(int matriz[3][3]){


int i=0,j=2,n,m,soma=0;

for(n=0; n<3; n++){


for(m=0; m<3; m++){
if(i==n && j==m ){
soma=soma+matriz[n][m];
i++;
j--;}}}
return(soma);
}
int main(){
setlocale(LC_ALL, "portuguese");
int i,j,soma;
int matriz [3][3];

for(i=0; i<3; i++){


for(j=0; j<3; j++){
printf("Insira o elemento na posição[%d,%d]:",i,j);
scanf("%d", &matriz[i][j]);
}
}
soma=Soma(matriz);
printf("A soma da diagonal segundaria é: %d\n", soma);
return 0;
}

13) Faça uma função, em linguagem C, que dado uma Matriz de números
inteiros de dimensão 3 x 3, permita ao usuário PERMUTAR os elementos
de duas linhas dessa Matriz. Obs: O usuário deve indicar, por meio de
passagem de parâmetros, quais as duas linhas que ele quer permutar.

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

void matrizPer(int matriz[3][3], int copia[3][3], int sub1, int sub2){


int n,m;
for(m = 0; m < 3; m++){
matriz[sub1][m] = copia[sub2][m];
}
for(m = 0; m < 3; m++){
matriz[sub2][m] = copia[sub1][m];
}
return;
}
int main(){
setlocale(LC_ALL,"portuguese");
int i,j,sub1,sub2;
int matriz[3][3], copia[3][3];
for(i = 0; i < 3; i++) {
for(j = 0; j < 3; j++) {
printf(" Digite o valor na posição da matriz[%d][%d]: ", i, j);
scanf("%d", &matriz[i][j]);
copia [i][j] = matriz [i][j];
}
}
printf("Qual primeira linha da matriz irá permutar: ");
scanf("%d", &sub1);
printf("Qual segunda linha da matriz irá permutar: ");
scanf("%d", &sub2);
sub1 = sub1 - 1;
sub2 = sub2 - 1;
matrizPer(matriz,copia,sub1,sub2);
printf("\n A matriz permutada:\n");
for(i = 0; i < 3; i++) {
for(j= 0; j < 3; j++) {
printf("% d", matriz[i][j]);
}
printf("\n\n");
}
return 0;

14) Faça uma função, em linguagem C, que dado duas Matrizes (A e B) de


números inteiros e uma Matriz Resultante (C), todas de dimensão 3 x 3,
obtenha a subtração das duas Matrizes (A e B) e armazene na Matriz
Resultante (C).
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

void matrizPer(int matriz[3][3], int matriz2[3][3], int sub1, int


sub2){
int n,m;
for(m = 0; m < 3; m++){
matriz[sub1][m] = matriz2[sub2][m];
}
for(m = 0; m < 3; m++){
matriz[sub2][m] = matriz2[sub1][m];
}
return;
}
int main(){
setlocale(LC_ALL,"portuguese");
int i,j,sub1,sub2;
int matriz[3][3], matriz2[3][3];
for(i = 0; i < 3; i++) {
for(j = 0; j < 3; j++) {
printf(" Digite o valor na posição da matriz[%d][%d]: ",
i, j);
scanf("%d", &matriz[i][j]);
copia [i][j] = matriz[i][j];
}
}
printf("Qual primeira linha da matriz irá permutar: ");
scanf("%d", &sub1);
printf("Qual segunda linha da matriz irá permutar: ");
scanf("%d", &sub2);
sub1 = sub1 - 1;
sub2 = sub2 - 1;
matrizPer(matriz,matriz2,sub1,sub2);
printf("\n A matriz permutada:\n");
for(i = 0; i < 3; i++) {
for(j= 0; j < 3; j++) {
printf("% d", matriz[i][j]);
}}
return 0;
ENTREGAR NO GOOGLE CLASSROOM (ATÉ O DIA 11/03)
Trabalho em Grupo de até 3 alunos! (O Grupo formado deverá ser o
mesmo em todos os trabalhos realizados até o final do semestre)
(Obs: Representa parte da nota dos trabalhos e a presença nas aulas
dos dias 25/02, 04/03 e 11/03)

Você também pode gostar