Question

Je suis en cours d'exécution Turbo Pascal 3.01a sur CP / M 2.2. Supposons que mon programme Pascal, que je dirige en utilisant l'option de menu R en Turbo Pascal, a un bug et va dans une boucle infinie. Y at-il un caractère de contrôle spécial qui interrompt mon programme et le retour au menu Turbo Pascal?

Était-ce utile?

La solution

La directive {U +} provoquera le code compilé pour vérifier après chaque instruction si une clé a été touché. Dans ce cas, la combinaison de touches sera vérifiée pour ^ C; sinon ^ C la combinaison de touches sera mis au rebut. Bien que cela permet utilement le programme d'être interrompu, il ralentit les choses et aussi plutôt tue fâcheusement capacité de type avance. Malheureusement, CP / M ne fournit aucune sorte d'interruptions de clavier (bien que certaines implémentations CP / M peuvent fournir un) donc il n'y a pas vraiment de meilleure alternative. Ce serait bien si Turbo Pascal avait une option pour mettre en œuvre sa propre mise en mémoire tampon du clavier, mais je ne connais pas.

Autres conseils

Au début de votre programme Turbo Pascal 3 (sous l'instruction Program) est compilateur directive {$U+}. Cela devrait vous permettre de faire un CTRL + C . Toujours utiliser ce que lorsque vous déboguez votre programme car il ralentit la vitesse d'exécution de votre programme. Si elle fonctionne bien, retirez-le et compiler votre programme.

Typiquement, dans Turbo Pascal 3 le compilateur dispose d'un ensemble de directives du compilateur par défaut. Le - est généralement hors « U Interrompre utilisateur » par défaut.

L'autre chose que je trouve dans mon programme Turbo Pascal tout récemment été j'utilisais ce pendant le débogage mon programme et pour une raison quelconque, il ne fonctionnait pas. Je ne sais pas ce qui se passait là-bas et trouvé que j'avais vraiment maintenez cette combinaison pour obtenir le programme pour quitter. Pas sûr si elle avait quelque chose à voir avec la vitesse d'exécution du programme ou si elle était l'utilisation d'une boucle imbriquée qui a conduit à ce lieu.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top