Jump to content
Fórum Script Brasil
  • 0

programação C


prnis

Question

Preciso de Ajuda, programação C

 

4. Faça uma função que receba três números inteiros como parâmetros, representando horas, minutos e segundos e os converta em segundos.

 

5. Faça uma função que receba um número inteiro positivo N como parâmetro e retorne a soma dos N números inteiros existentes entre 1 e esse número.

 

6. Escreva uma função que recebe como parâmetro um inteiro positivo ANO e devolve 1 se ano for bissexto, 0 em caso contrário. (Dica: Um ano é bissexto se ele é divisível por 4)

 

7. Escrever um algoritmo que lê um vetor K(15) e o escreve. Crie, a seguir, um vetor P, que contenha todos os números primos de K e o resto das posições deve ser preenchido com zero. Escreva o vetor P. (Dica: use a função da questão 2)

Edited by prnis
Link to post
Share on other sites

6 answers to this question

Recommended Posts

  • 0

/* 1 Elabore um algoritmo que calcule o valor da série S para os 10 primeiros termos:*/

#include <stdio.h>

#include <stdlib.h>

 

 

float S(float valor){

float fatorial,i;

for(i=1; i<=10; i++){

fatorial=valor/i;

}

return fatorial;

}

int main(){

float i,y=0,resultado;

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

resultado = S(y);

printf("Valor da Serie, S: %.2f\n", resultado);

}

system("pause");

return 0;

}

/* 2.Escreva uma função que recebe um inteiro positivo m e devolve 1 se m é primo, 0 em

caso contrário. Em seguido escreva um programa que leia um inteiro não-negativo n e

imprima a soma dos n primeiros números primos.*/

 

#include <stdio.h>

#include <stdlib.h>

int numero(int m){

int con,x;

 

for(x=0; x<=m; x++)

{

if(m%2==0)

{

con++;

}

}

if(con==2)

{

return 1;

}

if(con>2)

{

return 0;

}

}

 

int main ()

{

int num, x;

printf("Digite um número inteiro positivo: ");

scanf("%d", &num);

x = numero(num);

if(x==1)

{

printf(" primo: 1\n");

}

if(x==0)

{

printf(" não é primo: 0\n");

}

system("pause");

return 0;

}

/* 3.Escrever um algoritmo que gera os 10 primeiros números primos acima de 100 e os

armazena em um vetor de X(10) escrevendo, no final, o vetor X. (Dica: use a função da

questão 2)*/

 

#include <stdio.h>

#include <stdlib.h>

 

int dez(int z){

int con2=0,con=0;

while(con2<10)

{

if(z%2==0)

{

con++;

}

if(con==2)

{

return z;

}

con2++;

}

}

 

int main()

{

int x[10],i=0, num=0;

x= dez(num);

printf("10 primeiros primos acima de 100: %d", x);

system("pause");

return 0;

}

/* SEM ERRO== 4. Faça uma função que receba três números inteiros como parâmetros, representando

horas, minutos e segundos e os converta em segundos*/

 

#include <stdio.h>

#include <stdlib.h>

 

int somahora(int a, int b, int c){

int z;

z=(a*3600)+(b*60)+c;

return z;

 

}

int main (){

int h,m,s,z;

 

printf ("Digite a(s) Hora(as): ");

scanf (" %d",&h);

printf ("Digite o(s) Minuto(os): ");

scanf (" %d",&m);

printf ("Digite o(s) Segundo(os): ");

scanf (" %d",&s);

printf ("\n\n%d Horas %d minutos e %d segundos.\n",h,m,s);

 

z=somahora(h,m,s);

printf ("\n\nTotal: %d segundos.\n\n", z);

system ("pause");

return 0;

}

 

/*SEM ERRO===5. Faça uma função que receba um número inteiro positivo N como parâmetro e retorne

a soma dos N números inteiros existentes entre 1 e esse número.*/

 

#include <stdio.h>

#include <stdlib.h>

 

int num(int z){

int i, soma=0;

for(i=2; i<z; i++){

soma=soma+i;

}

return soma;

}

int main()

{

int n,x=0;

printf("Digite um numero inteiro positivo: ");

scanf("%d", &n);

x= num(n);

printf("\n A soma dos valores entre 1 e %d é: %d \n\n", n, x);

return 0;

}

/* SEM ERRO===6. Escreva uma função que recebe como parâmetro um inteiro positivo ANO e devolve 1

se ano for bissexto, 0 em caso contrário. (Dica: Um ano é bissexto se ele é divisível por

4)*/

 

#include <stdio.h>

#include <stdlib.h>

 

int bis(int z){

if((z%4==0) && (z%100!=0)){

return 1;

}

else if(z%400==0)

{

return 1;

}

else

{

return 0;

}

}

