Programmation avec pascal

lune -  
KX Messages postés 19031 Statut Modérateur -
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. KX Messages postés 19031 Statut Modérateur 3 020
     
    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. lune
       
      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. lune
     
    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
  3. KX Messages postés 19031 Statut Modérateur 3 020
     
    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
  4. lune
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. KX Messages postés 19031 Statut Modérateur 3 020
     
    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. lune
       
      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
  7. KX Messages postés 19031 Statut Modérateur 3 020
     
    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. lune
       
      et comment je change afin que s affiche tout les quatre temps
      0
  8. KX Messages postés 19031 Statut Modérateur 3 020
     
    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