Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Помощ за задача на Паскал

Featured Replies

имам проблем със една курсова работа на Паскал със следното условие и код : 

За група студенти са зададени име, ЕГН, фак.№, оценките по 10 дисциплини, среден успех. Да се създаде програма, използуваща подпрограми за:

·        Създаване на файл с информация за групата студенти, без да се въвежда среден успех;

·        Изчисляване на средния успех на всеки един от студентите;

·        Определяне броят на студентите с по три двойки;

 

 

Program Studenti;

Type TStudent = Record

            Ime:String[30];

     FN:String[6];

     Oc:Array[1..10] of Byte;

     SrUs:Real;

End;

Var FS:File of TStudent;

     Studenti:Array[1..50] of TStudent;

     FName:String[30];

     BrStud,C:Integer;

{Въвежда данни за 1 студент}

Procedure ReadStud(Var St:TStudent);

Var I:Integer;

Begin

     With St Do Begin

         Write (‘Въведи име:‘); Readln (Ime);

         If (Ime= ‘ ‘) then exit;

         Write (‘Въведи ФН:‘ ) ; Readln(FN);

         Writeln (‘Въведи 10 оценки:‘)  ;

                        For i:=1 to 10 do Read (Oc);

     End;

     Readln;

End;

{Извежда данни за 1 студент}

Procedure WriteStud(St:TStudent);

Var I:Integer;

Begin

     With St Do Begin

         Writeln (‘Име:’ ,Ime);

         Writeln (‘ФН:’ ,FN);

         Writeln (‘Оценки:’ );

         For I:=1 to 10 do Write (Oc,’ ’); Writeln;

         Writeln (‘Среден успех:’ ,SrUs:4:2);

     End;

     Readln;

End;

{Създава празен файл}

Procedure PrazenFile;

Begin

     Rewrite(FS); Close(FS);

     Writeln(‘Файлът е създаден! ’);

End;

{Добавя студенти към файла}

Procedure DobavFile;

Var St : TStudent;

Begin

     Writeln (‘Добави студенти ,празно име за край ’);

     Reset (FS); Seek(FS,FileSilze(FS));

     Repeat

         ReadStud(St) :

         If St.Ime <> ‘ ‘ then Write(FS,St);

     Until St.Ime = ‘ ‘;

     Close(FS);

End;

{Изчислява средния успех  на 1 студент}

Function SrUspeh(St:TStudent):Real;

Var I,S:Integer;

Begin

     S:=0;For i:=1 to 10 do S:=S+St.Oc;

     SrUspeh:=S/10;

End;

{Изчислява средния успех на всички студенти във файла}

Procedure SredenUsp;

Var i:Integer;

     St:TStudent;

Begin

     Reset(FS);

     While Not EOF(FS) do begin i:=FilePos(FS);

         Read(FS,St);

         St.SrUs:=SrUspeh(St);

         Seek(FS,i);

         Write(FS,St);

     End;

     Close(FS);

     Writeln(‘Средният успех е изчислен ‘);

End;

{Отпечатване на целия файл}

Procedure PrintAll;

Var St:TStudent;

Begin

     Reset(FS);

     While not EOF(FS) do begin

         Read(FS,ST);

         WriteStud(St);

     End;

     Close(FS);

End;

Procedure Dvoiki

var St:TStudent;

brdv,checker,i:integer;

begin

Reset(FS);

While not EOF(FS) do

Begin

Read(FS,St);

brdv:=0;

for i:=1 to 10 do

begin

if(stud.ocenki=2) then checker:=checker+1;

end;

if(checker=3) then brdv:=brdv+1;

WriteOne(St);

Writeln('Броя на студентите с по 3 двойки е: ',brdv);

close(FS);

end;

 

Begin

{Задаване на име на файла върху диска}

     Assign(FS,’Students.dat’);

 Repeat

         Writeln(‘Меню на операциите:‘:20,’’);

         Writeln(‘1 Създаване на празен файл‘:30,’’);

         Writeln(‘2 Добавяне във файл‘:30,’’);

         Writeln(‘3 Изчисляване на среден успех‘:30,’’);

         Writeln(‘4 Отпечатване на всички‘:30,’’);

         Writeln(‘5 Броя на срудентите с по три двойки‘:30,’’);

                        Writeln(‘ ‘:20,’0 за край:  ’);Readln(C);

         Case C of

         1:PrazenFile; 2:DobavFile;

         3:SredenUsp;  4:PrintAll;

         5:StudResult;

         End;

Until C=0

End;

излизат ми следните грешки : 

2,17 Duplicate indentifier "TStudenti"

41,1 illigal expression

ако може някой да ми помогне ,ще съм много благодарен.

 

Studenti се дублира с името на програмата.

