Compiler en pascal

JBH

Membre enregistré
11 Décembre 2007
7
0
Bonsoir à tous,
je suis en prépa ECS, et je dois télécharger un logiciel pour pouvoir m'entraîner à créer des programmes en Pascal. J'ai cherché dans les différentes parties du forum: impossible pour moi de comprendre un topic complet - ^^ j'ai du mal avec les macs.
J'ai téléchargé Xcode ainsi que gpc mais je ne sais pas m'en servir; j'ajoute que je ne comprend même pas un mot comme celui de "terminal".
Est-ce que quelqu'un pourrait me faire une réponse très claire, expliquant de A à Z comment s'y prendre pour créer un petit programme? (celui-ci par exemple:

program test;
var
i : integer;

begin
for i := 1 to 5 do
writeln('Hello, World!');
end.

).
Evidemment, si une bonne âme faisait une bonne réponse à l'aide de beaux screen shots, je ne saurais lui exprimer ma gratitude...
D'avance, merci beaucoup !

Il y a un forum "Développement sur Mac" exprès ici je t'y transfère…

Sur ce, ayant développé en assembleur pour Apple, je crains que tu ne partes bien bas…
 
Sur ce site, ils expliquent comment utiliser gpc dans Xcode. Où as-tu besoin du terminal ? :confused:

Tu trouveras l'application Terminal dans les utilitaires. Elle te permet d'ouvrir un terminal pour accéder à l'interface en ligne de commande ... tu sais comme on faisait avant qu'Apple vendent des Mac avec fenêtres et souris :D
Pour savoir comment s'en servir, n'importe quel tutoriel du web à propos des terminaux Unix fera l'affaire.
 
tu diras a ton prof si il veut aprendre les bases de l algorithmie
d utiliser autre chose que le pascal, tu lui demanderas la date de la derniere MaJ de son cerveau

et tu lui demanderas si il est capable de comprendre: Objective Caml, vos profs sont vraiment de attardes... ou on utilise le C COMME TOUT LE MONDE, rappele lui la date de cette annee

2007 et bientot 2008



Bonsoir à tous,
je suis en prépa ECS, et je dois télécharger un logiciel pour pouvoir m'entraîner à créer des programmes en Pascal. J'ai cherché dans les différentes parties du forum: impossible pour moi de comprendre un topic complet - ^^ j'ai du mal avec les macs.
J'ai téléchargé Xcode ainsi que gpc mais je ne sais pas m'en servir; j'ajoute que je ne comprend même pas un mot comme celui de "terminal".
Est-ce que quelqu'un pourrait me faire une réponse très claire, expliquant de A à Z comment s'y prendre pour créer un petit programme? (celui-ci par exemple:

program test;
var
i : integer;

begin
for i := 1 to 5 do
writeln('Hello, World!');
end.

).
Evidemment, si une bonne âme faisait une bonne réponse à l'aide de beaux screen shots, je ne saurais lui exprimer ma gratitude...
D'avance, merci beaucoup !

Il y a un forum "Développement sur Mac" exprès ici je t'y transfère…

Sur ce, ayant développé en assembleur pour Apple, je crains que tu ne partes bien bas…
 
tu diras a ton prof si il veut aprendre les bases de l algorithmie
d utiliser autre chose que le pascal, tu lui demanderas la date de la derniere MaJ de son cerveau

et tu lui demanderas si il est capable de comprendre: Objective Caml, vos profs sont vraiment de attardes... ou on utilise le C COMME TOUT LE MONDE, rappele lui la date de cette annee

2007 et bientot 2008

Sans vouloir te vexer, Tatouille, on peut très bien se servir de Pascal pour apprendre les bases de l'algorithmique, tout dépend de ce qu'on met sous le mot "bases" et quels sont les objectifs. Le fait que Pascal ne gérait pas à l'origine l'objet et n'est pas fait pour le gérer n'enlève pas forcément d'intérêt à la chose. Croire que tout ce qui a plus de 10 ans est has-been n'est pas forcément une bonne chose.

