Tag: Learn C

Guião laboratorial n.º 0 – exercício 7

“Desenvolva uma função que preencha uma matriz 10×3 da seguinte forma: em cada uma das linhas, a primeira coluna deve ficar com um inteiro entre 1 e 100 introduzido pelo utilizador, a segunda coluna com o quadrado deste valor e a terceira com o cubo. Durante o preenchimento deve garantir que não existem repetições nos valores da primeira coluna. Antes de terminar, a função deve apresentar o conteúdo completo da matriz no monitor e indicar quantas posições têm valores superiores a 1000.”

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

#define LINHAS 10
#define COLUNAS 3

void matrix(){
int vector[LINHAS][COLUNAS];
int conta=0, aux=0, i, verifica=0, superiroes=0;

//preencher a primeia coluna
do{
    printf("\nIntroduza o %d de %d: ", conta, LINHAS);
    scanf("%d", &aux);
    vector[conta][0]=aux;
   for(i=0; i<=conta; i++){
        if(aux==vector[i][0]){
            verifica++;
        }
   }
   if(verifica<2){
        vector[conta][1]=vector[conta][0]*vector[conta][0];
        vector[conta][2]=vector[conta][0]*vector[conta][0]*vector[conta][0];
        printf("\nvalor v: %d foi inserido e (^2)%d e (^3)%d",vector[conta][0],vector[conta][1],vector[conta][2]);
        conta++;
        verifica=0;
   }else{
   verifica=0;
   }

}while(conta<10);

for(i=0; i<LINHAS; i++){
    printf("\n%d \t%d \t%d",vector[i][0],vector[i][1],vector[i][2]);
    if(vector[i][0] >1000){
        superiroes++;
    }
    if(vector[i][1] >1000){
        superiroes++;
    }
    if(vector[i][2] >1000){
        superiroes++;
    }

}

printf("\n\ntotal de numeros maiores que 1000: %d", superiroes);

}


int main ()
{
matrix();
return 0;
}


Tags :

Guião laboratorial n.º 0 – exercício 6

“Desenvolva uma função que calcule e devolva o desvio padrão de um conjunto de valores inteiros indicados pelo utilizador. A função recebe como argumento o número de valores a considerar. O desvio padrão de um conjunto de N valores (x1, x2, …, x) é calculado através da seguinte fórmula, em que X representa a média dos valores:”

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

#define TAM 10

float desvio_padrao(int v[TAM], int e){
float desviop=0;
float media=0,somatorio=0,aux=0;
int soma=0, i=0;

for(i=0; i<e; i++ ){
       soma=soma+v[i];
}

media=soma/e;

for(i=0; i<e; i++ ){
       somatorio=somatorio+((float)v[i]-media)*((float)v[i]-media);
}
aux=somatorio/e;
desviop=sqrt(aux);

return desviop;
}


int main ()
{
int vector[TAM];
int elementos,i;
printf("Quantos elementos tem o conjunto (max %d):", TAM);
scanf("%d",&elementos);
if(elementos<TAM){
        for(i=0; i<elementos;i++){
           printf("\nQual o numero do conjunto para a posicao %d: ", i);
           scanf("%d", &vector[i]);
        }

     printf("\a\no desvio padrao vem: %f", desvio_padrao(vector, elementos));
}else{
     printf("nao foi possivel calcular");

}


return 0;
}

Tags :

Guião laboratorial n.º 0 – exercício 5

“Desenvolva uma função que encontre o segundo maior elemento armazenado num vetor de inteiros. A função recebe como argumentos o nome e a dimensão do vetor. Devolve como resultado o segundo maior valor existente no vetor. Pode assumir que o vetor recebido não contém elementos repetidos.”

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

#define TAM 10

int funcao1(int v[TAM], int t){
int maior=v[0],maior2=v[0];
int vector_sem_maior[TAM];
int i;

//vou procurar o maior
for(i=0; i<t; i++){
    if(v[i]>maior)
    {
        maior=v[i];
    }
}

//vou preencher um vetor auxilar sem o maior
for(i=0; i<t; i++){
    if(v[i]!=maior)
    {
        vector_sem_maior[i]=v[i];
    }else{
        vector_sem_maior[i]=0;
    }
}

//vou procurar o segundo maior
for(i=0; i<t; i++){
    if(vector_sem_maior[i]>maior2)
    {
        maior2=vector_sem_maior[i];
    }
}

return maior2;
}

