Средномесечни температури

Във файл са записани средномесечните темератури за 2016 година, по една на месец. Напишете програма, която чрез функции прави следното:

  • въвежда температурите от клавиатурата във файл
  • прочита данните от файла и ги извежда на екрана
  • намира броят на месеците в които температурата е над дадената
  • извежда на екрана кои са тези месеци и каква е била температурата тогава
  • въвежда температурите само за първите няколко месеца  във файл
  • прочита данните от файла и ги извежда на екрана (независимо за колко месеца са)
  • извежда данните за температурата само за месеца, в който сте родени
Публикувано в 10a с етикети , . Постоянна връзка.

12 коментара по Средномесечни температури

  1. Боряна каза:
    program SredniTemperaturi;
    procedure ZapishiTemperaturi;
    var
      F: file of integer;
      chislo, m: integer;
    begin
      Assign(F, 'temp.dat');
      Rewrite(F);
      WriteLn('Vavedete srednata temperatura za vseki mesec:');
      for m:= 1 to 12 do begin
        Write('mesec ', m, ' - ');
        ReadLn(chislo);
        Write(F, chislo);
      end;
      Close(F);
    end;
    procedure ProchetiTemperaturi;
    var
      F: file of integer;
      chislo, m: integer;
    begin
      Assign(F, 'temp.dat');
      Reset(F);
      WriteLn('Temperaturite sa:');
      for m:= 1 to 12 do begin
        Read(F, chislo);
        WriteLn('mesec ', m, ' - ', chislo);
      end;
      Close(F);
    end;
    procedure Proverka;
    var
      F: file of integer;
      dadeno, chislo, m, br: integer;
    begin
      br:=0;
      Write('Vavedete niakakva dadena temperatura, s koiato da sravniavame: ');
      ReadLn(dadeno);
      Assign(F, 'temp.dat');
      Reset(F);
      WriteLn('Temperaturite nad dadenata sa:');
      for m:= 1 to 12 do begin
        Read(F, chislo);
        if chislo>dadeno then begin
          br:=br+1;
          WriteLn('mesec ', m, ' - ', chislo);
        end;
      end;
      WriteLn('Obshtiat broi na tezi meseci e ', br);
      Close(F);
    end;
    var
      iskam: char;
    begin
      WriteLn('Iskate li da vavedete novi danni?');
      WriteLn('Molia otgovorete s d za da ili n za ne.');
      WriteLn('Ako izberete ne, shte rabotim sas starite.');
      ReadLn(iskam);
      if iskam='d' then
        ZapishiTemperaturi;
      WriteLn;
      ProchetiTemperaturi;
      WriteLn;
      Proverka;
      ReadLn;
    end.
    

    Самоче съм обединила третата и четвъртата точка. Вкъщи ще видя как трябва да се направят отделно.

    • Данаил каза:

      Много добре, Бори! Само dadeno можеше да е параметър – за да обхване функцията Proverka и случаите, в които знаем вече за каква температура искаме да проверяваме. Тогава няма да е нужно тя да се чете от клавиатурата. Всичко останало е перфектно.

  2. Виктория каза:

    С Аля :D

    program project1;
    
    const N = 12;
    
    procedure VavediT;
    var
      F: file of integer;
      t, i: integer;
    begin
      Assign(F, 'chisla.dat');
      Rewrite(F);
      WriteLn('vavedete 12 temperaturi:');
      for i:= 1 to N do begin
        ReadLn(t);
        Write(F, t);
      end;
      WriteLn;
      Close(F);
    end;
    
    procedure ProchetiT;
    var
      F: file of integer;
      t, i: integer;
    begin
      Assign(F, 'chisla.dat');
      Reset(F);
      WriteLn('Temperaturite sa:');
      for i:= 1 to N do begin
        Read(F, t);
        WriteLn(t);
      end;
      Close(F);
    end;
    
    var
      otgovor: string;
    
    begin
      WriteLn('Iskate li da vavedete novi temperaturi?');
      ReadLn(otgovor);
      if otgovor='da' then begin
         VavediT;
         ProchetiT;
      end
      else
      if otgovor='ne' then ProchetiT;
      ReadLn;
    end.    
      
  3. procsy каза:
     program Project1;
    
    Const N=12;
    
    procedure Vavejdanenatemp;
     var
       F:file of integer;
         temp,i:integer;
    begin
      Assign(F,'Temp.dat');
      Rewrite(F);
      Writeln('Zapishete srednata temp. prez wsichki meseci');
      for i:=1 to N do begin
        Readln(Temp);
        Write(F,Temp);
      end;
      Close(F);
    end;
    
    Procedure Izvejdanetemp;
    var
       F:file of integer;
         temp,i:integer;
    begin
      Assign(F,'Temp.dat');
      Reset(F);
      Writeln('Temp sa:');
      for i:=1 to N do begin
        Read(F,Temp);
        Writeln(Temp);
      end;
      Close(F);
    end;
    
    Procedure Srednatemp;
    var F:file of integer;
         temp,i,x:integer;
    begin
      Assign(F,'Temp.dat');
      Reset(F);
      Write('Vavedete Dadena Temp.');
      read(x);
      for i:=1 to N do Begin
        Read(F,temp);
        If x < temp then
        Writeln('Temp e nad dadenata') Else
          Writeln('error');
    
      end;
      Close(F);
      end;
    
      begin
      Vavejdanenatemp;
      Izvejdanetemp;
      Srednatemp;
      Readln;
    end.       
  4. Svetli каза:
    program project1;
    var
      Temperatura: file of Integer;
      t,i,m,br,tdadeno:integer;
    
    function ZapishiT(t,m:integer):integer;
    begin
      Assign(Temperatura, 'Temperatura.dat');
      Rewrite(Temperatura);
      m:=1;
      for i:= 1 to 12 do
      begin
        Writeln('Vavedi temperatua za mesec ',m);
        Readln(t);
        Write(Temperatura,t);
        m:=m+1;
      end;
      Close(Temperatura);
      Writeln('Stop vie vavedohte dostatuchno informaciq');
    end;
    
    function ProchetiT(t:integer):integer;
    begin
      Assign(Temperatura, 'Temperatura.dat');
      Reset(Temperatura);
      m:=1;
      for i:= 1 to 12 do
      begin
        Read(Temperatura,t);
        Writeln(t);
      end;
      Close(Temperatura);
      Writeln('Tova e vsichko ');
    end;
    
    function SravnenieT(tdadeno,t,br:integer):integer;
    begin
      Writeln('Vavedi temperatura za sravnenie');
      Readln(tdadeno);
    
      Assign(Temperatura, 'Temperatura.dat');
      Reset(Temperatura);
      for i:= 1 to 12 do
      begin
        Read(Temperatura,t);
        if t > tdadeno then
           br:=br+1;
      end;
      Writeln('Broqt na mesecite s temperatura po-golqma ot dadenata sa: ',br);
      Close(Temperatura);
    end;
    //извежда на екрана кои са тези месеци и каква е била температурата тогава
    function MeseciT(t,m:integer):integer;
    begin
      Assign(Temperatura, 'Temperatura.dat');
      Reset(Temperatura);
    
      for i:= 1 to 12 do
      begin
        Read(Temperatura,t);
        if m=1 then Writeln('Temperaturata za mesec Qnuari e: ',t);
        if m=2 then Writeln('Temperaturata za mesec Fevruari e: ',t);
        if m=3 then Writeln('Temperaturata za mesec Mart e: ',t);
        if m=4 then Writeln('Temperaturata za mesec April e: ',t);
        if m=5 then Writeln('Temperaturata za mesec Mai e: ',t);
        if m=6 then Writeln('Temperaturata za mesec Juni e: ',t);
        if m=7 then Writeln('Temperaturata za mesec Juli e: ',t);
        if m=8 then Writeln('Temperaturata za mesec Avgust e: ',t);
        if m=9 then Writeln('Temperaturata za mesec Septemvri e: ',t);
        if m=10 then Writeln('Temperaturata za mesec Oktomvri e: ',t);
        if m=11 then Writeln('Temperaturata za mesec Noemvri e: ',t);
        if m=12 then Writeln('Temperaturata za mesec Dekemvri e: ',t);
        m:=m+1;
      end;
    
      Close(Temperatura);
    
    end;
    
    begin
      ZapishiT(t,i);
      Writeln;
    
      ProchetiT(t);
      Writeln;
    
      SravnenieT(tdadeno,t,br);
      Writeln;
    
      MeseciT(t,m);
    
      Readln;
    end.
    

    Направена е от вкъщи.

    • Данаил каза:

      Браво за самостоятелната работа, Светли! Прегледай обаче пак презентациите „Функции – глобални и локални променливи“ и „Функции – глобални и локални променливи – упражнения“ и виж дали е така при теб. И прочети пак условието на последната подточка. Работата вкъщи е тройно по-трудна, защото човек не може да пита нито съученик, нито учителя. Но точно и заради това е тройно по-полезна :-).

  5. Lubomira каза:
    program temperaturi;
    
    const N = 12;
    
    procedure ZapisTemp;
    
    var
      T: file of real;
      chislo: real;
      i:integer;
    begin
      Assign(T, 'Temp');
      Rewrite(T);
      WriteLn('vavedete 12 mesechni temperaturi:');
      for i:= 1 to N do begin
        ReadLn(chislo);
        Write(T, chislo);
      end;
      Close(T);
    end;
    
    procedure ProchitaTemp;
    var
      T: file of real;
      chislo:real;
      i:integer;
    begin
      Assign(T, 'Temp');
      Reset(T);
      WriteLn('Temperaturite sa:');
      for i:= 1 to N do begin
        Read(T, chislo);
        WriteLn(chislo:5:2);
      end;
      Close(T);
    end;
    
    Procedure Brtemp(Temperatura:real);
    var
    T: file of real;
    chislo, BrWisokatemp: real;
    i:integer;
    begin
      BrWisokatemp:=0;
      Assign(T, 'Temp');
      Reset(T);
      for i:= 1 to N do begin
        Read(T, chislo);
        If chislo > Temperatura
        then BrWisokatemp:=BrWisokatemp+1;
     end;
      WriteLn('Mesecite s temperatura po-wisoka ot dadenata sa:',BrWisokatemp:5:2);
      ReadLn;
      Close(T);
    end;
    
    begin
      ZapisTemp;
      ProchitaTemp;
      Brtemp(20);
      ReadLn;
    end.
                                                 
  6. procsy каза:

    Цялата програма

     program temperaturi;
    
    Const N=3;
    
    procedure Vavejdanenatemp;
     var
       F:file of integer;
         temp,i:integer;
    begin
      Assign(F,'Temp.dat');
      Rewrite(F);
      Writeln('Zapishete srednata temp. prez wsichki meseci');
      for i:=1 to N do begin
        Readln(Temp);
        Write(F,Temp);
      end;
      Close(F);
    end;
    
    Procedure Izvejdanetemp;
    var
       F:file of integer;
         temp,i:integer;
    begin
      Assign(F,'Temp.dat');
      Reset(F);
      Writeln('Temp sa:');
      for i:=1 to N do begin
        Read(F,Temp);
        Writeln(Temp);
      end;
      Close(F);
    end;
    
    Procedure Srednatemp;
    var F:file of integer;
         temp,i,x:integer;
    begin
      Assign(F,'Temp.dat');
      Reset(F);
      Write('Vavedete Dadena Temp.');
      readLN(x);
      for i:=1 to N do Begin
        Read(F,temp);
        If x < temp then
        Writeln('Temp e nad dadenata:',temp);
    
    
      end;
      Close(F);
      end;
    
    procedure Moimesec;
     var F:file of integer;
          mesec ,temp,i:integer;
     begin
            Assign(F,'Temp.dat');
            reset(F);
            Writeln('vavedete koi v mesec ste rodeni');
            Readln(mesec);
            i:=Filesize(F);
            If i> N then writeLn('Nqma takava temp')
            else begin
            Seek(F,mesec-1);
            read(F,Temp);
            Write('Temp v vashiq mesec e:',temp);
    
    end;
     close(F);
     end;
    
    
    begin
      Vavejdanenatemp;
      Izvejdanetemp;
      Srednatemp;
      Moimesec;
      Readln;
    end.
                                                                                     

Вашият коментар