Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > Одномерный массив


Автор: pon4ik 1.7.2006, 00:40
Люди, пожалуйста умоляю, помогите!!! три часа просидел над прогой, сил уже нет...скоро родной русский язык позабуду.....буду разговаривать на паскале......с ошибками!!! Протестите прогу пожалуйста и найдите в ней ошибку!!! В общем суть проги: дан одноерный массив, надо ввести в него числа, и чтобы прога потом вывела их от большего к меньшему!!! она их выводит, тока вот, если на месте последнего числа поставить число меньшее предпоследнего, прога не увидит самое меньшее число!!! не знаю в чем глюк, помогите пожалуйста!!!

Код проги:

Код
Program c2;
uses crt;
var pr: array [1..100] of integer;
    obr: array [1..100] of integer;
    a,str,b,z: integer;
    k, t,i: integer;
begin
clrscr;
writeln ('Vvedite kolichestvo chisel');
readln(z);
writeln;
writeln('Vvedite chisla!!!');
 for i:=1 to z do begin
 readln(pr[i]);
 writeln;
end;
writeln;

b:=z;

 for k:=1 to 100 do begin
 a:=pr[1];
 for i:=1 to b do begin
 if a<pr[i] then begin a:=pr[i];
 t:=i;
 end;
 end;

 obr[k]:=a;
 for i:=t to b do begin
 pr[i]:=pr[i+1];
 end;

 b:=b-1;
 end;
 for i:=1 to z do begin
 writeln(obr[i]);
 end;
 readln;
 end.


Про теги не забывай ! 

Автор: volvo877 1.7.2006, 01:17
Цитата(pon4ik @  1.7.2006,  00:40 Найти цитируемый пост)
тока вот, если на месте последнего числа поставить число меньшее предпоследнего, прога не увидит самое меньшее число!!!

Правда? Я ввел 5 чисел:
1, 2, 3, 8, 5
и программа отработала как положено... С чего бы это? Какие данные ты вводил? 

Автор: Palladin 1.7.2006, 02:06
Согласен с Volvo всё пашет smile  ввёл 10 чисел

1,2,3,4,8,9,12,15,22,13

на выходе
22
15
13
12
9
8
4
3
2
1

 smile  

Автор: pon4ik 1.7.2006, 08:06
Я вводил 5 чисел: 4, 4, 9, 4, 1 - единицу он не видит 

Автор: fist13 1.7.2006, 08:28
да ладно вам народ, такие простые проги надо уметь самим писать. стыдно батенька. стыдно должно быть.

Добавлено @ 08:29 
кстати да. я тож попробовал. не пашит. ха
 

Автор: Palladin 1.7.2006, 11:37
Щас напишу по своему 

Автор: Palladin 1.7.2006, 11:55
Эта точно пашет, проверено 10 тестами smile 


Код

Program RooR;
var
a:array[1..100] of integer;
i,n,g,j:integer;
begin
 Write('Vvedite kol-vo elementov');
 Readln(n);
 for i:=1 to n do
   begin
    Write('A[',i,']=');
    readln(a[i]);
   end;
       for i:=n downto 2 do
         for j:=1 to i-1 do
         if a[j]<=a[j+1] then
         begin
         g:=a[j];
         a[j]:=a[j+1];
         a[j+1]:=g;
        end;
        

Wrtieln;


           for i:=1 to n do
            Writeln('A[',i,']=',a[i]);
             Readln;
end.


P.S. Класическая сотрировка 3 стаканами, если я не ошибаюсь smile    

Автор: pon4ik 1.7.2006, 17:57
Спасибо огромное всем, кто помогал!!! smile  

Автор: Водолейчик 11.12.2006, 18:48
Помогите пожалуйста !!!! Помогите решить :   В одномерном числовом массиве X(N) вычислить сумму элементов значение которых больше значения первого положительного элемента.
Заранее большое спасибо!!!!!!!

Автор: Zero 11.12.2006, 19:37
Водолейчик, а ты правила то прочитай для начала, и скажи, где ты увидел, что разрешено в одной теме задавать по несколько вопросов.

Автор: Водолейчик 11.12.2006, 22:21
А почему по несколько вопросов?Это одно задание!И я не он а она

Автор: Zero 12.12.2006, 08:01
Цитата(Водолейчик @  11.12.2006,  23:21 Найти цитируемый пост)
А почему по несколько вопросов?Это одно задание!
 Понимаешь, эту тему создал pon4ik, и он уже задал вопрос, на который получил ответ. А если ты хочешь задать свой вопрос, то тоже создавай отдельную тему, и в ней незабудь указать как пыталась решить, и что конкретно у тебя не получилось. Тогда получишь ответ.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)