Aller au contenu
Règlement du forum ×
IPTV et arnaques ×

Pascal.


Yacine_3tm

Messages recommandés

Bon n'ayant plus aucun souvenir du langage pascal, je te propose la solution sous forme algorithmique (y'a qu'à traduire en pascal... le principe étant donné).

 

Exo 2 :

Ceci est un cas typique qu'on peut facilement résoudre avec de la récursivité :

 

programme Exo2

 

fonction calculSomme(n:entier):réel { // C'est à dire que la fonction prend en paramère un entier et elle rend à la fin un réél.

 

si n==1 alors

retourne 1

sinon

1/fact(n) + calculSomme(n-2)

fsi

 

fin

 

Note : Si tu as peur de la récursivité (ou si tout simplement ce principe n'a pas encore été vu en cours), tu peux utiliser une boucle while avec un i initialisé à 1 et qui va jusqu'à i=n avec un pas de 2 (c'est à dire que tu i fera : 1, 3, 5, 7...etc).

Modifié par HAVOC
Lien vers le commentaire
Partager sur d’autres sites

Pour l'exo3, c'est un cas typique d'exo accès mathématique/recherche... tout ce que je déteste mdr.

 

Bref... ici tout est une histoire de sélection d'un bon type ou plutôt de la bonne forme pour stocker ses données. Je pense qu'en pascal les tableau à deux dimensions existent, c'est ce que tu dois utiliser.

 

Pour la lecture et l'écrire de la matrice il te suffit d'utiliser des boucles, en plus c'est une matrice carrée (N*N).

 

Exemple (en C l'exemple cette fois lol) :

 

int i, j, n; // Déclaration de deux entier i, j et n

int matrice[][]; // Déclaration d'un tableau d'entier à deux dimensions

 

printf("Veuillez entrez la taille de la matrice : ");

scanf("%d", &n); // Rien d'inquiétant ici, je récupère juste l'entier entré au clavier par l'utilisateur

 

for (i = 0, i

for (j = 0, j

 

printf("Veuillez entrer l'élément %d, %d de la matrice", i, j); // Pour obtenir un affichage du style : Veuillez entrer l'élément 0,0 de la matrice

 

scanf("%d", &matrice[j]); // On met l'entier tapé dans une des case de la matrice

 

}

}

 

Voilà... on a créé notre matrice.

 

Pour les questions B et C c'est aussi un parcours comme celui que j'ai donné avec un petit if pour vérifier si c pair ou impair.

 

Pour la suite... j'ai pas trop le temps là mais j'essaierai d'y répondre plus tard.

Lien vers le commentaire
Partager sur d’autres sites

program EXO2;

var N : integer, I : integer, P : integer, S : real;

function Fact ( n : integer) : integer;
begin
if n=0 then Fact := 1
else
  begin
  Fact := Fact(n-1) * n ;
  end;
end;


begin

S := 1;
P := 1;

for I :=1 to N do
begin

S := S + 1 / Fact( P ) ; 
P := P + 2 ;
end;

write ( S ) ;

end.

 

pour le reste tu fais un petit effort :)

Modifié par mouradski
Lien vers le commentaire
Partager sur d’autres sites

Ah ! Mourad je te demande un tout petit dérnier service :D", comment déterminer les élément paires de la matrice et de faire d'eux les éléments d'un vecteur ?

Si tu te souviens bien sûr, parce que le pascal c'est seulement pour les premières années :)

 

Merci.

 

fonction Pair qui retourne Vrai si l'entier passé en paramètre est pair et faux sinon :)

 

function Pair ( n : integer ) : bool;
begin
if (n mode 2) = 0 then Pair := true;
else Pair := false;
end;

 

Pour les vecteurs qui ne sont que des tableaux dynamiques consultes ce lien et digères bien la notion de pointeur.

 

C'est pas parce que le Pascal n'est qu'en première année bark qu'il faut le négliger, c'est un langage purement pédagogique c-à-d qu'il t'apprendra la philosophie de la programmation, je te conseille de bien l'étudier sinon tu auras un peu de mal à digérer plus tard le C/C++ et cie.

Modifié par mouradski
Lien vers le commentaire
Partager sur d’autres sites

Salut Havoc,

 

Merci beaucoup pour ton aide, mais je crois que ça c'est du C++ :D"

 

Chui encore dans le pascal lol, je cherche un programme de langage pascal :)

 

Merci.

 

Kifkif, C ou Java ou Python...c'est la syntaxe qui diffère, l'idée de résolution reste à quelques détails près la même!

Lien vers le commentaire
Partager sur d’autres sites

Kifkif, C ou Java ou Python...c'est la syntaxe qui diffère, l'idée de résolution reste à quelques détails près la même!

:D:D:D" je ne suis que débutant dans les langages, faire la différence entre les syntaxe et comme la grande différence entre toi et moi en programmation :)"

Lien vers le commentaire
Partager sur d’autres sites

Ah! Merci beaucoup Mourad, je te promis que si j'aie une très bonne note en Algo demain, 3endek pizza me 3endi.

 

Allez @+

 

Un petit ennui de ma part si tu le permets, comment distinguer ces paires d'une matrice.:o

 

Merci. ;)

 

lol ben tu exécutes la fonction Pair sur chacune des case de la matrice comme suit

 

for i :=1 to N do 
for j :=1 to N do 
  begin
  if Pair ( Matrice [i,j]) then // ajouter la valeur au vecteur approprié
  end;

 

je te conseille de jeter un coup d'œil sur le lien que je t'ai donné en haut pour voir comment manipuler les Matrices/Vecteurs, pour faire simple je te conseille de travailler qu'avec des vecteurs statiques sur dimensionnés s'il le faut mais de préférence utilise des structures dynamiques avec les pointeurs et là WOULAHI EL 3ADIM que Google saura faire copain copain avec toi mieux que moi :)

