Ir ao conteúdo
  • Cadastre-se

devair1010

Membro Pleno
  • Posts

    6.267
  • Cadastrado em

  • Última visita

  1. 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 } } }
  2. @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 .
  3. @Mártin Neiverth normalmente clicando com o botão direito surge um menu popup com algumas opções , provavelmente precisa reinstalar o windows .
  4. @zeroXP pode ser que você tenha mexido em mais alguma coisa além da bateria , talvez tenha esbarrado nas memórias e ficaram com mau contato , verifique se todos componentes estão bem encaixados , e faça o reset da BIOS curto-circuitando o jumper da BIOS .
  5. @Mártin Neiverth Qual barra de tarefa ? de qual aplicativo ?
  6. @Cambalinho creio que se levar em consideração que seja uma bola de borracha que ao colidir com uma parede que seja totalmente reta essa bola logicamente vai refletir no mesmo ângulo e na direção contrária independente da velocidade ,
  7. @FernandoRossi seria melhor formatear o HD e instalar tudo novamente .
  8. @LonfLonf nesses links tem informações sobre como fazer esse código que você quer : https://github.com/UNIVALI-LITE-BACKUP/Portugol-Studio-Recursos/blob/master/exemplos/bibliotecas/tipos/real.por https://wagnergaspar.com/como-ordenar-um-vetor-de-inteiros-com-portugol-algoritmo-bubble-sort/ https://github.com/UNIVALI-LITE-BACKUP/Portugol-Studio-Recursos/blob/master/exemplos/bibliotecas/tipos/inteiro.por e seu código poderia ser assim : programa { //Considerar a biblioteca Texto como o atributo *tx* inclua biblioteca Texto --> tx inclua biblioteca Tipos --> tp inclua biblioteca Matematica --> mat funcao inicio() { cadeia respostaCompleta inteiro tamanho , num, pos = 0 cadeia numero = "" real rl , vetor[10] inteiro codigo real preco, valor, unidade escreva("digite Código QuantidaDe Preço ") leia(respostaCompleta) respostaCompleta = respostaCompleta + " " // p/ finalizar o ultm num inteiro tamanhoResposta = tx.numero_caracteres(respostaCompleta) //Loop que varre os caracteres armazenados na resposta. para (inteiro contador = 0; contador < tamanhoResposta ; contador ++) { //Concatena o número atual com o seguinte(para os números com mais de um dígito, ex:55, 130...), caso não tenha espaço separador. numero = numero + tx.obter_caracter(respostaCompleta, contador) //Separa os números digitados por espaço, para exibí-los. se( tx.obter_caracter(respostaCompleta, contador+1) == ' ' ) { num = tp.cadeia_para_inteiro(numero,10) rl = tp.cadeia_para_real(numero) numero = "" vetor[pos] = rl pos++ contador = contador + 1 } } codigo = tp.real_para_inteiro(vetor[0]) unidade = vetor[1] preco = vetor[2] valor = preco * unidade escreva("\n\n") escreva("Informou o VaLor do codigo como sendo= ",codigo ,"\n") escreva("Informou o VaLor da unidade como sendo= ",unidade,"\n") escreva("Informou o VaLor do preco como sendo= ",preco ,"\n") escreva("VALOR A PAGAR: R$ ", Matematica.arredondar(valor,2)) escreva("\n\n") } }
  9. @LonfLonf creio que você possa criar essa função "split" no portugol studio , usando uma variável do tipo "cadeia" que irá pegar esses vários números digitados e separados por um espaço , e depois separá-los e converter cada um para "inteiro" , e nesse Link tem Alguma coisa sobre isso : https://pt.stackoverflow.com/questions/324294/ler-dois-números-em-uma-única-linha-no-portugol-studio
  10. @LonfLonf você quer dizer na hora que o usuário for digitar esses três valores , poder digitar todos ao mesmo tempo ? assim: 1 2 5 // sendo // 1 para o cOdigo // 2 para a unidade ou quantidade // 3 para o valor pois no python o método "split" serve é para dividir uma string em partes menores ., conforme explicado nesse artigo desse Link aqui : https://vocepergunta.com/library/artigo/read/778320-como-usar-o-split-em-python
  11. @LonfLonf seu código está funcionando bem , nele já tem várias variáveis nessa linha aqui : real preco, valor, unidade então seria isso ? @LonfLonf
  12. @clara leal para fazer uma validação do que foi digitado , você pode usar uma string para pegar os dados , pois a string aceita qualquer caractere, e depois converter essa string em um número inteiro "int" usando para isso a função atoi que verifica se os caracteres iniciais da string são numéricos (de 0 a 9) , até encontrar um caractere que não seja numérico . e converte a parte válida . e se não houver nenhuma parte válida retorna zero mesmo . #include <stdio.h> #include "cliente.c" #include <stdlib.h> char ax[10] = ""; int ret = 0; int n = 0; FILE* arq = fopen("Clientes.txt","w"); /// cria e reseta / Deleta o arquivo do /// para escrever desde o inIcio dele { printf("Quantos clientes deseja cadastrar? "); ret = scanf("%s" , ax ); /// se leu algo o valor de ret será maior que zero n = atoi(ax); /// se digitou caracteres numericos no inicio printf("val AX --= %s\n" /// converte para int senAo a variAveL n recebe zero "val RET -= %d\n" /// aqui apenas p/ ver o que foi digitado "val N ---= %d\n", ax , ret , n ); }while( ret == 0 || n == 0 ); Cliente* clientes = (Cliente*) malloc( n * sizeof(Cliente)); /// Alocação dinâmica do ponteiro clientes do tipo Cliente
  13. @eubastos você está usando essa variáveL "c" para controlar a saída do Loop "enquanto" , mas não precisa pois você pode usar um comando que já foi criado no visualG para fazer exatamente isso , que é o comando "interrompa" , semelhante ao break da libguaGem C , cuja função é interromper um Loop ou laço "enquanto / fimenquanto" ou "para / fimpara" , organizar o código , deixando espaço entre os comandos e símbolos , e também identando , facilita a leitura e entendimento do mesmo , e para identar automaticamente use o atalho ctrl + g , e para substituir palavras como esse então por "então sem TiL" use ctrl + u e coloque o que vai escrever , e quanto a esse erro "esperava encontrar então" ele é clássico , e geralmente não tem nada a ver com o dito então , e sim em alguma outra parte do código , e nesse caso o erro seria por que você criou a variáveL "cprocedimento" e na hora de usar como referência das posições do vetor "cadeira" , você colocou erroneamente a variável "c" que também existe nesse seu código , mas está sendo usada para outra função e o visualG 3.0.6.5 aceita sim esses dois modos de uso no loop "para / fimpara" , pode usar tanto esse símbolo "<-" quanto esse outro modo "de" . e seu código com algumas modificações ficaria assim : algoritmo "cinema" var c, n : inteiro cadeira : vetor [1..10] de inteiro resposta : caractere procedimento mesas(a: inteiro) // procedimento com parAmetro var cprocedimento : inteiro inicio // o VsisualG aceita os dois modos para cprocedimento <- a ate 10 faca // com "de" ou com "<-" se (cadeira[cprocedimento] = a) então // a posicAo no vetor Escreva("[---]") // eh "cprocedimento" e não "c" senao Escreva("[B", a,"]") fimse fimpara escreval("--------------------------") fimprocedimento //----------- o Programa Inicia Aqui --------------- inicio n <- 1 // deixe um espaCo para facilitar a LeituRa mesas(n) c <- 1 enquanto c <= 10 faca Escreva("Reservar a cadeira: B") Leia(cadeira[c]) Escreval("você quer continuar escolher outra? [S/N]") Leia(resposta) se (resposta = "S") então c <- c + 1 limpatela mesas(n) senao interrompa // interrompe o laCo fimse fimenquanto fimalgoritmo
  14. @Pablolo @Pablolo se você puder , poste o código desse projeto , e usando o visual studio comunity 2022 seria mais fácil fazer essa compilação ..
  15. @Visitante esse código não está compilando por causa de muitos erros , pois faltam partes importantes dele , e se puder poste o código completo .

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...