Dans le cadre de son école, je suppose que le but n'est pas de faire des spécialistes de la programmation, mais des gens capables de piger un minimum certains raisonnement de l'algorithmique. Le Pascal est très bien pour ça : les notions de boucle, d'alternative, de récursivité, de pointeurs sont parfaitement accessibles en Pascal. N. Wirth qui a inventé le Pascal n'était quand même pas tout à fait débutant en algorithmique, Knuth non plus je pense (TEX)[là j'ai dit des conneries : je ne crois pas que Knuth ait fait du pascal, il me semblait qu'il avait été en rapport avec Wirth mais j'ai du me tromper], ils ont bien réussi à faire des choses en Pascal à ma connaissance.

Et les systèmes mac jusqu'au 7 étaient écrits en Pascal Objet (bon l'objet dans Pascal, ça faisait un peu rajouté mais la notion de programmation structurée à la base de la création de Pascal est quand même un ancêtre naturel de la programmation objet).

Alors d'accord avec toi pour dire qu'on a inventé des concepts super intéressants depuis (et des concepts indispensables aujourd'hui pour un programmeur professionnel) mais l'algorithmique existait avant l'objet et existera après. Et dans le cadre d'un cours, le premier critère, c'est d'essayer de faire un compromis entre les objectifs et le temps dont on dispose :D

Sinon, j'aime beaucoup Caml : j'ai commencé pour donner des rudiments d'enseignement d'algorithmique précisément :D en 93 avec Caml Light et j'ai continué pendant un bon moment avec Caml light puis Caml Objet qui est un superbe outil pour apprendre aussi bien les "bases" de l'algorithmique classique que les concepts de l'algorithmique moderne (mais dans mon cas, les notions objet n'étaient abordées que très sommairement). Je ne connais ces langages que dans une optique "algorithmique" pas pour programmer vraiment des applis et j'ai regretté de ne pas avoir le temps d'essayer de programmer "pour de vrai" avec, donc je n'ai aucune prétention à bien les maîtriser. Mais en tous cas, on peut apprécier en même temps Pascal et Caml objet (C++, j'ai du mal, par contre :D)

Et pour en revenir à la question de départ, c'est vrai qu'aujourd'hui, c'est plus compliqué de faire du Pascal qu'à l'époque où on avait un environnement intégré hyper simple.

Je n'ai pas de lien magique pour avoir un compilateur simple. Il peut chercher du côté de Pascal Central ou chercher un tutoriel pour l'utilisation de freepascal sous xcode mais c'est vrai que ça risque d'être un peu abscons pour commencer.

L'autre solution, mais seulement valable pour une machine avec classic (et encore à vérifier), c'est d'utiliser l'antédiluvien ThinkPascal disponible sur Pascal central et qui est un environnement intégré simple d'utilisation (et en plus, plein de documents internt et livres en parlent). Pour les sujets d'algorithmique (enfin les bases :D), ça irait très bien.
 
bonjour Luc tu le dis toi meme c est un soucis pedagogique, autant utiliser des outils commun d'aujourdhui et ne pas reprendre l histoire au debut, et toujours dans une vue pedagogique tu auras toujours un pourcentage de personnes qui voudront se reorienter, donc en leur fournissant des bases avec des outils actuels tu leur donnes quand meme plus de chance, le basic c etait bien j en ai fait sur amiga, sur TI81 mais je ne conseillerais jamais ca comme outil pour apprendre les bases de l algorythmie en 2007

Bloc de code:
/* program test; // .globl _main we are going to use the default ld main symbol */

#include <stdio.h>
#include <stdlib.h>

/* var
i : integer; */

int i;

int main(void) {

/* begin
for i := 1 to 5 do
writeln('Hello, World!'); */

/* start iterartion */
for(i = 1;i <= 5; i++)
    puts("Hello, World!"); 
/* systemcall open stdout/write/close stdout/endfor call kernel */

/* end. systemcall exit/end 

syscall number (sys_exit)
exit code
call kernel

*/
    return 0;
}
programatiquement parlant tu dois aquerir ses notions ds ce genre de language
meme en algorythmie sinon tu risques de serieux problemes sur des cas plus complexe,

alors pourquoi pas ruby ou python?
 
Sans vouloir te vexer, Tatouille, on peut très bien se servir de Pascal pour apprendre les bases de l'algorithmique, tout dépend de ce qu'on met sous le mot "bases" et quels sont les objectifs. Le fait que Pascal ne gérait pas à l'origine l'objet et n'est pas fait pour le gérer n'enlève pas forcément d'intérêt à la chose. Croire que tout ce qui a plus de 10 ans est has-been n'est pas forcément une bonne chose.

