
fabiosl
Membros-
Total de itens
6 -
Registro em
-
Última visita
Tudo que fabiosl postou
-
Ajuda Com Código Em Pascaç
pergunta respondeu ao fabiosl de fabiosl em Outras Linguagens de Programação
Olá pessoal. alguém poderia me dar uma mão com esse código. Faça um programa que receba como entrada uma lista de numeros positivos e negativos que se finaliza quando o numero 0 (zero) é inserido. como saída, ele deve dar a soma dos numeros positivos e dos numeros negaativos e soma das duas somas. solução (ate onde eu consegui fazer funcionar): Program contador; var i, a, b, c, d, e: integer; vet : array[0..1000] of integer; begin b:= 0; a:= 0; c:= 0; e:= 0; repeat writeln('Digite um numero: '); readln(; if (b <> 0) then begin vet[a]:= b; i:= i + 1; end; until (b = 0); for a := 0 to i do if (vet[a] > 0) then begin c:= c + vet[a]; end else if (vet[a] < 0) then begin d:= d + vet[a]; end; e:= c + d; writeln©; writeln(d); writeln(e); end. ele está meio mal organizado, porque eu totestando. ele está com os seguintes bugs: - eu não consegui fazer uma array que tenha um limite determinado pelo usuário (até que se digite 0), em c eu fiz tudo, mas não conheco quase nada em pascal. - as somas dos valores positivos e os negativos estão dando errado, não sei se é um erro na estrutura que percorre a array ou se é a estrutura da soma propriamente dita. Resumindo: gostaria que vocês me ajudassem a criar uma estrutura de array cujo tamanho seja determinado pelo usuário, conforme os valores que são inseridos pelo usuário. além disso, me ajudem com a soma dos valores inseriddos na array e a soma dos resultados. agradeço antecipadamente a todos. -
bom pessoal, estou tentando ajudar um amigo que esta começando a programar. ele esta usando o pascal. o problema é que eu fui meio doido e comecei (comecei há muito pouco tempo) direto no c e não entendo nada da sintaxe do pascal. o prgrama é bem símples. tem que criar um (ou mais) vetor com tamanho indefinido que recebe valores positivos e negativos. quando o valor zero é digitado o programa para de receber valores e faz a soma de todos os valores negativos e dos positivos, depois soma o resultado das duas somas. o comando da questão na íntegra é: Faça um programa que receba como entrada uma lista de numeros positivos e negativos que se finaliza quando o numero 0 (zero) é inserido. como saída, ele deve dar a soma dos numeros positivos e dos numeros negaativos e soma das duas somas. já criei uma ideia em C, mas não sei como transformar essa ideia em pascal, pra falar a verdade não sei nem se funciona (no c dá alguns bugs, ele compila mas dependendo da ordem que os numeros são inseridos da bug). a idéa é criar dois vetores (1 recebe os positivos e o outro recebe os negativos) com tamanho controlado por uma variável que é incrementada cada vez que um número é inserido. esses vetores estariam numa estrutura de controle do tipo: caso o numero inserido seja maior faça.. casose já menor faça... caso seja igual a zero termine e mostre as somas. também é necessário criar uma estrutur que vai percorrer o vetor para somar os numeros. se alguém puder passar um fonte que resolva o problema eu agradeço. me coloco também à disposição de vocês para auxilia-los. sou iniciante em programação, mas sou bem experiente em manutenção de micros. qualquer dúvida é só fala. desde já agradeço a todos que puderem ajudar.
-
no exemplo anterior era necessário informar a qtd de bois, o que foi abominado pelo professor (aqle fd...). apo´s um pouco de estudo consegui resolver esse problema. ai veio o problema do boi mais magro. depois de um pouco mais de estudo descobri que o problema estava na entrada dos valores para suas respectivas variaveis mais_gordo e mais_magro. o problema era que a variavel mais_magro só recebia o 1º valor inserido, dai quando o programa percorria o vetor para verificar o mais magro só havia o 1º peso inserido, dai ele mostrava o mais magro como sendo o 1º. o código correto ficou assim: #include <stdio.h> #include <stdlib.h> int main() { int cont, i=0; float *num_boi = NULL; float peso; float mais_gordo = 0; float mais_magro = 20000; num_boi = (float *)calloc(1, sizeof(float)); while(peso > 0){ printf("Digite o peso do %do BOI: ", (i+1)); scanf("%f", &peso); num_boi = peso; if(peso > 0 && peso > mais_gordo){ mais_gordo = peso;} else if (peso >0 && peso < mais_magro){ mais_magro = peso;} i++; num_boi = (float *)realloc(num_boi, (i+1)*sizeof(float)); } cont = i; puts("\nLISTA \n"); for(i=0; i<cont-1; i++){ printf("%do Boi tem %.2fKg\n", (i+1), num_boi);} for(i=0; i<cont; i++){ if(mais_gordo == num_boi[i-1]){ printf("\nO BOI mais pesado e o %do\n", i, mais_gordo); break;} } for(i=0; i<cont; i++){ if(mais_magro == num_boi[i-1]){ printf("\nO BOI mais leve e o %do\n\n", i, mais_magro); break; } } free(num_boi); system("pause"); return 0; } agradeço a todos que ajudaram e me ponho a disposição de vocês para ajudar no que puder: MSN - contajogofabio@hotmail.com :lol:
-
olá pessoal andei estudando a questão e cheguei a este fonte: ele funciona. recebe o peso dos bois e para assim que o peso 0(zero) é digitado. depois disso ele mostra a lista do peso dos bois e seus numeradores, além de informar qual o é o mais pesado. porem ele não consegue mostrar o mais leve. já tentei varias modificações e nada funcionou. ele sempre acusa que o boi mais pesado é o 1º (sempre seja la qual for o peso do 1º e mesmo se o peso dos outros for menor ele sempre acusa que o mais eleve é o 1º. me ajudem a dar uma corrigida para resolver o problema. desde já agradeço a todos. #include <stdio.h> #include <stdlib.h> int main() { int cont, i=0; float *num_boi = NULL; float peso; float mais_gordo = 0; float mais_magro = 20000; num_boi = (float *)calloc(1, sizeof(float)); while(peso > 0){ printf("Digite o peso do %do BOI: ", (i+1)); scanf("%f", &peso); num_boi = peso; if(peso > 0){ if(peso > mais_gordo){ mais_gordo = peso; if(peso < mais_magro){ mais_magro = peso; } } } i++; num_boi = (float *)realloc(num_boi, (i+1)*sizeof(float)); } cont = i; puts("\nLISTA \n"); for(i=0; i<cont-1; i++){ printf("%do Boi tem %.2fKg\n", (i+1), num_boi); } for(i=0; i<cont; i++){ if(mais_gordo == num_boi[i-1]){ printf("\nO BOI mais pesado e o %do\n", i); break; } } for(i=0; i<cont; i++){ if(mais_magro == num_boi[i-1]){ printf("O BOI mais leve e o %do\n\n", i); break;} } free(num_boi); system("pause"); return 0; }
-
bom. não estou conseguindo ageitar a lógica do programa para que o compilador rode certinho. a base de estudo que to utilizando é essa (pelo menos é ultima tentativa que eu fiz até agora, mas estou batendo cabeça): #include <stdio.h> main() { int iQTDBoi = 0; printf("\nEntre com a quantidade de bois:"); scanf("%d",&iQTDBoi); int vetor[iQTDBoi]; int peso; i = 0; do { printf(“\nDigite o peso do boi:”); scanf("%d",&peso); i++; vetor=peso; } while (peso != 0); int temp; int maior=vetor; int menor=vetor; for (temp = i-1;temp > 0;temp--) { if (vetor[temp] >= maior) maior = temp; if (vetor[temp] <= menor) menor = temp; } for (temp = 0;temp <= i;temp++) { printf("Boi peso:%d id:%d\n",vetor[temp],temp); } printf("Boi mais gordo: %d",maior); printf("Boi mais magro: %d",menor); return(0) } só que sempre aparece erro, já tentei inumeras mudanças e não funciona. a questão é: não consigo fazer o compilador entender o meu pensamento. agradeço qualquer idéia (modificação deste código ou outro melhor). agradeço mesmo.
-
Olá pessoal. Estou precisando muito de uma ajuda. Sou iniciante em C e estou apanhando para fazer um programa para resolver o seguinte problema da faculdade: Um pecuarista possui uma determinada quantia de bois, que possuem um identificador numérico (de 1 a n) cada um. Faça um programa que: a. receba o peso de cada boi, um por vez, e o armazene em um vetor. Se o peso digitado for 0 significa que não há mais bois a serem inseridos; b. mostre a lista de todos os bois com seus identificadores e também os identificadores do boi mais gordo e do boi mais magro. Se houver dois ou mais bois mais gordos ou mais magros mostrar o de menor identificador; Gostaria de um fonte que resolva este problema ou pelo menos um parecido que possa ser mudado para essa questão. Agradeço :lol: qualquer ajuda que vocês possam me dar.