nelli-bi6
?>

Задана матрица B(MxNОпределить, сколько раз в ее строках одинаковые числа стоят в строке рядом.Если одинаковых чисел, стоящих рядом, нет, то вывести соответствующее сообщение. Qbasic

Информатика

Ответы

buff-studio
ВАЖНО! Прикрепленные файлы на самом деле не текстовые, а двоичные, но таковые данная система не позволяет прикрепить. Поэтому не стоит пытаться эти файлы читать.

Для работы программы следует переименовать файлы в file1.bin и file2.bin

Содержимое файла f1
7696 163 67
9195 183 71
1922 174 77
4586 173 68
4611 164 64
4204 164 60
8914 178 62
1102 162 63
4947 184 63
6185 174 79

Содержимое файла f2
4611 287 4
1102 312 3
9195 220 12
3142 251 7
8914 229 9
7696 252 7
1922 245 5
4204 273 6
4586 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.Close
end.

Пример работы программы
(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)
badalovao256
Если будет ошибка на строчке:
      write('Введите A[' + IntToStr(i) + ',' + IntToStr(j) + ',' + IntToStr(k) + '] = ');
можешь просто убрать ее.
Она может не работать из за разных версий Pascal-я, т.к. не везде есть IntToStr.

--------------------------------------------------------------------

var
  A: array [1..2,1..2,1..2] of longint;
  i, j, k: byte;
  sum: longint;
begin
for i := 1 to 2 do
  for j := 1 to 2 do
    for k := 1 to 2 do
    begin
      write('Введите A[' + IntToStr(i) + ',' + IntToStr(j) + ',' + IntToStr(k) + '] = ');
      ReadLn(A[i, j, k]);
    end;
sum := 0;

for i := 1 to 2 do
  for j := 1 to 2 do
    for k := 1 to 2 do
      sum := sum + A[i, j, k];

writeln('Сумма всех элементов трехмерного массива = ', sum);
readln;
end.

Парни : d нужно написать программу на паскале что бы она вычисляла сумму значения элементов трехмерн

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

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

Задана матрица B(MxNОпределить, сколько раз в ее строках одинаковые числа стоят в строке рядом.Если одинаковых чисел, стоящих рядом, нет, то вывести соответствующее сообщение. Qbasic
Ваше имя (никнейм)*
Email*
Комментарий*