Lien vers le commentaire
Partager sur d’autres sites

Ah bon, donc si j'ai bien compris, je déclare avant la fonction qui définie les paires puis j'utilise directement paire comme connu.

 

Très très bien, merci beaucoup pour le lien et ton aide, ça m'a vraiment aidé vu qu'on a pas vu les fonctions ni en cours ni en TD :).

 

Merci à Havoc aussi pour ton aide ;)

 

Allez @++ mes amis :)

 

----------------------------------------------------------------------------------------------------------------------------

Vive ForumDz !

Modifié par Yacine_3tm
Lien vers le commentaire
Partager sur d’autres sites

Je viens de passer aujourd'hui l'EMD d'Algo, malheureusement y avait pas de fonction, on nous a donné le déroulement d'un Algorithme avec la boucle Tant que pour seulement 4.5 pts :mad::(:o :

Algorithme calcul

Variables a,r: réel

i,b,c: entier

Début

lire(a,b)

c

Si a≠0 alors r

i

Tant que i

r

i

Fintantque

Si b

finsi

Ecrire®

Sinon écrire ('Erreur: a est nul')

 

Finsi

Fin

 

Trouvez moi l'expression générale qu'il calcule et je vais savoir est ce que j'aurai 4.5/4.5 sur cette exo :)

 

Ok je sais c'est dégoutant de résoudre un tel problème en middle de juin avec une chaleur pareille...ouai je sais :D"

Modifié par Yacine_3tm
Lien vers le commentaire
Partager sur d’autres sites

Cet algorithme visiblement calcul l'expression générale : a^b (lire a puissance b) avec a étant un réel et b un entier.

 

Note : par contre je ne vois pas pourquoi l'algo énoncé affiche une erreur si a est nulle... le résultat donne zéro dans ce cas et puis c'est tout.

Lien vers le commentaire
Partager sur d’autres sites

Cet algorithme visiblement calcul l'expression générale : a^b (lire a puissance b) avec a étant un réel et b un entier.

 

Note : par contre je ne vois pas pourquoi l'algo énoncé affiche une erreur si a est nulle... le résultat donne zéro dans ce cas et puis c'est tout.

 

Pour A^b je lance un grand youyou, j'ai donc eu 100% de l'exo.

 

Et pour le ('erreur bla blab bla') tu sais, ils cherchent toujours à inventer des diversions sans intérêt.

 

Merci Havoc :)

Lien vers le commentaire
Partager sur d’autres sites

Bon, un autre de 6pts :) :

 

Soit une matrice A d'ordre (n,m) de valeurs réelles donné. Ecrivez un programme Borland Pascal permettant de compter le nombre d'occurrences dans cette matrice d'une valeur V donnée et de récupérer leurs position dans un tableau POS. Le nombre d'occurrences est le nombre de fois que V apparît dans la matrice A.

 

Exemple : Soit A=32628002.jpg, le nombre d'occurrences de 7 est 3. POS: [1 3 2 1 3 2].

Lien vers le commentaire
Partager sur d’autres sites

Bon, un autre de 6pts :) :

 

Soit une matrice A d'ordre (n,m) de valeurs réelles donné. Ecrivez un programme Borland Pascal ...

mdr :D :D

 

puisque je passe par la .. :

const
 n = 3;

type 
 TMat = array [0 .. n - 1, 0 .. n - 1] of Integer;
 TTab = array [0 .. (n * n - 1)] of record
   i, j: Byte;
 end;

function nombreocc(k: Integer; m: TMat; var v: TTab): Integer;
var
 i, j, s: Integer;
begin
 s := 0;
 for i := 0 to n - 1 do
   for j := 0 to n - 1 do
     if k = m[i, j] then
     begin
       v[s].i := i;
       v[s].j := j;
       Inc(s); { équivalent à s := s + 1;}
     end;
  nombreocc := s;
