Ir ao conteúdo
  • Cadastre-se

devair1010

Membro Pleno
  • Posts

    6.289
  • Cadastrado em

  • Última visita

Tudo que devair1010 postou

  1. @jaireugenio desculpe , por esses comandos esquisitões , mas eles são comandos simples e não fazem nada demais não, apenas manipula som e cores no console, e aqui no codeblock's esse esboço de Algorítimo com essa estrutura e várias bibliotecas já é criado automáticamente ao iniciar um novo arquivo ou projeto, e na hora de postar não removi esses comandos , e nesse código eles poderiam ser excluídos e não afetaria em nada o funcionamento de seu código , e você disse que precisa encontrar 9 números , porém nesse novo código que postou , se na entrada for informado "9" , só mostrará "7" e sendo que para mostrar os 9 números precisa informar "43" logo na entrada , aqui seu código para apresentar também a Quantidade encontrada : #include <stdio.h> int main () { int n = 0, divisor = 0; size_t soma1 = 0, soma2 = 0; size_t y = 0, x = 0; size_t cont = 0, r = 0; printf("Encontrar Quantos nUmeros Amigos "); scanf("%d", &x); if( x > 3 ) y = x * 1500; else y = x * 1000; for (n = 2; n <= y; n++) { soma1 = 1; for (divisor = 2; divisor <= n/2; divisor++) { if (n % divisor == 0) soma1+=divisor; //calcula a soma dos divisores } soma2 = 1; if (soma1 != n) for (divisor = 2; divisor <= soma1/2; divisor++) { if (soma1 % divisor == 0) soma2 += divisor; //calcula a soma dos divisores } if (soma2 == n && n < soma1) //verificar se a soma dos divisores eh igual ao numero { cont += 1; printf(" %d -> (%7d,%7d)\n",cont, n, soma1); } } return 0; }
  2. @Ansi C obrigado , creio que você teve muito dificuldade para obter essa listas , pois já pesquisei bastante e não encontrei em nenhum lugar uma lista igual a essa , mas apenas informações sobre como adquirir um para de número amigos .
  3. @Thaianny Oliveira no primeiro código você está incrementando a variável que controla o loop for e assim vai pular de dois em dois , e lerá apenas cinco números , scanf("%i", &idade); /// count++; já incrementada pelo "for" e no segundo você colocou um loop "while" dentro do "for" sem necessidade , e se que apenas mostrar as idades maior ou igual a 18 então só precisa de uma comparação " if " , printf("Informe 10 idades para o sistema:\n"); for(int count=0; count<10; count++) { /// while(count<10) /// { printf("Informe a %d idade -: ",count+1); scanf("%i", &idade); /// count++; if ( idade >= 18 ) { printf("\n%i Idade -> %d\n\n",count+1, idade); } /// } } e outro modo mais elaborado seria usar um vetor para armazenar todas as idades com um loop "for" indo de zero até enquanto for menor que 10 , e depois outro loop para fazer a comparação e mostrar tais idades , e outra coisa também é que o mais comum é começar o loop em zero "0" pois na linguagem c os vetores se iniciam pela posição zero mesmo , apesar de que não terá erro se começar em " 1 " , mas se assim o fizer vai perder duas posições do vetor, a primeira e a última posição , pois essa última posição não estará reservada .
  4. @santicide você postou no tópico de C++ , mas esse código é todo da linguagem C , e então você vai fazer em Qual linguagem ? , e pode ser na linguagem C mesmo , então essa função sorteio_manual não funciona pois está em loop infinito , já que essa variável "i" que foi criada mas não foi inicializada e assim ela terá um valor aleatório qualquer , #define _WIN32_WINNT 0x600 #define _h GetStdHandle(STD_OUTPUT_HANDLE) #include <stdio.h> #include <conio.h> #include <iso646.h> #include <stdlib.h> #include <iostream> #include <string.h> #include <windows.h> #include <math.h> #include <time.h> #include <stdbool.h> #include <locale.h> using namespace std; int sorteio_manual() { int i, /// var não inicializada , pode ter qq valor numeroSorteioM = 0, /// inicializa uma variAvel "int" numeroDigitadoM, verificaNumeroM, numeroJaDigitadoM, numerosM[6] = {0}; /// inicializando um vetor de "int" todos elementos zerados while(i < 6) /// só vai entrar nesse loop se i for menor que 6 { /// e só vai sair qundo "i" for maior Que zero printf("Val I= %d\n",i); /// para ver o valor da var "i" e essas funções são ineficazes pois não recenem nenhum argumento e nem retornam nada .
  5. @gui_3824 o enunciado diz que os dados precisam estar um arquivo txt e depois de calcular a área do polígono , mostrar na tela . 2. O que deve ser feito Escreva, em C, um algoritmo para determinar a área de uma região poligonal cujos vértices estão organizados em um arquivo texto. Nesse arquivo, a primeira linha mostra o número de lados (ou vértices) do polígono e cada uma das linhas a seguir trazem as coordenadas x e y desses vértices separadas por um espaço. Por exemplo, caso o polígono tenha vértices (1, 2), (3, 8 ] e (5, 1), o arquivo de entrada terá o seguinte aspecto: Como saída, o programa deve informar a área desse polígono em uma mensagem exibida no painel terminal ou no prompt de comando. Assim, no caso do triângulo indicado acima, a saída deveria ser: “A área do polígono é 13”. se você já tem um código sobre esse exercício , poste aqui e ajudaremos .
  6. @Eli Almeida o enunciado diz que é um tabuleiro "vazio" , então com certeza é o primeiro imagem porém para ter como informar as posições precisa numerar as linhas e colunas , ou números e letras ., assim :
  7. @Eli Almeida seu código está funcionando bem , porém não entendi o modo de jogar , pois parece que seja para apenas um jogador , ou talvez para dois jogadores humanos , sendo que cada um joga e espera o outro fazer a jogada dele , e se fosse para jogar contra o computador poderia colocar para que o computador escolhesse aleatoriamente uma das posições usando a função "randi" .
  8. @jaireugenio para esse código não repetir os mesmos números você pode colocar uma variável que armazena os números encontrados e assim evitar imprimi los novamente , porém não sei se esses números encontrados pelo programa são realmente números amigos , e com essa modificação seu código ficou assim : #define _WIN32_WINNT 0x600 #define _h GetStdHandle(STD_OUTPUT_HANDLE) #include <stdio.h> #include <conio.h> #include <iso646.h> #include <stdlib.h> #include <string.h> #include <windows.h> #include <math.h> #include <time.h> #include <stdbool.h> #include <locale.h> char cor( int, int ); int main(int argc, char* argv[] ) { srand(time(NULL)); int letra,fundo; CONSOLE_SCREEN_BUFFER_INFO _c ; if( GetConsoleScreenBufferInfo ( _h, & _c ) ) { letra = ( _c.wAttributes & 0xFF ) & 0x0F; fundo = ( ( _c.wAttributes & 0xFF ) >> 4 ) & 0x0F; } cor(12,14); setlocale(LC_ALL,""); ///------------------------------------------------------- int n, divisor, r, soma1, soma2, y, x; int flag = 0; scanf("%d", &x); if(x>3) { y=x*1500; } else y=x*1000; for (n = 2; n <= y; n++) { soma1 = 1; for (divisor = 2; divisor <= n/2; divisor++) { if (n % divisor == 0) soma1+=divisor; //calcula a soma dos divisores } soma2 = 1; if (soma1 != n) for (divisor = 2; divisor <= soma1/2; divisor++) { if (soma1 % divisor == 0) soma2+=divisor; //calcula a soma dos divisores } if (soma2 == n && flag != n) //verificar se a soma dos divisores eh igual ao numero { printf(" (%7d,%7d) \n",n, soma1); flag = soma1; /// armazena para q não repita esses mesmos num's } } for(int f=0; f<10; f++) Beep(rand()%3000,rand()%150+150); ///------------------------------------------------------- cor(letra,fundo); printf("\n\n\n"); return 0; } char cor( int L, int F ) { SetConsoleTextAttribute( _h, L +( F << 4 ) ); }
  9. @jaireugenio seu programa está em loop infinito , por que você colocou a condição de saida do while como "num1" igual a zero , e isso nunca acontece pois sempre que é zero recebe incremento . while(num1) /// repita enquanto for diferente de zero { while(num2) { if(amigo(num1,num2)==1) { f = num1; k = num2; printf("(%d,%d)",num1,num2); num1 = 0; /// num1 recebe valor zero num2 = 0; } num1++; /// incrementa, e assim nunca sairA desse Loop etherno } }
  10. @Simon Viegas eu também não havia observado esse detalhe , e já estava no código que o @Sants_021 postou , mas fiz uns testes de mesa no visualG 3,0,6,5 , e essa estrutura funcionou , e detectou os valores de forma corretas : a img abaixo :
  11. @Sants_021 o enunciado diz que é apenas um funcionário : e sendo assim diferente do código da @ElliePJ seu código está certo seguindo fielmente o que diz o enunciado e está funcionando bem , mas precisa deletar essa linha Escreval("Auxilio Alimentação:",aux_aliment," Salario Final:",sal_final) fimpara // <---------- essa linha Aqui, pois não tem o outro comando, o "para" Fimalgoritmo e informar os dados certos conforme citados por @Simon Viegas , e seguindo a ordem em que for pedidos , o restante tudo certo , basta digitar os dados corretos na entrada e sairá todos os resultados . e seu código modificado , sem o "fimpara" , ficou assim : Algoritmo "valor de horas trab" Var codigo, horas_trab : inteiro turno, categoria : caractere sal_minimo, valor_hora : real sal_inicial, aux_aliment : real sal_final : real Inicio // entrada dos Dados Escreval("Digite o codigo do funcionario:" ) Leia ( codigo ) Escreval("Digite o numero de horas trabalhadas no mês:" ) Leia ( horas_trab ) Escreval("Digite o turno de trabalho (M-Matutino, V-Vespertino, N-Noturno)") Leia ( turno ) Escreval("Informe a categoria do (G-Gerente, F-Funcionario)") Leia ( categoria ) Escreval("Digite o valor do salario minimo:" ) Leia ( sal_minimo ) // calcular o valor da hora trabalhada Se (categoria = "G") então // categoria igual G se (turno = "N")então // horArio noturno valor_hora <- sal_minimo * 0.06 senao // horArio vespertino ou matutino valor_hora <- sal_minimo * 0.04 fimse senao // categoria igual F se (turno = "N")então // horArio noturno valor_hora <- sal_minimo * 0.02 senao // horArio vespertino ou matutino valor_hora <- sal_minimo * 0.01 fimse fimse // calcular o salArio inicial sal_inicial <- horas_trab * valor_hora // calcuLar o ticket AlimentaCAo escolha (sal_inicial) Caso 0 ate 800 // para salArio até 800 aux_aliment <- sal_inicial * 0.25 Caso 801 ate 1200 // para salArio De 801 até 1200 aux_aliment <- sal_inicial * 0.20 outrocaso // para salArio acima De 1200 aux_aliment <- sal_inicial * 0.15 fimescolha // calcular o salArio FinaL sal_final <- sal_inicial + aux_aliment // Mostrar os ResuLtados Escreval("Codigo Do Funcionário ----: " , codigo ) escreval("Horas Trabalhadas --------: " , horas_trab ) Escreval("Valor da Hora Trabalhada -: " , valor_hora ) EscrevaL("Salario Inicial ----------: " , sal_inicial) EscrevaL("Auxilio Alimentação ------: " , aux_aliment) EscrevaL("Salario Final ------------: " , sal_final ) // fim, pois Eh apenas um FuncionArio // para mais funcionArios use um laCo // de repetiCAo que pode ser o "Repita/ate" Fimalgoritmo
  12. @evertonatk conforme explicado nesse link : https://sempreupdate.com.br/computador-apitando-o-que-e-cada-bip/ esses bip's seja provavelmente as memórias que está com problema , então remova-as e limpe seus contatos com uma borracha e recoloque novamente , e caso seja apenas isso mesmo , seu pc voltará a funcionar bem novamente . e se você puder e quiser , poste a configuração de seu pc , o processador os Giga's de memórias SSD placa de vídeo e a placa maii marca e modelo da fonte , pois assim pode se ter noção do que poderia ser .
  13. @arfneto e @Flávio Pedroza , obrigado , pela ajuda , usei o codeblocks para acessar o código da biblioteca "stdio.h" e nela tem apenas os protótipos das funções e muitos define's , e DLLs , e então tentei encontrar o arquivo ".c" dessa biblioteca , porém não localizei em nenhuma pasta do local onde está instalado o compilador / IDE , e então se o código está em uma dessas dll , teria como saber em qual delas está o "stdio.c"
  14. @El Dorado a linguagem c++ foi criada muito tempo depois da linguagem c , e assim herdou todas as funções / comandos da linguagem c , então c++ faz tudo que a linguagem c faz e melhor , pois tem muitos outros recursos , e inclusive interface gráfica , usando a API do windows , que você pode saber algumas coisa nesse link : http://vulms.vu.edu.pk/Courses/CS410/Downloads/Charles Petzold - Programming Windows - 5th Ed.pdf ou esse também : https://forum.zwame.pt/threads/tutorial-programar-para-windows.75878/ além de que existem bibliotecas para criação de gráficos como a Allegro, SDL2, Qt e outras , tanto para a linguagem C , como C++.
  15. nos estudos sobre header vi que servem para organizar o código e reduzir a quantidade de dados dentro da função principal "main.c" , porém notei que usando apenas o arquivo ".c" que contém as funções e sem usar um arquivo do tipo ".h" , que só contém os protótipos das funções que estão no arquivo ".c" , o código funciona bem . como nesse pequeno código : #include "funcs.c" /// apenas o arquivo ponto c /// que contém as funCOes int main(int argc, char* argv[] ) { printf ( "valor de pi ----= %.6f\n" "Cubo -----------= %d \n" "Quadrado -------= %d \n" "Soma -----------= %d \n" "Seno -----------= %f \n" ,pi, Cubo(3), Quadrado(5) , Soma(7), Seno(167) ); return 0; } e com essas funções no arquivo com formato ".c" : #define pi 3.141592 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include <math.h> int Cubo(int x) { return x*x*x; } int Quadrado(int x) { return x*x; } int Soma(int x) { return x+x; } float Seno(float x) { return sin(x)/180+250; }
  16. @Alone3301 tem certeza que esse pendrive bootável está do modo certo ? , veja nesse Vídeo https://www.youtube.com/watch?v=fM4q6nwuLWY como criar um pendrive bootável e o modo de entrar na BIOS e instalar o windows .
  17. @Alone3301 qual a configuração desse notebook , ele usa o NVMe M2 e SSD ? ,
  18. @Gustavo Rossi0101 o enunciado não especificou qual modo carregar a matriz , e pode ser por números aleatório , usando a função , "rand" , depois localizar o maior número e a diagonal principal e fazer as multiplicações , e depois que você fizer um código sobre esse exercício , poste aqui e ajudaremos se ainda precisar .
  19. @loboya provavelmente as configurações foram modificadas , então experimente resetar a BIOS , retirando a bateria da placa por uns 30 segundos e recoloque , assim vai iniciar as configurações padrão de fábrica .. e observe se as memórias estão bem encaixadas e com os contatos limpos .
  20. @Aleatorio02 o erro é esse mesmo que o @luscas citou acima , e para gerar números aleatórios você pode usar o comando "randi" . assim : escreval ("número escolhido pelo computador: ") //aleatorio 1, 50 //leia (num_aleat) //aleatorio off num_aleat := randi(50) + 1// gera numeros de 1 até 50 escreval(num_aleat)
  21. @Rhaylan Santos creio que a pasta que vem de fábrica seja a melhor e na quantidade certa, já usei e durou muito tempo, bem .
  22. @Cambalinho creio que o fator "FPS" depende de qual configuração do pc em que estejam rodando esse seu código , pois aqui só consegui 12 e 11 FPS's .
  23. @ignite137 creio que esse exercício seja do site "beecrowd" antigo "Uri" , e uma caixa tem 6 lados então multiplique x por y depois x por z , e depois y por z , e somar esses 3 valores e depois multiplicar por 2 , assim terá o total em metros quadrados , e multiplique pelos valores informados no enunciado , e depois que você fizer um código sobre esse exercício , poste aqui e ajudaremos se ainda precisar .
  24. olá , quero usar vários sons tipo "beep" , não é musica , sendo cada som com frequência diferente , pois se colocar apenas um som o programa roda com boa velocidade , porém com vários "beep" ele se torna lento demais , então imaginei que se mixar todos os sons em apenas um , aí vai continuar com boa velocidade , já vi em alguns sites que tem comandos para mixar áudio de música mas é para programas com interface Gráfica e não em console , desde já agradeço muito , se alguém puder ajudar . para usar nesse programa experimentaL : using System.Reflection.Metadata; using static System.Formats.Asn1.AsnWriter; using System.Windows; using System.Media; using System; using System.Collections; using System.ComponentModel; using System.Diagnostics; using System.Drawing; using static System.Net.Mime.MediaTypeNames; namespace paredao_1542 { //public class SoundPlayer : System.ComponentModel.Component, System.Runtime.Serialization.ISerializable internal class Program { //public class SoundPlayer : System.ComponentModel.Component, System.Runtime.Serialization.ISerializable static void Main(string[] args) { int flag = 0; int c = 0; int a = 0; int qtd = 3; char[,] mat = new char[120, 30]; int [,] bolas = new int [ 10, 5]; Random rand = new Random(); for ( int f = 0; f < 119; f++) { mat[f, 0] = (char)35; mat[f, 29] = (char)35; if (f < 30) { mat[ 0, f] = (char)35; mat[118, f] = (char)35; } } for (int f = 0; f < 119; f++) { for (int n = 0; n < 30; n++) { if ((f > 50 && f < 65) && (n > 5 && n < 15)) { mat[f, n] = (char)35; } Console.SetCursorPosition(f, n); Console.Write(mat[f, n]); } } for (int f = 0; f < qtd; f++) { a = 0; do { bolas[f, 0] = rand.Next(5, 110); // ref ao x if ( bolas[f,0] == ' ') a = 1; } while (a == 0); a = 0; do { bolas[f, 1] = rand.Next(5, 25); // ref ao y if (bolas[f, 1] != ' ') a = 1; } while ( a == 0); bolas[f, 2] = bolas[f, 0]; // ref ao old_x bolas[f, 3] = bolas[f, 1]; // ref ao old_y bolas[f, 4] = rand.Next(4); // ref ao dir } Bar(15,0, " Tecle ESC para Sair "); Console.CursorVisible = false; Thread.Sleep(1000); do { if (Console.KeyAvailable) { c = Console.ReadKey().KeyChar; Console.SetCursorPosition(10, 10); Console.WriteLine(" VaLor de Tecla PressionadA= {0}", c); } Thread.Sleep(10); if (flag == 0) Som( 1 ); flag = 0; for (int n = 0; n < qtd; n++) { Bar(bolas[n, 2], bolas[n, 3], " ");// remove o desenho da bola Bar(bolas[n, 0], bolas[n, 1], "O");// desenhar a bola // if (flag == 0) Som(n); // com vArios sons fica Lentos flag = 0; bolas[n, 2] = bolas[n, 0]; bolas[n, 3] = bolas[n, 1]; switch (bolas[n, 4]) { case 1: if (mat[bolas[n, 0] + 1, bolas[n, 1]] == '#') { bolas[n, 4] = 4; // pbe } else { if (mat[bolas[n, 0], bolas[n, 1] + 1] == '#') { bolas[n, 4] = 2; /// pcd } else { if (mat[bolas[n, 0] + 1, bolas[n, 1] + 1] == '#') { bolas[n, 4] = 4; } else /// continue pbd { bolas[n, 0]++; bolas[n, 1]++; flag = 1;// não colidiu com nada então sem som } } } break; case 2: if (mat[bolas[n, 0] + 1, bolas[n, 1]] == '#') { bolas[n, 4] = 3; // pce } else { if (mat[bolas[n, 0], bolas[n, 1] - 1] == '#') { bolas[n, 4] = 1; /// pbd } else { if (mat[bolas[n, 0] + 1, bolas[n, 1] - 1] == '#') { bolas[n, 4] = 3; // pce } else /// continue pcd { bolas[n, 0]++; if (bolas[n, 1] > 1) bolas[n, 1]--; flag = 1;// não colidiu com nada então sem som } } } break; case 3: if (mat[bolas[n, 0], bolas[n, 1] - 1] == '#') { bolas[n, 4] = 4; // pbe } else { if (mat[bolas[n, 0] - 1, bolas[n, 1]] == '#') { bolas[n, 4] = 2; /// pcd } else { if (mat[bolas[n, 0] - 1, bolas[n, 1] - 1] == '#') { bolas[n, 4] = 4; /// pbe } else /// continue pce { if (bolas[n, 0] > 1) bolas[n, 0]--; if (bolas[n, 1] > 1) bolas[n, 1]--; flag = 1;// não colidiu com nada então sem som } } } break; default: if (mat[bolas[n, 0], bolas[n, 1] + 1] == '#') { bolas[n, 4] = 3; // pce } else { if (mat[bolas[n, 0] - 1, bolas[n, 1]] == '#') { bolas[n, 4] = 1; /// pbd } else { if (mat[bolas[n, 0] - 1, bolas[n, 1] + 1] == '#') { bolas[n, 4] = 1; } else /// continue pbe { if (bolas[n, 0] > 1) bolas[n, 0]--; bolas[n, 1]++; flag = 1;// não colidiu com nada então sem som } } } break; } } } while (c != 27) ; } public static void Som( int n ) { // mixagem de Audio em programa com interface grAficas /*SoundPlayer soundPlayer = new SoundPlayer(Properties.Resources.SimpleSound); soundPlayer.Play(); // Para começar o som normalmente. soundPlayer.PlayLooping(); // Para começar o som e ficar repetindo. soundPlayer.PlaySync(); // Para começar o som e só ir para a próxima linha quando parar de tocar. SoundPlayer player = new SoundPlayer(); player.SoundLocation = Environment.CurrentLocation + "beep.mp3";*/ switch( n ) // 4 sons diferentes { case 1: Console.Beep();break; // cada beep com frequência diferente case 2: Console.Beep();break; case 3: Console.Beep();break; default:Console.Beep();break; // usando default para o quarto case } } public static void Bar(int x, int y, string ch)// mever a bola { Console.SetCursorPosition(x, y); // posiciona o cursor nessa posiCAo Console.WriteLine(ch); // desenha a bola nessa posiÇAo } } }
  25. @mauro_b sim , realmente , creio que nunca haverá erro nesse caso , pois o último caractere sempre será o '\n' , já que a tecla "Enter" é que finaliza as entradas .

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...