Ir ao conteúdo

AdrianoSiqueira

Membro Pleno
  • Posts

    1.273
  • Cadastrado em

  • Última visita

Tudo que AdrianoSiqueira postou

  1. Qual é o erro que a função getComponents está exibindo?
  2. Se não pode usar vetor, use uma lista dinâmica.
  3. Mau contato no cabo flat, talvez?
  4. Coloque a mensagem de erro dentro de um if, esse if tem que testar se as variáveis são nulas ou vazias, caso seja exibe a mensagem.
  5. public class Programa { public static void main(String[] args) { System.out.println("Resultado deve ser 27: " + triploDaSoma(4, 5)); } public static double triploDaSoma(double valor1, double valor2) { return (valor1 + valor2) * 3; } }
  6. conio.h é exclusivo de Windows. adicionado 58 minutos depois Fiz algumas modificações em prol da organização e alguma otimizações de performance. Removi cabeçalhos inúteis. Portei o código para C++ puro. Removi coisas que não pertencem à linguagem c++ #include <iostream> using namespace std; typedef struct { string nome; string disciplina; double nota1; double nota2; double nota3; double nota4; double media; bool situacao; int idade; } Aluno; int main() { setlocale(LC_ALL, "Portuguese"); const int quantidade = 5; Aluno alunos[]{ (Aluno) {"", "", 0, 0, 0, 0, 0, false, 0}, (Aluno) {"", "", 0, 0, 0, 0, 0, false, 0}, (Aluno) {"", "", 0, 0, 0, 0, 0, false, 0}, (Aluno) {"", "", 0, 0, 0, 0, 0, false, 0}, (Aluno) {"", "", 0, 0, 0, 0, 0, false, 0} }; cout << "------------------------------------------------------------ \n" << "-------------------- CADASTRO de Alunos -------------------- \n" << "------------------------------------------------------------ \n"; for (int i = 0; i < quantidade; i++) { cout << "Informe os dados do " << (i + 1) << "º aluno \n" << "Nome ..........................: "; getline(cin, alunos[i].nome); cout << "Disciplina ....................: "; getline(cin, alunos[i].disciplina); cout << "Idade .........................: "; cin >> alunos[i].idade; cin.ignore(); do { cout << "Informe a 1ª nota [ 0 - 10 ] ..: "; cin >> alunos[i].nota1; cin.ignore(); } while (alunos[i].nota1 < 0 || alunos[i].nota1 > 10); do { cout << "Informe a 2ª nota [ 0 - 10 ] ..: "; cin >> alunos[i].nota2; cin.ignore(); } while (alunos[i].nota2 < 0 || alunos[i].nota2 > 10); do { cout << "Informe a 3ª nota [ 0 - 10 ] ..: "; cin >> alunos[i].nota3; cin.ignore(); } while (alunos[i].nota3 < 0 || alunos[i].nota3 > 10); do { cout << "Informe a 4ª nota [ 0 - 10 ] ..: "; cin >> alunos[i].nota4; cin.ignore(); } while (alunos[i].nota4 < 0 || alunos[i].nota4 > 10); alunos[i].media = (alunos[i].nota1 + alunos[i].nota2 + alunos[i].nota3 + alunos[i].nota4) / 4; alunos[i].situacao = alunos[i].media >= 7; if (i + 1 < quantidade) { cout << "\n"; } } cout << "------------------------------------------------------------ \n\n\n" << "------------------------------------------------------------ \n" << "--------------- IMPRIMINDO os dados da struct -------------- \n" << "------------------------------------------------------------ \n"; for (int i = 0; i < quantidade; i++) { cout << "Nome ..............: " << alunos[i].nome << "\n" << "Disciplina ........: " << alunos[i].disciplina << "\n" << "Idade do Aluno ....: " << alunos[i].idade << "\n" << "Nota da Prova 1 ...: " << alunos[i].nota1 << "\n" << "Nota da Prova 2 ...: " << alunos[i].nota2 << "\n" << "Nota da Prova 3 ...: " << alunos[i].nota3 << "\n" << "Nota da Prova 4 ...: " << alunos[i].nota4 << "\n" << "Média do Aluno ....: " << alunos[i].media << "\n" << "Situação ..........: " << (alunos[i].situacao ? "Aprovado" : "Reprovado") << "\n"; if (i + 1 < quantidade) { cout << "\n"; } } cout << "------------------------------------------------------------ \n"; return EXIT_SUCCESS; }
  7. Segue uma versão mais robusta: #include <stdio.h> #include <stdlib.h> #include <limits.h> #include <time.h> #if defined(_WIN32) #define esperar system("pause") #define limparTela system("cls") #elif defined(__linux__) #define esperar system("read null") #define limparTela system("clear") #endif int menu(); void preencherVetor(int *vetor, int tamanho); void preencherVetorAutomaticamente(int *vetor, int tamanho, int valorMinimo, int valorMaximo); int getMaior(const int *vetor, int tamanho); int getMenor(const int *vetor, int tamanho); double getMedia(const int *vetor, int tamanho); void exibirVetor(const int *vetor, int tamanho); int main() { int *vetor = NULL; int tamanho = 0; int opcao = 0; limparTela; printf("Digite o numero de elementos do vetor: "); scanf(" %i%*c", &tamanho); vetor = malloc(tamanho * sizeof(int)); preencherVetorAutomaticamente(vetor, tamanho, 0, 10); do { opcao = menu(); limparTela; // exibirVetor(vetor, tamanho); switch (opcao) { case 0: // Sair default: // Opcao invalida break; case 1: // Mostrar maior printf("Maior elemento: %i \n", getMaior(vetor, tamanho)); esperar; break; case 2: // Mostrar menor printf("Menor elemento: %i \n", getMenor(vetor, tamanho)); esperar; break; case 3: // Mostrar media printf("Media dos elementos: %.2f \n", getMedia(vetor, tamanho)); esperar; break; } } while (opcao != 0); free(vetor); return EXIT_SUCCESS; } int menu() { int opcao = 0; limparTela; printf(">> Menu Principal \n"); printf("[ 1 ] - Exibir o maior elemento \n"); printf("[ 2 ] - Exibir o menor elemento \n"); printf("[ 3 ] - Exibir a media dos elementos \n"); printf("[ 0 ] - Sair \n"); printf("> "); scanf(" %i%*c", &opcao); return opcao; } void preencherVetor(int *vetor, int tamanho) { for (int i = 0; i < tamanho; ++i) { printf("Digite o valor [ %i de %i ]: ", (i + 1), tamanho); scanf(" %i%*c", &vetor[i]); } } void preencherVetorAutomaticamente(int *vetor, int tamanho, int valorMinimo, int valorMaximo) { srandom(time(NULL)); for (int i = 0; i < tamanho; ++i) { vetor[i] = (int) random() % (valorMaximo + 1 - valorMinimo) + valorMinimo; } } int getMaior(const int *vetor, int tamanho) { int maior = INT_MIN; for (int i = 0; i < tamanho; ++i) { if (vetor[i] > maior) { maior = vetor[i]; } } return maior; } int getMenor(const int *vetor, int tamanho) { int menor = INT_MAX; for (int i = 0; i < tamanho; ++i) { if (vetor[i] < menor) { menor = vetor[i]; } } return menor; } double getMedia(const int *vetor, int tamanho) { double media = 0.0; for (int i = 0; i < tamanho; ++i) { media += vetor[i]; } return media / tamanho; } void exibirVetor(const int *vetor, int tamanho) { printf("["); for (int i = 0; i < tamanho; ++i) { printf("%i", vetor[i]); if (i + 1 < tamanho) { printf(", "); } } printf("] \n"); } @herbertbahia Bem lembrado.
  8. #include <stdlib.h> #include<stdio.h> #include <limits.h> int main() { int tamanho_vetor = 0; int *vetor = NULL; int maior = INT_MIN; int menor = INT_MAX; int opcao = 0; double media = 0.0; printf("Digite o Numero de Elementos do Vetor: "); scanf(" %i%*c", &tamanho_vetor); // system("cls"); vetor = malloc(tamanho_vetor * sizeof(int)); for (int i = 0; i < tamanho_vetor; i++) { printf("Digite o valor [ %i de %i ]: ", (i + 1), tamanho_vetor); scanf(" %i%*c", &vetor[i]); } do { // system("cls"); printf("Digite '1' Para Mostrar o Maior Elemento do Vetor \n"); printf("Digite '2' Para Mostrar o Menor Elemento do Vetor \n"); printf("Digite '3' Para Mostrar a Media do Vetor \n"); printf("> "); scanf(" %i%*c", &opcao); switch (opcao) { case 1: for (int i = 0; i < tamanho_vetor; i++) { if (vetor[i] > maior) { maior = vetor[i]; } } printf("Maior Elemento: %i \n", maior); break; case 2: for (int i = 0; i < tamanho_vetor; i++) { if (vetor[i] < menor) { menor = vetor[i]; } } printf("Menor Elemento: %i \n", menor); break; case 3: for (int i = 0; i < tamanho_vetor; i++) { media += vetor[i]; } media /= tamanho_vetor; printf("Media dos Valores do Vetor: %2.f \n", media); break; } printf("Para Voltar ao Menu Tecle '1', Para Sair Tecle 0: "); scanf(" %i%*c", &opcao); // system("cls"); } while (opcao == 1); // system("cls"); // system("pause"); return 0; }
  9. Cria uma variável chamada média, do tipo double ou float. Percorra todo o vetor somando o elemento na variável média. Quando terminar divida o valor de média pela quantidade de elementos do vetor.
  10. Defina uma função para determinar se um numero é primo ou não e faça essa função retornar um valor não booleano: int ePrimo(int numero);
  11. Ponteiros apontam para endereços de memória: int main(){ double x = 10.0; double *p = &x; // p aponta para o endereco de x printf("X = %i \n", p); return 0 }
  12. Só passando para deixar minha contribuição...: #include <stdio.h> #include <stdlib.h> #include <ctype.h> typedef struct { char sexo; int idade; int renda; } Pessoa; int main() { int totalPessoas = 0; double porcentagemHomens = 0.0; double porcentagemMulheres = 0.0; double porcentagemCriancas = 0; double porcentagemAdolescentes = 0; double porcentagemAdultos = 0; double porcentagemClasseA = 0.0; double porcentagemClasseB = 0.0; double porcentagemClasseC = 0.0; double mediaRenda = 0.0; char opcao = 's'; Pessoa pessoa; while (opcao == 's') { pessoa = (Pessoa) {0, ' ', 0}; do { printf("Digite o sexo [ F / M ]: "); scanf(" %c%*c", &pessoa.sexo); pessoa.sexo = _toupper(pessoa.sexo); } while (pessoa.sexo != 'F' && pessoa.sexo != 'M'); do { printf("Digite a idade: "); scanf(" %i%*c", &pessoa.idade); } while (pessoa.idade < 0); do { printf("Digite a renda (quantidade de salarios minimos): "); scanf(" %i%*c", &pessoa.renda); } while (pessoa.renda < 0); if (pessoa.sexo == 'F') { porcentagemMulheres += 1; } else { porcentagemHomens += 1; } if (pessoa.idade <= 12) { porcentagemCriancas += 1; } else if (pessoa.idade <= 17) { porcentagemAdolescentes += 1; } else { porcentagemAdultos += 1; } if (pessoa.renda <= 4) { porcentagemClasseC += 1; } else if (pessoa.renda <= 20) { porcentagemClasseB += 1; } else { porcentagemClasseA += 1; } mediaRenda += pessoa.renda; totalPessoas += 1; printf("Continuar? [ S / N ]: "); scanf(" %c%*c", &opcao); opcao = _tolower(opcao); } porcentagemMulheres = porcentagemMulheres * 100 / totalPessoas; porcentagemHomens = porcentagemHomens * 100 / totalPessoas; porcentagemCriancas = porcentagemCriancas * 100 / totalPessoas; porcentagemAdolescentes = porcentagemAdolescentes * 100 / totalPessoas; porcentagemAdultos = porcentagemAdultos * 100 / totalPessoas; porcentagemClasseA = porcentagemClasseA * 100 / totalPessoas; porcentagemClasseB = porcentagemClasseB * 100 / totalPessoas; porcentagemClasseC = porcentagemClasseC * 100 / totalPessoas; mediaRenda /= totalPessoas; printf("--------------------------------------- \n"); printf(" Porcentagem de mulheres: %.2f%% \n", porcentagemMulheres); printf(" Porcentagem de homens: %.2f%% \n\n", porcentagemHomens); printf(" Porcentagem de criancas: %.2f%% \n", porcentagemCriancas); printf("Porcentagem de adolescentes: %.2f%% \n", porcentagemAdolescentes); printf(" Porcentagem de adultos: %.2f%% \n\n", porcentagemAdultos); printf(" Porcentagem de classe A: %.2f%% \n", porcentagemClasseA); printf(" Porcentagem de classe B: %.2f%% \n", porcentagemClasseB); printf(" Porcentagem de classe C: %.2f%% \n\n", porcentagemClasseC); printf(" Media de renda: %.2f \n", mediaRenda); printf("--------------------------------------- \n"); return EXIT_SUCCESS; }
  13. A função quickSort está errada, segue o código corrigido: #include <stdio.h> #include <stdlib.h> #include <time.h> #include <string.h> void imprimirVetor(char *nome, char *vetor, int tamanho); void iniciarVetor(char *vetor, int tamanho); void quickSort(char *vetor, int inicio, int fim); int main() { const int tamanho = 10; char vetor[tamanho]; iniciarVetor(vetor, tamanho); imprimirVetor(" Antes", vetor, tamanho); quickSort(vetor, 0, tamanho - 1); imprimirVetor("Depois", vetor, tamanho); return 0; } /** * Imprime o vetor de maneira formatada. */ void imprimirVetor(char *nome, char *vetor, int tamanho) { printf("%s: [", nome); for (int i = 0; i < tamanho; i++) { printf("%c", vetor[i]); if (i + 1 < tamanho) { printf(", "); } } printf("] \n"); } /** * Inicia o vetor com valores aletatorios entre 0 e 9. */ void iniciarVetor(char *vetor, int tamanho) { srandom(time(NULL)); for (int i = 0; i < tamanho; ++i) { vetor[i] = (char) ((int) random() % 10 + '0'); } } /** * Ordena o vetor de forma crescente. */ void quickSort(char *vetor, int inicio, int fim) { char pivot = vetor[(inicio + fim) / 2]; char temp; int i = inicio; int f = fim; while (i <= f) { while ((vetor[i] < pivot) && (i < fim)) { i++; } while ((vetor[f] > pivot) && f > inicio) { f--; } if (i <= f) { temp = vetor[i]; vetor[i] = vetor[f]; vetor[f] = temp; i++; f--; } } if (inicio < f) { quickSort(vetor, inicio, f); } if (i < fim) { quickSort(vetor, i, fim); } }
  14. AdrianoSiqueira

    C passar C++ para C

    Basicamente, troque os cout por printf e os gech por getchar. Troque o include do iostream pelos stdio.h e stdlib.h. Remova o include do conio.h. Opcional.: Formate esse código, pois com essa bagunça é quase impossível encontrar possíveis erros. Acredito que já seja suficiente.
  15. De acordo com a página de notas, o NetBeans 11.3 suporta até o Java 14. Baixe do site oficial e veja se a compatibilidade procede para a versão 11 do Java.
  16. @LuizaC Caso não tenha conseguido fazer, pode partir disso: #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <time.h> typedef struct carro { char nome[255]; int potencia; double preco; } Carro; typedef struct node { Carro *carro; struct node *proximo; } Node; typedef struct lista { bool vazia; int quantidade; Node *primeiro; } Lista; int adicionarCarro(Lista *lista, Carro *carro); double calcularMediaPreco(Lista *lista); double calcularPorcentagem(Lista *lista); Lista *criarLista(); Carro *getCarroMaisPotente(Lista *lista); void log_erro(char *mensagem); void log_info(char *mensagem); int main() { Lista *lista = criarLista(); adicionarCarro(lista, &(Carro) {"Gol", 87, 30000.0}); adicionarCarro(lista, &(Carro) {"Palio", 85, 25000.0}); adicionarCarro(lista, &(Carro) {"Corsa", 79, 29000.0}); adicionarCarro(lista, &(Carro) {"A8", 290, 500000.0}); adicionarCarro(lista, &(Carro) {"Maserati", 300, 490000.0}); Carro *maisPotente = getCarroMaisPotente(lista); double porcentagem = calcularPorcentagem(lista); double mediaPreco = calcularMediaPreco(lista); return EXIT_SUCCESS; } A implementação das funções fica por sua conta . Se tiver dúvida é só perguntar.
  17. @PereiraTiago Vendedores é um vetor, logo precisa informar o índice para setar e pegar os dados: #include <stdio.h> #include <stdlib.h> #include <ctype.h> typedef struct { int id; char nome[30]; } Vendedor; typedef struct { int id; char descricao[30]; double preco; } Produto; typedef struct { int id; char nome[30]; } Cliente; typedef struct { Vendedor vendedores[2]; Produto produtos[2]; Cliente clientes[2]; } Vendas; Vendas v; void CadastroVendedor(); int main(void) { char op = ' '; do { printf(" ***** Lanchonete ***** \n\n"); printf(" O que voce deseja fazer? \n"); printf(" (1) Cadastrar Vendedor \n"); printf(" (2) Cadastrar Produto \n"); printf(" (3) Cadastrar Cliente \n"); printf(" (4) Realizar uma Venda \n"); printf(" (5) Exibir os Relatorios \n\n"); printf(" Digite o numero da opcao desejada: \n"); scanf(" %c%*c", &op); switch (op) { case '1': CadastroVendedor(); break; case '2': printf("\n*** Cadastrar Produto ***\n"); break; case '3': printf("*** Cadastrar Cliente ***"); break; case '4': printf("*** Realizar uma Venda ***"); break; case '5': printf("*** Realizar uma Venda ***"); break; default: break; } printf("Deseja Retornar ao menu? S/N: "); scanf(" %c%*c", &op); } while (toupper(op) != 'N'); return EXIT_SUCCESS; } void CadastroVendedor() { printf("*** Cadastrar Vendedor ***\n"); for (int i = 0; i < 2; i++) { printf("Digite o ID do vendedor: "); scanf(" %i%*c", &v.vendedores[i].id); printf("Digite o nome do vendedor: "); scanf(" %[^\n]", v.vendedores[i].nome); } printf("*** Vendedor Cadastrado ***\n"); for (int i = 0; i < 2; i++) { printf("ID Vendedor: %i \n", v.vendedores[i].id); printf("Nome Vendedor: %s \n", v.vendedores[i].nome); } }
  18. De acordo com o exemplo do primeiro post, poderia ser feito assim: #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <string.h> bool ePalindromo(char *entrada); int main() { printf("%s \n", (ePalindromo("asa") ? "Sim" : "Nao")); return EXIT_SUCCESS; } bool ePalindromo(char *entrada) { // Descobrir a quantidade de letras int tamanho; for (tamanho = 0; entrada[tamanho] != '\0'; ++tamanho); // Criar uma copia invertida char inverso[tamanho + 1]; for (int i = 0, j = tamanho - 1; i < tamanho; ++i, --j) { inverso[j] = entrada[i]; } inverso[tamanho] = '\0'; // Verifica se sao iguais return strcmp(entrada, inverso) == 0; }
  19. .
  20. Poderia simplificar o if dessa forma, pois se o número já é positivo, então não precisa mexer: if (entrada < 0) { entrada = -entrada; }
  21. Pode partir disso: public class SemNome { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int[] vetor = new int[50]; int ciclos = 0; int tempo = 0; System.out.print("Digite quantas vezes o ciclo será repetido: "); ciclos = scanner.nextInt(); System.out.print("Digite o tempo que você deseja contar (milissegundos): "); tempo = scanner.nextInt(); for(int i = 0; i < ciclos; i += 1) { // Não sei o que timer faz System.out.println("O ciclo é: " + (i + 1)); // Não sei o que timer faz } System.out.println("Fim dos ciclos."); System.exit(0); } }
  22. A questão das medidas é só criar uma função para cada conversão e uma para o menu. Cada função de conversão deve aplicar a regra para converter metros para a respectiva unidade, depois é só retornar o resultado. Para a questão da data, pode usar o método desse link.
  23. Dê uma olhada: Aqui Aqui
  24. Meio tarde, mas fica aí a minha contribuição... #include <stdio.h> #include <stdlib.h> int main() { int inicio = 0; int fim = 0; int passo = 0; printf("Digite o valor de inicio: "); scanf(" %i%*c", &inicio); printf("Digite o valor de fim: "); scanf(" %i%*c", &fim); printf("Digite o valor de passo: "); scanf(" %i%*c", &passo); passo = abs(passo); if (inicio <= fim) { printf("["); for (int i = inicio; i <= fim; i += passo) { printf("%i", i); if (i + passo <= fim) { printf(", "); } } printf("] \n"); } else { printf("["); for (int i = inicio; i >= fim; i -= passo) { printf("%i ", i); if (i - passo >= fim) { printf(", "); } } printf("] \n"); } return EXIT_SUCCESS; }
  25. Aproveita, é por tempo limitado

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!