int main()
{
    int vector[TAM]={0,1,20,3,4,5,6,7,8,29};
    printf("o segundo maior vem: %d", funcao1(vector, TAM));
    return 0;
}


Tags : ,

Guião laboratorial n.º 0 – exercício 4

“Desenvolva uma função que descubra qual o elemento que surge mais vezes num vetor de inteiros. A função recebe como argumentos o nome e a dimensão do vetor. Devolve como resultado o elemento mais comum do vetor (i.e., o que surge mais vezes). Se existirem vários elementos mais comuns, a função deve devolver o maior deles. ”

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

#define TAM 10

int funcao1(int v[TAM], int t){
int i,j,conta=0;
//para guardar a informação acerca das repetições
int aux[TAM];
int maior=0;
int omaisC=aux[0];
int posicao_m=0;

for(i=0; i<TAM; i++){
    for(j=0; j<TAM; j++){
    if(v[i]==v[j]){
        conta++;
    }
    }
    aux[i]=conta;
    printf("%d ",  aux[i]);
    conta=0;
}

for(i=0; i<TAM; i++){
    if(aux[i]>maior)
    {
    maior=aux[i];
    posicao_m=i;

    }
}
    printf("\no maior vem na posicao do vetor %d ",  posicao_m);
    omaisC=v[posicao_m];

return omaisC;
}

int main()
{
    int vector[TAM]={1,1,12,12,4,10,10,10,9,9};
    printf("\a \no mais comum vem: %d", funcao1(vector, TAM));
    return 0;
}


Tags : ,

Guião laboratorial n.º 0 – exercício 3

“Desenvolva uma função que conte quantas vezes surge o maior elemento num vetor de inteiros. A função recebe como argumentos o nome e a dimensão do vetor. Devolve como resultado o número de vezes que o maior elemento surge no vetor.”

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

#define TAM 10

int funcao1(int v[TAM], int t){
int maior=v[0];
int total=0;
int i;

for(i=0; i<t; i++){
    if(v[i]>maior)
    {
        maior=v[i];
    }
}

for(i=0; i<t; i++){
    if(v[i]==maior)
    {
        total=total+1;
    }
}


return total;
}

int main()
{
    int vector[TAM]={0,1,25,3,4,25,20,7,8,27};
    printf("o maior vem: %d", funcao1(vector, TAM));
    return 0;
}


Tags : ,

Guião laboratorial n.º 0 – exercício 2

“Desenvolva uma função encontre o maior elemento armazenado num vetor de inteiros. A função recebe como argumentos o nome e a dimensão do vetor. Devolve como resultado a posição em que se encontra o maior valor existente no vetor. Se o maior valor surgir várias vezes no vetor, a função devolve a primeira posição em que ele ocorre.”

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

#define TAM 10

int funcao1(int v[TAM], int t){
int maior=v[0];
int posicao=0;
int i;

for(i=0; i<t; i++){
    if(v[i]>maior)
    {
        maior=v[i];
        posicao = i;
    }
}

return posicao;
}

int main()
{
    int vector[TAM]={0,1,20,3,4,25,20,7,8,9};
    printf("o maior vem: %d", funcao1(vector, TAM));
    return 0;
}
Tags : ,

Guião laboratorial n.º 0 – exercício 1

“Desenvolva uma função que encontre o maior elemento armazenado num vetor de inteiros. A
função recebe como argumentos o nome e a dimensão do vetor. Devolve como resultado o maior
valor existente no vetor.”

 

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

#define TAM 10

int funcao1(int v[TAM], int t){
int maior=v[0];
int i;

for(i=0; i<t; i++){
    if(v[i]>maior)
    {
        maior=v[i];
    }
}

return maior;
}

int main()
{
    int vector[TAM]={0,1,20,3,4,5,6,7,8,9};
    printf("o maior vem: %d", funcao1(vector, TAM));
    return 0;
}

Tags : ,