Пусни програмата с таг за код <> че нещо много неща са се позагубили.

 

Редактирано от ined (преглед на промените)

  • Автор

добре, но когато оправих това ми излязоха още грешки 

41,1 illigal expression ( което не знам какво означава. ) 

41,11 syntax error ; expected but PrazenFile found. 

End;

 

{Създава празен файл}

 

Procedure PrazenFile;

 

Begin

 

     Rewrite(FS); Close(FS);

 

     Writeln(‘Файлът е създаден! ’);

 

End;

 

Те грешките се десетки така като гледам, пооправил съм ги колкото да се компилира, ама с тая кирилица

под ДОС ми излиза на йероглифи и затова не съм я проверявал дали работи правилно програмата.

Program StudentiP;

Type TStudent = Record
     Ime:String[30];
     FN:String[6];
     Oc:Array[1..10] of Byte;
     SrUs:Real;
End;

Var FS:File of TStudent;
    Studenti:Array[1..50] of TStudent;
    FName:String[30];
    BrStud,C:Integer;

{Въвежда данни за 1 студент}

Procedure ReadStud(Var St:TStudent);

Var I:Integer;

Begin
     With St Do 
     Begin
         Write ('Въведи име:'); Readln (Ime);
         If (Ime= ' ') then exit;
         Write ('Въведи ФН:' ) ; Readln(FN);
         Writeln ('Въведи 10 оценки:')  ;
         For i:=1 to 10 do Read (Oc[i]);
     End;
     Readln;
End;

{Извежда данни за 1 студент}

Procedure WriteStud(St:TStudent);

Var I:Integer;

Begin
     With St Do 
     Begin
         Writeln ('Име:' ,Ime);
         Writeln ('ФН:' ,FN);
         Writeln ('Оценки:' );
         For I:=1 to 10 do Write (Oc[i],' '); 
         Writeln;
         Writeln ('Среден успех:' ,SrUs:4:2);
     End;
     Readln;
End;

{Създава празен файл}

Procedure PrazenFile;

Begin
     Rewrite(FS); Close(FS);
     Writeln('Файлът е създаден! ');
End;

{Добавя студенти към файла}

Procedure DobavFile;

Var St : TStudent;

Begin
     Writeln ('Добави студенти ,празно име за край ');
     Reset (FS); Seek(FS,FileSize(FS));
     Repeat
         ReadStud(St) ;
         If St.Ime <> ' ' then Write(FS,St);
     Until St.Ime = ' ';
     Close(FS);
End;

{Изчислява средния успех  на 1 студент}

Function SrUspeh(St:TStudent):Real;

Var I,S:Integer;

Begin
     S:=0;
     For i:=1 to 10 do S:=S+St.Oc[i];
     SrUspeh:=S/10;
End;

{Изчислява средния успех на всички студенти във файла}

Procedure SredenUsp;

Var i:Integer;
    St:TStudent;

Begin
     Reset(FS);
     While Not EOF(FS) do 
     begin 
         i:=FilePos(FS);
         Read(FS,St);
         St.SrUs:=SrUspeh(St);
         Seek(FS,i);
         Write(FS,St);
     End;
     Close(FS);
     Writeln('Средният успех е изчислен ');
End;

{Отпечатване на целия файл}

Procedure PrintAll;

Var St:TStudent;

Begin
     Reset(FS);
     While not EOF(FS) do 
     begin
         Read(FS,ST);
         WriteStud(St);
     End;
     Close(FS);
End;

Procedure Dvoiki;

var St:TStudent;

    brdv,checker,i:integer;

begin

   Reset(FS);  
   brdv:=0;

   While not EOF(FS) do
   Begin
      Read(FS,St);
      checker:=0;
      for i:=1 to 10 do
          if(st.oc[i]=2) then checker:=checker+1;
      if(checker=3) then brdv:=brdv+1;
      WriteStud(St);
   end;

   Writeln('Броя на студентите с по 3 двойки е: ',brdv);
   close(FS);
end;

Begin

{Задаване на име на файла върху диска}

     Assign(FS,'Students.dat');

 Repeat
         Writeln('Меню на операциите:':20,'');
         Writeln('1 Създаване на празен файл':30,'');
         Writeln('2 Добавяне във файл':30,'');
         Writeln('3 Изчисляване на среден успех':30,'');
         Writeln('4 Отпечатване на всички':30,'');
         Writeln('5 Броя на срудентите с по три двойки':30,'');
         Writeln(' ':20,'0 за край:  ');Readln(C);

         Case C of
         1:PrazenFile; 
         2:DobavFile;
         3:SredenUsp;  
         4:PrintAll;
         5:Dvoiki;
         End;

Until C=0;

End.

 

Редактирано от ined (преглед на промените)

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    25%
    Дарени 252.69 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.