|
Вопрос # 6 050/ вопрос решён / |
|
Здравствуйте! Мне дали задачу:
Дана вещественная матрица размерности n * m. По матрице получить логический вектор, присвоив его k-ому элементу значение True , если выполнено указанное условие и значение False иначе: - все элементы k столбца нулевые; - элементы k строки матрицы упорядочены по убыванию; - k строка массива симметрична.
Я знаю как создавать матрицу: array [1..2, 1..2] of ineteger;
но я не знаю что такое логический вектор, и вообще ничего не понимаю о чем говориться в этой лабе, помогите мне пожалуйста.
 |
Вопрос задал: Александр Думов (статус: Посетитель)
Вопрос отправлен: 6 апреля 2012, 17:46
Состояние вопроса: решён, ответов: 1.
|
Ответ #1. Отвечает эксперт: puporev
Здравствуйте, Александр Думов!
Прилагаю код программы, написанный в Турбо Паскале, но будет работать и в других Паскалях.
Приложение: Переключить в обычный режим- uses crt;
- const nmax=10;
- var a:array[1..nmax,1..nmax] of real;
- b,c,d:array[1..nmax] of boolean;
- m,n,i,j,k:byte;
- begin
- clrscr;
- repeat
-
- readln(n);
- until n in [1..nmax];
- repeat
-
- readln(m);
- until m in [1..nmax];
-
- for i:=1 to n do
- for j:=1 to m do
- begin
- write('a[',i,',',j,']=');
- readln(a[i,j]);
- end;
- clrscr;
-
- for i:=1 to n do
- begin
- for j:=1 to m do
- write(a[i,j]:4:1);
- writeln;
- end;
- writeln;
-
- for j:=1 to m do
- begin
- k:=0;
- for i:=1 to n do
- if a[i,j]=0 then k:=k+1;
-
- end;
-
- for i:=1 to m do
- write(b[i],' ');
- writeln;
- writeln;
-
- for i:=1 to n do
- begin
- k:=0;
- j:=2;
- while(j<=m)and(k=0) do
- if a[i,j]>=a[i,j-1] then k:=1
- else j:=j+1;
-
- end;
-
- for i:=1 to m do
- write(c[i],' ');
- writeln;
- writeln;
-
- for i:=1 to n do
- begin
- k:=0;
- j:=1;
- while(j<=m div 2)and(k=0) do
- if a[i,j]<>a[i,m-j+1] then k:=1
- else j:=j+1;
-
- end;
-
- for i:=1 to m do
- write(d[i],' ');
- readln
- end.
-
 |
Ответ отправил: puporev (статус: 2-ой класс)
Время отправки: 6 апреля 2012, 18:11
Оценка за ответ: 5
Комментарий к оценке: спасибо большое, очень помогли! Только что бы разобрать ваш текст пришлось поменять кодировку на UTF-8
|
Мини-форум вопроса
Всего сообщений: 4; последнее сообщение — 8 апреля 2012, 12:54; участников в обсуждении: 3.
|
puporev (статус: 2-ой класс), 6 апреля 2012, 18:14 [#1]:
Интересно, у всех каракули вместо русских букв, или только у меня?
|
6 апреля 2012, 19:17: Статус вопроса изменён на решённый (изменил автор вопроса — Александр Думов)
|
puporev (статус: 2-ой класс), 6 апреля 2012, 19:28 [#2]:
Вот код с русскими комментариями
uses crt;
const nmax=10;
var a:array[1..nmax,1..nmax] of real;
b,c,d:array[1..nmax] of boolean;
m,n,i,j,k:byte;
begin
clrscr;
repeat
write('Количество строк до ',nmax,' n=');
readln(n);
until n in [1..nmax];
repeat
write('Количество столбцов до ',nmax,' m=');
readln(m);
until m in [1..nmax];
writeln('Введите элементы матрицы:');
for i:=1 to n do
for j:=1 to m do
begin
write('a[',i,',',j,']=');
readln(a[i,j]);
end;
clrscr;
writeln('Исходная матрица:');
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:4:1);
writeln;
end;
writeln;
{построение вектора к первому условию};
for j:=1 to m do
begin
k:=0;
for i:=1 to n do
if a[i,j]=0 then k:=k+1;
b[j]:=k=n;{если все ноли=true}
end;
writeln('Вектор В:');
for i:=1 to m do
write(b[i],' ');
writeln;
writeln;
{построение вектора по второму условию}
for i:=1 to n do
begin
k:=0;
j:=2;
while(j<=m)and(k=0) do
if a[i,j]>=a[i,j-1] then k:=1
else j:=j+1;
c[i]:=k=0;{если все по убыанию=true}
end;
writeln('Вектор C:');
for i:=1 to m do
write(c[i],' ');
writeln;
writeln;
{построение вектора по третьему условию}
for i:=1 to n do
begin
k:=0;
j:=1;
while(j<=m div 2)and(k=0) do
if a[i,j]<>a[i,m-j+1] then k:=1
else j:=j+1;
d[i]:=k=0;{если строка симметрична=true}
end;
writeln('Вектор D:');
for i:=1 to m do
write(d[i],' ');
readln
end.
|
|
Толяныч (статус: 4-ый класс), 7 апреля 2012, 00:57 [#3]:
У всех !
|
|
Ерёмин А.А. (статус: *Администратор), 8 апреля 2012, 12:54 [#4]:
Кодировка ответа puporev исправлена.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|