kgin
Membro Pleno-
Posts
375 -
Cadastrado em
-
Última visita
-
kgin começou a seguir como usar o Turbo PascaL com DOSBOX , Notebook lento quando está em cima da mesa , Esperava encontrar o então e 6 outros
-
Notebook lento quando está em cima da mesa
kgin respondeu ao tópico de José Victor Gomes em Notebooks
Pode ser energia estática. Aço escovado, pvc, isopor e algumas madeiras (como peroba rosa, cedrinho e alguns tipos de mdf e mdp) podem guardar energia estatística, principalmente se estiverem perto de algum transformador. Coloque em cima de algum isolante na mesa e teste pra ver se é isso mesmo. -
Ele está indicando o erro na linha acima. o correto é para <variável> de <valor-inicial> ate <valor-limite> [passo <incremento>] faca falta a palavra de atribuição de no lugar de <- (comando de atribuição de variável) manual visualG
-
Você poderia fazer assim /* Pega a quantidade de clientes */ do { printf("Quantos clientes deseja cadastrar?\n"); fgets(buffer_teclado, TAMANHO_BUFFER, stdin); sscanf(buffer_teclado, "%i", &numero_clientes); /* Checa se o primeiro caractere é uma letra do alfabeto * isalpha e uma função que pertence a biblioteca ctype */ if (isalpha(*buffer_teclado)) { printf("Entrada Invalida!\n"); } } while ((isalpha(*buffer_teclado) != 0) || (numero_clientes <= 0)); Checando toda vez se a entrada do teclado não começa com uma letra. Quando for postar no fórum utilize o botão code e poste todos os arquivos do programa. exemplo completo #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include "cliente.c" #define TAMANHO_BUFFER 256 int main(void) { char buffer_teclado[TAMANHO_BUFFER]; int numero_clientes = 0, contador; /* Pega a quantidade de clientes */ do { printf("Quantos clientes deseja cadastrar?\n"); fgets(buffer_teclado, TAMANHO_BUFFER, stdin); sscanf(buffer_teclado, "%i", &numero_clientes); /* Checa se o primeiro caractere é uma letra do alfabeto * isalpha e uma função que pertence a biblioteca ctype */ if (isalpha(*buffer_teclado)) { printf("Entrada Invalida!\n"); } } while ((isalpha(*buffer_teclado) != 0) || (numero_clientes <= 0)); //Alocação dinâmica do ponteiro clientes do tipo Cliente Cliente *clientes = malloc(sizeof(*clientes)*numero_clientes); for (int contador = 0; contador < n; contador++) { //Cadastro do nome do cliente printf("Informe o nome do cliente: "); fgets(buffer_teclado, TAMANHO_BUFFER, stdin); buffer_teclado[strlen(buffer_teclado)] = '\0'; strcpy(clientes[contador].nome, buffer_teclado); //Cadastro do enedereço do cliente printf("Informe o endereço do cliente: "); fgets(buffer_teclado, TAMANHO_BUFFER, stdin); buffer_teclado[strlen(buffer_teclado)] = '\0'; strcpy(clientes[contador].endereco, buffer_teclado); //Cadatro do código do cliente printf("informe o código do cliente: "); fgets(buffer_teclado, TAMANHO_BUFFER, stdin); sscanf(buffer_teclado, "%i", &clientes[contador].endereco); } atribuirDados(clientes, numero_clientes); //CRIAR FUNÇÃO QUE APAGA O ARQUIVO TXT free(clientes); //Esvaziamento da memória alocada pelo ponteiro clientes clientes = NULL; return(0); }
-
@Capvaro O que você está tentando fazer exatamente? Seria melhor abrir outro tópico mais específico sobre o problema.
-
Boa noite! O problema principal é que você declarou todos os tipos caractere como caractere e a outros problemas pontuais que tornam meio difícil consertar o algoritmo. recomendaria começar de novo e focar só no jogo em si por enquanto.
-
VisualG Calcular média escolar, cadastro e pesquisa de aluno
kgin respondeu ao tópico de HenriqueArisi em Programação - iniciantes
Na hora que eu estava testando o programa eu fiz algumas modificações . Por isso não percebi o erro, mas o erro está na linha 50. Funcionando agora Algoritmo "CadastroAlunos" const // AQUI VOCÊ ALTERA A QUANTIDADE DE ALUNOS NO PROGRAMA AAAAAAAAAAH........ •`_´• QUANTIDADE_MAXIMA_ALUNOS = 2 Var opcao: Caractere RA: Vetor[1..QUANTIDADE_MAXIMA_ALUNOS] de Inteiro Nota1: Vetor[1..QUANTIDADE_MAXIMA_ALUNOS] de Real Nota2: Vetor[1..QUANTIDADE_MAXIMA_ALUNOS] de Real Cidade: Vetor[1..QUANTIDADE_MAXIMA_ALUNOS] de Caractere MEDIA: Vetor[1..QUANTIDADE_MAXIMA_ALUNOS] de Real contador: Inteiro raPesquisa: Inteiro encontrou: Logico alunosCadastrados: Logico procedimento espera var entrada:caractere inicio escreval("Pressione enter para continuar...") leia(entrada) fimProcedimento Inicio Para contador de 1 ate QUANTIDADE_MAXIMA_ALUNOS faca RA[contador] <- 0 Nota1[contador] <- 0 Nota2[contador] <- 0 MEDIA[contador] <- 0 FimPara alunosCadastrados <- Falso contador <- 1 Enquanto opcao <> "S" faca Escreval("==================================================") Escreval(" -=MENU=-") Escreval("1 - Cadastrar aluno") Escreval("2 - Pesquisar aluno") Escreval("3 - Listar alunos") Escreval("4 - Lista média de todos alunos da turma") Escreval("S - Sair") Escreval("==================================================") Escreval("Digite Opção: ") Leia(opcao) LimpaTela Escolha opcao Caso "1" // O ERRO ERA AQUI! // Cadastrar aluno // Enquanto (contador <= QUANTIDADE_MAXIMA_ALUNOS) E (RA[i] <> 0) faca // contador <- contador + 1 // FimEnquanto // FIM DO ERRO! Se contador <= QUANTIDADE_MAXIMA_ALUNOS então Escreva("Digite o RA do aluno: ") Leia(RA[contador]) Escreva("Digite a Nota 1 do aluno: ") Leia(Nota1[contador]) Escreva("Digite a Nota 2 do aluno: ") Leia(Nota2[contador]) Escreva("Digite a Cidade do aluno: ") Leia(Cidade[contador]) MEDIA[contador] <- (Nota1[contador] + Nota2[contador]) / 2 LimpaTela Escreval("Aluno cadastrado com sucesso!") contador <- contador+1 Senao Escreval("Limite de alunos atingido.") espera FimSe Caso "2" // Pesquisar aluno Se alunosCadastrados então Escreval("Digite o RA para pesquisa: ") Leia(raPesquisa) encontrou <- Falso Para contador de 1 ate QUANTIDADE_MAXIMA_ALUNOS faca Se RA[contador] = raPesquisa então LimpaTela Escreval("Média: ", MEDIA[contador]) encontrou <- Verdadeiro Interrompa FimSe FimPara Se não encontrou então Escreval("RA inexistente") FimSe Senao Escreval("Nenhum aluno cadastrado até o momento.") FimSe Caso "3" // Listar alunos Se alunosCadastrados então Para contador de 1 ate QUANTIDADE_MAXIMA_ALUNOS faca Se RA[contador] <> 0 então Escreval("RA: ", RA[contador]) Escreval("Nota 1: ", Nota1[contador]) Escreval("Nota 2: ", Nota2[contador]) Escreval("Média: ", MEDIA[contador]) Escreval("---------------------------------") FimSe FimPara Senao Escreval("Nenhum aluno cadastrado até o momento, consequentemente, nenhuma média calculada.") FimSe Caso "4" // Listar médias Se alunosCadastrados então Para contador de 1 ate QUANTIDADE_MAXIMA_ALUNOS faca Se RA[contador] <> 0 então Escreval("RA: ", RA[contador]) Escreval("Média: ", MEDIA[contador]) Escreval("---------------------------------") FimSe FimPara Senao Escreval("Nenhum aluno cadastrado até o momento.") FimSe Caso "S" Escreval("Agradecemos por utilizar o programa!") OutroCaso Escreval("Opção inválida. Tente novamente.") FimEscolha FimEnquanto FimAlgoritmo Tente reestruturar o programa, e evite usar variáveis com nomes pouco significativos como i ou ra acaba dificultando o entendimento do mesmo. -
VisualG Calcular média escolar, cadastro e pesquisa de aluno
kgin respondeu ao tópico de HenriqueArisi em Programação - iniciantes
Você tem que colocar para o programa parar nesse momento. Exemplo: Algoritmo "CadastroAlunos" Var opcao: Caractere RA: Vetor[1..10] de Inteiro Nota1: Vetor[1..10] de Real Nota2: Vetor[1..10] de Real Cidade: Vetor[1..10] de Caractere MEDIA: Vetor[1..10] de Real i: Inteiro raPesquisa: Inteiro encontrou: Logico alunosCadastrados: Logico procedimento espera var entrada:caractere inicio escreval("Pressione enter para continuar...") leia(entrada) fimProcedimento Inicio Para i de 1 ate 10 faca RA[i] <- 0 Nota1[i] <- 0 Nota2[i] <- 0 MEDIA[i] <- 0 FimPara alunosCadastrados <- Falso Enquanto opcao <> "S" faca Escreval("==================================================") Escreval(" -=MENU=-") Escreval("1 - Cadastrar aluno") Escreval("2 - Pesquisar aluno") Escreval("3 - Listar alunos") Escreval("4 - Lista média de todos alunos da turma") Escreval("S - Sair") Escreval("==================================================") Escreval("Digite Opção: ") Leia(opcao) LimpaTela Escolha opcao Caso "1" // Cadastrar aluno i <- 1 Enquanto (i <= 10) E (RA[i] <> 0) faca i <- i + 1 FimEnquanto Se i <= 10 então Escreva("Digite o RA do aluno: ") Leia(RA[i]) Escreva("Digite a Nota 1 do aluno: ") Leia(Nota1[i]) Escreva("Digite a Nota 2 do aluno: ") Leia(Nota2[i]) Escreva("Digite a Cidade do aluno: ") Leia(Cidade[i]) MEDIA[i] <- (Nota1[i] + Nota2[i]) / 2 LimpaTela Escreval("Aluno cadastrado com sucesso!") alunosCadastrados <- Verdadeiro Senao Escreval("Limite de alunos atingido.") espera FimSe Caso "2" // Pesquisar aluno Se alunosCadastrados então Escreval("Digite o RA para pesquisa: ") Leia(raPesquisa) encontrou <- Falso Para i de 1 ate 10 faca Se RA[i] = raPesquisa então LimpaTela Escreval("Média: ", MEDIA[i]) encontrou <- Verdadeiro Interrompa FimSe FimPara Se não encontrou então Escreval("RA inexistente") FimSe Senao Escreval("Nenhum aluno cadastrado até o momento.") FimSe Caso "3" // Listar alunos Se alunosCadastrados então Para i de 1 ate 10 faca Se RA[i] <> 0 então Escreval("RA: ", RA[i]) Escreval("Nota 1: ", Nota1[i]) Escreval("Nota 2: ", Nota2[i]) Escreval("Média: ", MEDIA[i]) Escreval("---------------------------------") FimSe FimPara Senao Escreval("Nenhum aluno cadastrado até o momento, consequentemente, nenhuma média calculada.") FimSe Caso "4" // Listar médias Se alunosCadastrados então Para i de 1 ate 10 faca Se RA[i] <> 0 então Escreval("RA: ", RA[i]) Escreval("Média: ", MEDIA[i]) Escreval("---------------------------------") FimSe FimPara Senao Escreval("Nenhum aluno cadastrado até o momento.") FimSe Caso "S" Escreval("Agradecemos por utilizar o programa!") OutroCaso Escreval("Opção inválida. Tente novamente.") FimEscolha FimEnquanto FimAlgoritmo Eu testei aqui e está tudo normal, mas esse erro aí seria na linha 43 no comando Leia(opcao) que estaria faltando ) um parênteses. -
VisualG Procedimentos no VisualG... Mensagem de sintaxe incorreta
kgin respondeu ao tópico de dmoret em Programação - iniciantes
Você errou na sintaxe do se..então No final teria que ter um fimSe, e eu recomendo não usar acentos nas palavras no visualG. Ele tem a tendência de buggar até com as próprias palavras reservadas. Outra melhoria seria usar a estrutura de decisão escolha ao invés do se...então. Exemplo: algoritmo "_" Var // Seção de Declarações das variáveis categoria: caractere tipoc: caractere diarias: inteiro vlr_diaria: real vlr_total: real desconto: real Inicio // Seção de Comandos, procedimento, funções, operadores, etc... escreval("Escolha a categoria do veículo (1, 2 ou 3): ") leia(categoria) escreval("Digite a qtd de diárias: ") leia(diarias) escolha categoria caso "1" vlr_diaria <- 299.99 escreval("Categoria: Popular") caso "2" vlr_diaria <- 399.99 escreval("Categoria: Hatch ou Sedan Intermediário") caso "3" vlr_diaria <- 499.99 escreval("Categoria: SUV ou Sedan Luxo") fimEscolha escreval("Tipo Categoria: ", tipoc) escreval("Qtd de diárias: ", diarias) escreval("Vlr da diária: R$ ", vlr_diaria) se diarias <= 6 então desconto <- 0 senao se diarias <= 14 então desconto <- 0.05 senao se diarias <= 30 então desconto <- 0.1 fimSe vlr_total <- diarias * vlr_diaria * (1 - desconto) escreval("Valor total do aluguel: R$ ", vlr_total) Fimalgoritmo -
Já tentou bloquear o programa no firewall do windows? como bloquear o acesso de internet a um programa.
-
Pascal como usar o Turbo PascaL com DOSBOX
kgin respondeu ao tópico de devair1010 em Programação - outros
Pressione alt+enter para colocar em modo tela cheia. o programa não tem um modo maximizado! e ctrl+F10 para soltar o cursor do mouse. Seria melhor você baixar os dois separados. nesse link tem o turbo pascal 7 -
@matheus.Matta testei aqui e funcionando "normal"! O replit funciona com uma maquina virtual linux, então você precisa de um ambiente igual ao replit para funcionar. a maioria das versões do gcc para o windows não ligam para a compatibilidade entre os sistemas, então seu problema seja esse. recomendo usar o tdm-gcc pelo fato de ser bem mais simples pra quem está iniciando.
-
Bat Como copiar todo o conteúdo de um disco para uma pasta de outro disco no MS DOS
kgin respondeu ao tópico de carcleo1999 em Programação - outros
Creio eu que o ideal seria usar o seguinte comando /s /e /k /p /i Se a pasta não existir ele vai forçar para ser criada. O ideal seria usar o comando robocopy porque o xcopy coloca o arquivo todo na memória (até onde eu me lembro) antes de copiar. colocando o comando /Z você pode acompanhar o progresso do xcopy. XCOPY Microsoft learn -
VisualG Cadastro de produtos, consulta de estoques usando vetores
kgin respondeu ao tópico de Eli Almeida em Programação - iniciantes
Esta sim! Veja que no enunciado não pede para retornar nada Uma melhoria seria colocar algumas checagens de entrada para evitar informações duplicadas. Dessa maneira funcao produto_existe(nome:caractere):inteiro var contador:inteiro inicio retorne 0 para contador de 1 ate quantidade_produtos_cadastrados faca se nome = produtos[contador].nome então retorne contador interrompa fimSe fimPara fimFuncao procedimento cadastra_produto var opcao:caractere inicio repita escreva("Digite o nome do produto:") leia(p_temp.nome) se (produto_existe(p_temp.nome) > 0) então escreval("O produto ", p_temp.nome, " Já existe no cadastro!") escreval("Deseja continuar cadastrando outro?") escreva("[S/N]:") leia(opcao) se (opcao <> "s") então interrompa fimSe fimSE ate não ((produto_existe(p_temp.nome) > 0) e (opcao = "s")) fimProcedimento Fiz de cabeça e provavelmente nem funciona :b -
VisualG Cadastro de produtos, consulta de estoques usando vetores
kgin respondeu ao tópico de Eli Almeida em Programação - iniciantes
Eu acho que você deveria usar registros, veja nesse trecho do enunciado então nessa parte do seu código Var nomesProdutos : vetor [1..2] de caractere precosProdutos : vetor [1..2] de real estoqueProdutos : vetor [1..2] de inteiro produtosNaoCadastrados : logico Deveria ser algo assim const QUANTIDADE_MAXIMA_PRODUTOS = 100 tipo t_produto = registro nome:caractere preco:real estoque:inteiro fimRegistro integer = inteiro var produtos: vetor [1..QUANTIDADE_MAXIMA_PRODUTOS] de t_produto quantidade_produtos_cadastrados:inteiro isso é um recurso pouco documentado do visualG, então eu sugiro você ler esse livro de pascal para entender melhor o funcionamento (pagina 105 - Registros). -
VisualG É possível definir o tamanho do vetor utilizando constante em portugol?
kgin respondeu ao tópico de Eli Almeida em Programação - iniciantes
Não porque você tem que especificar qual é a primeira posição do vetor, mas essa lógica é valida em C e C++ pelo fato da primeira posição do vetor ser sempre a posição "0". exemplo em C #include <stdio.h> #define TAMANHO_STR 30 enum tipos_frutas { TF_ABACAXI = 0, TF_BANANA, TF_CEREJA, TF_DAMASCO, TF_EMBUABA, TF_QUANTIDADE_FRUTAS }; int main(void) { char buffer[256]; /* Utilizado para pegar a entrada padrão! */ int contador; /* Declara e inicia a matriz */ char nome_frutas[TF_QUANTIDADE_FRUTAS][TAMANHO_STR] = { "Abacaxi", "Banana", "Cereja", "Damasco", "Embuaba" }; /* Mostra o nome das frutas */ for (contador = 0; contador < TF_QUANTIDADE_FRUTAS; contador++) { printf("[%i]-%s\n", contador, nome_frutas[contador]); } /* Salta uma linha */ printf("\n"); /* Mostra a primeira e a ultima fruta */ printf("A primeira fruta e %s\n", nome_frutas[TF_ABACAXI]); printf("A ultima fruta e %s\n", nome_frutas[TF_EMBUABA]); /* Pausa o programa */ printf("Pressione enter para continuar!\n"); fgets(buffer, 256, stdin); return(0); } Experimente online! Você poderia contornar isso declarando a primeira posição do vetor e a ultima. Exemplo Algoritmo "Tipos_de_fruta" const QF_INICIO = 1 QF_FIM = 5 var nome_frutas: vetor [QF_INICIO..QF_FIM] de caractere contador:inteiro inicio // Inicia o vetor! nome_frutas[1] <- "Abacaxi" nome_frutas[2] <- "Banana" nome_frutas[3] <- "Cereja" nome_frutas[4] <- "Damasco" nome_frutas[5] <- "Embauba" // Mostra o nome das frutas limpaTela escreval("Nomes das frutas no sistema!") para contador de QF_INICIO ate QF_FIM faca escreval("[", contador, "]-", nome_frutas[contador]) fimPara fimAlgoritmo Em pascal (a linguagem pai do visualG) isso é uma declaração bem útil, mas no visualG não tem muito sentido fazer isso pelo fato da linguagem ser bem mais limitada.
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