Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Уникальный элемент массива (http://www.tehnari.ru/f41/t33387/)

Vladimir_S 23.02.2010 08:15

Цитата:

Сообщение от Linka (Сообщение 298962)
Как сделать, чтобы оно выводилось лишь единожды?

Например, так:
Код:

const n=10;
var
 a,c:array[1..n] of integer;
 k,i,j,m,Nc:integer;
 b:boolean;

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

 Nc:=0;

 for i:=1 to n do
  begin
  k:=0;
  for j:=1 to n do
    if a[i]=a[j] then k:=k+1;
  if k>=2 then
    begin
    b:=true;
    for m:=1 to Nc do
      if a[i]=c[m] then b:=false;
    if b then
      begin
      Nc:=Nc+1;
      c[Nc]:=a[i];
      end;
    end;
  end;

 for m:=1 to Nc do WriteLn(c[m]);

 Readln;
end.

Цитата:

З.Ы. А есть в паскале оператор "преждевременного" выхода из цикла ? Или надо использовать GOTO label ?
Нет. Но грамотное использование циклов типа REPEAT..UNTIL и WHILE..DO позволяет организовать прерывание цикла без всяких меток. И вообще - если Вы хотите научиться программированию, постарайтесь забыть о метках. Они - "дурной тон".

И еще. Ну почему Вы упорно перемещаете оператор k:=0 в конец цикла? Он должен быть в начале, чтобы срабатывал для всех, включая первое, значений переменной цикла.

Linka 23.02.2010 20:28

Спасибо.

Владимир, такой вопрос не по теме немного, каким образом вы составляете алгоритм ? На бумаге, или сам в голове появляется, или есть какой-то определенный алгоритм составления алгоритма ? ) Не про эту задачу спрашиваю, а про вообще.

"Нельза научиться программировать. Это либо дано либо нет." - полная чушь ? =)

Vladimir_S 23.02.2010 20:44

Цитата:

Сообщение от Linka (Сообщение 299380)
Спасибо.

Владимир, такой вопрос не по теме немного, каким образом вы составляете алгоритм ? На бумаге, или сам в голове появляется, или есть какой-то определенный алгоритм составления алгоритма ? ) Не про эту задачу спрашиваю, а про вообще.

По-разному. Скорее всё-таки "в голове". Ну и опыт большой, плюс, как правило, студенческие задачки сложностей не представляют.
Цитата:

"Нельза научиться программировать. Это либо дано либо нет." - полная чушь ? =)
Нет, не полная. Хотя, конечно, изрядное преувеличение. Мне кажется, тут, да как практически и в любом ремесле, первично желание. Есть желание - и навык появится, и мастерство. А если желание сводится к тому, чтобы спихнуть зачет и забыть, то тут ничего не выйдет.

MrSTEP 24.02.2010 01:14

Интерес должен появиться к программированию. А будет интерес - будут задачи, разные пути решений, опыт, а там уже и алгоритмы будут в голове моментально строиться
З.Ы. Кстати, в паскале есть оператор, завершающий выполнение текущего цикла - Break


Часовой пояс GMT +4, время: 04:08.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.