int main()

{

int ano,x;

printf(" Digite um valor inteiro positivo: ");

scanf("%d", &ano);

x= bis(ano);

if(x==1){

printf(" \nO ano é bissexto\n");

}

else

{

printf(" \nO ano não é bissexto\n");

}

return 0;

}

/*7. Escrever um algoritmo que lê um vetor K(15) e o escreve. Crie, a seguir, um vetor P,

que contenha todos os números primos de K e o resto das posições deve ser

preenchido com zero. Escreva o vetor P. (Dica: use a função da questão 2)*/

 

#include <stdio.h>

#include <stdlib.h>

 

int primos(int v[15]){

int i,con;

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

if(v%2==0)

{

con++;

}

}

if(con==2)

{

return v;

}

if(con>2)

{

return 0;

}

}

 

int main()

{

int k[15],i, p[15];

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

printf("digite 15 valores[%d]: ",i);

scanf("%d", &k);

p= primos(k);

if (p!=0)

{

printf("%d", p);

}

else

{

printf("0");

}

}

printf("\n\n");

return 0;

}

8. Faça uma função arctan que recebe o número real x , x Î [0,1], e devolve uma aproximação do arco tangente de x (em radianos) através da série

arctan(𝑥) = 𝑥 − 𝑥 3 3 + 𝑥 5 5 − 𝑥 7 7 + ⋯

incluindo todos os termos da série até que | 𝑥 𝑘 𝑘 | < 0.0001

basicamente, fiz essas, sempre tem algum erro...acho q to no caminho certo

Link to post
Share on other sites
  • 0

1) Não sei se entendi muito bem o que o algoritmo deve fazer, se estiver errado me corrija, mas imagino que seja entrar com valores de 0 a 10 e realizar o cálculo da função S(), certo?

Se for, o erro que encontrei é que você tá mandando o y=0 por parâmetro, que vai realizar sempre o cáculo de 0/i, que vai resultar sempre em 0. O que pode resolver, se for como imaginei, é trocar o y por i(que incrementa na repetição).

____________________________________________________________________________________________________________________

int main(){

float i,resultado;

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

resultado = S(i); // <<<<<<<

printf("Valor da Serie, S: %.2f\n", resultado);

}

system("pause");

return 0;

}

 

 

 

 

Edited by HappyPenguin
Link to post
Share on other sites
  • 0

2) Se atente a quando usar uma variável contadora, como o "con", inicializá-la com 0, caso contrário inicializará com lixo de memória.

Notei que você usa if(se), porém  não usa muito else(caso contrário), dê uma analisada no código que fiz e veja como facilita usar mais else,. Notei também o uso excessivo de "{  }". Para repetições(for no caso) e condições(if no caso) que conterem apenas uma linha e código dentro, não é necessário o uso de "{ }". Analise a Solução e veja como funciona.

______________________________________________________________

#include <stdio.h>
#include <locale> //Permite o uso da função p/ acentuações
#include <stdlib.h>

int numero(int m){

int con=0,x;

for(x=1; x<=m; x++)
{
    if(m%x==0)
        con++;
}

if(con==2)
    return 1;
else
    return 0;

}

int main()
{

int num, x;

setlocale(LC_ALL,"Portuguese"); //Permite o uso de acentuações

printf("Digite um número inteiro positivo: ");
scanf("%d", &num);

x = numero(num);

if(x==1)
    printf(" primo: %d\n",x);
else
    printf(" não é primo: %d\n",x);

system("pause");

return 0;
}

 

 

Edited by HappyPenguin
Link to post
Share on other sites
  • 0

3) Resolução:

 

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

int numero(int m){

    int con=0,x;

    for(x=1; x<=m; x++)
    {
        if(m%x==0)
            con++;
    }

    if(con==2)
        return 1;
    else
        return 0;

}

void SalvaPrimos(int vet[10])
{
    int cont=0,i,x;

    for(i=100;cont<11;i++)
    {
        x=numero(i);

        if(x==1)
        {
            vet[cont]=i;
            cont++;
        }
    }
}

void Exibe(int vet[10])
{
    int i;

    printf("[ Numeros Primos acima de 100 ]\n");

    for(i=0;i<10;i++)
        printf("\n%dº: %d",i+1,vet[i]);

    printf("\n\n");
}

int main()
{
    int vet[10];

    setlocale(LC_ALL,"Portuguese");

    SalvaPrimos(vet);
    Exibe(vet);

    system("pause");

    return 0;
}

 

Edited by HappyPenguin
Bug na tag [spoiler]
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148886
    • Total Posts
      644943
×
×
  • Create New...