Помощ за курсова по програмиране...

Взаимопомощ, полезна информация и всичко, извън темата на останалите секции
Потребителски аватар
golfadjiq
Мнения: 43
Регистриран на: Нед 23 дек 2007 21:54
Автомобил:
Двигател:
Местоположение: Монтана

Помощ за курсова по програмиране...

Мнениеот golfadjiq » Нед 04 ное 2012 19:37


Здравейте! Имам задача да направя програма с Паскал със следното условие:

Последна промяна от golfadjiq на Пон 05 ное 2012 20:03, променено общо 1 път.




rovq
Мнения: 16
Регистриран на: Пон 16 юли 2007 10:45
Автомобил:
Двигател:
Местоположение: София

Re: Помощ за курсова по програмиране...

Мнениеот rovq » Пон 05 ное 2012 12:02


За средения успех промени:

Код: Избери всички

SrUsp:=s/10;

с

Код: Избери всички

SredenUsp:=s/10


За "двойките" смени:

Код: Избери всички

close(filestud);
end;

с

Код: Избери всички

end;
close(filestud);


и

Код: Избери всички

if(checker=2)

с

Код: Избери всички

if(checker>=2)

за да показава студентите с поне две двойки ако условието не е за точно по две двойки.

Поздрави


Потребителски аватар
Ivailo
Мнения: 9497
Регистриран на: Пет 27 апр 2007 15:21
Автомобил: VW Golf mk3
Двигател: AAZ
Местоположение: София/Видин
Контакти:

Re: Помощ за курсова по програмиране...

Мнениеот Ivailo » Пон 05 ное 2012 20:56


Готино е, че си изтрил условието, та да може само ти да ползваш чуждата помощ, "евала" :bowdown


rovq
Мнения: 16
Регистриран на: Пон 16 юли 2007 10:45
Автомобил:
Двигател:
Местоположение: София

Re: Помощ за курсова по програмиране...

Мнениеот rovq » Вто 06 ное 2012 15:01


Кода все още го имам, но с условието не мога да помогна.

Код: Избери всички

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[i]);
while((ocenki[i]>6) or (ocenki[i]<2)) do
begin
writeln('Въведете оценка от 2 до 6!');
write('Въведете оценка[',i,']: ');
readln(ocenki[i]);
end;
end;
Readln;
end;
end;

Function SredenUsp(stud:student):real;
var s:real;
i:integer;
begin
s:=0;
for i:=1 to 10 do
s:=s+stud.ocenki[i];
SredenUsp:=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[i]:4:2,' ':2);
writeln;
writeln('Среден успех: ',SredenUsp(stud):4:2);
writeln;
end;
end;

Procedure Dvoiki;
  var stud:student;
  brdv,checker,i:integer;
begin
  Reset(filestud);
  While not EOF(filestud) do
  Begin
    Read(filestud,stud);
    brdv:=0;
    for i:=1 to 10 do
    begin
      if(stud.ocenki[i]=2) then checker:=checker+1;
    end;
    if(checker>=2) then brdv:=brdv+1;
    WriteOne(stud);
    Writeln('Броя на студентите с по 2 двойки е: ',brdv);
  end;
  close(filestud);
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 - за извеждане броя на студентите с по 2 двойки');
Writeln(' ':15,'0 - за изход от програмата');
Readln(C);
Case C of
'1':NewFile;
'2':AddNewStud;
'3':DeleteStud;
'4':WriteAll;
'5':Dvoiki;
end;
Until C='0';
END.


Потребителски аватар
Vlad777
King of the Road
King of the Road
Мнения: 20236
Регистриран на: Вто 08 юни 2004 16:34
Автомобил: Passat B8 BiTDI 4m CUAA
Двигател: MK2 RP+PG+PB Jetta Coupe+T-Roc
Местоположение: София
Контакти:

Re: Помощ за курсова по програмиране...

Мнениеот Vlad777 » Вто 06 ное 2012 15:48


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

Код: Избери всички

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[i]);
while((ocenki[i]>6) or (ocenki[i]<2)) do
begin
writeln('Въведете оценка от 2 до 6!');
write('Въведете оценка[',i,']: ');
readln(ocenki[i]);
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[i];
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[i]:4:2,' ':2);
writeln;
writeln('Среден успех: ',SredenUsp(stud):4:2);
writeln;
end;
end;

Procedure Dvoiki
var stud:student;
brdv,checker,i:integer;
begin
Reset(filestud);
While not EOF(filestud) do
Begin
Read(filestud,stud);
brdv:=0;
for i:=1 to 10 do
begin
if(stud.ocenki[i]=2) then checker:=checker+1;
end;
if(checker=2) then brdv:=brdv+1;
WriteOne(stud);
Writeln('Броя на студентите с по 2 двойки е: ',brdv);
close(filestud);
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 - за извеждане броя на студентите с по 2 двойки');
Writeln(' ':15,'0 - за изход от програмата');
Readln©;
Case C of
'1':NewFile;
'2':AddNewStud;
'3':DeleteStud;
'4':WriteAll;
'5':Dvoiki;
end;
Until C='0';
END.


Процедурите за изчисляване на среден успех и за извеждане броя на студентите с по 2 двойки не работят. И като пусна програмата и избера операция 5 (т.е. извеждане броя на студентите с по 2 двойки) след като съм въвела данни за студенти излиза с exit code = 103 .. Къде греша? Моля, за помощ! Трябва ми възможно най-бързо! Благодаря предварително!


Потребителски аватар
velinsl
Мнения: 4208
Регистриран на: Нед 11 май 2008 12:59
Автомобил: B3 ---B4
Двигател: ABS --- 1Z

Re: Помощ за курсова по програмиране...

Мнениеот velinsl » Вто 06 ное 2012 17:40


Ivailo написа:Готино е, че си изтрил условието, та да може само ти да ползваш чуждата помощ, "евала" :bowdown


Другия път пак памагайте!



Върни се в “ОФФ-Топик - други”

Кой е на линия

Потребители, разглеждащи този форум: Няма регистрирани потребители и 38 госта