Ir para conteúdo
Fórum Script Brasil

goldbach

Membros
  • Total de itens

    41
  • Registro em

  • Última visita

Tudo que goldbach postou

  1. Para simplificar o resultado você vai precisar calcular o m.d.c e não o m.m.c, abaixo como fazê-lo: #include <stdio.h> int mdc(int x1, int x2); int main() { int numerador = 48; int denominador = 30; int _mdc; printf("%d/%d\n", numerador, denominador); _mdc = mdc(numerador, denominador); numerador = numerador / _mdc; denominador = denominador / _mdc; // Depois da simplificação printf("%d/%d", numerador, denominador); return 0; } // x1 > x2 int mdc(int x1, int x2) { int dividendo = x1; int divisor = x2; int resto = 1; while(resto) { resto = dividendo % divisor; dividendo = divisor; divisor = resto; } return dividendo; }
  2. goldbach

    Servidores

    Eu não tenho esta instalação na minha máquina, na verdade nem um dos dois programas, mas o unico problema que eu vejo nisto é o compartilhamento da porta 80, que é a porta padrão de escuta de servidores WEB, logo você deve configurar eles para escutarem em portas distintas. Caso um servidor escutando em uma porta que não seja a padrão não seja satisfatório, você ainda pode usar uma máquina virtual.
  3. É porque você não tem o modulo livewires insalado. Obs: Passe a traduzir as mensagens de erro.
  4. Bom, o ideal é você procurar por uma IDLE especifica para o BackTrack5, mas se você que salvar os seus programas, um jeito fácil é usar qualquer editor de texo e salvar o código fonte com a extensão apropriada.
  5. Se você esta usando o operador new sem ele estar sobrecarregado, o ponteiro retornado é apenas um endereço de memoria, e ele vai ser válido ate você libera-lo diretamente chamando delete ou se a classe tiver um destrutor e ela sair do escopo.Parece que não é o caso.
  6. Você deve passar um ponteiro para a função: #include <stdio.h> void change(int *v1) { (*v1)++; } int main() { int v1 = 10; printf("v1 = %d\n", v1); change(&v1); printf("v1 = %d\n", v1); }
  7. Poderia me dar um exemplo? Para tirar dúvidas eu fiz o seguinte: Apenas coloquei qtotal=1000; e mandei imprimir no LCD. Lá aparece -24. Muito estranho. printf (escreve_lcd,"%d",qtotal); se eu colocar %u, aparece 232. Esquisito. Vou continuar tentando. Deu certo, utilizei LONG INT e tudo funcionou!!! Obrigado!!!!!!!!!!!!!!!!! Disponha.
  8. Tente usar Microsoft Speech API (SAPI). SAPI stdafx.h #define _ATL_APARTMENT_THREADED #include <atlbase.h> //You may derive a class from CComModule and use it if you want to override something, //but do not change the name of _Module extern CComModule _Module; #include <atlcom.h> main.cpp #include "stdafx.h" #include <sapi.h> int main(int argc, char* argv[]) { ISpVoice * pVoice = NULL; if (FAILED(::CoInitialize(NULL))) return FALSE; HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice); if( SUCCEEDED( hr ) ) { hr = pVoice->Speak(L"Hello world", 0, NULL); pVoice->Release(); pVoice = NULL; } ::CoUninitialize(); return TRUE; }
  9. Ao invés de usar variaves do tipo inteiro, tente usar do tipo unsigned int.
  10. goldbach

    progama-liga dos campeoes

    C Completo e Total, 3ª edição Herbert Schildt Este livro me ajudou bastante, mas você so se torna bom com a pratica.Para ser bom em alguma coisa você precisa se dedicar 10.000 horas nisso.
  11. Eu não entendo nada de eletrônica (apesar de ter um curso de manutenção eletrica industrial), mas me parece que o que você quer é: Dado quatro variaveis q1, q2, q3, q4 do tipo int, que representam o numeral 'q4q3q2q1', você que encontrar o valor total, logo: #include <stdio.h> int main() { int q1 = 0; int q2 = 0; int q3 = 0; int q4 = 5; int Qtotal; Qtotal = (q4 * 1000) + (q3 * 100) + (q2 * 10) + q1; printf("Qtotal = %d\n", Qtotal); }
  12. goldbach

    progama-liga dos campeoes

    Eu não trabalho com programação (espero ainda trabalhar), não fiz e nem faço faculdade relacionada a área, aprendi a programar lendo livros e tutoriais.
  13. goldbach

    progama-liga dos campeoes

    Por que 'A' ? Porque eu quero adicionar o clube no grupo 'A', se eu quiser adicionar o clube no grupo 'B' eu uso 'B', veja o que acontence : CLUB *groupA[4] = {0, 0, 0, 0}; CLUB *groupB[4] = {0, 0, 0, 0}; CLUB *groupC[4] = {0, 0, 0, 0}; CLUB *groupD[4] = {0, 0, 0, 0}; CLUB *groupE[4] = {0, 0, 0, 0}; CLUB *groupF[4] = {0, 0, 0, 0}; CLUB *groupG[4] = {0, 0, 0, 0}; CLUB *groupH[4] = {0, 0, 0, 0}; CLUB **GROUPS[] = {groupA, groupB, groupC, groupD, groupE, groupF, groupG, groupH}; void addGroup(CLUB *club, char group) { int i; for(i = 0; i < 4; i++) { if(!GROUPS[group - 65][i]) { GROUPS[group - 65][i] = club; break; } } } quando group == 'A' -> GROUPS[0] -> groupA qunado group == 'B' -> GROUPS[1] -> groupB ... É o mais claro que consigo ser. :)
  14. goldbach

    progama-liga dos campeoes

    Pense no que acontece quando você faz: addGroup(club, 'A'); Siga a função passo a passo.Fica como desafio.
  15. goldbach

    progama-liga dos campeoes

    É uma simples conversão, pois o valor do caractere 'A' é 65.
  16. goldbach

    progama-liga dos campeoes

    Eu estava num bom dia. :) /* Esta função usa quatro variaveis globais (pote1, pote2, pote3 e pote4), de modo que cada uma ira armazenar 8 clubes.O pote1 é preenchido com os 8 primeiros clubes; pote2 com os 8 seguintes e assim por diante. O que o codigo faz é percorrer o array clubs, e a cada 8 clubes passa para o próximo pote. */ void createPotes(CLUB *clubs) { CLUB **pote = pote1; // ponteiro usado para mudar de pote int i; int j; for(i = 0, j = 0; j < NCLUBS; i++, j++) { pote[i] = &clubs[j]; if(i == 7) { i = -1; if(j == 7) pote = pote2; else if(j == 15) pote = pote3; else if(j == 23) pote = pote4; } } printf("\n%s%20s%20s%20s\n","POTE 1", "POTE 2", "POTE 3", "POTE 4"); for(i = 0; i < 8; i++) { printf("%s%20s%20s%20s\n", pote1[i]->name, pote2[i]->name, pote3[i]->name, pote4[i]->name); } } /* Adiciona um clube a um determinado grupo (groupA, groupB ...) */ void addGroup(CLUB *club, char group) { int i; for(i = 0; i < 4; i++) { if(!GROUPS[group - 65][i]) { GROUPS[group - 65][i] = club; break; } } } /* Esta função sorteia um clube de um determinado pote e depois sorteia um grupo para qual este clube deve entrar (considerando-se as restrições). Para se sortear um clube, primeiramente é gerado um número aleatório no intervalo [0, 7], este número é usado como indice para retornar um determinado clube do pote, se o valor retornado for nulo (o clube já foi sorteado), um novo número no intervalo é sorteado, o processo se repete até retornar um clube diferente do pote. Para se sortear um grupo, o processo é semelhante ao descrito acima, a diferenca é que é usado um vetor de caracteres para representar os grupos. Após se sortear um clube e um grupo a função addGroup() é chamada. */ void rafflePote(CLUB *clubs, CLUB **pote) { CLUB *club; char group; char groups[] = "ABCDEFGH"; int r; int i; int j; for(j = 0; j < 8; j++) { for(;;) { r = rand() % 8; if(!pote[r]) continue; club = pote[r]; break; } pote[r] = NULL; // garante que este clube não sera sorteado novamente printf("\n\nClube Sorteado : %s\n", club->name); printf("Grupos Possiveis : "); for(i = 0; i < 8; i++) { if(groups[i]) printf("%c ", groups[i]); } printf("\n"); for(;;) { r = rand() % 8; if(!groups[r]) continue; group = groups[r]; break; } groups[r] = 0; // garante que este grupo não sera sorteado novamente printf("Grupo Sorteado : %c\n", group); addGroup(club, group); } }
  17. goldbach

    progama-liga dos campeoes

    Quais partes do código você não entendeu ?
  18. goldbach

    progama-liga dos campeoes

    Hoje eu gostaria de ajudar alguém, então eu fiz isto. #include <stdio.h> #include <stdlib.h> #include <time.h> #define NCLUBS 32 typedef struct CLUB { char *name; unsigned int ranking; }CLUB; CLUB clubs[32] = { "AC Milan " , 89996, "Ajax " , 58103, "Anderlecht " , 48480, "Arsenal " , 113882, "BATE Borisov " , 29641, "Bayern Munique " , 133037, "Benfica " , 87069, "Borussia Dortmund " , 31037, "Celtic " , 32728, "Chelsea " , 135882, "Cluj " , 18764, "Dinamo Kiev " , 62026, "Dinamo Zagreb " , 24774, "FC Barcelona " , 157837, "FC Nordsjaelland " , 8005, "FC Porto " , 98069, "Galatasaray " , 38310, "Juventus " , 46996, "Lille " , 38835, "Malaga " , 18690, "Manchester City " , 63882, "Manchester United " , 141882, "Montpellier " , 11835, "Olympiakos " , 61420, "Paris Saint-Germain" , 45835, "Real Madrid " , 121837, "Schalke 04 " , 78037, "Shakhtar Donetsk " , 84026, "Spartak Moscovo " , 46066, "Sporting Braga " , 63069, "Valencia " , 89837, "Zenit St Petersburg" , 79066 }; CLUB *pote1[8]; CLUB *pote2[8]; CLUB *pote3[8]; CLUB *pote4[8]; CLUB *groupA[4] = {0, 0, 0, 0}; CLUB *groupB[4] = {0, 0, 0, 0}; CLUB *groupC[4] = {0, 0, 0, 0}; CLUB *groupD[4] = {0, 0, 0, 0}; CLUB *groupE[4] = {0, 0, 0, 0}; CLUB *groupF[4] = {0, 0, 0, 0}; CLUB *groupG[4] = {0, 0, 0, 0}; CLUB *groupH[4] = {0, 0, 0, 0}; CLUB **GROUPS[] = {groupA, groupB, groupC, groupD, groupE, groupF, groupG, groupH}; void listClubs(CLUB *clubs) { int i = 0; for(i = 0; i < NCLUBS; i++) { printf("%s %6d \n", clubs[i].name, clubs[i].ranking); } } void sortClubs(CLUB *clubs) { int i, j; int temp1; char *temp2; for(i = 1; i < NCLUBS; i++) { for(j = NCLUBS - 1; j >= i; j--) { if(clubs[j - 1].ranking < clubs[j].ranking) { temp1 = clubs[j - 1].ranking; temp2 = clubs[j - 1].name; clubs[j - 1].ranking = clubs[j].ranking; clubs[j - 1].name = clubs[j].name; clubs[j].ranking = temp1; clubs[j].name = temp2; } } } } void createPotes(CLUB *clubs) { CLUB **pote = pote1; int i; int j; for(i = 0, j = 0; j < NCLUBS; i++, j++) { pote[i] = &clubs[j]; if(i == 7) { i = -1; if(j == 7) pote = pote2; else if(j == 15) pote = pote3; else if(j == 23) pote = pote4; } } printf("\n%s%20s%20s%20s\n","POTE 1", "POTE 2", "POTE 3", "POTE 4"); for(i = 0; i < 8; i++) { printf("%s%20s%20s%20s\n", pote1[i]->name, pote2[i]->name, pote3[i]->name, pote4[i]->name); } } void addGroup(CLUB *club, char group) { int i; for(i = 0; i < 4; i++) { if(!GROUPS[group - 65][i]) { GROUPS[group - 65][i] = club; break; } } } void rafflePote(CLUB *clubs, CLUB **pote) { CLUB *club; char group; char groups[] = "ABCDEFGH"; int r; int i; int j; for(j = 0; j < 8; j++) { for(;;) { r = rand() % 8; if(!pote[r]) continue; club = pote[r]; break; } pote[r] = NULL; printf("\n\nClube Sorteado : %s\n", club->name); printf("Grupos Possiveis : "); for(i = 0; i < 8; i++) { if(groups[i]) printf("%c ", groups[i]); } printf("\n"); for(;;) { r = rand() % 8; if(!groups[r]) continue; group = groups[r]; break; } groups[r] = 0; printf("Grupo Sorteado : %c\n", group); addGroup(club, group); } } void listGroups() { int i; printf("\n%s%20s%20s%20s\n","GRUPO A", "GRUPO B", "GRUPO C", "GRUPO D"); for(i = 0; i < 4; i++) { if(!groupA[i]) break; printf("%s%20s%20s%20s\n", groupA[i]->name, groupB[i]->name, groupC[i]->name, groupD[i]->name); } printf("\n%s%20s%20s%20s\n","GRUPO E", "GRUPO F", "GRUPO G", "GRUPO H"); for(i = 0; i < 4; i++) { if(!groupA[i]) break; printf("%s%20s%20s%20s\n", groupE[i]->name, groupF[i]->name, groupG[i]->name, groupH[i]->name); } } int main() { srand(time(NULL)); printf("\nSORTEIO DA FASE DE GRUPOS DA LIGA DOS CAMPEOES\n"); printf("\nClubes apurados para a fase de grupos\n\n"); listClubs(clubs); sortClubs(clubs); printf("\nClubes apurados para a fase de grupos ordenados por ranking\n\n"); listClubs(clubs); printf("\nDistribuicao dos clubes pelos potes\n"); createPotes(clubs); printf("\nSorteio do pote 1\n"); rafflePote(clubs, pote1); printf("\nGrupos apos sorteio pote 1\n"); listGroups(); printf("\nSorteio do pote 2\n"); rafflePote(clubs, pote2); printf("\nGrupos apos sorteio pote 2\n"); listGroups(); printf("\nSorteio do pote 3\n"); rafflePote(clubs, pote3); printf("\nGrupos apos sorteio pote 3\n"); listGroups(); printf("\nSorteio do pote 4\n"); rafflePote(clubs, pote4); printf("\nGrupos apos sorteio pote 4\n"); listGroups(); return 0; }
  19. Bom ... se eu entende, você que executar um aplicativo e quando fizer isto, seja solicitado permissão de administrador.Certo ? Dois modos: 1. Use um manifesto. Manifest 2. Crie um instalador pro seu aplicativo; basicamente crie um aplicativo que extrai o código do aplicativo principal pro disco e chame a função ShellExecute para executá-lo.
  20. Se você que evitar que o programa pessa autorização toda vez que for executado, a solução é realmente o comando Runas, seu uso é explicado no link que eu te mandei, mas resumidamente você vai fazer o seguinte : 1.Criar um atalho com o seguinte caminho: runas /savecred /user:lievore “c:\MeuAplicativo.exe”. 2.Executar o atalho e entrar com a senha de administrador. 3.Executar o atalho, desta vez não será necessário mais a senha.
  21. Para executar um aplicativo como administrador, você pode usar o código : #include <Windows.h> #include <Shellapi.h> int main() { char *application = "c:\\windows\\system32\\notepad.exe"; // substitua pelo aplicativo (script) que você quer executar ShellExecute(NULL, "runas", application, NULL, NULL, SW_SHOWDEFAULT); } Existe também o comando Runas do prompt de comando, abaixo o link de como usá-lo: Runas
  22. Um pouco de café ... e milhões de linhas de código depois, aí está: #include <stdio.h> // as datas devem estar no formato dd/mm/yyyy int getNumberDays(const char *startDate, const char *endDate) { int month[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int startDay; int startMonth; int startYear; int endDay; int endMonth; int endYear; int nDays = 0; startDay = ((startDate[0] & 0xF) * 10) + (startDate[1] & 0xF); startMonth = ((startDate[3] & 0xF) * 10) + (startDate[4] & 0xF); startYear = ((startDate[6] & 0xF) * 1000) + ((startDate[7] & 0xF) * 100) + ((startDate[8] & 0xF) * 10) + (startDate[9] & 0xF); endDay = ((endDate[0] & 0xF) * 10) + (endDate[1] & 0xF); endMonth = ((endDate[3] & 0xF) * 10) + (endDate[4] & 0xF); endYear = ((endDate[6] & 0xF) * 1000) + ((endDate[7] & 0xF) * 100) + ((endDate[8] & 0xF) * 10) + (endDate[9] & 0xF); if(startDay == endDay && startMonth == endMonth && startYear == endYear) return 0; if(!(startYear % 4)) { if(startYear % 100) month[1] = 29; // ano bissesto else if(!(startYear % 400)) month[1] = 29; // ano bissesto } for(;;) { int i; for(i = 1; i < 13; i++) { if(startMonth == i) { if(startDay == month[i - 1]) // se é o ultimo dia do mês { startDay = 1; if(startMonth != 12) { startMonth++; } else // se é o ultimo mês do ano { startMonth = 1; startYear++; if(!(startYear % 4)) { if(startYear % 100) month[1] = 29; // ano bissesto else { if(!(startYear % 400)) month[1] = 29; else month[1] = 28; } } else month[1] = 28; } } else { startDay++; } break; } } nDays++; if(startDay == endDay && startMonth == endMonth && startYear == endYear) return nDays + 1; } } int main() { printf("Days = %d\n", getNumberDays("01/01/2013", "31/12/2013")); return 0; }
  23. Vou tentar te explicar ... Você disse que seu professor restringiu o uso da instrução for, o que eu quis te mostrar é como substituir essa instrução.Vou explicar o que eu fiz com a função method1(): .Localizei a instrução for. .Substitui a instrução for por um rótulo. .Coloquei o código que ira se repetir "dentro" do rótulo. .Usei a instrução goto para repetir este "bloco" de código. .Inicializei as variaveis necessárias antes da declaração do rótulo. .Coloquei o código que encerra o ciclo no final do rótulo. Para que você entenda melhor, eu implementei duas funções: selectionSort() e selectionSort1(),as duas são recursivas e somente a primeira faz uso da instrução for, contudo ambas conseguem ordenar um vetor de inteiros. #include <stdio.h> void selectionSort(int *input, int length, int startIndex) { if(startIndex >= length - 1) return; int minIndex = startIndex; for(int index = startIndex + 1; index < length; index++) { if (input[index] < input[minIndex]) { minIndex = index; } } int temp = input[startIndex]; input[startIndex] = input[minIndex]; input[minIndex] = temp; selectionSort(input, length, startIndex + 1); } void selectionSort1(int *input, int length, int startIndex) { if(startIndex >= length - 1) return; int minIndex = startIndex; // start loop for int index = startIndex + 1; repeat: if (input[index] < input[minIndex]) { minIndex = index; } if(++index < length) goto repeat; // end loop for int temp = input[startIndex]; input[startIndex] = input[minIndex]; input[minIndex] = temp; selectionSort(input, length, startIndex + 1); } int main() { int input[] = {9, 3, 4, 2, 7, 5, 1, 6, 0, 8}; int input1[] = {9, 3, 4, 2, 7, 5, 1, 6, 0, 8}; selectionSort(input, 10, 0); printf("{%d, %d, %d, %d, %d, %d, %d, %d, %d, %d}\n", input[0], input[1], input[2], input[3], input[4], input[5], input[6], input[7], input[8], input[9]); selectionSort1(input1, 10, 0); printf("{%d, %d, %d, %d, %d, %d, %d, %d, %d, %d}", input1[0], input1[1], input1[2], input1[3], input1[4], input1[5], input1[6], input1[7], input1[8], input1[9]); return 0; }
×
×
  • Criar Novo...