TP-массивы

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

Ответить
XoMo4KuH
Сообщения: 2
Зарегистрирован: 21 апр 2008, 15:01

Парни помогите написать программы:
1)Дан двумерный массив размерностью 4х6, заполненный целыми числами с клавиатуры. Сформулировать одномерный массив, каждый элемент которого равен количеству элементов соответствующей строки, больших данного.

2)Дан двумерный массив размером nxm, заполненный случайными числами. Определить, есть ли в данном массиве столбец, в котором имеются одинаковые элементы.

2)Заполнить массив размером 7х7 по правилу:

1 1 1 1 1 1 1
0 1 1 1 1 1 0
0 0 1 1 1 0 0
0 0 0 1 0 0 0
0 0 1 1 1 0 0
0 1 1 1 1 1 0
1 1 1 1 1 1 1
Аватара пользователя
Alex_Burn
Сообщения: 147
Зарегистрирован: 13 апр 2007, 17:49
Контактная информация:

Держи третью

[Syntax="Pascal"]
uses crt;
var a : array[1..7,1..7] of 0..1;
i,j : integer;
begin
clrscr;
a[1,1]:=1; a[1,2]:=1; a[1,3]:=1;a[1,4]:=1; a[1,5]:=1; a[1,6]:=1; a[1,7]:=1;
a[2,1]:=0; a[2,2]:=1; a[2,3]:=1;a[2,4]:=1; a[2,5]:=1; a[2,6]:=1; a[2,7]:=0;
a[3,1]:=0; a[3,2]:=0; a[3,3]:=1;a[3,4]:=1; a[3,5]:=1; a[3,6]:=0; a[3,7]:=0;
a[4,1]:=0; a[4,2]:=0; a[4,3]:=0;a[4,4]:=1; a[4,5]:=0; a[4,6]:=0; a[4,7]:=0;
a[5,1]:=0; a[5,2]:=0; a[5,3]:=1;a[5,4]:=1; a[5,5]:=1; a[5,6]:=0; a[5,7]:=0;
a[6,1]:=0; a[6,2]:=1; a[6,3]:=1;a[6,4]:=1; a[6,5]:=1; a[6,6]:=1; a[6,7]:=0;
a[7,1]:=1; a[7,2]:=1; a[7,3]:=1;a[7,4]:=1; a[7,5]:=1; a[7,6]:=1; a[7,7]:=1;
for i:=1 to 7 do
begin
for j:=1 to 7 do
begin
write(a[i,j],' ');
end;
writeln;
end;
readkey;
end.

[/Syntax]
MOTOCoder
Сообщения: 548
Зарегистрирован: 14 янв 2008, 20:27
Откуда: Россия, Псков

Alex_Burn писал(а):Держи третью

[Syntax="Pascal"]
uses crt;
var a : array[1..7,1..7] of 0..1;
i,j : integer;
begin
clrscr;
a[1,1]:=1; a[1,2]:=1; a[1,3]:=1;a[1,4]:=1; a[1,5]:=1; a[1,6]:=1; a[1,7]:=1;
a[2,1]:=0; a[2,2]:=1; a[2,3]:=1;a[2,4]:=1; a[2,5]:=1; a[2,6]:=1; a[2,7]:=0;
a[3,1]:=0; a[3,2]:=0; a[3,3]:=1;a[3,4]:=1; a[3,5]:=1; a[3,6]:=0; a[3,7]:=0;
a[4,1]:=0; a[4,2]:=0; a[4,3]:=0;a[4,4]:=1; a[4,5]:=0; a[4,6]:=0; a[4,7]:=0;
a[5,1]:=0; a[5,2]:=0; a[5,3]:=1;a[5,4]:=1; a[5,5]:=1; a[5,6]:=0; a[5,7]:=0;
a[6,1]:=0; a[6,2]:=1; a[6,3]:=1;a[6,4]:=1; a[6,5]:=1; a[6,6]:=1; a[6,7]:=0;
a[7,1]:=1; a[7,2]:=1; a[7,3]:=1;a[7,4]:=1; a[7,5]:=1; a[7,6]:=1; a[7,7]:=1;
for i:=1 to 7 do
begin
for j:=1 to 7 do
begin
write(a[i,j],' ');
end;
writeln;
end;
readkey;
end.

