IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Не получается в матрице удалять отдельные элементы.помогите, может другой подход нужен?
Евгения141294
сообщение 18.08.2013 15:36
Сообщение #1





Группа: Пользователи
Сообщений: 5
Пол: Мужской
Реальное имя: Евгения

Репутация: -  0  +


Требуется разработать алгоритм и программу расчета матрицы содержащей в себе все четные числа другой матрицы. Размер матрицы задан 6*6

У меня получилось только оставить четные числа,а как составить матрицу содержащую только четные другой не могу понять как сделать((




Program lr4;
uses crt;
const n=6;

type matrA = array[1..n, 1..n] of integer;
matrB = array[1..n, 1..n] of string;
matrC = array[1..n, 1..n] of string;
Var
i,j,S:integer;
V:string;
a:matrA;
b:matrB;
c:matrC;

procedure vvod;
var i,j:integer;
begin
textattr:=green;
gotoxy (20,4);
writeln ('Ввведите элемент массива :');
for i:=1 to n do
begin
for j:=1 to n do
begin

textattr:=yellow;
write ('A[',i,',',j,']=');
read (A[i,j]);

S:=A[i,j];
Str (S,V);
C[j,i]:=V;
B[j,i]:=C[j,i];
end;
end;
end;
function chot:integer;
begin
chot:=A[i,j];
end;

begin

clrscr;
vvod;

for i:=1 to n do
begin
for j:=1 to n do
begin
if A[i,j] mod 2 <> 0 then
B[i,j]:=' '
else
begin
A[i,j]:=chot;
S:=A[i,j];
Str(S,V);
B[i,j]:=V;
end;

end;
end;


clrscr;
gotoxy (1,9);
for i:=1 to n do
begin
for j:=1 to n do
begin
write (A[i,j]);
write (' ');
end;
writeln ('');
end;
readln;

gotoxy(1,20);
for i:=1 to n do
begin
for j:=1 to n do
begin
write (B[i,j]:3);
write (' ');
end;
writeln ('');
end;
readln;
end.


Сообщение отредактировано: Евгения141294 - 18.08.2013 15:55
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Федосеев Павел
сообщение 23.08.2013 20:49
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 298
Пол: Мужской
Реальное имя: Федосеев Павел

Репутация: -  8  +


Значит получится матрица 1x17 - из одной строки.
Боюсь, что уточнение формулировки условия ты получишь при защите лабы. Но у тебя есть задатки - подправишь прогу на месте.

Ещё, как говорят комивояжёры, "товар вдогонку"...
Могу порекомендовать использовать форматтеры исходных текстов для паскаля перед сдачей преподавателю. Рекомендую JCF (Jedy Code Format) - именно им я обработал твой исходник для лучшего понимания.

PS У тебя в компиляторе выключены опции проверки на корректность диапазона - поэтому прога не завершилась аварийно. Добавь в начале программы строку {$R+} и увидишь "вылет" на результате 1х17

const
nn = n*n;
type
massA = array [1..nn] of integer; <------ удобнее описать все типы, а потом их использовать.

type
matrB = array [1..n, 1..nn] of integer; <------ именно nn - мы ведь можем получить 2x17 или 1x31

var
i, j : integer;
EvenNum : integer; {количество чётных чисел в исходной матрице}
EvenList: massA;
Nb, Mb : integer; {размерность новой матрицы}
A : matrA;
B : matrB;

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 21.07.2025 15:08
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"