Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Двумерный массив!

11K
09 апреля 2006 года
denamer
19 / / 20.02.2006
У меня задача! На двумерные массивы! Очень несложная, но у меня возник вопрос!
***
Необходимо заполнить случайными двузначными числами матрицу из 10 столбцов и 12 строк. Напечатать эту матрицу и рядом напечатать количество чисел меньше 50.
Затем, после нажатия enter, выделить цветом те элементы матрицы, у которых слева и справа стоят чётные числа. Посчитать и напечать количество таких чисел.
***
Uses crt;
var
a:array[1..10,1..12] of integer;
s,x,y: integer;
begin
s:=0;
clrscr; randomize;
for x:=1 to 10 do
for y:=1 to 12 do
a[x,y]:= random(100)-random(11);
clrscr;
textcolor(10);
for x:=1 to 10 do
for y:=1 to 12 do
begin
gotoxy(x*4,y);
if a[x,y]<50 then
begin
s:=s+1;
textcolor(12);
end else textcolor(10);
write(a[x,y]);
end;
textcolor(15); write(' Количество искомых чисел=',s);
readkey;
end.

***
Я напечатал всю программу до последних заданий с чётными числами. На цветовые изменения не обращайте внимание!
И у меня вопрос! Помогите пожалуйста! Как найти элементы матрицы, у которых слева и справа стоят чётные числа? Очень срочно!!! А кстати и ещё ! Двузначные числа - это: random(100)-random(11) или по-другому?
С уважением,
denamer!
P.S. ПОЖАЛУЙСТА!!!
1.8K
09 апреля 2006 года
LastSoul
279 / / 28.12.2005
Ну сначала отвечу на твой последний вопрос:
random(100)-random(11) - это не только двузначные числа, это числа от -10 до 99
Код:
Uses crt;
var a:array[1..10,1..12] of integer;
    s,x,y: integer;
begin
 s:=0;
 clrscr; randomize;
 textcolor(LightGray);
 for x:=1 to 10 do
  Begin
   for y:=1 to 12 do
    Begin
     [COLOR=red]a[x,y]:= random(90)+10;[/COLOR]
     If a[x,y]<50 Then Inc(s);
     Write(a[x,y]:3);
    End;
   WriteLn;
  End;
 ReadLn; {ожидание нажатия на Enter}
 for x:=1 to 10 do
  Begin
   for y:=1 to 12 do
    Begin
     textcolor(LightGray);
     If (y<>1) and (y<>12) Then
      if (Not Odd(a[x,y-1])) and (Not Odd(a[x,y+1])) then TextColor(White)
       Else textColor(LightGray);
     Write(a[x,y]:3);
    End;
   WriteLn;
  End;
 textcolor(Green); write(' Кол-во чисел меньше 50 = ',s);
 readkey;
end.

Кстати насчет выделенных элементов: выделяются только те у которых слева И справа четные числа, например 1-ый элемент любой строки никогда не будет выделен т.к. слева то него элементов НЭТУ, естественно с последним элементом любой строки такая же фигня...

И еще, о двузначных числах:
Тебе какие???
Вставь зеленый вместо красного кода
1)Положительные:
[COLOR=green]a[x,y]:= random(90)+10;[/COLOR]
2)Отрицательные:
[COLOR=green]a[x,y]:= random(110)-99;[/COLOR]
3)Положительные + Отрицательные:
Можно сделать по разному, например так:
[COLOR=green]
r:= random(2);
If r=0 Then a[x,y]:= random(90)+10
Else a[x,y]:= random(110)-99;
[/COLOR]

11K
12 апреля 2006 года
denamer
19 / / 20.02.2006
Спасибо огромное!!!:)
Мне это очень и очень сильно помогло!!!
Искреннее спасибо!
~denamer
11K
12 апреля 2006 года
denamer
19 / / 20.02.2006
-Write(a[x,y]:3)-

А почему после двоеточия - 3?
8.2K
12 апреля 2006 года
RusHak
86 / / 02.03.2006
Цитата:
Originally posted by denamer
-Write(a[x,y]:3)-

А почему после двоеточия - 3?


Да там действительно не должно быть :3, просто
оставь -Write(a[x,y])-

929
13 апреля 2006 года
sp999
198 / / 31.01.2003
Цитата:
Originally posted by denamer
-Write(a[x,y]:3)-

А почему после двоеточия - 3?


Двоеточие означает форматирование, т.е. данная ячейка массива при выводе займет три позиции, независимо от того, сколькизначное число (одно-, двух- или трехзначное).

8.2K
13 апреля 2006 года
RusHak
86 / / 02.03.2006
Цитата:
Originally posted by sp999
Двоеточие означает форматирование, т.е. данная ячейка массива при выводе займет три позиции, независимо от того, сколькизначное число (одно-, двух- или трехзначное).


В раделе VAR указан тип Integer (var a:array[1..10,1..12] of integer; ) Двоеточие и 3 здесь нафиг не нужно. Вот еслиб был REAL...

929
13 апреля 2006 года
sp999
198 / / 31.01.2003
Цитата:
Originally posted by RusHak
В раделе VAR указан тип Integer (var a:array[1..10,1..12] of integer; ) Двоеточие и 3 здесь нафиг не нужно. Вот еслиб был REAL...


Здесь оно не надо вовсе не по этой причине, а потому что все выводимые числа двузначные и выведутся рОвно.

8.2K
13 апреля 2006 года
RusHak
86 / / 02.03.2006
Цитата:
Originally posted by sp999
Здесь оно не надо вовсе не по этой причине, а потому что все выводимые числа двузначные и выведутся рОвно.


Если бы тип был Real то как угодно вводи всё равно ответ был бы в виде 0.0000000+e и т.д.

929
13 апреля 2006 года
sp999
198 / / 31.01.2003
Цитата:
Originally posted by RusHak
Если бы тип был Real то как угодно вводи всё равно ответ был бы в виде 0.0000000+e и т.д.


Забыл сказать, что по условию задачи тип Real был бы здесь нелеп и неуместен. Предлагаю флуд закончить.

8.2K
13 апреля 2006 года
RusHak
86 / / 02.03.2006
Цитата:
Originally posted by sp999
Забыл сказать, что по условию задачи тип Real был бы здесь нелеп и неуместен. Предлагаю флуд закончить.


Хорошо флуд закончим. :)

46K
23 февраля 2009 года
Bender ™
16 / / 23.02.2009
помогите сделать прогу. задание такое: Найти наибольший из минимальных элементов каждого столбца матрицы А иего координаты матрицы.
Заранее спасибо!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог