-
Posts
6.318 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que devair1010 postou
-
@Amiguinho Java eu não entendo, já tentei instalar alguns compiladores java, mas nunca funcionaram certo aí resolvi dar um tempo, depois tento de novo . Mas pesquisei sobre a API Win32 e consegui fazer alguma coisa, veja esse código aqui : #include <windows.h> #include <stdlib.h> #include <conio.h> #include <iostream.h> #include <stdio.h> #include <string.h> #include <vector.h> LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil) { HWND hwnd; MSG messages; WNDCLASSEX wincl; /* WNDCLASS wnd;/*essa linha coloquei depois */ wincl.hInstance = hThisInstance; wincl.lpszClassName = "WindowsApp";/*WindowsApp tem que ter */ wincl.lpfnWndProc = WindowProcedure; wincl.style = CS_DBLCLKS; wincl.cbSize = sizeof (WNDCLASSEX); wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);/*IDI_APPLICATION -- MB_ICONEXCLAMATION*/ wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION); wincl.hCursor = LoadCursor (NULL, IDC_ARROW); wincl.lpszMenuName = NULL; wincl.cbClsExtra = 0; wincl.cbWndExtra = 0; wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;/*+5=branco*/ /* wnd.hbrBackground = (HBRUSH)(COLOR_BACKGROUND+2);/*essa linha coloquei depois */ if (!RegisterClassEx (&wincl)) return 0; hwnd = CreateWindowEx ( 0, "WindowsApp", "Interface De Pesquisa", WS_OVERLAPPEDWINDOW, 100,/*pos x da tela de 0 ate 1280 tamanho da tela*/ 5,/*pos y da tela de 0 ate 720 tamanho da tela*/ 1024,/*largura da janela criada largura da tela*/ 720,/*altura da janela criada altura da tela*/ HWND_DESKTOP, NULL, hThisInstance, NULL ); ShowWindow (hwnd, nFunsterStil); while (GetMessage (&messages, NULL, 0, 0)) { TranslateMessage(&messages); DispatchMessage(&messages); } return messages.wParam; } #define ID_BUTTONPesquisar 1001 #define ID_BUTTONSair 1002 #define ID_BUTTONAnterior 1003 #define ID_BUTTONProximo 1004 HINSTANCE g_inst; HWND EditNum1,EditNum2,EditNum4,EditNum3,EditNum5,EditNum6,ButtonPesquisar,ButtonSair,ButtonAnterior,ButtonProximo; void DesenharObjectos(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { EditNum1 = CreateWindowEx ( WS_EX_CLIENTEDGE, "EDIT", "", WS_VISIBLE|WS_CHILD|WS_BORDER/*|ES_RIGHT*/ , 200, 30, 150, 30, hwnd, NULL, g_inst, NULL ); EditNum2 = CreateWindowEx ( WS_EX_CLIENTEDGE,"EDIT", "", WS_VISIBLE|WS_CHILD|WS_BORDER, 200, 80, 150, 30, hwnd, NULL, g_inst, NULL ); EditNum3 = CreateWindowEx ( WS_EX_CLIENTEDGE,"EDIT", "", WS_VISIBLE|WS_CHILD|WS_BORDER, 200, 130, 150, 30, hwnd, NULL, g_inst, NULL ); EditNum4 = CreateWindowEx ( WS_EX_CLIENTEDGE,"EDIT", "", WS_VISIBLE|WS_CHILD|WS_BORDER, 200, 180, 150, 30, hwnd, NULL, g_inst, NULL ); EditNum5 = CreateWindowEx ( WS_EX_CLIENTEDGE,"EDIT", "", WS_VISIBLE|WS_CHILD|WS_BORDER, 200, 230, 150, 30, hwnd, NULL, g_inst, NULL ); EditNum6 = CreateWindowEx ( WS_EX_CLIENTEDGE,"EDIT", "", WS_VISIBLE|WS_CHILD|WS_BORDER, 200, 280, 150, 30, hwnd, NULL, g_inst, NULL ); ButtonPesquisar = CreateWindowEx ( 0, "BUTTON", "PESQUISAR", WS_VISIBLE|WS_CHILD, 500, 30, 150, 30, hwnd, (HMENU)ID_BUTTONPesquisar, g_inst, NULL ); ButtonSair = CreateWindowEx ( 0, "BUTTON", "SAIR", WS_VISIBLE|WS_CHILD, 500, 130, 150, 30, hwnd, (HMENU)ID_BUTTONSair, g_inst, NULL); ButtonAnterior = CreateWindowEx ( 0, "BUTTON", "ANTERIOR", WS_VISIBLE|WS_CHILD, 465, 80, 100, 30, hwnd, (HMENU)ID_BUTTONAnterior, g_inst, NULL); ButtonProximo = CreateWindowEx ( 0, "BUTTON", "PROXIMO", WS_VISIBLE|WS_CHILD, 580, 80, 100, 30, hwnd, (HMENU)ID_BUTTONProximo, g_inst, NULL); CreateWindowEx ( 0, "STATIC", "ENTRADA", WS_VISIBLE|WS_CHILD, 110,35,68,16, hwnd, NULL, g_inst, NULL ); CreateWindowEx ( 0, "STATIC", " NOME", WS_VISIBLE|WS_CHILD, 110,85,68,16, hwnd, NULL, g_inst, NULL ); CreateWindowEx ( 0, "STATIC", " EMAIL", WS_VISIBLE|WS_CHILD, 110,135,68,16, hwnd, NULL, g_inst, NULL ); CreateWindowEx ( 0, "STATIC", " DEPART", WS_VISIBLE|WS_CHILD, 110,185,68,16, hwnd, NULL, g_inst, NULL ); CreateWindowEx ( 0, "STATIC", " CELULAR", WS_VISIBLE|WS_CHILD, 110,235,68,16, hwnd, NULL, g_inst, NULL ); CreateWindowEx ( 0, "STATIC", " RAMAL", WS_VISIBLE|WS_CHILD|BS_CENTER, 110,285,68,16, hwnd, NULL, g_inst, NULL ); SendMessage((HWND) EditNum1,(UINT) WM_SETFONT,(WPARAM) GetStockObject(DEFAULT_GUI_FONT),(LPARAM) lParam); SendMessage((HWND) EditNum2,(UINT) WM_SETFONT,(WPARAM) GetStockObject(DEFAULT_GUI_FONT),(LPARAM) lParam); SendMessage((HWND) EditNum3,(UINT) WM_SETFONT,(WPARAM) GetStockObject(DEFAULT_GUI_FONT),(LPARAM) lParam); SendMessage((HWND) EditNum4,(UINT) WM_SETFONT,(WPARAM) GetStockObject(DEFAULT_GUI_FONT),(LPARAM) lParam); SendMessage((HWND) EditNum5,(UINT) WM_SETFONT,(WPARAM) GetStockObject(DEFAULT_GUI_FONT),(LPARAM) lParam); SendMessage((HWND) EditNum6,(UINT) WM_SETFONT,(WPARAM) GetStockObject(DEFAULT_GUI_FONT),(LPARAM) lParam); SendMessage((HWND) ButtonPesquisar,(UINT) WM_SETFONT,(WPARAM) GetStockObject(DEFAULT_GUI_FONT),(LPARAM) lParam); SendMessage((HWND) ButtonSair,(UINT) WM_SETFONT, (WPARAM) GetStockObject(DEFAULT_GUI_FONT),(LPARAM) lParam); SendMessage((HWND) ButtonAnterior,(UINT) WM_SETFONT, (WPARAM) GetStockObject(DEFAULT_GUI_FONT),(LPARAM) lParam); SendMessage((HWND) ButtonProximo,(UINT) WM_SETFONT, (WPARAM) GetStockObject(DEFAULT_GUI_FONT),(LPARAM) lParam); } char s_valor1[20] = "0",s_valor2[20]; LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_CREATE: DesenharObjectos(hwnd,message,wParam,lParam); break; case WM_COMMAND: if ((HIWORD(wParam) == BN_CLICKED)) { SendMessage( (HWND) EditNum1, (UINT) EM_GETLINE, (WPARAM) 1, (LPARAM) &s_valor1 ); SendMessage((HWND)EditNum2,(UINT)EM_GETLINE,(WPARAM)1,(LPARAM) &s_valor2); switch (LOWORD(wParam)) { case ID_BUTTONPesquisar: MessageBox(0,"aqui pesquisar","",0); break; case ID_BUTTONSair: PostQuitMessage(0); break; case ID_BUTTONAnterior: MessageBox(0,"aqui anterior","",0); break; case ID_BUTTONProximo: MessageBox(0,"aqui Proximo","",0); break; } SendMessage( (HWND) EditNum3, (UINT) WM_SETTEXT, (WPARAM) 0, (LPARAM) &s_valor1 ); SendMessage( (HWND) EditNum4, (UINT) WM_SETTEXT, (WPARAM) 0, (LPARAM) &s_valor2 ); } break; case WM_DESTROY: PostQuitMessage (0); break; default: return DefWindowProc (hwnd, message, wParam, lParam); } return 0; } no code blocks crie um projeto clicando em File / Project / Win32 GUI Project clique em go depois em next e em next depois coloque o nome do projeto depois clique em abrir vai aparecer uma pasta com o nome do projeto, nessa pasta abra o arquivo com nome main.c ou main cpp , então quando abrir a listagem na tela selecione toda a listagem e delete ela, então cole esse código no lugar e salve , aí pode compilar e se depois que você fechar o programa você quiser abri-lo novamente então dessa vez abra o arquivo com o nome do seu projeto . esse programa, desse código, exibe uma janela com as opções que você pretende no seu programa de consultas, então precisa criar as funções para efetuar as consultas , precisamos de tempo pois isso é complicado .
-
@Buzina Lopes na hora de postar experimente usar o botão <> que está lá na barra de ferramentas da janela de postagem para que seu código seja preservado e não perca alguns dados como a variável i entre colchetes que se perde se você não usar tal botão . no seu código você está usando o vetor1 sem especificar qual a posição do vetor , que teria que ficar assim : scanf("%d",&vetor1[i]); e não use i para inteiro no scanf pois costuma dar erro use o d que fica melhor. e no loop de baixo também precisa colocar em qual posição do vetor assim : for(i=0;i<6;i++){ if(vetor1[i]==vetor1[i+1]){ vres[c]=vetor1[i]; c++; } } e no loop final você colocou o número seis no lugar da posição do vetor1, com isso ele vai imprimir apenas o número que está na posição seis, deveria ter colocado a variável c para imprimir todos os números que estão no vetor. e novamente não use o i no printf e sim o d, então essa parte ficaria assim : for( c = 0 ; c < 6 ; c++ ){ printf( "%d\n",vres[ c ] ); } mas mesmo assim creio que seu código não funcionará do jeito que você pretende, precisa melhorar essa lógica . para ver quais os números que se repetem você precisa usar dois loop começando de zero e indo até o final que é seis, para percorrer todo o vetor1, assim : int g=0,j; for(i=0;i<6;i++){ if(vetor1[i]==0){/* se existir o um zero no vetor1 */ g=1; } } for(i=0;i<5;i++){ for(j=0;j<6;j++){ if(i != j){ /* se nao for o mesmo numero */ if(vetor1[i] == vetor1[j]){ /* se o numero se repetiu */ vetor1[j] = 0 ; /* zera o numero que se repetiu no vetor */ /* deixando só os que nao repetiram */ } } } } printf("Aqui estão Os Numeros Que Nao Se Repetiram\n"); if(g=1){printf("0 - ");} for(i=0;i<6;i++){ if(vetor1[i] != 0 ){ printf("%d - ",vetor1[i]);/*imprime só os que não repetiram */ } } com isso apenas os números que não se repetiram ficarão no vetor1, os outros serão zerados, para que você saiba que eles se repetiram, no entanto se você quiser preservar todos os números que estão no vetor1, então você precisar criar outro vetor como por exemplo vetor2[ 6 ] e copiar os números para esse vetor2 antes de fazer a verificação, assim : for(i = 0;i < 6; i++){ vetor2[ i ] = vetor1[ i ]; } assim se você precisar dos números que foram entrados então eles estarão no vetor2 para você usa-los do jeito que quiser
-
VisualG Meu algoritmo está com erro só não sei onde
devair1010 respondeu ao tópico de davidzinh em Programação - iniciantes
@davidzinh sua lógica está boa mas precisa usar os comandos mais eficazmente , então modifiquei algumas linhas do seu código, veja como ficaria : Algoritmo "numeros entre dez e trinta e cinco" var num,a,b : inteiro inicio enquanto ( b = 0 ) faca b := 1 // b é o controle de número inválido escreva("Informe um número entre 10 e 35 : ") leia(num) se (num < 10) ou (num > 35) ENTÃO// se número fora de faixa b := 0 // b igual a zeros para repetir escreval("Número Inválido. Reinforme O número, Tecle Enter") leia(num) // espera pressionar enter fimse fimenquanto a := 10 // a igual começo dos números à ser impressos escreval // pula uma linha enquanto (a <= num) faca escreva(a," - ")// escreveo número na tela a := a+1 // a igual ao próximo número fimenquanto escreval Fimalgoritmo -
@Season modifiquei seu código por que não havia entendido como ele funcionava, mas agora que você disse, deu para entender, então seu código ficaria assim : #include <stdio.h> #include <locale.h> main(){ setlocale (LC_ALL, ""); float n1,n2,n3,m; printf("A nota da avaliação 1 é: \n"); scanf("%f", &n1); printf("A nota da avaliação 2 é: \n"); scanf("%f",&n2); printf("A nota da avaliação 3 é: \n"); scanf("%f",&n3); if (n1<n2 && n1<n3) n1=0; if (n2<n1 && n2<n3) n2=0; if (n3<n1 && n3<n2) n3=0; if (n1==n2 && n1==n3) n1=0; m=(n1+n2+n3)/2; printf("\nA média do aluno é: %.2f\n",m); if (m>=7) printf("Aluno está aprovado!\n\n"); else if(m<7) printf("Aluno está reprovado!\n\n"); getch(); return 0; }
-
@Yuri Gonçalves seu código está bom, precisar modificar alguns comandos e fazer a questão c e informar em qual posição do vetor está inserindo os valores , então modifiquei algumas linhas , veja como ficaria seu código : /*#include <iostream>*/ #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> #include <math.h> int main(int argc, char** argv){ int totalPessoas,i; printf("Quantas pessoas serao cadastradas? "); scanf("%d",&totalPessoas); char nome[totalPessoas][20]; /*// 20 é o numero de caracteres que tera o nome; (linha;coluna) */ char maisJovem[1][20]; /* // 1 porque sera mostrado apenas uma pessoa mais jovem */ char sexo[totalPessoas]; int idade[totalPessoas]; int linhaPessoaMaisJovem; int cont,jovem,aleatoria,a,g; float media,soma; for(i=0;i<totalPessoas;i++){ printf("Digite o nome "); scanf("%s",&nome[i]); printf("informe o sexo (m para Masculino | f para Feminino) "); fflush(stdin); scanf("%c",&sexo[i]); printf("Informe a idade "); scanf("%d",&idade[i]); } /*// Fazendo a Media da idade das pessoas*/ a=idade[0];g=0;soma=0; for(i=0;i<totalPessoas;i++){ if(a>idade[i]){a=idade[i];g=i;} soma=soma+idade[i]; } media=soma/totalPessoas; printf("\nA media das idades %.2f \n",media); getch(); strcpy(maisJovem[1],nome[linhaPessoaMaisJovem]); /* //maisJovem[1] sera o destino,sendo que ela gravara o nome que esta na primeira linha da variavel nome[linhaPessoaMaisJovem] */ printf ("\nO Nome do Pessoa mais jovem: %s, cuja idade é %d anos\n\n",nome[g],idade[g]);/*maisJovem[1]);*/ printf("Informe agora uma idade aleatoria "); scanf("%d",&aleatoria); printf("\no nome das pessoas com idade maior ou igual\n"); for(i=0;i<totalPessoas;i++){ if(idade[i]>=aleatoria){ printf("%s\n",nome[i]); } } return 0; }
-
@Rafael Simao já procurei sobre isso no google e não achei nada desse tipo só consegui ver sobre a função system que funciona assim : system("color fc"); ela muda a cor de fundo junto com a cor das letras, não consegui mudar apenas a cor das letras e nem mudar a cor de apenas uma letra, então não, você não vai conseguir fazer esse programa do jeito que você quer no c ou c++ no windows no modo console, mas se você usar a api Win32 tem jeito mas a api win32 é bem difícil ; já se você usa o linux tem um jeito, você precisa copiar a biblioteca colors.h e colocar na pasta de includes depois você usa o comando foreground(GREEN); para mudar a cor de uma letra em seguida mude para a outra cor que quiser. a biblioteca está nesse link aqui :https://github.com/kirotawa/Scripts/blob/master/C/colors/src/colors.h ,só copiar e colar na pasta de includes. ou para fazer isso mais facilmente use o c# no visual studio da microsoft .
-
@JNAlves seu código está bom mas está faltando alguns comandos, organizei ele e coloquei mais algumas variáveis, veja como ficaria seu código : #include <stdio.h> #include <conio.h> #include <stdlib.h> int main(){ int m=0,i,q=1,j; printf("Digite um valor: "); scanf("%d",&m); for(i=0;i<m;i++){ for (j=0;j<q;j++){ printf("*"); } /*if((m%2)==0){ printf("*\n",m); }*/ q++; printf("\n"); } getch(); return 0; }
-
@NataliaP. seu código não estava funcionando, então dei uma olhada nele e consegui acertar alguns erros, agora ele funciona, só precisa terminar as funções . veja seu código com algumas modificações : #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <time.h> #include <windows.h> #define LINHA 7 #define COLUNA 6 void Impressao(char Matriz[LINHA][COLUNA]); void Inicializa(char Matriz[LINHA][COLUNA]); int Comando(char Matriz[LINHA][COLUNA]); void Permuta(char Matriz[LINHA][COLUNA],int i,int j,char Direcao); int VerificaTrio(char Matriz[LINHA][COLUNA],int *Pontuacao); int AcharT(char Matriz[LINHA][COLUNA]); void Atualizar(char Matriz[LINHA][COLUNA],int i, int j); int Randomico(char Matriz[LINHA][COLUNA],int i); int tecla(); int t,d,p,q,w; int main(){ char Matriz[LINHA][COLUNA]; int Pontuacao=0; Inicializa(Matriz); Impressao(Matriz); Comando(Matriz); VerificaTrio(Matriz,&Pontuacao); AcharT(Matriz); while(1){ if(Pontuacao==1000 || q==0 || w==0){ printf("Fim de jogo"); getch(); break; } Impressao(Matriz); Comando(Matriz); VerificaTrio(Matriz,&Pontuacao); tecla(); } return 0; } void Impressao(char Matriz[LINHA][COLUNA]){ system("cls"); int i ,j; printf(" 1 2 3 4 5 6 "); printf("\n -------------------\n"); for(i=0;i<LINHA;i++){ printf(" %d|",i+1); for(j=0;j<COLUNA;j++){ printf(" %c", Matriz[i][j]); } printf(" |\n"); } printf(" -------------------\n"); } /*//INICIALIZAR MATRIZ RANDOMIZANDO 3 LETRAS V X O*/ void Inicializa(char Matriz[LINHA][COLUNA]){ srand(time(NULL)); int i,j,a; char b[3]; for(i=0;i<LINHA;i++){ for(j=0;j<COLUNA;j++){ /*//RANDOMIZAR LETRAS V X O*/ do{ a=rand()%89+1; if(a==79){;b[0]='O';}/*letra O*/ if(a==86){;b[0]='V';}/*letra V*/ if(a==88){;b[0]='X';}/*letra X*/ Matriz[i][j] = b[0]; }while(a != 79 && a != 86 && a != 88); printf("%c ",Matriz[i][j]); } printf("\n"); } Sleep(1000); } /*// PERGUNTAS AO USUARIO SOBRE POSICAO E QUAL TROCAR*/ int Comando(char Matriz[LINHA][COLUNA]){ int i,j, swi=0; char Direcao; printf("Escolha posicao: (x,y) ou 0 [ zero] para sair =>"); scanf("%d%d",&i,&j); q=i;w=j; printf("Escolha direcao: A(esquerdo),S(baixo),D(direto),W(cima) =>"); scanf(" %c",&Direcao); Permuta(Matriz, i, j, Direcao); if(AcharT(Matriz)==1) swi=1; return swi; } /*// FUNCAO PARA TROCAR AS posições PEDIDAS PELO USUARIO*/ void Permuta(char Matriz[LINHA][COLUNA],int i,int j,char Direcao){ char aux; if(Direcao=='A'){ aux=Matriz[i][j]; Matriz[i][j]=Matriz[i][j+1]; Matriz[i][j+1]=aux; }else if(Direcao=='D'){ aux=Matriz[i][j]; Matriz[i][j]=Matriz[i][j-1]; Matriz[i][j-1]=aux; }else if(Direcao=='W'){ aux=Matriz[i][j]; Matriz[i][j]=Matriz[i-1][j]; Matriz[i-1][j]=aux; }else{ (Direcao=='S'); aux=Matriz[i][j]; Matriz[i][j]=Matriz[i+1][j]; Matriz[i+1][j]=aux; } } /*//Verifica a matriz toda e retorna 1 se encontrou algum trio ou 0 se não achou nenhum*/ /*// E SUBSTITUIR O TRIO PELA LETRA T*/ int VerificaTrio(char Matriz[LINHA][COLUNA],int *Pontuacao){ int i, j, swi=0; for(i=0;i<LINHA-2;i++){ for(j=0;j<COLUNA;j++){ if((Matriz[i][j])==(Matriz[i+1][j])==(Matriz[i+2][j])){ Matriz[i][j]='T'; Matriz[i+1][j]='T'; Matriz[i+2][j]='T'; *Pontuacao= *Pontuacao+100; swi=1; } } } for(i=0;i<LINHA;i++){ for(j=0;j<COLUNA-2;j++){ if((Matriz[i][j])==(Matriz[i][j+1])==(Matriz[i][j+2])){ Matriz[i][j]='T'; Matriz[i][j+1]='T'; Matriz[i][j+2]='T'; *Pontuacao=*Pontuacao+100; swi=1; } } } return swi; } /*//FUNCAO PARA ACHAR LETRAS T*/ int AcharT(char Matriz[LINHA][COLUNA]){ int i,j; for(i=LINHA;i>=1;i--){ for(j=COLUNA;j>=1;j--){ if(Matriz[i][j]='T'){ Atualizar(Matriz,i,j); } } } } /*// FUNCAO PARA SUBIR O T DE POSICAO ATE PRIMEIRA LINHA E COLUNA*/ void Atualizar(char Matriz[LINHA][COLUNA],int i, int j){ char aux, aux2; for(i=LINHA;i<0;i--){ if(Matriz[i][j]=='T' && Matriz[i-1][j]=='T'){ aux=Matriz[i][j]; aux2=Matriz[i-1][j]; Matriz[i][j]=Matriz[i-2][j]; Matriz[i-1][j]=Matriz[i-3][j]; Matriz[i][j]=aux; Matriz[i-1][j]=aux2; } else aux=Matriz[i][j]; Matriz[i-1][j]=Matriz[i][j]; Matriz[i][j]=aux; if(i=1){ for(j=1;j=COLUNA;j++){ Matriz[i][j]='T'; Matriz[i][j]=aux; } Randomico(Matriz,i); } } } /*//FUNCAO PARA SUBSTITUIR O T E COLOCAR NOVAS LETRAS RANDOMIZADAS*/ int Randomico(char Matriz[LINHA][COLUNA],int i){ for (i=1;i<0;i--) { /* //RANDOMIZAR LETRAS V X O NA SUBSTITUICAO ONDE FICARAM TTT DEPOIS DE TRANSFERIR TODOS T PARA CIMA.*/ } }
-
@NataliaP. para randomizar você precisar usar o comando srand e rand assim : //INICIALIZAR MATRIZ RANDOMIZANDO 3 LETRAS V X O void Inicializa(char Matriz[LINHA][COLUNA]){ srand(time(NULL)); int i,j,a; char b[3]; for(i=0;i<LINHA;i++){ for(j=0;j<COLUNA;j++){ //RANDOMIZAR LETRAS V X O do{ a=rand()%89+1; if(a==79){b[0]='O';}/*letra O*/ if(a==86){b[0]='V';}/*letra V*/ if(a==88){b[0]='X';}/*letra X*/ Matriz[i][j] = b[0]; }while(a != 79 && a != 86 && a != 88); } } } esses são os códigos das letra V X O maiúsculas, para as letras minúsculas os códigos são 120 118 111 respectivamente, precisa do srand lá em cima antes do rand .
-
Estouro da pilha (Erro 28) - VBA
devair1010 respondeu ao tópico de Higor Pimentel em Microsoft Office e similares
@Higor Pimentel parece interessante esse jogo snake, se você puder posta o código para podermos ver como está e em que podemos ajudar . e como você sabe que houve um estouro da pilha ? -
@MassakiMsk opa é mesmo não notei esse erro, e também tem mais um que é o if (n1<n2 and n1<n3) que está usando a expressão and ao invéz de && então no caso ficaria assim : if (n1<n2 && n1<n3)
-
@Season são três erros, o primeiro é o setlocale, se você quer que ele seja configurado como linguagem português então você precisa remover essa palavra " portuguese " do comando, então ficaria assim : setlocale (LC_ALL, ""); o segundo erro é na hora de comparar no comando if, se você vai comparar se é igual então você precisa usar dois sinais de igual assim : if (n1 == n2 && n2 == n3) e o terceiro erro é que não pode dividir nenhum número por zero, e nem zero por nenhum número , e ali na hora que você vai pegar a média você tem n1=0 + n2 =0 + n3 =0 resultado zero dividido por dois, aí dá erro e fecha o programa . veja como ficaria seu código com algumas modificações :. #include <stdio.h> #include <conio.h> #include <locale.h> int main(){ setlocale (LC_ALL, ""); float n1,n2,n3,m; printf("A Nota da avaliação 1 é: \n"); scanf("%f",& n1); printf("A Nota da avaliação 2 é: \n"); scanf("%f",& n2); printf("A Nota da avaliação 3 é: \n"); scanf("%f",& n3); m=(n1+n2+n3)/3; printf("\nA Média Do Aluno é: %.2f\n",m); if (m>=7) printf("Aluno Está Aprovado!\n\n"); else if(m<7) printf("Aluno Está Reprovado!\n\n"); getch(); return 0; }
-
Como imprimir um intervalo de um vetor de caracteres em C?
devair1010 respondeu ao tópico de Ricardo Kaê em C/C#/C++
@Ricardo Kaê olha aqui um jeito fácil de fazer esse triangulo : #include <stdio.h> #include <conio.h> #include <windows.h> void gotoxy(int x,int y){ COORD c; c.X=x; c.Y=y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c); } int i,j,c,l,k=4,w; int main(){ printf("Digite A Quantidade De Linhas "); scanf("%d",&w); gotoxy(36,2);printf("Triangulo"); c=40; l=5; k=1; for(i=0;i<w;i++){ gotoxy(c,l); for(j=0;j<k;j++){ printf("* "); } /*c--;*/ l++; k++; } printf("\n\n\n"); getch(); return 0; } já para você imprimir um intervalo de um vetor de caracteres você usa um laço de repetição assim : #include <stdio.h> #include <conio.h> int a,b,i,w,g; char vetor[10]={'a','b','c','d','e','f','g','h','i','j'}; int main(){ do{ w=1; do{ g=1; printf("Digite O Comeco Do Trecho De 0 Ate 8 "); scanf("%d",&a); if(a<0||a>8){g=2;printf("Valor Fora De Faixa, Digite Outro Tecle \n");getch();} g--; }while(g!=0); do{ g=1; printf("Digite O Final Do Trecho De 1 Ate 9 "); scanf("%d",&b); if(b<1||b>9){g=2;printf("Valor Fora De Faixa, Digite Outro Tecle \n");getch();} g--; }while(g!=0); if(a>b){w=2;printf("Valor De A Maior Que B, Digite Outros Tecle \n");getch();} w--; }while(w!=0); for(i=a;i<=b;i++){ printf("%c ",vetor[i]); } getch(); return 0; } -
VisualG Construção algoritmo de numeração
devair1010 respondeu ao tópico de Vengefull em Programação - iniciantes
@Helen Fernanda de Souza no começo é um pouco complicado, mas com a prática fica mais fácil, o que você precisa é ver o que cada comando faz e ver o que melhor se aplica no programa que você quer fazer. por exemplo no visualg tem esses comando aqui : para / fimpara e repita / ate e enquanto / fimenquanto que são comandos de repetição se / senao e escolha / caso e e e ou e nao que serve para fazer comparações Leia que serve para pegar algum dado digitado no teclado escreval que serve para escrever alguma coisa na tela randi que gera números aleatórios mod que pega o resto da divisão de um número por outro caracpnum que converte caracteres para número inteiros numpcarac que converte números inteiro para caractere você pode ver sobre os comandos do visualg nesse site : http://www.netsoft.inf.br/aulas/4_ECI_Introducao_a_Informatica/Visualg2_manual.pdf -
VisualG programa que solicite o nome e o dia, mês e ano de nascimento de um usuário.
devair1010 respondeu ao tópico de davidzinh em Programação - iniciantes
@davidzinh seu código ficou bom, ficou faltando alguns senao mas funcionou bem assim mesmo . -
@Rennan18 seu código ficou bom, mas se você quer colocar mais funções então veja essa estrutura aqui como exemplo, nela tem um menu com opções para o tipo de conversão que quiser, nesse caso teria que criar as funções que estão no comando switch em que cada case vai para uma função, por exemplo se pressionar o botão 1 ele vai para a função converte_km_mt() , então você criaria essas seis funções que estão relacionadas aqui no começo do programa e colocaria elas lá em baixo no final do programa : #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <windows.h> int op,dx; float k,m,c; char d[2]; int converte_km_mt(); int converte_km_cm(); int converte_cm_km(); int converte_mt_km(); int converte_mt_cm(); int converte_cm_mt(); void tecla(); int main(){ do{ op=0; system("cls"); printf("===== Converssor De Medidas====\n"); printf("===============================\n"); printf(" 1 - converter De KM Para MT\n"); printf(" 2 - converter De KM Para CM\n"); printf(" 3 - converter De CM Para KM\n"); printf(" 4 - converter De MT Para KM\n"); printf(" 5 - converter De MT Para CM\n"); printf(" 6 - converter De CM Para MT\n"); printf(" 7 - Para Sair Do Programa\n"); do{ fflush(stdin); if(kbhit()){op=getch()-48;} }while( op < 1 || op > 7 ); switch(op){ case 1 : converte_km_mt(); break; case 2 : converte_km_cm(); break; case 3 : converte_cm_km(); break; case 4 : converte_mt_km(); break; case 5 : converte_mt_cm(); break; case 6 : converte_cm_mt(); break; } }while(op!=7); return 0; } void tecla(){ do{ d[0]='p';dx=0; if(kbhit()){dx=getch();} if(dx==110||dx==78){d[0]='n';} else{if(dx==115||dx==83){d[0]='s';}} }while(d[0]!='n'&&d[0]!='s'); } int converte_km_mt(){ do{ printf("Vamos Converter De KM Para MT\n"); printf("Digite Quantos KM \n"); scanf("%f",&k); printf("Valor Convertido\n"); printf("%.2f Quilometros = %.2f Metros\n",k,k*1000); printf("Quer Converter Outro ? S/N"); tecla(); }while(d[0]!='n'); return 0; } int converte_km_cm(){ printf("Para Essa Funcao Funcionar Você Precisa Ajeitar O Codigo Dessa Funcao La Embaixo"); getch(); return 0; } int converte_cm_km(){ printf("Para Essa Funcao Funcionar Você Precisa Ajeitar O Codigo Dessa Funcao La Embaixo"); getch(); return 0; } int converte_mt_km(){ printf("Para Essa Funcao Funcionar Você Precisa Ajeitar O Codigo Dessa Funcao La Embaixo"); getch(); return 0; } int converte_mt_cm(){ printf("Para Essa Funcao Funcionar Você Precisa Ajeitar O Codigo Dessa Funcao La Embaixo"); getch(); return 0; } int converte_cm_mt(){ printf("Para Essa Funcao Funcionar Você Precisa Ajeitar O Codigo Dessa Funcao La Embaixo"); getch(); return 0; } como você disse que não quer apenas copiar então essa estrutura seria apenas um exemplo de como fazer um programa mais bem elaborado, você só precisa entender como ele funciona e então fazer do seu jeito ou se quiser pode usar esse mesmo .
-
@Pedro Augusto Alcantara esse seu primeiro código não está funcionando certo não, nele você precisa modificar a variável do segundo loop . aqui está o segundo código : #include <stdio.h> #include <conio.h> int main(){ int a,b,i,j; printf ("Digite O Numero De Linhas "); scanf ("%i", &a); printf ("Digite O Numero De Colunas "); scanf ("%i", &b); for (i=0; i<a; i++){ for (j=0; j<b; j++){ if(i==0||i==a-1) printf("*"); else if(j==0||j==b-1) printf("*"); else printf(" "); } printf("\n"); } getch(); return 0; }
-
Numero de vezes que cada valor aparece no Vetor Linguagem C
devair1010 respondeu ao tópico de Yuri Gonçalves em C/C#/C++
@Yuri Gonçalves sua lógica está certa mas você esqueceu de colocar em qual posição do vetor você está colocando o número lá no scanf e também na hora de fazer as comparações ficou faltando informar em qual posição do vetor. talvez você tenha colocado essas posições no seu código mas como você não usou o botão <> que está lá na barra de ferramentas da janela de postar, então seu código ficou sem essas informações . veja como ficaria seu código com algumas modificações : #include <stdio.h> #include <conio.h> int i,j,g,a; int main(int argc, char** argv) { int vetor[9]; int existe=0; g=0; for(i=0;i<9;i++){ printf("Digite o %d numero ",i+1); scanf("%d",&vetor[i]); if(vetor[i]==0){g++;} } printf("\n\n"); for(i=0;i<9;i++){ existe=1; a=vetor[i]; for(j=0;j<9;j++){ if(a==vetor[j]&&i!=j&&a!=0){ existe++; vetor[j]=0; } } if(a!=0){printf(" o valor --> %d - saiu --> %d - vezes\n",vetor[i],existe);} } if(g > 0){printf(" o valor --> 0 - saiu --> %d - vezes\n",g);} getch(); return 0; } -
@Luís Henrique Boscato nessa linha aqui você definiu que quer usar o idioma " portuguese " setlocale(LC_ALL, "Portuguese"); mas você precisa deixar o sistema definir isso automaticamente, então para isso coloque o comando sem a palavra portuguese, então ficaria assim : setlocale(LC_ALL, ""); printf("A localidade corrente agora é %s \n",setlocale(LC_ALL,""));
-
VisualG Construção algoritmo de numeração
devair1010 respondeu ao tópico de Vengefull em Programação - iniciantes
@Helen Fernanda de Souza ainda não tem a função randi não, por que ainda não estamos gerando os trinta números então a função randi será usada para gerar os números aleatórios. e para gerar esses números você pode usar um para indo de 1 ate 30 e então dentro do loop você pode colocar um código mais ou menos assim : g := randi(60)+1 essa linha aqui é que gera um número entre 1 e 60 e coloca o número na variável g como está escrito ali no comando, em seguida você precisa verificar se esse número já está entre os números gerados, que dessa primeira vez pode ser guardados no vetor_3 aí do seu código, então com outro loop você percorre as trinta posições do vetor_3 verificando se já tem esse número e se já tiver então repete tudo para pegar outro número e testar de novo até que não tenha o número no vetor_3 aí coloca o número no vetor_3, e no final você terá os trinta números gerados aleatórios, depois fazer outro loop igual a esse e colocar os números gerados no vetor_4 e depois fazer outro loop igual a esse e colocar os números gerados no vetor_5, assim você terá trinta números em cada vetor. para ver esse números você faz um loop indo de 1 ate 30 para percorrer todas as posições do vetor e imprime os números que estão no vetor assim : para a e 1 ate 30 faca escreva(vetor_3[a]," - ") fimpara e para imprimir os números dos outros vetor, faça outros loop como esse e mude o nome do vetor_3 para o nome do vetor que você quer imprimir . faça o código dessa parte do programa e poste aqui para podermos ajudar . -
VisualG programa que solicite o nome e o dia, mês e ano de nascimento de um usuário.
devair1010 respondeu ao tópico de davidzinh em Programação - iniciantes
@davidzinh coloque a variável ano e ano2 como inteiro e crie mais uma variável para o mes pode ser mes2 do tipo caractere para receber o mes por extenso, e depois de pegar o dia precisa verificar se está dentro da faixa certa que é de 1 até 31 e se não estiver nessa faixa repetir esse trecho até que esteja certo, e quando pegar o mês verificar também se está na faixa de 1 até 12, se não estiver repetir esse trecho até que esteja dentro da faixa, em seguida quando pegar o ano e o ano2, que é o ano atual, verificar se ano2 é maior que ano de nascimento, e se não for então repetir esse trecho até que esteja certo, depois você faz as verificações do mês, para ver que mês é, e coloca em mes2 o por extenso desse mês, por exemplo : se mes = 1 ENTÃO mes2 := " Janeiro" senao se mes = 2 ENTÃO mes2 := "Fevereiro" . . continuação do codigo ate o mes de dezembro . fimse fimse assim no final depois de comparar até o 12 você terá o mês por extenso, então imprimir o resultado assim : escreval("Nome: ",nome," Tem",ano2-ano," Anos de idade" ) escreval (nome," Nasceu em: ",dia," De ",mes2," De ",ano) -
@rot4ndano esse while na função buscab está confuso, modifiquei algumas linhas , veja como ficaria seu código : #include <cstdio> #define MAXN 100100 int n,a,m, vetor[MAXN]; int buscab(int x){ // declaro a função buscab, que recebe um int como parâmetro // declaro os inteiros ini, meio e fim for(a=0;a<n;a++){ if(vetor[a]==x) return vetor[a]; // se achei o número, retorno o valor de meio } return -1; // se o for terminar sem a função retornar, o número não está no vetor } int main(){ printf("Digite um numero para qtd numeros"); scanf("%d", &n); // leio os valores de n e m printf("digite um numero para qtd de busca"); scanf("%d",&m); for(int i=1; i<=n; i++){ printf("digite o %d numero ",i); scanf("%d", &vetor[i]); // leio os valores do vetor } for(int i=1; i<=m; i++){ // para cada pergunta // leio o número a ser procurado e salvo na int num int num; printf("digite um numero para buscar "); scanf("%d", &num); printf("esse é o numero --> %d\n", buscab(num)); // e imprimo o valor de buscab(num) } return 0; }
-
VisualG programa que solicite o nome e o dia, mês e ano de nascimento de um usuário.
devair1010 respondeu ao tópico de davidzinh em Programação - iniciantes
@davidzinh está dando erro porque você está tentando subtrair string de string e isso não pode . e para fazer esse programa você precisará de umas cem linhas pois você precisa usar muitos se para fazer as comparações do mês com o respectivos por extenso . -
@Rennan18 O Dev C++ é dubom, eu também uso ele de vez enquando, mas passei a usar o codeblocks pois ele é uma ide bem melhor pois ele tem mais recursos por exemplo quando no fim da linha digitamos enter ele já vai para a posição certa da linha de baixo, não precisa ficar digitando espaço para chegar na posição certa, ficando assim mais fácil indentar o código, entre outras facilidades, e ele é gratis, só pegar na internet .
-
VisualG Construção algoritmo de numeração
devair1010 respondeu ao tópico de Vengefull em Programação - iniciantes
@Helen Fernanda de Souza bom começo, porém é melhor colocar as variáveis de vetor com nomes ao invés de números, assim modifiquei o vetor_1 para vetor_normal com 60 posições : um vetor é como se fosse um gaveteiro onde cada gaveta pode guardar um número ou letra, " assim seria esse vetor ", nesse caso será um gaveteiro com sessenta gavetas, que você pode colocar qualquer número em cada uma das gaveta, então um jeito fácil de colocar números nesse vetor é usando um comando de repetição que pode ser um repita ou um enquanto ou um para, e nesse caso creio que seja melhor usar um para, e esse para indo de 1 até 60 para percorrer todas as posições do vetor, e como você não disse quais números você quer usar, então o mais fácil é colocar os números de 1 até 60, então na posição 1 do vetor será colocado o valor 1 na posição 2 será colocado o valor 2 e assim indo até a posição 60 que terá o valor 60, para colocar outros números precisaria modificar o código . aqui seu código com algumas modificações : Algoritmo "Algoritmo exercicio de numeracao" Var excluir,fixar,a,b,c,d : inteiro vetor_normal : vetor[1..60] de inteiro vetor_1 : vetor[1..60] de inteiro vetor_2 : vetor[1..10] de inteiro vetor_3 : vetor[1..30] de inteiro vetor_4 : vetor[1..30] de inteiro vetor_5 : vetor[1..30] de inteiro vetor_6 : vetor[1..10] de inteiro vetor_7 : vetor[1..10] de inteiro vetor_8 : vetor[1..10] de inteiro vetor_9 : vetor[1..10] de inteiro vetor_10 : vetor[1..10] de inteiro Inicio //primeiro precisa colocar os numeros no vetor para a de 1 ate 60 faca//repete 60 vezes vetor_normal[a] := a//coloca o numero cujo valor está guardado na variavel // a no vetor na posição cujo valor esta guardado na //variavel a. fimpara//verifica se a é menor ou igual a 60 se for repete tudo que está //dentro do loop //agora podemos deletar os dez numeros escreval("Vamos Deletar 10 Números de 1 a 60 ") para excluir de 1 ate 10 faca// não basta escrever a palavra excluir para //que haja a exclusão é preciso zerar a posição // no vetor repita// repete se o número já foi excluído b := 1//b recebe o valor 1 para controlar o repita escreva("Digite Um Número De [ 1 A 60 ] Para Excluir ") leia(c)// prga um número se (c<1) ou (c>60)ENTÃO//se numero for < 1 ou se for maior que 60 escreval("Só Pode Número De 1 Até 60, Escolha Outro Tecle Enter ") b := 2//b recebe o valor 2 para repetir leia(c)//espera pressionar enter senao se vetor_normal[c] = 0 ENTÃO//verifica se na posição cujo valor está guardado // na variavel c é zero se for escreval("Esse Número Já Foi Deletado, Escolha Outro Tecle Enter")//imprime //mensagem b := 2//b recebe 2 pois o número já foi deletado e para repetir leia(c)//espera pressionar enter senao vetor_normal[ c ] := 0//aqui coloca zero para informar que //o numero foi deletado fimse fimse b := b-1//b recebe o valor dele menos 1 ate b = 0//se b diferente de zero repete tudo que está entre o repita e // o ate b = 0 fimpara escreva("Tecle Enter Para Continuar") leia(c) limpatela escreval("Apenas Para Conferir Os Deletados") para a de 1 ate 60 faca//percorre todas as 60 posições do vetor_normal se vetor_normal[a] = 0 ENTÃO//se na posição do vetor_normal cujo valor // está na variavel a for zero é porque esse // número foi deletado e nesse caso o número //é igual ao valor da posição do vetor escreva(a," - ")//imprime o número fimse fimpara escreval escreval("Aqui Os 50 Números Que Sobraram") d := 1// inicializa d com valor da primeira posição do vetor_normal para a de 1 ate 6 faca//serão 6 linhas para c de 1 ate 10 faca//e dez colunas se vetor_normal[d] <> 0 ENTÃO//se o número que está no vetor_normal //na posição cujo valor está guardado na //variavel d for diferente de zero escreva(vetor_normal[d]," - ")//imprime o número senao escreva(" - ")//senão imprime um espaço vazio fimse d := d+1//d recebe o valor dele mais 1 para apontar para a proxima //posição do vetor fimpara//c recebe o valor de C mais 1 e se for menor ou igual a 10 repete //tudo que está entre o PARA C até o primeiro FIMPARA escreval fimpara//A recebe o valor de A mais 1 e se for menor ou igual a 6 repete //tudo que está entre o PARA A até o primeiro FIMPARA Fimalgoritmo com isso você vai colocar 60 números no vetor e escolher 10 números para deleta-los, esses dois loop no final serve apenas para você ver quais foram os números que você deletou e quais os números que restaram no vetor .
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