[/Syntax]


Это ж надо такое придумать =)
Программа должна сформировать массив, а не выдать заложенный программистом.
Например так:
[syntax='Delphi']
program matr;

const
N=7;

var
Matrix:array [1..N,1..N] of byte;
i,j,c,k,f:integer;

begin
c:=0;
f:=1;
for I:=1 to N do
begin
k:=N-C*2;
for J:=1 to N do
begin
if (J<=C)or(J>C+K) then
Matrix[J,I]:=0
else
Matrix[J,I]:=1;
end;
if I>=4 then
F:=-1;
inc(C,F);
end;

for i:=1 to N do
begin
for j:=1 to N do
write(Matrix[J,I],' ');
writeln;
end;

readln;
end.
[/syntax]
Ни что так не ограничивает фантазию программиста, как компилятор...
Аватара пользователя
Alex_Burn
Сообщения: 147
Зарегистрирован: 13 апр 2007, 17:49
Контактная информация:

Написано, заполнить массив, ну я и заполнил :)
Аватара пользователя
Oleg_Rus
Сообщения: 335
Зарегистрирован: 16 окт 2006, 09:56
Откуда: г.Улан-Удэ, респ.Бурятия, Российская Федерация
Контактная информация:

насчет второй задачи, скажу так:
1.формируешь массив случайных чисел (Random, если не знаешь)
2.по i-тому столбцу устраивашь перебор.
e-mail: garmayev@yandex.ru
---------------------------------------------------------------------------
<a href="http://nick-name.ru/sertificates/711965/"><img src="http://nick-name.ru/img.php?nick=Garmay ... =2&text=t5" alt="Никнейм Garmayev зарегистрирован!" /></a>
Аватара пользователя
Oleg_Rus
Сообщения: 335
Зарегистрирован: 16 окт 2006, 09:56
Откуда: г.Улан-Удэ, респ.Бурятия, Российская Федерация
Контактная информация:

function find;
begin
k:=1;
for i:=1 to n do
begin
for j:=1 to m do
begin
if a[j, i]=a[j, k] then find:=true;

end;
e-mail: garmayev@yandex.ru
---------------------------------------------------------------------------
<a href="http://nick-name.ru/sertificates/711965/"><img src="http://nick-name.ru/img.php?nick=Garmay ... =2&text=t5" alt="Никнейм Garmayev зарегистрирован!" /></a>
Аватара пользователя
Oleg_Rus
Сообщения: 335
Зарегистрирован: 16 окт 2006, 09:56
Откуда: г.Улан-Удэ, респ.Бурятия, Российская Федерация
Контактная информация:

function find;
begin
k:=1;
for i:=1 to n do
begin
for j:=1 to m do
begin
if a[j, i]=a[j, k] then find:=true;
inc(k);
end;

(прим: код написан на вскидку и второпях, ошибок много, но идею понять можно)
e-mail: garmayev@yandex.ru
---------------------------------------------------------------------------
<a href="http://nick-name.ru/sertificates/711965/"><img src="http://nick-name.ru/img.php?nick=Garmay ... =2&text=t5" alt="Никнейм Garmayev зарегистрирован!" /></a>
Аватара пользователя
un4-funeral
Сообщения: 60
Зарегистрирован: 18 апр 2008, 23:40
Контактная информация:

Oleg_Rus, после прогонки k надо снова единице присваивать
чтоб уже для нового столбца вычисляло
BHy4ok
Сообщения: 237
Зарегистрирован: 01 май 2007, 09:03
Откуда: г.Находка
Контактная информация:

2Alex_Burn: Улыбнуло :)
< L3X. (ICQ: 8721378, Mail - l3x@list.ru)
XoMo4KuH
Сообщения: 2
Зарегистрирован: 21 апр 2008, 15:01

Помогите еще с первой задачей плз!
Ответить