Sur cette page, vous pouvez suivre l'intégralité de la série de tutoriels réalisés en vidéo par SchoolFreeware sur le compilateur Free Pascal et son EDI RAD Lazarus.
Ce cours est exclusivement dispensé en anglais et est destiné à un public débutant.
Cette vidéo traite de l'instruction conditionnelle if : le if...then simple et le if...then...else.
Les différents types de commentaires sont également vus.
Ce tutoriel explique les trois types de boucles : while, repeat et for.
Sources contenus dans cette vidéo :
program Project1;
{$modeobjfpc}{$H+}uses{$IFDEFUNIX}{$IFDEFUseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes
{youcanaddunitsafterthis};
var
x:integer;
begin
x := 1; {startsxequalto1}while x <= 10dobegin
writeln(x, '*2=' , x * 2);
x := x + 1;
end; {endswhileloop}
writeln;
writeln;
writeln('Press[Enter]ToQuit');
readln();
end.
program Project1;
{$modeobjfpc}{$H+}uses{$IFDEFUNIX}{$IFDEFUseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes
{youcanaddunitsafterthis};
var
x:integer;
begin
x := 1; {startsxequalto1}repeat
writeln(x, '*2=' , x * 2);
x := x + 1;
until x > 10; {endsrepeatloop}
writeln;
writeln;
writeln('Press[Enter]ToQuit');
readln();
end.
program Project1;
{$modeobjfpc}{$H+}uses{$IFDEFUNIX}{$IFDEFUseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes
{youcanaddunitsafterthis};
var
x:integer;
beginfor x := 1to10do{togobackwards:forx:=10downto1do}begin
writeln(x, '*2=' , x * 2);
end; {endsforloop}
writeln;
writeln;
writeln('Press[Enter]ToQuit');
readln();
end.
7. Devine mon nombre
Cette vidéo en deux parties récapitule les notions abordées dans les six vidéos précédentes.
Il s'agit ici de la programmation d'un petit jeu consistant à faire deviner un nombre par l'utilisateur.
Source contenu dans cette vidéo :
program FPTutorial7;
{$modeobjfpc}{$H+}uses
crt, sysutils,
{$IFDEFUNIX}{$IFDEFUseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes
{youcanaddunitsafterthis};
var
answer, guess, cnt:integer;
game:string;
beginrepeatrepeat
clrscr(); {ClearstheScreen,needscrt}
writeln('PleaseSelectAGame:');
writeln;
writeln('A)10');
writeln('B)100');
writeln('C)1000');
writeln;
write('Selection:');
readln(game);
game := UpperCase(game); {convertstouppercase,needssysutils}
randomize; {Neededtogetrandomnumbers}until (game = 'A') or (game = 'B') or (game = 'C'); {makessurethatacorrectresponseisgiven}
clrscr();
if game = 'A'thenbegin
answer := random(10) + 1; {random(10)gets0-9,soaddonefor1-10}
writeln('Game1-10');
endelseif game = 'B'thenbegin
answer := random(100) + 1;
writeln('Game1-100');
endelseif game = 'C'thenbegin
answer := random(1000) + 1;
writeln('Game1-1000');
end; {endifgamestatement}
cnt := 0; {setthecountertozero}repeatwrite('PleaseEnterAGuess:');
readln(guess);
cnt := cnt + 1;
if guess < answer then
writeln('TooLow!')
elseif guess > answer then
writeln('TooHigh!')
else
writeln('YouGuessedMyNumberIn', cnt, 'Guesses!');
until guess = answer; {repeatuntilthecomputer'snumberisguessed}repeat
writeln;
write('PlayAgainY/N:');
readln(game);
game := UpperCase(game); {converttouppercase}until (game = 'Y') or (game = 'N'); {repeatuntiltheresponseiscorrect}until game = 'N'; {repeatuntiltheuserselectsNtoquitthegame}end.
8. L'instruction Case of
Ce tutoriel montre comment une instruction case of peut avantageusement remplacer une cascade d'instructions if...then...else.
Sources contenus dans cette vidéo :
program CaseExample;
{$modeobjfpc}{$H+}uses
sysutils,
{$IFDEFUNIX}{$IFDEFUseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes
{youcanaddunitsafterthis};
var
sel:char;
beginwrite('PleaseSelectaKey(A,B,C,D):');
readln(sel);
writeln;
case sel of'A', 'a': begin
writeln('AWasSelected');
end;
'B', 'b': begin
writeln('BWasSelected');
end;
'C', 'c': begin
writeln('CWasSelected');
end;
'D', 'd': begin
writeln('DWasSelected');
end;
end; {EndofCase}
writeln;
writeln;
writeln('Press[Enter]ToQuit');
readln;
end.
program GradeIf;
{$modeobjfpc}{$H+}uses{$IFDEFUNIX}{$IFDEFUseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes
{youcanaddunitsafterthis};
var
score:integer;
beginwrite('EnterScore:');
readln(score);
writeln;
if score <= 59thenbegin
writeln('GradeF');
endelseif (score < 63) and (score >= 60) thenbegin
writeln('GradeD-');
endelseif (score < 67) and (score >= 63) thenbegin
writeln('GradeD');
endelseif (score < 70) and (score >= 67) thenbegin
writeln('GradeD+');
endelseif (score < 73) and (score >= 70) thenbegin
writeln('GradeC-');
endelseif (score < 77) and (score >= 73) thenbegin
writeln('GradeC');
endelseif (score < 80) and (score >= 77) thenbegin
writeln('GradeC+');
endelseif (score < 83) and (score >= 80) thenbegin
writeln('GradeB-');
endelseif (score < 87) and (score >= 83) thenbegin
writeln('GradeB');
endelseif (score < 90) and (score >= 87) thenbegin
writeln('GradeB+');
endelseif (score < 93) and (score >= 90) thenbegin
writeln('GradeA-');
endelseif (score < 97) and (score >= 93) thenbegin
writeln('GradeA');
endelsebegin
writeln('GradeA+');
end;
writeln;
writeln;
writeln('Press[Enter]ToQuit');
readln;
end.
program GradeCase;
{$modeobjfpc}{$H+}uses{$IFDEFUNIX}{$IFDEFUseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes
{youcanaddunitsafterthis};
var
score:integer;
beginwrite('EnterAScore:');
readln(score);
writeln;
case score of0..59: begin
writeln('GradeF');
end;
60..62: begin
writeln('GradeD-');
end;
63..66: begin
writeln('GradeD');
end;
67..69: begin
writeln('GradeD+');
end;
70..72: begin
writeln('GradeC-');
end;
73..76: begin
writeln('GradeC');
end;
77..79: begin
writeln('GradeC+');
end;
80..82: begin
writeln('GradeB-');
end;
83..86: begin
writeln('GradeB');
end;
87..89: begin
writeln('GradeB+');
end;
90..92: begin
writeln('GradeA-');
end;
93..96: begin
writeln('GradeA');
end;
else
writeln('GradeA+');
end; {endsthecasestatement}
writeln;
writeln;
writeln('Press[Enter]ToQuit');
readln;
end.
9. Les tableaux
Ce tutoriel aborde la très importante notion des tableaux.
Sources contenus dans cette vidéo :
program Project1;
{$modeobjfpc}{$H+}uses{$IFDEFUNIX}{$IFDEFUseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes
{youcanaddunitsafterthis};
var
FirstName: array[1..5] ofstring;
x:integer;
begin
FirstName[1] := 'Joe';
FirstName[2] := 'Jim';
FirstName[3] := 'Jill';
FirstName[4] := 'Joan';
FirstName[5] := 'Jan';
for x:= 1to5dobegin
writeln(FirstName[x]);
end;
writeln;
writeln;
writeln('Press[Enter]ToQuit');
readln();
end.
program Project1;
{$modeobjfpc}{$H+}uses{$IFDEFUNIX}{$IFDEFUseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes
{youcanaddunitsafterthis};
var
nums: array[1..6] ofinteger;
x:integer;
sum:integer;
begin
nums[1] := 5;
nums[2] := 4;
nums[3] := 9;
nums[4] := -1;
nums[5] := 2;
nums[6] := 15;
sum := 0;
for x := 1to6dobegin
sum := sum + nums[x];
end;
writeln('TheSumOfTheArrayIs:', sum);
writeln;
writeln;
writeln('Press[Enter]ToQuit');
readln();
end.
program Project1;
{$modeobjfpc}{$H+}uses{$IFDEFUNIX}{$IFDEFUseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes
{youcanaddunitsafterthis};
var
nums: array[1..6] ofinteger;
x:integer;
sum:integer;
begin
sum := 0;
for x := 1to6dobeginwrite('EnterInteger:');
readln(nums[x]);
end;
for x := 1to6dobegin
sum := sum + nums[x];
end;
writeln('TheSumOfTheArrayIs:', sum);
writeln;
writeln;
writeln('Press[Enter]ToQuit');
readln();
end.
10. Les tableaux à plusieurs dimensions
La suite logique du chapitre précédent : l'utilisation de tableaux à deux dimensions ou plus.
Après le défrichage des notions du langage des quatorze précédents chapitres, il est temps de quitter la console et d'entrer dans le vif du sujet : la programmation GUI (Graphical User Interface).
La création d'applications GUI requiert l'utilisation des forms.
Le portage d'applications entre Windows, Mac, Linux et FreeBSD est aisé.
16. Evénements et propriétés
Ce tutoriel montre comment utiliser les événements et modifier des propriétés au cours de l'exécution d'une application.
17. Programmer le Sens de la Vie
Mise en application des notions des deux précédentes vidéos, en concevant un petit logiciel à portée philosophico-humoristique.
18. Notation hongroise et création de fenêtre GUI
Cette vidéo est la 1ère partie d'un chapitre complet qui s'achève à la vidéo 21.
Les sources sont rassemblés au chapitre 21.
La vidéo détaille l'utilisation de la notation hongroise dans le nommage des composants, propriétés, variables...
19. Conversions de chaînes et calculs
Cette vidéo est la 2ème partie d'un chapitre complet qui commence à la vidéo 18 et s'achève à la vidéo 21.
Les sources sont rassemblés au chapitre 21.
Sont présentées les fonctions de conversion suivantes :
IntToStr()
StrToInt()
FloatToStr()
StrToFloat()
20. Boutons radio
Cette vidéo est la 3ème partie d'un chapitre complet qui commence à la vidéo 18 et s'achève à la vidéo 21.
Les sources sont rassemblés au chapitre 21.
Y est présenté un type de contrôle très répandu : le bouton radio (RadioButton).
21. Gestion d'erreurs : Try...Except
Cette vidéo est la dernière partie d'un chapitre complet qui a débuté à la vidéo 18.
L'application construite sur les vidéos 18 à 20... plante.
Dans cette dernière partie, vous apprenez à intercepter les erreurs à l'aide du Try...Except.
Cette vidéo donne un aperçu de l'application complète, Quick Clock Quizzer, qui va être développée pas à pas jusqu'à la fin du cours.
25. Dessin dans un canvas, crayons, pinceaux et couleurs
Cette vidéo est la 2ème partie du développement de l'application Quick Clock Quizzer.
Dans ce tutoriel, vous apprenez à dessiner dans un canvas.
26. Randomisation des aiguilles de l'horloge
Cette vidéo est la 3ème partie du développement de l'application Quick Clock Quizzer.
Elle montre comment utiliser les routines randomize et random pour générer des nombres aléatoires.
27. Entrées par l'utilisateur
Cette vidéo en deux parties est la 4ème partie du développement de l'application Quick Clock Quizzer.
Sont abordés les contrôles d'entrée par l'utilisateur.
28. Son et musique
Cette vidéo est la 5ème partie du développement de l'application Quick Clock Quizzer.
Elle montre comment utiliser des fichiers wav dans une application.
29. Splash screen
Cette vidéo est la 6ème partie du développement de l'application Quick Clock Quizzer.
Elle montre comment afficher un splash screen, c'est-à-dire une fenêtre de démarrage.
30. Changer les curseurs et couper le son
Cette vidéo est la 7ème partie du développement de l'application Quick Clock Quizzer.
On continue le développement de l'application en ajoutant de nouvelles fonctionnalités.
31. Icônes
Cette vidéo est la 8ème partie du développement de l'application Quick Clock Quizzer.
Ce chapitre montre comment ajouter des icônes à une application.
32. Finalisation et propriétés
Cette vidéo est la dernière partie du développement de l'application Quick Clock Quizzer.
Elle aborde l'interception des erreurs et le réglage des propriétés de l'application.