Jump to content
Fórum Script Brasil

Hazzu

Membros
  • Content Count

    52
  • Joined

  • Last visited

Community Reputation

0 Neutro

About Hazzu

  • Rank
    Discord: Hazzu#7444

Recent Profile Visitors

242 profile views
  1. //Programa: Primo Fibonacci //Função: Obter todos os primos até o termo n da Sequência de Fibonacci //Autor: Hazzu#7444 //Data: 05/06/2020 //Cabeçalhos #include <stdio.h> #include <locale.h> //Função principal int main(){ //Declaração de variáveis int i, div, n, a=1, b=2, aux; setlocale(LC_ALL, "Portuguese"); //Configurando terminal para português //Apresentação printf("------ Primo Fibonacc ------\n"); printf("Olá, esse programa irá informar todos os primos da Sequência de Fibonnaci até o termo n.\n"); //Solicitando número printf("-Digite o valor de n:\n"); scanf("%d", &n); //Resultados triviais if (n > 0) printf("1 não é primo.\n"); if (n > 1) printf("1 não é primo.\n"); if (n > 2) printf("2 é primo!\n"); //Avaliando termos maiores for (i=4; i<=n; i++){ //Três termos da sequência já foram definidos, vamos começar no 4° //Calculando próximo termo aux = b; b += a; a = aux; //Testando se é primo for (div=2; div<=b/2; div++){ if (b%div == 0){ printf("%d não é primo.\n", b); break; } } if (div > b/2) printf("%d é primo!\n", b); } //Encerrando programa return 0; }
  2. Já postei uma ótima apostila aqui no PasseiDireto, porém utiliza a linguagem Portugol (VisuAlg), que é bem simples.
  3. Naturalmente. Seu algorítimo exibirá apenas os primos da Sequência de Fibonacci: 0,1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, ... Os números 7 e 11 não fazem parte da sequência, escopo de análise.
  4. Hazzu

    Duvida em listas

    Posta o código inteiro e fala a função de todo o código
  5. O número 1 terá apenas um divisor, caindo no else e aparecendo como primo. Do conceito de número primo, é necessário que ele possua exatamente dois divisores: 1 e ele mesmo. É mais consistente então você utilizar esta condição: if (primo==2) printf("%d e primo\n", auxiliar); else printf("%d não e primo\n", auxiliar);
  6. Monitoria de C : Hazzu#7444 no discord
  7. Poste seu código e posso apontar seus erros. Porém se quiser que alguém faça para você, é adequado pagar 😛
  8. //Programa: Primo Próximo //Função: Obter o próximo primo a partir de um número inserido pelo usuário //Autor: Hazzu#7444 //Data: 04/06/2020 //Cabeçalhos #include <stdio.h> #include <locale.h> #include <math.h> //Assinatura das funções int primo(int n); //Função principal int main(){ //Declaração de variáveis int n, p; setlocale(LC_ALL, "Portuguese"); //Configurando terminal para português //Apresentação printf("------ Primo Próximo ------\n"); printf("Olá, esse programa irá calcular o número primo imediatamente superior ao valor informado.\n"); //Solicitando número printf("-Digite um número:\n"); scanf("%d", &n); //Buscando próximo primo p = n; do{ p+=1; } while(!primo(p)); //Saida de dados printf("O número primo imediatamente superior a %d é %d!\n", n, p); //Encerrando programa return 0; } //Função que determina se um número inteiro é primo int primo(int n){ //Declaração de variáveis int i, limit; n = abs(n); //Possibilitando trabalho com números negativos limit = (int) sqrt(n); //Basta testar divisores até a raiz do número if (n > 2){ //Procurando divisores for (i=2; i <= limit; i++){ if (n%i == 0) return 0; //False } } else if (n == 2){ return 1; //True } else{ return 0; //False } return 1; //Não encontrou divisores -> True }
  9. Já desenvolvi uma função em C para resolução de sistemas lineares pelo método da Eliminação de Gauss. //Resolução de sistema linear através do Método da Eliminação Gaussiana float * Gauss(float ** M, int tam){ int i, l, j; float * S; float pivor[2]; float aux; S=AlocarVetor(tam); for (j=0; j<tam-1; j++){ pivor[0]=j; pivor[1]=M[j][j]; for (l=j+1; l<tam;l++){ //Procura do maior termo na coluna if ((float)fabs(M[l][j])>(float)fabs(pivor[1])){ pivor[0]=l; pivor[1]=M[l][j]; } } if ((int)pivor[0] != j){ for (l=j; l<=tam; l++){ //Colocando a linha com o maior termo no topo aux=M[(int)pivor[0]][l]; M[(int)pivor[0]][l]=M[j][l]; M[j][l]=aux; } } for (i=j+1;i<tam;i++){ //Escalonamento for (l=tam; l>=j; l--){ M[i][l]=M[i][l]-M[j][l]*(M[i][j]/M[j][j]); } } } //Solução S[tam-1]=M[tam-1][tam]/M[tam-1][tam-1]; for (i=tam-2; i>=0; i--){ aux=0; for (j=i+1; j<tam; j++) aux=aux+M[i][j]*S[j]; S[i]=(M[i][tam]-aux)/M[i][i]; } return S; } Onde M é a matriz ampliada do sistema e tam é o tamanho. A linguagem C oferece mais dificuldade em operações com matrizes devido a lógica de ponteiros e ausência de operações vetoriais.
  10. Não entendi muito bem o enunciado. Melhore o português ai.
  11. Eu ia ler seu código, identificar seu erro e sugerir uma solução, mas fui desencorajado pela ilegibilidade fornecida por ti. Favor utilizar a ferramenta de inserção de código.
  12. Para o caso a = tamA, isso resultará falso e você acabará imprimindo a linha: que resultará no acesso a uma posição na memória não reservada para seu vetor (Falha de segmentação). Falha de segmentação é um erro que ocorre em programa quando este tenta acessar um endereço na memória RAM que está reservado para outro programa ou que não existe. Lembre-se que em C os índices das posições vetoriais começam em 0 e terminam em tam-1, fazendo com que a posição tam não exista.
  13. Pesquise sobre métodos numéricos para cálculo de derivadas.
  14. Hazzu

    ASCII Art

    Existem várias formas de fazê-las. Para facilitar, estou admitindo todas semelhantes aos modelos sugeridos, sendo o tamanho apenas uma referência para a próximo arranjo de caracteres possível. Naturalmente, a medida que a complexidade da forma aumenta, é requerido uma maior interpretação algébrica/geométrica para construí-la. Aqui está um exemplo de como fazê-las. //Programa: ASCII Art //Função: formar figuras geométrica com caractere //Autor: Hazzu#7444 //Data: 11/05/2020 //Cabeçalhos #include <stdio.h> //Assinatura das funções void preenche(int n); void espaco(int n); //Função principal int main(){ //Declaração de variáveis int tam, i, j; //Moldura Losango printf("-Moldura Losango\n>Insira um tamanho:\n"); scanf("%d", &tam); for (i=tam; i>0; i--){ //Superior preenche(i); //Preenchimento esquerdo espaco(2*(tam-i)); //Espaçamento central preenche(i); //Preenchimento direito printf("\n"); //Quebra de linha } for (i=1; i<=tam; i++){ //Inferior preenche(i); //Preenchimento esquerdo espaco(2*(tam-i)); //Espaçamento central preenche(i); //Preenchimento direito printf("\n"); //Quebra de linha } //Ampulheta printf("-Ampulheta\n>Insira um tamanho:\n"); scanf("%d", &tam); //Superior for (i=0; i<tam; i++){ espaco(i); printf("\\"); espaco(2*(tam-i-1)); preenche(2*i+1); espaco(2*(tam-i-1)); printf("/"); printf("\n"); } for (i=tam-1; i>0; i--){ espaco(2*tam-1-i); printf("\\"); preenche(2*i-1); printf("/"); printf("\n"); } //Inferior for (i=0; i<tam-1; i++){ espaco(2*tam-2-i); printf("/"); preenche(2*i+1); printf("\\"); printf("\n"); } for (i=tam-1; i>=0; i--){ espaco(i); printf("/"); espaco(2*(tam-i-1)); preenche(2*i+1); espaco(2*(tam-i-1)); printf("\\"); printf("\n"); } //Encerrando programa return 0; } //Função que imprime o preechimento void preenche(int n){ while(n > 0){ printf("#"); n--; } } //Função que imprime o espaçamento void espaco(int n){ while (n > 0){ printf(" "); n--; } } Partição dos laços:
  15. Poste sua tentativa e te guiaremos à solução.
×
×
  • Create New...