Вопрос № 182935: Здравствуйте! Помогите написать программу на Borland Pascal: Дан массив вещественных чисел {A}n (n=20); нужно построить график A(n) ...
Вопрос № 182935:
Здравствуйте! Помогите написать программу на Borland Pascal: Дан массив вещественных чисел {A}n (n=20); нужно построить график A(n)
Отправлен: 25.04.2011, 11:44
Вопрос задал: Pagon (Посетитель)
Всего ответов: 1 Страница вопроса »
Отвечает Сергей Бендер (Практикант) :
Здравствуйте, Pagon!
Поскольку вы на уточняющий вопрос не отвечаете, делаю предположение, что нужен символьный график. (Для вывода массива по номерам элементов это более вероятно.) Не стал выводить нулевую горизонтальную ось -- это чуть сложнее. Напишите, если надо.
Разумеется, если всё-таки надо в графическом режиме -- переделаю под graph.
Код:
const n=20;
var a:array[1..n] of real; maxa,mina:real; i,j:integer;
begin { Задание исодных данных. Этот блок может быть изменен в зависимости от заданного спосба получения исходных данных } for i:=1 to n do a[i]:=exp(-0.01*sqr(i));
{ Поиск максимального и м
инимального значения в массиве } maxa:=a[1]; mina:=a[1]; for i:=1 to n do begin if a[i]>maxa then maxa:=a[i]; if a[i]<mina then mina:=a[i]; end;
{ Стандартный текстовый экран -- 25 строк. Последняя строка будет содержать номера элементов. Начинаем перебирать номера строк в графике в обратном порядке от 23 до 0, т.к. график выводится сверху вниз.} for j:=23 downto 0 do begin { Вертикальная
ось } if j=23 then write('^') else write('|');
{ Перебираем элементы массива } for i:=1 to n do { Если его соотношение к дипазону значений массива соответствует номеру строки } if ((a[i]-mina)/(maxa-mina)*23>=j) and ((a[i]-mina)/(maxa-mina)*23<j+1) { то выводим знак } then w
rite('*') { иначе пробел } else write(' ');
writeln; end;
{ Номера элементов -- выводится каждый пятый } write(' '); i:=5; while (i<=n) do begin { Каждый номер выводится с форматом :5, т.е. чтобы занимать все пять позиций } write(i:5); i:=i+5; end; readln; end.
Ответ отправил: Сергей Бендер (Практикант)
Ответ отправлен: 30.04.2011, 23:34
Номер ответа: 266904 Тел.: 8-912-761-0437 Организация: Удмуртский ГосУнивеситет. г. Ижевск. Абонент Skype: ostapbskype
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 266904
на номер 1151 (Россия) |
Еще номера »
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.