Turbo pascal

Résolu/Fermé
peaceman999 Messages postés 15 Date d'inscription lundi 6 juillet 2009 Statut Membre Dernière intervention 29 avril 2016 - 28 oct. 2009 à 20:35
peaceman999 Messages postés 15 Date d'inscription lundi 6 juillet 2009 Statut Membre Dernière intervention 29 avril 2016 - 5 nov. 2009 à 12:25
Bonjour,
s.v.p aidez moi sur ce probléme c'est urgent s'il vous plait.
a)-ecrire en pascale une unité qui contient les procedures et fonctions suivantes
*procedure qui lit un tableau à n elements (1<=n<=100) de type entier
*fonction qui calcule la moyenne d'elements positifs du tableau.
*procedure qui affiche les elements du tableau.
b)-ecrire un programme qui fait appel en utilisant un menu les procedures et fonctions de l'unité.
A voir également:

9 réponses

j'ai vendu mon nick
29 oct. 2009 à 00:51
Salut !

C'est en fait assez simple :
1. tu écris la procédure qui lit un tableau à n éléments. Idéalement, le tableau et n sont des arguments de cette procédure
2. tu écris la fonction qui - alleï, je suis sympa sur ce coup là - cumule les contenus positifs de ton tableau (toujours argument) et en même temps les compte ! <- là, c'est trop fort
3. tu écris une procédure qui affiche le contenu du tableau reçu en argument.
4. tu regroupes tout ça dans une unité. Les éléments qui sont nécessaires mais qui ne doivent pas être visibles de l'extérieur doivent être déclarés dans la partie implementation, la partie interface continuant à lister les élements devant être connus de l'extérieur.
5. du coup, le programme est super facile à écrire :<code>program OhMonTablo;
uses monUnite;
var n: integer;
choix: string;
t: type_tableau;
begin
repeat
writeln;
writeln('1. lire le tableau');
writeln('2. calculer la moyenne');
writeln('3. afficher le tableau');
writeln('0. quitter');
write('tu veux quoi ');
readln(choix);
if choix = '1' then lire_elements(t, n)
else if choix = '2' then moyenner_elements_positifs(t, n)
else if choix = '3' then afficher_elements(t, n)
else if choix <> '0' then writeln('choix incorrect')
until choix = '0'
end.<code>
et voilà !
0
j'ai vendu mon nick
29 oct. 2009 à 00:53
avec le slash:
program OhMonTablo;
uses monUnite;
var n: integer;
choix: string;
t: type_tableau;
begin
repeat
writeln;
writeln('1. lire le tableau');
writeln('2. calculer la moyenne');
writeln('3. afficher le tableau');
writeln('0. quitter');
write('tu veux quoi ');
readln(choix);
if choix = '1' then lire_elements(t, n)
else if choix = '2' then moyenner_elements_positifs(t, n)
else if choix = '3' then afficher_elements(t, n)
else if choix <> '0' then writeln('choix incorrect')
until choix = '0'
end.
0
j'ai vendu mon nick > j'ai vendu mon nick
29 oct. 2009 à 00:54
il se fait tard là... :-(
program OhMonTablo;
uses monUnite;
  var n: integer;
      choix: string;
      t: type_tableau;
begin
  repeat
    writeln;
    writeln('1. lire le tableau');
    writeln('2. calculer la moyenne');
    writeln('3. afficher le tableau');
    writeln('0. quitter');
    write('tu veux quoi ');
    readln(choix);
    if choix = '1' then lire_elements(t, n)
    else if choix = '2' then sommer_elements(t, n)
    else if choix = '3' then afficher_elements(t, n)
    else if choix <> '0' then writeln('choix incorrect')
  until choix = '0'
end.

désolé pour le papier gaspillé
0
peaceman999 Messages postés 15 Date d'inscription lundi 6 juillet 2009 Statut Membre Dernière intervention 29 avril 2016 4
29 oct. 2009 à 19:11
merci les gars c'est genti de votre part, en tout cas je vouler le code pour faire l'unité mais le programme je me suis trés bien debrouier. merci encore une autre fois.
0
putin j esper pour loui ke l'fracè cè po ca langue
0
peaceman999 Messages postés 15 Date d'inscription lundi 6 juillet 2009 Statut Membre Dernière intervention 29 avril 2016 4
30 oct. 2009 à 00:52
lol moi comprendre toi quoi dire.
moi tuer toi si toi insulte moi :D
lol je parle français, anglais, espagnole et arabe si tu as besoin d'un soutien je peux t'aider. juste un conseil ne sous estime pas les gents. fais un fil de contact avec eux après tu as tout le droit de les juger.
en tout cas j'attends encore vos suggestions à propos de l'unité sous forme code pascal.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Le concombre démasqué
30 oct. 2009 à 01:05
Salut

vu que c'est le sujet de ton exercice, je te suggère de t'y atteler pour de bon : personne ne le fera à ta place.
si t'as un problème ponctuel, tu demandes de l'aide et je suis sûr que qqun te filera un coup de main.
0
pacorabanix
30 oct. 2009 à 01:08
problème ponctuel = tu as déjà fais un essai, tu le montres en décrivant ce qui ne joue pas ;)
0
peaceman999 Messages postés 15 Date d'inscription lundi 6 juillet 2009 Statut Membre Dernière intervention 29 avril 2016 4
4 nov. 2009 à 21:17
ok dacore
voila j'ai un probléme pour tracer cette fonction f(x)= (sin(x)+sin(x))/2 <x E [-Pi/2,Pi/2]>
j'ai esseyé avec ce code mais ça m'a donner erreur je sais pas ou réside l'ereur

