Ir ao conteúdo
  • Cadastre-se

devair1010

Membro Pleno
  • Posts

    6.293
  • Cadastrado em

  • Última visita

Tudo que devair1010 postou

  1. @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; }
  2. @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; }
  3. @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 .
  4. @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; }
  5. @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
  6. @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
  7. @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; }
  8. @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 .
  9. @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 .
  10. @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 "<=" ..
  11. @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 }
  12. @Júlia Donadelli . Python é uma boa opção para Web , C# também , e JavaScript também .
  13. @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 .
  14. @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 .
  15. @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 .
  16. @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");
  17. @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 }
  18. @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 ,
  19. @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 ,
  20. @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];
  21. @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 .
  22. @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
  23. @junglerfullclear creio que o primeiro esteja melhor , pois funcionou bem , e no entanto o segundo nem compilou , apresentando esse erro desconhecido , terminate called after throwing an instance of 'std::logic_error' what(): basic_string::_M_construct null not valid
  24. @João Parolini essa matriz foi criada com 3 elementos , mas você está colocando 4 coisas na hora de preencher , e como ela é de string , então precisa de mais uma dimensão , senão ela só poderia receber um caractere em cada coluna , e como são string's não precisa informar o endereço dessa variável , pois de algum modo bem desconhecido , o compilador já sabe o endereço "&" dela , e usando fgets evita de que o usuário digite algum dado inválido ,por exemplo era para digitar número e digitou letra , e travar o programa todo , e uma função que mostra o que foi cadastrado . #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) /* Faça um programa que lê um número n e em seguida lê dados de n exames: A1;A2; : : : ;An. Cada exame Ai tem o nome do paciente, Nomei; uma taxa de xolesterol Xi (número entre 0 e 100); uma taxa de broteinas e Bi (número entre -10 e 10) e uma taxa de toroteinas Ti (um valor entre 5000 e 10000). Todos os valores numéricos são reais. Pessoas normais tem valores de Xi 2 [30; 50], Bi 2 [􀀀3; 7], Ti 2 [6500; 8000]. Os pacientes que tem taxa de xolesterol abaixo (acima) do normal, têm hipoxolesterol (hiperxolesterol). Os que tem taxa de broteinas abaixo (acima) do normal, têm hipobroteina (hiperbroteina). As que tem taxa de toroteinas abaixo (acima) do normal, têm hipotoroteinas (hipertoroteinas). Seu programa deve imprimir todos os pacientes que apresentam alguma doença. Para cada uma, deve se: (a) imprimir qual o tipo de doença que ela apresenta. (b) se ela apresentar duas doenças, deve se escrever que o estado do paciente é grave. (c) se ela apresentar três doenças, deve se escrever que o estado do paciente é muito grave. */ char Listar( char ex[30][4][10] , int ); int main() { char a[10]; char exames[30][4][10] = {0}; int i = 0 ; int j = 0 ; int n = 0 ; char aux[] = { "32768" }; L1: /// Label p onde o goto voltar printf("A Quantidade de ExaMes "); fgets( aux, sizeof( aux ), stdin ); /// isso evita q seja inserdo dados inválidos n = atoi( aux ); /// pois string aceita qq caract if( ! n ) /// se n For igual a zero goto L1; /// volta a pedir p informar o nUmero printf( "\n" ); for( int i=0; i<n; i++ ) /// alguns compiladores aceitam { /// criar a variAvel dentro do Loop printf(" Nome do paciente ---: "); scanf ("%s", & exames[i][0] ); /// só precisa de um loop , pois as Quatro colunas printf(" Taxa de Xolesterol -: "); /// de cada Linha da Matriz serAo preenchidas a cada scanf ("%s", exames[i][1] ); /// passada do Loop printf(" Taxa de Broteinas --: "); scanf ("%s", exames[i][2] ); printf(" Taxa de Toroteinas -: "); /// para string não precisa desse sImbolo "&" scanf ("%s", exames[i][3] ); /// pois jA tem o endereCo da variAvel printf( "\n" ); for( int j=0; j<4; j++ ) { /// aqui só para ver se digitou e estA funcionando bem printf( "Exames[%d][%d] -> %s\n" ,i,j, exames[i][j] ); } printf( "\n" ); } Listar( exames, n ); /*strcpy( a , Listar( exames, n ) ); printf( "Retornou -> %8s\n\n\n",a);*/ return 0; } char Listar( char exames[][4][10], int n ) { printf( "\nListando Todos Os %d PaciEntes:\n\n",n ); for( int i=0; i<n; i++ ) { printf(" Nome do paciente ---: %s\n" " Taxa de Xolesterol -: %s\n" " Taxa de Broteinas --: %s\n" " Taxa de Toroteinas -: %s\n", exames[i][0], exames[i][1], exames[i][2], exames[i][3] ); printf( " ----\n" ); } return "a"; }
  25. @Tati Schein . Testei seu código no pycharm , e não compilou , apresentando erro de sintaxe , pois não pode misturar float com list , então creio mesmo que seria melhor usar um laço de repetição , para fazer esse cálculo .

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!