ckati
?>

Напишите программу, которая получает csv файл, описывающий турнирную таблицу для 4 команд (при этом главная диагональ данного файла заполнена нулями описание: если команда 1 выигрывает у команды 2, то в первой строке во втором столбце ставится цифра 3 (команда за победу получает 3 очка), а во второй строке в первом столбце ставится 0 (за поражение команда получает 0 очков; если эти команды играют вничью, то в соответствующих ячейках ставится по 1 (за ничью каждая команда получает по 1 очку). программа должна подсчитывать итоговый результат команд (сумма очков по строке) и выводить их в последовательности, в которой они чемпионат (сначала номер и количество очков команды-победительницы, затем – команды, занявшей второе место и т. паскаль.

Информатика

Ответы

Anatolii
//PascalABC.NET 3.2 сборка 1318

const
  n=4;

Var
  f:file of char;
  i,j,counter,FileLen:integer;
  s:string;
  val:char;
  ar:array[1..n] of integer;
  coms:array[1..n] of integer;
  begin
for i:=1 to n do
coms[i]:=i;
assign(f,'input.csv');
reset(f);i:=1;     //столбец матрицы
counter:=1;     //количество прочитанных элементов
FileLen:=filesize(f); //количество элементов в файле (включая разделители)
read(f,val); //на случай, если первая строка пуста
repeat 
 while (ord(val)<>10) and (ord(val)<>13) do //каждая строка заканчивается символами 10 и 13, а элементы разделяются ;   
begin
    if (val<>';') and (ord(val)<>10) and (ord(val)<>13) then
      begin
        ar[i]+=strtoint(val); //вводим значение из ячейки в переменную суммы         read(f,val); //cчитываем следующее значение
        inc(counter); //увеличиваем количество прочитанных
      end
      else
        begin
          read(f,val);    //пропускаем разделитель
          inc(counter);
        end;
    end;
   if (ord(val)=10) and (counter<FileLen) then  //в конце каждой строки стоят символы с кодами 10 и 13, пропускаем их
    begin
      read(f,val);
      inc(counter);
    end;
   if (ord(val)=13) and (counter<FileLen) then //когда дошли до конца строки
    begin
      inc(i);
       read(f,val);  //читаем с новой строки
      inc(counter);
    end;
until(counter=FileLen); //читаем пока количество элементов в файле не сравняется с количеством прочитанных
close(f);
for i:=1 to n-1 do    //когда лень писать быструю сортировку
  for j:=i+1 to n do
    if ar[i]<ar[j] then
      begin
        counter:=ar[i];
        ar[i]:=ar[j];
        ar[j]:=counter;
        counter:=coms[i];
        coms[i]:=coms[j];
        coms[j]:=counter;
      end;
for i:=1 to n do
writeln(i,'st place-',coms[i],' command -',ar[i],' points');
end.
kuliba
// PascalABC.NET 3.2, сборка 1381 от 04.02.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var k:=ReadInteger('Начальное значение (К):');
  var n:=ReadInteger(' Конечное значение (N):');
  var notfound:=True;
  for var i:=k to n do begin
    var flag:=True;
    var j:=2;
    var r:=round(sqrt(i));
    while flag and (j<=r) do
      if i mod j = 0 then flag:=false
      else j+=1;
    if flag then begin
      var s:=i.ToString;
      if s=s.Inverse then begin Print(i); notfound:=False end
      end
    end;
    if notfound then Writeln(0)
end.

Пример
Начальное значение (К): 2
 Конечное значение (N): 100000
2 3 5 7 11 101 131 151 181 191 313 353 373 383 727 757 787 797 919 929 10301 10501 10601 11311 11411 12421 12721 12821 13331 13831 13931 14341 14741 15451 15551 16061 16361 16561 16661 17471 17971 18181 18481 19391 19891 19991 30103 30203 30403 30703 30803 31013 31513 32323 32423 33533 34543 34843 35053 35153 35353 35753 36263 36563 37273 37573 38083 38183 38783 39293 70207 70507 70607 71317 71917 72227 72727 73037 73237 73637 74047 74747 75557 76367 76667 77377 77477 77977 78487 78787 78887 79397 79697 79997 90709 91019 93139 93239 93739 94049 94349 94649 94849 94949 95959 96269 96469 96769 97379 97579 97879 98389 98689
blagorodovaanna375
<html><head> <title>Разделы</title></head><body bgcolor="#EE82EE"> <font size="+1"><font size="5"> <UL><LI><A HREF="1str.htm" TARGET="win">Легенда английской булавки</A></UL> <UL><LI><A HREF="part_1.htm" TARGET="win">Уолтер Хант</A></UL> <UL><LI><A HREF="part_2.htm" TARGET="win">История вещей</A></UL>               <UL><LI><A HREF="zakl.htm" TARGET="win">Заключение</A></UL> <UL><LI><A HREF="part_3.htm" TARGET="win">Гигантская безопасная булавка в Сан-Франциско</A></UL> </font></body></html>

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Напишите программу, которая получает csv файл, описывающий турнирную таблицу для 4 команд (при этом главная диагональ данного файла заполнена нулями описание: если команда 1 выигрывает у команды 2, то в первой строке во втором столбце ставится цифра 3 (команда за победу получает 3 очка), а во второй строке в первом столбце ставится 0 (за поражение команда получает 0 очков; если эти команды играют вничью, то в соответствующих ячейках ставится по 1 (за ничью каждая команда получает по 1 очку). программа должна подсчитывать итоговый результат команд (сумма очков по строке) и выводить их в последовательности, в которой они чемпионат (сначала номер и количество очков команды-победительницы, затем – команды, занявшей второе место и т. паскаль.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

compm
Anatolevich1506
Филиппович_Николаевич
skalegin68
Nikolaevich
alex091177443
Кристина Валентиновна
Стадник620
Evsevia-a
Aleksandr362
ivan-chay19
Olgera1
beaevgen711
klimenokvapeshop1408
fedorenkoroman