Ir ao conteúdo
  • Cadastre-se

1freakday

Membro Pleno
  • Posts

    667
  • Cadastrado em

  • Última visita

Tudo que 1freakday postou

  1. Eu não entendi se era pra fazer igual o video, ou igual a sua citação, pois no video não é usado switch, enfim, eu fiz um, de acordo com a sua ultima lógica: Segue: //Usand if...while...switch #include <stdio.h> int main (){ int op = 0, idade = 0, idade_21=0, idade_50=0; while (op!=99){ //Menu printf ("1 - Idades\n"); printf ("99 - Terminar\n"); printf ("Insira uma opcao: "); scanf ("%d", &op); //Entrada de dados - se escolheu 1 if(op == 1){ printf("\nInsira uma idade: "); scanf ("%d", &idade); } //Verificar idade switch (op){ //se Maior que 21 ou Maior que 50 - incrementar case 1: if(idade > 21 && idade <= 50) idade_21++;//Mesma coisa que idade_21 = idade_21+1; ou idade_21+=1; if(idade > 50) idade_50++; break; //Sair case 99: printf ("\nSair\n"); break; //Idade inferior a 21 default: printf("\nInvalido\n"); } //Mostrar total a cada entrada de dados printf ("\nIdade maior que 21: %d\n", idade_21); printf ("Idade maior que 50: %d\n", idade_50); printf ("-------------------------\n\n"); } }
  2. Bom dia, desculpe a maneira que joguei o código, acredito que interpretei que só queria o código corrigido, e não, coteudo sobre 'laços'. Portanto, segue um documento bem explicado sobre as estruturas de repetição, envolvendo varios exemplos: http://olimpiada.ic.unicamp.br/extras/cursoC/Cap06-RepeticaoControle-texto.pdf é um documento de faculdade, então vale a pena dar uma olhada. Dependendo da necessidade, os loops sempre poderão ser usados dentro de uma área de código, a partir de { <sentença> }, independente se foi usado anteriormente if/switch(case)/while/do...while/ etc. Em relação ao 2º código, vou dar apenas um exemplo, mas você pode melhora-lo, de acordo com seu aprendizado, segue: //Usand if...while...switch #include <stdio.h> main (){ setvbuf (stdout,NULL,_IONBF,0); int op=0, idade = 0, idade_21=0, idade_50=0; //Seguindo a questão, é para pedir apenas idade. while (op!=99){ //Entrada de dados printf ("\n99: Terminar\n"); printf ("Insira uma idade:"); scanf ("%d", &idade); //Verifica a idade if (idade>21) { op = 21; } if (idade>50) { op = 50; } if (idade==99){ op = 99; } //Incrementa de acordo com a idade //P.S: Se maior que 21 e 50, vale 50 switch (op){ //Maior que 21 - incrementar case 21: idade_21++; break; //Maior que 50 - incrementar case 50: idade_50++; break; //Sair case 99: printf ("Sair\n"); break; //Idade inferior a 21 default: printf("Invalido\n"); } } //Mostrar total na saida do programa printf ("Idade maior que 21: %d\n", idade_21); printf ("Idade maior que 50: %d\n", idade_50); } P.S: Não usei else if, pois um numero pode ser maior que 21 e 50, e preciso filtrar os dois.
  3. Aconselho sempre refazer o código, para atingir uma maior qualidade e organização do código, dando uma maior performance e descartando as futilidades que venham a confundir posteriormente, enfim, seu código ta apenas com alguns errinhos, mas uma ajustada e fica show. Segue: #include <stdio.h> int main (){ setvbuf (stdout,NULL,_IONBF,0); int num1 = 0, num2 = 0, op = 1; //Adicionei op, declarei as variaveis while (op!=0){ //Introdução printf ("Insira uma opção\n"); scanf ("%d", &op); //Esse menu vai mostrar, contanto que op não seja 0 if(op!=0){ printf ("Insira o primeiro número\n"); scanf ("%f", &num1);//Não sei qual sua necessidade de usar %f com inteiro, deixei assim printf ("Insira o segundo número\n"); scanf ("%f", &num2); //Não é necessário identificar o op 3 vezes //só com o if, ja podemos criar um novo conteudo, //o while vai decidir se sai ou não //A NÃO SER QUE O OP MUDE DEPOIS DA INTRODUÇÃO switch (op){ case 1 : //instruções 1 break; case 2 : //instruções 2 break; default: printf("\nInválido"); break; } } } printf("Saindo!"); return 0; }
  4. Complementando, como o numero precisa ser maior que 10. (N > 10), então: if(num>=10){ qtd++; soma=soma+num; media= soma /qtd; } Você só esqueceu de usar {}
  5. Simplificando: //Receber e determinar numero de termos //Saida: c*2.c*2.c*2 // max = 3 #include <stdio.h> int main() { //Variaveis int max = 0, c = 2; //Entrada - quantidade maxima de termos mostrados printf("Determine numero maximo de termos:"); scanf("%d",&max); //Contagem de termos, mostra termo for(int ciclo = 1; ciclo <= max; ciclo++){ printf("%d ",c); c=c*2; } return 0; } Espero poder ajudar, ja que você mostrou seu código.
  6. 1freakday

    Visualg

    Desculpe, é que no caso essa area é apenas para C/C++/C#, só que como não sou moderador, não cabe a mim lhe informar isso. Mas tem uma área destinada a VisualG
  7. Só uma pergunta, você usou toda essa quantidade de linhas em um unico arquivo? Geralmente é usado varios arquivos para criar um projeto, não apenas um arquivo, entretanto, você pode procurar na pasta tais arquivos, a não ser que o programa corrompeu eles, tente buscar o local onde é salvado.
  8. 1freakday

    erro no delay_us

    Boa noite, esse erro é devido a uma mal interpretação do código, você não declarou a função delay_us(). Mesmo que o SDL contenha essa função, ela não foi encontrada nem declarada. Abraço EDIT A resolução seria procurar essa função e declarar antes de usa-la. // --- Errado ---- int main() { delay_us(33); } void delay_us(int us){ ... } //######################### // --- Certo ---- void delay_us(int us){ ... } int main() { delay_us(33); } //######################### // --- Certo ---- void delay_us(int us); int main() { delay_us(33); } void delay_us(int us){ ... } //#########################
  9. //////////////////////////////////////////////////////////////////////////////// // // // Arquivo: main.cpp // // Data: 27-12-2016 19:18 // // // //////////////////////////////////////////////////////////////////////////////// /** * Arquivos para incusão. */ #include "main.h" /** * Namespaces utilizados. */ using namespace std; /** * Função principal da Win32. */ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // Variáveis da função. WNDCLASSEX wnd; // Classe da janela. HWND hWnd; // Controlador da janela. MSG msg; // Estrtura de mensagens. // Iniciando a classe da janela. wnd.lpszClassName = WND_CLASS_NAME; wnd.lpszMenuName = WND_WINDOW_NAME; wnd.style = CS_HREDRAW | CS_VREDRAW; wnd.cbSize = sizeof(WNDCLASSEX); wnd.cbClsExtra = 0; wnd.cbWndExtra = 0; wnd.hInstance = hInstance; wnd.lpfnWndProc = WndProc; wnd.hIcon = LoadIcon(NULL, IDI_APPLICATION); wnd.hIconSm = LoadIcon(NULL, IDI_APPLICATION); wnd.hCursor = LoadCursor(NULL, IDC_ARROW); wnd.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); // Registrando a Classe. if(!RegisterClassEx(&wnd)) { MessageBox(NULL, "Error ao Registrar Classe da janela Principal", "Fatal Error", MB_ICONERROR | MB_OK); return 1; } // Criando a Janela. hWnd = CreateWindowEx(0, WND_CLASS_NAME, WND_WINDOW_NAME, WS_EX_OVERLAPPEDWINDOW, (GetSystemMetrics(SM_CXSCREEN) - WND_LARG) / 2, (GetSystemMetrics(SM_CYSCREEN) - WND_ALTU) / 2, WND_LARG, WND_ALTU, NULL, NULL, hInstance, NULL); // Verificando a criação da janela. if(!hWnd) { MessageBox(NULL, "Error ao criar a janela.", "Fatal Error", MB_ICONERROR | MB_OK); return 1; } // Mostrando a janela. ShowWindow(hWnd, nCmdShow); // Atualizando a janela. UpdateWindow(hWnd); // Loop de Processamento de janela. while(GetMessage(&msg, NULL, 0, 0) > 0) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } //============================================================================// /** * Função WndProc(); Para processamento de mensagens; */ LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { // Variáveis Locais. PAINTSTRUCT ps; HDC hDc; // Loop de processamento de mensagens. switch(uMsg) { /** * Caso a Janela seja criada. */ case WM_CREATE: MessageBox(NULL, "Olá Mundo!!!", "", MB_ICONINFORMATION | MB_OK); return 0; break; /** * Caso a janela precise ser re-desenhada. */ case WM_PAINT: BeginPaint(hWnd, &ps); EndPaint(hWnd, &ps); return 0; break; /** * Caso cliquem em fechar. */ case WM_CLOSE: DestroyWindow(hWnd); return 0; break; /** * Acabando de vez com todo o pograma. */ case WM_DESTROY: PostQuitMessage(WM_QUIT); return 0; break; default: return (DefWindowProc(hWnd, uMsg, wParam, lParam)); break; } } Agradeça a @olliver.soul
  10. Bem simples, porém não é muito preciso, eu usaria o Sleep(int ms), dentro de um loop e com uma class que armazena os valores do tempo, e possui as funções de incrementar, etc.... Para personalizar, seria bom um thread contando o tempo no Background, enquanto o usuário possa alterar o relogio, e voltar a ver o relogio sem erros após a alteração.
  11. Você poderia utilizar os argumentos que o programa recebe ao iniciar, sendo que é bom encriptar a senha que seria armazenada no código-fonte do programa, que sera usada para comparar com a senha do argumento, seguindo o seu exemplo é claro, mas no CSharp eu não sei, se fosse o C eu poderia ajudar.
  12. @jdmarnez Por favor leia as regras, para que possamos te ajudar. P.S: Não sou moderador.
  13. C é ótimo para utilizar em algorítimos e testa-los rapidamente, porém se você quer um exemplo de uso para um iniciante eu citaria a possibilidade de criar sockets (comunicação de rede) ou programar microcontroladores, sem tanta limitação, mas como já foi dito acima, o C evoluiu para C++ e Java, então seu poder é visível pela possibilidade de criar novas linguagens, sistemas operacionais, e algorítimos complexos, mas tudo isso vai depender do programador e não da linguagem.
  14. Tentei aperfeiçoar e tornar mais clean code, o ultimo que enviei, apenas contava quantos tinha, porém eu arrumei, so que tem um problema, se você quer contar quantos elementos possuem consecutivamente, você precisa determinar a lógica, pois pode existir varios conjuntos do mesmo numero, só que separados, sendo que precisará determinar se esses conjuntos separados serão contados. Exemplo em : 30 30 40 40 50 22 40 40 40; Temos 2 conjuntos de elementos 40, 2 elementos com 40 depois do 30 3 elementos com 40, depois do 22 etc... : #include <stdio.h> #include <winsock2.h>//system //Retorna contagem de elementos //@n = elemento a ser encontrado //@array = array com os valores //@maxArray = tamanho maximo do array int contagem(int n, int *array, int maxArray){ int count = 0; for(int i = 0; i < maxArray; i++){ if(array[i] == n){ count++; }else if(count == 1){ count = 0; }else break; } return count; } int main(){ //ENTRADA - Pode preencher com cin int array[7] = {30,30,20,30,40,40,30}; //SAIDA printf("20: %d elementos consecutivos.\n",contagem(20, array, 7)); printf("30: %d elementos consecutivos.\n",contagem(30, array, 7)); printf("40: %d elementos consecutivos.\n",contagem(40, array, 7)); system("pause"); }
  15. Se você incluir a pasta da musica, não iria resolver tal problema, exemplo, "Musicas/musica01.mp3", etc... Uma ideia é que você poderia criar um leitor, ou interpretador de texto, que no caso, abre um include que adiciona as musicas automaticamente, como um leitor XML. Já criei vários desses interpretadores, também já vi em vários jogos, e ajudam muito, mas pra XML ja existe um interpretador padrão. Exemplo de interpretador: P.S: Pra não confundir, pense como um arquivo de configuração. No seu jogo, você tem um #define que leva ao include das musicas, como: #define INCLUDE_MUSICAS "Musicas/include.txt" Nesse include.txt, há todos caminhos das musicas, e ainda podendo ser adicionado um id, ai no caso se quiser personalizar a busca da musica no futuro, sabendo qual musica você quer tocar. Dentro do include.txt: //Lembrando que o .exe abre a partir de sua localização, e não de fundo/tiro, por isso coloquei Musicas //Mesmo que o include esteja em Musicas. //id,"caminho" MusicaInicialFundo,"Musicas/fundo/001.mp3" MusicaTiro,"Musicas/tiro/001.mp3" Ai esses valores, como id, e caminho, poderiam ser armazenados em uma struct, linha p/ linha, a fim de manter organização, sendo o banco de dados das musicas. Pode parecer complicado, mas em poucos dias já terminaria, enfim, existe muitos modos de resolver. Qualquer duvida, pode falar
  16. Exatamente como @Mauro Britivaldo falou!
  17. Não tive intenção de provocar nenhum tipo de reação de repúdio da minha parte, apenas compartilhei conhecimentos, porém como estamos em uma seção do fórum para "não iniciantes"(existe uma seção para iniciantes), coloquei o pensamento em mente de que você já sábio algo, até por que suas perguntas foram muito diretas, dando em mente que queria respostas diretas, mesmo sendo 'iniciante'. Eu também achei que já estava trabalhando em algum código, básico ou não. Sinto que até esse comentário possa lhe parecer rude, mas não leve isso em consideração, apenas estou sendo lógico. Se quiser exemplos, eu posso lhe oferecer, como muitos outros, mas seja mais especifico quanto a isso quando postar um novo tópico. Agradeço a paciência.
  18. Você precisa incluir essa dll e a .lib no projeto, onde a dll contem o projeto e a lib o escopo dos arquivos.
  19. Tenta usar o seguinte metodo: struct rgCadFun *cadastrar(struct rgCadFun *pCadastro); //antes de } use return pCadastro; void Imprimir_1(struct rgCadFun *Cadastro); // na chamada use o 'endereçador' &
  20. Todas essas perguntas são facilmente respondidas quando você sabe o minimo de c, segue: qual comando eu utilizo para capturar uma resposta do usuário e utiliza-la para localizar o arquivo que quero copiar? r: com um array de char(string) e scanf(pesquise a documentação) qual comando utilizo para copiar esse arquivo que localizei? r: como o string deve armazenar o local onde o arquivo está, basta usar FILE e fopen. qual comando utilizo para colar esse arquivo copiado? r:usando system(), pois não há uma função padrão qual biblioteca tem os recursos para localizar, copiar e colar o arquivo? r:nenhuma padrão, apenas usando system, ou uma exterior.
  21. Corrigindo: void funbusca () { FILE *arq = NULL; char linha[100]; int i = 0; // Abre um arquivo TEXTO para LEITURA arq = fopen("cadastro.txt", "rt"); if (!arq) { printf("Problemas na abertura do arquivo\n"); return; } while (fgets(linha, 100, arq)) { printf("%d: %s",i++,linha); } fclose(arq); } Muitas coisas que eu mudei, foi apenas para tornar o código mais limpo, o que percebi foi o uso do result, e algumas desnecessidades, como eu não havia testado antes não sei se corrigiu seu problema, mas sei que esta lendo certo, antes perceba que o limite para cada linha é de 100 CARACTERES (Letras, espaços inclusos), então se uma linha tiver mais de 100, ele não ira mostrar a partir de 100(no caso de 0...99).
  22. Talvez nem seja necessário usar o FILE, pois o remove já retorna um resultado.
  23. Como é uma biblioteca externa eu pesquisei, e acabei encontrando a seguinte definição Traduzindo: Fonte:http://stackoverflow.com/questions/6277519/in-ncurses-what-does-the-attribute-a-protect-do

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!