Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.02.2012, 18:19   #1
Irishka_F
Пользователь
 
Регистрация: 26.01.2012
Сообщений: 10
По умолчанию массив

Задание:
найти первый и последний отрицательные элементы главной диагонали массива m[1..6,1..6] и раскрасить их в желтый цвет
Irishka_F вне форума Ответить с цитированием
Старый 05.02.2012, 18:34   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Наработки покажи.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.02.2012, 19:13   #3
Irishka_F
Пользователь
 
Регистрация: 26.01.2012
Сообщений: 10
По умолчанию

Код:
program number39;
uses crt;
const N=10;
type m=array [1..6,1..6] of integer;
var a:m;
i,j:integer;
k:integer;
begin
clrscr;
randomize;

for i:=1 to 6 do begin
 for j:=1 to 6 do begin
  a[i,j]:=random(20)-10;
   write (A[i,j]:4);
  end;
 writeln;
end;


k:=0;
for i:=1 to 5 do
for i:=1 to 5 do
i:=1;
j:=1;
if a[i,j] <0 then
k:=a[i,j];


for i:=1 to 5 do begin
 for j:=1 to 5 do begin
if k>0 then

writeln('индекс последнего отрицательного элмента = ',k)
else
writeln ('нет отрицательных элементов');
end;
end;
readln
end.

Последний раз редактировалось Stilet; 05.02.2012 в 22:01.
Irishka_F вне форума Ответить с цитированием
Старый 05.02.2012, 19:20   #4
ByAlex
Форумчанин
 
Аватар для ByAlex
 
Регистрация: 15.03.2011
Сообщений: 465
По умолчанию

Зачем же вы так мудренно ищете элементы диагонали? Вот простая процедура -
Код:
for i:=1 to 6 do
   write(Arr[i,i],' '); // выводит элементы диагонали
Помог - жми на весы!
ByAlex89@mail.ru
ByAlex вне форума Ответить с цитированием
Старый 05.02.2012, 19:30   #5
Korben5E
Форумчанин
 
Аватар для Korben5E
 
Регистрация: 13.07.2010
Сообщений: 346
По умолчанию

не понятно действие на счет раскраски.. красить двери в соседнем корпусе?

при работе с диагональю достаточно 1го цикла, т.к. индексы по X и Y одинаковые
Код:
var 
c1,c2 : integer;
c1:=0;
c2:=0;

for i:=1 to 6 do
begin
if a[i,i] < 0 then 
    if c1 = 0 then 
        c1= i
    else 
        c2 =i;
end
c1 и c2 - хранят первую и последнюю координату отрицательных элементов.
Non est culpa vin, sed culpa bibentis
Korben5E вне форума Ответить с цитированием
Старый 05.02.2012, 20:07   #6
Irishka_F
Пользователь
 
Регистрация: 26.01.2012
Сообщений: 10
По умолчанию

спасибо)

а как окрасить эти два элемента?
Irishka_F вне форума Ответить с цитированием
Старый 05.02.2012, 22:00   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а как окрасить эти два элемента?
Как вариант:
Код:
for i:=1 to 6 do begin
 for j:=1 to 6 do begin
   a[i,j]:=random(20)-10;
   if (i=c1)and(j=c2) then TextColor(yellow) else TextColor(white)
   write (A[i,j]:4);
 end; 
 writeln;
end;
Т.Е. речь идет о том чтоб не сразу массив вывести а потом, после проверки
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.02.2012, 23:32   #8
Katus
Форумчанин
 
Регистрация: 30.11.2011
Сообщений: 161
По умолчанию

Код:
k:=0;
for i:=1 to 5 do
for i:=1 to 5 do
i:=1;
j:=1;
if a[i,j] <0 then
k:=a[i,j];
зачем 26 раз присваивать i единицу? ошибку не выдает случайно?
Если лень что-то делать, заставь это делать машину ... =,
Katus вне форума Ответить с цитированием
Старый 06.02.2012, 08:52   #9
Korben5E
Форумчанин
 
Аватар для Korben5E
 
Регистрация: 13.07.2010
Сообщений: 346
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Как вариант:
Код:
for i:=1 to 6 do begin
 for j:=1 to 6 do begin
   a[i,j]:=random(20)-10;
   if (i=c1)and(j=c2) then TextColor(yellow) else TextColor(white)
   write (A[i,j]:4);
 end; 
 writeln;
end;
Т.Е. речь идет о том чтоб не сразу массив вывести а потом, после проверки
угу, только с условием ошибся и рандом тут неуместен

Код:
if ((i=c1) and (j=c1)) or ((i=c2) and (j=c2)) then 
    TextColor(yellow) 
    else TextColor(white)
Non est culpa vin, sed culpa bibentis
Korben5E вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С# задан массив 5х5. сформировать массивы А и В. в массив А поместить элементы с четными индексами, в массив В с нечетны Koksa Помощь студентам 0 10.10.2011 11:26
Запись координат в массив в реал тайм, Как записать координаты в массив Dark19 Visual C++ 2 21.06.2011 18:45
Из массив А получить массив В, удвоив все нечётные элементы удвоены ( на Pascal) KARTER Помощь студентам 1 18.06.2011 19:58
Массив - Нужно написать массив и распечатать на экран с конца в начало(язык С++) econ Помощь студентам 1 29.05.2011 22:02
Упорядочить массив в порядке возрастания и напечатать входной и исходный массив. TheVenny Помощь студентам 3 26.11.2008 15:06