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
    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
  2. 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
      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. 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
          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
        2. 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
        3. 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