end;

voila essaye de comprendre ce petit code (rien de bien compliqué normalement..), et écrit le programme principal..

Lien vers le commentaire
Partager sur d’autres sites

Bon, pour les erreurs ? Pour tu crois que c'est des erreurs ? : De l'ordre n:ex: 3, m:ex:2, et borland pascal n'existe pas ?

A propos du code:

 

v.i := i;

v.j := j;

je ne comprend pas bien, bon... je comprend le principe mais le syntaxe, non. Et y à pas d'affichage des résultat, qu'est qu'on doit afficher ?

Merci.

Lien vers le commentaire
Partager sur d’autres sites

Bon, pour les erreurs ? Pour tu crois que c'est des erreurs ? : De l'ordre n:ex: 3, m:ex:2, et borland pascal n'existe pas ?

A propos du code:

 

v.i := i;

v.j := j;

je ne comprend pas bien, bon... je comprend le principe mais le syntaxe, non. Et y à pas d'affichage des résultat, qu'est qu'on doit afficher ?

Merci.

 

Borland est un Editeur de Compilateur/IDE

Pascal est un langage de programmation.

 

Pour la syntaxe, un Record comme son nom l'indique est un Enregistrement, une sorte de structure qui contient des éléments de différents types, dans le cas de ton code chaque enregistrement contient deux variables de type Byte, on accède aux éléments composant le Record avec un point, ex : MonRecord.VarableX, on peut lire et affecter une valeur à cette variable, on peut aussi créer des tableaux de type record et accéder au variables des éléments ce ce tableaux avec MonTableau[index].VariableX.

Lien vers le commentaire
Partager sur d’autres sites

Borland est un Editeur de Compilateur/IDE

Pascal est un langage de programmation.

 

Pour la syntaxe, un Record comme son nom l'indique est un Enregistrement, une sorte de structure qui contient des éléments de différents types, dans le cas de ton code chaque enregistrement contient deux variables de type Byte, on accède aux éléments composant le Record avec un point, ex : MonRecord.VarableX, on peut lire et affecter une valeur à cette variable, on peut aussi créer des tableaux de type record et accéder au variables des éléments ce ce tableaux avec MonTableau[index].VariableX.

 

Désolé pour te dire mais peut-tu trouver une autre solution simple avec seulement les types : Real et Integer.

j'ai trouvé la solution pour l'occurrence mais pour la position des cette dernière sous forme d'un Tableau, quelque chose m'échappe.

 

Merci.

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • Messages

    • Autre pratique, on vous coupe l’adsl malgres vous pour vous obliger a aller vers la fibre ou l’abonnement de la ligne et l’abonnement internet sont plus élevés !
    • السلام عليكم  هل من شرح لهذه الخاصية بارك الله فيكم
    • Salam @dzgeek123. Je compte bientôt prendre un ONT avec OMCI Manager, sûrement le LXT-010H-D (merci à @vezvez pour le conseil). Je m'intéresse aussi à un routeur qui gère bien le bufferbloat. Comme tu utilises un VSOL + GL.iNet Flint 2, j’imagine que tu l’as configuré avec SQM + CAKE ? Est-ce que tu pourrais faire ce test et partager ton résultat ? 👉 https://www.waveform.com/tools/bufferbloat Je suis surtout curieux de la latence en gaming, si tu as un retour d’expérience à ce niveau. Merci d’avance, ça m’aiderait beaucoup 
    • J'ai calculé le nb de guichets nécessaires pour la période estivale en Tunisie ; 5000 familles/j vont en tunisien. Si ça prend 10 min par famille d'échanger le bon contre des devises, il faudrait environ 90 guichets et les algériens sont connus mondialement pour être ultra efficace bien entendu   Même des randoms sur un forum peuvent estimer que ça pue et presque inapplicable 
    • Tu peux faire un bénéf si tu fais ça ; tu vas en Tunisie une seule journée, tu reviens en Algérie et tu revends ce que t'as. Après si le but est de faire baisser le cours de devise du taux non officiel, on devrait autoriser tous les algériens à acheter des devises s'ils le souhaitent, qu'ils partent ou non. c'est une mesure démago pour faire semblant de foutre quelque chose ; ils distribuent juste les dividendes du pétrole.  le vrai problème de ce truc, c'est plutôt l'application ; faut aller dans une banque classique donner des dinars en échange d'un bon, puis au niveau de l'aeroport etc... échanger le bon l'équivalent contre des devises. J'ai hâte de voir la gueule des bureaux à la frontière tunisienne quand y aura 200.000 algériens qui vont vouloir réclamer leur dû   on est bons pour 30 bonnes années de communisme hein, les boomix de l'indépendance ont une bonne espérance de vie machallah. Un libéral à la Milei ça arrivera certainement pas dans le Dzistan.
×
×
  • Créer...