| 
				
				Помощь с паскалем
				 | 
 | 
 
Lukash   | Дата: Суббота, 15.12.2012, 17:45 | Сообщение # 1 |   
|  
   
 | Дана вот такая программа: В массиве M[1..10] упорядочить числа по возрастанию, числа от 1 до 100   Написал программу   Code program mos;     var i,k:integer;         p:real;         M: array [1..10] of real;   begin     for i:=1 to 10 do       begin       M[i]:= random(100)+1;       write (' Число - ',M[i]);       end;     for k:=1 to 9 do       begin       for i:=1 to 10-k do         begin         if M[i] > M[i+1] then p:=M[i];         M[i]:=M[i+1];         M[i+1]:=p;         end;       end;     for k := 1 to 10 do       begin       write (M[k]);       end;   end.         Но она не работает, можете сказать почему 
  
 
 
   
  |   
|   |  
 |    | 
 
clasterit   | Дата: Суббота, 15.12.2012, 18:04 | Сообщение # 2 |   
|  
   
 | Может из-за того, что массив у тебя вмещает только 10 символов? 
  
  
  |   
|   |  
 |    | 
 
r00t-bag   | Дата: Суббота, 15.12.2012, 18:05 | Сообщение # 3 |   
|  
   
 | Code program mos;   Uses CRT;   var i,k:integer;   p:real;   M: array [1..10] of real;   begin   randomize;   for i:=1 to 10 do  begin   M[i]:= random(100)+1;   if i = 1 then write (i,' Digit - ',M[i],' | ') else  write (i,' Digit - ',M[i], ' | ');   end; 
   for k:=1 to 9 do begin   for i:=1 to 10-k do begin   if M[i] > M[i+1] then begin   p:=M[i];   M[i]:=M[i+1];   M[i+1]:=p;   end;   end;   end; 
   WriteLn();   for k := 1 to 10 do begin   write (M[k],' ');   end;   end.        1)При использовании команды Random нужно после begin писать randomize, для "включения" генератора случайных чисел.   2)Поправил вывод, а то читать было невозможно.   3)Code if M[i] > M[i+1] then begin     А у тебя просто then и первая команда, которая должна выполняться только если наше число больше следующего. 
  
  
 
 
 Сообщение отредактировал r00t-bag - Суббота, 15.12.2012, 18:07  |   
|   |  
 |    | 
 
clasterit   | Дата: Суббота, 15.12.2012, 18:14 | Сообщение # 4 |   
|  
   
 | мой вариант   Code program sort;   uses crt;         var a,b,temp:integer; 
             m: array [1..100] of integer;   begin         clrscr;         randomize;         for a:= 1 to 100 do           m[a]:= random(100)+1;         for a:= 1 to 100 do           write (' Chislo - ',m[a]);           writeln;         for a:= 1 to 99 do           for b:= a+1 to 100 do            if m[a]>m[b] then             begin              temp:=m[a];              m[a]:=m[b];              m[b]:=temp;             end;         for a:=1 to 100 do          write(m[a]:5);          readLn;   end.      
   с тебя мороженко   
  
  
 
 
 Сообщение отредактировал clasterit - Суббота, 15.12.2012, 18:19  |   
|   |  
 |    | 
 
r00t-bag   | Дата: Суббота, 15.12.2012, 18:23 | Сообщение # 5 |   
|  
   
 | clasterit, ReadLn в конце убери - не позорься.    
  
  
  |   
|   |  
 |    | 
 
clasterit   | Дата: Суббота, 15.12.2012, 18:53 | Сообщение # 6 |   
|  
   
 | r00t-bag, ухахаха. Я специально написал это в коде, чтобы парень увидел, что сортировка совершилась.   И да, не юзай PascalABC. он ущербный..   P.S. FP и TP7 не говорят ни о каких ошибках.. 
  
  
  |   
|   |  
 |    | 
 
r00t-bag   | Дата: Суббота, 15.12.2012, 18:57 | Сообщение # 7 |   
|  
   
 | clasterit, По-моему, надписи вверху большими жирными буквами достаточно, чтобы понять, что сортировка завершена, ведь действия от пользователя здесь не требуется.   И да, паскалем профессионально не занимаюсь, поэтому мне вполне достаточно ABC. 
  
  
  |   
|   |  
 |    | 
 
clasterit   | Дата: Суббота, 15.12.2012, 19:05 | Сообщение # 8 |   
|  
   
 | r00t-bag, дадада, можно было бы еще прилепить файлы к коду, и сделать так, чтобы результат записывался в него. Думаю, ТС это умеет. Не думаю, что если нужно отсортировать массив, то будут проверять работоспособность кода, а не его результат.   да я тоже занимаюсь не профессионально, но все же предпочитаю что-нибудь забугорное и кросплатформенное...     FPC отлично для этого подходит, а если еще нужно gui - lazarus вполне справится со своим делом     а вот твой код FPC не захотел нормально обработать XD   из-за типа "real" 
  
  
 
 
 Сообщение отредактировал clasterit - Суббота, 15.12.2012, 19:08  |   
|   |  
 |    | 
 
