Пари за закуска

Група ученици от 10а всеки ден голямото междучасие излиза за закуска. Понякога обсъждат кой колко пари за закуска има за деня и дали ще им стигнат за това или онова. Друг път искат да си купят заедно нещо – примерно една голяма пица. Понеже времето през голямото междучасие все пак е малко, а и тях ги мързи да смятат, решили да направят програма, която:

  1. позволява да се укаже колко души са и колко пари за закуска има всеки
  2. отпечатва този списък с пари
  3. отпечатва колко пари имат общо всички и по колко се падат средно на човек
  4. отпечатва коя е най-малката и най-голямата сума пари за човек
  5. отпечатва броят на хората с повече от 2 лв.
  6. по желание: записва тази информация във файл или я прочита оттам
Публикувано в 10a с етикети . Постоянна връзка.

14 Responses to Пари за закуска

  1. Боряна каза:

    не съм направила точката „по желание“, защото информацията ми е от целочислен и реален тип, тоест не е еднотипна и не може да се сложи в типизан файл, евентуално ще погледна за текстов файл вкъщи

    program Project1;
    var
      a: array[1..100] of real;
      i, N, br: integer;
      obshto, sredno, min, max: real;
    begin
      //колко души са и по колко пари има всеки
      Write('Kolko hora izlizat za zakuska dnes: ');
      ReadLn(N);
      WriteLn('Vavedete po kolko pari si nosi vseki.');
      for i:=1 to N do begin
        Write(i, ' - ');
        ReadLn(a[i]);
      end;
    
      //отпечатване на горната информация
      WriteLn('Natisnete Enter,za da otpechatate gornata informazia.');
      ReadLn;
      for i:=1 to N do
        WriteLn(i, ' - ', a[i]:0:2);
      WriteLn;
      WriteLn('Natisnete Enter, za da prodalgite.');
      ReadLn;
    
      //колко пари общо? колко пари средно на всеки?
      obshto:=0;
      sredno:=0;
      for i:=1 to N do
        obshto:=obshto+a[i];
      sredno:=obshto/N;
      WriteLn('Grupata ot ', N, ' uchenika imat obshto ', obshto:0:2, ' lv.');
      WriteLn('Na vseki ot tiah se padat sredno po ', sredno:0:2, ' lv.');
      WriteLn;
      WriteLn('Natisnete Enter, za da prodalgite.');
      ReadLn;
    
      //минимална и максимална сума
      min:=a[1];
      max:=a[1];
      for i:=2 to N do
        if a[i]<min then
          min:=a[i]
        else
          if a[i]>max then
            max:=a[i];
      WriteLn('Nai-malkata suma e ', min:0:2, ', a nai-goliamata - ', max:0:2);
      WriteLn;
      WriteLn('Natisnete Enter, za da prodalgite.');
      ReadLn;
    
      //хора с повече от 2 лв.
      br:=0;
      for i:=1 to N do
        if a[i]>2 then
          br:=br+1;
      WriteLn('Horata s poveche ot 2 lv. sa ', br, ' na broi.');
      ReadLn;
    end.
    
    • Данаил каза:

      Поздравления! Много добре направено и обяснено и много дружелюбни и ясни съобщения на екрана! :-) А за записа във файл – къде е проблема да запишеш само парите в типизиран файл?

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

    С Аля

     
    program Project1;
    var
      Pari: array [1..20] of real;
      i, Broi: integer;
      Suma: real;
    begin
      Suma:=0;
      Write('Kolko uchenici otivat za zakuski: ');
      ReadLn(Broi);
      WriteLn('Po kolko pari ima vseki?');
      for i:= 1 to broi do begin
       Readln(pari[i]);
       Suma:=Suma+pari[i];
      end;
      Write('Sumata na parite na vsichki uchenici e: ',Suma:6:2);
      ReadLn;
    end.       
    
  3. Lubomira каза:
    program Project1;
    var
    a:array [1..23]of integer;
    i, N ,broi :integer;
    Suma, Min, Max :real;
    
    begin
    
    WriteLn('Vuvedete broya na uchenicite subirashti pari za zakuska');
    ReadLn(N);
    WriteLn('Vuvedete kolko pari ima wseki uchenik:');
    For i:=1 to N do begin
      ReadLn (a[i]);
    end;
    
    WriteLn('Parite dadeni ot wseki uchenik sa:');
    for i:=1 to N do begin
      WriteLn(a[i]);
    end;
    
    Suma:=0 ;
    for i:=1 to N do begin
      Suma:=Suma+a[i];
    end;
    WriteLn('Sumata ot parite e :',Suma:5:2);
    
    min:=a[1];
    for i:=2 to N do begin
      if a[i] < min then
      min:=a[i];
    end;
    WriteLn('Nai-malkata suma pari e:',min:5:2);
    
    max:=a[i];
    for i:=2 to N do begin
      if a[i] > max then
      max:=a[i];
    end;
    WriteLn('Nai-golyamata suma pari e :',max:5:2);
    
    broi:=0 ;
    for i:=1 to N do begin
      if a[i] > 2 then
      Broi:=Broi+1 ;
    end;
    WriteLn('Broya na uchenicite dali poweche ot 2lv. e :',broi);
    ReadLn;
    end.
                                                   
  4. Svetli каза:
    program project1;
    var
      a: array[1..36] of Integer;
      i,N:integer;
      T:text;
    
    function Spisuk(N:integer):integer;
    begin
      Assign(T,'spisuk.txt');
      Rewrite(T);
      for i:= 1 to N do begin
        Writeln('Vavedete pari:');
        Readln(a[i]);
        Write(T,a[i]);
      end;
      Writeln('Stop! Vie vavedohte dostatuchno pari');
      Close(T);
    end;
    
    function PechatS(N:integer):integer;
    begin
      Writeln('Spisuka e: ');
       for i:= 1 to N do begin
        Writeln(a[i]);
      end;
      Writeln('Tova e vsichko ot spisuka.');
    end;
    
    function Proverkairezultat(N:integer):integer;
    var
      suma,min,max,br:integer;
      sredno:real;
    begin
      min:=a[1];
      max:=a[1];
      suma:=0;
      sredno:=0;
      br:=0;
       for i:= 1 to N do begin
        Writeln(a[i]);
        suma:=suma+a[i];
        if min <a> a[i] then
           max:=a[i];
        if a[i] &gt; 2 then
           br:=br+1;
      end;
       sredno:=suma/N;
    
      Writeln('Obshto vsichki imat: ',suma,' lv.');
      Writeln('Sredno na chovek se pada po: ',sredno:5:2, ' lv.');
      Writeln('Nai-malkata suma na chovek e: ',min,' lv.');
      Writeln('Nai-golqmata suma na chovek e: ',max,' lv.');
      Writeln('Broqt na horata dali pari poveche ot 2 lv. sa: ',br);
    end;
    
    begin
      Writeln('Vavedi kolko choveka shte budat:');
      Readln(N);
      Writeln;
    
      Spisuk(N);
      Writeln;
    
      PechatS(N);
      Writeln;
    
      Proverkairezultat(N);
      Readln;
    end.
    

    Много се чудих, дали да направя последното условие и реших да опитам. Направих само част от него. Не съм сигурен, че е така, но ….

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

      Ехааа, Светли! Получило се е, и още как! Ти си направил едновременно прочитане на елементите на масива и записа във файл. :-) И всички проверки и сметки също са ти групирани в един цикъл. Чудесна идея и много ефективно! И програмата е много добре подредена и с ясни и разбираеми съобщения, и разделена на функции, браво! Тази програма си е за два плюса или направо за оценка. :-)

      Виж обаче около намирането на минималната и максималната стойност, там имаш някакви грешки, оправи си ги.

  5. Виктория каза:
    program Project1;
    var
      Pari: array [0..20] of real;
      i, Broi, Poveche2: integer;
      Suma, Sredno, min, max: real;
    
    begin
      Sredno:=0;
      Poveche2:=0;
      Write('Kolko uchenici otivat za zakuski: ');
      ReadLn(Broi);
      WriteLn;
    
      WriteLn('Po kolko pari vseki?');
      ReadLn(pari[0]);
        min:=(pari[0]);
        max:=(pari[0]);
        suma:=(pari[0]);
        if pari[0] >= 2 then
          Inc (Poveche2);
    
      for i:= 1 to (broi-1) do begin
        Readln(pari[i]);
        Suma:=Suma+pari[i];
        Sredno:= Suma/Broi;
        if min > pari[i] then
          min:= pari[i];
        if max < pari[i] then
          max:= pari[i];
        if pari[i] >= 2 then
          Inc(Poveche2);
      end;
    
      WriteLn;
      WriteLn('Obshtata suma e: ', Suma:3:2);
      WriteLN('Srednata suma, koqto se pada na uchenik e: ', Sredno:3:2);
      WriteLn('Minimalniqt broi pari e: ', min:3:2);
      WriteLn('Maksimalniqt broi pari e: ', max:3:2);
      WriteLn('Uchenicite s poveche ot 2 leva sa: ', Poveche2);
      ReadLn;
    end.
    
  6. Tsvetelin каза:
    program project1;
    
    var
        a: array [1..21] of integer;
        i, N, Suma, min, max, nad2:integer;
    begin
    //Въвеждаме броя на учениците
      Write('Vuvedete broya uchenici: ');
      ReadLn(N);
    //Отпечатва на екрана колко пари има всеки ученик
      for i:= 1 to N do begin
        Write('Uchenik No ',i,' ima v sebe si: ');
        ReadLn(a[i]);
      end;
    //Отпечатва на екрана списък със сумите
      WriteLn('Spisuk na uchenicite:');
      for i:= 1 to N do
          Write(a[i], ' leva, ');
          WriteLn;
    //Отпечатва на екрана общата сума пари
      Suma:= 0;
      for i:= 1 to N do
          Suma:= Suma + a[i];
      WriteLn('Imat obshto ', Suma,' leva');
    //Отпечатва на екрана най-малката сума пари
      min:= a[1];
      for i:= 2 to N do
        if a[i] < min then
          min:= a[i];
      WriteLn('Uchenikut s nai-malko pari ima ', min,' leva');
    //Отпечатва на екрана най-голямата сума пари
      max:= a[1];
      for i:= 2 to N do
        if a[i] > max then
          max:= a[i];
      WriteLn('Uchenikut s nai-mnogo pari ima ', max,' leva');
    //Отпечатва на екрана колко хора имат повече от 2 лева
      nad2:= 0;
      for i:= 1 to N do
       if a[i] > 2 then
         nad2:= nad2 + 1;
         WriteLn('Broyat na horata s poveche ot 2 leva e: ', nad2);
    
    ReadLn;
    end.
    
  7. Tsvetelin каза:
    program Update1;
    
    var
        a: array [1..21] of integer;
        i, N, Suma, min, max, nad2, j, swap, imin:integer;
    begin
    //Въвеждаме броя на учениците
      Write('Vuvedete broya uchenici: ');
      ReadLn(N);
      WriteLn;
      //Отпечатва на екрана колко пари има всеки ученик
      for i:= 1 to N do begin
        Write('Uchenik No ',i,' ima v sebe si: ');
        ReadLn(a[i]);
      end;
      WriteLn;
      //Отпечатва на екрана списък със сумите във възходящ ред
      for i:=1 to N-1 do begin
        imin:=i;
      for j:=i+1 to N do
        if a[j]<a[imin] then imin:=j;
          if imin <> i then begin
           swap:=a[i];
           a[i]:=a[imin];
           a[imin]:=swap;
          end;
      end;
      for i:= 1 to N do
         Write(a[i], 'leva, ');
         WriteLn;
      WriteLn;
      //Отпечатва на екрана общата сума пари
      Suma:= 0;
      for i:= 1 to N do
          Suma:= Suma + a[i];
      WriteLn('Imat obshto ', Suma,' leva');
      WriteLn;
      //Отпечатва на екрана най-малката сума пари
      min:= a[1];
      for i:= 2 to N do
        if a[i] < min then
          min:= a[i];
      WriteLn('Uchenikut s nai-malko pari ima ', min,' leva');
      WriteLn;
      //Отпечатва на екрана най-голямата сума пари
      max:= a[1];
      for i:= 2 to N do
        if a[i] > max then
          max:= a[i];
      WriteLn('Uchenikut s nai-mnogo pari ima ', max,' leva');
      WriteLn;
      //Отпечатва на екрана колко хора имат повече от 2 лева
      nad2:= 0;
      for i:= 1 to N do
       if a[i] > 2 then
         nad2:= nad2 + 1;
         WriteLn('Broyat na horata s poveche ot 2 leva e: ', nad2);
    
    ReadLn;
    end.
     

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