Задание: Дан массив А(N,N). Поменять элементы К-ой строки с элементами последней строкой этого массива. Переписать в одномерный массив элементы К-ой строки. Первоначальный и преобразованый двумерные массивы и одномерный массив вывести на экран. Началась практика, а я почти ни чё не помню. ЗАРАНЕЕ СПАСИБО.
Program) Code: program zadacha; var a:array[1..255,1..255]; b:array[1..255,1..255]; c:array[1..255]; k,i,j,n:integer; begin writeln ('Введите номер строки которую нужно поменять'); readln (k); writeln ('Введите количество элементов массива'); readln (n); writeln ('Введите элементы массива и нажмите (Enter)'); for i:=1 to n do for j:=1 to n do read(A[i,j]); for i:=1 to n do for j:=1 to n do b[i,j]:=a[i,j]; for j:=1 to n do c:=b[k,j]; b[k,j]:=b[n,j]; b[n,j]:=c; for j:=1 to n do c[i]:=b[k,j]; for i:=1 to n do for j:=1 to n do write (A[i,j]); for i:=1 to n do for j:=1 to n do write (B[i,j]); for i:=1 to n do write (c[i]); end. Только недавно начал изучать паскаль так что не пинайте..Незнаю рабочия ли программа...
Code: program zadacha; var a:array[byte,byte] of integer; b:array[byte] of integer; k,i,j,n:integer; begin writeln ('Введите номер строки которую нужно поменять'); readln (k); writeln ('Введите количество элементов массива'); readln (n); writeln ('Введите элементы массива и нажмите (Enter)'); for i:=1 to n do for j:=1 to n do read(A[i,j]); for i:=1 to n do for j:=1 to n do write (A[i,j]); for j:=1 to n do begin b[j]:=a[k,j]; a[k,j]:=a[n,j]; a[n,j]:=b[j]; end; for i:=1 to n do for j:=1 to n do write (a[i,j]); for i:=1 to n do write (b[i]); end.
PHP: const kl = 300; type myarr = array [1..kl, 1..kl] of integer; var a: myarr; b: array [1..kl] of integer; i, j, k, n: integer; procedure swap(var a, b: integer); var t: integer; begin t:=a; a:=b; b:=t; end; procedure writem (a: myarr); var i, j: integer; begin writeln; for i:=1 to n do begin for j:=1 to n do write(a[i, j],' '); writeln; end; end; begin readln(n, k); for i:=1 to n do begin for j:=1 to n do read(a[i, j]); readln; end; writem(a); for i:=1 to n do begin swap(a[k, i], a[n, i]); b[i]:=a[k, i]; end; writem(a); writeln; for i:=1 to n do write(b[i],' '); readln; end.
Писал на Делфи, но должно работать и на паскале: PHP: program Project2; var i,j,R:integer; N,K:integer; Massv:array[1..255,0..255] of integer; Massv_t:array[1..255,0..255] of integer; Massv_o:array[1..255] of integer; begin Write('Размер массива: '); ReadLn(N); {Заполняем рандом 2 массива} for j:=1 to N do // Столбец for i:=1 to N do // строка begin r:=Random(100); Massv[j,i]:=r; Massv_t[j,i]:=r; end; {Какую строку будем менять} Write('Строка: '); ReadLn(K); {Замена + Сохранение в одномерном массиве} for i:=1 to N do // строка begin Massv_o[i]:=Massv[K,i]; // сохраняем в одномерном Massv[K,i]:=Massv[N,i]; // заменяем K строку последней Massv[N,i]:=Massv_o[i]; // последнюю заменяем из одномерного массива end; {Вывод} WriteLn('-Массив--------------'); for j:=1 to N do // Столбец begin for i:=1 to N do // строка begin Write(Massv_t[j,i],' '); end; WriteLn; // новая строка end; WriteLn('-Измененый Массив--------------------'); for j:=1 to N do // Столбец begin for i:=1 to N do // строка begin Write(Massv[j,i],' '); end; WriteLn; end; WriteLn('-Строка-----------------------'); for i:=1 to N do // строка begin Write(Massv_o[i],' '); end; WriteLn('Нажмите Enter для завершения...'); ReadLn; // Ожидаем нажатие Enter для выдода end. P.s. надеюсь правильно понял задачу.
JnK...нужно сначала поменять местами в двумерном, только потом записывать в одномерный, у тебя же наоборот происходит... плюс если используешь random, то не забываем писать randomize
Soherox, Выходит в одномерный надо записать последнюю строку двухмерного начального массива. ИМХО, В данном случаи randomize, дело вкуса. Если после изменения, тогда надо поменять этот кусочек: PHP: for i:=1 to N do // строка begin // Massv_o[i]:=Massv[K,i]; // Сохранить до изменения Massv[K,i]:=Massv[N,i]; Massv_o[i]:=Massv[K,i]; // Сохранить После изменения Massv[N,i]:=Massv_t[K,i]; // последнюю строку заменяем на К строку end;