Задана матрица B(MxNОпределить, сколько раз в ее строках одинаковые числа стоят в строке рядом.Если одинаковых чисел, стоящих рядом, нет, то вывести соответствующее сообщение. Qbasic
ВАЖНО! Прикрепленные файлы на самом деле не текстовые, а двоичные, но таковые данная система не позволяет прикрепить. Поэтому не стоит пытаться эти файлы читать.
Для работы программы следует переименовать файлы в file1.bin и file2.bin
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
31.01.2021
Если будет ошибка на строчке: 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.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Задана матрица B(MxNОпределить, сколько раз в ее строках одинаковые числа стоят в строке рядом.Если одинаковых чисел, стоящих рядом, нет, то вывести соответствующее сообщение. Qbasic
Для работы программы следует переименовать файлы в 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)