 |
Массивы - Вопросы и ответы, обсуждения - Ваши вопросы по Pascal/Delphi только в данном разделе |
27.11.2012, 21:20
|
#1
|
|
|
|
Разведчик
|
 Регистрация: 11.06.2012
 Сообщений: 23
 Популярность: 118
 Сказал(а) спасибо: 53
Поблагодарили 49 раз(а) в 26 сообщениях
|
Массивы
Код:
var mas:array[1..5,1..10] of integer;
a,c,w,i:integer;
b:integer;
begin
w:=0;
for i:=1 to 10 do
begin
a:=random(20);
b:=a div 1;
b:=mas[i];
b:=c;
if (b=c) then
w:=w+1;
end;
for j:=1 to 5 do
begin
a:=random(20);
b:=a div 1;
b:=mas[i,j];
b:=c;
if (b=c) then
w:=w+1;
end;
writeln(w);
readln;
End.
С массивами я имел дело очень давно и то поверхностно задача такова , дано двухмерный массив(5х10) , нужно задать рандомно число от 1 до 20 каждому элементу массива и высчитать сколько получилось одинаковых элементов , код выше , подскажите пожалуйста в чем не правильно?
________________
Кто то играет на евро 7?
|
|
|
27.11.2012, 21:35
|
#2
|
|
|
|
Разведчик
|
 Регистрация: 22.11.2012
 Сообщений: 2
 Популярность: 464
 Сказал(а) спасибо: 0
Поблагодарили 22 раз(а) в 13 сообщениях
|
Re: Массивы
 |
Цитата: |
 |
|
|
|
|
|
|
|
нужно задать рандомно число от 1 до 20 каждому элементу массива и высчитать сколько получилось одинаковых элементов |
|
 |
|
 |
|
всего сколько одинаковых? например так
Код:
const m=5;n=10;
var a,b:array[1..m,1..n] of integer;
i,j,k,p,s:integer;
f:boolean;
begin
randomize;
writeln('Исходная матрица:');
for i:=1 to m do
begin
for j:=1 to n do
begin
a[i,j]:=random(20)+1;
b[i,j]:=0;
write(a[i,j]:3);
end;
writeln;
end;
writeln;
writeln('=======================');
for i:=1 to m do
for j:=1 to n do
for k:=1 to m do
for p:=1 to n do
if(a[k,p]=a[i,j])and((k<>i)or(p<>j)) then b[i,j]:=1;
s:=0;
for i:=1 to m do
for j:=1 to n do
if b[i,j]=1 then inc(s);
write('Количество повторяющихся элементов=',s);
readln;
end.
 |
Цитата: |
 |
|
|
|
|
|
|
|
Исходная матрица:
12 2 7 9 12 19 9 8 17 14
10 1 16 11 1 6 14 15 8 5
3 10 3 8 14 19 11 10 17 1
6 8 13 7 3 5 17 16 3 1
7 12 17 13 7 15 19 5 16 18
=======================
Количество повторяющихся элементов=48 |
|
 |
|
 |
|
или вывести
Элемент - количество раз
Код:
uses crt;
const m=5;n=10;
var a:array[1..m,1..n] of integer;
b:array[1..20] of byte;
i,j,s:integer;
f:boolean;
begin
randomize;
for i:=1 to 20 do
b[i]:=0;
writeln('Исходная матрица:');
for i:=1 to m do
begin
for j:=1 to n do
begin
a[i,j]:=random(20)+1;
b[a[i,j]]:=b[a[i,j]]+1;
write(a[i,j]:3);
end;
writeln;
end;
writeln;
writeln('=======================');
s:=0;
for i:=1 to 20 do
begin
Writeln(i,' встречается ',b[i]:4,' раз');
if b[i]>1 then s:=s+b[i];
end;
Writeln('Всего повторяющихся:',s);
readln;
end.
Последний раз редактировалось mad_cat; 27.11.2012 в 22:00.
|
|
|
Пользователь сказал cпасибо:
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Похожие темы
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
[Помогите!] Двумерные динамические массивы
|
wowkarus |
Вопросы и ответы, обсуждения |
0 |
19.05.2012 22:34 |
[Помогите!] массивы
|
Kp0c123456 |
Вопросы и ответы, обсуждения |
11 |
04.02.2012 12:26 |
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 02:18.
|
 |