Помощь - Поиск - Пользователи - Календарь
Полная версия: Помогите с задачей на массивы и прочую
Форум «Всё о Паскале» > 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
Тяжелый конечно случай((( Спасибо за набросок, я посмотрю. Еще понять бы...
Это все не о том. Одно из двух: либо ты хочешь научиться программировать, либо нет. Во втором случае никакое обучение тебе не поможет. В первом - никакого обучения не нужно, все сама нароешь по мере необходимости. И тогда это не попрошайничество, а разговор заинтересованных людей на интересующую тему)). Приходи, задавай вопросы. Все будут рады помочь.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.