Помощь с паскалем
|
|
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 У меня дежавю... Причем пятая, по идее самая тяжелая задача, заняла максимум пол-листа. Умеют они делать. Когда сидел среди задротиков - очкариков на последнем третьем часу олимпиады, то слышал разговор учителей информатики, которые проверяли работы уже ушедших участников: -Блин, Володя, как это решать-то? -Не знаю, не знаю. Забивай это в паскаль и смотри - работает, или нет. Вот тут - то меня мой мозг начал вытекать.
|
|
| |