• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Pascal. Выбор в массиве определенных членов.

  • Автор темы InviZible
  • Дата начала
Статус
Закрыто для дальнейших ответов.
I

InviZible

Даны натуральные n, целые числа a1......an. Внутри данной последовательности могут быть повторяюшиеся члены. Получить числа. взятые по одному из каждой группы равных членов.

я делал так :

Код:
Program laba3;
Uses Crt;
Var
a:array[1..10000] of integer;
k,i,n:integer;
Begin
ClrScr;

WriteLn('***************************');
WriteLn('Vvedi n. 0 < n <=10000 ');
ReadLn(n);
WriteLn('***************************');

for i:=1 to n do
begin
WriteLn('Enter a[',i,']');
ReadLn(a[i]);
end;

WriteLn('***************************');

Write('Massiv zapolnen. Sosoit iz : ');

for i:=1 to n do
Write(a[i],' ');

WriteLn;

for i:=1 to n do
begin
for k:=1 to n do
if a[i]=a[i+k] then
begin
WriteLn('============================');
WriteLn('Vot chislo iz pari : ',a[i]);
WriteLn('============================');
end;
end;

WriteLn('That''s all.');
ReadLn;
End.

Но мою лабуду заброкавали. Прога работает, но если вводить: n=4, а потом 3 3 3 3, то фигня получается. Так же проблема с нулями.
Сказали, что нужно переделать.

Заранее спасибо.
 
P

pushkin

Вот программа, которая работает:
Код:
program Project1;

uses Crt;

var a:array[1..10000] of integer;
k,i,n,z:integer;

Begin
WriteLn('***************************');
WriteLn('Vvedi n. 0 < n <=10000 ');
ReadLn(n);
WriteLn('***************************');

for i:=1 to n do begin
Write('a[',i,']=');
ReadLn(a[i]);
end;

WriteLn('***************************');

// Сортируем массив по возрастанию методом "пузырька".
// После сортировки повторяющиеся числа будут находиться рядом

for k:=1 to n-1 do
for i:=1 to n-1 do
if a[i] > a[i+1] then begin
z := a[i];
a[i] := a[i+1];
a[i+1] := z;
end;

z := a[1];
for i:=1 to n do
if (a[i] <> z) or (i=1) then begin
z := a[i];
WriteLn('============================');
WriteLn('Vot chislo iz pari : ', z);
WriteLn('============================');
end;

WriteLn('That''s all.');
ReadLn;
End.
 
I

InviZible

Спасибо, я уже давно сделал. Вот мой вариант

Код:
Program laba3;
Uses Crt;
Var
a:array[1..10000] of integer;
d,p,j,i,n:integer;
Begin
ClrScr;
WriteLn('Hi, it''s laba3_7 by Serega M. Vesion 0.3 . yes or die');
WriteLn('***************************');
WriteLn('Vvedi n. 0 < n <=10000 ');
ReadLn(n);
WriteLn('***************************');

for i:=1 to n do
begin
WriteLn('Enter a[',i,']');
ReadLn(a[i]);
end;

WriteLn('***************************');

Write('Massiv zapolnen. Sosoit iz : ');

for i:=1 to n do
Write(a[i],' ');

WriteLn;

for i:=1 to n-1 do
begin
d:=0;
p:=0;

for j:=1 to i-1 do
if a[j]=a[i] then inc(d);

for j:=i+1 to n do
if a[j]=a[i] then inc(p);

if (p>0) and (d=0) then
writeln('Chislo iz pari : ',a[i],' ');
end;

WriteLn('That''s all!');
readln;
end.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!