Люди добрые,помогите зделать такую задачу:
_______________________________________________
N учеников проходили тестирование выполнив M тестов по какому либо предмету.
Сколько очков набрал каждый ученик по всем темам? Вычислить средний бал,полученный учениками, и разницу между лучшим результатом и средним баллом.
_______________________________________________
помогите пожалуста!!!!! горю!!!!!
ну матрица N*M и суммируешь по строкам....всё
Мистер Caranthir, в следующий раз, прежде чем ТАК безапелляционно написать "ВСЕ", соизвольте хотя бы прочесть заголовок задания... Я понятно выражаюсь? Человек просил работу с файлами, а не с матрицами...
В тему об оптимизации никто не написал "а чего ты мучаешься, оптимизируй и ВСЕ"...
Cорри) просто открыл новые сообщения........
Файлы-файлы...хм..
Сейчас..
PS. За оптимизацию спасибо!
я свою задачу,которая и так не работает и работать не будет наверно выкладывать не буду,т.к. смысла в ней не вмжу(дохлый номер,исправить не получится),поэтому народ,помогите пожалуста её с нуля сделать,я вас очень прошу. Я первый раз так за помощью обращаюсь и препод у нас такая,что толком нефига не объясняет и тут же дает задачи помогите,буду очень признателен
а я теперь преподов на форумах не обсуждаю... после того как мне на экзамене одно из моих сообщений с форума процитировали )
смысл выкладывания - показать, что ты что-то пробовал делать, и понять, какие моменты тебе остались не ясны после прочтения FAQ (ты ведь читал, правда?)
ну незнаю я как делать,хоть убейте и в етом нефига не понял!!ну раз так надо,то вот мои мысли по етому поводу(я уверен что у меня все неправильно)
Прикрепленные файлы
SEGODNYA.PAS ( 489 байт )
Кол-во скачиваний: 625
ето все конечно хорошо,но я в етом нефига не понимаю так сказать дуб дубом,иначебы я сюда не обратился я надеюсь вы понимаете о чем я короче полный ламер
Вот мой код:
var sum,max,mid,ch,n,raz:Real;
f1,f2:text;
begin
assign (f1,'in.txt');
assign (f2,'out.txt');
reset (f1);
rewrite (f2);
while not eof (f1) do
begin
repeat
read (f1,ch);
if max<ch then
max:=ch;
sum:=sum+ch;
n:=n+1;
until eoln(f1);
mid:=sum/n;
raz:=max-mid;
writeln (f2,'sum: ',sum:2:1,',mean score: ',mid:2:1,',difference: ',raz:2:1);
sum:=0;
max:=0;
n:=0;
mid:=0;
end;
close(f1);
close(f2);
end.
Postman, ты тоже в режиме Write-Only? Переключись на чтение, лучше САМ... Ты у себя в программе видел Record ???
Автору: Ты уточнишь условие или так и будешь отмалчиваться? Тогда тема идет в корзину, раз тебе помощь не требуется.
а что тут уточнять? мое первое сообщение:там и есть условие! что непонятного? как препод условие дала так я и написал,так что все уточнено.VOLVO и я не отмалчиваюсь,просто как порядошного студента меня дома днём нет(учеба),так что появится я тут могу либо сутра или вечером
ето типизированные файлы,насколько я понял. Но с файлами я ваще работать не умею и кроме того что я намудрил с задачей в голову больше нечего не лезит помогите пожалуста,мне она к понедельнику позарез нужна
После справедливого замечания модератора из под пера вышел следующий опус.
Записи использованы в связном списке.
type
markspointer = ^marks;
marks = record
next:markspointer;
mark:real;
end;
studpointer = ^student;
student = record
next:studpointer;
first:markspointer
end;
var
sum,mark,mid,raz,max,n:Real;
currst,newst,firststud:studpointer;
currm,newm:markspointer;
f1,f2:text;
a:boolean;
begin
assign (f1,'in.txt');
assign (f2,'out.txt');
reset (f1);
rewrite (f2);
new(firststud);
a:=true;
mark:=0;
raz:=0;
mid:=0;
n:=0;
while not eof (f1) do
begin
if a=true then
begin
new (newst);
firststud^.next:=newst;
a:=false;
currst:=newst;
new(newm);
currst^.first:=newm;
read(f1,mark);
newm^.mark:=mark;
currm:=newm;
end else
begin
new(newst);
currst^.next:=newst;
currst:=newst;
new (newm);
currst^.first:=newm;
read(f1,mark);
newm^.mark:=mark;
currm:=newm;
end;
while not eoln(f1) do
begin
new(newm);
currm^.next:=newm;
read (f1,mark);
newm^.mark:=mark;
currm:=newm;
end;
end;
currst:=firststud^.next;
currm:=currst^.first;
while currst <> nil do
begin
while currm <> nil do
begin
mark:=currm^.mark;
if max<mark then max:=mark;
sum:=sum+mark;
n:=n+1;
currm:=currm^.next;
end;
mid:=sum/n;
raz:=max-mid;
writeln (f2,'sum: ',sum:3:1,',mean score: ',mid:3:1,',difference: ',raz:3:1);
sum:=0;
max:=0;
n:=0;
mid:=0;
currst:=currst^.next;
currm:=currst^.first;
end;
Close(f1);
Close(f2);
end.
спасибо большое,но всетаки она работать не хочет :выдает ошибку file not open fo input и указывает на строку
while not eof (f1) do как заставить ее работать то? очень нужно
нельзя ее чуть короче сделать и по проще?
ух ничего себе!
ну, во-первых, судя по изучаемым темам, автор топика до работы с динамической памятью еще не дошел... и препод у него такую лабу не примет.
во-вторых, я вообще не поняла, зачем так извращаться (ладно, спишем на мою непонятливость).
Postman, если уж работаешь с динамической памятью - работай как положено.
До выполнения программы свободно 543792, после - 542920.
З.Ы. Кинь, плз, в личку пример файла, на котором она нормально отработала... На моих тестах бред выдает - может, что-то не то делаю.
Офф: Поздравляю себя с преодолением 1000-го рубежа
да,до такого я еще не дошел,правда и на строку ету внимание обратил,и для чтения в сделал,так ты еще и на ноль в проге делишь(n:=0;) задача точно работать не может,и ету задачу у меня не приняли,т.к.такое мы не проходили знать мы етого не можем(так мне училка сказала) мнебы ее попроще и покороче сделать и так,чтобы я ето знал и понял
Программа по записям.....это точно.....мне тоже надо эту задачу до завтра сделать.....
использование записей не подразумевает использование списков.
Я попробовала составить программу, но если честно ничего не выходит
покажешь?
или это секретные оборонные разработки?