Je suis a peu pret d'accord avec toi Luc. J'ai connu la gueguerre entre Pascal et C il y a quelque temps. J'ai également eut en cours des personnes qui avaient soit commencé par le Pascal soit par le C. Il est vrai que les Pascalleux avaient peut etre plus vite ecrit des programmes plus complexe mais par contre la notion de pointeur, ils ne l'avaient pas. "Ce qui pointe" et "ce qui est pointé" pour eux, c'était du kifkif. Et a mon avis, ca c'est embettant.
Donc, s'il fallait voter, je prendrait le C pour débuter. Ce qui ouvre apres rapidement au C++ ou Java, alors que le Pascal est sympa mais est un cul de sac.


Cordialement
 
alors pourquoi pas ruby ou python?

Pourquoi pas en effet, ce sont des langages qui se prêtent sans doute assez bien à ça (pour ce que j'en connais, c'est à dire peu). En effet, pour une approche (sommaire, si j'ai bien compris, ce ne sont pas des programmeurs qu'il s'agit de former), il me parait surtout essentiel de montrer que l'algorithmique existe indépendamment du langage (même si tous les langages ne permettent pas d'aborder tous les concepts).

Le peu d'enseigement que je faisais, j'insistais sur cet aspect pour éviter de voir les gens se focaliser sur l'outil plus que sur le concept (j'admets que dans l'informatique actuelle, c'est plus compliqué de faire abstraction de l'outil, mais précisément, il faut bien qu'à un moment au moins, les gens entendent parler de ça). À l'époque, Segewick par exemple sortait des versions successives de son bouquin d'algorithmique avec comme langage d'illustration Pascal, puis C, etc. en gardant un maximum d'éléments communs.

Un aspect assez amusant par ailleurs : le public d'un cours de base d'algorithmique est souvent très hétérogène (en tous cas, c'est ce que j'ai connu au CNAM) : certains n'ont pas la moindre idée de ce qu'est la programmation et d'autre ont bidouillé avec tel ou tel outil particulier (C, visual basic, etc.) eet savent un peu ou pensent savoir beaucoup. Le fait d'utiliser un langage que, au départ au moins, personne ne connaît vraiment remet les choses à plat, permet de moins démotiver ceux qui savent ou croient savoir, de moins complexer ceux qui ne savent pas.

C'est quelque chose que j'ai pu constater et apprécier avec Caml : ça calmait quand même un peu les pseudo-spécialistes :D (par contre, le concept de boucle en Caml, c'est un peu plus lourd qu'en C ou autre même si c'est très instructif :D) Ruby pourrait présenter les mêmes avantages au moins pour le moment.

C, incontournable pour un programmeur professionnel, présente à mon avis deux défauts dans le cadre d'un "petit" cours d'algorithmique :
- de ce que j'ai vu, il faut beaucoup plus de temps pour commencer qu'en Pascal, quand le nombre d'heures est limité, c'est pénalisant
- difficile de faire dire qu'être "rigoureux" est indispensable avec C même si c'est évidemment possible d'être aussi rigoureux qu'avec un autre langage, en Caml, la question ne se pose pas et en Pascal, peu. (si on se focalise sur C++, c'est mieux mais on retombe sur le premier problème : c'est quand même long pour démarrer les bases)

Ceci dit, d'accord avec vous pour dire qu'il faut que l'enseignement évolue. D'ailleurs, j'ai arrêté de faire ces quelques cours, estimant que je n'étais plus compétent compte tenu des évolutions que, pour raisons professionnelles, je ne suis plus vraiment et ne pratique pas. :D

(mais étant matheux d'origine, je me sens titillé dès qu'on focalise l'algorithmique sur l'informatique : le terme "algorithme" vient du nom d'un algébriste, pas d'un informaticien :D)
 
Je dois connaître le pascal parce que c'est c'est le langage requis à l'entrée des grandes écoles de commerce (HEC ou ESSEC par exemple). Je pense que le but est uniquement de nous permettre d'appréhender les notions d'algorithme de façon concrète, donc nous faire programmer en pascal, en C, en mapple ou en java ne change pas grand chose...
Je ne souhaite pas non plus que vous m'expliquiez comment faire pour rédiger un programme en pascal, pour ça j'ai des cours; j'aimerais juste que vous m'expliquiez comment faire pour créer le programme.
Je m'explique: une fois le programme ecrit (sur text rider par exemple), comment le compiler et le lancer?
J'aurais besoin d'informations très claires svp ^^.
Merci d'avance...

P.S. J'apprécie les explications jointes de SS :)
 
Je te rejoint sur ce point Luc, l 'inconnue permet de mettre les choses a plat, mais quelq un qui programme deja aura quand meme une plus grande facilite pour switcher, en effet l algorithme doit etre dependant de la forme mais quand tu l'apprends tu es physiquement lie a la techno, et la maniere dont tu l'apprends va etre un lifemotif pour tres longtemps avant de pouvoir le depasser, ca ressemble a l apprentissage de la musique par le biais/vecteur d un instrument,

mais comme tu dis l algo est mathematique, donc ocaml et ruby sont des languages qui sont pour moi moins informatique, a contrario, meme si il existe des contraintes de temps ds tout enseignement, peut etre la reforme devrait etre faite la, perso je suis pour le C avec une bonne rigueur, car la tu rejoints le travail mathematique, c est exigent et tu recherches la forme synthetique, ce qui se traduit programmatiquement parlant par les perfs

deplus le C est certainement plus lourd mais qui a fait du C et appris correctement peu envisager d apprendre n'importe quel outil par la suite

et ocaml pour moi est un language plus proche de l'algebre que de l'informatique mais est aussi tres lourd a apprendre, mais Luc tu devrais continuer car tu es bien plus competant que certains PRO que je croise

:)
 
Je dois connaître le pascal parce que c'est c'est le langage requis à l'entrée des grandes écoles de commerce (HEC ou ESSEC par exemple). Je pense que le but est uniquement de nous permettre d'appréhender les notions d'algorithme de façon concrète, donc nous faire programmer en pascal, en C, en mapple ou en java ne change pas grand chose...
Je ne souhaite pas non plus que vous m'expliquiez comment faire pour rédiger un programme en pascal, pour ça j'ai des cours; j'aimerais juste que vous m'expliquiez comment faire pour créer le programme.
Je m'explique: une fois le programme ecrit (sur text rider par exemple), comment le compiler et le lancer?
J'aurais besoin d'informations très claires svp ^^.
Merci d'avance...

P.S. J'apprécie les explications jointes de SS :)

pour moi la solu voudrait que tu installes le darwinport, puis gpc via celui-ci

sinon il ya Adriaan van Os qui maintient un port avec template xcode mais celui-ci n est pas dispo pour leo

si tu veux programmer sous Unix-like il faut absolument connaitre sont environement et particulierement utiliser un term emulator,
les seules personnes alaise sur mac pour ca sont les gens qui ont une experience linux (et je connais beaucoup de non informaticiens qu ils l'ont, surtout ds les plus jeunes),
programmer meme un petit peu nessecite l'apprentissage de pas mal de petits trucs autour, et pour prog sur une platforme il faut un minimum la connaitre
sinon c est sans fin, je te conseille de trouver une personne sur ta region qui connaisse la prog sous unix-like voir macOSX pour qu il te donne quelques cours
 
Si tu trouve xcode un peu trop lourd, tu peux essayer lightweight IDE voir sur pascal Central Il faut le télécharger ainsi que freepascal sur www.freepascal.org.

Une fois installé, ça présente l'avantage d'un IDE basique : tu compiles, tu exécutes. Pour comprendre les structures de base, ça devrait aller. Reste à tester si c'est stable. Pour ma part j'ai juste téléchargé lightweight pascal (c'est tout petit : 1,4 Mo à télécharger, 2,4 Mo l'appli finale), téléchargé freepascal que j'ai installé (il y a un installeur mac standard). Puis j'ai lancé lightweight IDE et j'ai pu compiler un des programmes de démo en 10 secondes. (Il faut avoir les outils développeur installés, bien sûr). Donc ça a l'air de marcher (sous 10.4.11 dans mon cas).

peut-être ça pourrait te convenir. (On peut faire du C aussi avec).

Ce genre d'outil sommaire est parfois bien pratique (pour OCaml, j'utilisais CocoCaml sinon pour faire le même genre de chose, au moins dans le même esprit simpliste)

Une fois installé, démarré, tout ce qu'il y a à faire pour les programmes simples, c'est de lancer les menus compile/run.
 
Okey merci ça marche; j'ai juste mis du temps à comprendre qu'il fallait enregistrer les fichiers sous la forme "xxxxx.p".

Mon premier programme, pour le plaisir:

Program Moyenne ;

Var
a, b, c, e, n, m : real ;
i, p : integer ;

Begin

b := 0 ;
c := 0 ;

Writeln ('Combien de notes souhaitez-vous entrer?') ;
Readln (p) ;
n := p ;

If p >= 0

Then
Begin

For i := 1 to p do
Begin
If i = 1
Then writeln ('Entrez la ', i, 'ère note: ')
Else writeln ('Entrez la ', i, 'ème note: ') ;
Readln (a) ;

If a >= 0

Then
Begin
b := a + b ;
c := a*a + c
End

Else
Begin
Writeln ('Veuillez saisir la note à nouveau - elle doit être positive.') ;
i := i - 1
End ;
End ;

m := b / n ;
e := sqrt( (c - 2*m*b + sqr(m)*n ) / n) ;

Writeln ('La moyenne est de: ', m) ;
Writeln ('L écart-type est de: ', e) ;

End

Else
Writeln ('Erreur : le nombre de notes doit être positif') ;

End.
 
Par rapport aux discussions du début, resp. à savoir que Pascal n'est plus d'actualité, etc. ... Il ne faut pas confondre l'algorithmique avec Software Engineering. L'algorithmique peut très bien se faire sur du papier en pseudo-code, pas besoin d'un langage en particulier ;) . Le but étant de comprendre comment fonctionne un algorithme de tri ou de recherche. Il est vrai que d'un point de vue pédagogique il est toujours mieux de le faire avec un langage donné, car d'une part on peut tester si le code fonctionne et d'autre part cela permet d'apprendre un langage (même si ce n'est pas le but à la base).
Par contre, dans le cadre du Software Engineering, la discussion est très intéressante :) .

