Помощь - Поиск - Пользователи - Календарь
Полная версия: Помогите с задачей на массивы и прочую
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Альбиша
Помогите с задачей пожалуйста ypriamii.gif
____________________________________________________
В итоговой таблице первого круга футбольного чемпионата каждая из N команд (число N и названия команд заданы) представлено количеством забитых и пропущенных голов в каждой из встреч с противниками. Определить сумму очков, набранную каждой командой, при условии, что за победу дается 3 очка, за ничью - 2, а за поражение - 0.
Напечатать список команд, в порядке уменьшения полученных ими очков с указанием общего количества очков и общей разницы забитых и пропущенных мячей.
______________________________________________________
Буду очень благодарна. И если вас конечно не очень затруднит, то можно и с комментариями.


М
Просьба соблюдать приличие

Lapp
Цитата(Альбиша @ 12.04.2009 15:25) *
можно и с комментариями.
Спасибо за разрешение.
Покажи, что сам/сама сделал/сделала, и задай конкретные вопросы, что непонятно. Поможем обязательно.
Альбиша
blink.gif Не стоит так критично относиться к словам. Я вроде как не нагло попросила, а очень даже прилично. Я ж не написала конкретно, как вы выделили: можно с комментариями, а написала: если не затруднит. Если вам не хочется писать с комментариями, я собственно и не прошу, попробую разобраться сама.
Есть наработка, но там только не очки, а количество выигрышей, ничьих и поражений считает.
Нажмите для просмотра прикрепленного файла
Lapp
Цитата(Альбиша @ 12.04.2009 20:07) *
Не стоит так критично относиться к словам.
Ты знаешь, про какое именно слово я говорил. Это слово я удалил сразу, оно было в названии. На будущее: если ты приходишь к кому-то за помощью, не надо называть дело, которым он занимается, "хренью". Он может обидеться. Ты кому-то испечешь пирожки, а он скажет: "Ну, давай мне этой своей хрени.." И если тебе это будет приятно, то мы с тобой сильно разные.

Пытаюсь разобраться с твоей программой..
Послушай, это действительно твоя наработка? Если честно, слабо верится, что человек, который наворотил такое, не может добавить, что требуется.. Короче, если не твоя, то лучше я тебе покажу, как сделать новую - без лишней шелухи, которой тут просто тьма.. С комментариями smile.gif.
Если твоя.. ну, могу дать несколько советов)).
Альбиша
Я имела ввиду то, что вы процитировали. То, что слово убрали я видела и поняла, что оно совсем неуместно и, что оно в общем-то звучит оскорбительно. За это прошу прощения. Просто, так сказать, вырвалось в письменном виде, т. к. нормального названия я придумать не могла. Возможно сказалось мое "замечательное" настроение в этот день sad.gif . Извините еще раз! blush.gif

Собственно говоря, программа не моя, так что буду рада любой помощи smile.gif
Lapp
Цитата(Альбиша @ 13.04.2009 15:15) *
Извините еще раз!
Нет проблем, спасибо за понимание)).

Цитата(Альбиша @ 13.04.2009 15:15) *
буду рада любой помощи
Хорошо. Но только давай вместе делать. Ты вообще писала хоть что-то раньше на Паскале?
Lapp
Вот тебе набросок. В нем не хватает только вывода разницы забитых и пропущенных мячей.
Разбирайся. Спрашивай. Комментарии - по мере необходимости))
const
m=100;

var
i,j,k,n,d,x: integer;
Goals: array[1..m,1..m]of integer;
Teams: array[1..m]of string[15];
Score: array[1..m]of integer;
List: set of byte;

begin
WriteLn('Type in team names one at a time, finish with empty line:');
n:=0;
repeat
Inc(n);
Write(n,' => ');
ReadLn(Teams[n])
until (n=m)or(Teams[n]='');
if Teams[n]='' then Dec(n);
for i:=1 to n do for j:=1 to n do Goals[i,j]:=Random(6);
WriteLn;
WriteLn('The Cup table:');
Write('':15);
for i:=1 to n do Write(i:5);
WriteLn;
for i:=1 to n do begin
Write(Teams[i]:15,' ',i,' ');
for j:=1 to n do if j>i then Write(Goals[i,j],':',Goals[j,i],' ') else Write('':5);
WriteLn
end;
for i:=1 to n do begin
Score[i]:=0;
for j:=1 to n do begin
d:=0;
if Goals[i,j]>Goals[j,i] then d:=3 else if Goals[i,j]=Goals[j,i] then d:=2;
Inc(Score[i],d)
end
end;
WriteLn;
WriteLn('Teams rating list:');
List:=[];
for i:=1 to n do begin
x:=-1;
for j:=1 to n do if not(j in List)and(Score[j]>x) then begin
k:=j;
x:=Score[j]
end;
List:=List+[k];
WriteLn(i:2,Teams[k]:16,Score[k]:5)
end;
ReadLn
end.

Альбиша
Ситуация вот какая: программированию нас начали обучать на первом курсе, но это трудно назвать обучением. Человек, который вел его у нас, не имел опыта преподавания, следовательно не мог досконально объяснить материал или преподнести его в более понятной форме. Программы на практических занятиях списывались с тетрадей, в которых изначально все было написано на лекциях. Сейчас у нас, на 3-ем курсе, идет практикум по программированию. Нам задают задачи, естественно ничему не учат, т к мы должны демонстрировать свои навыки с первого курса. В первом семестре было проще, т к программы были простыми, что-то и понимала, зато сейчас пошли сложноватые. Вот и приходиться попрошайничать... cray.gif
Тяжелый конечно случай((( Спасибо за набросок, я посмотрю. Еще понять бы...
Lapp
Цитата(Альбиша @ 13.04.2009 19:13) *
Ситуация вот какая: программированию нас начали обучать на первом курсе, но это трудно назвать обучением. .... Вот и приходиться попрошайничать... cray.gif
Тяжелый конечно случай((( Спасибо за набросок, я посмотрю. Еще понять бы...
Это все не о том. Одно из двух: либо ты хочешь научиться программировать, либо нет. Во втором случае никакое обучение тебе не поможет. В первом - никакого обучения не нужно, все сама нароешь по мере необходимости. И тогда это не попрошайничество, а разговор заинтересованных людей на интересующую тему)). Приходи, задавай вопросы. Все будут рады помочь.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.