Ir ao conteúdo
  • Cadastre-se

devair1010

Membro Pleno
  • Posts

    6.296
  • Cadastrado em

  • Última visita

Tudo que devair1010 postou

  1. @Drakrar você , na função excluir , já encontrando o nome que quer excluir ,volta a pesquisar no mesmo vetor procurando pela mesma posição já encontrada , e nem precisam , pois se já sabes a posição então basta puxar os dados de cima para baixo e decrementar o contador , @ewertondamax olá , boa tarde , as posições da memória sempre tem algum dado gravado nelas , mesmo que seja o valor zero , então o que se pode é modificar o conteúdo de tal posição de memória , e creio que você percebeu que ao excluir um dado o algoritmo puxa os dados de cima para baixo , mas apenas isso não resolve , pois vai continuar com a mesma quantidade de cadastros , e os dados continuarão lá no mesmo lugar , e o que resolve mesmo é decrementar o contador , e o algoritmo passa a considerar válidos apenas a quantidade apontada pelo contador , e sendo assim se você quiser remover todos os dados cadastros basta zerar o contador . Algoritmo "Entrada de dados com vetor pesquisa e delete" Var nomeusuario : vetor [1..10] de caractere idadeusuario : vetor [1..10] de inteiro sairsistema : logico resp : caractere numero,z,x,encontrou : inteiro pesqnome ,removenome : caractere contador , contador2 : inteiro Inicio sairsistema := falso enquanto sairsistema = falso faca escreval(" Escolha uma opção. ") escreval("1- Cadastro usuario. ") escreval("2- Lista de usuarios. ") escreval("3- Sair do sistema. ") escreval("4- Buscar usuario pelo nome.") escreval("5- Remover usuario. ") escreval("6- Remover Todos usuario. ") leia(numero) escolha numero caso 1 escreval("quantos usuarios deseja cadastrar?") leia(contador2) contador:= contador+contador2 se (contador>=11)então escreval(" O cadastro de usuarios é de no maximo 10 usuarios!") contador:= contador-contador2 senao para x de 1 ate contador faca se (nomeusuario[x] = "")então escreval("a posição", x, " de",contador," esta disponivel") escreval("digite o nome do usuario.") leia(nomeusuario[x]) escreval(" agora digite a idade do usuario.") leia(idadeusuario[x]) escreval("cadastro realizado") senao escreval("a posição", x," esta ocupada") fimse fimpara fimse caso 2 se (nomeusuario[x] = "")então escreval(" não foi encontrado nenhum usuario cadastrado.") senao escreval("usuarios cadastrados sao:") para x de 1 ate contador faca escreval("usuario :",nomeusuario[x]," idade: ",idadeusuario[x]) fimpara fimse caso 3 escreval(" o sistema sera finalizado") sairsistema:= verdadeiro caso 4 encontrou:=0 escreval("Digite o Nome do usuario a ser pesquisado.") leia(pesqnome) para x de 1 ate contador faca se (nomeusuario[x]= pesqnome) então escreval("a pesquisa encontrou o nome ",nomeusuario[x]," na posição",contador,".") encontrou:= 1 fimse fimpara se (encontrou = 0)então escreval("o nome da pesquisa não foi localizado no sistema!.") fimse caso 5 encontrou := 0 escreval("Informe um nome para remoção do cadastro.") escreval("Lembre que após exclui-lo não será possível reverter,") escreval("apenas realizando novo cadastro") leia(removenome) para x de 1 ate contador faca se (nomeusuario[x] = removenome)então escreval("a pesquisa encontrou o nome ",nomeusuario[x]," na posição ",contador," e será removido") encontrou := 1 interrompa //nomeusuario[x]:="" //idadeusuario[x]:= 0 fimse fimpara se encontrou = 1 então para z de x ate contador faca //se(nomeusuario[x]="")então não precisa dessa comparar // jA sabe a posiCao no loop de cima nomeusuario [z] := nomeusuario [z+1] // puxa os dados de cima para baixo idadeusuario[z] := idadeusuario[z+1] // nos dois vetores contador := contador - 1// qtd de usuArios cadastrados // decrementa contador pois excluiou um //fimse fimpara se (encontrou = 0)então escreval("o nome para remoção não foi localizado no sistema !.") fimse caso 6 escreval("Vai Mesmo excluir todos os usuáriosd cadastrados S/N ") leia(resp) se resp = "s" então contador := 0 // nenhum usuArio vAlido no vetor fimse outrocaso escreval("não consegui identificar a resposta escolha novamente.") fimescolha fimenquanto Fimalgoritmo
  2. @Breno Busnello olá , obrigado pela consideração , mas ainda não entendo como funcionam e nem sei programar as listas encadeadas , e o mérito desse poste citado é do nosso amigo @arfneto ,
  3. @Fabricio Benedito Rogado o visualG da versão 3.0 .6.5 não tem bug , porém ele precisa de melhorias , pois ele nem sempre informa o erro exato , mas diz apenas que foi encontrado um erro , e o usuário é que precisa descobrir qual erro realmente existe , e nesse caso o erro é por que não existe uma posição zero nesse seu vetor cartas , pois ele foi declarado com 6 posições e que começam a partir de 1 , e outra coisa é que no visualG as palavras chaves dos comados não podem tem acentuação , e seu código pode ser modificado para algumas coisa parecido com esse aqui : Algoritmo "não bug" // Data atual : 10/01/2023 Var cartas : vetor[1..6] de inteiro contador,i : inteiro procedimento ordena_as_cartas ( n : inteiro ) var i , j , aux : inteiro inicio escreval("Valor De N = " , n ) para j de 6 ate 1 passo -1 faca para i de 1 ate j-1 passo 1 faca se cartas[i] > cartas[i+1] então aux <- cartas[i] cartas[i] <- cartas[i+1] cartas[i+1] <- aux fimse fimpara fimpara fimprocedimento Inicio escreval("Antes Da Ordenação") escreval repita contador := contador + 1 cartas[contador] := randi( 100 ) escreval("posição ",contador," = ", cartas[contador] ) ate contador > 5 ordena_as_cartas( 6 ) escreval escreval("Depois Da Ordenação") para i de 1 ate 6 faca escreval("posição ",i," = ", cartas[i] ) fimpara Fimalgoritmo
  4. @manuelsilva ok , meu amigo , mas não sei se você já sabes que a Linguagem C++ aceita todos os comandos da linguagem C , e assim ao criar seu código no codeblocks , você pode criar lo em linguagem c++ escolhendo essa opção , e insira todo seu código , que esteja na linguagem c , e ele vai funcionar bem , e além de executar seu código com os comandos da linguagem c ele vai executar também os que sejam da linguagem c++ , e alguns compiladores já cria o arquivo no formato da linguagem c++ , como é o caso do Dev C++ ou o Visual Studio da Microsoftt , e mesmo assim pode colocar os comandos da linguagem c que funciona normalmente , mas se você quer que o arquivo seja apenas para a linguagem c mesmo ,e então você pode modificar aquele código que postei no tópico #4 , por um outro semelhante a esse aqui : #define _WIN32_WINNT 0x600 #define _h GetStdHandle(STD_OUTPUT_HANDLE) #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> #include <windows.h> #include <windowsx.h> #include <mmsystem.h> int main(int argc, char *argv[]) { PlaySound("pipo.wav",NULL,SND_SYNC | SND_LOOP | SND_FILENAME); /// C:\Snakes and Ladders\snake return 0; }
  5. @manuelsilva o playsound é da linguagem C++ , e funciona assim : #include<iostream> /// oreisa desses linkr's no settimgs / compiler / linker settings / other linkers options #include<windows.h> /// -lgdi32 /// -lmingw32 /// -lopengl32 /// -lopengl32 /// -lwinmm usingng namespacece std; int main(){ string name; string a1 = "pipo.wav"; /// nome do arquivo de audio q esteja na mesma pasta desse código string a2 = "apple.wav"; PlaySound((a1.c_str()),NULL,SND_SYNC); /// executa a mUsica até o finaL dela PlaySound((a2.c_str()),NULL,SND_SYNC); /// porém o código só continua apOs terminar a mUsica return 0; }
  6. @manuelsilva entendi que você quer reproduzir uma música no formato WAV , e para isso você pode usar o comando playsound que faz parte da API do windows .
  7. @donutLukke na verdade esse código que @Fernanderson_ postou está todo na linguagem C mesmo , e apenas o comando "cin >> " é da linguagem C++ , e um básico de C++ seria assim : #define _WIN32_WINNT 0x600 #define _h GetStdHandle(STD_OUTPUT_HANDLE) #include <iostream> #include <conio.h> #include <windows.h> #include <iostream> #include <vector> #include <windows.h> #include <iomanip> #define N 10 using namespace std; /// serve para evitar ficar colocando " std:: " int main( int Argc , char **Argv ) { vector < int > vetor ; /// se inicializar desloca as posições int cod = 0; for( int i=0; i<N; i++) /// repetir N vezes { cout << "o Codigo do produto vendido "; /// msg p usuario cin >> cod; /// lE o cOdigo vetor.push_back( cod ); /// armazena no vetor } for( int i=0; i<N; i++ ) cout << setw(3) << i+1 << (char)166 << " pos= " << setw(3) << vetor[i] << endl; return 0; }
  8. @donutLukke seu código que está no Replit está com erro e não compila , e copiado para o codeblock funciona mas veio com muitos caracteres especiais lá do site e ainda não consegui remove los do texto , e ali no post #2 do código que postei acima , ficou com o mesmo erro de antes , mas não haver esse erro seria modificar isso aqui : #define CAID 10 #define CANOME 110 /// assim o nome pode ter muitas letras #define CACPF 12
  9. @Resende inacio creio que poderia ser assim : Algoritmo "Ordem CescenTe" var acertos,erros : vetor[ 1..3 ] de inteiro //Variaveis para armazenar o acerto e erros separados para cada pessoa em vetor questoes,respostas : vetor[ 1..10,1..5] de caractere nome : vetor[ 1..3 ] de caractere // variavel para armazenar o nome de cada pessoa separado q fizer a prova em vetor res , aux : caractere // variavel para ler a resposta de cada questão i , j ,q ,auxiliar : inteiro // contador percentualacertos1 : real percentualacertos2 : real // variveis para calcular o percentual de acertos das questões percentualacertos3 : real inicio questoes[1,1] := " Quem foi a primeira pessoa a viajar no Espaço? " questoes[1,2] := "A) Yuri Gagarin" questoes[1,3] := "B) A cadela Laika" questoes[1,4] := "C) Neil Armstrong" questoes[1,5] := "D) Buzz Aldrin" questoes[2,1] := " Qual a montanha mais alta do mundo? " questoes[2,2] := "A) Monte Everest" questoes[2,3] := "B) Monte Chimborazo" questoes[2,4] := "C) Pico da Neblina" questoes[2,5] := "D) Monte Chimborazo" questoes[3,1] := " Onde se localiza Machu Picchu? ") questoes[3,2] := "A) Peru " questoes[3,3] := "B) Colômbia" questoes[3,4] := "C) Bolívia" questoes[3,5] := "D) Argentina" questoes[4,1] := " Quanto tempo a Terra demora para dar uma volta completa em torno dela mesma ") questoes[4,2] := "A) 365 dias " questoes[4,3] := "B) 30 dias " questoes[4,4] := "C) 24 horas " questoes[4,5] := "D) 7 dias " questoes[5,1] := " Qual a Temperatura de ebulição da água? ") questoes[5,2] := "A) 100° C " questoes[5,3] := "B) 90° C" questoes[5,4] := "C) 200° C " questoes[5,5] := "D) 150° C" questoes[6,1] := " Qual o maior planeta do sistema solar? ") questoes[6,2] := "A) Júpiter" questoes[6,3] := "B) Saturno " questoes[6,4] := "C) Terra " questoes[6,5] := "D) Lua" questoes[7,1] := " Qual o monumento famoso pela sua inclinação? ") questoes[7,2] := "A) Torre de Pisa " questoes[7,3] := "B) Torre Eiffel" questoes[7,4] := "C) Estatua da Liberdade " questoes[7,5] := "D) Esfinge" questoes[8,1] := " Qual a especialidade do otorrinolaringologista? ") questoes[8,2] := "A) Tratamento das doenças relacionadas a nariz, ouvido e garganta" questoes[8,3] := "B) Tratamento das doenças dos olhos" questoes[8,4] := "C) Tratamento de estomago" questoes[8,5] := "D) Tratamento das doenças da pele" questoes[9,1] := " Que grande evento histórico aconteceu em 1822 no Brasil? ") questoes[9,2] := "A) Independencia do Brasil" questoes[9,3] := "B) Descobrimento do Brasil" questoes[9,4] := "C) Ditadura Militar" questoes[9,5] := "D) Construção de Brasilia" questoes[10,1] := " Qual a primeira mulher a ganhar um prêmio Nobel? ") questoes[10,2] := "A) Madre Teresa de Calcutá" questoes[10,3] := "B) Elizabeth Blackweel " questoes[10,4] := "C) Valentina Tereshkova" questoes[10,5] := "D) Marie Curie" para i de 1 ate 3 passo 1 faca // laco de repetiCAo para fazer a prova para 3 Alunos diferentes escreval escreval(" ","[",i," ]","° Aluno ") escreval escreval("==================================================================================") escreval(" PROVA DE CONHECIMENTO GERAIS! ") escreval("==================================================================================") escreval escreva("Nome: ") leia(nome[i]) para j de 1 ate 10 faca escreval escreval escreval("==================================================================================") escreval(" ",j," ° Questão ") escreval("==================================================================================") // inicio da prova com as questões escreval para q de 1 ate 5 faca escreval(questoes[ j , q ] ) fimpara escreval escreval("Resposta: ") leia( res ) // ler as respostas enquanto ( res < "a" ) ou ( res > "d" ) faca escreval("Opção Invalida! Digite outra resposta") leia( res ) fimenquanto se res = "a" então // comando se vai comparar se a resposta foi correta ou não e vai contabilizar os acertos e erros acertos[i] := acertos[i] + 1 senao erros[i] := erros[i] + 1 fimse limpatela fimpara fimpara percentualacertos1:=(acertos[1]/10)*100 percentualacertos2:=(acertos[2]/10)*100 //atribuição para o calculo de percentual de acertos percentualacertos3:=(acertos[3]/10)*100 para i de 1 ate 3 faca para j de 1 ate 3 faca se acertos[i] < acertos[j] então auxiliar := acertos[i] acertos[i] := acertos[j] acertos[j] := auxiliar // organiza os acertos auxiliar := erros[i] erros[i] := erros[j] erros[j] := auxiliar // organiza os erros aux := nome[i] // organiza os nomes nome[i] := nome[j] nome[j] := aux fimse fimpara fimpara escreval escreval("====================================================================================") escreval(" RESULTADO DAS PROVAS! ") escreval("====================================================================================") para i de 1 ate 3 faca escreval escreval("Resultado prova ",i," ! Nome: ",nome[i]," Acertos: ",acertos[i]," Percentual de: ",percentualacertos1:6:2,"% Erros: ",erros[i]) fimpara fimalgoritmo
  10. @donutLukke creio que seja por que a string foi declarada com onze espaços , e assim só pode armazenar dez caracteres do nome , e o último espaço reservado será usado para armazenar o newLine da tecla enter , então se você colocar a string com maior quantidade de espaços não haverá erro . como você pode ver nesse código : #define _WIN32_WINNT 0x600 #define _h GetStdHandle(STD_OUTPUT_HANDLE) #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> #include <windows.h> #define CAID 10 #define CANOME 11 #define CACPF 12 typedef struct A { char id [CAID ]; char nome[CANOME]; char cpf [CACPF ]; struct A *esquerdo ; struct A *direito ; short altura ; } stc_Aluno ; int main( int Argc , char **Argv ) { stc_Aluno al[5]; int cor_letra, cor_fundo; CONSOLE_SCREEN_BUFFER_INFO c; if( GetConsoleScreenBufferInfo( _h, & c ) ) { cor_letra = ( c.wAttributes & 0xFF ) & 0x0F; cor_fundo = ( (c.wAttributes & 0xFF ) >> 4 ) & 0x0F; } SetConsoleTextAttribute( _h , 14 + ( 12 << 4 ) ); strcpy(al[0].nome , "Fulano Cic" ); /// essa string pode ter no mAximo 11 caracteres /// sendo que o Ultimo serA o newLine "\n" tecla "Enter" strcpy(al[0].cpf , "12345678910" ); printf(" Nome -> %10s \n Cpf -> %10s \n", al[0].nome , al[0].cpf ); SetConsoleTextAttribute( _h , cor_letra + ( cor_fundo << 4 ) ); return 0; }
  11. @Resende inacio essa lógica não está muito boa , não , pois você está contando os acertos e erros , e não precisa usar vetor para isso , melhor seria usar os vetores para armazenar as questões e respostas e após terminar todas as questões , faz a contagem dos acertos e erros , e não precisa repetir a mesma parte do código várias vezes , se usar um laço de repetição que vai pegando as Questões armazenadas previamente em um vetor de caracteres antes do início do programa , e assim você poderia usar um método de ordenação de vetores , como o bubbleSort ou o AncoraSort e teria a classificção dos melhores pontuados decrescendo para os que tenham menos quantidade de pontos .
  12. @Robs156 ele vai funcionar , mas porém se digitar número ímpar ou letras ao invés de número , ele vai para a execução e sair ., então creio que seria melhor validar o que for digitado , e se não for válido voltar e repetir para pegar o número da mesma posição do vetor , e usando a função "fgets" que lê string's , assim pode digitar qualquer caractere e a função "atoi" converte a string para int , você faz as comparações .
  13. @ALoneW . O que acontece é que se você usar o "senão" ele faz apenas uma parte do código e ignora o restante , e outra coisa é que no visualG as variáveis são globais e assim ao cria Las o compilador já estabelece o valor zero nelas , por isso não precisa inicializa Las com esse valor zero , mas apenas se for outro valor qualquer, e esse "cont" , melhor seria se também fosse zero , assim reduziria o código , e no enquanto colocar enquanto cont < 2 faca , ao invés de "<=" ..
  14. @luhowl seu código está Quase completo , mas esse terceiro Loop não precisa dele como bem Disse @Midori , e creio também que o enunciado quer que os números após serem Multiplicados pelo maior deles , também sejam colocados os resultados desses valores de volta no mesmo vetor nas respectivas posições novamente , e para fazer uma validação de modo a não haver bug na hora de digitar os valores que são do tipo inteiro , e se for digitado uma letra , use a função fgets , que pega uma string que pode ter qualquer caractere e converta essa string para int usando a função atoi , e seu código ficou assim : #define _WIN32_WINNT 0x600 #define _h GetStdHandle(STD_OUTPUT_HANDLE) #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <conio.h> #include <string.h> #include <limits.h> /// limites valor de tipos #define TAM 5 #define cls system("cls||clear"); /// questão 1) Faça um programa em C que leia um vetor /// de 15 posições de números inteiros e multiplique /// todos os elementos pelo maior valor do vetor. /// Mostre o vetor após os cálculos . int main() { int vet[TAM] = {0}; int multi = 0 ; int i = 0 ; char ax[5] = "" ; int maior_valor = INT_MIN; /// Macro da Biblioteca limits.h int cor_letra, cor_fundo; CONSOLE_SCREEN_BUFFER_INFO c; if( GetConsoleScreenBufferInfo( _h , & c ) ) { cor_letra = ( c.wAttributes & 0xFF ) & 0x0F; cor_fundo = ( (c.wAttributes & 0xFF ) >> 4 ) & 0x0F; } SetConsoleTextAttribute( _h , 12 + ( 15 << 4 ) ); printf(" Insira os valores do vetor- \n"); SetConsoleTextAttribute( _h , 11 + ( 0 << 4 ) ); for( int i=0; i<5; i++) /// alguns compiladores aceitam criar a variAvel dentro do loop { printf(" %d%c Valor " , i+1 , 167 ); fgets( ax , sizeof( ax ) , stdin ); vet[i] = atoi( ax ); if( maior_valor < vet[i] ) maior_valor = vet[i]; } cls /// para Limpar a tela em Windows e Linux SetConsoleTextAttribute( _h , 12 + ( 10 << 4 ) ); printf(" aqui estão os Vetor Mutiplicado: \n"); SetConsoleTextAttribute( _h , 14 + ( 0 << 4 ) ); for( int i=0; i<5; i++ ) { vet[i] *= maior_valor; printf("%d%c PosiCAo = %3d\n", i+1 , 167 , vet[i] ); } SetConsoleTextAttribute( _h , cor_letra + ( cor_fundo << 4 ) ); /// funCAo da API do Windows return 0; /// a funCAo main eh do tipo int e retorna algum valor }
  15. @Júlia Donadelli . Python é uma boa opção para Web , C# também , e JavaScript também .
  16. @Sathosi esse código modificado para extrair a raiz Quadrada do número 81 : ;-------------------------------- ; Programa -: Raiz Quadrada ; Autor ----: Devair ; Data -----: 23/12/2022 ;-------------------------------- ; aqui no editor os valores estão na Base 10 ( DecimaL ) ; no Visor e nas Flag's estão escritos na ; Base 16 , ( HexadacimaL ) ; As variAveis sAo Opcionais , pois podem ser substituIdas ; pelos respectivos endereCos a equ 128 ; a = endereCo de memória 128 b equ 129 ; b = endereCo de memória 129 c equ 130 ; c = endereCo de memória 130 x equ 131 ; x = endereCo de memória 131 y equ 132 ; y = endereCo de memória 132 org 0 ; inIcio Do Programa ldi 0 ; carrega Registrador/Acumulador A com valor zero sta a ; valor iniciaL Das MultipliCOes ldi 81 ; nUmero decimal para extrair raiz Quadrada sta y ; armazena no endereCo y = 132 ldi 1 ; carrega Registrador/Acumulador A com valor zero sta b ; incremento do loop sta c ; nUmeros sequenciais comeCa em 1 p ver se eh a Rzq L0: ; Label L0 lda c ; eh o Multiplicando sta c ; e o MultiplicadoR , pois eh RzQ , ( num x mesmo ) L1: ; Label L1 , inIcio do loop Q faz a multipl sta x ; Multiplicad qtd vezes lda a ; Acumulador A com qtd de x somar add c ; soma com o mesmo nUmero ( num x num ) sta a ; O vaLor do increMento lda x ; eh O Num p Extrir a QzQ sub b ; diminuiu mais um jnz L1 ; se não for zero volta a L1 p somar de novo fim: ; Label Final da MultiplicaAo lda a ; carrega o resultado da multipl out 0 ; mostra result da multipl lda y ; carrega A com val do num extr raiz sub a ; subtrai o result da multipl jz rzq ; se res da subtr for zero pula p rzq lda c ; carrega num em test add b ; incrementa esse num testado sta c ; armazena esse novo num ldi 0 ; carrega Acumulador A com val zero sta a ; guarda p inicio da nova multiplic jmp L0 ; volta p testar esse novo num rzq: ; Label da raiz Quadrada Que já foi achada lda c ; eh a raiz quadrada out 0 ; mostra a raiz quadrada hlt ; Termino do Programa na tela do neanderWin observe que cada número , na base Decimal , será multiplicado por ele mesmo e o resultado mostrado no visor , no sistema Hexadecimal , enquanto não encontrar a raiz quadrada , do número que se quer saber a raiz quadrada , e as flag's irão se mover , mas ao encontrar a raiz quadrada essas flag's irão para de se movimentar .e o resultado estará no visor em Hexadecimal .
  17. @Michael Fernando pelo jeito esse mouse está danificado , e você pode tentar consertar abrindo ele e ajustar o clique naquele switch , mas talvez não fique bom , e melhor mesmo outro mouse novo , isso é barato , em torno R$ 10 , 00 .
  18. @solracm creio que seja melhor pegar a data separada , por exemplo primeiro pega o Dia depois O Mês , e depois o Ano printf("Data de inicio(dd/mm/ano) ? \n"); printf("o Dia "); res += scanf("%d", &a.data.dia ); printf("o Mes "); res += scanf("%d", &a.data.mes ); printf("o Ano "); res += scanf("%d", &a.data.ano); printf("val Res= %d\n",res); printf("Data-> %d/%d/%d\n",a.data.dia,a.data.mes,a.data.ano);/// verif se dados estão certos e na hora de pesquisar compare com esses mesmos dados .
  19. @manuelsilva @manuelsilva Desculpe coloquei o nome da função errada , não é strcpy e sim strcmp . if( strcmp(enigma3,"que nada sei")==0 || strcmp(enigma3,"nada" )==0 ) printf("E Outras Coisas . . . !\n\n");
  20. @manuelsilva seu código contém erros , pois se você está usando a Linguagem C , talvez você ainda não saiba que C não é a mesma coisa que C++ , acontece que C++ aceita todos os comandos e funções da linguagem C , mas C não aceita os comandos de C++ , e essa biblioteca ] #include <iostream> é de C++ , e por isso seu código não funciona . e se você quer colorir as letras e o fundo da Tela , você pode usar essa Função SetConsoleTextAttribute( GetStdHandle(STD_OUTPUT_HANDLE) , cor_letras + ( cor_fundo << 4) ); e a função fprintf pode ser simplificada , para ser menor e mais rápida e também se você usar o botão code "<>" , seu código ficará bem coloridinho e mais fácil de copar para testar : #define WIN32_WINNT 0x600 #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> #include <windows.h> #define _h GetStdHandle(STD_OUTPUT_HANDLE) #define cls system("cls||clear"); //#include <iostream> essa biblioteca eh da linguagem C++ #include <conio.h> /// conio não eh padrão na Linguagem C + funciona em alguns pc's void gameover() { system("game_over.PNG * open"); } //tema jogo ou enigma tendo em conta a materia int main() { FILE* arquivo1; FILE* arquivo2; FILE* arquivo3; FILE* arquivo4; FILE* arquivo5; int escolha = 0 ; int enigma2 = 0 ; int vidas = 3 ; char enigma4[40] = {0}; char enigma1[40] = {0}; char enigma3[40] = {0}; int cor_letra, cor_fundo; CONSOLE_SCREEN_BUFFER_INFO c; if( GetConsoleScreenBufferInfo( _h, & c ) ) { cor_letra = ( c.wAttributes & 0xFF ) & 0x0F; cor_fundo = ( (c.wAttributes & 0xFF ) >> 4 ) & 0x0F; } SetConsoleTextAttribute( _h , 12 + ( 10 << 4 ) ); /// colorir letras e o fundo da Tela printf("Jogo De Enigmas . \n\tTecle \n"); getch(); /// getch eh da biblioteca conio cls /// limpar a Tela arquivo1 = fopen("regras.txt","a"); if(arquivo1 == NULL) arquivo1 = fopen("regras.txt","w"); system("color 1F"); printf("ESCOLHA UMA DAS opções\n"); /// %c%c%c%c%c%c%c %c%c%c %c%c%c %c%c%c%c%c%c\n",69,83,67,79,76,72,65,85,77,65,68,65,83,79,80,67,79,69,83); printf("_______________\n"); printf("| menu ||||||||\n"); printf("| 1 - jogar |||\n"); printf("| 2 - sair ||||\n"); printf("|||||||||||||||\n"); printf("_______________\n"); scanf ("%d" , & escolha ); switch( escolha ) { case 1: fprintf(arquivo1, "regras do jogo\n\n\n" "o seu numero de vidas é de %d\n" "irei primeiro apresentar os primeiro enigmas e a cada pergunta teras\n" "de criar um ficheiro onde iras por a respetiva resposta\n\n" "enigma 1\n" "traduza esta mensagem\n" "---/-.-. . ..-/.... --- .--- ./. ... - .-/.-.. .. -. -.. ---\n" "aceda ao ficheiro com o nome de enigma1 e inclua a sua resposta para o primeiro enigma\n" "enigma 2\n" "quanto é 347 em decimal para binário \n" "escreva o resultado no ficheiro enigma2\n" "enigma 3\n" "sabendo que eu sei que nada sei o que sei eu \n" "escreva o resultado no ficheiro enigma3\n" "enigma 4\n" "qual destas opções serve para ler ficheiros fprintf;scanf;fscanf;echo\n" "escreva o resultado no ficheiro enigma4\n",vidas); fclose(arquivo1); printf("agora que os enigmas ja estão apresentados no ficheiro das\n" "regras vai respondelos\ne quando acabares volta e clica no enter\n"); printf("\tTecle !\n"); getch(); arquivo2 = fopen("enigma1.txt","a" ); if( arquivo2 == NULL ) arquivo2 = fopen("enigma1.txt","w" ); fscanf( arquivo2 , "%s" , & enigma1 ); /// Ler string eh com %s /// if (enigma1=="o ceu hoje esta lindo1") /// em C a comparaCAo de string's if( strcpy( enigma1 , "o ceu hoje esta lindo1") == 0 )/// não e com == e sim com strcpy printf("Qualquer Coisa . . . !\n\n"); else vidas-1; arquivo3 = fopen("enigma2.txt","a"); if( arquivo3 == NULL ) arquivo3 = fopen( "enigma2.txt","w" ); fscanf( arquivo3 , "%d" , & enigma2 ); if(enigma2 == 101011011) printf("Mais Alguma Coisa . . . !\n\n"); else vidas-1; arquivo4 = fopen( "enigma3.txt" ,"a"); if( arquivo4 == NULL ) arquivo4 = fopen("enigma3.txt","w"); fscanf( arquivo4 , "%s" , & enigma3 ); if( strcpy(enigma3,"que nada sei")==0 || strcpy(enigma3,"nada" )==0 ) printf("E Outras Coisas . . . !\n\n"); else vidas-1; arquivo5 = fopen("enigma4.txt" ,"a"); if( arquivo5 == NULL ) arquivo5 = fopen("enigma4.txt","w"); fscanf(arquivo5 ,"%s" , & enigma4 ); if(strcpy(enigma4,"fscanf")==0) printf("mais coisa de novo . . . !\n\n"); else vidas-1; printf("%d" , & vidas ); if( vidas < 1 ) gameover(); fclose(arquivo1); fclose(arquivo2); fclose(arquivo3); fclose(arquivo4); fclose(arquivo5); break; case 2: system("pause"); break; } SetConsoleTextAttribute( _h,cor_letra + ( cor_fundo << 4 ) ); return 0; /// a FunCAo main eh do tipo int e retorna algum valor }
  21. @Isabella Borges da Silva o número primo só tem 2 divisores exatos , o número 1 e o próprio número mesmo , assim você pode extrair o módulo "mod" do número para saber se a divisão é exata ou não , e depois que você fizer um código sobre esse exercício , poste aqui e ajudaremos se precisar ,
  22. @João Parolini em C uma string é um char que tenha uma dimensão com mais de um espaço , e um vetor de string é um char com duas dimensões sendo que a segunda precisa ter mais de uma espaço , e uma Matriz de string tem três dimensões e a terceira dimensão com mais de um espaço , como postei no seu outro post https://www.clubedohardware.com.br/forums/topic/1625820-exercício-em-c-usando-matriz/ no tópico #9 char Matriz [30][4][10] = {0}; /// [30] esse primeiro par de colchetes são a qtd de Linhas /// [ 4] esse segundoo par de colchetes são a qtd de Colunas /// [10] esse Terceiro par de colchetes são a qtd de Caracteres das Strng's e para pegar um nome qualquer , que vai ter os sobrenomes também , é melhor usar a Função fgets , que lê todos os caracteres que for digitados ,
  23. @filipefreitas11 na sua função de carregar_dados , ela não lê nada no arquivo , pois a função fscanf , não funciona assim , /// caract juntos aos especificadores . ERRO fscanf(arqPrestador,"CPF/CNPJ: %d Idade: %d Placa: %d CNH: %d Telefone: %d Porte: %s Pets: %s Nome %s\n", &prest.cpfcnpj, &prest.idade, &prest.cnh, &prest.telefone, prest.porte, prest.pets, prest.nome ); que pode ser assim : fscanf ( arqPrestador , "%d%d%d%d%d%s%s%s", & prest.cpfcnpj , & prest.idade , & prest.cnh , & prest.telefone , & prest.placa , prest.porte , prest.pets , prest.nome ); e esses dados podem ser do tipo string , pois você não vai fazer nenhum cálculo usando eles , e também o cpf ou cnpj , vai dar erro , pois serão 11 dígitos , e o valor máximo de um int é 2.147.483.647 , https://qastack.com.br/programming/94591/what-is-the-maximum-value-for-an-int32 melhor seria usar string's: typedef struct /// dadosPrestador { char idade [ 5]; char placa [10]; char cpfcnpj [20]; char cnh [20]; char telefone[15]; char porte [10]; char pets [10]; char nome [30]; } prestador ; /// [30];
  24. @rafa amateur essa flg serve para pegar o primeiro valor inserido e armazenar nas variáveis "maior" e "menor" pois a variável menor foi criada e preenchida com valor zero lá antes do início e então para que ela modificasse esse valor só poderia ser um número negativo , e alí ao guardar o primeiro valor nessas variáveis , a flg é modificada e assim não permite pegar outro valor , e assim essa parte do programa não interfere nas comparações seguintes .
  25. @rafa amateur a condução de saída do programa é quando digitar zero , e você colocou 5 para terminar , e creio que só precisa mesmo é de três variáveis , e mais uma para controlar a inicialização no início , e usando o Botão code "<>" , seu código ficou assim : Algoritmo "maior e menor_211" Var num , maior, menor : inteiro comp1 , comp2 , flg : inteiro Inicio repita escreval ("digite o numero: ") leia (num) se flg = 0 então // não pode ter til maior := num menor := num flg := 1 fimse se num <> 0 então // o corretor ortografico do forum se(num > maior) então // inseriu errado maior := num senao se menor > num então menor := num fimse fimse senao escreval( "Maior -> ", maior) escreval( "Menor -> ", menor) fimse ate num = 0 fimalgoritmo

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!