• Нужно написать программу в Pascal.
    Нужно будет считать информацию с двух файлов и объединить их в один файл. В первом файле есть 3 столбца:
    1. Четырехзначный номер
    2. Рост
    3. Вес
    Во втором файле также 3 столбца:
    1. Четырехзначный номер
    2. Время бега на 1 км
    3. Колличество подтягиваний
    Нужно написать программу которая будет считывать данные с двух файлов и будет создавать 3ий файл, в котором программа объединит все данные в соответствии с номером.
    PascalABC.NET 3.1

Ответы 5

  • Контрольный пример намеренно составлен так, что для двух записей f1 нет сопоставимых в f2, а одна из записей f2 несопоставима с f1.
  • а зачем переименовывать файлы в бин
    • Автор:

      patches
    • 5 лет назад
    • 0
  • Можете не переименовывать, а поменять на txt расширения имен в программе
  • Не принято двоичные файлы снабжать расширением txt, чтобы путаницы не было - только и всего.
    • Автор:

      beckett
    • 5 лет назад
    • 0
  • ВАЖНО! Прикрепленные файлы на самом деле не текстовые, а двоичные, но таковые данная система не позволяет прикрепить. Поэтому не стоит пытаться эти файлы читать.Для работы программы следует переименовать файлы в file1.bin и file2.binСодержимое файла f17696 163 679195 183 711922 174 774586 173 684611 164 644204 164 608914 178 621102 162 634947 184 636185 174 79Содержимое файла f24611 287 41102 312 39195 220 123142 251 78914 229 97696 252 71922 245 54204 273 64586 241 10// PascalABC.NET 3.3, сборка 1573 от 04.11.2017// Внимание! Если программа не работает, обновите версию!type  st1=record    номер:integer;    рост:integer;    вес:integer  end;  st2=record    номер:integer;    время_бега:integer;    кол_подтягиваний:integer  end;  st3=record    номер:integer;    рост:integer;    вес:integer;    время_бега:integer;    кол_подтягиваний:integer  end;begin  // считываем файл f1 в массив типа st1  var f1:file of st1;  Assign(f1,'file1.bin'); Reset(f1);  var n1:=FileSize(f1);  var m1:=new st1[n1];  for var i:=0 to n1-1 do Read(f1,m1[i]);  f1.Close;  // читаем файл f2 и для каждой записи ищем элемент массива  // с таким же номером. Если найден - делаем слияние в файл f3  var f2:file of st2;  Assign(f2,'file2.bin'); Reset(f2);  var buf2:st2; // буфер для чтения f2  var f3:file of st3;  Assign(f3,'file3.bin'); Rewrite(f3);  var buf3:st3; // буфер для записи f3  while not Eof(f2) do begin    Read(f2,buf2);    var j:=m1.FindIndex(t->t.номер=buf2.номер);    if j<>-1 then begin      buf3.номер:=buf2.номер;      buf3.рост:=m1[j].рост;      buf3.вес:=m1[j].вес;      buf3.время_бега:=buf2.время_бега;      buf3.кол_подтягиваний:=buf2.кол_подтягиваний;      Write(f3,buf3)      end    end;  f2.Close;  // посмотрим, что получилось в f3  Seek(f3,0);  while not Eof(f3) do begin    Read(f3,buf3); Print(buf3)    end;  f3.Closeend.Пример работы программы(4611,164,64,287,4) (1102,162,63,312,3) (9195,183,71,220,12) (8914,178,62,229,9) (7696,163,67,252,7) (1922,174,77,245,5) (4204,164,60,273,6) (4586,173,68,241,10)
    answer img
    • Автор:

      julianna
    • 5 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years