Lukash   | Дата: Суббота, 15.12.2012, 19:07 | Сообщение # 9 |   
|  
   
 | Quote (r00t-bag) 1)При использовании команды Random нужно после begin писать randomize, для "включения" генератора случайных чисел.   2)Поправил вывод, а то читать было невозможно.   3)   Code   if M[i] > M[i+1] then begin 
   А у тебя просто then и первая команда, которая должна выполняться только если наше число больше следующего.    
   Просто поставил begin после then и теперь все работает, а что такое randomize не знаю, хотя и без него все работает, а так спасибо, и ещё последний вопрос можно ли здесь как то сделать пробел    И за вывод спасибо, я хотел спросить как сделать пробелы между цифрами 
  
 
 
   
 
 
 Сообщение отредактировал Lukash - Суббота, 15.12.2012, 19:09  |   
|   |  
 |    | 
 
clasterit   | Дата: Суббота, 15.12.2012, 19:09 | Сообщение # 10 |   
|  
   
 | Lukash, Code write (' Число - ',M[i]);   end;   writeLn;      вот так   исправил 
  
  
 
 
 Сообщение отредактировал clasterit - Суббота, 15.12.2012, 19:16  |   
|   |  
 |    | 
 
r00t-bag   | Дата: Суббота, 15.12.2012, 19:14 | Сообщение # 11 |   
|  
   
 | Quote (clasterit) а вот твой код FPC не захотел обработать XD     Просто в школах используют ABC, я и сделал ему для ABC.   Глянул бы сейчас, в чем ошибка во фри паскале, но и так дел много     Quote (clasterit) а если еще нужно gui - lazarus     Интересненько, посмотрим на досуге.   Quote (clasterit) что-нибудь забугорное и кросплатформенное...     Ну это ван лав)Добавлено (15.12.2012, 19:14) ---------------------------------------------
  Quote (clasterit) write (' Число - ',M[i]); writeLn;       end;     Я бы поставил один WriteLn; после последнего сгенерированного числа, а то одно число на одну строчку как-то жирненько. Но, как говорится, на вкус и цвет товарища нет) 
  
  
  |   
|   |  
 |    | 
 
clasterit   | Дата: Суббота, 15.12.2012, 19:15 | Сообщение # 12 |   
|  
   
 | r00t-bag, О_О   у меня в школе юзают до сих пор TP7     а на мои учебные года не попал ни один урок программирования. 11 классы, что выпустились, учили дельфи. младшее поколение учит паскаль. а мы ничего)   вот завтра олимпиада, сижу готовлюсь, помочь решил, повторил сортировку   
   не ошибка, просто числа выводит не в нормальном десятеричном виде))Добавлено (15.12.2012, 19:15) ---------------------------------------------
  Quote (r00t-bag) Я бы поставил один WriteLn; после последнего сгенерированного числа, а то одно число на одну строчку как-то жирненько.     упс. я просто посмотрел в свой код   
  
  
  |   
|   |  
 |    | 
 
r00t-bag   | Дата: Суббота, 15.12.2012, 19:18 | Сообщение # 13 |   
|  
   
 | Quote (clasterit) вот завтра олимпиада, сижу готовлюсь, помочь решил     А я как-то на олимпиадах пролетаю - не получается, и все. Вроде знаю, вроде уже делал, но сижу как баран на новые ворота смотрю.   Кстати, что за олимпиада? Если заочная, то надо попробовать.   Quote (clasterit) а на мои учебные года не попал ни один урок программирования     Мда, не везет. Сейчас тоже ворд проходим - тоска смертная   
  
  
  |   
|   |  
 |    | 
 
clasterit   | Дата: Суббота, 15.12.2012, 19:30 | Сообщение # 14 |   
|  
   
 | r00t-bag, да я так, на 2 место иду) есть там паренёк, который с 5 класса учит этот паскаль..   олимпиады не заочные, государственные. школьный этап, городской, областной и государственный.   а вот через неделю у нас будет ИКТ(информационно-коммуникационные технологии), то вот там приложу всех усилий, чтобы прорваться. в прошлом году на последний этап ездил..   
   Да и в прошлом году просто завалили нас.   До сих пор вспоминаю задания как страшный сон     Решение первой, самой простой задачи, на 1,5 листка А4... Еще где-то есть мой код) 
  
  
 
 
 Сообщение отредактировал clasterit - Суббота, 15.12.2012, 19:31  |   
|   |  
 |    | 
 
r00t-bag   | Дата: Суббота, 15.12.2012, 19:37 | Сообщение # 15 |   
|  
   
 | Quote (clasterit) Решение первой, самой простой задачи, на 1,5 листка А4     У меня дежавю...   Причем пятая, по идее самая тяжелая задача, заняла максимум пол-листа.   Умеют они делать. Когда сидел среди задротиков - очкариков на последнем третьем часу олимпиады, то слышал разговор учителей информатики, которые проверяли работы уже ушедших участников:   -Блин, Володя, как это решать-то?   -Не знаю, не знаю. Забивай это в паскаль и смотри - работает, или нет.   Вот тут - то меня мой мозг начал вытекать. 
  
  
  |   
|   |  
 |    |