++
 
Il ne faut pas confondre l'algorithmique avec Software Engineering. L'algorithmique peut très bien se faire sur du papier en pseudo-code, pas besoin d'un langage en particulier ;) .

:zen:

Pour l'anecdote, quand je suis rentré en fac, il y a très, très longtemps :D la fac de Perpignan venait d'engager un informaticien (qui est devenu un excellent copain) pour le futur centre de calcul, j'ai bien dit futur : il n'avait pas encore d'ordinateur ! Il n'y en avait aucun autre évidemment sur la fac (c'était avant l'Apple 1 :D). En attendant, il avait organisé quelques cours du soir pour ceux que ça intéressait sur l'algorithmique. C'est là que j'ai appris le BA-BA sur les séquences, les instructions conditonnelles, les boucles, etc. le tout sous forme d'organigramme (c'était la mode à l'époque) et malgré l'absence de référence à un langage quelconque (de toutes façons, l'ordinateur le plus proche était à plus de 150 kilomètres, je pense, sauf peut-être dans une banque), ce que j'ai acquis en quelques heures de petit dessin sur le papier a été une base très limitée, certes, mais extrêmement solide qui m'a bien servi ensuite quand j'ai du me mettre au Fortran "pour de vrai" quelques années plus tard (sans aucune autre formation, évidemment : ça n'existait tout simplement pas là où j'étais, on se formait sur le tas).

PS Et dire qu'on pouvait faire de l'algorithmique sans langage particulier était une phrase que je devais prononcer systématiquement dans les 5 premières minutes de mes cours (avant de la répéter régulièrement plus tard) :D
 
J'arrive un peu tard?

D'accord avec Luc G. Le Pascal est un langage destiné à l'apprentissage de l'algorithmique.
En revanche, si vous voulez utiliser le Pascal (Delphi) en prod, faut oublier...
J'ai déjà eu l'occasion de travailler en prod sur du Delphi, venant du monde C/C++, croyez moi, Delphi est une catastrophe. Delphi, oui pour l'apprentissage, non pour la prod.

Cordialement.

Fred.
 
on utilise le C COMME TOUT LE MONDE, rappele lui la date de cette annee
Ti utilise le pascal ainsi que les logiciels tels que Xcas ou deriv.
En fait je crois que pour tout ce qui est mathématique le pascal est le plus performant puisque tous les exemples que j'ai donné, qui sont quand même des pointures dans leur dommaine utilisent ce langage.:zen: