
kgin
Membro Pleno-
Posts
386 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que kgin postou
-
VisualG Nota fiscal na tela final
kgin respondeu ao tópico de Marlon Gramacho em Programação - iniciantes
Você pode fazer com vetores algoritmo "Padaria" const MAXIMO_PRODUTOS = 10 tipo tproduto=registro nome:caractere codigo:inteiro valor:real fimRegistro var produtos:vetor [1..MAXIMO_PRODUTOS] de tproduto pedidos:vetor [1..MAXIMO_PRODUTOS] de inteiro deveContinuarPerguntando:logico clienteConsumiuMais:caractere valor_total:real contador:inteiro codigo, quantidade, n_produtos:inteiro procedimento inicia_produtos inicio produtos[1].nome <- "Pão de queijo" produtos[1].codigo <- 100 produtos[1].valor <- 5.20 produtos[2].nome <- "Bauru simples" produtos[2].codigo <- 101 produtos[2].valor <- 7.30 produtos[3].nome <- "Quibe" produtos[3].codigo <- 102 produtos[3].valor <- 6.50 produtos[4].nome <- "Coxinha de frango" produtos[4].codigo <- 103 produtos[4].valor <- 6.70 produtos[5].nome <- "Torta de Frango (fatia)" produtos[5].codigo <- 104 produtos[5].valor <- 11.10 produtos[6].nome <- "Empada de bacalha" //WTF -_- produtos[6].codigo <- 105 produtos[6].valor <- 9.50 produtos[7].nome <- "Pão delícia" produtos[7].codigo <- 106 produtos[7].valor <- 5.80 produtos[8].nome <- "Esfirra" produtos[8].codigo <- 107 produtos[8].valor <- 8.40 produtos[9].nome <- "Rissole de queijo" produtos[9].codigo <- 108 produtos[9].valor <- 10.60 produtos[10].nome <- "Croquete" produtos[10].codigo <- 109 produtos[10].valor <- 9.10 fimProcedimento procedimento zera_produtos var contador:inteiro inicio para contador de 1 ate MAXIMO_PRODUTOS faca pedidos[contador] <- 0 fimPara fimProcedimento funcao checa_codigo(codigo:inteiro):logico var contador:inteiro inicio retorne falso para contador de 1 ate MAXIMO_PRODUTOS faca se codigo = produtos[contador].codigo entao retorne verdadeiro interrompa fimSe fimPara fimFuncao funcao posicao_codigo(codigo:inteiro):inteiro var contador:inteiro inicio para contador de 1 ate MAXIMO_PRODUTOS faca se codigo = produtos[contador].codigo entao retorne contador interrompa fimSe fimPara fimFuncao procedimento barra_s(tamanho:inteiro; adorno:caractere) var contador:inteiro inicio para contador de 1 ate tamanho faca escreva(adorno) fimPara escreval fimProcedimento procedimento faz_pausa var tmp:caractere inicio escreval("Pressione enter para continuar.") leia(tmp) fimProcedimento inicio // Inicia todos os produtos inicia_produtos deveContinuarPerguntando <- verdadeiro // Zera a lista de pedidos zera_produtos n_produtos <- 0 valor_total <- 0 repita barra_s(80, "_") escreval(" Delicatessen Veneza") barra_s(80, "_") escreval escreval(" Olá, seja Bem Vindo a Delicatessen Veneza") escreval(" O que vamos consumir hoje?") barra_s(80, "_") escreval repita escreva("Digite o codigo de um salgado que o cliente consumiu: ") leia(codigo) se checa_codigo(codigo) = falso entao escreval("Codigo invalido") fimSe ate não(checa_codigo(codigo) = falso) escreva("Digite a quantidade desse salgado que o cliente consumiu: ") leia(quantidade) // Coloca na lista de pedidos pedidos[posicao_codigo(codigo)] <- pedidos[posicao_codigo(codigo)]+quantidade escreval("O cliente consumiu mais algum salgado? Digite S(SIM) OU N(NÃO)") leia(clienteConsumiuMais) se clienteConsumiuMais = "S" entao deveContinuarPerguntando := verdadeiro seNao deveContinuarPerguntando := falso fimse ate não deveContinuarPerguntando para contador de 1 ate MAXIMO_PRODUTOS faca se pedidos[contador] > 0 entao escreval(produtos[contador].nome, "-", pedidos[contador], "*", produtos[contador].valor:2:2, "=", pedidos[contador]*produtos[contador].valor:2:2) n_produtos <- n_produtos+1 valor_total <- valor_total+(produtos[contador].valor*pedidos[contador]) fimSe fimPara escreval("Total de produtos pedidos ", n_produtos) escreval("O cliente deve pagar: R$", valor_total:6:2) escreval(" Obrigado volte sempre!") fimAlgoritmo -
@luquinhas44 Eu acho que você não está usando a versão do portugol studio de pc, é sim a versão online. eu recomendo você baixar a versão para o seu sistema operacional e ver a ajuda do programa que é bem mais completa do que a versão online. Eu declarei um vetor com a constante MAX_CARTEIRAS, quando o interpretador passar pela constante MAX_CARTEIRAS ele vai substituir pelo numero 4327. Veja a parte sobre vetores e constantes da ajuda do portugol ide. Veja bem, se eu fizesse assim enquanto (não(numero_atual >= 1 e numero_atual <= MAX_CARTEIRAS)) seria bem mais difícil de entender do que enquanto (numero_atual < 1 ou numero_atual > MAX_CARTEIRAS) É uma regra básica da proposição na simplificação de expressões lógicas para satisfazer uma condição lógica, porque o comando enquanto precisa que a expressão seja verdadeira para repetir os comandos. Leia a documentação do portugol studio, lá tem todas as respostas.
-
@Gabriel213412 Não tá ruim, só está meio desorganizado. no caso de editar só uma linha. você pode fazer outro arquivo com a linha nova já editada pegando tudo do arquivo anterior. depois você apaga o arquivo velho é renomeia o arquivo novo para o nome do arquivo velho. Se você tiver replit entra na sala https://replit.com/join/reyknuezzm-kgin
-
@Gabriel213412 Poste o enunciado e utilize o botão code para postar o código. Já pensou em refazer novamente e tentar fazer de outro modo?
-
Delphi Calculadora em Delphi - Melhoria e sugestões?
kgin respondeu ao tópico de Pedro Henrique P. F. em Programação - outros
Delphi e o nome do programa. a linguagem utilizada e o object pascal até a versão 10 você poderia usar todas as extensões do pascal clássico (compatível com o turbo pascal de certo modo), Mas a partir do Alexandria não é mais possível utilizar todas as extensões do pascal. mas ainda e pascal! -
@VNtox Recomendo você procurar um livro chamado C completo e total. O autor do livro disponibilizou o livro gratuitamente na internet. Veja os seguintes tópicos. Matrizes e string. pagina 92 ponteiros. pagina 113 Estruturas, Uniões, enumerações e tipos definidos pelo usuário. pagina 167 procure por uma coisa chamada zlib que vai te ajudar também. Depois de estudar tudo isso, volte e de uma olhada no meu algoritmo /* Venda de ingressos */ #include <stdio.h> #include <string.h> /* Estados da poltrona */ #define POLTRONA_VAZIA 0 #define POLTRONA_OCUPADA 1 /* Quantidade de linhas e colunas do cinema */ #define Q_LINHAS_POLTRONAS 4 #define Q_COLUNAS_POLTRONAS 5 /* Tamanho maxímo do nome */ #define T_NOME 100 #define T_BUFFER 250 struct sessão { char nome[T_NOME]; int poltronas[Q_LINHAS_POLTRONAS][Q_COLUNAS_POLTRONAS]; }; void inicia_sessao(struct sessão *atual, char *nome) { int linhas, colunas; /* Coloca o nome da sessão */ strcpy(atual->nome, nome); /* Inicia as poltronas */ for (linhas = 0; linhas < Q_LINHAS_POLTRONAS; linhas++) { for (colunas = 0; colunas < Q_COLUNAS_POLTRONAS; colunas++) { atual->poltronas[linhas][colunas] = POLTRONA_VAZIA; } } } void mostra_sessao(struct sessão *atual) { int linhas, colunas; printf("\tNome da sessão:%s\n", atual->nome); printf(" |"); for (colunas = 0; colunas < Q_COLUNAS_POLTRONAS; colunas++) { printf("%i", colunas+1); if (colunas < Q_COLUNAS_POLTRONAS-1) { printf(" |"); } } printf("\n"); for (linhas = 0; linhas < Q_LINHAS_POLTRONAS; linhas++) { printf("%i |", linhas+1); for (colunas = 0; colunas < Q_COLUNAS_POLTRONAS; colunas++) { switch (atual->poltronas[linhas][colunas]) { case POLTRONA_VAZIA: printf("V"); break; case POLTRONA_OCUPADA: printf("O"); break; } if (colunas < Q_COLUNAS_POLTRONAS-1) { printf(" |"); } } printf("\n"); } printf("V = Vazio\nO = Ocupado\n"); } int main(void) { struct sessão filme; char buffer[T_BUFFER]; inicia_sessao(&filme, "Blame!"); do { int linha, coluna; mostra_sessao(&filme); printf("Digite a linha da poltrona desejada:"); fgets(buffer, T_BUFFER, stdin); sscanf(buffer, "%i", &linha); printf("Digite a coluna da poltrona desejada:"); fgets(buffer, T_BUFFER, stdin); sscanf(buffer, "%i", &coluna); if (linha-1 >= 0 && linha-1 < Q_LINHAS_POLTRONAS && coluna-1 >= 0 && coluna-1 < Q_COLUNAS_POLTRONAS) { if (filme.poltronas[linha-1][coluna-1] == POLTRONA_VAZIA) { filme.poltronas[linha-1][coluna-1] = POLTRONA_OCUPADA; printf("A poltrona foi ocupada!\n"); } else { printf("A poltrona ja esta ocupada!\n"); } } else { printf("poltrona invalida!\n"); } printf("Digite S para sair ou C para continuar\n"); fgets(buffer, T_BUFFER, stdin); } while (buffer[0] == 'C' || buffer[0] == 'c'); return(0); } Veja a relação dos dados e das poltronas com essa planilha poltronas.xlsx Depois tente entender como tudo foi implementado. Versão do código online!
-
Não irei corrigir o seu algoritmo, mas, sim apontar o erro. programa { funcao inicio() { inteiro variaveis[7] faca { escreva ("\nDigite o numero da carteira de motorista: ") leia (variaveis[4]) escreva ("Digite o numero de multas: ") leia (variaveis[1]) escreva ("Digite o valor da multa: ") leia (variaveis[2]) variaveis[5] = variaveis[1] variaveis[6] = variaveis[4] se (variaveis[5] > variaveis[4]){ escreva ("O maior numero de multas é para a carteira: ", variaveis[5]) se (variaveis[6] > variaveis[1]) escreva ("O maior numero de multas é: ", variaveis[6]) } /* Falta a chave para fechar o bloco faca{..}enquanto() "}" */ enquanto (variaveis[0] > 0) /* Falta a chave "}" para fechar o bloco da função */ } Recomendo uma estratégia melhor para fazer o algoritmo. programa { inclua biblioteca Matematica // Quantidade maxima de carteiras de motorista const inteiro MAX_CARTEIRAS = 4327 funcao inicio() { // Salva o numero da carteira de motorista inteiro numero_carteira[MAX_CARTEIRAS] // Valor de debitos por carteira real multas_carteira[MAX_CARTEIRAS] // Quantindade de multas e carteiras pegas inteiro q_cadastrados = 0 caractere opcao faca { // Numero atual pego da carteira de motorista inteiro numero_atual = 0 // Quantidade de multas a serem pegas inteiro q_numero_multas // Multa atual real multa_atual = 0.0 // Soma de multas de cada motorista real soma_multas = 0.0 // Pega o numero da carteira de motorista // -O número da carteira de motorista (de 1 a 4327) faca { escreva("Digite o numero da carteira:") leia(numero_atual) limpa() se (numero_atual < 1 ou numero_atual > MAX_CARTEIRAS) { escreva("O numero da carteira não pode ser menor que 1 ou maior que ", MAX_CARTEIRAS,"\n") } } enquanto (numero_atual < 1 ou numero_atual > MAX_CARTEIRAS) // Salva o numero da carteira numero_carteira[q_cadastrados] = numero_atual escreva("Digite o numero de multas a serem pegas:") leia(q_numero_multas) limpa() // Pega todas as multas para (inteiro contador = 0; contador < q_numero_multas; contador++) { escreva("Digite o valor da multa [", contador+1, "]:") leia(multa_atual) limpa() soma_multas = soma_multas+multa_atual } // Salva a soma das multas da carteira atual multas_carteira[q_cadastrados] = soma_multas // Incrementa a quantidade de carteiras pegas q_cadastrados = q_cadastrados+1 // Pergunta se quer cadastra outra carteira escreva("Deseja cadastrar outra carteira?\n") escreva("S/N:") leia(opcao) } enquanto (opcao == 'S' ou opcao == 's') // Mostra a soma de todas as multas de cada carteira para (inteiro contador = 0; contador < q_cadastrados; contador++) { escreva("Divida da carteira ", numero_carteira[contador], " e ", Matematica.arredondar(multas_carteira[contador], 2), "\n") } } } É apenas um esboço do algoritmo!
-
VisualG Não faço ideia de como desenvolver esse código
kgin respondeu ao tópico de Giovanna Gabrielle em Programação - iniciantes
Recomendo você declarar dessa maneira algoritmo "aprovados" const Q_TURMAS = 4 Q_ALUNOS = 25 var notas_alunos:vetor [1..Q_TURMAS, 1..Q_ALUNOS] de real nomes_alunos:vetor [1..Q_TURMAS, 1..Q_ALUNOS] de caractere maiores_turma:vetor [1..Q_TURMAS] de inteiro turmas, alunos: inteiro maior_nota:real posicao_nota:inteiro nomes:vetor [1..5] de caractere sob_nomes:vetor [1..5] de caractere inicio // Inicia os nomes nomes[1] <- "Jose" nomes[2] <- "Maria" nomes[3] <- "Michellin" nomes[4] <- "Ronaldo" nomes[5] <- "Ivanildo" sob_nomes[1] <- " Machado" sob_nomes[2] <- " Do Allamo" sob_nomes[3] <- " Santana" sob_nomes[4] <- " Pinto" sob_nomes[5] <- " Soares" // Pega os nomes e as notas para turmas de 1 ate Q_TURMAS faca escreval("Digite os nomes e as notas dos alunos da turma ", carac(asc("A")+(turmas-1))) para alunos de 1 ate Q_ALUNOS faca escreval("Digite o nome do aluno [", alunos, "]") //leia(nomes_alunos[turmas, alunos]) nomes_alunos[turmas, alunos] <- nomes[randi(5)+1]+sob_nomes[randi(5)+1] escreval(nomes_alunos[turmas, alunos]) escreval("Digite a nota do aluno") //leia(notas_alunos[turmas, alunos]) notas_alunos[turmas, alunos] <- (rand*9)+1 escreval(notas_alunos[turmas, alunos]:2:2) fimPara fimPara para turmas de 1 ate Q_TURMAS faca maior_nota <- 0.0 para alunos de 1 ate Q_ALUNOS faca // Checa o aluno com a maior nota se maior_nota < notas_alunos[turmas, alunos] entao maior_nota <- notas_alunos[turmas, alunos] posicao_nota <- alunos fimSe fimPara maiores_turma[turmas] <- posicao_nota fimPara escreval("Maiores notas de cada turma") para turmas de 1 ate Q_TURMAS faca escreval("Maior nota da turma ", carac(asc("A")+(turmas-1))) escreval("Aluno ", nomes_alunos[turmas, maiores_turma[turmas]]) escreval("Nota ", notas_alunos[turmas, maiores_turma[turmas]]:2:2) fimPara fimAlgoritmo -
@Vitor.MP4 Recomendo você parar de usar fflush(). Eu dei uma organizada e implementei uma maneira de fazer a busca. De uma olhada #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #define T_BUFFER 512 #define T_NOME 80 #define T_CPF 16 #define T_VACINA 100 #define T_DATA 15 #define Q_MAXIMO_VACINADOS 200 struct registro_vacinado { char nome[T_NOME]; char cpf[T_CPF]; char vacina[T_VACINA]; char data[T_DATA]; int lote; }; void msg_pausa(char *msg) { char buffer[T_BUFFER]; if (msg != NULL) { printf("%s\n", msg); } printf("Pressione enter para continuar!\n"); fgets(buffer, T_BUFFER, stdin); } void barra_simples(int tamanho, char chr) { int contador; for (contador = 0; contador < tamanho; contador++) putchar(chr); putchar('\n'); } int menu_principal(void) { char buffer[T_BUFFER] = {'\0'}; int opcao; do { barra_simples(20, '='); printf("1-Registrar Vacinado.\n"); printf("2-Listar Aplicacoes.\n"); printf("3-Buscar CPF.\n"); printf("4-Sair.\n"); barra_simples(20, '='); fgets(buffer, T_BUFFER, stdin); sscanf(buffer, "%i", &opcao); if (opcao < 1 || opcao > 4) { printf("Opcao invalida!\n"); } } while (opcao < 1 || opcao > 4); return(opcao); } int main(void) { struct registro_vacinado vacinados[Q_MAXIMO_VACINADOS]; int q_registros = 0, opcao = 0, contador, n_busca = 0; char buffer[T_BUFFER]; do { opcao = menu_principal(); switch (opcao) { case 1: do { struct registro_vacinado tmp; do { printf("Insira seu nome:"); fgets(buffer, T_BUFFER, stdin); buffer[strlen(buffer)-1] = '\0'; strcpy(tmp.nome, buffer); printf("Insira seu CPF sem tracos ou pontos:"); fgets(buffer, T_BUFFER, stdin); buffer[strlen(buffer)-1] = '\0'; strcpy(tmp.cpf, buffer); printf("Insira nome da Vacina:"); fgets(buffer, T_BUFFER, stdin); buffer[strlen(buffer)-1] = '\0'; strcpy(tmp.vacina, buffer); printf("Insira a Data:"); fgets(buffer, T_BUFFER, stdin); buffer[strlen(buffer)-1] = '\0'; strcpy(tmp.data, buffer); printf("Insira numero do lote:"); fgets(buffer, T_BUFFER, stdin); sscanf(buffer, "%i", &tmp.lote); barra_simples(40, '-'); printf("Nome:%s\n", tmp.nome); printf("CPF:%s\n", tmp.cpf); printf("Nome da vacina:%s\n", tmp.vacina); printf("Data da vacinacao:%s\n", tmp.data); printf("Numero do lote:%i\n", tmp.lote); barra_simples(40, '-'); printf("As informações estão corretas?\n1\\Sim ou 2\\não\n"); fgets(buffer, T_BUFFER, stdin); sscanf(buffer, "%i", &opcao); if (opcao == 2) { printf("Insira as informações novamente!\n"); } } while (opcao == 2); printf("Salvar o cadastro?\n1\\Sim 2\\não\n"); fgets(buffer, T_BUFFER, stdin); sscanf(buffer, "%i", &opcao); if (opcao == 1) { vacinados[q_registros] = tmp; q_registros++; } printf("Fazer outro cadastro?\n1\\Sim 2\\não\n"); fgets(buffer, T_BUFFER, stdin); sscanf(buffer, "%i", &opcao); } while (opcao == 1); opcao = 0; break; case 2: for (contador = 0; contador < q_registros; contador++) { printf("Exibindo cadastros\n"); printf("Nome:%s\n", vacinados[contador].nome); printf("CPF:%s\n", vacinados[contador].cpf); printf("Nome da Vacina:%s\n", vacinados[contador].vacina); printf("Data:%s\n", vacinados[contador].data); printf("Numero do lote:%i\n", vacinados[contador].lote); msg_pausa(NULL); } break; case 3: printf("Digite o cpf para ser encontrado:"); fgets(buffer, T_BUFFER, stdin); buffer[strlen(buffer)-1] = '\0'; for (contador = 0; contador < q_registros; contador++) { if (strcmp(vacinados[contador].cpf, buffer) == 0) { n_busca = contador; break; } } if (contador < q_registros) { printf("Registro de vacina encontrado!\n"); printf("O cpf %s e da pessoa %s\n", vacinados[n_busca].cpf, vacinados[n_busca].nome); } else { printf("Registro não encontrado!\n"); } msg_pausa(NULL); break; case 4: msg_pausa("O programa sera finalizado!"); } } while (opcao != 4); return(0); } Versão online!
-
#include <stdio.h> #include <ctype.h> #define Q_VOGAIS 5 #define TAM_FRASE 512 int main(void) { const char VOGAIS[Q_VOGAIS] = {'A', 'E', 'I', 'O', 'U'}; char frase[TAM_FRASE] = {'\0'}; int contador1, contador2, q_vogais_frase = 0; printf("Digite uma frase:"); fgets(frase, TAM_FRASE, stdin); for (contador1 = 0; frase[contador1]&&contador1 < TAM_FRASE; contador1++) { for (contador2 = 0; contador2 < Q_VOGAIS; contador2++) { if (toupper(frase[contador1]) == VOGAIS[contador2]) { q_vogais_frase++; break; } } } printf("A frase %s tem %i vogais\n", frase, q_vogais_frase); return(0); }
-
VisualG Adicionar um menu de alteração de Dados no VisualG!!
kgin respondeu ao tópico de Nicolas Stevan em Programação - iniciantes
@Nicolas Stevan tá meio complicado o seu algoritmo, e ele também tá com um erro que eu não estou conseguindo visualizar uma solução. Erro apresentado Poste o código com o botão <> code no fórum. ter que ficar copiando do fórum muda a formatação do código. -
VisualG Adicionar um menu de alteração de Dados no VisualG!!
kgin respondeu ao tópico de Nicolas Stevan em Programação - iniciantes
@Nicolas Stevan Poderia postar o enunciado? -
@DaviKS Poste o enunciado e de mais detalhes do que você está tentando fazer
-
Visual Basic preciso fazer esse trabalho em visualg, me ajudemm
kgin respondeu ao tópico de Mariana Coradini em Programação - outros
@Mariana Coradini poste o que você já fez, que talvez nós podemos ajudar. -
C++ Como eu faço um menu de configuração em C++
kgin respondeu ao tópico de Erison Cleyton em C/C#/C++
@Erison Cleyton Não sei o seu nível de C++, mas eu recomendaria você tomar outro rumo. Usar o visual studio seria um bom primeiro passo, com ele você pode fazer interfaces gráficas mais facilmente. Mas se você optar por usar a api do windows eu recomendo checar esse tutorial antes. https://zetcode.com/gui/winapi/ -
Portugol não consigo resolver este exercicio
kgin respondeu ao tópico de luquinhas44 em Programação - iniciantes
@luquinhas44 Veja que você iniciou a variável prod com 0, e zero vezes alguma coisa é? Se a regra não mudou creio eu que seja zero. Eu resolvi o algoritmo do meu jeito que eu achava certo, então de uma olhada. programa { funcao inicio() { inteiro entrada, soma_pares = 0, produto_impares = 0 // Faz enquanto for maior que 0 faca { // Pega a entrada do usuario escreva("Digite um numero negativo para encerrar o programa\n") escreva("Digite um numero positivo:") leia(entrada) limpa() // Se o numero for positivo então faça! se (entrada >= 0) { // Testa se o numro é par se (entrada%2 == 0) { soma_pares = soma_pares+entrada } senao { // Testa se há algum valor no produto dos numeros impares se (produto_impares == 0) { produto_impares = entrada } senao { produto_impares = produto_impares*entrada } } } } enquanto (entrada >= 0) // Mostra o resultado escreva("A soma dos numeros pares e ", soma_pares, "\n") escreva("E o produto dos numeros impares e ", produto_impares ,"\n") } } -
Bat Criar uma pasta na área de trabalho para copiar arquivos
kgin respondeu ao tópico de emersonpaulino em Programação - outros
Ninguém faz porque fica muito lento por causa dos cálculos necessários (interpolação linear) para mostrar a barra. e em batch fica tudo mais lento do que o de costume, experimente esse que eu fiz só para mostrar a barra para você ver a velocidade. @echo off call :_main goto :eof :: Função principal :_main :: laço de repetição de 0 a 60 for /L %%a in (0,1,60) do ( :: Chama a função de barra call :barra_simples #,%%a, Copiando! ) pause exit /b 0 :: Função de barra simples :: Para usar passe o mostrador da barra no primeiro parâmetro depois o tamanho da barra e por ultimo uma mensagem :barra_simples :: A variável barra vai guardar o conteúdo da barra set barra= :: Utilizado no loop set /a contador=0 :_loopBarra :: Monta a barra de progresso set "barra=%barra%%~1" if %contador% LSS %~2 ( set /a contador+=1 goto :_loopBarra ) :: Mostra a barra! echo [%barra%]%~3 exit /b 0 Se eu achar a versão final eu posto depois. Se você quiser tentar fazer não e tão complicado assim, é só seguir os passos abaixo Declare o tamanho da barra de progresso com um valor fixo. Conte quantos arquivos tem na pasta que você vai copia-los. Declare uma variável iniciada com 0 para contar quantos arquivos você copiou. Copie os arquivos e vá contando quantidade de arquivos copiados. Interpole os valores da variável que você está usando para contar os arquivos com a quantidade de arquivos e o tamanho da barra. Passe o valor interpolado para a barra. Repita o passo 4 em diante. Eu estou falando de interpolar valores, mas eu acho que o nome da equação no brasil e equação de 2 grau. Da uma pesquisadinha aí Ou qualquer coisa @ricardo_br tá aí pra salva a pátria. -
@Anderson001 Perceba que você declarou a variável aux na função dequeue e tentou usar na função main. A variável está fora do escopo de main. declare a variável como global ou reorganize o seu código
-
VisualG um estoque de 10 produtos, e ao longo das vendas vão sendo reduzidos
kgin respondeu ao tópico de paulo154 em Programação - iniciantes
@paulo154 Eu recomendaria você escrever mais entorno dos dados. Exemplo Algoritmo "Estoque" const QUANTIDADE_PRODUTOS = 5 QUANTIDADE_PRODUTOS_ESTOQUE = 10 var nome_produtos:vetor[1..QUANTIDADE_PRODUTOS] de caractere valor_produtos:vetor[1..QUANTIDADE_PRODUTOS] de real estoque_produtos:vetor[1..QUANTIDADE_PRODUTOS] de inteiro opcao_menu:inteiro contador:inteiro enter:caractere procedimento inicia_produtos var contador:inteiro inicio //1. O algoritmo deve contemplar o armazenamento de estoque para 5 produtos //: água, refrigerante, vinho, suco e cerveja, podendo estes serem os nomes //das variáveis a serem declaradas para serem mais intuitivas. // Inicia o nome de cada produto nome_produtos[1] <- "Água" nome_produtos[2] <- "Refrigerante" nome_produtos[3] <- "Vinho" nome_produtos[4] <- "Suco" nome_produtos[5] <- "Cerveja" // Inicia o preço de cada produto valor_produtos[1] <- 1.50 valor_produtos[2] <- 5.50 valor_produtos[3] <- 22.70 valor_produtos[4] <- 3.30 valor_produtos[5] <- 1.20 // 5. Todos os produtos iniciam o algoritmo com um estoque de 10 produtos // Inicia a quantidade de cada produto no estoque para contador de 1 ate QUANTIDADE_PRODUTOS faca estoque_produtos[contador] <- QUANTIDADE_PRODUTOS_ESTOQUE fimPara fimProcedimento inicio // Chama a função para iniciar os produtos inicia_produtos // Loop do menu principal repita //4. A escolha do produto deve ser feita a partir de um menu de opções //a ser exibido ao usuário que escolhe a opção desejada para em seguida, //informar a quantidade desejada. limpaTela // Apaga a tela atual escreval("Qual bebida deseja?") // Mostra as bebidas para contador de 1 ate QUANTIDADE_PRODUTOS faca escreval(contador, "-", nome_produtos[contador]) fimPara escreval(QUANTIDADE_PRODUTOS+1, "-Para Sair") leia(opcao_menu) se (opcao_menu >= 1) e (opcao_menu <= QUANTIDADE_PRODUTOS) entao escreval("Nome|Quantidade|Preço") escreval(nome_produtos[opcao_menu], "-", estoque_produtos[opcao_menu] , "-", valor_produtos[opcao_menu]) seNao se opcao_menu = QUANTIDADE_PRODUTOS+1 entao escreval("O programa será encerrado!") seNao escreval("Opção inválida!") fimSe fimSe escreval("Pressione enter para continuar") leia(enter) ate opcao_menu = QUANTIDADE_PRODUTOS+1 fimAlgoritmo -
VisualG Como contabilizar caracteres no VisualG?
kgin respondeu ao tópico de SAUKi em Programação - iniciantes
@Samuel G.S Pense um pouco no problema antes de tentar implementar. Algoritmo "Seletor de pessoas" Var sexo,opcao:caractere cabelo,idade:inteiro q_homens_castanhos:inteiro Inicio q_homens_castanhos <- 0 // Inicia a variavel repita escreval("=======================") escreval(" SELETOR DE PESSOAS ") escreval("=======================") escreva("Qual o sexo? [M/F] ") leia(sexo) escreva("Qual a idade? ") leia(idade) escreval("Qual a cor do cabelo? ") escreval("----------------------") escreval("[1] Preto") escreval("[2] Castanho") escreval("[3] Loiro") escreval("[4] Ruivo") leia(cabelo) escolha cabelo caso 2 se (sexo = "M") ou (sexo = "m") entao se idade > 18 entao q_homens_castanhos <- q_homens_castanhos+1 fimSe fimSe fimescolha escreva("Quer continuar? [S/N]") leia(opcao) ate (opcao = "n") ou (opcao = "N") escreval("A quantidade de homens acima de 18 com o cabelo castanho e:", q_homens_castanhos) Fimalgoritmo -
Excel Utilizando excel para declarar matrizes em C
kgin respondeu ao tópico de Gustavo Feijo em Microsoft Office e similares
@Gustavo Feijo Já pensou em exportar como CSV (formato de arquivo no excel) e criar uma matriz com o conteúdo do arquivo? -
Excel Utilizando excel para declarar matrizes em C
kgin respondeu ao tópico de Gustavo Feijo em Microsoft Office e similares
@Gustavo Feijo você quer transformar essa planilha do excel em uma matriz em C? -
@Everaldo P. Afonso Mas no que você está tendo dificuldade? Poste o compilador que você está usando. no fórum é contra as regras dar resposta pronta.
-
Poste o que você já fez, e em que programa está fazendo.
-
@Silvana Roden Seria melhor você tratar tudo isso como estados do seu programa. No caso você retornaria para a função principal qual é o estado o seu programa está nesse momento. Exemplo #include <stdio.h> #include <stdlib.h> #define Q_LINHAS 3 #define Q_COLUNAS 3 #define Q_JOGADAS_VITORIA 3 enum estados_jogo { NINGUEM_GANHOU = 0, VITORIA_CRUZ, VITORIA_CIRCULO, DEU_VELHA, Q_ESTADOS_JOGO }; enum objetos_jogo { OBJ_VAZIO = 0, OBJ_CRUZ, OBJ_CIRCULO, OBJ_QUANTIDADE }; int ganhou=0; void inicializaTabuleiro(enum objetos_jogo tabuleiro[Q_LINHAS][Q_COLUNAS]) { unsigned short int linhas, colunas; for (linhas = 0; linhas < Q_LINHAS; linhas++) { for (colunas = 0; colunas < Q_COLUNAS; colunas++) { tabuleiro[linhas][colunas] = OBJ_VAZIO; } } } //verificação do ganhador: 'X', 'O' ou deu velha, chamando uma função com o nome 'confereVencedor' no loop do jogo; enum estados_jogo confereVencedor(enum objetos_jogo tabuleiro[Q_LINHAS][Q_COLUNAS]) { enum objetos_jogo objeto_atual; short int linhas, colunas, contador = 0; /* Checa linhas */ for (linhas = 0; linhas < Q_LINHAS; linhas++) { objeto_atual = tabuleiro[linhas][0]; contador = 1; for (colunas = 1; colunas < Q_COLUNAS; colunas++) { if (tabuleiro[linhas][colunas] == objeto_atual) { contador++; } } if (contador == Q_JOGADAS_VITORIA && objeto_atual != OBJ_VAZIO) { if (objeto_atual == OBJ_CRUZ) { return(VITORIA_CRUZ); } else if (objeto_atual == OBJ_CIRCULO) { return(VITORIA_CIRCULO); } } } /* Checa colunas */ for (colunas = 0; colunas < Q_COLUNAS; colunas++) { objeto_atual = tabuleiro[0][colunas]; contador = 1; for (linhas = 1; linhas < Q_LINHAS; linhas++) { if (tabuleiro[linhas][colunas] == objeto_atual) { contador++; } } if (contador == Q_JOGADAS_VITORIA && objeto_atual != OBJ_VAZIO) { if (objeto_atual == OBJ_CRUZ) { return(VITORIA_CRUZ); } else if (objeto_atual == OBJ_CIRCULO) { return(VITORIA_CIRCULO); } } } /* Checa diagonais */ contador = 1; objeto_atual = tabuleiro[0][0]; for (colunas = 1, linhas = 1; colunas < Q_COLUNAS && linhas < Q_LINHAS; colunas++, linhas++) { if (objeto_atual == tabuleiro[linhas][colunas]) { contador++; } } if (contador == Q_JOGADAS_VITORIA && objeto_atual != OBJ_VAZIO) { if (objeto_atual == OBJ_CRUZ) { return(VITORIA_CRUZ); } else if (objeto_atual == OBJ_CIRCULO) { return(VITORIA_CIRCULO); } } contador = 1; objeto_atual = tabuleiro[0][Q_COLUNAS-1]; for (linhas = 1, colunas = Q_COLUNAS-2; linhas < Q_LINHAS || colunas > 0; linhas++, colunas--) { if (objeto_atual == tabuleiro[linhas][colunas]) { contador++; } } if (contador == Q_JOGADAS_VITORIA && objeto_atual != OBJ_VAZIO) { if (objeto_atual == OBJ_CRUZ) { return(VITORIA_CRUZ); } else if (objeto_atual == OBJ_CIRCULO) { return(VITORIA_CIRCULO); } } contador = 0; for (linhas = 0; linhas < Q_LINHAS; linhas++) { for (colunas = 0; colunas < Q_COLUNAS; colunas++) { if (tabuleiro[linhas][colunas] != OBJ_VAZIO) { contador++; } } } if (contador == Q_LINHAS*Q_COLUNAS) { return(DEU_VELHA); } return(NINGUEM_GANHOU); } void mostraTabuleiro(enum objetos_jogo tabuleiro[Q_LINHAS][Q_COLUNAS]) { unsigned short int linhas, colunas; printf("\n\n\t"); for (colunas = 0; colunas < Q_COLUNAS; colunas++) { printf("%hu ", colunas); } printf("\n"); for (linhas = 0; linhas < Q_LINHAS; linhas++) { printf("\t"); for (colunas = 0; colunas < Q_COLUNAS; colunas++) { switch (tabuleiro[linhas][colunas]) { case OBJ_VAZIO: printf(" "); break; case OBJ_CRUZ: printf(" X "); break; case OBJ_CIRCULO: printf(" O "); break; } if (colunas < Q_COLUNAS-1) { printf("|"); } } printf(" %hu\n", linhas); } } int main(){ // variaveis int l=0; int c=0; int linha=0; int coluna=0; int jogador=0; int jogadas=0; int opcao=0; enum objetos_jogo tabuleiro[Q_LINHAS][Q_COLUNAS]; do{ jogador = 1; // como inicializar nossa estrutura de dados? inicializaTabuleiro(tabuleiro); /*for(l = 0; l < 3; l++){ for(c = 0; c < 3; c++){ jogo[l][c] = ' '; } }*/ while ( jogadas < 9){ // repete até alguém ganhar ou atingir 9 jogadas // imprimir jogo mostraTabuleiro(tabuleiro); /*printf("\n\n\t 0 1 2\n\n"); for(l = 0; l < 3; l++){ for(c = 0; c < 3; c++){ if(c == 0) printf("\t"); printf(" %c ", jogo[l][c]); if(c < 2) printf("|"); if(c == 2) printf(" %d", l); } if(l < 2) printf("\n\t-----------"); printf("\n"); } */ // ler coordenadas do{ printf("\nJOGADOR 1 = 0\nJOGADOR 2 = X\n"); printf("\nJOGADOR %d: Digite a linha: ", jogador); scanf("%d", &linha); printf("JOGADOR %d: Digite a coluna: ", jogador); scanf("%d", &coluna); }while(linha < 0 || linha > 2 || coluna < 0 || coluna > 2 || tabuleiro[linha][coluna] != OBJ_VAZIO); // salvar coordenadas if(jogador == 1){ tabuleiro[linha][coluna] = OBJ_CIRCULO; jogador++; } else{ tabuleiro[linha][coluna] = OBJ_CRUZ; jogador = 1; } jogadas++; switch (confereVencedor(tabuleiro)) { case VITORIA_CRUZ: printf("Vitoria do X\n"); break; case VITORIA_CIRCULO: printf("Vitoria do O\n"); break; case DEU_VELHA: printf("Deu velha\n"); break; } } }while(ganhou=0); return 0; }
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