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

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

Kaldata.com - Форуми

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

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

Добре дошли!

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

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

 

Помощ с програмата на Паскал

Featured Replies

Здравейте, имам нужда от помощ с програмата на Паскал. Не мога да измисля само процедурата за намиране броя на мъжете с успех над 4,50, родени през есента. 

Условието на програмата е:

За група студенти са зададени име, ЕГН, фак. №, оценките по 10 дисциплини, среден успех. Да се създаде програма, използваща подпрограми за:
- създаване на файл с информация за групата студенти, без да се въвежда ср. успех;
- изчисляване на средния успех на всеки един от студентите;
- намиране брой на мъжете с успех над 4,50, родени през есента.

Ето до къде стигнах:

Program StudentiFile;

type

student=record

ime:string[30];

egn:string[10];

faknom:string[6];

ocenki:array[1..10] of real;

end;

 

var

filestud:file of student;

i,m,n:integer;

imefail:string[20];

group:array[1..30] of student;

stud:student;

C:char;

 

Procedure ReadStud(var stud:student);

var i:integer;

begin

with stud do

begin

write(' ':5,'Въведете име: ');Readln(ime);

If(ime='exit') then exit;

Write(' ':5,'Въведете ЕГН: ');Readln(egn);

write(' ':5,'Въведете Фак. номер: ');Readln(faknom);

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

for i:=1 to 10 do

begin

write('Въведете оценка [',i,']: ');

readln(ocenki);

while((ocenki>6) or (ocenki<2)) do

begin

writeln('Въведете оценка от 2 до 6!');

write('Въведете оценка[',i,']: ');

readln(ocenki);

end;

end;

Readln;

end;

end;

 

Function SredenUsp(stud:student):real;

var SrUsp,s:real;

i:integer;

begin

s:=0;

for i:=1 to 10 do

s:=s+stud.ocenki;

SrUsp:=s/10;

end;

 

 

Procedure WriteOne(stud:student);

var i:integer;

begin

with stud do

begin

writeln('Име: ',ime);

writeln('ЕГН: ',egn);

writeln('Фак. номер: ',faknom);

writeln('Оценки:');

for i:=1 to 10 do

write(stud.ocenki:4:2,' ':2);

writeln;

writeln('Среден успех: ',SredenUsp(stud):4:2);

writeln;

end;

end;

 

 

Procedure WriteAll;

var stud:student;

begin

Reset(filestud);

while not EOF(filestud) do

begin

Read(filestud,stud);

WriteOne(stud);

end;

close(filestud);

end;

 

Procedure NewFile;

begin

Rewrite(filestud);

Close(filestud);

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

end;

 

Procedure AddNewStud;

var stud:student;

begin

writeln('Въведете име или exit за край!');

reset(filestud);

seek(filestud,filesize(filestud));

Repeat

ReadStud(stud);

If stud.ime<>'exit'

then Write(filestud,stud);

until stud.ime='exit';

Close(filestud);

end;

 

Procedure DeleteStud;

var Delfile:file of student;

faknom:string[6];

begin

write('Въведете фак. номер: ');Readln(faknom);

Reset(filestud);

Assign(Delfile,'Del');

Rewrite(Delfile);

While not EOF(filestud) do

begin

Read(filestud,stud);

If stud.faknom<>faknom

then write(Delfile,Stud)

else Writeln('Данните за студент с фак.номер ',faknom,' са изтрити.');

end;

Close(filestud); Close(Delfile); Erase(filestud);

Rename(Delfile,imefail);

Writeln;

End;

 

BEGIN

Write('Задайте име на файла: ');

Readln(imefail);

Assign(filestud,imefail);

Repeat

Writeln(' ':20,'Въведете номера на желаната операция:');

Writeln(' ':15,'1 - за създаване на нов файл');

Writeln(' ':15,'2 - за добавяне на студенти');

Writeln(' ':15,'3 - за изтриване на данни');

Writeln(' ':15,'4 - за извеждане данните на всички студенти');

Writeln(' ':15,'5 – намиране броя на мъжете с успех над 4,50, родени през есента);

Writeln(' ':15,'0 - за изход от програмата');

Readln;

Case C of

'1':NewFile;

'2':AddNewStud;

'3':DeleteStud;

'4':WriteAll;

'5':Maje;

end;

Until C='0';

END.

Правиш процедура с последното условие.

Проверяваш 3-тата и 4-тата цифра от ЕГН-то на човека дали са 09, 10 или 11 (за месеците септември, октомври или ноември), а проверката за мъже се прави по предполседното число, то винаги е четно и накрая да изкарва мъжете с по-голям успех от 4.50. 

Останалото виждам, че си го издокарал/а, добре, че писахме подобни задачи на лекции, а също така наличието на учебник от което може да се вземе 90% от задачата без последното условие за кеото ти питаш. ;)

Колега/колежке да ти напомня, че времето за предаване почти изтече. :)

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

  • Автор

Хаха.. Колега има време до петък! ;):) Пък и малко ми остана. И благодаря!!

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

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

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

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

Дарение

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

Бюлетин

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

Профил

Навигация

Търсене

Търсене

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

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