Programmation avec pascal

Bonjour,je suis debutante
voulais vs bien m aide je m connai pa bien
je doi ecrie un programme.qui a chaque jour du moi correspond un temps.j ai ecrire mai le programme ne marche voila ce que j ai fai
programm temps;
uses crt;

type
jour=1..31;
temps:(hiver,lete, primptemp, neige);
ttemps=array[jour] of temps;
procedure wetter(var c:ttemps);
var i:jour;
begin
for i:=1 to 31 do
c[i]:=temps;
end;
var k:ttemps;
t:jour;
begin
writeln('donner un jour');
readln(t);
wetter(k);
end.
merci pour votre aide
Configuration: Windows Vista Internet Explorer 7.0

7 réponses

  1. Modérateur
    Dans ton énoncé, ce n'était pas précisé mais il faudrait créer une procédure qui dit quel temps il a fait tel ou tel jour, par exemple
    procedure WetterVorhersage(var t:TTagsWetter);
    var i:integer; s:string; b:boolean;
    begin
    for i:=1 to 6 do
        begin
        b:=true;
        while b do
              begin
              b:=false;
              write('Wetter vom ',i,'. ist ');
              readln(s);
    
                   if s='sonne'  then t[i]:=sonne
              else if s='wolken' then t[i]:=wolken
              else if s='regen'  then t[i]:=regen
              else if s='schnee' then t[i]:=schnee
              else begin
                   write(chr(7)); // Signalton
                   b:=true; // noch einmal
                   end;
              end;
        end;
    end;
    
    var t:TTagsWetter;
    begin
    WetterVorhersage(t);
    writeln;
    WetterAusgabe(t);
    writeln; write('Ende des Programms. Drucken Sie die Eingabetaste'); readln;
    end.
    0
    1. Modérateur
      Si ça n'affiche que "sonne" c'est normal vu le programme de test que j'ai fait...
      Quant au fait que ça ne commence qu'à 9, c'est parce que ta fenêtre d'affichage ne doit pas être assez grande (apparemment elle n'accepte pas plus de 25 lignes)
      0
      1. et comment je change afin que s affiche tout les quatre temps
        0
    2. Modérateur
      En pratique on se sert très peu des types énumérés (trop compliqués à utiliser), mais bon si l'exercice l'impose :
      program Wetter;
      
      type TWetter=(sonne,wolken,regen,schnee);
           TTag=1..31;
           TTagsWetter=array[TTag] of TWetter;
      
      procedure WetterAusgabe(var t:TTagsWetter);
      var i:integer;
      begin
      for i:=1 to 31 do
          case t[i] of
          sonne : writeln(i:2,' sonne ');
          wolken: writeln(i:2,' wolken');
          regen : writeln(i:2,' regen ');
          schnee: writeln(i:2,' schnee');
          end;
      end;
      
      var i:integer; t:TTagsWetter;
      begin
      for i:=1 to 31 do t[i]:=sonne; // zum Beispiel
      WetterAusGabe(t);
      writeln; write('Ende des Programms. Drucken Sie die Eingabetaste'); readln;
      end.
      0
      1. merci pour ton aide mai je n avance pas de compilierung j ai a l ecran seulement sonnne et ca commence par 9 et non 1 peut tu peu etre m aide
        0
    3. merci davance
      mai dans le devoir on me demande en premier un txp d ennumeration appele Twetter=(sonne,wolken,regen,schnee);
      et apre untyp de donnee appele Ttag,qui a valeur der jour d un moi(1-31) a chiffre accept.
      et apre
      un type de donne array appele Ttagwetter=array[Ttag] of Twetter;
      ensuite je doi ecrire la procedure appele wetterausgabe de parametre Ttagswetter qui donne pour chaque jour le temps en string a l ecran
      merci pour ton aide
      0
      1. Modérateur
        Essaye de partir avec de bonnes bases...
        Exemple au lieu d'utiliser un type énuméré, utilise un array de string, c'est plus simple !
        Voici une procédure qui pourrait t'être utile :
        program lune;
        
        const nMax:integer=5;
        const wetter:array[1..nMax] of string=('sonnig','bewolkt','regen','gewitter','schnee'); // on me pardonnera mon allemand ;)
        
        procedure WahlWetter(var s:string);
        var i:integer;
        begin
        writeln('Wahl das Wetter :');
        writeln;
        for i:=1 to nMax do
            writeln(chr(9),i,' -> ',wetter[i]);
            writeln;
        write('Index : ');
        readln(i);
        writeln;
        s:=wetter[i];
        end;
        0
        1. le pblm est que le devoir est en allemand.je doit ecrire un program qui a chaque jour d un mois correspond une saison et cela avec une prozedur,qui donne a chaque jour une saison a l ecran du typ string.merci
          0
          1. Modérateur
            Il faut absolument que tu utilises un programme pour débuger ton code source, ça t'évitera de faire des erreurs aussi énormes.

            Le principe de la programmation c'est de donner des instructions à l'ordinateur avec un langage spécifique, mais ce langage doit respecter une syntaxe (un peu comme en français), on ne peux pas se permettre d'utiliser un langage approximatif avec la programmation...

            De plus ton programme ne fais pas du tout ce que tu voudrais qu'il fasse, mais essaye déjà de comprendre toutes les erreurs que tu as faites
            program lune; // un seul m à "program", car c'est de l'anglais
            // ne mets pas "temps" comme nom de programme, tu utilises déjà ce terme plus loin
            
            uses crt; // facultatif, tu ne t'en sers pas
            
            type jour=1..31; // si tu ne sais pas t'en servir alors ne l'utilise pas
            
                 saison=(printemps, ete, automne, hiver); // ps. la neige c'est en hiver
                 // et il ne s'agit pas de temps, ici mais de saisons
            
                 temps=(soleil, pluie, orage, neige); // ça c'est le temps !
            
                 mois=array[1..31] of temps; // c'est très maladroit de mettre array[jour]
            
            
            procedure weather(var m:mois); // le temps en anglais se dit "weather"
            // c'est curieux de mettre `c` comme variable de type `ttemps`
            var i:integer; // c'est très maladroit de mettre un type jour ici
            begin
            for i:=1 to 31 do
                m[i]:=soleil; // temps est un type et non une valeur, que veux tu faire ?
            end;
            
            var m:mois; // idem, pourquoi appeler `k` une variable de type `ttemps` ?
            j:jour; // idem, pourquoi appeler `t` une variable de type `jour` ?
            begin
            writeln('donner un jour');
            readln(j);
            weather(m); // ici ton programme ne fais rien d'intéressant, que veux tu faire ?
            end.
            0
            1. le pblm est que je ne sai pa cooment le fait .je veu dans mon program une prozedur ,qui a chaque jour un temps associe et donne öe resultat a l ecran a string
              0