Jump to content

Duvida Exeção de registro


Firewall
 Share

Recommended Posts

Olá, bem aqui está um pedaço do meu ciclo for

for i:=1 to 250 do begin    //adicionar de 0   100 carros
                                 repeat
                                   clrscr; corRed;
                                   writeln('REALIZANDO REGISTRO DE NUMERO ',i); corPreto;
                                   writeln;
                                   writeln('Nome do Automovel'); readln(registro[i].modeloCar);
                                     repeat
                                       if (registro[i].anoCar <= -1 ) then
                                         begin
                                           writeln; corRed;
                                           writeln('PorFavor, Informe Apenas Numeros Positivos'); corPreto;
                                         end;
                                       writeln('Ano do Automovel'); readln(registro[i].anoCar);
                                     until (registro[i].anoCar >= 0 ); // s¢ vai repetir se o anoCar For Menor que 0 ( ex:  -1, -250)

beleza, agora queria tirar 1 dúvida teria como por uma exceção ali no ciclo,exmeplo:

eu vou lá e registro 1 vez, querian que quando o usuario termina-se de registrar o Automovel, o ciclo avança-se 1, assim quando o usuario for adicionar novos caros, não recomeça-se do 0, ai não teria que fazer denovo o registro1, registro2....

etou utilizando 1 recursividade  , exmeplo:

                                 writeln('Deseja Adicionar um Novo automovel?'); corRed;
                                 writeln('Digite [s] - Para Adicionar um Novo Carro');
                                 writeln('Digite [N] - Para Voltar ao Menu Principal'); corPreto;
                                 readln(addCarSN);
                                 addCarSN := upcase(addCarSN);
                                 if ( addCarSN = 'S') then
                                   begin
                                    j := j++1; // contador  faz com que acumule a quantidade de registros que foram efetuados com sucesso

                                   end
                                 else
                                   begin
                                     j := j++1; // contador

                                     break; //QUEBRA o ciclo FOR,e volta para o menu principal
                                   end;  

esse j := j++1; é  contador pra quando eu for ver os novos carros adicionados nao iria ver os 250 de 1 vez; e sim o tanto  de vezes que ele registrou.

como no no for abaixo:

for i:=1 to j do begin

será que tem como por 1 exceção lá no meu 1º for como eu fiz neste 2º for ?  😁

Link to comment
Share on other sites

Deixa ver se percebi.

Queres ter um contador que indique quantos carros foram adicionados da última vez que essa operação foi feita. É isso?

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Link to comment
Share on other sites

Deixa ver se percebi.

Idem 😁

A mim pareceu-me que, de facto, o @Firewall pretende que o utilizador registe um certo número de carros ao seu gosto e, quando quiser terminar, tem a escolha de sair.

Contudo, se o utilizador pretender voltar a registar, o programa começaria do ponto onde tinha terminado em vez de começar do zero.

Se é esse o caso, não há nada mais fácil 😉

var UltimoRegistoEfectuado : word;

No início do programa:

UltimoRegistoEfectuado := 1;

E no ciclo:

for i:=UltimoRegistoEfectuado to 250 do

Aquando a escolha do utilizador do término do registo:

UltimoRegistoEfectuado := i + 1:  // o ciclo terá depois de começar no seguinte (i+1) e não exactamente no índice onde parou
break;

E voilá! 😁

É isto que necessitas, @Firewall?

Cumpz.

Knowledge is free!

Link to comment
Share on other sites

@thoga31

Yes, é isto mesmo, entendi seu raciocinio,e ele está de acordo com o meu. ti por incrivel que pareça, agora não é mais preciso utilizar meu ciclo antigo 😁

estou aproveitando este ciclo, consegui retirar 1 ciclo de autenticação, sendo assim uma optmização do programa.

esta variavel word, terei que começar a usar ela  😁

Eu, estava querendo colocar, uma outra variavel no ciclo exemplo:

for i:=1 to j to n do begin

mas está forma es muito melhor =)

@obs:não liguem para meu portugues-BR, estou aprendendo portugues-PT 

EDIT: aplicação da Regra 2.2. thoga31

Link to comment
Share on other sites

O tipo Word é como o Integer, com a diferença que não tem números negativos.

Por exemplo num compilador onde o Integer (e Word) tenham 4 bytes:

O Integer vai de -32768 a 32767.

O Word vai de 0 a 65536.

Fica-se assim com mais espaço de manobra nos numeros positivos, logo que os negativos não nos façam falta, como é o caso.

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Link to comment
Share on other sites

@obs:não liguem para meu portugues-BR, estou aprendendo portugues-PT

Pois, mas mesmo em PT-BR não entendo esta expressão:

Yes, é isto mesmo, entendi seu raciocinio,e ele está de acordo com o meu. ti por incrivel que pareça( tú es muito cagado), agora não é mais preciso utilizar meu ciclo antigo 😁

E parece mais que falas espanhol e não PT-BR... ?

Tive de editar o teu tópico e eliminar aquela pequena expressão pois, em PT-PT, pode ser considerada uma ofensa, apesar de eu saber que não foi essa a tua intenção e eu não me sentir ofendido. Mas tenho de zelar pelo cumprimento das regras.

2.2) Não será tolerada qualquer tipo de falta de respeito para com outro utilizador, o respeito deve ser mutuo e o nosso objectivo é manter a comunidade com um espirito agradável. Mensagens desta natureza poderão ser apagadas ou editadas sem qualquer aviso.

http://www.portugal-a-programar.pt/guidelines/

Cumprimentos. 😁

Knowledge is free!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.