Помощ за курсова по програмиране...
Правила на форума
Натисни тук за да прочетеш Правилата на форума
Натисни тук за да прочетеш Правилата на форума
- golfadjiq
- Мнения: 43
- Регистриран на: Нед 23 дек 2007 21:54
- Автомобил:
- Двигател:
- Местоположение: Монтана
Помощ за курсова по програмиране...
Здравейте! Имам задача да направя програма с Паскал със следното условие:
Последна промяна от golfadjiq на Пон 05 ное 2012 20:03, променено общо 1 път.
Re: Помощ за курсова по програмиране...
За средения успех промени:
с
За "двойките" смени:
с
и
с
за да показава студентите с поне две двойки ако условието не е за точно по две двойки.
Поздрави
Код: Избери всички
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: Помощ за курсова по програмиране...
Готино е, че си изтрил условието, та да може само ти да ползваш чуждата помощ, "евала" 

Re: Помощ за курсова по програмиране...
Кода все още го имам, но с условието не мога да помогна.
Код: Избери всички
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
- Мнения: 20236
- Регистриран на: Вто 08 юни 2004 16:34
- Автомобил: Passat B8 BiTDI 4m CUAA
- Двигател: MK2 RP+PG+PB Jetta Coupe+T-Roc
- Местоположение: София
- Контакти:
Re: Помощ за курсова по програмиране...
Здравейте! Имам задача да направя програма с Паскал със следното условие:
За група студенти са зададени име, ЕГН, фак. номер, оценките по 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 .. Къде греша? Моля, за помощ! Трябва ми възможно най-бързо! Благодаря предварително!
Re: Помощ за курсова по програмиране...
Ivailo написа:Готино е, че си изтрил условието, та да може само ти да ползваш чуждата помощ, "евала"
Другия път пак памагайте!
Върни се в “ОФФ-Топик - други”
Кой е на линия
Потребители, разглеждащи този форум: Няма регистрирани потребители и 48 госта