06.10.2011, 13:33 | #1 (permalink) |
Member
Регистрация: 11.11.2010
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Программа выводит результат бесконечное число раз. Не ясна причина
Код:
program sortirovka1; uses crt; var a: array [0..99] of integer; i, j,n,k,x,f,g: integer; begin clrscr; writeln('Danna programma sortiryet massiv prostum obmenom.'); writeln('******************************'); writeln('Vvedite chislo zifr massiva n='); readln(n); randomize; for i:=1 to n do a[i]:=random(10); for i:=1 to n do begin for i:=1 to n do inc(k); for i:=1 to n do write(a[i]); writeln; {-- algoritm sortirovki --} for i:=n downto 2 do for j:=1 to i-1 do if a[j]>a[j+1] then begin f:=a[j]; a[j]:=a[j+1]; a[j+1]:=f; end; end; writeln('Otsortirovannui massiv: '); while (i<n) and (i>0) do {-- for i:=n downto 1 do--} write(a[i]); readln; end. |
06.10.2011, 13:33 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
По содержанию данные темы очень схожи с вашей Не выводит массив Delphi7 В чём причина - в БП или в чём-то другом? |
06.10.2011, 15:37 | #3 (permalink) |
Member
Регистрация: 11.11.2010
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
AlexZir, попробовала увеличить. Но зацикливание все равно происходит:
Здесь есть кака-то ошибка? Код:
i := 0; while i < n do begin if i > 0 then Write(', '); Write(a[i]); Inc(i); end; |
06.10.2011, 15:50 | #4 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Код:
uses crt; var a:array [1..99] of integer; i,j,n,f: integer; begin clrscr; writeln('Danna programma sortiryet massiv prostum obmenom.'); writeln('******************************'); write('Vvedite chislo zifr massiva n= '); readln(n); randomize; for i:=1 to n do begin a[i]:=random(10); write(a[i]:2); end; writeln; {-- algoritm sortirovki --} for i:=n downto 2 do for j:=1 to i-1 do if a[j]>a[j+1] then begin f:=a[j]; a[j]:=a[j+1]; a[j+1]:=f; end; writeln('Otsortirovannui massiv: '); for i:=1 to n do write(a[i]:2); readln; end. |
|
06.10.2011, 16:15 | #5 (permalink) |
Member
Регистрация: 11.11.2010
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Vladimir_S, спасибо за оптимизацию и исправление программы!
Дело в том,что я с недавних пор серьезно взялась за изучение этой дисциплины и пишу код,как получается. Мне пока что хоть как-нибудь разбираться в заданиях и,чтобы сама могла составить программу |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
07.10.2011, 09:52 | #6 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
IvalIga
Не пытайтесь сразу писать программу, сначала дискретизируйте задание, разбейте его на шаги, потом посмотрите, как более оптимально можно реализовать каждый шаг, составьте математическую модель задания, попытайтесь составить алгоритм, проверьте его правильность и непротиворечивость, только потом принимайтесь за программу на языке программирования. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|