uses graph;

type Fonction = function (x : real) : real;

function f (x: real) : real;
begin
f := (cos(x) + sin(x)) / 2;
end;

procedure courbe (f : fonction; x0, y0: integer; echelleX, echelleY : real);
var x, y : integer; xReel, yReel : real;
begin
for x := 0 to 640 do begin
xReel := (x - x0) * echelleX;
yReel := f (xReel);
y := y0 + yReel * echelleY;
plot (x, y);
end;
end;


begin
graphInit;
courbe (f, 320, 200, 0.01, 0.01);
end.

s'il vous plait c'est urgent
merci pour votre aide
0
Plop!

J'écris à propos de [https://forums.commentcamarche.net/forum/affich-14943339-turbo-pascal?Acces=1#9 f(x)=(sin(x)+sin(x))/2 <x E [-Pi/2,Pi/2]>].
Primo: pourquoi t'embêter la vie à passer par un type function ? on utilise un type fonction lorsque *avant* l'exécution du programme on ne sait pas encore si c'est la fonction f ou la fonction g qui devra être calculée.
dans ton cas, tu sais quelle est la fonction à calculer ((sin(x)+sin(x))/2) et tu sais qu'elle n'évoluera pas au cours de l'exécution de ton pgm. donc dans ton cas
uses graph;

function f(x: real) : real;
begin
  f := (cos(x) + sin(x)) / 2;
end;

procedure courbe (x0, y0: integer; echelleX, echelleY : real);
  var
    x, y : integer;
    xReel, yReel : real;
begin
  for x := 0 to 640 do begin
    xReel := (x - x0) * echelleX;
    yReel := f(xReel);
    y := y0 + yReel * echelleY;
    plot (x, y);
  end;
end;

begin
  graphInit;
  courbe (320, 200, 0.01, 0.01);
end.

nb: note au passage la disparition de l'erreur car l'appel depuis le programme aurait du être courbe(@f, ...)

Deuxio: tu nous parle de f(x) = (sin(x)+sin(x))/2) mais dans la fonction f, tu codes (sin(x)+cos(x))/2. où est la vérité ?
0
peaceman999 Messages postés 15 Date d'inscription lundi 6 juillet 2009 Statut Membre Dernière intervention 29 avril 2016 4
5 nov. 2009 à 11:40
ah pardon c'est juste une erreur de frappe je vouler dire (sin(x)+cos(x))/2
0
peaceman999 Messages postés 15 Date d'inscription lundi 6 juillet 2009 Statut Membre Dernière intervention 29 avril 2016 4
5 nov. 2009 à 12:25
on me dit que l'unité graph.tpu est introuvable
0