Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho o seguinte exercício que deve ser feito em PASCAL:
Dado um conjunto de N(N>5) números DISTINTOS a serem digitados aleatoriamente, elaborar um programa em Pascal que faça todas as combinações de 5 em 5 desses números.
O programa deve escrever somente as combinações de números cujas somas sejam 80 e 100. Finalmente, se as somas 80 ou 100 não puderem ser feitas com os números digitados o programa deve mostrar uma mensagem dizendo qual delas não pode ser feita.
O professor explicou que se trata de permutação de N elementos tomados de k em k.Então eu vou digitando quantos números eu quiser( mais de 5, claro), MAS ELES TEM QUE SER DIFERENTES ENTRE SI : 1 6 9 45 51 3 90 ... e o prog vai combinando de 5 em 5 e as somas iguais a 80 ou 100 o programa mostra na tela. Se a soma 80 ou a 100 não der pra fazer, o programa mostra mensagem.
Como faço isso em Pascal??? Esse problema já ta me deixando de cabelo branco! Rsrs Pelamordedeus!!!
Mas _Isis_, esse código tá em Pascal?
Se é pascal na estrutura do while nao deveria ter o do ?
While <(condição)> do
O comando print nao seria o writeln ?
desculpe a ignorancia( sou novato em linguagens de comp.).E ainda nao entendi como declarar as variaveis.
Não. Está em Python. Eu agradeço todo dia por não lembrar nada de pascal.
Eu fiz um código que funciona parcialmente:
PROGRAM SOMA;
VAR
N:ARRAY[1..80] OF INTEGER;
S:ARRAY[2..100] OF INTEGER;
K,Q,I,T,SOMA,A,B,X:INTEGER;
BEGIN
WRITELN('INFORME QUANTAS SOMAS SÃO:');
READLN(Q);
WRITELN('TOTAL DE NUMEROS:');
READLN(T);
FOR I:=1 TO T DO
BEGIN
WRITELN('INFORME O ', I, '°.NUMERO:');
READLN(N);
END;
FOR K:=1 TO Q DO
BEGIN
WRITELN('INFORME A ',K,'ª SOMA:');
READLN(S[K]);
END;
X:=T-2;
FOR I:=1 TO X DO
*A:=N**;*
FOR I:=1 TO T DO
*B:=N**;*
SOMA:=A+B;
IF (A<B) AND (SOMA=S[K]) THEN
WRITELN(A,' ',B,'SOMA:',SOMA);
WRITELN('NÃO É POSSIVEL FAZER TAL SOMA');
READLN;
END.
O programa só vai até
INFORME ' A SOMA:'
Aí digito uma soma e ele retorna o erro: RUNTIME ERROR 201
Como resolver???
http://community.freepascal.org:10000/docs-html/user/userch14.html
E por que tem que digitar a quantidade de somas? É o que o programa vai fazer. Não é o usuário que tem que digitar isso.
Tirei a parte da quantidade de somas e o erro continua o mesmo.
O que o programa vai fazer é identificar nas milhares (ou milhões) de combinações possíveis, as combinações cujas somatórias sejam = 80 e 100.
Isso de digitar a quantidade de somas aparentemente é irrelevante e não está influindo no funcionamento(ou não funcionamento, no caso)do programa.
Estou trabalhando nesse código, vou descobrir o erro.Tem alguma coisa a ver com a faixa de variação de um dos arrays, ou dos dois.
Tá osso!!!! rsrsrs
Ou você armazena os inteiros num array ou em variáveis separadas (dá mais trabalho).
i = 0
while i < 4 :
j = i + 1
while j < 5:
if a[i]+a[j] == 80 or a[i]+a[j] == 100:
print("({0},{1})".format(a[i],a[j]))
j += 1
i += 1