ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
Памогите плз решить задание по лабе по турбо паскалю |

30.03.2010, 19:30
|
|
Новичок
Регистрация: 30.03.2010
Сообщений: 3
Провел на форуме: 13735
Репутация:
0
|
|
Памогите плз решить задание по лабе по турбо паскалю
Задание:
Дан массив А(N,N). Поменять элементы К-ой строки с элементами последней строкой этого массива. Переписать в одномерный массив элементы К-ой строки. Первоначальный и преобразованый двумерные массивы и одномерный массив вывести на экран.
Началась практика, а я почти ни чё не помню.
ЗАРАНЕЕ СПАСИБО.
|
|
|

31.03.2010, 12:55
|
|
Новичок
Регистрация: 21.10.2009
Сообщений: 27
Провел на форуме: 815635
Репутация:
16
|
|
Program)
Код:
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.
Только недавно начал изучать паскаль так что не пинайте..Незнаю рабочия ли программа...
Последний раз редактировалось moodoone; 31.03.2010 в 14:13..
|
|
|

05.04.2010, 23:40
|
|
Banned
Регистрация: 06.03.2010
Сообщений: 36
Провел на форуме: 386452
Репутация:
32
|
|
не рабочая
|
|
|

06.04.2010, 00:05
|
|
Познающий
Регистрация: 30.01.2007
Сообщений: 69
Провел на форуме: 1405367
Репутация:
47
|
|
Код:
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.
|
|
|

06.04.2010, 00:07
|
|
Познающий
Регистрация: 17.02.2010
Сообщений: 45
Провел на форуме: 195184
Репутация:
47
|
|
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.
|
|
|

06.04.2010, 00:07
|
|
Участник форума
Регистрация: 30.03.2007
Сообщений: 121
Провел на форуме: 188563
Репутация:
52
|
|
Писал на Делфи, но должно работать и на паскале:
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; 06.04.2010 в 00:15..
Причина: Добавил комментарии
|
|
|

06.04.2010, 00:19
|
|
Познающий
Регистрация: 17.02.2010
Сообщений: 45
Провел на форуме: 195184
Репутация:
47
|
|
JnK...нужно сначала поменять местами в двумерном, только потом записывать в одномерный, у тебя же наоборот происходит... плюс если используешь random, то не забываем писать randomize
|
|
|

06.04.2010, 00:31
|
|
Участник форума
Регистрация: 30.03.2007
Сообщений: 121
Провел на форуме: 188563
Репутация:
52
|
|
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;
Последний раз редактировалось JnK; 06.04.2010 в 00:37..
|
|
|

06.04.2010, 00:31
|
|
Постоянный
Регистрация: 26.06.2009
Сообщений: 569
Провел на форуме: 2453356
Репутация:
50
|
|
_http://forum.antichat.ru/thread122076.html
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|