Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2011, 12:52   #1
Ilya_L
Пользователь
 
Регистрация: 18.06.2010
Сообщений: 78
По умолчанию Гистограмма

доброго времени суток всем. Помогите с такой задачей. Есть файл вида:
Код:
2
1 6
1 и 6 числа, которые показывают высоту гистограмм.
Нужно построить такую гистограмму
*******+---+*
*******|###|*
*******|###|*
*******|###|*
*******|###|*
*+---+*|###|*
*|###|*|###|*
-+---+-+---+-
Два дня уже сижу над ней, ничего сообразить не могу!

Последний раз редактировалось Ilya_L; 25.09.2011 в 12:54.
Ilya_L вне форума Ответить с цитированием
Старый 25.09.2011, 13:25   #2
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,822
По умолчанию

вам её именно из таких символов псевдографики (|###|) нужно построить?

Код:
const sect='|###|';
         werh='+---+';
         pusto='*****';
var i,j,k,c:Integer;
//тут читаем из файла числа 1 и 6
i:=1;
j:=6;

if(i<=j)then c:=j;//выбираем максимальное из этих двух чисел
if(j<i)then c:=i; 
for k:=c+1 downto 1 do
begin
   //----- если i<j --------------------
   if(i<j)and(k=c+1)then WriteLn (pusto,'*',werh);
   if(i<j)and(k<c+1)and(i+1<k)then WriteLn (pusto,'*',sect);
   if(i<j)and(k<c+1)and(k=i+1)then WriteLn (werh,'*',sect);
   //----- или если j<i -----------------
   if(j<i)and(k=c+1)then WriteLn (werh,'*',pusto);
   if(j<i)and(k<c+1)and(j+1<k)then WriteLn (sect,'*',pusto);
   if(j<i)and(k<c+1)and(k=j+1)then WriteLn (sect,'*',werh);
   //----- но снизу у всех одинаково -----------   
   if(k<c=1)and(k<i+1)and(k<j+1)then WriteLn (sect,'*',sect);
end;
но доработка всё равно требуется
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.

Последний раз редактировалось NetSpace; 25.09.2011 в 13:41.
NetSpace вне форума Ответить с цитированием
Старый 25.09.2011, 13:35   #3
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

на каком языке?
rrrFer вне форума Ответить с цитированием
Старый 25.09.2011, 13:54   #4
Ilya_L
Пользователь
 
Регистрация: 18.06.2010
Сообщений: 78
По умолчанию

Язык Delphi.

Да из этих символов.. Но я забыл сказать, что в файле может быть N чисел, следовательно их нужно вбить в массив, вот тут и была проблема, куда вставлять этот массив.
Ilya_L вне форума Ответить с цитированием
Старый 25.09.2011, 13:56   #5
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,822
По умолчанию

а первое число 2 - это просто левая строка или чтоб знали, сколько чисел там внизу будет вписано?
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 25.09.2011, 13:58   #6
Ilya_L
Пользователь
 
Регистрация: 18.06.2010
Сообщений: 78
По умолчанию

да, это сколько чисел стоит ниже..но их может быть n
Ilya_L вне форума Ответить с цитированием
Старый 25.09.2011, 14:01   #7
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,822
По умолчанию

тогда надо массив делать из строк:
Код:
s:arrya[1..N]of string;
и заполнять его сначала:
Код:
for k:=1 to N do
begin
   //ставить условия проверки, который столбец выше и заполнять символами
   ....
   if(i<j)then s[k]:=pusto;
   ....
end;
а потом выводить
Код:
for k:=1 to N do Write(s[k]);//это будет 1 длинная строчка из N коротких строк
и так несколько строк подряд, пока всю гистограмму не выстроите...
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
горизонтальная гистограмма Максикок Помощь студентам 8 25.03.2011 05:14
Вопрос - Гистограмма Unknown_Object Общие вопросы C/C++ 5 17.08.2010 10:04
Гистограмма ~Az@liya~ Паскаль, Turbo Pascal, PascalABC.NET 3 15.06.2010 11:14
Дисперсия. Гистограмма p4serhiy Помощь студентам 2 15.04.2010 08:34
C++ Гистограмма xxxPascalxxx Помощь студентам 1 05.11.2009 15:05